1 IT højskolen i København 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English 9 Uddannelser 10 Forskning 11 Erhvervsliv 12 Presse 13 Om IT højskolen 14 Links 15 Kontakt inter menu bund gif Aktuelt på IT højskolen i København 16 Tilmeld elektronisk nyhedsbrev Informationsmøde om diplom master og enkeltfag 17 Læs IT på universitetsniveau Kom til 18 informationsmøde på IT højskolen tirsdag den 15 maj kl 19 21 og hør mere om vores Åben Uddannelsesprogram Nyhed oprettet 27 04 01 Informationsdag om kandidatuddannelsen 19 Læs IT på universitetsniveau Kom til 20 informationsdag på IT højskolen fredag den 18 maj og hør mere om vores kandidatuddannelse Nyhed oprettet 27 04 01 Virksomhedsregnskab 2000 21 IT højskolens virksomhedsregnskab 2000 er nu at finde her på websiderne Nyhed oprettet 25 04 01 Kursusevalueringen 22 Resultaterne er tilgængelige for alle Intranetbrugere Nyhed oprettet 23 04 01 Ph d kursus 23 Topics in Language Based Security v Assistant Professor Greg Morrisett Cornell University June 11 15 2001 Nyhed oprettet 20 04 01 Ph d kursus 24 Streaming video for wireless networks v Professor K J Ray Liu University of Maryland 17 5 23 5 2001 Nyhed oprettet 19 04 01 Ph d kursus 25 Scale based Geometry and Singularities for Computer Imaging v Professor James Damon University of North Carolina 14 5 17 5 2001 Nyhed oprettet 07 03 01 LinuxLab dk 26 LinuxLab dk på IT højskolen er Danmarks største Open Source initiativ 27 USEMAP inter icon2top gif opdateret 04 05 2001 28 wwwadm it c dk 1 IT højskolen Stillinger 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English 9 13 Associate or Assistant Professorships 10 Datalog civilingeniør inter menu bund gif Stillinger Stillinger på IT højskolen Her kan du se en oversigt over opslåede stillinger på IT højskolen Alle stillinger på IT højskolen opslås her på hjemmesiden 11 13 Associate or Assistant Professorships 12 Datalog civilingeniør 13 Information om Ph D studiet Under de enkelte stillinger er der angivet kontaktperson vilkår ansøgningsfrister o lign Hvis du har generelle spørgsmål om stillinger ved IT højskolen kan du kontakte personalechef Kirsten Talbro Laraignou på telefon 38 16 88 03 eller på mail 14 ktl it c dk Eventuelle uopfordrede ansøgninger bedes sendt til IT højskolen Personaleafdelingen Glentevej 67 2400 København NV 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen i København 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English 9 Uddannelser 10 Forskning 11 Erhvervsliv 12 Presse 13 Om IT højskolen 14 Links 15 Kontakt inter menu bund gif Aktuelt på IT højskolen i København 16 Tilmeld elektronisk nyhedsbrev Informationsmøde om diplom master og enkeltfag 17 Læs IT på universitetsniveau Kom til 18 informationsmøde på IT højskolen tirsdag den 15 maj kl 19 21 og hør mere om vores Åben Uddannelsesprogram Nyhed oprettet 27 04 01 Informationsdag om kandidatuddannelsen 19 Læs IT på universitetsniveau Kom til 20 informationsdag på IT højskolen fredag den 18 maj og hør mere om vores kandidatuddannelse Nyhed oprettet 27 04 01 Virksomhedsregnskab 2000 21 IT højskolens virksomhedsregnskab 2000 er nu at finde her på websiderne Nyhed oprettet 25 04 01 Kursusevalueringen 22 Resultaterne er tilgængelige for alle Intranetbrugere Nyhed oprettet 23 04 01 Ph d kursus 23 Topics in Language Based Security v Assistant Professor Greg Morrisett Cornell University June 11 15 2001 Nyhed oprettet 20 04 01 Ph d kursus 24 Streaming video for wireless networks v Professor K J Ray Liu University of Maryland 17 5 23 5 2001 Nyhed oprettet 19 04 01 Ph d kursus 25 Scale based Geometry and Singularities for Computer Imaging v Professor James Damon University of North Carolina 14 5 17 5 2001 Nyhed oprettet 07 03 01 LinuxLab dk 26 LinuxLab dk på IT højskolen er Danmarks største Open Source initiativ 27 USEMAP inter icon2top gif opdateret 04 05 2001 28 wwwadm it c dk 1 IT højskolen Aktiviteter 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English inter menu bund gif Aktivitetskalender 03 05 2001 IT højskolen Glentevej 65 Karrieredag for dimmitender IT Højskolen får besøg af en række førende IT virksomheder som kan diskutere jobprofiler muligheder med kommende dimmitender 15 05 2001 19 21 IT højskolen Glentevej 65 Informationsmøde for åben uddannelse Hør om mulighederne for master diplom og enkeltfagsuddannelser på IT Højskolen 18 05 2001 IT højskolen Glentevej 65 Informationsdag for kandidatuddannelserne Der vil for og eftermiddag være mulighed for at høre om IT Højskolen uddannelser og linjer om adgangskrav om ansøgningsprocedure og mulighed for at tage en snak med en studievejleder 15 06 2001 Kl 12 00 IT højskolen Glentevej 65 Ansøgningsfrist for kandidat master og diplomuddannelserne 01 08 2001 Kl 12 00 IT højskolen Glentevej 65 Ansøgningsfrist for enkeltfagskurserne 9 USEMAP inter icon2top gif opdateret 30 04 2001 10 wwwadm it c dk 1 IT højskolen Find person 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English 9 Hvem underviser på hvilke linier inter menu bund gif Find medarbejder e Ændringer og rettelser vedr ansatte send email til 10 Bianca Small Fornavn efternavn eller dele heraf Stilling Alle Ansættelsessted Alle Afdeling Alle afdelinger Søg Find studerende Ændringer og rettelser vedr studerende send email til 11 Annette Linvald Fornavn efternavn eller dele heraf Immatrikuleret Alle Linie Alle Søg Søgning i indhold Brug enten SiteMap eller lav fritekstsøgning i dokumentet med 12 det samlede site indhold 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen SiteMap 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English inter menu bund gif Oversigt over IT C siten 9 Stillinger 10 13 Associate or Assistant Professorships 11 Datalog civilingeniør 12 Kontakt 13 Uddannelser 14 Kandidatuddannelser o 15 Design Kommunikation og Medier 16 John Paulin Hansen 17 DKM Design Kommunikation og Medier 18 Studiet på DKM 19 Projekter 20 Ansatte ved DKM 21 DKMs Fakultetsklub 22 DKMs Fagudvalg 23 DKM s faglighed o 24 Elektronisk Handel 25 Kim Viborg Andersen 26 Læs mere om Elektronisk handel o 27 Internetteknologi 28 Thomas T Hildebrandt 29 Internetteknologilinien 30 Studiet på Internetteknologilinien 31 Fagområderne på Internetteknologilinien 32 Semesterets gang 33 Studiets struktur 34 Kernekurser på Internetteknologi foråret 2001 35 Specialeforberedende kurser på internetteknologi foråret 2001 36 Anbefalede studieforløb 37 De studerende 38 Fagudvalg 39 Erhvervsmuligheder 40 Internetværktøjer med mere 41 Internetteknologiseminarer 42 Internetteknologiseminar E2000 43 Internetteknologiseminar F2000 44 Projekter på Internetteknologi o 45 Softwareudvikling 46 Søren Lauesen linjeleder SWU 47 Fritz Henglein underviser på SWU 48 Læs mere om Softwareudvikling o 49 Multimedieteknologi 50 John Aa Sørensen 51 Læs mere om Multimedieteknologi o 52 Tværfaglig IT 53 Læs mere om Tværfaglig IT o 54 Søg om optagelse o 55 Informationsdag om kandidatuddannelsen o 56 Enkeltfag o 57 Uddannelseskatalog 58 En bred vifte af IT uddannelser og enkeltfag for erhvervsaktive o 59 Masteruddannelser 60 Design Kommunikation og Medier 61 John Paulin Hansen 62 Mere om DKM 63 Internetteknologi 64 Thomas Hildebrandt 65 Mere om INT 66 Multimedieteknologi 67 Mads Nielsen 68 Læs mere om Multimedieteknologi 69 Softwareudvikling 70 Søren Lauesen 71 Fokus på principper 72 Læs mere om Softwareudvikling 73 Fleksibel undervisning 74 Kurser efterår 2000 75 Kurser foråret 2001 76 Optagelsesbetingelser op masteruddannelserne o 77 Diplomuddannelsen 78 Fagligt indhold i diplomuddannelsen i informationsteknologi 79 Diplomuddannelsens struktur 80 Fleksibel undervisning 81 Kurser forår 2001 82 Optagelsesbetingelser på diplomuddannelsen 83 Jens Christian Godskesen o 84 Enkeltfag under Åben Uddannelse o 85 Uddannelseskatalog o 86 Informationsmøde o 87 Fleksibel undervisning 88 Kurser o 89 Kursusbog o 90 Kursernes hjemmesider o 91 Kursusevaluering o 92 Tidligere kurser 93 Kurser efteråret 2000 94 Ph D 95 IT højskolens vision o 96 Socialt liv o 97 Studenterprojekter o 98 Praktik o 99 Udenlandsophold o 100 Studerende fortæller 101 Har ikke fortrudt 102 Høj energi og hårdt arbejde 103 I det teknologiske grænseland 104 Jeg vælger mine egne udfordringer 105 Får nye input 106 Studievejledning o 107 Ofte stillede spørgsmål o 108 Uddannelseskatalog 109 Love og regler o 110 Uddannelseskatalog o 111 Udenlandsophold o 112 Praktikpladser o 113 ECTS 114 Søg om optagelse o 115 Optagelsesregler 116 Forskning 117 Visioner og mål 118 Publikationer 119 Eksterne undervisere o 120 Ekstern lektor Lise Jensen 121 Lars Birkedal 122 Ph D studies o 123 Lisbeth Klastrup o 124 Application o 125 The Academic Board for Ph D studies 126 Mødekalender o 127 Funding o 128 Ph D courses 129 Course in advanced data structures 130 Ph D seminar in information theory 131 DAIMI IT C Meeting Series 132 Topics in Language Based Security 133 Avanceret algoritmik 134 Scale based Geometry and Singularities for Computer Imaging 135 Constructive Logic Project F2001 136 Streaming video for wireless networks 137 Erhvervssamarbejde 138 Vision og mål 139 Forskningssamarbejde 140 Projekter specialer og praktik o 141 IT højskolens Projektbørs o 142 Projektbørs efterår 2000 o 143 Eksempler på relevante projekter o 144 Praktikpladser 145 BuzzTalks åbne foredrag o 146 Program efterår 2000 o 147 Program forår 2001 148 Patent på software International trussel eller dansk mulighed 149 Beyond e magination go wireless 150 Softwareudvikling en videnskab og et håndværk 151 Personalized search on the web 152 De gamle vinder i den nye økonomi 153 Hvordan opdager man et hacker angreb Om forskningsproblemer ved intrusion detection 154 Evaluator effekten Et ubehageligt faktum om teknikker til test af brugervenlighed 155 Mobile Internet OBS Aflyst pga sygdom 156 IBM Research Global Technology Outlook 157 5 tips til at undgå IT fiasko 158 The problematic of using IT for pedagogic purposes 159 XML Visionen 160 Superchannel og Karlskrona2 Relationel kunst på Internettet 161 Pressemeddelelser og pressekontakt 162 Pressearkiv o 163 Flere kvinder på IT uddannelser o 164 LinuxLab på IT højskolen 165 Fakta og nøgletal 166 Bestyrelse og direktion 167 Baggrunden for IT højskolen 168 Billedarkiv 169 Om IT højskolen 170 Vision 171 Kontakt 172 Uddannelser 173 IT højskolens ny bygning i Ørestaden o 174 Vinderprojektet for IT højskolens ny domicil i Ørestaden o 175 Dommerbetænkning 176 Nøgletal 177 Virksomhedsregnskaber 178 Vedtægter for IT højskolen i København 179 Billedarkiv 180 At finde IT C 181 The IT University of Copenhagen 182 Find staff and Ph D students at the IT C 183 Links 184 Dokumentoversigt 185 Find medarbejder e 186 Hvem underviser på hvilke linier 187 USEMAP inter icon2top gif opdateret 04 05 2001 188 wwwadm it c dk 1 IT højskolen 2 Stillinger 13 Associate or Assistant Professorships 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif 13 Associate or Assistant Professorships The IT University of Copenhagen invites applications for 13 vacant Associate or Assistant Professorships The IT University was created by the Danish Ministry of Research in 1999 to boost research and higher education in Information Technology in the Oresund Region The IT University offers graduate studies post graduate studies and Open University using e learning The first students were admitted September 1999 By now more than 700 graduate students have been admitted More than 130 people teach or conduct research at the IT University There are currently 20 PhD students and the Faculty consists of 19 Assistant and Associate Professors The IT University continues to expand rapidly Each new Assistant or Associate Professor shall belong to one of the following four research departments The Department of Design and Use of IT conducts research in systems development and the interplay between IT its users and their work practice The Department of Digital Aesthetics and Communication addresses aesthetic cultural social and communicative aspects of IT phenomena The Department of Innovation conducts research in various areas of computer science with the aim of taking the research all the way to being new innovative technology Subjects include computer vision and graphics multimedia technology programming language technology formal verification embedded software and interaction technologies The Theory Department conducts research in algorithms and complexity theory and in semantics of logic and programming languages Faculty is wanted primarily within the following areas Mobility theory of mobility software platforms security m business cultural and social impact mobile usability Media and Communication design of interactive systems digital media digital aesthetics convergence of technologies digital discourse interaction technologies Software technology databases programming and programming languages software engineering operating systems software tools and architectures component based systems embedded software verification Software applications design methodologies IT and organisations IT strategies diffusion and adoption of IT computer supported co operative work human computer interaction and usability Theory application of mathematical logic and category theory to computer science especially concerning the semantics of programming languages and type theories and algorithms and complexity theory Virtual Reality VR infrastructure basic technologies contents and use Scientific Leader of Lab We seek an Associate Professor who will establish and run a new virtual reality laboratory within the Department of Innovation The Associate Professorship is a tenured position and the Assistant Professorship is an untenured position for a 3 year period Both positions are with research and teaching obligations The teaching may involve diploma students MSc students and PhD students Some of the courses are specifically for part time students at the Open University The positions can be filled at either Assistant or Associate Professor level depending on the qualifications of the applicants Since the IT University is young we seek candidates who are dedicated to the task of building a new organisation Associate professor level Responsibilities Research including responsibility for the academic development of the research field in question Research management initiation and management of research projects pedagogical instruction supervision of PhD students and Assistant Professors and assessment work Teaching preparation and participation in examinations at the IT University of Copenhagen Educational development and other relevant assignments at the IT University of Copenhagen Work of administrative nature The Associate Professor is expected to contribute to the development of the research profile of the IT University Furthermore the Associate Professor is expected to participate in maintaining and improving the international research level of the IT University and in the building of a new organisation Qualifications Qualifications must correspond to the level of Assistant Professor with teaching obligations based on previous employment or the equivalent Applicants must be able to document an unusually strong record within university level research and teaching as well as research production at an international level Emphasis is placed on the applicant s research qualifications in relation to the research area Furthermore applicants must document pedagogical qualifications or other material for the evaluation of the pedagogical level Assistant Professors who apply for a position as Associate Professor must enclose an evaluation of the pedagogical qualifications obtained during the employment as Assistant Professor Applicants without teaching experience at the Associate Professor level or the equivalent will be appointed on a probationary period of up to 1 year Assistant Professor level Responsibilities Research including responsibility for the academic development of the research field in question Teaching preparation and participation in examinations at the IT University of Copenhagen Educational development and other relevant assignments at the IT University of Copenhagen Work of administrative nature Qualifications Qualifications must correspond to the PhD level based on previous employment or the equivalent Emphasis is placed on the applicant s research potential which means that the researcher with a large research potential may be preferred to the researcher with a large research production The applicant is obliged to participate in the Assistant Professor development program of teaching principles and methods at the IT University in order to elaborate a written evaluation of the pedagogical qualifications at the termination of the employment as Assistant Professor For further information please contact For the Department of Design and Use of IT Associate Professor PhD Peter Carstensen phone 45 3816 8830 e mail 10 carstensen it c dk For the Department of Digital Aesthetics and Communication Associate Professor PhD Anker Helms Jørgensen phone 45 3816 8888 e mail 11 anker it c dk For the Department of Innovation Associate Professor PhD Henrik Reif Andersen phone 45 3816 8827 e mail 12 hra it c dk For the Theory Department Assistant Professor PhD Lars Birkedal phone 45 3816 8868 e mail 13 birkedal it c dk Appointment and salary will be in accordance with the Ministry of Finance s agreement with the Central Academic organisation with the possibility of negotiating extra allowances based on qualifications Applications must include 1 A complete numbered list of publications with asterisks marking those publications to be taken into account at the evaluation If you apply for an Associate Professorship you can mark a maximum of 10 publications If you apply for an Assistant Professorship only you can mark a maximum of 5 publications 2 Copies of those publications marked with an 3 Co author statements clarifying the applicant s contribution to the submitted publications with more than one author 4 Assistant Professor level any documentation of previous teaching experience Associate Professor level documentation of previous teaching experience for assessment of pedagogical qualifications Instruction is followed by the job advertisement 5 Transcripts and CV An Assessment Committee will be appointed to assess the applications The applicants will receive only the part of the final recommendation concerning the assessment of their qualifications The application in Danish or English must state explicitly a whether the application is for Assistant Professor Associate Professor or both and b the reference number s of the research department s with whom the appointment is sought see below The application including enclosures in six copies and the marked publications in six copies must be submitted to The IT University of Copenhagen Att Kirsten Talbro Laraignou Glentevej 67 DK 2400 Copenhagen NV Denmark Marked Associate Professorship or Assistant Professorship or both and reference number s see below For the Department of Design and Use of IT ref no 33 0525 For the Department of Digital Aesthetics and Communication ref no 33 0522 For the Department of Innovation ref no 33 0523 For the Theory Department ref no 33 0524 Application deadline 1 May 2001 12 00 noon Applications received electronically will not be taken into consideration All interested researchers irrespective of age sex race religion or nationality are invited to apply for the position Documentation and information on pedagogical qualifications Associate Professor level The IT University of Copenhagen requests that the application is provided with the below mentioned information for the assessment of the applicant s pedagogical qualifications 1 Outline of the instruction activities over the last 3 years at least Taught subjects and level Bachelor Master PhD or other levels Extend of the instruction periods and number of students Sort of the instruction lectures group instruction tutorials Internet based instruction distance teaching Applied pedagogical methods Language used Evaluation and examination forms 2 List of any instructional materials the applicant may have written 3 Information on participation in development of teaching elaboration of course plans etc 4 Management and supervision of part time instructors 5 Administration of the instruction including administrative responsibilities 6 Evaluation of the pedagogical qualifications at the termination of the employment as Assistant Professor in case 7 Student evaluations of the instruction other kind of evaluations from colleagues experts or others 8 Reflections on the described instruction and perspectives for future instruction with regard to the academic content course and pedagogics 9 Other relevant information for the documentation of pedagogical qualifications The information may be organised otherwise but the same level of details is requested 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Stillinger Datalog civilingeniør 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Datalog civilingeniør IT højskolen i København gennemgår en rivende udvikling og søger nu til snarlig tiltrædelse en datalog civilingeniør eller tilsvarende der kan tage del i udbygningen af IT systemerne og netværksdriften IT højskolen blev oprettet i april 1999 og er nu vokset til ca 150 medarbejdere og mere end 800 studerende IT højskolen har som en af sine visioner i løbet af tre år at blive det universitet i Danmark der er længst fremme hvad angår brugen af informations og kommunikationsteknologi til at udvikle uddannelse forskning og organisation Du får mulighed for at indgå i ambitiøse softwareudviklingsprojekter med forskere studerende og ledelsen på IT højskolen herunder være med til at præge udviklingen i LinuxLab Du skal også deltage i den daglige drift af IT systemerne på lige fod med andre tekniske specialister på IT højskolens IT afdeling herunder systemprogrammering på Linux og NT Du skal som alle andre på IT højskolen kunne leve med at man i en opstartsfase har en blanding af arbejdsopgaver som varierer fra det rutinemæssige til det banebrydende Ansættelse og aflønning sker i henhold til gældende aftale mellem Finansministeriet og den pågældende relevante organisation Der vil til stillingen være mulighed for at opnå kvalifikationstillæg ligesom en fleksibel arbejdstilrettelæggelse indenfor en 37 timers arbejdsuge er en naturlig ting Yderligere oplysninger om stillingen fås hos IT chef Keld Kondrup Jensen telf 3816 8847 eller e mail 10 kkj it c dk Oplysninger om løn og ansættelsesforhold kan rettes til personalechef Kirsten Talbro Laraignou tlf 3816 8803 eller e mail 11 ktl it c dk ktl it c dk Alle kvalificerede og interesserede uanset alder køn race religion eller etnisk tilhørforhold opfordres til at søge Ansøgning mrk Datalog civilingeniør til IT afdelingen samt CV og dokumentation for uddannelse og tidligere ansættelser bedes fremsendt til IT højskolen i København Att Kirsten Talbro Laraignou Glentevej 67 2400 København NV Ansøgningen skal være IT højskolen i hænde senest den 22 maj 2001 kl 12 00 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen Kontakt 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English inter menu bund gif Kontakt Adresse IT højskolen i København Glentevej 67 2400 København NV Telefon 38 16 88 88 Telefax 38 16 88 99 Studievejledning Studievejledningen Telefon 45 38 16 88 73 Træffetider mandag kl 10 14 tirsdag kl 10 14 onsdag kl 10 14 torsdag kl 10 14 fredag kl 10 14 9 Studievejledningen it c dk Erhvervssamarbejde Mikael Kjærbye Telefon 45 38 16 88 80 10 mk it c dk Ledige stillinger Personalechef Kirsten Talbro Laraignou 11 ktl it c dk BuzzTalks Tanja Danner 12 td it c dk Pressekontakt Mikael Kjærbye Telefon 45 38 16 88 80 13 mk it c dk Bygninger drift og intern service Afdelingsleder Margit Achen 14 margit it c dk Kommentarer til hjemmesiden Webadministrationen 15 wwwadm it c dk 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen Uddannelser 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English 9 Kandidat 10 Deltidsuddannel ser og enkeltfag 11 Kurser 12 Ph D 13 Studieliv og projekter 14 Studievejledning 15 Love og regler 16 Søg om optagelse inter menu bund gif Uddannelser IT højskolen udbyder en række uddannelser inden for IT Kandidatuddannelser Kandidatuddannelsen cand it er et to årigt fuldtidsstudium som kan tages inden for linierne 17 Design kommunikation og medier 18 Elektronisk handel 19 Internetteknologi 20 Multimedieteknologi 21 Softwareudvikling 22 Tværfaglig IT Masteruddannelser Masteruddannelserne Master of Information Technology MIT er en tre årig deltidsuddannelse som typisk gennemføres i sammenhæng med erhvervsarbejde Masteruddannelsen kan tages inden for linierne 23 Design kommunikation og medier 24 Internetteknologi 25 Multimedieteknologi 26 Softwareudvikling Diplomuddannelse IT højskolen tilbyder en to årig 27 diplomuddannelse Diploma in Information Technology DIT på deltid Den henvender sig primært til erhvervsaktive som har brug for et bredere kendskab til informationsteknologi Enkeltfag IT højskolen tilbyder to forskellige muligheder for at læse enkeltfag 28 Enkeltfag som kandidatstuderende ved andre universiteter 29 Enkeltfag under Åben Uddannelse for alle med mindst en bacheloruddannelse eller tilsvarende Kurserne henvender sig til erhvervsaktive som ønsker et bredere kendskab til informationsteknologi men ikke ønsker at tage en længerevarende uddannelse Hvis du har spørgsmål vedrørende IT højskolens uddannelser kan du altid kontakte 30 studievejledningen eller lede efter informationen her på siderne 31 USEMAP inter icon2top gif opdateret 04 05 2001 32 wwwadm it c dk 1 IT højskolen 2 Uddannelser Kandidat 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Søg om optagelse 11 Informationsdag 12 Enkeltfag 13 Uddannelses katalog inter menu bund gif Kandidatuddannelser IT højskolen tilbyder seks to årige kandidatuddannelser 14 Design kommunikation og medier 15 Elektronisk handel 16 Internetteknologi 17 Multimedieteknologi 18 Softwareudvikling 19 Tværfaglig IT Kandidatuddannelserne er SU berettigede fuldtidsstudier der i kombination med en bacheloruddannelse resulterer i kandidatgraden cand it Uddannelserne er bygget op af en række obligatoriske kurser valgfrie aktiviteter og projekter samt et afsluttende specialesemester Alle aktiviteter på uddannelserne bliver evalueret individuelt Alle bacheloruddannelser er adgangsgivende til de seks kandidatuddannelser Multimedie og internetteknologiuddannelserne kræver dog matematik på A niveau fra gymnasiet eller tilsvarende Hvis du har spørgsmål vedrørende IT højskolens uddannelser bedes du kontakte 20 studievejledningen 21 USEMAP inter icon2top gif opdateret 04 05 2001 22 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English 11 Studieleder 12 Mere om DKM inter menu bund gif Design Kommunikation og Medier Kandidatuddannelsen i Design Kommunikation og Medier består af tre områder konstruktion interaktionsdesign og medier Uddannelsen beskæftiger sig med design og interaktivitet og med IT som socialt og kulturelt medie Desuden indeholder uddannelsen undervisning i mere håndværksorienterede fag Nogle af nøgleordene på uddannelsen er abstraktionsevne formidling argumentation og refleksion ligesom der lægges stor vægt på tværfaglig orientering Uddannelsen gør kandidaten i stand til at bruge den nye informationsteknologi til formidling Det kan eksempelvis være konstruktion og design af web og multimedieproduktioner 3 D animationer og spil Desuden giver uddannelsen indsigt i projektledelse grafisk design organisation brugervenlighed og interaktion Kandidatuddannelsen i Design Kommunikation og Medier udbydes af IT højskolen i samarbejde med Københavns Universitet og Danmarks Designskole Undervisningen foregår dels på IT højskolen og dels på Danmarks Designskole 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Studieleder 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif John Paulin Hansen Praktikere med indsigt Studieleder lektor John Paulin Hansen Design kommunikation og medier er en intensiv overbygning på en bachelorgrad som gør kandidaten i stand til at arbejde med alle former for digitale medier siger lektor John Paulin Hansen der leder linien for Design kommunikation og medier Samtidig bliver man god til konceptudvikling målgrupper og implementering af et projekt og man får en dybere indsigt i de digitale mediers muligheder både nu og i fremtiden På design kommunikation og medier lægges der vægt på at få indsigt i teknologien bag de mange muligheder og på evnen til at reflektere teknisk og analytisk over IT som medie Endelig er det vigtigt at få en viden om ITs samfundsmæssige sociologiske og organisatoriske konsekvenser og muligheder Uddannelsen i Design kommunikation og medier kan i høj grad bruges inden for webkommunikation men kan også inden for andre elektroniske medier så som DVD CD rom film lyd og video Endelig kan kandidater i Design kommunikation og medier komme til at arbejde med offentlige edb baserede servicesystemer og store databasesystemer Det har været utrolig spændende og udfordrende at være med til at etablere linien i Design kommunikation og medier på IT højskolen lyder det fra John Paulin Hansen Og så er det inspirerende og motiverende at have studerende der er dygtige og engagerede slutter han Kort om John Paulin Hansen 41 år studieleder og lektor på IT højskolen cand psyk Århus Universitet 1984 ph d Århus Universitet 1992 forsker og seniorforsker Forskningscenter Risø 1992 rektor multimedieskolen Space Invaders 1996 IT højskolen 1999 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Mere om DKM 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English 12 Studiet 13 Projekter 14 Ansatte 15 Fakultetsklub 16 Fagudvalg inter menu bund gif DKM Design Kommunikation og Medier DKM intro aug2000 P1010198 small jpg Har du lyst til at være med til at præge den digitale udvikling Har du lyst til at arbejde sammen med andre højt motiverede og højtuddannede mennesker med fokus på IT i fremtidens samfund Linien i Design Kommunikation og Medier giver dig gode muligheder for dette Du kommer til at lære om design og interaktivitet Du kommer til at lære om IT som socialt og kulturelt medie Du kommer også til at lære håndværket Den tværfaglige udfordring Du kommer til at kombinere dine kvalifikationer fra dit bachelorstudium med dine medstuderendes og opnår dermed den tværfaglige orientering der er så vigtig idag hvor IT er et organisatorisk socialt og kulturelt medie Du præsenteres for en række undervisningsformer der træner dig bredt fra værktøjsbeherskelse til udvikling af dine akademiske færdigheder abstraktionsevne formidling argumentation og refleksion Studiets opbygning DKM intro aug2000 P1010178 small jpg Du kan selv sammensætte din uddannelse fra et bredt udsnit af kurser i bl a webudvikling projektledelse målgruppeanalyse medieteori 3D modellering digital video og lydredigering og grafisk design Dele af undervisningen foregår i samarbejde med Danmarks Designskole og Københavns Universitet Hvis du har interesse for de andre fag der udbydes på IT højskolen kan du kombinere dine DKM kurser med undervisning i programmering systemanalyse elektronisk handel computergrafik mm Erhvervsmuligheder DKM vil give dig de tekniske designmæssige og teoretiske forudsætninger for at arbejde med fremtidens medieformer som fx producer redaktør projektleder designer tekstforfatter innovatør underviser eller systemudvikler Elektronisk handel virtuelle fællesskaber WAP tjenester fjernundervisningssystemer elektronisk forvaltning og digital kulturformidling er blandt de beskæftigelsesområder som vil vokse stærkt i de kommende år Vedligeholdes af 17 Sven Bastrup 18 USEMAP inter icon2top gif opdateret 04 05 2001 19 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om DKM Studiet 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Studiet på DKM Generelt om DKM DKM billeder P2040342 jpg DKM er et teoretisk og anvendelsesorienteret fag hvor humanistisk samfundsvidenskabelig og teknologisk forskning gives en praktisk og æstetisk orientering Der undervises og forskes i emner indenfor visuel og tekstbaseret kommunikation kunst medie og kulturvidenskab grafisk design og interaktionsdesign teknologifilosofi psykologi computermedierede samarbejdsformer og læring samt aspekter af det digitale liv i bred forstand Studiets struktur For at opnå en master eller kandidatgrad på DKM linien skal man som minimum have et fag indenfor området IT som medie to fag indenfor interaktionsdesign og to fag indenfor konstruktion Desuden skal man vælge fire fag som kan læses på de andre linier af IT Højskolen eller som kan være DKM fag De tre første semestre afsluttes hver med en fireugers projektperiode hvor de studerende arbejder i tværfaglige grupper på tværs af linier og årgange For at blive DKM kandidat skal man i fjerde semester skrive et speciale DKM masterstudiet er et treårs deltidsstudium der afsluttes med et projekt i 6 semester Fagene DKM udvider og reviderer løbende sit fagudbud I forårssemesteret 2001 vil der med forbehold for ændringer blive undervist i følgende emner Webdesign 3D grafisk design interaktionsdesign digital lyd designhistorie IT som medie digital videoredigering projektledelse fremtidens medier tekstformidling på Internet målgruppeanalyse og øjenbaseret interaktion Nogle af fagene udbydes på forskellige niveauer og vil derfor skulle tages i en bestemt rækkefølge Undervisningen tilrettelægges så den kan følges af studerende med forskellige niveauer af IT kompetence Der kan f eks være forelæsninger på et generelt niveau som præsenterer de overordnede aspekter af et givet fagområde Forelæsningerne efterfølges i de fleste fag af øvelser hvor de studerende får mulighed for at arbejde konkret med emner der er blevet præsenteret under forelæsningerne Forelæsninger og øvelser strækker sig typisk over en hel dag om ugen pr fag i 12 uger Der må påregnes en arbejdsindsats på mindst 15 timer om ugen pr fag De kandidatstuderende forventes at afslutte tre fag pr semester og de masterstuderende afslutter to IT højskolens computere står til rådighed for studerende hele døgnet Læs mere om fagene under 13 Kurser De studerende DKM billeder P2040385 jpg DKM optager hvert semester mellem 40 og 60 nye studerende Linjen startede i foråret 1999 og i februar 2001 vil der være omkring 200 DKM studerende Den typiske DKM studerende har en bachelorgrad indenfor humaniora samfundsfag eller et kreativt område Han eller hun er vant til at studere og kan kommunikere i skrift og billeder tænke selvstændigt og abstrakt samt læse komplicerede tekster på dansk og engelsk De fleste behersker IT på et brugerniveau eller et ekspertniveau Gennemsnitsalderen er under 30 år og der er en ligelig kønsfordeling De fleste ønsker efter endt uddannelse at komme til at arbejde kreativt med informationsteknologi indenfor f eks web og multimediedesign digital billed og lyd produktion eller med 3D modellering og design Erhvervsmuligheder Informationsteknologien og de nye kompetenceområder der opstår i dens kølvand ændrer sig hele tiden Eksempler på aktuelle jobtitler i stillingsannoncer hvor en DKM uddannelse vil være relevant er webredaktør 3D grafiker tekstforfatter webudvikler informations arkitekt webmaster art director programmør projektleder systemudvikler animator og projektkoordinator Det forventes at nogle studerende gennem studiet vil få et grundlag for at starte egen virksomhed Fremtidige arbejdsområder for DKM uddannede kunne findes indenfor f eks produktdesign tv og filmproduktion teletjenester undervisningssystemer markeds og brugeranalyse web journalistik e handel organisationsudvikling offentlig og privat e forvaltning medierådgivning virtuelle digitale netværk underholdning og spil Underviserne DKM har tilknyttet et antal faste undervisere der også driver forskning i en af IT højskolens forskningsafdelinger Desuden underviser et stort antal faste eksterne lektorer f eks fra Danmarks Radio Teledanmark og andre større og mindre virksomheder og institutioner samt fra Danmarks Designskole og Københavns Universitet Forskning IT højskolens forskning drives af lektorer professorer og Ph D studerende i forskningsafdelinger på tværs af IT højskolens studielinjer DKM s forskere arbejder bl a med Human Computer Interaction digital æstetik virtuelle verdener designhistorie og grafisk design Andre fremtidige fokusområder for forskere med tilknytning til DKM er bl a IT sociologi Læs mere om forskningen hos 14 Forskningsafdelingen for Digital Æstetik og Kommunikation Mere om studiet Du kan læse mere om linien Design Kommunikation og Medier i vores 15 uddannelseskatalog Samtidig har du mulighed for at læse om de forskellige kurser der udbydes i 16 kursusbogen Du kan desuden indhente flere oplysninger hos DKM s sekretariat Lise Louv Email 17 louv it c dk Telefon 45 38168860 og hos Studievejledningen på IT højskolen i København Email 18 studievejledningen it c dk Telefon 45 38168873 19 USEMAP inter icon2top gif opdateret 04 05 2001 20 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser Kurser forår 2001 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Kurser foråret 2001 Elektronisk kursusbog Kurser for foråret 2001 er beskrevet i den elektroniske 11 kursusbog Kursernes hjemmesider Du kan læse mere om kurserne på kursernes 12 hjemmesider for foråret 2001 13 USEMAP inter icon2top gif opdateret 27 04 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser Uddannelser linjer og kurser 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Enkeltfag 11 Phd studier 12 Kurser forår 2001 13 Kurser efterår 2000 14 Uddannelses katalog 15 Optagelses regler og studieordning inter menu bund gif Bred vifte af IT uddannelser IT højskolen udbyder en række uddannelser inden for IT Kandidatuddanelser Kandidatuddannelsen er et to årigt fuldtidsstudium som kan tages inden for linierne 16 Design kommunikation og medier 17 Elektronisk handel 18 Internetteknologi 19 Multimedieteknologi 20 Softwareudvikling 21 Tværfaglig IT Kandidatuddannelsen resulterer i titlen cand it med tilføjelse af betegnelsen for den pågældende linje Kandidatuddannelsen tages på baggrund af en bachelorgrad fra en anden uddannelsesinstitution Masteruddannelser På IT højskolen er der også fire tre årige masteruddannelser Masteruddannelsen kan tages inden for linierne 22 Design kommunikation og medier 23 Internetteknologi 24 Multimedieteknologi 25 Softwareudvikling Masteruddannelsen er en deltidsuddannelse som typisk gennemføres i sammenhæng med ens erhvervsarbejde Den udbydes under lov om Åben Uddannelse Efter endt studium for man betegnelsen Master of Information Technology MIT med tilføjelse af betegnelsen for den pågældende linje Diplom uddannelse IT højskolen tilbyder en to årig 26 diplomuddannelse på deltid Den henvender sig primært til erhvervsaktive som har brug for et bredere kendskab til informationsteknologi Den udbydes under lov om Åben Uddannelse Efter endt studium får man betegnelsen Diploma in Information Technology DIT Enkeltfag IT højskolen tilbyder nu to forskellige muligheder for at læse enkeltfag 27 Enkeltfag som kandidatstuderende ved andre universiteter 28 Enkeltfag under Åben Uddannelse for alle med mindst en bacheloruddannelse eller tilsvarende Kurserne henvender sig i høj grad til erhvervsaktive som har brug for et bredere kendskab til informationsteknologi men ikke ønsker at tage en længerevarende kandidat master eller diplomuddannelse Hvis du har spørgsmål vedrørende IT højskolens uddannelser bedes du kontakte 29 studievejledningen 30 USEMAP inter icon2top gif opdateret 27 04 2001 31 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser Enkeltfag 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif To muligheder for at læse enkeltfag IT højskolen tilbyder nu to forskellige muligheder for at læse enkeltfag 11 Enkeltfag under Åben Uddannelse NYT NB Ansøgningsfristen til enkeltfagskurser under Åben Uddannelse er overskredet og der kan ikke længere ansøges om optagelse på enkeltfagskurser i forårssemesteret 2001 IT højskolens enkeltfagskurser under Åben Uddannelse henvender sig i høj grad til erhvervsaktive som har brug for et bredere kendskab til informationsteknologi men ikke ønsker at tage en længerevarende kandidat master eller diplomuddannelse For at blive optaget kræves mindst en videregående uddannelse på bachelorniveau eller tilsvarende Klik på linket 12 enkeltfag under Åben Uddannelse for at læse mere om kursusformen kursusindhold og optagelsesbetingelser Du kan her se en 13 samlet liste over de enkeltfagskurser som IT højskolen udbyder under Åben Uddannelse i foråret 2001 men hvor ansøgningsfristen var den 15 19 eller 26 januar 2001 Der kan ikke ansøges om optagelse på disse kurser mere IT højskolen vil i løbet af foråret og sommeren annoncere de enkeltfagskurser som der kan søges optagelse på til eftrårssemesteret 2001 Tilmeld dig evt IT højskolens 14 elektroniske nyhedstjeneste hvor de kommende enkeltfagskurser vil blive omtalt 15 Enkeltfag som kandidatstuderende ved et andet universitet Hvis du er bachelor og indskrevet på et andet kandidatstudium kan du søge om optagelse på et eller flere enkeltfag på IT højskolen i København Ansøgningsfristen for at ansøge om optagelse på disse enkeltfagskurser var 15 januar 2001 Der kan ikke ansøges om optagelse på disse kurser mere En samlet liste over IT højskolens kurser findes i den 16 elektroniske kursusbog Hvis du vil vide mere Hvis du har spørgsmål vedrørende enkeltfagskurser så kontakt venligst 17 studievejledningen 18 USEMAP inter icon2top gif opdateret 27 04 2001 19 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser 4 Enkeltfag 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English 12 Alle enkeltfag i foråret 2001 13 Optagelses betingelser Søg om optagelse 14 Kursus information 15 Pris inter menu bund gif Enkeltfagskurser under Åben Uddannelse Nyt fra forårssemesteret 2001 NB Ansøgningsfristen til enkeltfagskurser under Åben Uddannelse er overskredet og der kan ikke længere ansøges om optagelse på enkeltfagskurser i forårssemesteret 2001 IT højskolen vil i løbet af foråret og sommeren annoncere de enkeltfagskurser som der kan søges optagelse på til efterårssemesteret 2001 Tilmeld dig evt IT højskolens 16 elektroniske nyhedstjeneste hvor de kommende enkeltfagskurser vil blive omtalt Enkeltfagskurserne foregår på universitetsniveau For at blive optaget på kurset kræves mindst en videregående uddannelse på bachelorniveau eller tilsvarende Kurserne gennemføres under lov om Åben Uddannelse og henvender sig primært til erhvervsaktive som har brug for et bredere kendskab til informationsteknologi men ikke ønsker at tage en længerevarende kandidat master eller diplomuddannelse IT højskolens enkeltfagskurser foregår enten på hverdage i dagtimerne eller uden for almindelig arbejdstid Nogle af kurserne er helt eller overvejende teoretiske mens andre er en blanding af teori praktiske øvelser og projekter Tompladsordning og specielt tilrettelagte kurser IT højskolens enkeltfagskurser under Åben Uddannelse udbydes på to forskellige måder Enkeltfagskurser under tompladsordningen Enkeltfagskurser specielt tilrettelagt for enkeltfagsstuderende Enkeltfagskurser under tompladsordningen Under tompladsordningen optages enkeltfagsstuderende på IT højskolens ordinære kurser hvis der er ledige studiepladser når IT højskolens studerende er blevet optaget Blandt de evt ledige pladser på det enkelte kursus vil kvalificerede ansøgere få tildelt studiepladser i den rækkefølge ansøgningerne modtages på IT højskolen først til mølle princippet Kurser specielt tilrettelagt for enkeltfagsstuderende På specielt tilrettelagte enkeltfagskurser optages primært enkeltfagsstuderende under Åben Uddannelse Undervisning gennemføres uden for almindelig arbejdstid i weekenden eller om aftenen Kvalificerede ansøgere får tildelt studiepladser i den rækkefølge ansøgningerne modtages på IT højskolen først til mølle princippet 17 USEMAP inter icon2top gif opdateret 27 04 2001 18 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser 4 Enkeltfag 5 Alle enkeltfag i foråret 2001 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Oversigt over alle de enkeltfagskurser som udbydes i foråret 2001 under Åben Uddannelse Her finder du en oversigt over de enkeltfagskurser som IT højskolen i København udbyder i forårssemesteret 2001 under lov om Åben Uddannelse Ansøgningsfristen for kurserne var den 15 19 eller 26 januar 2001 og der kan ikke ansøges om optagelse på disse kurser mere 13 Enkeltfagskurser i dagtimerne på hverdage 14 Enkeltfagskurser på lørdage og om aftenen 15 Enkeltfagskurser tilrettelagt som fleksibel undervisning fjernundervisning Klik på det enkelte kursus for at få en nærmere beskrivelse af kursets målsætning faglige indhold forudsætninger undervisningsform undervisningssted undervisningssprog dansk eller engelsk eksamensform underviser mm Forudsætningerne ud over bachelorniveau for at blive optaget på et kursus er angivet i den nedenstående oversigt De angivne forudsætninger kan være opnået via formelle uddannelser kurser eller via praktisk erfaring inden for området Oversigt over enkeltfagskurser i dagtimerne på hverdage Undervisningen på disse kurser gennemføres på en hverdag mandag fredag typisk kl 9 00 16 00 Kurserne gennemføres under 16 tompladsordningen Under hvert kursus er anført kursets titel den ugedag hvor undervisningen finder sted og de kursusspecifikke forudsætninger for det enkelte kursus 17 Tilmelding til kurserne fandt sted online 18 Animation Ugentlig undervisningsdag onsdag Forudsætninger 19 Introduktion til Multimediesystemer eller et af følgende kurser 20 Computergrafik 21 Signalbehandling eller 22 Billedanalyse 23 Avanceret algoritmik Ugentlig undervisningsdag tirsdag Forudsætninger Kendskab til algoritmik på et niveau svarende til et introducerende kursus f eks 24 Introduktion til algoritmik og datastrukturer 25 Billedanalyse Ugentlig undervisningsdag mandag Forudsætninger Matematik A 26 Grundlæggende Programmering og 27 Signalbehandling 28 Brugerperspektiver og fremtidens medier Ugentlig undervisningsdag mandag Forudsætninger 29 Målgruppeanalyse Der er ikke tale om specielle forudsætninger inden for programmering 30 Computergrafik Ugentlig undervisningsdag torsdag Forudsætninger Matematik på A niveau og 31 Grundlæggende Programmering 32 Cybertextuality Ugentlig undervisningsdag fredag Forudsætninger Basic skills of computer use required 33 Databasebaseret Web publicering Ugentlig undervisningsdag tirsdag Forudsætninger 34 Grundlæggende Web Design Derudover skal du være motiveret for at lære at programmere 35 Datasikkerhed Ugentlig undervisningsdag fredag Forudsætninger 36 Grundlæggende Programmering og 37 Netværk og Protokoller 38 Design og Designere Ugentlig undervisningsdag torsdag Forudsætninger 39 Grundlæggende Programmering og 40 Design af Brugergrænseflader og Data 41 Digital Designhistorie Ugentlig undervisningsdag tirsdag Forudsætning Kendskab til design erhvervet gennem kurset 42 Interaktionsdesign 43 Grafisk Design 1 eller tilsvarende 44 Elements of Chryptography and Information Theory Ugentlig undervisningsdag fredag Forudsætning 45 Grundlæggende Programmering 46 Funktionelt design og programmering Ugentlig undervisningsdag mandag Forudsætninger 47 Grundlæggende Programmering eller mindst en bachelor inden for matematik science eller ingeniørområdet 48 Internetprogrammering Ugentlig undervisningsdag tirsdag Forudsætninger Et kursus svarende til 49 Grundlæggende programmering I den sidste halvdel af kurset vil det være en fordel med kendskab til Java 50 Internettets rum og geografi Ugentlig undervisningsdag mandag Forudsætninger Ingen Kurset vil dog være en naturlig fortsættelse af kurserne 51 Virtuelle Verdener og 52 3D begynder 53 Introduktion til algoritmik og datastrukturer Ugentlig undervisningsdag onsdag Forudsætninger 54 Grundlæggende Programmering 55 Introduktion til multimediesystemer Ugentlig undervisningsdag tirsdag Forudsætninger 56 Grundlæggende Programmering 57 IT støttet samarbejde Ugentlig undervisningsdag onsdag Forudsætninger 58 Grundlæggende Programmering Det vil være en fordel med basal viden om datamodellering og net teknologier 59 IT tilgængelighed Ugentlig undervisningsdag torsdag Forudsætninger Ingen ud over bachelorniveau 60 Målgruppeanalyse Ugentlig undervisningsdag torsdag Forudsætninger Ingen ud over bachelorniveau 61 Netværk og protokoller Ugentlig undervisningsdag onsdag Forudsætninger Matematik på A niveau eller 62 Grundlæggende Programmering 63 Operativsystemer og Maskinnær Programmering Ugentlig Undervisningsdag mandag Forudsætninger 64 Grundlæggende Programmering 65 Parallelle Systemer Ugentlig undervisningsdag torsdag Forudsætninger 66 Grundlæggende Programmering 67 Signalbehandling Ugentlig undervisningsdag onsdag Forudsætninger Matematik på A niveau 68 Tekstformidling på Internet Ugentlig undervisningsdag torsdag Forudsætninger Ingen ud over bachelorniveau speciel ansøgningsfrist 19 januar 2001 Enkeltfagskurser på lørdage og om aftenen De nedenfor nævnte enkeltfagskurser som udbydes uden for almindelig arbejdstid på lørdage og om aftenen er 69 specielt tilrettelagt for enkeltfagsstuderende under Åben Uddannelse Under hvert kursus er anført kursets titel den ugedag og tidspunkt hvor undervisningen finder sted og de kursusspecifikke forudsætninger for det enkelte kursus 70 Tilmelding til kurserne fandt sted online 71 IT Platforme og Organisation Ugentlig undervisningsdag lørdag kl 9 00 13 00 Forudsætninger Ingen ud over bachelorniveau speciel ansøgningsfrist 26 januar 2001 72 Tekstformidling på Internet Ugentlig undervisningsdag lørdag kl 9 00 15 00 Forudsætninger Ingen ud over bachelorniveau 73 Tekstformidling på Internet Ugentlig undervisningsdag onsdag kl 16 00 21 30 Forudsætninger Ingen ud over bachelorniveau speciel ansøgningsfrist 19 januar 2001 Enkeltfagskursus tilrettelagt som fleksibel undervisning Nedenfor ses IT højskolens kursus med fleksibel undervisning Tilstedeværelsesundervisningen på kurset ligger på fem lørdage i foråret 2001 Derudover kommer undervisning over Internettet samt studier hjemmearbejde uden for IT højskolen Kurset udbydes under 74 tompladsordningen Beskrivelsen indeholder kursets titel den ugedag hvor undervisningen finder sted og de kursusspecifikke forudsætninger for det enkelte kursus 75 Tilmelding til kurset fandt sted online 76 Grundlæggende Programmering Undervisningsdage fem lørdage samt undervisning via Internettet Forudsætninger Ingen ud over bachelorniveau 77 USEMAP inter icon2top gif opdateret 27 04 2001 78 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser 4 Enkeltfag 5 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif IT Platforme og Organisation Kursusbeskrivelse Semester Forårssemesteret 2001 Ugentlig undervisningsdag Lørdage i uge 9 14 og uge 16 21 alle dage kl 9 00 13 00 Ansøgningsfrist 26 januar 2001 Ansøgning 13 Ansøgning om optagelse på kurset kan finde sted online her NB Kurset vil blive oprettet og har stadig ledige pladser Formelle forudsætninger Ingen ud over bachelorniveau Målsætninger Målet med dette kursus er at give dig en grundlæggende forståelse af IT verdenen såvel teknisk som arbejdsmæssigt Efter kurset skal du kunne snakke fagligt med IT folk kunne bruge Windows NT og Linux til filhåndtering editering og oversættelse af software kunne bruge grundlæggende HTML kunne forklare computerens arkitektur og funktion kunne forklare kapacitetsforhold for CPU og netværk kunne forklare formålet med IT i virksomheder kunne forklare udviklingsprocessen af IT systemer og dens problemer Fagligt indhold Udgangspunktet er at datamaten ligesom andre komplekse systemer tre fundamentale egenskaber Evnen til at huske til at beregne og til at kommunikere Ideen er at disse egenskaber i praksis realiseres på forskellige niveauer fra den fysiske datamat styresystemet og anvendelsesprogrammerne til de organisatoriske arbejdsprocesser Detaljeret indhold Maskinarkitektur Netværk Operativsystemer Windows NT og Linux IT i virksomheder Udviklingsprocessen ved IT systemer Litteratur Kursets grundbog vil være Introduction to Information Systems Essentials for the Internetworked E Business Enterprise af James A O Brien i efteråret 2000 blev 9 udgave brugt men der skulle nu være kommet en 10 udgave Endvidere vil der være noget supplerende materiale noter uddrag af andre bøger eventuelt med Computer Science an overview som supplerende lærerbog dette var tilfældet i efteråret 2000 men er pt under genovervejelse Kursusform Forelæsninger og praktiske øvelser Sted IT højskolen Glentevej 67 2400 København NV Eksamensform Eksamensform er endnu ikke fastlagt Eksamensdato Ikke fastlagt Underviser Mikkel Arentoft Hvis du har spørgsmål vedrørende kurset så kontakt venligst 14 studievejledningen 15 USEMAP inter icon2top gif opdateret 27 04 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser Studievejledning 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Ofte stillede spørgsmål 11 Uddannelses katalog inter menu bund gif Studievejledning IT højskolen har fire studievejledere der kan svare på generelle spørgsmål om IT højskolen uddannelser optagelse og på spørgsmål der knytter sig til de enkelte uddannelser og enkelte linier på IT højskolen Åbningstider mandag kl 10 14 tirsdag kl 10 14 onsdag kl 10 14 torsdag kl 10 14 fredag kl 10 14 Lukket i uge 32 6 10 august 2001 på grund af samtaler med nye studerende Sådan kan du kontakte studievejledningen Telefon 38 16 88 73 e mail 12 studievejledningen it c dk Adresse Studievejledningen Glentevej 67 DK 2400 København NV Lokale 1 51 Studievejledere Helle Kjærsgaard Jesper Søndergaard Jensen Karen Maria Møller Rikke Vogelsang 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Studievejledning Ofte stillede spørgsmål 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Ofte stillede spørgsmål Her på siden finder du svar på de spørgsmål studievejledning oftest bliver stillet Finder du ikke dit svar her er du selvfølgelig velkommen til at kontakte studievejledningen på 38 16 88 73 eller 11 studievejledningen it c dk Optagelse 12 Hvad er optagelseskravene på IT højskolen 13 Hvornår er der ansøgningsfrist 14 Hvornår får jeg besked om optagelse Undervisning 15 Kan man have arbejde ved siden af studierne 16 Hvordan foregår undervisningen 17 Kan man få fjernundervisning 18 Kan man tage masteruddannelsen om aftenen 19 Hvilket sprog undervises der på Semesterplan 20 Hvordan ser semsterplanen ud Enkeltfag 21 Kan jeg tage enkeltfag på IT Højskolen 22 Hvordan søger jeg om enkeltfag på IT højskolen 23 Hvordan får jeg meritoverført mit enkeltfag 24 Hvornår er der ansøgningsfrist til enkeltfag 25 Hvornår får jeg besked om optagelse på enkeltfag Diverse 26 Hvilke andre IT uddannelser findes der i Danmark 27 Kan jeg få SU Optagelse Hvad er optagelseskravene på IT højskolen For at kunne blive optaget på kandidatuddannelserne skal man som hovedregel have en bachelorgrad eller tilsvarende kvalifikationer For optagelse på Internetteknologi og Multimedieteknologi kræves desuden matematik på A niveau Hvis du allerede har en kandidateksamen bliver du stillet bagerst i køen da man som hovedregel ikke må have to kandidatgrader For at blive optaget på masteruddannelsen kræves minimum en bachelorgrad eller tilsvarende kvalifikationer samt to års relevant erhvervserfaring For at blive optaget på diplomuddannelsen kræves der som hovedregel en videregående uddannelse eller tilsvarende kvalifikationer samt mindst to års relevant erhvervserfaring Den videregående uddannelse kan være en kortere videregående uddannelse en mellemlang videregående uddannelse eller en lang videregående uddannelse f eks bachelor eller kandidatgrad fra et universitet Hvornår er der ansøgningsfrist Ansøgningsfristen for optag på IT Højskolen pr 1 september 2001 er den 15 juni 2001 klokken 12 00 Ansøgningsmaterialet bliver offentliggjort på websitet i midten af maj Hvornår får jeg besked om optagelse IT højskolen udsender svar medio juli 2001 Undervisning Kan man have arbejde ved siden af studierne IT højskolen råder til at man ikke har erhvervsarbejde ved siden af studierne Det er dog op til den enkelte selv at vurdere om man kan følge studierne og samtidig have erhvervsarbejde Hvordan foregår undervisningen På kandidatlinierne er undervisningen i et semester tilrettelagt med tre sideløbende kurser i en 10 12 ugers periode Herefter er der en projektperiode Det hele afsluttes med eksamen i hvert kursus og i projektet På masteruddannelserne og diplomuddannelserne er strukturen den samme med kurser og projekter men antallet af kurser er mindre Læs mere under de enkelte 28 uddannelser Kan man få fjernundervisning Ja det kan man i begrænset omfang Fra foråret 2001 udbyder It højskolen kurset Grundlæggende programmering som fleksibel undervisning Det indebærer udveksling af obligatoriske opgaver og materialer over internettet og fem lørdagsforelæsninger af fem timers varighed fordelt over semestret I fremtiden vil flere af IT højskolens kurser kunne gennemføres på den fleksible måde Kan man tage masteruddannelsen om aftenen Masteruddannelsen foregår som regel i dagtimerne men enkelte kurser er det muligt at følge fleksibelt Se ovenstående spørgsmål Hvilket sprog undervises der på Undervisningen foregår hovedsageligt på dansk Enkelte fag udbydes på engelsk ligesom gæsteforelæsninger foregår på engelsk Undervisningssprog fremgår af kursusbeskrivelserne under de enkelte linier Semesterplan Hvordan ser semsterplanen ud Kursusperiode 29 januar 27 april Påskeferie 10 16 april Projektperiode 30 april 25 maj Eksamen 28 maj 29 juni Enkeltfag Kan jeg tage enkeltfag på IT Højskolen Du kan tage enkeltfag på IT højskolen hvis du er tilmeldt en kandidatuddannelse på en anden højere læreanstalt Som noget nyt udbyder IT højskolen fra 2001 desuden en række kurser for eksterne studerende For at kunne søge optagelse på disse kurser skal ansøgerne minimum have en bacheloruddannelse bag sig Det skyldes at de udbudte kurser også følges af skolens kandidat og masterstuderende så det er vigtigt at deltagernes niveau stemmer overens for at få et godt udbytte at undervisningen Hvordan søger jeg om enkeltfag på IT højskolen Du skal udfylde et ansøgningsskema som er tilgængeligt via skolens hjemmeside Sammen med ansøgningsskemaet findes en udtømmelig liste over de kurser der kan søges om plads på Hvis du finder et kursus i kursusbogen som ikke er på listen er det fordi det ikke er tilgængeligt for andre end IT højskolen primære studerende Det er vigtigt at du undersøger hvilke krav din egen institution har med hensyn til meritoverførsel af fag fra et andet universitet IT højskolen kræver en forhåndsgodkendelse for at kunne optage kandidatstuderende fra andre universiteter Hvordan får jeg meritoverført mit enkeltfag Du skal forhøre dig på din egen uddannelsesinstitution Det er typisk sådan at man på forhånd søger sit studienævn om en forhåndsgodkendelse Hvornår er der ansøgningsfrist til enkeltfag Ansøgningsfristen til enkeltfag i efterårssemestret 2001 er 15 august 2001 Hvornår får jeg besked om optagelse på enkeltfag Ledige pladser på kurser fordeles til enkeltfagsstuderende når kandidat og masterstuderende på IT højskolen har valgt kurser Ansøgere der har søgt enkeltfag kan forvente at få svar ultimo august til kurserne der begynder i september Diverse Hvilke andre IT uddannelser findes der i Danmark Der findes en lang række IT uddannelser i Danmark Nogle er korte eller mellemlange uddannelser mens andre er længerevarende akademiske uddannelser På Undervisningsministeriets hjemmeside kan du søge på IT relaterede uddannelser Adressen er 29 www uvm dk Kan jeg få SU Kandidatuddannelserne er SU berettiget mens masteruddannelser og diplomuddannelsen ikke er SU berettigede 30 USEMAP inter icon2top gif opdateret 04 05 2001 31 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Studievejledning Uddannelses katalog 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Uddannelseskatalog I uddannelseskataloget kan du finde informationer om IT højskolens Kandidat Master og Diplomuddannelser 11 I word format 12 I PDF format 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser 4 Enkeltfag 5 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Tekstformidling på Internet lørdag Kursusbeskrivelse Semester Forårssemesteret 2001 Ugentlig undervisningsdag Lørdag kl 9 00 15 00 Ansøgningsfrist Mandag den 15 januar 2001 kl 12 00 Ansøgning 13 Ansøgning om optagelse på kurset kan finde sted online her Formelle forudsætninger Ingen ud over bachelorniveau Målsætninger De studerende skal lære at skrive og redigere tekstmateriale til interaktive medier især Internettet Kurset henvender sig til alle der ønsker at sætte sig ind i de særlige krav som Internet og andre elektroniske medier stiller til tekstuel formidling Deltagerne har typisk skriveerfaring fra universitetsopgaver journalistisk arbejde eller andet og ønsker at blive stærke i beherskelsen af tekstformidling til de nye medier Kursets mål er at give deltagerne et solidt teoretisk og praktisk grundlag for at formidle via elektroniske medier Fagligt indhold Kurset beskæftiger sig med indholdet og sproget Hvordan skriver man kort klart informativt og levende Hvordan giver man eksempelvis videnskabelige tekster en chance for at blive fundet og læst på nettet Kurset behandler desuden kommunikation mellem afsender og modtager og interaktion mellem menneske og maskine Der vises eksempler på gode og mindre gode tekster på nettet og gøres forsøg på at defineret nye digitale tekstgenrer Deltagerne vil i løbet af kurset selv producere en del tekst til Internet både som faste opgaver og med mulighed for at arbejde med eget tekstmateriale Kurset bestås ved aflevering af obligatoriske opgaver og afsluttende skriftlig eksamen Kursusform Forelæsninger og praktiske øvelser Sted IT højskolen Glentevej 67 2400 København NV Eksamensform Skriftlig eksamen med bedømmelse efter 13 skalaen og ekstern censur Spørgsmål Hvis du har spørgsmål vedrørende kurset så kontakt venligst 14 studievejledningen 15 USEMAP inter icon2top gif opdateret 27 04 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser 4 Enkeltfag 5 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Tekstformidling på Internet onsdag kl 16 00 21 30 Kursusbeskrivelse Semester Forårssemesteret 2001 Ugentlig undervisningsdag Onsdag kl 16 00 21 30 Ansøgningsfrist Fredag den 19 januar 2001 Ansøgning 13 Ansøgning om optagelse på kurset kan finde sted online her Formelle forudsætninger Ingen ud over bachelorniveau Målsætninger De studerende skal lære at skrive og redigere tekstmateriale til interaktive medier især Internettet Kurset henvender sig til alle der ønsker at sætte sig ind i de særlige krav som Internet og andre elektroniske medier stiller til tekstuel formidling Deltagerne har typisk skriveerfaring fra universitetsopgaver journalistisk arbejde eller andet og ønsker at blive stærke i beherskelsen af tekstformidling til de nye medier Kursets mål er at give deltagerne et solidt teoretisk og praktisk grundlag for at formidle via elektroniske medier Fagligt indhold Kurset beskæftiger sig med indholdet og sproget Hvordan skriver man kort klart informativt og levende Hvordan giver man eksempelvis videnskabelige tekster en chance for at blive fundet og læst på nettet Kurset behandler desuden kommunikation mellem afsender og modtager og interaktion mellem menneske og maskine Der vises eksempler på gode og mindre gode tekster på nettet og gøres forsøg på at defineret nye digitale tekstgenrer Deltagerne vil i løbet af kurset selv producere en del tekst til Internet både som faste opgaver og med mulighed for at arbejde med eget tekstmateriale Kurset bestås ved aflevering af obligatoriske opgaver og afsluttende skriftlig eksamen Kursusform Forelæsninger og praktiske øvelser Sted IT højskolen Glentevej 67 2400 København NV Eksamensform Skriftlig eksamen med bedømmelse efter 13 skalaen og ekstern censur Spørgsmål Hvis du har spørgsmål vedrørende kurset så kontakt venligst 14 studievejledningen 15 USEMAP inter icon2top gif opdateret 27 04 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser 4 Enkeltfag 5 Optagelses betingelser Søg om optagelse 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Optagelsesbetingelser For at blive optaget som enkeltfagsstuderende på et kursus under Åben Uddannelse på IT højskolen kræves mindst en videregående uddannelse på bachelorniveau eller tilsvarende evt specielle IT faglige forudsætninger I kursusbeskrivelsen er angivet de eventuelle specifikke faglige forudsætninger som er gældende for det enkelte kursus at der er ledig plads på kurset Kvalificerede ansøgere får tildelt studiepladser i forhold til den rækkefølge ansøgningerne inkl dokumentation for adgangsgivende uddannelse og kursusspecifikke forudsætninger modtages på IT højskolen først til mølle princippet at ansøgningen inkl dokumentation er modtaget før ansøgningsfristens udløb IT højskolen forbeholder sig ret til ikke at oprette et kursus hvis der er for få studerende tilmeldt kurset eller hvis andre særlige omstændigheder opstår 13 Ansøgning om optagelse på kurserne fandt sted online her Hvis du har spørgsmål vedrørende optagelsesbetingelser for enkeltfagskurser under Åben Uddannelse så kontakt venligst 14 studievejledningen 15 USEMAP inter icon2top gif opdateret 27 04 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser 4 Enkeltfag 5 Kursus information 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Kursusinformation Følgende generelle information er gældende for de enkelte kurser Undervisningsperiode Et kursus gennemføres i løbet af et semester og afsluttes med eksamen Forårssemesteret starter i slutningen af januar og slutter i juni mens efterårssemesteret starter i slutningen af august og slutter i januar Omfang Hvert kursus har et omfang svarende til 7 5 ECTS point European Credit Transfer System svarende til 1 8 studieår Ansøgningsfrist NB Ansøgningsfristen til enkeltfagskurser under Åben Uddannelse er overskredet og der kan ikke længere ansøges om optagelse på enkeltfagskurser i forårssemesteret 2001 IT højskolen vil i løbet af foråret og sommeren annoncere de enkeltfagskurser som der kan søges optagelse på til efterårssemesteret 2001 Tilmeld dig evt IT højskolens 13 elektroniske nyhedstjeneste hvor de kommende enkeltfagskurser vil blive omtalt Undervisningsniveau IT højskolen er et universitet og undervisningen under Åben Uddannelse foregår på universitetsniveau Ansøgning 14 Online ansøgning fandt sted her Pris 6 250 00 kr pr kursus Uddannelsesstøtte Enkeltfagsstuderende er ikke SU berettigede Hvis dit samlede uddannelsesforløb er på mere end 20 undervisningslektioner pr uge kan du muligvis søge om SVU som er 15 Statens VoksenUddannelsesstøtte Yderligere information Hvis du har yderligere spørgsmål vedrørende IT højskolens uddannelser og optagelse bedes du kontakte 16 studievejledningen 17 USEMAP inter icon2top gif opdateret 27 04 2001 18 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser 4 Enkeltfag 5 Pris 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Pris 6 250 00 kr pr kursus 13 USEMAP inter icon2top gif opdateret 27 04 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser Phd studier 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif 11 USEMAP inter icon2top gif opdateret 27 04 2001 12 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser Kurser efterår 2000 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Kurser efterår 2000 Elektronisk kursusbog Kurserne for efteråret 2000 er beskrevet i den elektroniske 11 kursusbog Kursernes hjemmesider Kursernes hjemmesider for efteråret 2000 findes 12 her 13 USEMAP inter icon2top gif opdateret 27 04 2001 14 wwwadm it c dk 1 IT højskolen Forskning 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English 9 Vision 10 Publikationer 11 Eksterne undervisere 12 Interview 13 Ph D studies inter menu bund gif Forskning På IT højskolen findes fire forskningsafdelinger 14 Afdelingen for Digital Æstetik og Kommunikation Afdelingen for Digital Æstetik og Kommunikation beskæftiger sig med æstetiske kulturelle sociale og kommunikative aspekter af IT Med udgangspunkt i humanistiske og samfundsvidenskabelige forskningstraditioner søger vi at udvikle teoretiske og tværvidenskabelige forståelsesmodeller af digitale fænomener 15 Teoriafdelingen Teoriafdelingen fokuserer på følgende forskningsområder algoritmer og kompleksitetsteori semantik for logik og programmeringssprog kategoriteoretisk logik og typeteori modeller for parallelle systemer verifikation automatisk testgenerering mobilitet 16 Innovationsafdelingen Innovationsafdelingen arbejder med at udvikle nye teknologier gennem forskning af høj kvalitet og dennes innovative anvendelser Aktuelt har vi fokus på datasikkerhed og kompression datamatsyn og grafik interaktionsteknologi og softwareteknologi 17 Afdelingen for Design og Brug af Informationsteknologi DuIT engelsk version Afdelingen for Design og Brug af Informationsteknologi DuIT udvikler begrebsdannelser metoder og værktøjer Der fokuseres på forståelse af sammenhængen imellem IT dens brugere og deres arbejdspraksis samt på forståelse og understøttelse af design og udvikling Forskningen er i høj grad empirisk og eksperimentelt drevet og der bygges på både teknisk naturvidenskabelige humanistiske og samfundsvidenskabelige forskningstraditioner 18 USEMAP inter icon2top gif opdateret 04 05 2001 19 wwwadm it c dk 1 IT højskolen 2 Forskning Vision 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Visioner og mål IT højskolens vision IT højskolen vil i dialog med sine omgivelser skabe et attraktivt og levende forsknings og uddannelsesmiljø der bidrager til vækst og udvikling i det danske og internationale samfund ved at skabe et IT miljø der favner naturvidenskab humaniora design og erhverv at uddanne personer med en stor og bred viden om IT og ITs muligheder gennem forskning at skabe ny teknologi og bedre anvendelse af eksisterende teknologi at øge samfundets indsigt i IT og ITs muligheder Målsætning for forskning IT højskolen vil på internationalt niveau og på et vidtfavnende akademisk grundlag bidrage til udvikling af og indsigt i IT ved at etablere et inspirerende og anerkendt forskingsmiljø drive grundforskning i IT og IT s muligheder skabe ny teknologi og nye anvendelsesmuligheder for IT rekruttere velkvalificerede og anerkendte forskere og undervisere sikre et højt fagligt og pædagogisk niveau i undervisningen 10 USEMAP inter icon2top gif opdateret 04 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Forskning Publikationer 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Publikationer IT højskolens forskningspublikationer findes kun på engelsk Klik her for at se en liste over 10 publikationerne 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen English 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English 9 Find employee staff and Ph D students inter menu bund gif The IT University of Copenhagen Welcome to the IT University of Copenhagen IT C 10 Contact Information 11 Research Projects 12 Ph D studies at IT C 13 Master and kandidat courses in English some text in Danish 14 Vacant positions 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 English Find employee staff and Ph D students 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Find staff and Ph D students at the IT C Name or part of it Type of position all staff Affiliation IT C and partners Find person s 10 USEMAP inter icon2top gif opdateret 04 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Kontakt Contact Information 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Contact Information Address The IT University of Copenhagen Glentevej 67 DK 2400 Copenhagen Denmark Phone 45 38 16 88 88 Fax 45 38 16 88 99 Information for students Student information office 10 Studievejledningen it c dk Press relations and contacts to industry President Mads Tofte 11 tofte it c dk Vacant positions Human Resources Officer Kirsten Talbro Laraignou 12 ktl it c dk BuzzTalks Tanja Danner 13 td it c dk Buildings and Maintenance Head of dept of Buildings and Internal Service Margit Achen 14 margit it c dk Comments and suggestions regarding the web site Webmaster 15 wwwadm it c dk 16 USEMAP inter icon2top gif opdateret 11 04 2001 17 wwwadm it c dk 1 IT højskolen 2 Forskning Projekter 3 Uddannelser 4 Stillinger 5 Aktiviteter 6 Home 7 Personer 8 SiteMap 9 Intranet 10 English inter menu bund gif Research Projects and Research Software 11 Algorithm Group 3D image Analysis 12 3D lab Functional Software Technologies 13 Funtechs Standard ML 14 Moscow ML 15 The ML Kit Embedded Software 16 RCES Verification of embedded systems 17 VERIS Design and Use of Interaktive Web Applications 18 DIWA 19 Computation of Natural Shape 20 Eye Based IT 21 Boolean Expression Diagrams 22 BuDDy 23 MuDDy 24 Difference Decision Diagrams 25 STTools 26 USEMAP inter icon2top gif opdateret 04 12 2000 27 wwwadm it c dk 1 IT højskolen 2 Forskning Ph D studies 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Profile 11 Application 12 Academic Board 13 Funding 14 Courses inter menu bund gif Ph D studies The IT C has 19 Ph D students enrolled at present This number is expected to increase drastically in a short period of time Information about available Ph D scholarships can be seen at 15 vacancies 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies Profile 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Lisbeth Klastrup I den virtuelle verden Jeg forsker i fortælling og læring i virtuelle verdener fortæller ph d studerende Lisbeth Klastrup Dels læser jeg en del litteraturteori blandt andet fortælleteori Dels bruger jeg en del tid på at se nærmere på virtuelle verdener og endelig så bygger jeg også mit eget virtuelle univers her på IT højskolen 30 årige Lisbeth Klastrup startede på ph d studiet i oktober 1999 og er tilknyttet linien design kommunikation og medier Inden hun begyndte på IT højskolen havde hun afsluttet sit speciale i litteraturvidenskab om interaktive fortællinger på Københavns Universitet Jeg søgte stillingen på IT højskolen fordi jeg var tiltrukket af et tværfagligt miljø og synes det kunne være spændende at være med til at bygge et nyt forskningsmiljø op Stedet er præget af pionerånd nytænkning og hårdt arbejde For øjeblikket kunne jeg godt tænke mig nogle flere humanistiske forskere men der kommer nye til og skolen lægger vægt på et bredt fagligt grundlag blandt lærerne I efteråret udbyder Lisbeth Klastrup et kursus i virtuelle samfund Desuden er hun ved at forberede en konference om computerspil og virtuelle verdener Konferencen skal forhåbentlig foregå på IT højskolen Når Lisbeth Klastrup er færdig med sin Ph D kunne hun godt tænke sig at kombinere forskning og undervisning med et privat job hvor hun enten havde et multimedieforlag eller arbejdede med virtuelle verdener i virksomheder 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies Application 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Application 11 Short description of the IT University further information in Danish can be obtained from the 12 homepage Dansk ansøgningspakke i forskellige formater skema vejledning Word 97 13 skemaDK doc 14 vejlDK doc PostScript 15 skemaDK ps 16 vejlDK ps Application package in English in various formats form guide Word 97 17 skemaENG doc 18 vejlENG doc PostScript 19 skemaENG ps 20 vejlENG ps Questions can be directed to the Ph D school at e mail 21 phdadm it c dk or telephone 45 3816 8888 Maintained by 22 Lotte Møller lm it c dk 23 USEMAP inter icon2top gif opdateret 04 05 2001 24 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies Academic Board 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English 11 Mødekalender inter menu bund gif The Academic Board for Ph D studies 12 Nyeste udkast til studieordning Skema til halvårsrapporter o Latex kildetekst 13 halvaars tex til udfyldelse og latex oversættelse o Word 97 udgave 14 halvaars doc Generelle spørgsmål vedrørende ph d studierne kan sendes til 15 phdadm itu dk Interrim ph d studienævnet Henrik Hulgaard 16 henrik it c dk lektor formand Fritz Henglein 17 henglein it c dk lektor DoI Anker Helms Jørgensen 18 anker it c dk lektor DiAC Mads Nielsen 19 malte it c dk lektor DoI Stephen Alstrup 20 stephen it c dk forskningsadjunkt Teori Kasper Østerbye 21 kasper it c dk lektor DUIT Lisbeth Klastrup 22 klastrup it c dk ph d studerende Michael Florentin Nielsen 23 erik it c dk ph d studerende suppleant Lotte Møller 24 lm it c dk AC fuldmægtig 25 USEMAP inter icon2top gif opdateret 04 05 2001 26 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies 4 Academic Board Mødekalender 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Mødekalender I forårssemestret 2001 vil ph d studienævnets ordinære møder være torsdage kl 13 14 i lokale 2 31 Ordinære møder 1 februar 22 februar 22 marts 19 april 17 maj 14 juni Møder vedr studieordning 1 februar kl 10 12 lok 2 31 8 februar kl 10 12 lok 2 03 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies Funding 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Funding Hver ph d studerende har sammen med sin vejleder en annuum s beløb på p t 25000 kr år 2001 dimse kontoen som skal benyttes til rejser sommerskoler småindkøb bøger specielle PC dimser o lign Er der udgifter herudover kan ph d studienævnets formand bevillige mindre beløb op til 5000 kr Beløb over 5000 kr kræver en ansøgning til ph d studienævnet I begge tilfælde skal der afleveres en ansøgning med følgende punkter Ansøgernavn ph d studerende og vejleder Formål f eks rejse til Californien for at præsentere en artikel Begrundelse for at søge ph d studienævnet f eks jeg har fået optaget så mange artikler i år at jeg har opbrugt hele vejleder puljen til rejser allerede Budget krævet deltaljeringsniveau f eks billetten koster ca 8500 kr iflg rejsebureauet plus et par tog billetter studenterbetaling for konferencen er 1200 kr derudover kommer diæter Underskrives af ph d studerende og vejleder Vejlederen dokumenterer med sin underskrift relevansen af aktiviteten udgiften Ansøgningen vedlægges en udskrift af dimse kontoen Ansøgningen indleveres til ph d studienævnsformanden ph d studienævnet via Lotte Møller lok 1 38 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies Courses 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English 11 Advanced data structures E2000 12 Information theory E2000 13 DAIMI IT C Meetings 14 Topics in Language Based Security F2001 15 Avanceret algoritmik F2001 16 Scale based Geometry and Singularities for Computer Imaging F2001 17 Constructive Logic Project F2001 18 Streaming video for wireless networks F2001 inter menu bund gif Ph D courses Here is a list of available Ph D courses at the IT University of Copenhagen Scale based Geometry and Singularities for Computer Imaging by 19 Professor James Damon May 14 17 2001 Streaming video for wireless networks by 20 Professor K J Ray Liu May 17 23 2001 Topics in Language Based Security by 21 Assistant Professor Greg Morrisett June 11 15 2001 Courses at other universities 22 Aalborg University 23 Danmarks Tekniske Universitet 24 USEMAP inter icon2top gif opdateret 04 05 2001 25 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies 4 Courses Advanced data structures E2000 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Course in advanced data structures Kursets navn Avancerede datastrukturer Engelsk navn Advanced data structures Semester E2000 Formelle forudsætninger Kendskab til algoritmik fra et introducerende kursus Sprog Dansk engelsk Målsætninger At give de studerende kendskab til kompleksitetet af avancerede datastrukturer og nogle af dets anvendelser i datalogi Faglig indhold I kurset vil vi bygge videre på introducerende algoritmekurser Vi vil fokusere på problemer der er målrettet mod anvendelser for massive data sæt I 90 erne har en række gennembrudsresultater anvist nye avancerede tekniske muligheder f eks at sortering kan gøres hurtigere end i O n log n tid For de stadigt voksende datamængder man i dag er interesseret i at behandle er det ofte mere og mere essentielt at udnytte sådanne avancerede teknikker til performanceforbedringer Kurset vil præsentere helt nye forskningsresultater for problemstillinger i denne kontekst Blandt anvendelserne for disse kan nævnes performance relaterede problemer for databaser datawarehouses konstruktion af dominanstræ for en control flow graf ruteteknikker konstruktion af internet søgemaskiner og DNA RNA sekvensanalyse Blandt de mere klassiske algoritmiske problemstillinger der vil kunne blive inddraget i kurset er søgning i sublogaritmisk tid beregning af korteste vej i lineær tid samt helt nye endnu ikke publicerede resultater for range searching Kurset vil således præsentere algoritmiske state of the art teknikker og give applikationer af disse Kursusform Forelæsninger seminar og obligatoriske opgaver Sted ITC Glentevej Kursusdag Torsdag Eksamensform Obligatorisk opgave Eksamensdato 18 januar 2001 Bemærkninger Såfremt et flertal af de studerende er fra DIKU afholdes kurset på DIKU Fagkoordinator Stephen Alstrup 12 stephen it c dk Kursusansvarlig Stephen Alstrup 13 stephen it c dk 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies 4 Courses Information theory E2000 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Ph D seminar in information theory This seminar is organised in collaboration between the KU University of Copenhagen with the Department of Mathematics the DIKU Department of Computer Science and the IT University of Copenhagen Organisers Flemming Topsøe main responsible Boris Ryabko and Peter Johansen Click 12 here for more information about this seminar 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies 4 Courses DAIMI IT C Meetings 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif DAIMI IT C Meeting Series 12 DAIMI IT C Meeting Series 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies 4 Courses Topics in Language Based Security F2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Topics in Language Based Security by 12 Assistant Professor Greg Morrisett June 11 15 2001 Preliminary course description When secure operating systems emerged in the early 1970 s the primary goal was to isolate users processes from one another to mediate access to files and to facilitate fair sharing of resources Back then OS kernels were small and system components were updated infrequently from tape or disk A system administrator had a good idea as to what software components were installed where to get trustworthy components and how to configure the system In short operating systems provided a good architecture for ensuring the secure operation of systems In contrast today s desktops are running primarily by a single user so almost all applications run with the same privileges Desktops are connected by fast networks that allow new software components to be installed from various sites with the click of a button Worse some components are installed and executed without the user s consent or knowledge Furthermore modern operating systems consist of tens of millions of lines of code code that in practice has proven to be buggy And finally because operating systems know so little about the semantics of the applications they are running they have no opportunity to intervene when something bad happens outside the kernel As a result today s operating systems do not protect desktops against relatively simple attacks e g Melissa the Love Bug etc and it s only a matter of time until we are hit with a really bad virus Consequently researchers are re visiting security architectures to find solutions that take the modern networked world into account Certain programming language based technologies have emerged as exciting contenders Interpreters just in time compilers partial evaluators program analyzers type checkers proof checkers binary rewriters and certifying compilers have all been suggested as security enforcement mechanisms that in principle a can enforce a wider range of fine grained least privilege security policies than traditional OS based reference monitors b can achieve superior performance and c require only small trustworthy components The most widely known exemplar is the Java Virtual Machine and its associated Security Manager The recently announced Microsoft IL and associated NET architecture is similar But the JVM and MSIL architectures suffer from a number of shortcomings and are in danger of evolving towards the pitfalls of operating systems We will take a quick survey through exciting language based security technologies and access their potential for moving out of the lab and into the real world Among the topics that we will cover 1 what security policies can we hope to enforce 2 language based reference monitors 3 the role of type systems in security 4 proof carrying code and certifying architectures Registration Please contact 13 Lotte Møller for registration and help for booking accommodation The lectures are free of charge Credit The course yields 2 ECTS European Credit Transfer System Site The course takes place at 14 the IT University of Copenhagen Glentevej 67 DK 2400 NV Copenhagen Denmark 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies 4 Courses Avanceret algoritmik F2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Avanceret algoritmik Get further information about the course 12 here 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies 4 Courses Scale based Geometry and Singularities for Computer Imaging F2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Scale based Geometry and Singularities for Computer Imaging May 14 17 2001 at the IT University of Copenhagen This series of lectures will concern scale based geometry as applied to computer images For various problems in computer imaging we wish to be able to analyze the geometry of the objects in the image In order that geometric structures associated to objects in an image can be used for various purposes they should satisfy certain basic properties which include the following 1 They should apply to discrete real world objects and to the mathematical objects which model them which include nondifferentiable functions measures etc 2 Genericity This means that most images have associated geometric structures which exhibit local properties described by a finite catalogue of possibilities 3 Structural Stability These structures must be constructed in the presence of noise and various distortions Hence the structure should be robust i e the structural properties should remain unchanged under sufficiently small perturbations 4 Generic Transitions Variations in the structure occurring for images changing with one or 5 The methods should be applicable to features as well as raw images The lectures will explain how the introduction of scale together with the methods of singularity theory provide rigorous mathematical results establishing the list of properties for a large class of possible geometric structures and demonstrating the applicability to specific ones First we consider what exactly genericity means and what it doesn t mean We will explain how the traditional methods of singularity theory using transversality theory leads to generic properties However genericity requires that we place a topology on the space of functions measures etc modeling the images Even for images defined by smooth functions the topology for genericity does not match traditional mathematical ideas for closeness of images More generally if we wish to allow images to be defined by general nondifferentiable functions then the stability in the classical framework will fail Both of these problems are overcome t hrough the introduction of scale The method of Gaussian blurring introduces the notion of scale and is the prototype for a large class of scaling kernels for which we can apply the methods of singularity theory These allow us to pass from methods designed for idealized problems involving differentiable functions such as the Blum medial axis and Canny edges to more general versions applicable to real world problems We explain how the traditional methods of singularity theory must be modified and what they yield We illustrate with a number of explicit examples how the results about generic properties of local structures stability and generic transitions can be obtained These include both edge and medial scale based geometric structures Course material Ideas from the following book and papers will be presented at the course Although not a prerequisite you might want to look through the introduction part of the material prior to the course The course will not scrutinize every detail in these papers but will explain the highlights and main ideas from them as well as from other material Bruce and Giblin Curves and Singularities ISBN 0 521 42999 4 J N Damon Ridges and Cores for Two Dimensional Images Jour Math Imag and Vision 10 1999 163 174 J N Damon Generic Structure of Two Dimensional Images under Gaussian Blurring SIAM Jour Appl Math 59 1998 97 138 J N Damon Singularities with Scale Threshold and Discrete Functions Exhibiting Generic Properties Proc Int Workshop on Real and Complex Singularities Sao Carlos Maria Ruas Ed Math Contemp vol 12 1997 45 65 Lecturer James N Damon is professor in Mathematics at University of North Carolina Chapel Hill since 1983 He graduated as Ph D from Harvard with John Mather as supervisor in 1972 He has developed the singularity theory of solutions to differential equations This constitutes when applied to the heat equation the mathematical basis of feature detection in Gaussian scale space Please see 12 http www math unc edu Faculty jndamon Registration Please contact 13 Lotte Møller for registration and help for booking accommodation The lectures are free of charge Credit The course yields 2 ECTS European Credit Transfer System Site The course takes place at 14 the IT University of Copenhagen Glentevej 67 DK 2400 NV Copenhagen Denmark Further information Up to date information will be provided at 15 http www it c dk pub db 425 html 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Projekter specialer og praktik Studenterprojekter efterår 2000 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Projektbørs efterår 2000 I november 2000 vil en stor del af vores studerende begynde deres studenterprojekter for efterårssemesteret under vejledning af deres respektive undervisere Projekterne er planlagt til at forløbe over fire uger og være færdige inden jul Her finder du en kort beskrivelse af de indkomne projektforslag fra ansatte virksomheder og studerende til fire ugers projekterne for efteråret 2000 Hvis du som studerende ønsker at være med i et af projekterne så send en mail til kontaktpersonen for projektet Virksomheder er velkomne til at sende projektforslag til 11 Mikael Kjærbye som vil sørge for at de bliver annonceret her på internettet Her er en liste over aktuelle projektforslag 12 Portal for ITEK og interneterhvervet 13 Søgemaskiner 14 Planning for an ever open and accessible Data Warehouse 15 Fun Facts website 16 Embedded Java 17 Automatisering af test 18 Wap overvågning og styring af netværkselementer 19 Apparatsoftware 20 Animeret sitcom 21 Interaktiv benchmarking 22 Modkultur dk et debatforum med fokus på et tema 23 Online registrering af studerendes kursusønsker 24 Salg af biografbilletter flere billetluger 25 Fælles beskedsystem for en arbejdsplads 26 Udklipsbureau 27 Spil og rangliste 28 Webbaseret diskussionsforum 29 Analyse af webserverlog 30 AgroDebat 31 Internetmesse forår 2002 Øksnehallen 32 Web designer til start up website 33 Politisk design 34 Database baseret Web publicering 35 Udvikling af skole Community 36 Metoder til vurdering af brugervenlighed 37 Designforslag til Wushu Kampskoles nye hjemmeside 38 www uddannelseogjob dk 39 3d Biograf information på nettet 40 Berømte designere 41 DR Tekst TV design 42 Operational Semantics and Program Equivalence 43 Constructive Logic 44 Computation and Deduction Logical Frameworks 45 Visualisering af komplekse informationsstrukturer 46 Systemudvikling af Web baserede informationssystemer 47 Systemer til vidensdeling og knowledge management 48 Algol like languages 49 Intersection types in programming 50 Categorical Logic 51 DKM forberedelseskursus 52 Webside til Lundehusskolen 53 WebDAV som grundlag for samarbejdsstøtte på Web en 54 Elektronisk dokumenthåndtering 55 Open Source Content Manager til IT C 56 Synkronisering af mobile databaser 57 Distribueret Emerald Watchdog 58 Distributed Time Management 59 Distributed Replication Manager for Backup 60 Emerald på en Palm Pilot 61 Emerald ovenpå Java 62 Sliding Window Protocol 63 En video med tænke højt metoden 64 Analyse af designmæssige ændringer MWR 65 Databasesystem til bestilling og håndtering af ordrer via internettet Portal for ITEK og interneterhvervet Beskrivelse forudsætninger Portaler bliver i stigende grad et helt afgørende træk ved internettets udvikling Virksomheder opretter fælles portaler og forventningerne er at e handel og informationssøgning på internettet kommer til at foregå via de nye portaler Det interessante er imidlertid at interneterhvervet ikke har sin egen portal der er ingen fælles internetadgang til danske internetvirksomheder Den skal laves hurtigst muligt Det primære formål med portalen er at præsentere det samlede danske IT tele elektronik og kommunikationserhverv på nettet over for kunder leverandører investorer m v i Danmark og i udlandet Det vil være hensigtsmæssigt at begynde med at designe og udvikle en protype ITEK der er Dansk Industris branchefællesskab for IT Tele Elektronik og Kommunikations virksomhederne har i sit Internetudvalg drøftet interessen for at få etableret ovennævnte portal Det vil være hensigtsmæssigt at begynde med at designe og udvikle en protype Den endelige portal Danmarks første portal for internetvirksomheder vil blive udviklet af privat firma og implementeret i den virkelige verden 66 Her finder du en mere detaljeret beskrivelse af projektforslaget Nuværende medlemmer af gruppen Ingen Kontaktperson 67 John Sarborg Pedersen ITEK DI Søgemaskiner Beskrivelse forudsætninger På hvilke IT C hjemmesider finder man information om f eks fodbold eller oplysing om eksamensdatoer Til at svare på et sådan spørgsmål ville det være rart med en søgemaskine til IT C Projektet henvender sig til studerende som blot har haft Grundlæggende programmering og eller Objekt orienteret programmering samt studerende som endvidere har haft enten Internetprogrammering eller Algoritmik Alt efter den studerendes forudsætning er der forskellige krav til projektet men den fælles ramme er at dele af eller en hel søgemaskine skal implementeres En beskrivelse af de forskellige krav og forudsætninger til projektet findes på 68 denne side På projektets 69 hjemmeside finder du mere detaljeret information om projektet Nuværende medlemmer af gruppen Se 70 projektets hjemmeside Kontakpersoner Tre lærer fra IT C hhv 71 Stephen Alstrup 72 Jens Chr Godskesen og 73 Theis Rauhe Planning for an ever open and accessible Data Warehouse Beskrivelse forudsætninger During the last 5 years more and more operational systems have been deployed to allow access in near 24 7 Even as many warehouse installations are used in almost operational fashion we still succeed in reserving a substantial portion of regular time for warehouse maintenance in which periods users are prohibited from accessing the warehouse But the data warehouse user profile is changing requiring world wide warehouse access forcing a warehouse flexibility which has not been required in the past Users wants to have 24 7 access to their eBusiness warehouse with consistent reads of data and cannot accept 2 5 hours scheduled down time for maintenance anymore This forces the data warehouse architect to redesign the maintenance strategy Deliverable Analyse the need for this restriction to be lifted Describe how the issue may be addressed possible with references to existing tools Prerequisites Experience on Database Administration and multi user systems If knowledge on Data Warehousing is minimal 2 extra weeks should be added to obtain the nessesary skills Nuværende medlemmer af gruppen Ingen Contact Martin Jensen Oracle Consulting Email address 74 Martin Jensen Fun Facts website Et større firma i Danmark ønsker at videreudvikle deres internetsite Deres nuværende hjemmeside har i dag en forretningsdel som tilbyder kunder at kunne gøre en del af deres forretninger via hjemmesiden mens den resterende del består af forskellige informationer og nyhedsoplysninger Firmaet ønsker i fremtiden at tilbyde besøgende og kunder en mulighed for ved hjælp af Fun Facts at skabe interesse for deres branche Derfor foreslår firmaet følgende projekt 1 En gruppe studerende udarbejder et oplæg over hvilke features sådan et Fun Fact kapital kan indeholde understøttet af slides enten lavet i ppt eller html som firmaet så kan analysere og evaluere 2 Baseret på udfaldet af analysefasen ønsker firmaet hvis af interesse at de studerende så udarbejder prototyper af et eller flere af forslagene Firmaet vil naturligvis stille de fornødne ressourcer til rådighed så de sammen med de studerende kan indgå i en dialog om de brancherelevante spørgsmål Nuværende medlemmer af gruppen Ingen Kontakpersoner Kontakt IT højskolens webredatør 75 Mikael Kjærbye for at få oplyst kontaktpersonen i det pågældende firma Embedded Java I dag benyttes der typisk C som programmeringssprog i embedded systemer og få er på vej til C Java bliver mere og mere udbredt til bl a GUI applikationer men har Java en fremtid inden for embedded systemer For at besvare dette spørgsmål ønskes der en undersøgelse af Java til embedded systemer Hvad er fordelene og ulemperne ved at udvikle med Java Hvilke tekniske fordele er der med Java Hvad kræver det af CPU RAM og operativsystem sammenlignet med f eks C og C Hvordan integrerer man eksisterende C kode med Java Nuværende medlemmer af gruppen Ingen Kontakperson 76 Michael Jacobsen Tellabs Danmark A S Automatisering af test Målet med projektet er at opbygge testprogrammer til automatisk test af centrale dele af Tellabs Telecommunication Management System TMN Det er hensigten dels at vise i hvilket omfang test cases kan automatiseres og dels at give et bud på hvor store gevinsterne er ved automatisering af test Rapporten skal dels beskrive de konstruerede testprogrammer og dels indeholde en sammenligning af mulighederne med manuelle tests contra automatiske tests Den teoretiske sammenligningen underbygges med de praktiske erfaringer fra forløbet Hvis du har kendskab til computersproget Expect eller TCL vil det være en fordel men det er ikke en betingelse Du skal dog have et generelt kendskab til programmering Kendskab til Unix vil også være nyttigt Det er ligeledes en fordel hvis du har kendskab til objektorienterede systemer og også gerne telekommunikationssystemer specielt SDH Nuværende medlemmer af gruppen Ingen Kontakperson 77 Michael Jacobsen Tellabs Danmark A S Wap overvågning og styring af netværkselementer I televerdenen overvåger og styrer man netværk med store management systemer kørende på Unix eller NT maskiner Konfigurering af de enkelte netværkselementer sker enten over netværk eller over serielt kabel Ud fra vores eksisterende GUI skal der designes et nyt interface der kan benyttes fra en WAP telefon Der kan evt laves en prototype Nuværende medlemmer af gruppen Ingen Kontakperson 78 Michael Jacobsen Tellabs Danmark A S Apparatsoftware projektkursus Kunne du tænke dig at vide hvad der skal til at f eks et køleskab kan komme sikkert på internettet programmere et smartcard en ibutton eller et simkort som der sidder i en mobiltelefon lave en pålidelig robot Så skal du deltage i Apparatsoftwareprojektkurset ASW i 4 ugersperioden uge 48 51 efteråret 2000 Inden projektperiodens start senest 29 november skal de studerende i grupper af 2 5 personer vælge et af følgende projektemner 1 Apparatovervågning 79 IO consulting WebNet 2 Java SmartCard iButton programmering 80 Gemplus Java Smartcards og 81 Dallas Semiconductor Java iButtons 3 Robotprogrammering 82 Lego Mindstorm For alle projekterne vil fysisk afprøvning være mulig idet vi har adgang til en WebNet indlejret webserver der gør det muligt at sætte apparater f eks en Legorobot på internettet stillet til rådighed af I O Consulting omkring 20 Java Smartcards Gemplus et antal Java iButtons Dallas Semiconductor og Lego MindStorms robotter Der er stor mulighed for at I som gruppe tilpasser projektet jeres forudsætninger og interesser Mere information kan findes på 83 projektetkursets hjemmeside Nuværende deltagere i projektet Se 84 projektetkursets hjemmeside Kontakperson 85 Thomas T Hildebrandt IT højskolen Animeret sitcom Podium A S er i gang med at producere en animeret humor serie til brug på Internet Serien bliver af så høj kvalitet grafisk og indholdsmæssigt at den evt også vil kunne sendes på tv Vi ønsker i første omgang hjælp til at udarbejde en pilot på serien Vi har manuskriptmateriale og overordnet grafisk design klar så det er primært den praktiske animation af piloten som vi ønsker hjælp til Det er altså en arbejdsopgave som involverer praktiske grafisk design tegneopgaver og praktiske programmeringsopgaver vi forestiller os at serien skal animeres i Flash Hvis kemi og know how passer er der mulighed for ansættelse i forbindelse med den efterfølgende produktion af serien Nuværende medlemmer af gruppen Ingen Kontakperson 86 Mikkel Thomassen Podium A S Interaktiv benchmarking Vær med fra starten i nyt innovationsprojekt Der vil kunne skrives projekter om mange aspekter af det nye IT produkt FrontFinder et nyt interaktivt benchmarking system Ideen med FrontFinder er at integrere kendte benchmarking og produktivitetsanalyse metoder med Internettets muligheder for hurtig informationsudveksling og individuel tilpasning FrontFinder tænkes anvendt i situationer med mange relativ ens beslutningsenheder fx detailkæder kommunale forvaltninger etc Ved brug af Internettet gives den enkelte beslutningstager direkte mulighed for online benchmarking I stedet for at udføre benchmarking analyser på centralt hold gives den enkelte beslutningstager mulighed for individuel benchmarking Med FrontFinder vil en given beslutningsenhed kunne kortlægge sine muligheder på baggrund af de bedste i branchen Der kan laves såvel tekniske som marketingsorienterede projekter Et teknisk projekt vil kunne indfatte programmering med såvel HTML XML JAVA såvel som C Der vil desuden være gode muligheder for marketings markeds og forretningsstrategiske projekter Nuværende medlemmer af gruppen Ingen Kontakpersoner 87 Professor Peter Bogetoft eller 88 Cand oecon agro Kurt Nielsen Modkultur dk et debatforum med fokus på et tema Modkultur dk skal være et internet debatforum med en tydelig profil Derfor er et vigtigt spørgsmål hvilke emner der skal indgå i hjemmesiden Artikler og indlæg skal derfor vurderes af en redaktion før de lægges på nettet Diverse skribenter skal opfordres at skrive om bestemte temaer Man skal kunde indsende indlæg erhverve medlemskab Aktiver produktet indhold leveres af brugerne Indholdet kunne f eks være inddelt i følgende punkter Artikler Debat Medlemsskab Galleri Links Baggrund Portrætter Månedens helt Redaktion Prisoverrækkelse Kasserede indlæg Søgning på navn og emne Nuværende medlemmer af gruppen Christian Viktor Rasmussen 2 semester DKM Bachelor i Sociologi Denne gruppe er nu lukket for ny medlemmer Den består af følgende DKM studerende Chr Viktor Rasmussen 2 sem Mette Tandrup 3 sem Torben Dalhof 3 sem og Hanne Beier Sørensen 3 sem Kontakpersoner 89 Christian Viktor Rasmussen Online registrering af studerendes kursusønsker Projektperioden indledes med to forelæsninger den 27 11 og 28 11 om databaseadgang fra Java SQL og JDBC og om webserver skripts servletter i Java Her finder du den 90 fælles hjemmeside for dette og andre projektforslag Forudsætninger Grundlæggende Programmering Databasesystemer eller Design af Brugergrænseflader og Data er også nyttige men ikke krævede forudsætninger Vejledere 91 Niels Hallenberg og 92 Peter Sestoft Salg af biografbilletter flere billetluger Projektperioden indledes med to forelæsninger den 27 11 og 28 11 om databaseadgang fra Java SQL og JDBC og om webserver skripts servletter i Java Her finder du den 93 fælles hjemmeside for dette og andre projektforslag Forudsætninger Grundlæggende Programmering Databasesystemer eller Design af Brugergrænseflader og Data er også nyttige men ikke krævede forudsætninger Vejledere 94 Niels Hallenberg og 95 Peter Sestoft Fælles beskedsystem for en arbejdsplads Projektperioden indledes med to forelæsninger den 27 11 og 28 11 om databaseadgang fra Java SQL og JDBC og om webserver skripts servletter i Java Her finder du den 96 fælles hjemmeside for dette og andre projektforslag Forudsætninger Grundlæggende Programmering Databasesystemer eller Design af Brugergrænseflader og Data er også nyttige men ikke krævede forudsætninger Vejledere 97 Niels Hallenberg og 98 Peter Sestoft Udklipsbureau Projektperioden indledes med to forelæsninger den 27 11 og 28 11 om databaseadgang fra Java SQL og JDBC og om webserver skripts servletter i Java Her finder du den 99 fælles hjemmeside for dette og andre projektforslag Forudsætninger Grundlæggende Programmering Databasesystemer eller Design af Brugergrænseflader og Data er også nyttige men ikke krævede forudsætninger Vejledere 100 Niels Hallenberg og 101 Peter Sestoft Spil og rangliste Projektperioden indledes med to forelæsninger den 27 11 og 28 11 om databaseadgang fra Java SQL og JDBC og om webserver skripts servletter i Java Her finder du den 102 fælles hjemmeside for dette og andre projektforslag Forudsætninger Grundlæggende Programmering Databasesystemer eller Design af Brugergrænseflader og Data er også nyttige men ikke krævede forudsætninger Vejledere 103 Niels Hallenberg og 104 Peter Sestoft Webbaseret diskussionsforum Projektperioden indledes med to forelæsninger den 27 11 og 28 11 om databaseadgang fra Java SQL og JDBC og om webserver skripts servletter i Java Her finder du den 105 fælles hjemmeside for dette og andre projektforslag Forudsætninger Grundlæggende Programmering Databasesystemer eller Design af Brugergrænseflader og Data er også nyttige men ikke krævede forudsætninger Vejledere 106 Niels Hallenberg og 107 Peter Sestoft Analyse af webserverlog Projektperioden indledes med to forelæsninger den 27 11 og 28 11 om databaseadgang fra Java SQL og JDBC og om webserver skripts servletter i Java Her finder du den 108 fælles hjemmeside for dette og andre projektforslag Forudsætninger Grundlæggende Programmering Databasesystemer eller Design af Brugergrænseflader og Data er også nyttige men ikke krævede forudsætninger Vejledere 109 Niels Hallenberg og 110 Peter Sestoft AgroDebat Hjemmeside der med udgangspunkt i jordbruget er et forum et sam lingssted for debat formidling og deling af viden Beskrivelse Debat formidling og deling af viden indenfor jordbruget foregår helt overvejende i den trykte presse i aviser blade magasiner fag og videnska belige tidsskrifter mv der har hver deres målgrupper Det er med projektet tanken at udvikle et alternativ og tilbyde disse aktiviteter via en hjemmeside Natur liv og mad er emner der optager de fleste og det er emner der med mange indfaldsvinkler har direkte relation til jordbruget En hjemmeside der samler formidling og debat indenfor jordbruget bredt betragtet giver mulighed for at skabe en levende debat på tværs af faggrænser mellem praktikere og teoretikere mellem forbrugere og landbruget samtidig med at mediet internettet giver mulighed for at hver enkel målgruppes særlige interesse også kan tilgodeses Kontaktperson Birthe Stentebjerg Olesen B Comm Public Affairs 111 bso b comm dk Du kan også besøge vores hjemmeside på 112 www b comm dk Internetmesse forår 2002 Øksnehallen Deltag i udviklingen af fremtidens internetmesser Beskrivelse Messen har som formål at øge tilliden og brugen af internettet Ligeledes er ideen med messen at virksomhederne på internettet og brugerne får mulighed for at møde hinanden og indgå i dialog til fælles bedste De besøgende på messen får mulighed for at afprøve nye produkter services med forbindelse til internettet Vi har lige afholdt en messe i Forum InternettetNu og her gjort os erfaringer der skal indgå i næste messe Projektet skal indeholde overordnet forretningsplan markedsføringplan on line og alm PR idegrundlag målgruppe hvilke aktiviteter der skal afvikles på messen hvilke kurser event hvilket set up messen skal have hjemmeside til messen databaser udarbejdelse af salgsmateriale overfor virksomheder samt diverse relevante tiltag i forbindelse med messen Messen bliver afholdt primo 2002 Nuværende medlemmer af gruppen Ingen Kontaktperson Messeansvarlig 113 Bjarke Schultz Tlf nr 3537 3707 2683 0000 Web designer til start up website Et Internet start up der vil levere en række branche fokuserede ydelser og information over Internettet til både forbrugere og mindre service virksomheder søger en web grafiker web designer til på projekt basis at hjælpe til med design og design implementering her i opstartsfasen Det er en meget dynamisk virksomhed med et ungt team og det går rigtig stærkt Vi har internt ressourcerne til at klare den tekniske udvikling af sitet og overordnede design filosofi og har fået en grafisk designer til at udforme en corporate identity logo m v Vi har imidlertid i løbet af den næste måneds tid brug for assistance til den endelige fastlæggelse af et professionelt men utraditionelt design på sitet til at integrere design og funktionalitet på en brugervenlig måde samt til den egentlige implementering af designet på websitet at lægge designet op på sitet Den projekt studerende skal beherske de nødvendige grafik og web design programmer og må være kreativ og entusiastisk omkring projektet Til gengæld får du muligheden for at deltage i et rigtigt start up miljø med en lille og dynamisk organisation og med masser af mulighed for indflydelse på hvordan vores virksomhed bliver implementeret på Internettet Nuværende medlemmer af gruppen Ingen Kontaktperson 114 Lotte Bøjer Gong Gong com tlf 35 43 24 47 Politisk design En hovedstadskreds for et af regeringspartierne er ved at køre en ung og yderst dynamisk kandidat i stilling til næste folketingsvalg Han er 25 år cand mag fra KU og meget bevidst om nettets muligheder i politik og dets demokratiske potentiale i det hele taget Hans kampagne vil i høj grad satse på Internet som medium for et socialt og politisk netværk hvor parlamentsmedlem og borger kan komme i direkte kontakt Første fase i kampagnen er udvikling af en nyskabende personlig hjemmeside til kandidaten Den skal muliggøre dialog mellem bruger og afsender og frem for alt i sit design være et modstykke til eksisterende politiker hjemmesider Til arbejdet med at designe et sådant politisk website søges kreative DKM studerende Opgavens kerne ligger i på professionel vis at kunne tilsidesætte egne politiske overbevisninger og fokusere helt og holdent på klientens partiet og kandidaten behov Da der forefindes en absolut deadline ultimo januar ønskes et nogenlunde færdigimplementeret produkt Der er sørget for programmeringsmæssig og teknisk assistance så gruppen kan fokusere på den egentlige designdel Nogle tekniske færdigheder må du dog gerne være i besiddelse af da projektet nødvendigvis skal ud over prototypestadet på de fire uger Indtil videre har grafiker og underviser Klaus Bjerager sagt ja til at være vejleder på projektet Nuværende medlemmer af gruppen 115 Klaus Silberbauer Andersen DKM Kontaktperson 116 Klaus Silberbauer Andersen Database baseret Web publicering Projektet går ud på at opbygge et speciale website for IT C hvor virksomheder der er interesserede i at lave en speciale aftale med studerende fra IT C kan henvende sig og foreslå speciale emner og studerende der er interesserede i at lave et speciale hos en virksomhed kan annoncere deres interesser og forudsætninger Det er også tanken at studerende der er interesserede i at skrive speciale i grupper kan finde samarbejdspartnere og i det hele taget kunne det være en oversigt over de specialer der skrives på IT C Til projektet søges 1 2 andre studerende der har deltaget i kurset Database baseret Web publicering Vejledere på projektet er Martin Elsman og Niels Hallenberg Nuværende medlemmer af gruppen 117 Lise Bennedsen John Ukpo og Mathias Johansen From Gruppen er nu lukket Kontaktperson 118 Lise Bennedsen Udvikling af skole Community Med udgangspunkt i en skole og en community ramme Arsdigita vil jeg forsøge at lave en model for hvordan et skole community kan bygges op samt se på fordele og konsekvenser af at benytte en community model i stedet for et statisk Website til repræsentation af en skole på Internettet Eventuelt med specielt fokus på Internetbaseret læringsperspektiver Opgaven skal indeholde overvejelser inden for følgende områder Design implementering programmering og pædagogik Nuværende medlemmer af gruppen 119 Kenneth Riis studerende 3 semester DKM Kontaktperson 120 Kenneth Riis Metoder til vurdering af brugervenlighed Der findes flere måder at vurdere brugervenligheden af websites på 1 En kritisk ekspertgennemgang af sitet 2 Tænke højt forsøg 3 Pop up spørgsmål til besøgende på sitet 4 Elektroniske spørgeskemaer sendt til store brugergrupper 5 Optagelser af brugeres øjenbevægelser under besøg på sitet I samarbejde med 2 webanalysefirmaer Login og InterResearch har ITU fået mulighed for at afprøve disse metoder på en række udvalgte hjemmesider Firmaerne stiller deres professionelle redskaber og metoder til rådighed og de bekoster udsendelsen af elektroniske spørgeskemaer til flere tusinde respondenter Man kan vælge at skrive 4 ugers projekt om en eller flere af metoderne Hvis flere grupper arbejder parallelt med forskellige metoder vælger vi de samme sites til testene Derved bliver det muligt at sammenligne resultaterne på tværs af metoderne og at afdække deres indbyrdes styrker og svagheder Vejledere på projekterne kan være Anker Helms Jørgensen eller John Paulin Hansen DKM Nuværende medlemmer af gruppen Ingen Kontaktperson 121 John Paulin Hansen lektor DKM Designforslag til Wushu Kampskoles nye hjemmeside Beskrivelse Wushu Kampskole i Hvidovre ønsker designforslag til en ny hjemmeside Skolen har omkring 100 elever i alderen 15 45 år og tre undervisere Eleverne undervises i Wushu bedre kendt som Kung Fu en kinesisk kampsport selvforsvarsteknik som er opfundet af kinesiske munke fra Shaolin Templet i Kina for omkring 4000 år siden Der ønskes en rapportdel med begrundelse af gruppens forslag til sitets design og indhold herunder valg af billedmateriale tekst og grafik samt en profil af skolen og kampsportens historik og filosofi Wushu Kampskoles ønske er gruppen så vidt muligt tilstræber at producere et designforslag der også ville tiltale kvinder idet det er skolens intentioner at forsøge at få flere kvindelige elever Derfor er det en god ide hvis en del af projektgruppens medlemmer er kvinder Wushu Kampskole stiller en af sine tre undervisere David til rådighed som gruppens rådgiver på projektet Designforslaget kan udarbejdes som skitser i PowerPoint eller i html web format Link til Wushu Kampskoles nuværende hjemmeside Skolens nuværende hjemmeside besøges ugentligt af 40 50 personer Gruppens forudsætninger At have gennemført WEB1 samt evt Interaktionsdesign eller tilsvarende ligesom en gennemførelse af mediefag som Målgruppeanalyse eller IT som medie vil være en fordel Nuværende medlemmer af gruppen Martin Jensen DKM 2 semester B A i Forhistorisk Arkæologi Kontaktperson 122 Martin Jensen eller 123 David Fainburg www uddannelseogjob dk Et lille nystartet firma ønsker at give vejledning på nettet om valg af uddannelse og job give lektiehjælp inden for matematik og naturvidenskabelige fag og give et overblik over unge profiler under uddannelse At stille spørgsmål til studievejlederne skal være gratis for den unge finansieringen skal ske via sponsorering fra uddannelsesinstituioner og virksomheder der leverer ydelser til de unge Der er behov for at få udarbejdet en skitse til selve hovedsitet og navigeringen på det men nok så meget behov for at få designet og gennemtænkt en sammenhængende eller tre adskilte databaser der kan styre de tre hovedområder som er nævnt ovenfor Besvarelsen af henvendelserne skal ske i et netværk af tilknyttede vejledere eksperter på en række forskellige områder så systemet skal også kunne håndtere at sprede de indkomne emails til dem der skal besvare spørgsmålene derefter lægge besvarelserne på nettet så nye spørgere kan udnytte de allerede givne svar Som det ses minder tankerne noget om netvokat netdoktor og e psyk Vi er to initiativtagere selv studievejledere med bred baggrund i vejledning men ikke i netarbejde Tingene er ikke sat i søen endnu men vi knokler meget for at få ideerne omsat til virkelighed Så hvis en gruppe vil udtænke en skitse for os så vil det være velkomment Men først bør vi holde et møde for at vi kan være sikre på at alle parter forstår ideerne hele vejen igennem Nuværende medlemmer af gruppen Ingen Kontaktperson 124 Peter Føge Jensen tlf 44 98 26 36 3d Biograf information på nettet Beskrivelse Vi er to studerende fra DKM1 E2000 Vi kommer henholdsvis fra Arkitektskolen og Danmarks Designskoles institut for rum og vi har lyst til at trække lidt på vores fortid og arbejde med rum rumfremstilling på nettet Som baggrund for dette har vi valgt at vi vil lave et site for en biografkæde Vi forestiller os at arbejde i 3D studie max og VRML og kunne godt tænke os at udvide gruppen med en eller to teknisk orienterede personer Forudsætninger Kendskab til 3D Studio MAX herunder VRML Cosmo Builder Nuværende medlemmer af gruppen Christian G ttler Lea Senderovitz DKM1 Kontaktpersoner 125 Christian G ttler og 126 Lea Senderovitz Berømte designere Fortæl en historie om berømte designere ud fra en plakat af Alan Kitching Den britiske kunstner typograf og grafiker Alan Kitching har lavet en plakat der på en meget elegant måde introducerer en række af de største designere gennem tiden fx Raymond Loewy Ferdinand Porsche Charles Eames Paul Rand Kurt Schwitters Norman Foster Ludwig Mies van der Rohe og Alex Issigonis For hver designer har Alan Kitching udtrykt et af designerens væsentlige produkter ved at forme designerens initialer så det ligner produktet For Charles Eames som skabte stabelstolen står C er og E er stablet ovenpå hinanden og ligner grangiveligt stablede stole For Ferdinand Porsche som skabte Porsche bilen er F et en markant fremadstræbende figur som en bil mens P et står ovenpå som en lille spinkel kølerfigur For Raymond Loewy som skabte Lucky Strikes cigaretpakning er initialerne R og L sat ind i en rød og en sort ring For Alex Issigonis som skabte Morris Mascot er A et og I et formet til en Morris Mascot For Paul Rand som skabte IBMs markante logo ligner P et og R et dette markante logo Denne inspirerende plakat skal opleves den hænger på døren til Anker Helms Jørgensens kontor 2 22 Jeg synes at plakaten i sig selv er dybt fascinerende og afslører Alan Kitchings fantastiske evne til at lade de enkle bogstaver tale et ekspressivt formsprog der rækker langt ud over deres bogstavelige formåen Men plakaten kan også tjene som springbrædt til en fortælling om de store designere Det er her 4 ugers projektet kommer ind Skab en digital produktion der med udgangspunkt i Alan Kitchings plakat introducerer en række af verdens store designere Der vil måske være mulighed for at få Alan Kitching til at komme til København i forbindelse med projektet så han kan fortælle om sine tanker bag plakaten Nuværende medlemmer af gruppen Ingen Kontaktperson 127 Anker Helms Jørgensen DR Tekst TV design Beskrivelse forudsætninger DR Online udskriver en konkurrence hvor seks udvalgte design og IT institutioner kan sende bidrag senest ved udgangen af marts 2001 Der ønsket et bud på design af DR Tekst TV evt implementeret i Photoshop og Illustrator indenfor givne rammer som fastlægges i samarbejde mellem DR og de deltagne institutioner Der er afsat pengepremier på hhv 15 000 7 000 og 3 000 kr for hhv første anden og trediepræmie Nuværende medlemmer af gruppen Ingen Kontaktperson Indtil videre 128 Lise Louv DKM Operational Semantics and Program Equivalence Prerequisites Study recent operational techniques for proving programs equivalent This project can be tailored to your background if you don t know about operational semantics before hand you can focus on learning the basics otherwise we can build on top of your existing knowledge to study recently developed techniques for proving program equivalences Group members None Contact person 129 Lars Birkedal is happy to advise on this following projects and other semantics projects It is expected that you have an interest in obtaining a precise understanding often based on some mathematical concepts of some selected programming concepts This project can be seen as preliminary project for a master s thesis project Constructive Logic Prerequisites This project can be tailored to your background if you don t know about constructive logic before hand you can focus on learning the basics otherwise we can build on top of your existing knowledge to study more advanced topics either applications to formal reasoning or realizability models of logic Group members None Contact person 130 Lars Birkedal is happy to advise on this following projects and other semantics projects It is expected that you have an interest in obtaining a precise understanding often based on some mathematical concepts of some selected programming concepts This project can be seen as preliminary project for a master s thesis project Computation and Deduction Logical Frameworks Study Frank Pfenning s book on computation and deduction Formalise the semantics of mini ml exceptions or something similar in the Twelf system Prerequisites Knowledge of functional programming as covered in the course on functional programming Group members None Contact person 131 Lars Birkedal is happy to advise on this following projects and other semantics projects It is expected that you have an interest in obtaining a precise understanding often based on some mathematical concepts of some selected programming concepts This project can be seen as preliminary project for a master s thesis project Visualisering af komplekse informationsstrukturer For at styre komplekse systemer skal operatører og andre ofte forholde sig til mange og komplicerede informationer Projektet skal omhandle hvordan information bedst repræsenteres for operatører af svejserobotter Disse betjenes af maskinarbejdere mv på Lindø skibsværft Der er kontakt til et firma som laver disse systemer Der er også interesse for et projekt som diskuterer usability evaluering af sådanne systemer Begge projekter kan eventuelt føre videre til speciale projekter Forudsætninger Grundlæggende Programmering og Design af Brugergrænseflader eller et andet fag som har beskæftiget sig med brugerfladedesign vil nok være nyttigt Nuværende medlemmer af gruppen Ingen Kontaktperson 132 Peter Carstensen Systemudvikling af Web baserede informationssystemer Web technologien er ved at være så moden så den nu bruges til design af større interaktive informationssystemer altså ikke kun publisering Dette betyder en lang række nye krav til måden vi organiserer udviklingen og til de ekspertiser der involveres samt til de metoder og værktøjer der bruges Projektet her kan enten lave egentlige feltstudier af hvorledes denne udvikling går formulere krav og behov for støtte til udviklingsprocessen eller udforme egentlige prototyper på værktøjer som understøtter denne form for udvikling Der kan også være tale om et rent teoretisk projekt om emnet Projektet kan naturligt knyttes til et stort forskningsprojekt se 133 www diwa dk som pt foregår blandt folk på KUA DTU RUC og Afdelingen for Design and Use of Information Technology på IT C Projektet vil oplagt kunne bruges som for projekt til et speciale projekt Nuværende medlemmer af gruppen Ingen Kontaktperson 134 Peter Carstensen Systemer til vidensdeling og knowledge management Meget arbejde handler om komplekse situationer hvor flere aktører skal udveksle og dele viden IT er et oplagt værktøj til dette og Knowledge Management er blevet et buzzword Men hvordan skal vi strukturere disse fælles informationsrum og hvilke former for dokumenter viden kategoriseringsskemaer etc etc er nødvendige Projektet her kan enten lave egentlige feltstudier af hvorledes vidensdeling går formulere krav til knowledge management systemer eller udforme egentlige prototyper på værktøjer som understøtter informationsudveksling og knowledge management Der kan også være tale om et rent litteraturstudie af emnet Projektet kan naturligt knyttes til et stort forskningsprojekt se 135 www diwa dk som pt foregår blandt folk på KUA DTU RUC og Afdelingen for Design and Use of Information Technology på IT C Projektet vil oplagt kunne bruges som for projekt til et speciale projekt Nuværende medlemmer af gruppen Ingen Kontaktperson 136 Peter Carstensen Algol like languages Study the semantics of Algol like languages with a particular focus on syntactic control of interference Prerequisites Knowledge of basic domain theory as seen in books on semantics of programming languages Group members None Contact person 137 Lars Birkedal is happy to advise on this following projects and other semantics projects It is expected that you have an interest in obtaining a precise understanding often based on some mathematical concepts of some selected programming concepts This project can be seen as preliminary project for a master s thesis project Intersection types in programming Study intersection types as in Amadio and Curien s book and their use in programming as in Reynold s Forsythe language Prerequisites Bachelor in computer science and math Group members None Contact person 138 Lars Birkedal is happy to advise on this following projects and other semantics projects It is expected that you have an interest in obtaining a precise understanding often based on some mathematical concepts of some selected programming concepts This project can be seen as preliminary project for a master s thesis project Categorical Logic Study the relationship between fragments of logic and category theory Prerequisites An introductory course in category theory Group members None Contact person 139 Lars Birkedal is happy to advise on this following projects and other semantics projects It is expected that you have an interest in obtaining a precise understanding often based on some mathematical concepts of some selected programming concepts This project can be seen as preliminary project for a master s thesis project DKM forberedelseskursus Vi er nogle DKM re som har drøftet muligheden for et fælles projekt der omhandler et forberedelseskursus til IT højskolens DKM linie Kurset vi har lyst til at designe omhandler brugen af Photoshop og Dreamweaver og vil givetvis munde ud i et konkret øvelseshæfte manual hjælp til selvhjælp rapport måske en CD rom eller en implementeret on line fjernundervisnings del Opgaven er et 4 ugers projekt og produktet nemlig en bruger manual eller et øvelseshæfte til selvstudier af de omtalte programmer tænkes distribueret til alle nye studerende på DKM i fremtiden for ligesom at jævne niveauet og give alle en chance for at etablerer et kendskab til teknikken UDEfra og før de starter som studerende på IT c hvor der ikke er taget tilstrækkelig højde for undervisningsbehovet Gruppen består p t af 4 personer men kan godt udbygges til at omfatte flere deltagere Bl a kan man med projektet tilsigte en høj pædagogisk indfaldsvinkel sammen med en teknisk implementering af indholdet Kontaktperson 140 Annette Havlit eller 141 Tina Schwarz eller Rikke eller Peter fra DKM E2000 Webside til Lundehusskolen Lundehusskolen har brug for en ny webside Selve strukturen til siden ligger fast men det som vi har brug for er opsætningen af siden samt ideer til at gøre den brugervenlige Nuværende medlemmer af gruppen Ingen Kontaktperson 142 Trine Jørgensen og Henrik Halle på skolens tlf nummer 3920 1988 eller privat på 3833 2909 WebDAV som grundlag for samarbejdsstøtte på Web en Web en begynder så småt at blive brugt til egentligt samarbejdsværktøj Men det kniber med at bygge systemer som effektivt støtter folk som er fysisk adskilt i at arbejde sammen WebDAV se evt 143 http www webdav org er et af de bedre bud på en protokol som forsøger at understøtte adskilte folk i at arbejde på de samme dokumenter på en fornuftig måde Projektet her skal undersøge muligheder og eventuelt eksperimentere med mulighederne i WebDAV og eventuelt sammenligne den med andre Projektet kan gå både i retninger som primært diskutere hvad der skal undersøttes fx på bagrund af case studier eller i retninger af konkrete implementeringer vha WebDAV eller andre protokoller og platforme Projektet kan naturligt knyttes til et stort forskningsprojekt se 144 http www diva dk som pt foregår blandt folk på KUA DTU RUC og Afdelingen for Design and Use of Information Technology på IT C Projektet vil oplagt kunne bruges som for projekt til et speciale projekt Nuværende medlemmer af gruppen Ingen Kontaktperson 145 Peter Carstensen Elektronisk dokumenthåndtering Det papirløse kontor har været en drøm længe Men elektronisk dokumenthåndtering giver vanskeligheder Projektet her skal undersøge muligheder og eventuelt eksperimentere med værktøjer til elektronisk dokument håndtering Hvad er mulighederne og hvad er problemerne Projektet kan gøres både litteraturbaseret og være baseret på konkrete eksperimenter og implementeringer Der vil muligvis være muligheder for at arbejde i relation til en af de virksomheder i København som har specialiseret sig i dette område Projektet kan naturligt knyttes til andre forskningsaktiviteter i Afdelingen for Design and Use of Information Technology DUIT på IT C Projektet vil oplagt kunne bruges som for projekt til et speciale projekt Nuværende medlemmer af gruppen Ingen Kontaktperson 146 Peter Carstensen Open Source Content Manager til IT C Projektet går ud på at finde en linux baseret open source content manager der kan håndtere IT C s web Projektgruppen skal finde den mest velegnede content mangager installere den og dokumentere hvordan den installeres og drives Der vil fra IT C s side på forhånd ligge en række krav den valgte løsning skal kunne honorere Projektet vil foregå i samarbejde med linuxlab 147 http linuxlab dk og projektdeltagerne vil få stillet en linux server til rådighed til at eksperimenter på Yderligere vil en medarbejde i IT C s systemadministration bruge en halv dag i begyndelsen af projektperioden på at forklare hvordan IT C s web hænger sammen og hvilke krav der stilles til fremtiden Projektgruppen vil naturligvis få adgang til IT C s skabeloner osv 148 Krav til en content manager til IT C Nuværende medlemmer af gruppen Ingen Kontaktperson 149 Keld Kondrup Synkronisering af mobile databaser Udviklingen indenfor IT er i disse år i høj grad præget af integration mellem traditionelle edb systemer og telekommunikation Det er endnu ikke klart hvad der vil blive den dominerende model for applikationer på de nye mobile og bærbare enheder som opstår i kølvandet af integrationen af IT og telecom mulighederne spænder fra rene server baserede modeller i stil med fx Web og WAP til modeller baseret på replikering og synkronisering som tillader at den bærbare mobile enhed kan fungere selv når den ikke er forbundet til et netværk Soft Design er i forbindelse med dette projekt interesseret i at få foretaget en grundig undersøgelse og beskrivelse af synkronisering af databaser til og fra mobile bærbare enheder Undersøgelsen skal belyse hvordan det sikres at data holdes up to date i hhv det centrale system og den bærbare enhed hvorledes konflikter håndteres ved samtidige opdateringer i begge systemer partiel replikering osv Beskrivelsen af problemstillingerne skal være generel dvs der kan ikke tages udgangspunkt i specifikikke database skemaer Projektet forudsætter kendskab til datamodellering og databaseteori Projektet er rent teoretisk og skal resultere i en rapport som beskriver problemstillingen og dens udfordringer samt helst en generel model for hvordan problemstillingen kan håndteres Nuværende medlemmer af gruppen Ingen Kontaktperson 150 Klaus Harbo eller 151 Eric Jul ekstern lektor Distribueret Emerald Watchdog Emerald er et Java ligende sprog specielt beregnet til at køre distribueret Sproget indeholder faciliteter til transparent fjernprocedurekald RPC og til at flytte objekter mellem maskiner også mens disse objekter indeholder kørende processer Systemet er også beregnet til at kunne køre selvom en eller flere maskiner crasher der er faciliteter i sproget til at konstatere at andre maskiner er gået ned og kommer op igen Skriv et program Watchdog der vedligeholder en liste over alle maskiner der er oppe og som opretter en kopi af sig selv på disse maskiner Udvid programmet med faciliteter så man fx kan tilmelde et objekt til Watchdog og derefter vil Watchdog sørge for at en klon af objektet altid kører på de maskiner der er oppe Watchdog vil således være et program der overlever væsentligt længere end den maskine der startede programmet Forudsætninger Forudsætninger Grundliggende Programmering Netværk og Protokoller vil være en fordel Nuværende medlemmer af gruppen Ingen Kontaktperson 152 Eric Jul ekstern lektor Distributed Time Management Emerald er et Java ligende sprog specielt beregnet til at køre distribueret Sproget indeholder faciliteter til transparent fjernprocedurekald RPC og til at flytte objekter mellem maskiner også mens disse objekter indeholder kørende processer Systemet er også beregnet til at kunne køre selvom en eller flere maskiner crasher der er faciliteter i sproget til at konstatere at andre maskiner er gået ned og kommer op igen Skriv et program EMT der vedligeholder en liste over alle maskiner der er oppe og som opretter en kopi af sig selv på disse maskiner Udvid programmet med faciliteter så programmet regelmæssigt holder styr på hvad klokken er på de andre maskiner der er oppe Tillige skal EMT holde styr på en fælles tid EMT som skal være et eller andet vægtet gennemsnit af tiderne på alle maskinerne EMT bør ligge så tæt på GMT som muligt Forudsætninger Forudsætninger Grundliggende Programmering Netværk og Protokoller vil være en fordel Nuværende medlemmer af gruppen Ingen Kontaktperson 153 Eric Jul ekstern lektor Distributed Replication Manager for Backup Emerald er et Java ligende sprog specielt beregnet til at køre distribueret Sproget indeholder faciliteter til transparent fjernprocedurekald RPC og til at flytte objekter mellem maskiner også mens disse objekter indeholder kørende processer Systemet er også beregnet til at kunne køre selvom en eller flere maskiner crasher der er faciliteter i sproget til at konstatere at andre maskiner er gået ned og kommer op igen Skriv et program BM der vedligeholder en liste over alle maskiner der er oppe og som opretter en kopi af sig selv på disse maskiner Udvid programmet med faciliteter så en bruger af BM kan give BM en liste over vigtige filer i sit hjemmekatalog BM skal derefter sørge for at oprette N sikkerhedskopier af filerne på hver sin maskine Antallet af kopier N skal kunne vælges frit af brugeren Hvis en maskine går ned og nogle sikkerhedskopier herved mistes skal BM sørge for om muligt at oprette yderligere sikkerhedskopier Forudsætninger Forudsætninger Grundliggende Programmering Netværk og Protokoller vil være en fordel Nuværende medlemmer af gruppen Ingen Kontaktperson 154 Eric Jul ekstern lektor Emerald på en Palm Pilot Emerald er et Java ligende sprog specielt beregnet til at køre distribueret Sproget indeholder faciliteter til transparent fjernprocedurekald RPC og til at flytte objekter mellem maskiner også mens disse objekter indeholder kørende processer Systemet er også beregnet til at kunne køre selvom en eller flere maskiner crasher der er faciliteter i sproget til at konstatere at andre maskiner er gået ned og kommer op igen Forudsætninger Forudsætninger Grundliggende Programmering Netværk og Protokoller og C programmering er nødvendigt Derimod er det IKKE nødvendigt med en Palm Pilot en sådan vil blive udlånt Nuværende medlemmer af gruppen Ingen Kontaktperson 155 Eric Jul ekstern lektor Emerald ovenpå Java Emerald er et Java ligende sprog specielt beregnet til at køre distribueret Sproget indeholder faciliteter til transparent fjernprocedurekald RPC og til at flytte objekter mellem maskiner også mens disse objekter indeholder kørende processer Systemet er også beregnet til at kunne køre selvom en eller flere maskiner crasher der er faciliteter i sproget til at konstatere at andre maskiner er gået ned og kommer op igen Emerald kører med sin egen lille virtual machine ovenpå C Omskriv Emerald fortolkeren til Java og kør fx distribuerede objekter på tværs af Internettet Forudsætninger Forudsætninger Grundliggende Programmering Netværk og Protokoller C programmering Nuværende medlemmer af gruppen Ingen Kontaktperson 156 Eric Jul ekstern lektor Sliding Window Protocol Implementer en sliding window protokol fra Tanenbaums netværksbog anvendt i kurset NP ovenpå UDP og lav performance målinger kan I få den til at fungere bedre end TCP Skriv fx en FTP ligende applikation der anvender jeres protokol Forudsætninger Forudsætninger Grundliggende Programmering Netværk og Protokoller C programmering Nuværende medlemmer af gruppen Ingen Kontaktperson 157 Eric Jul ekstern lektor En video med tænke højt metoden Tænke højt metoden er en anerkendt metode til at evaluere brugbarheden af IT produkter Metoden består groft set i at sætte en bruger foran produktet for at teste om produktet er så brugbart at brugeren kan anvende det på den tilsigtede måde Metoden giver gode resultater med en forholdsvis beskeden indsats Den har yderligere den store fordel at den levendegør mødet mellem brugeren og produktet der kommer rigtigt kød og blod ind over teknikken I 1986 lavede Peter Carstensen IT højskolen og Michael Bruhn Datacentralen en video der demonstrerede styrken i tænke højt metoden Systemet Teledata blev anvendt det kan opfattes som 1980 ernes WWW Videoen viser en bruger der skal finde ud af hvornår der afgår SAS fly fra København til Manchester på hverdage det lykkes men det tager 14 minutter Videoen er blevet anvendt ved utallige kurser i brugervenlighed for systemudviklere siden og den har haft stor betydning for udviklingen af dette felt i Danmark idet den er meget levende og troværdig Jeg Anker Helms Jørgensen viste videoen i min forelæsning i Grundlæggende Webdesign forleden På den ene side går budskabet ind og på den anden side bærer den meget præg af den forældede teknologi Jeg tog tyren ved hornene og lavede bagefter et eksperiment til forelæsningen Jeg bad tre studerende løse den samme opgave ved hjælp af tre moderne teknologier WWW en mobiltelefon og en Travel Book Det viste sig at det faktisk gik hurtigere idag 2 minutter men svaret baseret på WWW www sas dk var fejlbehæftet idet brugeren ikke opdagede at nogle af de fundne flytider var fra Manchester til København og ikke omvendt Det er nok ikke tilsigtet fra SAS s side Ideen i projektet er at lave en videoproduktion der på basis af dagens WWW teknologi illustrerer hvordan mødet mellem brugere og systemer ofte falder ud noget som vores højt uddannede og IT vante studerende ofte glemmer illustrerer metodens effektivitet mht til fejlfinding i WWW brugerflader viser designere og kommende designere hvordan man benytter metoden Fra en studiemæssig synsvinkel er der tre relevante aspekter at formidle en kompleks problemstilling visuelt at fordybe sig i en usability metode at sælge budskabet til både studerende og praktikere Nuværende medlemmer af gruppen Ingen Kontaktperson 158 Anker Helms Jørgensen DKM Analyse af designmæssige ændringer MWR Dette projekt henvender sig til studerende fra DKM SWU INT Alle taler om at dårlig brugervenlighed på ehandelssites er årsagen til den lave rate af online køb på bestemte sites Derfor syntes jeg det ville være interessant at lave et stykke software der analyserer hvordan brugerens adfærd er omkring de dele af sitet der er kritisk for dets brug f eks omkring indkøbskurven disse værktøjer findes ganske enkelt ikke på markedet i dag Softwaren kunne måske udformes som et framework samling af komponenter der kan trækkes ned over et givet website Tilgangen til projektet kunne f eks være en forholdvis ny metode der hedder Most Wanted Response MWR som karakteriseres som den handling man helst ser at en bruger udfører f eks tilmelder sig et nyhedsbrev eller køber en vare Udfra MWE kan man definere konversationsraten som Antallet der udførte MWR Antallet af besøgende Dette vil man naturligvis have så høj som muligt Jeg forstiller mig at man laver et stykke software der løbende logger og analyserer hvad der sker med konvertionsraten hvis man f eks ændrer udformningen af en knap eller at sitet bliver nævnt i nyhederne eller lign Videre vil softwaren måske kunne trace så meget data fra brugeren at man vil kunne lave et datawarehouse der sammenligner førstegangbrugere vs flere gangsbrugeres adfærd og finde hvor på sitet der ligger er reelt problem etc Rent ud sagt et godt værktøj til at kvantificere kvaliteten af ændringer på sitet Jeg er DKM studerende og har en del teknisk indsigt Videre har jeg fulgt 4 fag på ehandel Mit bidrag til projektet vil være de rent analystiske overvejelser udarbejdelse af brugergrænseflader evaluering af data samt brugertests Det tekniske indhold kan f eks bestå af design og implementering af et framework med fornuftige interfaces og abstraktionsflader mellem backend web serveren og vores framework dette framework skal understøtte de processer vi opstiller som krav til måling af Konversationraten og andre parametre Vi vil altså komme godt rundt i forskellige dele i opbygningen af advancerede web baseret analyse værktøjer Ideer Du skal ikke være nybegynder og et kendskab til statistik vil være fedt Nuværende medlemmer af gruppen Anders Kragelund DKM Kontaktperson 159 Anders Kragelund Tlf 28143012 Databasesystem til bestilling og håndtering af ordrer via internettet Projektet består i at konstruere et ordredatabasesystem for en aktuel lille virksomhed Systemet skal tillade at kunder kan foretage bestillinger via en hjemmeside på internettet og evt følge med i behandlingen af ordren De ansatte i virksomheden skal kunne håndtere ordrer via internettet Systemet skal konstrueres så det kræver et password at kunne læse og håndtere ordrer Systemet udvikles ved hjælp af php3 mySQL gennemgået i kurset Internetprogrammering Nuværende medlemmer af gruppen Nada Yahyah Alzubeidi INT Kontaktperson 160 Nada Yahyah Alzubeidi 161 USEMAP inter icon2top gif opdateret 04 05 2001 162 wwwadm it c dk 1 IT højskolen Erhvervsliv 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English 9 Vision 10 Forskning 11 Projekter specialer og praktik 12 Om foredragsrækken BuzzTalks inter menu bund gif Erhvervssamarbejde Samarbejde er vigtigt IT højskolens samarbejde med erhvervsliv organisationer og det offentlige har høj prioritet For på IT højskolen ønsker vi at forske og undervise i IT i et dynamisk samarbejde med omverdenen Samarbejdet har åbenlyse gensidige fordele Gennem samarbejdet skal IT højskolen fremme erhvervslivets forretningsudvikling På den anden side er input fra virksomheder og offentlige institutioner om erfaringer muligheder og behov særdeles vigtige for både forskning og undervisning på IT højskolen Samarbejdet med erhvervslivet sker på flere områder og udvikler sig løbende Konkret samarbejder IT højskolen og erhvervslivet blandt andet gennem forskningsaktiviteter projektarbejde praktikophold workshops og seminarer gæsteforelæsninger og de såkaldte 13 BuzzTalks Forslag til nye former for samarbejde er velkomne Kontakt Mikael Kjærbye ansvarlig for virksomhedssamarbejde på mail 14 mk it c dk eller på telefon 38 16 88 80 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv Vision 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Vision og mål IT højskolens vision IT højskolen vil i dialog med sine omgivelser skabe et attraktivt og levende forsknings og uddannelsesmiljø der bidrager til vækst og udvikling i det danske og internationale samfund ved at skabe et IT miljø der favner naturvidenskab humaniora design og erhverv at uddanne personer med en stor og bred viden om IT og ITs muligheder gennem forskning at skabe ny teknologi og bedre anvendelse af eksisterende teknologi at øge samfundets indsigt i IT og ITs muligheder Mål i forhold til erhvervslivet IT højskolen vil i dialog med virksomheder organisationer og institutioner fremme erhvervslivets forretningsudvikling ved på højt internationalt niveau at bidrage med indsigt i IT og de forretningsmæssige muligheder forståelse for og indsigt i virksomhedernes fremtidige anvendelse af og behov for IT herunder indsigt i ITs betydning som ledelsesværktøj udvikling af avancerede og forretningsorienterede løsninger attraktive og velkvalificerede kandidater med et tværfagligt og anvendelsesorienteret syn på IT innovation og erhvervsrelateret forskning 10 USEMAP inter icon2top gif opdateret 04 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv Forskning 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Forskningssamarbejde Et godt forskningssamarbejde med erhvervslivet er af afgørende betydning for IT højskolen og IT højskolen er involveret i flere forskningsaktiviteter med erhvervslivet Samarbejdet kan eksempelvis være helt eller delvist finansierede forskningsprojekter og stipendiater eller være forskning hvor virksomhederne stiller medarbejdere materiale og viden til rådighed Eksempelvis arbejder IT højskolen for Rigshospitalet sammen med Image House 3 D Lab Panum Instituttet om at udvikle et system der kan lave 3 D modeller af kvindelige befrugtede æg celler på baggrund af et antal 2 D mikroskopibilleder Målet er at udvikle et system der kan kombinere objektive data med statistisk materiale så man i fremtiden får bedre muligheder for at udvælge de befrugtede æg der er bedst egnet til kunstig befrugtning Derigennem kan man øge antallet af gennemførte graviditeter og samtidig nedbringe omkostningerne til kunstig befrugtning I projektet der løber over tre år arbejder man samtidig også på at øge kendskabet til kvalitetskriterier for mandlig sæd Projektets mål er at lave IT systemer som kan anvendes på alle fertilitetsklinikker 10 USEMAP inter icon2top gif opdateret 04 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv Projekter specialer og praktik 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Projektbørs 11 Studenterprojekter efterår 2000 12 Eksempler på relevante projekter 13 Praktikpladser inter menu bund gif Projekter specialer og praktik Studenterprojekter Studerende ved IT højskolen kan samarbejde med erhvervslivet gennem projektsamarbejde hvor projektet indgår som en del af uddannelsen på IT højskolen Projektet afsluttes med en individuel bedømmelse Ideen bag projekterne er at de studerende har mulighed for at arbejde i dybden med emner der er relevante for deres fag Et projekt kan vare i fire uger eller i 12 uger Et projekt kan også være et speciale dvs et lille forskningsprojekt som kan resultere i en rapport og eventuelt i en produktion så som et program eller et design Den næste runde af fire ugers projekter starter mandag den 30 april 2001 Virksomheder er velkomne til at uploade en kort beskrivelse af deres projektforslag på IT højskolens 14 projektbørs Torsdag den 19 april 2001 afholder IT højskolen en projektbørsdag hvor virksomheder kan holde et kort mundligt oplæg om deres projektideer Alle virksomheder som har uploadet projektideer på vores website vil automatisk blive inviteret til at deltage i projektbørsdagen Projektsamarbejdet kan bestå af undersøgelser id udvikling tests konkrete løsninger og implementering af disse evalueringer eller mere fremtidsorienterede projekter Vi lægger stor vægt på at arbejdet foregår under virkelighedstro omstændigheder hvilket reelt vil sige at de studerende bliver bedt om at udføre projektet for en eksisterende virksomhed eller offentlig organisation De studerende vil som regel arbejde i grupper 3 4 personer Eksempelvis var fire studerende på IT højskolen i efteråret 1999 med i et projekt hos DR De studerende var en del af et team med bl a journalister producenter og teknikere som kom med input til fremtidens radio Det konkrete produkt fra IT højskolen bestod i to rapporter med scenarier og ideer Det var spændende for os og DR fik en masse gode ideer til fremtidens radio og det digitale potentiale De var især imponeret over vores forskellige uddannelsesmæssige baggrunde og dermed forskellige indfaldsvinkler til at skitsere fremtidens muligheder siger Britt Gadegaard som var en af de fire studerende Det er en stor udfordring at være med til at løse konkrete projekter som erhvervslivet skal have sat i søen og virksomhederne kan have god gavn af os fordi vi kommer med en opdateret viden og kan se forskellige projekter og problemstillinger med friske øjne siger Britt Gadegaard Praktik Som en del af deres uddannelse kan de studerende på IT højskolen komme i praktik i en virksomhed på tredje semester af studiet Hvis du ønsker en studerende i praktik så henvend dig til studievejledningen på mail 15 studievejledningen it c dk 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Projekter specialer og praktik Projektbørs 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif IT højskolens Projektbørs IT højskolens 11 Projektbørs er en ressource for Virksomheder der er interesserede i at lave projektaftaler med studerende fra IT højskolen Studerende fra IT højskolen der søger projektkontakter i erhvervslivet forsknings miljøet eller blandt andre studerende Forskere der søger studerende til projekter Alle der interesserer sig for prokekter og ny forskning på IT højskolen i København 12 Projektbørsen er designet og programmeret af tre studerende fra IT højskolen i København som en del af et fire ugers studenterprojekt i kurset Databasebaseret webpublisering De studerende bag projektet er 13 John Udo Ukpo fra Softwareudviklingslinjen 14 Lise Bennedsen fra linjen i Design Kommunikation og Medier og 15 Mathias Johansen From fra linjen i E handel Adjunkt 16 Martin Elsman var vejleder på projektet 17 USEMAP inter icon2top gif opdateret 04 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Projekter specialer og praktik Eksempler på relevante projekter 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Eksempler på relevante projekter Nedenfor er en liste over hvilke slags projekttyper der egner sig som studenterprojekter inden for de seks uddannelseslinjer 1 Software udvikling SWU De SWU studerendes viden og interesser spænder vidt Fra konsulenten der samarbejder med brugerne over systemudvikleren der tilpasser eksisterende software eller udvikler næste version til den tekniske specialist der udvikler special software fx til lynhurtig søgning eller WAP Som eksempler på tidligere projekter kan nævnes En WAP portal hvor man kan se hvor mange der er på diskotekerne lige nu og hvor der er gang i den En rekursiv datamodel for Statens Koncernregnskab En videndatabase til intern brug i et Web firma En undersøgelse af hvorfor Firma X anonymt ikke fik succes med sit nye ERP system og hvad man kan gøre ved det En undersøgelse af hvordan systemudvikling til Web foregår i Firma Y hvordan det hænger sammen med teorien om systemudvikling og om det er teorien eller firmaets metoder der bør ændres Kontakt linjeleder 11 Søren Lauesen hvis du har nogle spørgsmål vedrørende egnede studenterprojekter inden for software udvikling 2 Design kommunikation og medier Eksempler på projektemner har fx været fjern undervisningsprogrammer hjemmesider for kultur og kunstinstitutioner design af 3D verdener intranetløsninger til redigering af TV programmer elektroniske nyhedsmagasiner WAP tjenester og musikportaler Projekterne er ofte blevet defineret af en ekstern oplægssgiver Fælles for projekterne er at de dels bliver illustreret med en prototype og dels bliver teoretisk begrundet i en skriftlig rapport En systematisk og akademisk redegørelse for de bevidste valg med hensyn til design metode målgruppe og indhold er centralt for DKM projekterne Et andet vigtigt aspekt ved emnearbejdet er at give de studerende en praktisk erfaring med planlægning styring og produktion af større digitale projekter Prototypen anvendes ofte til brugervenlighedstests med personer fra målgruppen Kontakt linjeleder 12 John Paulin Hansen hvis du har nogle spørgsmål vedrørende egnede studenterprojekter inden for design kommunikation og medier 3 Tværfaglig IT Kandidater i tværfaglig IT kombinerer deres viden om IT med faglig viden fra deres bacheloruddannelse Uddannelsen giver indsigt i hvordan IT systemer designes konstrueres og anvendes inden for udvalgte faglige brancher Med en uddannelse i tværfaglig IT kan kandidaten med basis i et andet fagområde specialisere sig i at se nye muligheder med IT og bruge IT i nye sammenhænge og til løsning af andre og nye opgaver Der lægges særlig vægt på problemorienteret projektarbejde i grupper med det mål at opnå særlige kvalifikationer til teamwork projektstyring evne til problemformulering og til at lokalisere og analysere specifikke problemkomplekser Kontakt linjeleder 13 Jesper Simonsen hvis du har nogle spørgsmål vedrørende egnede studenterprojekter inden for tværfaglig IT 4 Internet Teknologi Eksempler på egnede studieprojekter er Internetsalg udvikling af salgsdatabase undersøgelse af sikkerhedsaspekter concurrency kontrol Mobiltelefoner trådløse tjenester mobilt internet WAP Informationssøgning på internettet søgealgoritmer resultatdatabase Apparatsoftware smartcards overvågning apparater på internettet Adgangskontrol og styring alarmsystemer homebanking elektroniske nøglesystemer Kontakt linjeleder 14 Thomas Hildebrandt hvis du har nogle spørgsmål vedrørende egnede studenterprojekter inden for internet teknologi 5 Multimedie Teknologi Eksempler på projekter inden for tekniske multimedier omfatter billedanalyse computergrafik lyd tale og musiksyntese og analyse samt multimediesystemer Andre eksempler er syntese af musikinstrumenter ray tracer analyse af medicinske scanninger interaktiv grafik og talesyntese Projekter vil typisk tage udgangspunkt i at der foreligger en analyse af hvad der skal implementeres Det vil sige at opgaven er veldefineret og der er eventuelt valgt metode Kontakt linjeleder 15 Mads Nielsen hvis du har nogle spørgsmål vedrørende egnede studenterprojekter inden for multimedie teknologi 6 E handel På EBUSS omfatter e handel både de tekniske løsninger logistik og betalingssystemer og de mere markedsmæssige så som markedsføring og salg og distributionen af serviceydelser og fysiske eller digitale varer En kandidat i Elektronisk handel vil vide hvordan elektronisk handel influerer på eksempelvis forholdet mellem kunde og leverandør og han eller hun vil være velbevandret i de særlige tekniske problemer der er forbundet med e handel En kandidat i e handel vil på akademisk niveau således kunne bidrage erhvervslivet med aktuelle og relevante e handelskompetencer Kontakt linjeleder 16 Kim Viborg Andersen hvis du har nogle spørgsmål vedrørende egnede studenterprojekter inden for E handel 17 USEMAP inter icon2top gif opdateret 04 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Projekter specialer og praktik Praktikpladser 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Praktikpladser Her er en liste over praktikpladser 11 Trema Laboratories France ASP Team 12 Reklame og internetbureauet JustKidde Reklame og internetbureauet JustKidde Reklame og internetbureauet JustKidde kan tilbyde unge designere og IT teknikere en spændende og lærerig praktik arbejdsplads Vi er interesserede i at hjælpe og uddanne IT højskolens studerende med kommunikation gennem new medias Hvis det har din interesse kan du se mere under 13 www justkidde dk hvor vi foruden præsentation af os selv også hver måned promoverer nye Internet ideer studerende er meget velkomne til at indsende ideer Vi er 26 mennesker af meget blandet baggrund 4 kommer fra Masters of Media i Malmø 7 fra universitetet mens andre er selvlærte Foruden en lærerig og spændende tid med ansvar for de studerende tilbyder vi frokost transport og en rigtig god gave som tak Contact details PR director Christian Gregersen tlf 32 966 001 eller email 14 email Trema Laboratories France ASP Team The Trema Institute is offering one 1 internship in its development department with the ASP team The challenge Trema recently decided to expand its product range with a new ASP Application Service Provider offer Such solution will enable Trema and third parties to offer functionality of Trema products as a service renting functionality to clients and thus to expand the current customer base To emphasize importance of the solution in the company a new business unit was formed to support business and operational part of the concept In order to realize this idea significant development effort will be carried in the Trema Development unit This effort will be focused to the design and development of a new development channel Web and to alignment enhancement of the current products In the Web part the company will evaluate candidates application servers for the Web platform will design application and technical architectures will design develop and test functionality enabling usage of the products over Internet Architecture designs will be driven by ultimate requirement to have flexible and scalable solution based on the current evolving market standards as EJB Corba DOM XML and others The work will be carried out by Trema employees with third parties support Since the work will involve many disciplines and parties internal and external there is a strong emphasis on the work co ordination This includes research of available technology options work planning and tracking organization and preparation of milestones events as well as other activities The learning experience Such experience will enable the candidate to touch areas seen in school in real life the planning requirements gathering and analysis design development testing all these on the project running on the top technologies and implementing top edge Internet solution About Trema The 15 Trema group is a premier provider of strategic technology solutions and best practice methodologies to the financial industry Trema s flagship product Finance KIT is a straight through processing treasury risk and asset management system for UNIX and Microsoft Windows NT Trema s clients include key players in the financial markets including banks corporate treasuries investment management firms and central banks in Europe the Middle East Africa Asia and North America Trema s clients include ABB AEGON Anglo American Corporation British Aerospace Electrolux Ericsson European Central Bank CIBA Specialty Chemicals Hoechst Johnson Controls South African Reserve Bank Unilever and Volvo Founded in 1992 Trema has an international staff of over 250 and has offices in Abu Dhabi Boston Frankfurt Helsinki Johannesburg Sophia Antipolis Stockholm Zurich Prague and Singapore In the spring of 1997 we concentrated our R D activities in Sophia Antipolis southern France Our team is made of candidates with high energy flexible to changing priorities and driven by quality and pride in their work Trema s work environment is dynamic and international The working language of the company is English About Sophia Antipolis The Sophia Antipolis science park is located in the South of Europe on the French Riviera between Nice and Cannes Sophia Antipolis is established on a vast wooded plateau and presently covers 2 300 hectares where over 1000 international corporations employ over 20000 professionals from all over the world Nicknamed the Silicon Valley of Europe the biggest of its kind the technology park enables the development of research programs in all the most advanced scientific fields For more information visit the 16 sophia antipolis net Contact details Director Lars Christian Smith on tel 33 4 9238 8100 or 17 email Trema Laboratories France Project Management Team The Trema Institute is offering one 1 internship in its development department with the project management team The challenge The information management within the development department at Trema is a key component of its growth and success The internship gives to the candidate the opportunity of covering everything from web design to database administration and data capture enabling him her to learn and practice business critical skills fast The work takes place in close cooperation with our product experts developers and project managers and acts as primary contact for the research design implementation support and evolution of the development intranet web site content The learning experience Such experience will enable the candidate to touch areas seen in school in real life the planning requirements gathering and analysis design development testing all these selecting and utilising web solutions and understanding how the Intranet can be used to successfully manage projects within the product development environment About Trema The 18 Trema group is a premier provider of strategic technology solutions and best practice methodologies to the financial industry Trema s flagship product Finance KIT is a straight through processing treasury risk and asset management system for UNIX and Microsoft Windows NT Trema s clients include key players in the financial markets including banks corporate treasuries investment management firms and central banks in Europe the Middle East Africa Asia and North America Trema s clients include ABB AEGON Anglo American Corporation British Aerospace Electrolux Ericsson European Central Bank CIBA Specialty Chemicals Hoechst Johnson Controls South African Reserve Bank Unilever and Volvo Founded in 1992 Trema has an international staff of over 250 and has offices in Abu Dhabi Boston Frankfurt Helsinki Johannesburg Sophia Antipolis Stockholm Zurich Prague and Singapore In the spring of 1997 we concentrated our R D activities in Sophia Antipolis southern France Our team is made of candidates with high energy flexible to changing priorities and driven by quality and pride in their work Trema s work environment is dynamic and international The working language of the company is English About Sophia Antipolis The Sophia Antipolis science park is located in the South of Europe on the French Riviera between Nice and Cannes Sophia Antipolis is established on a vast wooded plateau and presently covers 2 300 hectares where over 1000 international corporations employ over 20000 professionals from all over the world Nicknamed the Silicon Valley of Europe the biggest of its kind the technology park enables the development of research programs in all the most advanced scientific fields For more information visit the 19 sophia antipolis net Contact details Director Lars Christian Smith on tel 33 4 9238 8100 or 20 email 21 USEMAP inter icon2top gif opdateret 04 05 2001 22 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv Om foredragsrækken BuzzTalks 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Efterår 2000 11 Forår 2001 inter menu bund gif BuzzTalks åbne foredrag BuzzTalk er navnet på IT højskolens åbne foredrag Her præsenterer eksterne foredragsholdere et emne der er relateret til forskning og undervisning på IT højskolen Foredragene er offentlige og henvender sig til såvel IT højskolens studerende ansatte som andre interesserede Formålet med foredragene er trefoldigt At supplere IT højskolens undervisning og dermed give de studerende såvel ajourført kendskab til ny teknologi som et mere alment dannende perspektiv på informationsteknologi At skabe fundament for en god dialog mellem IT højskolen og det omkringliggende samfund herunder erhvervslivet At skabe et socialt miljø der bringer studerende og undervisere sammen på tværs af faglige og liniemæssige skel BuzzTalks foregår på IT højskolen i København hver fredag kl 15 15 og varer ca en time Hvis du er interesseret i at deltage og ikke er ansat eller studerende på IT højskolen beder vi blot om at du tilmelder dig på 12 buzztalk it c dk IT højskolens BuzzTalks bliver anbefalet af den danske afdeling af the 13 Institute of Electrical and Electronics Engineers IEEE Program for BuzzTalks 14 forår 2001 15 efterår 2000 16 forår 2000 og 17 efterår 1999 Hvis du har forslag til emner eller foredragsholdere til BuzzTalks modtager vi gerne dine ønsker Send email til Tanja Danner 18 td it c dk 19 USEMAP inter icon2top gif opdateret 04 05 2001 20 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks Efterår 2000 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Program efterår 2000 1 9 11 Digital filmredigering v Kris Kolodziejski 12 Digital Filmlab 8 9 13 Det hyperkomplekse samfund uddannelser organisationer og individer v Professor Lars Qvortrup 14 Syddansk Universitet 15 9 15 Hvem vil være millionær Prøv Lotto eller com v Partner Ph D Carsten Gomard 16 NetCompany dk 22 9 17 Broadband og fremtidens internet v Henrik Werdelin 18 tripledash com tidl Head of Interactive Development MTV Networks Europe 29 9 Aflyst 6 10 19 IT sikkerhed Et voksende problem v Udviklingschef Claus Dengsøe Jensen 20 VIGILANTe Neupart Munkedal A S 13 10 21 Developing for the Internet on its way Into the next millennium v Programming Director Ph D Sebastian B ttrich 22 Icon Medialab 20 10 Efterårsferie 27 10 23 Nye samværsformer i en virtuel verden v Kultursociolog Ph D Stine Gotved 24 Københavns Universitet 3 11 25 Open Source et nyt paradigme i IT branchen v Projektkoordinator Claus Sørensen 26 Plomus 10 11 27 Kan brugere designe Skal de v Professor Jacob Buur 28 Syddansk Universitet 16 11 29 Fordele og ulemper ved objektorienterede programmeringssprog v Department Head Ph D Bjarne Stroustrup 30 AT T Labs 17 11 31 Digital tegnefilm i 2D bag om South Party v Ph D stud Theo Engell Nielsen 32 IT højskolen og stud Uffe Friis Lichtenberg 33 DIKU 24 11 34 Why Functional Programming Matters v John Hughes Chalmers University of Technology 1 12 35 Linux i undervisningssektoren og i erhverslivet v Hanne Munkholm Leder af linuxlab og Flemming Schmidt Manager Softwaremarketing Nordic IBM 36 Om BuzzTalks 37 USEMAP inter icon2top gif opdateret 04 05 2001 38 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 BuzzTalks 4 Efterår Kris Kolodziejski inter vandret gif 5 Uddannelser 6 Stillinger 7 Aktiviteter 8 Home 9 Personer 10 SiteMap 11 Intranet 12 English 13 tilbage inter grey vert r gif inter grey bund gif Digital filmredigering Foredraget handler om digitaliseringens indflydelse på kvalitet og kreative muligheder i filmproduktion Der vil blive vist eksempler fra diverse spillefilm i forskellige formater og digitale projektioner Kris Kolodziejski er Direktør på Digital Filmlab der beskæftiger sig med redigering og efterbehandling af biograffilm Blandt de film Digital Filmlab har arbejdet med findes Den eneste ene og I Kina spiser de hunde Foredraget foregår i Park Bio Østerbrogade 79 fredag den 1 september 2000 kl 15 30 Busser til Park Bio afgår fra IT højskolen Glentevej 67 kl 14 45 til 15 10 14 USEMAP inter icon2top gif opdateret 25 09 2000 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 BuzzTalks 4 Efterår Lars Qvortrup inter vandret gif 5 Uddannelser 6 Stillinger 7 Aktiviteter 8 Home 9 Personer 10 SiteMap 11 Intranet 12 English 13 tilbage inter grey vert r gif inter grey bund gif Det hyperkomplekse samfund uddannelser organisationer og individer I 1998 udgav Lars Qvortrup bogen Det hyperkomplekse samfund Gyldendal 1998 billigbog 2000 Netop nu arbejder han videre med en efterfølger Hvis samfundet er hyperkomplekst hvilke strategiske konsekvenser har det så for regionen uddannelsessystemet organisationer og individer I foredraget sammenfattes teorien om det hyperkomplekse samfund og de strategiske konsekvenser diskuteres Lars Qvortrup er professor i multimedier Efter i fire år at have ledet Aalborg Universitets multimediecenter InterMedia Aalborg er han d 1 september tiltrådt et professorat i multimedier på Syddansk Universitet Fredag d 8 9 2000 kl 15 15 i lokale 0 19 på Glentevej 65 København NV 14 USEMAP inter icon2top gif opdateret 25 09 2000 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 BuzzTalks 4 Efterår Carsten Gomard inter vandret gif 5 Uddannelser 6 Stillinger 7 Aktiviteter 8 Home 9 Personer 10 SiteMap 11 Intranet 12 English 13 tilbage inter grey vert r gif inter grey bund gif Hvem vil være millionær Prøv Lotto eller com Der er en række tegn på at Internettet er på vej ud af puberteten Børsuroen i foråret 2000 har taget noget af luften ud af IT boblen Ingen gider lytte til profeter som spiller bordfodbold imens de forkynder at Internettet vil ændre alting Virksomhederne flytter fokus fra flot front end grafik til solide systemer som kan udføre forretningstransaktioner Venturekapital uddeles ikke længere til 3 mand med en hund og en god ide De etablerede virksomheder begynder at tage Internettet alvorligt og lancerer omsider deres egne initiativer Foredraget vil fortælle om hvad der skal til at lykkes med Internet initiativer i år 2000 Amatørernes aften er forbi Internettet er ved at blive voksent og de professionelle aktører rykker ind Carsten Gomard er Ph D i datalogi og partner i NetCompany NetCompany er stiftet i 1999 og tilbyder Internet ydelser ud fra 3 grundprincipper Gamle dyder i nye tider Solidt strategisk og teknologisk håndværk E business konsulentydelser og hjælp til com initiativer 14 USEMAP inter icon2top gif opdateret 25 09 2000 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 BuzzTalks 4 Efterår Henrik Werdelin inter vandret gif 5 Uddannelser 6 Stillinger 7 Aktiviteter 8 Home 9 Personer 10 SiteMap 11 Intranet 12 English 13 tilbage inter grey vert r gif inter grey bund gif Broadband og fremtidens internet Engang vil folk sikkert grine af sætningen Der er altså ikke noget godt på fjernsynet i aften Fremtidens tv billede bliver nemlig digitalt og inkluderer interaktive elementer multimedia digiziner og agenter der sammensætter dit daglige tv program Henrik Werdelin kigger på hvad fremtiden vil bringe for fremtidens tv kanaler new media producere og entertainment kiggere Henrik Werdelin MA BSC er tidligere New Media Development Executive på MTV Europe hvor han var ansvarlig for udviklingen af interaktive elementer på TV digital TV bredbånd og 3 generation mobil telefoner Nu er han med ejer af Tripledash et broadband laboratorium der hjælper tv stationer og andre content providers med migration af deres produkter til de nye distributions former Henrik har også været konsulent for Undervisningsministeriet med til at starte ChiliRom lavet et af Danmarks første online studenter blade samt været producer for BBC og MTV 14 USEMAP inter icon2top gif opdateret 25 09 2000 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 BuzzTalks 4 Efterår Claus Dengsøe Jensen inter vandret gif 5 Uddannelser 6 Stillinger 7 Aktiviteter 8 Home 9 Personer 10 SiteMap 11 Intranet 12 English 13 tilbage inter grey vert r gif inter grey bund gif IT sikkerhed Et voksende problem Er internetsikkerheden i orden Sikkerhedshuller i netværket betyder fare for tyveri af interne data og dyr nedetid på vitale systemer dermed tab af goodwill muligheder og indtjening Mange er med god grund ikke sikre på om deres sikkerhedsmekanismer er gode nok Danske firmaer som udfører forretninger på Internettet er sårbare overfor sikkerhedsbrister En undersøgelse VIGILANTe Neupart Munkedal A S lavede på NTI2000 viser at 70 af de adspurgte firmaer enten har oplevet angreb af hackere eller ikke var klar over hvorvidt de havde været angrebet Yderligere 40 af firmaerne har oplevet et eller flere angreb hvoraf det mest almindelige er et Ude af Drift angreb hvor firmaets server bliver udsat for ulovlige datapakker eller bliver bombarderet med datapakker Desuden er 20 overbeviste om at deres internetforbindelse jævnligt er udsat for angreb I foredraget på IT højskolen gives der eksempler på hacking og hvad der kan gøres for at mindske risikoen for hacking Yderligere vises et LIVE attack Claus Dengsøe Jensen er udviklingschef hos VIGILANTe Neupart Munkedal A S der har specialiseret sig i uvildigt at levere services og produkter der kan gennemteste alt udstyr tilkoblet internettet for sikkerhedsbrister Fredag d 6 10 2000 kl 15 15 lokale 0 19 Glentevej 65 14 USEMAP inter icon2top gif opdateret 25 09 2000 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 BuzzTalks 4 Efterår Sebastian B ttrich inter vandret gif 5 Uddannelser 6 Stillinger 7 Aktiviteter 8 Home 9 Personer 10 SiteMap 11 Intranet 12 English 13 tilbage inter grey vert r gif inter grey bund gif Developing for the internet on its way into the next millennium In this work in progress talk we are going to discuss some trends and issues of the internet on its way into the 21st century in a mix between science fiction and hands on reality technical talk and feuilleton Today the internet is commonly assumed to be growing exponentially extending into wireless ubiquitous and persistent online presence Net fridges body area networks and digital angels are always with us We will take a look at these developments and the connected growth paradigms New devices have implications on software development for example as operating systems different from the traditional WIMP Windows Icons Menu Pointing OS move into focus New concepts like augmented enhanced reality and context location awareness might form the shape of tomorrow s user services These new devices and concepts bring new questions regarding the future of our cultural political and informational realities 14 USEMAP inter icon2top gif opdateret 25 09 2000 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 BuzzTalks 4 Efterår Stine Gotved inter vandret gif 5 Uddannelser 6 Stillinger 7 Aktiviteter 8 Home 9 Personer 10 SiteMap 11 Intranet 12 English 13 tilbage inter grey vert r gif inter grey bund gif Nye samværsformer i en virtuel verden De nye computermedierede samværsformer der er opstået med internettets udbredelse fx nyhedsgrupper MUDs og chat rum er en udfordring til mere traditionelle tanker om fællesskab og socialitet Som anderledes konstruktioner i både tid og rum genskaber de i tekst alligevel så genkendelige temaer som tilknytning normer og ritualer Med udgangspunkt i et case study af en nyhedsgruppe vises hvordan de computermedierede fællesskaber kan ses også i en større samfundsmæssig kontekst 14 USEMAP inter icon2top gif opdateret 25 09 2000 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 BuzzTalks 4 Efterår Claus Sørensen inter vandret gif 5 Uddannelser 6 Stillinger 7 Aktiviteter 8 Home 9 Personer 10 SiteMap 11 Intranet 12 English 13 tilbage inter grey vert r gif inter grey bund gif Open Source et nyt paradigme i IT branchen Open Source er i øjeblikket ved at ændre spillereglerne i IT branchen Programmer og systemer er gratis og kildeteksten frit tilgængelig hvilket bringer kunden tilbage i førersædet De reelle fordele og ulemper for kunder og producenter belyses samt en generel indføring i Open Source metoden 14 USEMAP inter icon2top gif opdateret 25 09 2000 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Efterår inter vandret gif 5 Uddannelser 6 Stillinger 7 Aktiviteter 8 Home 9 Personer 10 SiteMap 11 Intranet 12 English inter grey vert r gif inter grey bund gif Kan brugere design Skal de Kan brugere designe Skal de Om brugerinvolvering i design af IT produkter Jacob Buur er professor i bruger orienteret produktudvikling ved Mads Clausen Instituttet for Produktinnovation Syddansk Universitet Han kommer fra Danfoss A S hvor han gennem 8 år har opbygget User Centred Design gruppen Gruppen er kendt for en eksperimenterende form for brugerinddragelse i produktudvikling som bygger på drama video spil mv Fredag d 10 11 2000 kl 15 15 lokale 0 19 Glentevej 65 2400 København NV Tilmelding 13 buzztalk it c dk 14 Om BuzzTalks 15 USEMAP inter icon2top gif opdateret 30 10 2000 16 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Efterår inter vandret gif 5 Uddannelser 6 Stillinger 7 Aktiviteter 8 Home 9 Personer 10 SiteMap 11 Intranet 12 English inter grey vert r gif inter grey bund gif Fordele og ulemper ved objektorienterede programmeringssprog Hvis god programmering var det samme som objekt orienteret programmering ville det være klart at et godt programmeringssprog måtte være objektorienteret og intet andet end objektorienteret Men sådan er det jo ikke Hvilken slags problemer er bedst klarede med 00 sprogfaciliteter Hvordan kan man misbruge 00 faciliteter Og hvilke slags ikke 00 faciliteter kan være nyttige Hvordan kan man organisere et program der har 00 og ikke 00 dele Eksemplerne vil blive taget fra C som støtter 00 programmering og andre programmeringsteknikker Bjarne Stroustrupopfandt programmeringssproget C og skrev den første C compiler Han er forfatter af mange tekniske artikler og bøger inkl The C Programming Language og The Design and Evolution of C Hans tekniske hovedinteresser er programmering design og distribuerede systemer Bjarne er afdelingsleder på AT T Labs AT T og ACM fellow Han er Cand Scient fra Århus Universitet og Ph D fra Cambridge Torsdag d 16 11 2000 kl 15 15 lokale 0 10 Glentevej 65 2400 København NV Tilmelding 13 buzztalk it c dk 14 Om BuzzTalks 15 USEMAP inter icon2top gif opdateret 20 10 2000 16 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Efterår inter vandret gif 5 Uddannelser 6 Stillinger 7 Aktiviteter 8 Home 9 Personer 10 SiteMap 11 Intranet 12 English inter grey vert r gif inter grey bund gif Digital tegnefilm i 2D bag om South Party Med spørgsmålene Når man kender sin målgruppe hvordan skruer man så en succes sammen igen og Hvor langt kan man nå når man vil lave det hele selv i C samt en fascination af South Park tegnefilmene gik demogruppen 13 hybris NEMESIS igang med at planlægge historie udseende og programmel til en computergenereret tegnefilm der skulle deltage i wild demo konkurrencen til 14 The Party Theo Engell Nielsen og Uffe Friis Lichtenberg vil til denne BuzzTalk præsentere dele af processen der på 3 uger ledte til den sytten minutter lange tegnefilmsproduktion South Party der endte med at tage publikum med storm Blandt andet vil deres egen 2D tegnefilmsengine og deres lipsync program blive demonstreret Målet er desuden at producere en simpel 20 30 sekunder lang tegnefilm under BuzzTalken for at vise hvor hurtig arbejdsgangen blev Som afslutning vil South Party blive vist i sin fulde længde Fredag d 17 11 2000 kl 15 15 lokale 0 10 Glentevej 65 2400 København NV Tilmelding 15 buzztalk it c dk 16 Om BuzzTalks 17 USEMAP inter icon2top gif opdateret 20 10 2000 18 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Efterår 2000 inter vandret gif 5 Uddannelser 6 Stillinger 7 Aktiviteter 8 Home 9 Personer 10 SiteMap 11 Intranet 12 English inter grey vert r gif inter grey bund gif Why Functional Programming Matters Sixteen years ago I wrote an article with the very same title in which I argued with small examples that so called functional programming languages offered substantial benefits for structuring software Functional languages became popular among researchers yet for many years industrial take up was slow Today however these languages are in daily use at Intel Motorola and Ericsson among others and the first fortunes have been made In this talk I will explain what functional programming is and what benefits it offers I will correct some common misconceptions and talk about some of the industrial applications that functional languages are now finding Fredag d 24 11 2000 kl 15 15 i lokale 0 19 Glentevej 65 2400 København NV Tilmelding 13 buzztalk it c dk 14 Om BuzzTalks 15 USEMAP inter icon2top gif opdateret 13 11 2000 16 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks Forår 2001 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Program forår 2001 26 1 11 Hvordan opdager man et hacker angreb Om forskningsproblemer ved intrusion detection ph d Jacob Rehof Microsoft Research Redmond 2 2 12 Patent på software International trussel eller dansk mulighed v Patentkonsulent Jacob Pade Frederiksen Plougmann Vingtoft Partners 9 2 13 5 tips til at undgå IT fiasko v ph d Seniorkonsulent Morten Heine Sørensen IT Practice 16 2 14 Beyond e magination go wireless v Executive Vice President Trygve Skjøtskift 15 GoPinocchio 23 2 16 The problematic of using IT for pedagogic purposes v Professor Deryn Watson School of Education Kings College London 2 3 17 Mobile Internet v Senior Sales Specialist Kaare Birketoft IBM 9 3 18 Personalized search on the web v Forskningsmedarbejder Thomas Rask Thomsen og Forskningsmedarbejder ph d stud Rene DePont Christensen 19 Mindpass 16 3 20 IBM Research Global Technology Outlook v Dr Phillippe Janson IBM Academy of Technology Zurich 23 3 21 De gamle vinder i den nye økonomi v Associate Cand polit og MBA i strategi Steen Lønberg Jørgensen 22 McKinsey Co 30 3 23 XML visionen v Ph D Michael I Schwartzbach Lektor Århus Universitet 6 4 24 Superchannel og Karlskrona2 Relationel kunst på Internettet v Kunstergruppen Superflex og ph d studerende Troels Degn Johansson 20 4 25 Evaluator effekten Et ubehageligt faktum om teknikker til test af brugervenlighed v Usability Specialist ph d Niels Ebbe Jacobsen Nokia 27 4 26 Softwareudvikling en videnskab og et håndværk v Afdelingsleder ph d Flemming Damm 27 Maconomy 28 Om BuzzTalks Tilmelding 29 buzztalk it c dk 30 USEMAP inter icon2top gif opdateret 04 05 2001 31 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Patent på software International trussel eller dansk mulighed Danmark er paralyseret og forholder sig passivt mens udlandet patenterer for fuld udblæsning også i Danmark Software kan patenteres og bliver det Bare næsten ikke af danskere En patentportefølje er også når det gælder software et strategisk ledelsesværktøj Jakob Pade Frederiksen European Patent Attorney civilingeniør Patentkonsulent og Business Unit Manager hos Plougmann Vingtoft Partners Arbejder med rådgivning inden for patentering af software relaterede opfindelser herunder med tilrettelæggelse af patenteringsstrategier udarbejdelse og procedering af patentansøgninger håndhævelse af rettigheder samt bistand ved retssager i ind og udland Fredag d 2 2 kl 15 15 lokale 0 10 Glentevej 65 2400 København NV Tilmelding 12 buzztalk it c dk 13 Om BuzzTalks 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Beyond e magination go wireless Om få år vil der være flere smartphones end PC er til og med TV er Denne trend tænkes der over i dagens topvirksomheder fordi om få år vil forbrugerne købe flere varer over det mobile Internet end over det traditionelle Internet GoPinocchio s fokus er Mobile Business inden for B2B segmentet Vi ser Mobile Business som spektrummet af muligheder inden for kommunikation transaktion og underholdning I dag ser man de første integrerede Mobile Business løsninger i Europa som er baseret på teknologier som WAP og SMS inden for kort tid vil dette marked udvikle sig eksplosivt Vi vil diskutere det stigende menneskelige behov for at kunne arbejde lære leve og lege hvor som helst når som helst Dette emne vil vi samtidig relatere til hvad som teknologisk er muligt i dag Trygve Skjøtskift er Executive Vice President i GoPinocchio Fredag d 16 2 lokale 0 19 Glentevej 65 2400 København NV Tilmelding 12 buzztalk it c dk 13 Om BuzzTalks 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Softwareudvikling en videnskab og et håndværk Maconomys udviklingsafdeling beskæftiger ca 40 dataloger og civilingeniører og konkurrerer med softwareudvikingsafdelinger med 10 100 gange så mange ansatte og klarer sig godt i denne konkurrence Hvad er hemmeligheden Hos Maconomy lægger vi vægt på at softwareudvikling er både en videnskab og et håndværk Behændighed er en vigtig egenskab for en håndværker men først når det kombineres med et solidt kendskab til materialernes muligheder et sæt gode værktøjer og fortrolighed med værktøjernes anvendelsesmuligheder opnås de rigtig gode resultater I tillæg hertil er en dygtig håndværker kendetegnet ved at han ikke bare er metodisk og struktureret men også at han laver et nyt stykke værktøj hvis det sætter ham i stand til at løse en opgave bedre Med matematikkens systematik og præcision og ingeniørfagets metodik hører datalogien naturligt hjemme blandt de naturvidenskabelige fag Softwareudvikling er imidlertid ikke kun et stykke skrivebordsarbejde men også et stykke praktisk kontruktionsarbejde der skal udføres Maconomys erfaring er at netop når de teoretiske og praktiske færdigheder forenes opnås exceptionelle resultater med både høj produktivitet og høj kvalitet Behovet for slidsomt vedligholdelses og fejlretningsarbejde samt omstændige tests begrænses til et minimum hvorved udviklerne kan koncentrere sig om det de er gode til og finder sjovt nemlig nyudvikling Fredag d 27 4 lokale 0 19 Glentevej 65 2400 København NV Tilmelding 12 buzztalk it c dk 13 Om BuzzTalks 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Personalized search on the web Mindpass com is driven by the vision To help our customers create the most attractive places in the networked global society Based on the experience of years of development on a scalable Internet search engine we present a set of problems and solutions related to searching the web and scaling with the web Thomas Rask Thomsen er Cand Scient i datalogi og matematik fra Aalborg Universitet og er ansat ved Mindpass som forskningsmedarbejder og softwaredesigner Rene DePont Christensen er ph d studerende ved IMADA og ansat ved Mindpass som forskningsmedarbejder Fredag d 9 3 kl 15 15 lokale 0 19 Glentevej 65 2400 København NV Tilmelding 12 buzztalk it c dk 13 Om BuzzTalks 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif De gamle vinder i den nye økonomi Den nye økonomi styres af 20 årige med ring i næsen og hestehale Forkert Spektakulære startup fiaskoer har flyttet fokus over på de store klassiske virksomheder som vil sætte dagsordenen i de nye tider De etablerede virksomheder er blevet mere risiko villige og eksperimenterer med et stigende antal nye forretningsideer At udvikle en ide fra koncept til en bæredygtig business er imidlertid ikke nemt For at lykkes i den nye økonomi må de klassiske virksomheder forcere et par vigtige barrierer ikke mindst den kulturelle Til denne BuzzTalk vil vi diskutere hvordan de mest succesfulde virksomheder skaber nye businesses Vi vil kigge på case eksempler og diskutere de muligheder og udfordringer unge entreprenører møder i de klassiske virksomheder Steen Lønberg Jørgensen cand polit og MBA i strategi er associate i McKinsey Co hvor han primært beskæftiger sig med business building i både store virksomheder og start ups Fredag d 23 3 kl 15 15 lokale 0 19 Glentevej 65 2400 København NV Tilmelding 12 buzztalk it c dk 13 Om BuzzTalks 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Hvordan opdager man et hacker angreb Om forskningsproblemer ved intrusion detection Internetsikkerhed er desværre et alt for velkendt begreb idag fordi den ikke findes Problemet med internetsikkerhed består af mange forskellige dele En vigtig komponent i moderne sikkerhedssystemer er at kunne opdage indbrudsforsøg hacker angreb imod computere via internettet Intrusion Detection systemer består af software agenter som forsøger at løse denne opgave ved at overvåge computere og netværkstrafik Men er der egentlig sket afgørende fremskridt i Intrusion Detection teknologien siden Cliff Stoll i 1986 tilbragte et års tid i en sovepose på sit kontor for at fange en hacker spion Forbedring af Intrusion Detection teknologi er et svært men presserende problem og det kræver en forskningsindsats Derfor har Microsoft Research indledt et projekt i Intrusion Detection Foredraget beskriver bl a visionen for projektet og belyser hvilke forskningsproblemer det giver anledning til Jakob Rehof er forsker i software productivity tools afdelingen hos Microsoft Research i Redmond Washington Han fik sin ph d grad på Datalogisk Institut ved Københavns Universitet hvor han forskede i fundamentale problemstillinger i forbindelse med programanalyse og avancerede typesystemer for programmeringssprog Han flyttede derefter til Microsoft Research hvor han bl a har udviklet skalerbare programanalyser for store programmer såsom MS Word Fredag d 26 1 kl 15 15 lokale 0 10 Glentevej 65 2400 København NV Tilmelding 12 buzztalk it c dk 13 Om BuzzTalks 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Evaluator effekten Et ubehageligt faktum om teknikker til test af brugervenlighed Professionelle IT medarbejdere har brug for robuste og brugbare teknikker til systematisk at forbedre brugervenligheden af IT systemer Desværre har kognitiv gennemgang heuristisk evaluering og tænke højt forsøg tre af de mest anvendte evaluerings teknikker vist sig at lide af en betydelig evaluator effekt Forskellige evaluatorer der evaluerer den samme brugergrænseflade finder væsensforskellige problemer Vi har gennemgået 11 studier af evaluerings teknikker som har vist at evaluator effekten eksisterer for både novicer og erfarne evaluatorer for både kosmetiske og alvorlige problemer for både identificering og scoring af problemer og for både simple og komplekse systemer I oplægget præsenteres data der underbygger påstanden om en betydelig evaluator effekt På baggrund af disse data foreslås metoder til at minimere graden af evaluator effekten Baggrundsmateriale Hertzum M Jacobsen N E 2001 The Evaluator Effect A Chilling Fact About Usability Evaluation Methods To appear in International Journal of Human Computer Interaction Niels Ebbe Jacobsen er Usability Specialist hos Nokia Mobile Phones og har en ph d inden for Human Computer Interaction Fredag d 20 4 lokale 0 10 Glentevej 65 2400 København NV Tilmelding 12 buzztalk it c dk 13 Om BuzzTalks 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Mobile Internet OBS Aflyst pga sygdom Inden for ganske få måneder vil det være almindeligt at store virksomheder tilbyder deres medarbejdere office løsninger såsom post kalender tidsregistrering intranet information nyheder og betalingsløsninger via en mobil klient I min præsentation vil jeg diskutere den rivende udvikling inden for Business to Business og Business to Employee mobilportaler Jeg vil også forsøge at give et bud på hvem der bliver vinderne inden for mobile ASP løsninger IBM opfandt begrebet e business og lige nu er IBM i fuld gang med at tage førertrøjen på inden for mobile e business Dette ses bl a ved at IBM satser 8 mia kroner på at udvikle løsninger og kompetencer inden for det mobile Internet i Europa i disse år Kaare Birketoft er uddannet cand merc i markedsføring og arbejder som Senior Sales Specialist i IBM s Mobile Internet Sales Team Kaare Birketofts ansvarsområde er salg og forretningsudvikling i mobil operatør segmentet herunder salg og forretningsudvikling af Business to Business Business to Employee og Businesss to Consumer mobilportaler Senest kommer Kaare fra en stilling som chefkonsulent i IBM e business consulting Kaare Birketoft har opbygget sin viden fra Ericsson hvor han bla arbejdede som account manager for Tele Danmark Fredag d 2 3 kl 15 15 lokale 0 19 Glentevej 65 2400 København NV Tilmelding 12 buzztalk it c dk 13 Om BuzzTalks 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif IBM Research Global Technology Outlook Every year since about 15 years the IBM Research Division reviews and updates a document referred to today as the Global Technology Outlook That document tries to understand the most likely developments in information technologies over the next five to ten years and their probable technical impact on the industry and the society at large Though this exercise failed to predict some technical developments over its lifetime in retrospect it has been amazingly accurate The presentation summarizes the learnings of the 2000 GTO which led to five key observations 1 Whether in processing storage or communication capacity there is no significant growth slow down in view for the next five to ten years and size cost and consumption should continue to decrease at their historical rates 2 Given this continuing explosion in capacity and reduction in cost size and consumption computing will invade every walk of life Not only will it invade our offices homes cars and pockets but it will even invade all familiar places and objects around us Everything will become intelligent and be on line so that the whole physical world will be mirrored by a digital image in the cyberworld 3 Given how complex the management of our IT infrastructure already is today the challenge will only get bigger in the world depicted above While large enterprises and institutions may continue to operate their own infrastructure and connect it to the public Internet most smaller businesses and all private users will no longer be able to manage their own systems Increasingly they will rely on intelligent infrastructure support rented from some service provider The rented service will include all kinds of management and support function making the life and the job of the end user or application provider as simple as possible letting it concentrate on its core business while out sourcing the complete maintenance and operation of its IT 4 This will also concern software which will less and less be developed in house or bought but instead be rented in the form of pluggable components with standardized interfaces to execute every possible business process or productivity application 5 Last but not least in this fast paced and competitve world it will be vital for every enterprise to optimize its operation as much as it can This will entail tracking information as closely as possible to be able to react immediately to changing conditions and evolving markets Such optimization will require massive use of deep computing optimization kernels data mining searching and pattern recognition techniques simulation and vizualization tools etc All these trends will be discussed specifically from the venture point of a finance organization trying to understand what it will mean to conduct business in this new century V Dr Phillippe Janson VP IBM Academy of Technology IBM Zurich Research Laboratory Fredag d 16 3 kl 15 15 lokale 0 10 Glentevej 65 2400 København NV Tilmelding 12 buzztalk it c dk 13 Om BuzzTalks 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif 5 tips til at undgå IT fiasko I 1975 skrev Frederic P Brooks sin klassiske bog The Mythical Man Month i et forsøg på at analysere problemerne i et tidligt IT projekt For nylig viste rapporten IT i Praksis 2000 fra PLS Rambøll Management at to trediedele af alle IT kunder i det offentlige mener at de IT systemer de får leveret er fejlbehæftede bliver afleveret for sent og har utilfredsstillende funktionalitet Er vi virkelig ikke blevet bedre i løbet af 25 år I foredraget vil jeg komme ind på nogle typiske problemer specifikt vedrørende forholdet mellem leverandør og kunde i IT projekter samt komme med 5 ideer til hvordan man undgår dem Fredag d 9 2 kl 15 15 lokale 0 19 Glentevej 65 2400 København NV Tilmelding 12 buzztalk it c dk 13 Om BuzzTalks 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif The problematic of using IT for pedagogic purposes The reality behind the rhetoric exploring IT use in UK schools OBS Aflyst pga sygdom Denne BuzzTalk er desværre aflyst da Deryn Watson er blevet syg og ikke kan komme Despite concerted national efforts to promote the use of IT in education it is clear from government statistics and research reports both in the UK and elsewhere that the impact of IT on education is a resolutely disappointing one Why This paper will explore issues that have emerged from research to explain the reality behind the rhetoric and proposes that change will only happen if we attempt to understand more fully the problematic of using IT for pedagogic purposes Professor Deryn Watson from the School of Education Kings College London has researched the area of IT and Learning for the past 20 years Deryn Watson s current research interests include issues which influence the take up and use of IT in schools national and institutional policies and practices for IT within a socially critical frame on innovation and change A related growing interest is the relationships between professionals professional development and change Deryn Watson is also active in the 12 International Federation for Information Processing IFIP She is a member of the International Programme Commitee for the conference 13 Networking the Learners which takes place in the Bella Centre in Copenhagen 29 July 3 August 2001 Friday 23 2 room 0 19 Glentevej 65 2400 Copenhagen NV Free booking 14 buzztalk it c dk 15 Om BuzzTalks 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif XML Visionen XML er et fælles meta sprog til repræsentation af struktureret data der primært sigter mod at bruges til Web dokumenter men også spås en fremtid inden for databaser Dette foredrag vil præsentere den såkaldte XML vision der består af en samling relaterede teknologier og værktøjer til definition og brug af specifikke XML sprog Denne vision er under stadig udvikling og modning så foredraget vil også skitsere hvilke teknologier der er på plads hvilke der er under debat og hvilke der knap nok er tænkt på endnu v Ph D Michael I Schwartzbach Lektor Århus Universitet Fredag d 30 3 kl 15 15 lokale 0 19 Glentevej 65 2400 København NV Tilmelding 12 buzztalk it c dk 13 Om BuzzTalks Se slides fra foredraget 14 her 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Om foredragsrækken BuzzTalks 4 Forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Superchannel og Karlskrona2 Relationel kunst på Internettet Den succesfulde kunstnergruppe Superflex har gjort sig bemærket med en højst original måde at bruge Internettet på som medium for deres såkaldte relationelle kunst Gennem to projekter Karlskrona2 og Superchannel har gruppen benyttet sig strategisk af Internettet for at opfylde målet for deres kunstneriske arbejde at skabe nye forbindelser relationer mellem mennesker og på den måde at få ting til at ske ting som kan have stor betydning for mennesker og samfund og som måske ellers ikke ville kunne lade sig gøre Karlskrona2 er en geografisk 3D MUD baseret på en digital model af byen Karlskrona i Blekinge Sverige Formålet med Karlskrona2 er at etablere et fri rum free space hvor især lokale borgere kan få mulighed for at diskutere byens fremtidige udseende ved at opbygge og ændre på den digitale model Superchannel er en kommunikationsplatform baseret på streaming media chat et studie og en html side Superchannel studiet kan være et kunstgalleri og dermed benytter gruppen sig af kunstverdenen til at iscenesætte en demokratisk tilgang til Internettets inventar af medier Men Superchannel studiet kan i princippet etableres et hvilket som helst sted med internet adgang og på den måde er avantgarde gruppen Superflex med til at få kunsten ud til mennesker i deres hverdagsliv og verden Denne BuzzTalk vil tage form som et uformel præsentation og diskussion af Superflex arbejde herunder samarbejdet med Troels Degn Johansson i forbindelse med hans ph d projekt om web baseret visualisering af byrum og landskaber i offentlig planlægningsinformation Ud over at være ekstern lektor ved DKM linien på IT højskolen i København er Troels ph d studerende ved afdelingen for by og landsplanlægning ved Forskningscenter for Skov Landskab Miljø og Energiministeriet Superflex har base i København Se nærmere på 12 www superflex dk Fredag d 6 4 kl 15 15 lokale 0 19 Glentevej 65 2400 København NV Tilmelding 13 buzztalk it c dk 14 Om BuzzTalks 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Erhvervsliv 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif 10 USEMAP inter icon2top gif opdateret 04 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT INT Seminarer 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English 13 Efterår 2000 14 Forår 2000 inter menu bund gif Internetteknologiseminarer Internetteknologi seminarer er åbne for alle Seminarerne er rettet mod studerende på Internetteknologilinien med det formål at give de studerende indblik i aktuel forskning eller teknologi indenfor internetteknologi Planlagte seminarer i forårssemesteret 2001 Uge Dato Lokale Tid Emne Foredragsholder 5 30 1 TBA 13 00 14 00 15 Opbygning af e markedspladser ved hjælp af robotteknologi Morten Helles 16 Kapow 19 8 5 2 03 10 00 11 00 17 Introduction to Smart Cards Peter Aage 18 GemPlus 19 USEMAP inter icon2top gif opdateret 04 05 2001 20 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English 11 Studieleder 12 Mere om INT inter menu bund gif Internetteknologi Kandidater i Internetteknologi vil have en grundlæggende viden om de teknologier der tilsammen udgør internet og kan udvikle driftssikre og effektive internetprogrammer Uddannelsen består af tre fagområder Netværksteknologi internetprogrammel og internet i organisationer Netværksteknologi indeholder opbygning og organisering af netværk netværksprotokoller fejltolerance og datasikkerhed Herigennem opnår kandidaten indsigt i netværkets basale funktioner sikkerhedsrisici og teknikker til sikring mod uautoriseret adgang Internetprogrammel giver indsigt i internetprogrammel aktuelle teknologier og værktøjer og omhandler parallelle og mobile systemer distribueret databehandling databaser indlejrede og tidstro systemer operativsystemer algoritmer og datastrukturer korrekthed og pålidelighed Internet i organisationer beskæftiger sig med IT i geografisk spredte organisationer interaktionsdesign og økonomiske og organisatoriske aspekter af intra og internet samt giver indsigt i nye samarbejdsformer services og produkter Kandidatlinien udbydes i samarbejde med Danmarks Tekniske Universitet og Københavns Universitet 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Studieleder 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Thomas T Hildebrandt Med til at sætte dagsordenen Studieleder Thomas Hildebrandt Internettet er unikt fordi det gør datalogiske problemstillinger meget mere synlige og relevante for den almindelige bruger F eks er net surfere afhængige af semantik og fortolkning hver gang de får vist en ny webside Og de hurtigste og smarteste søgemaskiner udnytter avancerede algoritmer og datastrukturer siger forskningsadjunkt Thomas Troels Hildebrandt som er leder af Internetteknologi linjen på IT højskolen Teknologien udvikler og ændrer sig med stor hast Derfor er det vigtigt at en kandidat i internetteknologi også forstår de bagvedliggende og varige principper for de teknologier der tilsammen udgør internettet Målet med uddannelsen er netop at uddanne kandidater som er i stand til selv at udvikle teknologien og bruge den i nye sammenhænge så vi ikke bare bliver passive bruger der overlader det til andre at sætte dagsordenen for internettet Det spændende ved IT højskolen er at de studerende har vidt forskellige faglige baggrunde Inden for Internetteknologi linjen har mange af de studerende en teknisk baggrund men der er også studerende som har læst religion historie og musik Det gælder om at de husker og udnytter den faglighed de kom med De studerende kan bruge deres IT overbygning til at bringe nye ideer til virkelighed inden for deres eget fag F eks lavede en studerende som før havde læst musik projekt om et slags on line play room hvor musikere fra hele verden kunne spille sammen i real time Thomas Hildebrandt forventer at de studerende holder sig grundigt orienteret om hvad der foregår på IT området f eks via dagspressen og de hyppige forsknings og virksomhedsforedrag på IT højskolen Hvis man vil være med til at præge Internet området i fremtiden kræver det at man har øje for hvilke forventinger f eks erhvervslivet har til området hvilke samfundsmæssige tendenser som kan præge udviklingen osv Vi skal ved hjælp af uddannelse forskning og et samarbejde med erhvervslivet være med til at sætte dagsordenen på Internet området intet mindre Kort om Thomas Troels Hildebrandt 28 år uddannet datalog fra Århus Universitet i 1997 Forskningsområde Semantik Kategoriteori Parallelle og Mobile systemer 1998 Labaratory for Foundations of Computer Science University of Edinburgh Kortere ophold på McGill University Montreal 1999 Ph d i datalogi fra Aarhus Universitet BRICS grundforskningscenteret Siden 1999 ansat som forskningsadjunkt ved IT højskolen tilknyttet RCES forskningsprojektet 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Mere om INT 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English 12 Studiet 13 Relevante kæder 14 INT Seminarer 15 Projekter inter menu bund gif Internetteknologilinien Internetteknologilinien tilbyder en kandidatgrad cand it internetteknologi som et 2 årigt fuldtidsstudium og en Mastergrad MITI som et 3 årigt deltidsstudium Ved at følge henvisningerne herfra siden kan du læse mere om studiet på internetteknologilinien Den generelle information kan også findes samlet i vores 16 uddannelseskatalog Studiet Hvordan ser et typisk semester ud på Internetteknologi Hvordan er uddannelsen struktureret Hvilke kurser kan jeg vælge og hvilke kurser er centrale for internetteknologilinien Hvilke studieforløb anbefales og hvilke muligheder er der for at specialisere sig Hvor finder jeg de studerende under studiet og efter studiet Relevante kæder Dokumentation for programmeringssprog protokoller formateringssprog og meget mere INT Seminarer Seminarrække rettet mod studerende på internetteknologi Projekter Hvordan konstrueres en søgemaskine Hvordan programmeres et SIM kort Hvordan får jeg en målestation på internettet 17 USEMAP inter icon2top gif opdateret 04 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT Studiet 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English 13 Fagområderne 14 Semesterets gang 15 Struktur 16 Kernekurser 17 Specialisering 18 Anbefalede forløb 19 De studerende 20 Jobmuligheder inter menu bund gif Studiet på Internetteknologilinien For at kunne se fremad og udnytte alle internettets muligheder er det nødvendigt at have folk med dyb forståelse for dets underliggende teknologier og varige naturvidenskabelige begreber Personer der forstår principperne har færdighederne og kan anvende dem innovativt til nye produkter og services Uddannelserne i internetteknologi har som mål at give dig de rette kvalifikationer til at tage udfordringerne op Fagligt spænder internetteknologi fra det laveste niveau af software der varetager udvekslinger af datapakker over de fysiske ledninger til distribuerede applikationer der muliggør f eks samtidig køb af flybilletter fra forskellige steder på jorden uden at den samme billet sælges to gange og nye måder hvorpå mennesker effektivt kan kommunikere og samarbejde Uddannelsen i internetteknologi er således inddelt i følgende fagområder Netværksteknologi internetprogrammel og internet i organisationer Undervisningen varetages af forskere ansat ved IT højskolen forskere fra vores to partnere Datalogisk afdeling ved Københavns Universitet og Danmarks Tekniske Universitet eller eksterne lektorer Alle eksterne lektorer er enten ansat ved en af landets øvrige universiteter eller indenfor IT og kommunikationsbranchen 21 USEMAP inter icon2top gif opdateret 04 05 2001 22 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT 6 Studiet Fagområderne 7 Stillinger 8 Aktiviteter 9 Home 10 Find person 11 SiteMap 12 Intranet 13 English inter menu bund gif Fagområderne på Internetteknologilinien For både kandidat og masteruddannelsen tegnes liniens profil af tre fagområder Det første er netværksteknologi der omhandler opbygning og organisering af netværk netværksprotokoller fejltolerance og datasikkerhed Når man mestrer netværksteknologi forstår man et netværks basale funktioner hvilke komponenter der indgår hvordan datastrømme deles op i pakker hvordan pakker er organiseret og routes rundt fra et vilkårligt startpunkt til et vilkårligt målpunkt hvordan der korrigeres for fysiske fejl osv Dertil kommer kendskab til kryptografiske teknikker og tidsaktuelle standarder herunder digitale signaturer elektroniske betalinger og krypteret kommunikation en forståelse af formerne af sikkerhedsrisici og deres potentielle konsekvenser herunder virus angreb web sikkerhed og sikker håndtering af backups beherskelse af teknikker til sikring mod uautoriseret adgang i netværk kendskab til best practice sikkerhedsprocedurer i organisationer og de vigtigste internationale organer for varetagelse af datasikkerhed Det andet fagområde er internetprogrammel Fokus for internetprogrammel bevæger sig fra netværket ud mod de enheder som skal udnytte nettet Målet er at forstå de grundlæggende problemstillinger i konstruktionen af internetprogrammel og få færdigheder i tidens aktuelle teknologier og værktøjer hvorfor mange af kurserne deles med linien for sofwareudvikling Fagområderne er parallelle systemer distribueret databehandling databaser indlejrede og tidstro systemer operativsystemer algoritmer og datastrukturer samt programmers korrekthed og pålidelighed Det sidste fagområde internet i organisationer omhandler IT til distribuerede organisationer interaktionsdesign og økonomiske og organisatoriske aspekter af anvendelser af intra og internet Med et organisationsperspektiv vil man kunne se hvilke muligheder internettet giver for nye samarbejdsformer services og produkter 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT 6 Studiet Semesterets gang 7 Stillinger 8 Aktiviteter 9 Home 10 Find person 11 SiteMap 12 Intranet 13 English inter menu bund gif Semesterets gang Et normalt semester indeholder som på de øvrige linier på IT højskolen en 12 ugers kursusperiode efterfulgt af en 4 ugers projektperiode I kursusperioden følger den studerende tre kurser på kandidatstudiet og to kurser på masterstudiet Hvert kursus afvikles normalt på een ugedag der kan bruges forskelligt afhængigt af kurset Typisk vil der være 4 timer med deltagelse af underviseren For eksempel kan et kursus starte kl 9 med gennemgang af sidste uges afleverede og nu rettede opgaver efterfulgt af to timers forelæsning der afsluttes ved frokost Efter frokost kan der så være to timers selvstændig opgavearbejde med fælles gennemgang fra klokken 15 til 17 Det forventes at den studerende arbejder selvstændigt med faget de resterende ugedage og sørger for at få alment dannende viden for eksempel ved læsning af relevant faglitteratur og deltagelse i relevante seminarer på IT højskolen f eks de ugentlige Buzz talks Projekter i 4 ugersperioden udarbejdes i grupper på 2 5 studerende og vil typisk bestå i en større konstruktionsopgave som kombinerer viden fra to eller flere forudgående kurser Der er stor mulighed for at følge kurser sammen med studerende fra andre uddannelseslinier Det gør det nemt at danne tværfaglige projektgrupper 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT 6 Studiet Struktur 7 Stillinger 8 Aktiviteter 9 Home 10 Find person 11 SiteMap 12 Intranet 13 English inter menu bund gif Studiets struktur Kandidatuddannelsen Kandidatuddannelsen på IT højskolen er et 2 årigt fuldtidsstudium indeholdende studieaktiviteter svarende til 120 ECTS point normalt fordelt ligeligt med 30 ECTS point på hvert af de fire semestre For at opnå liniebetegnelsen internetteknologi på kandidatuddannelsen i informationsteknologi skal følgende krav opfyldes 1 Fagområdet netværksteknologi skal dækkes med beståede studieaktiviteter indenfor fagområdets kerne svarende til minimum 15 ECTS 2 Fagområdet internetprogrammel skal dækkes med beståede studieaktiviteter indenfor fagområdets kerne svarende til minimum 15 ECTS 3 Fagområdet internet i organisationer skal dækkes med med beståede studieaktiviteter indenfor fagområdets kerne svarende til minimum 7 5 ECTS 4 Endelig kræves en specialeforberedende studieaktivitet indenfor uddannelseslinien svarende til minimum 7 5 ECTS point og et afsluttende speciale af et semester varighed 30 ECTS point indenfor uddannelsesliniens formål og fagområder En studieaktivitet kan både være et kursus normalt i 12 ugersperioden eller et projekt normalt i 4 ugersperioden Udover de ovenstående studieaktiviteter kræves at der i de resterende studieaktiviteter indgår kursusaktiviteter der blot skal ligge inden for cand it uddannelsens formål svarende til minimum 7 5 ECTS point Masteruddannelsen Masteruddannelsen på IT højskolen er et 3 årigt deltidsstudium indeholdende studieaktiviteter svarende til 90 ECTS point normalt fordelt ligeligt med 15 ECTS point på hvert af de seks semestre Følgende sammensætningskrav skal opfyldes 1 Fagområdet netværksteknologi skal dækkes med beståede studieaktiviteter indenfor fagområdets kerne svarende til minimum 15 ECTS 2 Fagområderne internetprogrammel og internet i organisationer skal samlet dækkes med beståede studieaktiviteter indenfor fagområdets kerne svarende til minimum 15 ECTS Det anbefales at følge eet kursus indenfor fagområdet internet i organisationer 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT 6 Studiet Kernekurser 7 Stillinger 8 Aktiviteter 9 Home 10 Find person 11 SiteMap 12 Intranet 13 English inter menu bund gif Kernekurser på Internetteknologi foråret 2001 Følgende kurser med forbehold for ændringer er planlagt udbudt foråret 2001 indenfor de tre fagområders kerne Alle kurserne har et omfang af 7 5 ECTS point Netværksteknologi 14 Netværk og protokoller 15 Datasikkerhed Internetprogrammel 16 Databasesystemer 17 Internetprogrammering 18 Parallelle systemer Operativsystemer og maskinnær programmering nyt 19 Introduktion til algoritmer og datastrukturer 20 Funktionel design og programmering Internet i Organisationer 21 IT støttet samarbejde og IT til distribuerede organisationer 22 IT projektledelse 23 Internetjura Flere af kurserne indgår også som kernekurser for fagområder på linierne Multimedieteknologi og Softwareudvikling og et enkelt udbydes af linien for e handel De fremhævede kurser anses for centrale kurser på Internetteknologilinien der anbefales for alle Du kan finde yderligere information om alle kurserne herunder forudsætningskrav i 24 kursusbogen 25 USEMAP inter icon2top gif opdateret 04 05 2001 26 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT 6 Studiet Specialisering 7 Stillinger 8 Aktiviteter 9 Home 10 Find person 11 SiteMap 12 Intranet 13 English inter menu bund gif Specialeforberedende kurser på internetteknologi foråret 2001 På kandidatuddannelsen kræves en specialeforberedende studieaktivitet indenfor uddannelseslinien svarende til minimum 7 5 ECTS point Følgende kurser med forbehold for ændringer er planlagt udbudt foråret 2001 som specialeforberedende på Internetteknologilinien Alle kurserne har et omfang af 7 5 ECTS point Fejlfinding Test og Validering nyt Mobilitetssoftware nyt 4 ugers projektkursus i 14 Apparatsoftware individuel vurdering Elements of Cryptography and Information Theory nyt 15 Avancerede Algoritmer Datastrukturer Undervisningen i de specialeforberende kurser varetages af forskere ansat i forskningsafdelingen for Teori eller forskningsafdelingen for Innovation under IT højskolen og alle emner er centrale for de enkelte underviseres forskning Du vil snart kunne finde yderligere information om alle kurserne herunder forudsætningskrav i kursusbogen 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT 6 Studiet Anbefalede forløb 7 Stillinger 8 Aktiviteter 9 Home 10 Find person 11 SiteMap 12 Intranet 13 English inter menu bund gif Anbefalede studieforløb Kandidatstudiet Det anbefales at kurserne Databasesystemer Netværk og Protokoller Internetprogrammering Datasikkerhed Parallelle Systemer og IT støttet samarbejde indgår i studiet Det anbefalede første semester for henholdsvis studerende uden programmeringserfaring UP og studerende med programmeringserfaring MP ser ud som følger 1 semester UP Grundlæggende Programmering Databasesystemer og Netværk og Protokoller MP Internetprogrammering Databasesystemer og Netværk og Protokoller Masterstudiet Det anbefalede studieforløb for henholdsvis studerende uden programmeringserfaring UP og studerende med programmeringserfaring MP ser ud som følger 1 semester UP Grundlæggende Programmering og Netværk og Protokoller MP Internetprogrammering og Netværk og Protokoller 2 semester UP 12 ugers erhvervsrelateret projektforløb 7 5 ECTS Internetprogrammering MP 12 ugers erhvervsrelateret projektforløb 7 5 ECTS IT støttet samarbejde 3 semester UP og MP Databasesystemer Datasikkerhed 4 semester UP og MP 12 ugers projektforløb 7 5 ECTS der anbefales udfærdiget i samarbejde med en erhvervsvirksomhed Parallelle Systemer 5 semester UP IT støttet samarbejde og enten Fejlfinding Test og Validering eller Mobilitetssoftware MP Fejlfinding Test og Validering og Mobilitetssoftware 6 semester Projektarbejde 15 ECTS Bør udfærdiges i samarabejde med en erhvervsvirksomhed 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT 6 Studiet De studerende 7 Stillinger 8 Aktiviteter 9 Home 10 Find person 11 SiteMap 12 Intranet 13 English inter menu bund gif De studerende Internetteknologilinien INT optager hvert semester mellem 20 og 30 nye studerende Linjen startede i foråret 2000 og i februar 2001 vil der være omkring 80 INT studerende Inden for Internetteknologi linjen har mange af de studerende en teknisk baggrund men der er også studerende som har læst f eks religion filosofi historie og musik Det gælder om at huske og udnytte den faglighed man kommer med De studerende har indflydelse på studiet gennem lige repræsentation i fagudvalg og studienævn 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT 6 Studiet 7 De studerende 8 Stillinger 9 Aktiviteter 10 Home 11 Find person 12 SiteMap 13 Intranet 14 English 15 Fagudvalg inter menu bund gif 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT 6 Studiet 7 De studerende 8 Fagudvalg 9 Stillinger 10 Aktiviteter 11 Home 12 Find person 13 SiteMap 14 Intranet 15 English inter menu bund gif Fagudvalg Fagudvalgene på de enkelte linier fungerer som underudvalg for Studienævnet De er de studerendes vigtigste muligheder for at få indflydelse på og indsigt i beslutningerne omkring deres studie Ved valget oktober 2000 blev følgende valgt til fagudvalget for Internetteknologi Undervisere Stephen Alstrup IT C Thomas Hildebrandt formand linieleder IT C Henrik Hulgaard supleant IT C Hans Henrik Løvengreen DTU Studenter Morten Holm Dennis Jensen Jose Orellano supleant E2000 Nguyen Vo næstformand E2000 Formanden er linieleder for uddannelseslinien og repræsenterer sammen med næstformanden linien i studienævnet for INT SWU MMT og DKM også kaldet IT C studienævnet 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT 6 Studiet Jobmuligheder 7 Stillinger 8 Aktiviteter 9 Home 10 Find person 11 SiteMap 12 Intranet 13 English inter menu bund gif Erhvervsmuligheder Erhvervsmuligheder findes blandt andet indenfor udvikling af internetbaserede produkter drift og vedligeholdelse af netværk udvikling og vedligeholdelse af distribuerede applikationer udvikling af mobile applikationer og udvikling af apparatsoftware Som et eksempel vil en kandidat forventes at kunne have kvalifikationerne til at udvikle et system med en elektronisk tegnebog så man kan undgå at bruge sit kreditkort hver gang der skal købes noget på nettet Et andet eksempel er at en kandidat kan medvirke til at udvikle software til mobiltelefoner der vil gøre det muligt at modtage avancerede applikationer der kan bruges off line Et tredje eksempel er at en kandidat kan deltage i at udvikle programmel til interaktivt TV 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT Relevante kæder 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Internetværktøjer med mere Nedenfor kan du finde kæder til information om en række internetværktøjer formater programmeringssprog oversættere og meget mere Java Programmeringssprog 13 Officiel Sun Java Tutorial Denne tutorial indeholder en række forskellige trails om en række Java emner For eksempel er Getting Started et Trail Covering the Basics 14 Java Development Kit for Windows and Linux Gratis Java udviklingsværktøjer HTML Formateringssprog 15 Netscape s HTML Tag Reference book JavaScript Scriptingsprog 16 JavaScript World JavaScript dokumentation eksempler og tricks 17 JavaScript Developer Central Dokumentation fra en alliance mellem Sun og Netscape Der er flere dokumenter om Java CORBA XML og andre teknologier fra forælder siden 18 DevEdge Online XML Formateringssprog 19 The XML Revolution Anders Møllers og Michael I Schwartzbachs 130 siders on line transparentsamling med introduktion og overblik over XML Namespaces XLink XPointer XPath DSD XSLT og XML QL og udvalgte kæder til yderlige information PHP MySQL Web programmeringssprog SQL relationsdatabase 20 PHP MySQL Tutorial Der er flere nyttige informationskilder på 21 Webmonkey hjemmesiden Bl a et JavaScript kilde bibliotek Wireless Developer Network 22 Wireless Developer Network WAP Wireless Application Protocol WML Wireless Markup Language WML Script and more Bluetooth Blåtand ny teknologi for trådløs nærkommunikation 23 An Introduction to Bluetooth 24 USEMAP inter icon2top gif opdateret 04 05 2001 25 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT Projekter 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Projekter på Internetteknologi Herfra vil du kunne finde beskrivelser af projekter der er specielt tilknyttet Internetteknologi Studerende fra andre linier er selvfølgelig meget velkomne til at deltage i projekterne 13 Apparatsoftware 14 Søgemaskiner 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen Dokumenter 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English inter menu bund gif Dokumentoversigt Generelt om præsentation og dataformater HTML Beregnet til preview i browser Word Word fil til evt redigering og udskrift på Microsoft maskine TeX TeX fil til evt redigering og udskrift på Unix Linux maskine PS PostScript fil beregnet til udskrift på PostScript printer PDF PDF fil beregnet til læsning og udskrift via PDF viewer Det anbefales som hovedregel at downloade PDF eller alternativt PS filer Uddannelseskatalog 9 Word og som 10 PDF Beskrivelse af uddannelser udbudt på IT C i foråret 2001 Kursusbog 11 Online Virksomhedsregnskab 12 HTML 13 Word 14 PS 15 PDF Virksomhedsregnskabet som aflagt for 1999 IT C sitens indholdssider 16 HTML Alle siderne fra denne hjemmeside samlet i et dokument 17 USEMAP inter icon2top gif opdateret 04 05 2001 18 wwwadm it c dk 1 IT højskolen 2 SiteDump Ansøgning inter vandret gif 3 Uddannelser 4 Stillinger 5 Aktiviteter 6 Home 7 Personer 8 SiteMap 9 Intranet 10 English Ansøgningsskema til optagelse 1 Personlige oplysninger CPR nummer Dag Md År Lb nr Fornavn e Efternavn Telefon Vej E mail Vej Mobiltelefon Postnr By Land 2 Statsborgerskab Dansk Andet Land 3 Adgangsgivende videregående uddannelser Afsluttet bachelor eller kandidatuddannelse Uddannelsens titel Uddannelsessted Dato påbegyndt Dag måned år Dato bestået Dag måned år Gennemsnit 4 Prioriteringsoplysninger Prioriteret liste over ønskede uddannelser ved IT højskolen Prioritet Uddannelsens kode Uddannelsens navn 1 2 3 4 5 6 Husk Optagelse på Internet og Multimedieteknologi kræver matematik på A niveau eller tilsvarende Jeg bekræfter hermed rigtigheden af de afgivne oplysninger Dato Underskrift 5 Personlige oplysninger CPR nummer Dag Md År Lb nr Fornavn e Efternavn 6 Tidligere optagelse på en videregående uddannelse udover de i punkt 3 nævnte Uddannelsens titel Uddannelsessted Dato påbegyndt Dag måned år Dato bestået Dag måned år Stadig indskrevet 7 Erhvervserfaring i kronologisk rækkefølge Uddybende kommentarer kan anføres i ansøgningsbrevet Arbejdsgiver Arbejdets art Fra Dato Til Dato Ugentlig arbejdstid 8 Vurdering af egen IT erfaring IT erfaring beskrives bedst som Ingen IT erfaring IT på brugerniveau IT på avanceret brugerniveau IT udvikler specialist Jeg bekræfter hermed rigtigheden af de afgivne oplysninger Dato Underskrift 9 Personlige oplysninger CPR nummer Dag Md År Lb nr Fornavn e Efternavn 10 Beståede prøver udover de i punkt 3 og 6 nævnte Type beskrivelse Uddannelsessted Dato påbegyndt Dag måned år Dato bestået Dag måned år 11 Andre aktiviteter herunder udlandsophold højskoleophold organisatorisk arbejde e lign Institution organisation skole Aktivitetens navn type Fra Dato Til Dato 12 Øvrige bilag Bilagsbeskrivelse Jeg bekræfter hermed rigtigheden af de afgivne oplysninger Dato Underskrift 11 USEMAP inter icon2top gif opdateret 18 05 2000 12 wwwadm it c dk 1 IT højskolen 2 SiteDump Erklæring inter vandret gif 3 Uddannelser 4 Stillinger 5 Aktiviteter 6 Home 7 Personer 8 SiteMap 9 Intranet 10 English Erklæring til optagelse Personlige oplysninger CPR nummer Dag Md År Lb nr Fornavn e Efternavn Undertegnede agter at studere på fuld tid dvs benytte mindst 40 timer per uge på mine studier Dato Underskrift 11 USEMAP inter icon2top gif opdateret 18 05 2000 12 wwwadm it c dk 1 IT højskolen 2 SiteDump Vejledning inter vandret gif 3 Uddannelser 4 Stillinger 5 Aktiviteter 6 Home 7 Personer 8 SiteMap 9 Intranet 10 English Vejledning til ansøgningsskema Sådan søger du For at søge om optagelse på IT højskolen skal du gøre følgende Udfyld ansøgningsskemaet der er på i alt tre sider Se udfyldningsvejledning nedenfor Skriv en ansøgning på maksimalt en side Ansøgningen kan indeholde motivation for din ansøgning uddybende beskrivelse af uddannelsesforløb erhvervserfaring og lignende Hvis ansøgningen indeholder henvisninger til studierelevante aktiviteter skal disse ligeledes anføres i ansøgningsskemaet som minimum under punkt 12 Øvrige bilag ellers hvor det er relevant i henhold til udfyldningsvejledningen nedenfor Hvis du søger optagelse på et kandidatstudium kan du vælge at udfylde den frivillige erklæring vedrørende forventet studieaktivitet Fremskaf relevant dokumentation for alle afgivne oplysninger Se dokumentationsvejledningen nedenfor Samtlige sider nummereres fortløbende og antallet af sider påføres første side Fotokopi r ansøgningen inklusive bilag Søger du flere uddannelser fotokopieres i samme antal dvs søges f eks 3 uddannelser tages 3 fotokopier og vedlægges den originale ansøgning altså ialt 4 eksemplarer Indsend ansøgning ansøgningsskema og dokumentation i en A4 kuvert til IT højskolen i København Glentevej 67 2400 København NV Og mærk kuverten Ansøgning om optagelse på IT højskolen Ansøgningen skal være IT højskolen i hænde senest torsdag den 15 juni 2000 klokken 12 00 Ansøgninger der modtages med morgenposten torsdag den 15 juni 2000 vil blive accepteret Hvis du ønsker at ændre noget ved din ansøgning inden ansøgningsfristens udløb indsendes en helt ny ansøgning med klar markering af at tidligere indsendte ansøgninger annulleres Dokumentationsvejledning Alle aktiviteter der anføres i ansøgningsskemaets punkt 3 6 7 10 og 11 skal dokumenteres med relevante bilag Eksamensbeviser arbejdsgivererklæringer o lign For at komme i betragtning til optagelse på IT højskolen skal du som minimum medsende eksamensbevis for adgangsgivende uddannelse og hvis denne ikke er afsluttet endnu en bekræftelse fra din uddannelsesinstitution om forventet afslutningstidspunkt Samtidig vedlægges seneste karakterudskrift Ansøgere til Masteruddannelsen skal desuden dokumentere minimum 2 års erhvervserfaring Dokumentation for andre aktiviteter er ikke obligatorisk men uden den relevante dokumentation vil de pågældende aktiviteter ikke blive taget i betragtning ved vurderingen af ansøgningen For bilag gælder Alle bilag skal nævnes på ansøgningsskemaet Som minimum under punkt 12 Øvrige bilag ellers hvor det er relevant i henhold til udfyldningsvejledningen nedenfor Alle bilag der ikke er originale skal være bekræftet kopi Bekræftet kopi vil sige Der skal være skrevet på hver eneste kopi med navn adresse og dato at kopien er i overensstemmelse med originalen Bekræftelsen skal være foretaget af to uvildige vidner to personer der ikke er i nær familie eller af afgangsskole uddannelsessted eller anden offentlig myndighed Udfyldningsvejledning til skemaerne 1 Personlige oplysninger CPR nummer CPR nummer skal udfyldes korrekt Hvis du har et CPR nummer anføres dette Ansøgere uden dansk CPR nummer Hvis du ikke har et dansk CPR nummer skrives dato måned og år for din fødselsdag i den angivne rækkefølge i de seks felter før stregen I de første 3 felter efter stregen skrives de to første bogstaver i dit første fornavn efterfulgt af det første bogstav i dit sidste efternavn I den sidste rubrik angives dit køn med 1 for mand og 2 for kvinde En mand uden dansk CPR nummer ved navn Claes Anders Fredrik Moren født den 31 august 1975 skal skrive 310875 CLM1 Adresse Adressen skal være en fuldstændig angivelse af gade vej husnr etage værelsesnr land postnr og postdistrikt by For logerende angives værtens eller kollegiets navn Hvis du kan kontaktes over telefon og eller e mail skrives nummer og eller e mail på Adresse telefonnummer og e mail er vigtige fordi det kan blive nødvendigt at kontakte dig i den periode hvor ansøgningerne behandles 2 Statsborgerskab Hvis du er dansk statsborger angives dette med x Er du ikke dansk statsborger angiver du i hvilket land du er statsborger 3 Adgangsgivende videregående uddannelse Her angives den adgangsgivende videregående uddannelse på baggrund af hvilke du søger om optagelse på IT højskolen Følgende uddannelser er adgangsgivende til Master og kandidatuddannelserne på IT højskolen Bacheloruddannelser Kandidatuddannelser Har du både en bachelor og kandidatuddannelse angives kandidatuddannelsen Bacheloruddannelsen skal i dette tilfælde angives under punkt 6 Den adgangsgivende uddannelse anføres med officiel titel navn på uddannelsesstedet dato for uddannelsens start og beståelsesdato samt opnået gennemsnit Har du endnu ikke afsluttet din adgangsgivende uddannelse men forventer at afslutte uddannelsen inden studiestart på IT højskolen skal du bede din uddannelsesinstitution om en skriftlig bekræftelse på forventet afslutningstidspunkt Samtidig vedlægges seneste karakterudskrift Udenlandske eksamensbeviser som ikke er skandinaviske eller engelsksprogede skal være oversat til dansk eller engelsk af uddannelsesinstitutionen en tolk eller en offentlig myndighed Den anførte uddannelse skal dokumenteres med bekræftet kopi 4 Prioriteringsoplysninger Prioriteringsskemaet bruges til at angive hvilke uddannelser du søger ind på Skriv den uddannelse du helst vil ind på ud for prioritet 1 Skriv den uddannelse du helst vil ind på hvis du ikke kommer ind på din første prioritet ud for prioritet 2 Forsæt med op til 6 prioriteter For hver prioritet anføres uddannelsens kode og navn Vær opmærksom på at hvis du søger ind på kandidatuddannelserne i Multimedieteknologi og Internetteknologi kræves gennemført matematik svarende til mindst gymnasiets matematik på A niveau Dette anføres under punkt 10 i skemaet og skal dokumenteres f eks attesteret kopi af studentereksamensbevis Du skal fotokopiere din ansøgning og vedlægge kopien Søger du flere uddannelser skal du vedlægge kopier i samme antal Søges f eks 3 uddannelser tages 3 kopier af ansøgningen og bilag og vedlægges den originale ansøgning altså ialt 4 eksemplarer Fotokopir ansøgningen inklusive bilag Søger du flere uddannelser fotokopieres i samme antal dvs søges f eks 3 uddannelser tages 3 fotokopier og vedlægges den originale ansøgning Der kan søges optagelse på følgende uddannelser Uddannelses type Uddannelsens kode Uddannelsens navn Kandidat K DKM Kandidat i Informationsteknologi Design kommunikation og medier Kandidat K EH Kandidat i Informationsteknologi Elektronisk handel Kandidat K INT Kandidat i Informationsteknologi Internetteknologi Kandidat K MMT Kandidat i Informationsteknologi Multimedieteknologi Kandidat K SWU Kandidat i Informationsteknologi Softwareudvikling Kandidat K TIT Kandidat i Informationsteknologi Tværfaglig IT Master M DKM Master i Informationsteknologi Design kommunikation og medier Master M INT Master i Informationsteknologi Internetteknologi Master M MMT Master i Informationsteknologi Multimedieteknologi Master M SWU Master i Informationsteknologi Softwareudvikling 5 Personlige oplysninger Angives igen af sikkerhedshensyn Se vejledning under punkt 1 6 Tidligere optagelse på videregående uddannelse udover de i punkt 3 nævnte Du skal udfylde punkt 6 hvis du udover din adgangsgivende uddannelse tidligere har været optaget på en eller flere videregående uddannelser Felterne i kolonnen Dato bestået udfyldes kun hvis uddannelsen er gennemført Felterne i kolonnen Stadig indskrevet udfyldes med et x hvis du stadig er indskrevet på det pågældende uddannelsessted Punkt 6 benyttes til at anføre videregående uddannelser der ikke er direkte adgangsgivende herunder ikke afsluttede uddannelser og videregående uddannelser som ikke er anført som adgangsgivende under punkt 3 men som ønskes medtaget i helhedsvurderingen Er du kandidat skal du under dette punkt anføre din evt bacheloruddannelse Husk at du skal anføre alle videregående uddannelser du har været optaget på også selvom du ikke har gennemført dem Videregående uddannelser er Kortere videregående uddannelser eksempelvis datamatiker og markedsøkonom Mellemlange videregående uddannelser eksempelvis pædagog og mellemlange sundhedsuddannelser Lange videregående uddannelser eksempelvis bachelor og kandidatuddannelser fra universiteter og handelshøjskoler Alle anførte uddannelser skal dokumenteres med bekræftet kopi En ikke gennemført uddannelse dokumenteres ved optagelsesbrev 7 Erhvervserfaring i kronologisk rækkefølge Under punkt 7 anføres den erhvervserfaring du ønsker medtaget i vurderingen af din ansøgning Under kolonnen Ugentlig arbejdstid anføres det antal timer du i gennemsnit arbejdede i den anførte periode For fuldtidsarbejde anføres Fuld tid Vær opmærksom på at optagelseskravene til Masteruddannelserne omfatter mindst 2 års erhvervserfaring opnået efter afslutningen på den adgangsgivende eksamen Anført erfaring skal dokumenteres med bekræftet kopi 8 Vurdering af egen IT erfaring Under punkt 8 afkrydses hvordan du selv vurderer din nuværende IT erfaring Kategorien Ingen IT erfaring afkrydses hvis du aldrig selvstændigt har benyttet IT Kategorien IT på brugerniveau afkrydses hvis du er fortrolig med at benytte IT på brugerniveau eksempelvis e mail og tekstbehandling Kategorien IT på avanceret brugerniveau afkrydses hvis du er fortrolig med avanceret brug af IT systemer eksempelvis brevfletning og regneark Kategorien IT udvikler specialist afkrydses hvis du behersker videregående IT teknikker eksempelvis programmering netværksadministration eller avancerede værktøjer 9 Personlige oplysninger Angives igen af sikkerhedshensyn Se vejledning under punkt 1 10 Bestående prøver udover de i punkt 3 og 6 nævnte Under punkt 10 kan prøver kurser og eksaminer der ikke allerede er anført under punkt 3 eller 6 anføres Dette kan eksempelvis være enkeltfag arbejdsgiverfinansierede kurser eller lignende For hvert kursus prøve anføres en type eller beskrivelse navn på uddannelsesstedet dato for uddannelsens start og beståelsesdato Søger du ind på kandidatuddannelserne i Multimedieteknologi eller Internetteknologi som kræver matematik på A niveau se under punkt 4 i denne vejledning skal du desuden anføre og attestere beståede prøver svarende til mindst A niveau under punkt 10 Alle anførte prøver kurser skal dokumenteres med bekræftet kopi 11 Andre aktiviteter herunder udlandsophold højskoleophold organisatorisk arbejde e lign Under punkt 11 anføres eventuel aktivitet der falder under overskriften Alle anførte aktiviteter skal dokumenteres med bekræftet kopi 12 Øvrige bilag Oplysninger der ikke er plads til at skrive på ansøgningsskemaet kan du sende med som bilag Du skal her i punkt 12 nævne de bilag som ikke er nævnt andre steder på ansøgningen 11 USEMAP inter icon2top gif opdateret 18 05 2000 12 wwwadm it c dk 1 IT højskolen 2 SiteDump Enkeltfag inter vandret gif 3 Uddannelser 4 Stillinger 5 Aktiviteter 6 Home 7 Personer 8 SiteMap 9 Intranet 10 English Materiale vedr enkeltfag 1 Personlige oplysninger CPR nummer Dag Md År Lb nr Fornavn e Efternavn Telefon Vej E mail Vej Mobil telefon Postnr By 2 Adgangsgivende bacheloruddannelse Afsluttet bacheloruddannelse Uddannelsens titel Uddannelsessted Dato bestået 3 Adgangsgivende kandidatstudie Angiv det kandidatstudie som du er indskrevet på Uddannelsens titel Uddannelsessted Dato påbegyndt 4 Angiv antal kurser du ønsker af følge 1 2 eller 3 5 Prioriteringsoplysninger Prioriteret liste over ønskede kurser på IT højskolen Prioritet kursuskode Kursets navn 1 2 3 4 5 Jeg bekræfter hermed rigtigheden af de afgivne oplysninger Dato Underskrift Ansøgning om enkeltfag i efteråret 2000 I det omfang der er ledige pladser på de enkelte kurser vil det være muligt at følge enkeltfag på IT højskolen i efteråret 2000 Det kræver at du er indskrevet på en kandidatuddannelse dvs at du allerede er bachelor og ønsker at bruge enkeltfagene som en del af din kandidatuddannelse Du kan finde en beskrivelse af de enkelte kurser i vores kursuskatalog Kursuskataloget kan findes på vores hjemmeside 11 www it c dk Kursuskoder der skal bruges ved udfyldelse af ansøgningsskemaet findes nedenfor Det bemærkes at det er din uddannelsesinstitution sædvanligvis studienævnet der skal godkende at kurser taget på IT højskolen kan indgå i din uddannelse Sådan søger du For at ansøge om et eller flere enkeltfag i efteråret 2000 på IT højskolen skal du gøre følgende Udfyld ansøgningsskemaet til enkeltfag der er på een side Se udfyldningsvejledningen nedenfor Fremskaf attesteret kopi af dit årskort og dit bachelorbevis I det omfang det ikke fremgår af dit årskort at du er kandidatstuderende skal du bede din uddannelse om at dokumentere dette Saml ansøgningen i en form der er velegnet til fotokopiering dvs i et plasticcharteque uden brug af hæfteklammer eller clips Samtlige sider nummereres fortløbende og antallet af sider påføres første side Indsend ansøgningsskema og dokumentation i en A4 kuvert til IT højskolen i København Glentevej 67 2400 København NV Og mærk kuverten Ansøgning om enkeltfag på IT højskolen Ansøgningen skal være IT højskolen i hænde senest torsdag den 15 juni 2000 klokken 12 00 Ansøgninger der modtages med morgenposten torsdag den 15 juni 2000 vil blive accepteret Hvis du ønsker at ændre noget ved din ansøgning inden ansøgningsfristens udløb indsendes en helt ny ansøgning med klar markering af at tidligere indsendte ansøgninger annulleres Udfyldningsvejledning til skemaet 1 Personlige oplysninger CPR nummer CPR nummer skal udfyldes korrekt Hvis du har et CPR nummer anføres dette Ansøgere uden dansk CPR nummer Hvis du ikke har et dansk CPR nummer skrives dato måned og år for din fødselsdag i den angivne rækkefølge i de seks felter før stregen I de første 3 felter efter stregen skrives de to første bogstaver i dit første fornavn efterfulgt af det første bogstav i dit sidste efternavn I den sidste rubrik angives dit køn med 1 for mand og 2 for kvinde En mand uden dansk CPR nummer ved navn Claes Anders Fredrik Moren født den 31 august 1975 skal skrive 310875 CLM1 Adresse Adressen skal være en fuldstændig angivelse af gade vej husnr etage værelsesnr postnr og postdistrikt by For logerende angives værtens eller kollegiets navn Hvis du kan kontaktes over telefon og eller e mail skrives nummer og eller e mail på Adresse telefonnummer og e mail er vigtige fordi det kan blive nødvendigt at kontakte dig i den periode hvor ansøgningerne behandles 2 Adgangsgivende bacheloruddannelse Du skal være bachelor for at kunne læse enkeltfag på IT højskolen Angiv officiel titel på afsluttet bacheloruddannelse samt navn på uddannelsesstedet og dato for hvornår uddannelsen er bestået Du skal vedlægge attesteret kopi af dit bachelorbevis 3 Adgangsgivende kandidatstudie Du skal være indskrevet på et kandidatstudie for at kunne læse enkeltfag på IT højskolen Angiv officiel titel på kandidatstudiet samt navn på uddannelsesstedet og dato for uddannelsens start Du skal vedlægge attesteret kopi af dit årskort I det omfang det ikke fremgår af dit årskort at du er kandidatstuderende skal du bede din uddannelse om at dokumentere dette 4 Angiv antal kurser du ønsker af følge 1 2 eller 3 Angiv antal kurser du ønsker af følge Du kan søge om at følge 1 2 eller 3 kurser i efteråret 2000 5 Prioriteringsoplysninger Prioriteringsskemaet bruges til at angive hvilke kurser du ønsker at følge Du kan lave op til 5 prioriterede ønsker Det kursus du helst vil følge har prioritet 1 Du må kun vælge hvert kursus en gang Hvis du vil følge et kursus se rubrik 3 skal du mindst vælge et kursus hvis du vil følge 2 kurser skal du mindst vælge 2 kurser ovs Du har mulighed for at prioritere flere kurser end du vil følge for det tilfælde at din e tidligere prioriteter er overtegnede Du kan søge ind på kurserne angivet i tabellen nedenfor Nogle kurser i kursuskataloget fremgår ikke nedenfor idet de allerede er overtegnede Du skal både anføre kursuskode og kursusnavn på ansøgningsskemaet Kolonnen Fysisk placering angiver hvor kurserne afholdes RUC svarer til Roskilde Universitetscenter ITU svarer til IT højskolen i København HHK svarer til Handelshøjskolen i København Kolonnen Linie angiver hvilken uddannelseslinie der udbyder kurset K DKM svarer til linien Design kommunikation og medier K EH svarer til linien Elektronisk handel K INT svarer til linien Internetteknologi K MMT svarer til linien Multimedieteknologi K SWU svarer til linien Softwareudvikling K TIT svarer til linien Tværfaglig IT K ULB svarer til Uden Linje Betegnelse Kursuskode Kursets navn Fysisk placering Linie DKME2000DDH Digital Design historie ITC K DKM DKME2000IIM Introduktion til IT som medie ITC K DKM DKME2000KDB Konceptudvikling til digitalt tv og bredbånd ITC K DKM DKME2000M Målgruppeanalyse ITC K DKM DKME2000TF Teknologifilosofi og den nye Økonomi ITC K DKM DKME2000UE Useability Engineering ITC K DKM EHE2000CD Centrale databaser HHK K EH EHE2000HV Handel med viden HHK K EH EHE2000SW Integration af softwarekomponenter til e handel HHK K EH EHE2000IJ Internet jura HHK K EH EHE2000IS IT sikkerhed HHK K EH EHE2000LO Logistik HHK K EH EHE2000ME Marketing og e handel HHK K EH EHE2000PL Projektledelse HHK K EH EHE2000RT Regulering af telekommunikation HHK K EH EHE2000SS Standarder og softinfrastructure HHK K EH EHF2000TSV Taktiske og strategiske værktøjer til e handel HHK K EH EHE2000VCP Virtual Contracts digital signatures and Regulation HHK K EH INTE2000AS Apparatsoftware ITC K INT INTE2000DS Datasikkerhed ITC K INT INTE2000EAP Effektive algoritmer og programmer ITC K INT INTE2000INP Internetprogrammering ITC K INT INTE2000NP Netværk og protokoller ITC K INT INTE2000PS Parallelle systemer ITC K INT Fortsættes næste side MMTE2000B Billedanalyse ITC K MMT MMTE2000CG Computergrafik ITC K MMT MMTE2000DIS Design af interaktive systemer deres evaluering og brug ITC K MMT MMTE2000IM Introduktion til multimediesystemer ITC K MMT MMTE2000MS Musisk signalbehandling ITC K MMT MMTE2000S Signalbehandling ITC K MMT MMTE2000TI Tale og IT systemer ITC K MMT MMTE2000VIR Virtual reality ITC K MMT SWUE2000AD Avancerede datastrukturer ITC K MMT SWUE2000DBS Databasesystemer ITC K SWU SWUE2000DBD Design af brugergrænseflader og data ITC K SWU SWUE2000DD Design og designere ITC K SWU SWUE2000ERP ERP systemer ITC K SWU SWUE2000FDP Funktionelt design og programmering ITC K SWU SWUE2000GP Grundlæggende programmering ITC K SWU SWUE2000IADS Introduktion til algoritmik og datastrukturer ITC K SWU SWUE2000II Introduktion til informationsteknologi ITC K SWU SWUE2000P IT projektledelse ITC K SWU SWUE2000ITSS IT støttet samarbejde ITC K SWU SWUE2000KML Kategoriske modeller for logik typeteori og concurrency ITC K SWU SWUE2000KAT Kategoriteori ITC K SWU SWUE2000OPJ Objektorienteret programmering med Java ITC K SWU SWUE2000ODVP Objektorienteret design og videregående programmering ITC K SWU SWUE2000SEM Semantik for programmeringssprog ITC K SWU SWUE2000SP Softwarepålidelighed ITC K SWU SWUE2000SU Systemudvikling ITC K SWU SWUE2000VPL Videregående projektledelse ITC K SWU SWUE2000VP Videregående programmering for praktikere ITC K SWU TITE2000BRP Begreber og redskaber til programmering RUC K TIT TITE2000DSA Datastrukturer og algoritmer RUC K TIT TITE2000DK Digital kommunikation i og mellem maskiner RUC K TIT TITE2000HVD Hvordan ind virker design RUC K TIT TITE2000IP Indledende programmering RUC K TIT TITE2000PLD Projektledelse og design RUC K TIT TITE2000VR Vidensrepræsentation RUC K TIT ULBE2000AB Algoritmisk biologi KU K ULB ULBE2000ARB Autonome robotter biobotter og animater RUC K ULB ULBE2000UD Udvalgte emner indenfor datanet KU K ULB 12 USEMAP inter icon2top gif opdateret 18 05 2000 13 wwwadm it c dk 1 IT højskolen 2 SiteDump Regnskab inter vandret gif 3 Uddannelser 4 Stillinger 5 Aktiviteter 6 Home 7 Personer 8 SiteMap 9 Intranet 10 English Virksomhedsregnskab Image9 gif Virksomhedsregnskab 1999 IT højskolen i København Image10 gif Virksomhedsregnskab version 3 28 04 2000 MT KM Indholdsfortegnelse 0 Fremlæggelse og påtegning 3 1 Beretning 1 Baggrund for etableringen af IT højskolen 4 2 Uddannelser 5 3 Forskning på IT C 8 4 Sponsorater 9 5 IT højskolen og omverdenen 9 6 Nuværende situation 10 Driftsregnskab 11 Resultatanalyse 1 Kommentar til resultat 1999 herunder disposition af overskud 1999 13 2 Ordinær og åben uddannelse antal gennemførte eksaminer 13 3 Antal optagne og antal studerende 1999 2004 14 4 Lokaleforhold 14 5 Publikationer 15 Øvrige indsatsområder 15 Administration 1 Personalet i tal 18 2 Organisationsdiagram over administrationen 18 3 Bestyrelse 19 6 Bilagstabeller 20 29 0 Hovedformålsoversigt 1 Tilskudsfinansieret forskningsvirksomhed 2 Formålsopdelt regnskab 3 Lønudgift i det formålsopdelte regnskab 4 Driftsregnskab uddannelse og forskning 5 Generel ledelse og administration 6 Drifts og overførselsindtægter fordelt på kilder 7 Aktivitetesoplysninger STÅ for uddannelse 8 Indtægtsdækket virksomhed 9 Institutionens driftssituation indtægtsdækket virksomhed 10 Resultatopgørelse tilskudsfinansierede aktiviteter 11 Personaleoplysninger total 12 Professorater ultimo VR året 13 Antal konsulenter og fuldmægtige ultimo VR året 14 Nettobygningsarealer 15 Oversigt over igangværende og afsluttede projekter i 1999 16 Bevillingsafregning for anlægsbevilling 1999 Fremlæggelse og påtegning IT Højskolens virksomhedsregnskab for 1999 underskrives og påtegnes i henhold til bestemmelserne herom i Akt 82 af 4 december 1996 For virksomhedsregnskabets oplysninger erklæres at disse er dækkende og at dokumentationen herfor er tilstede IT højskolen den 28 april 2000 Mads Tofte Direktør Mogens Munk Rasmussen Formand for bestyrelsen for IT højskolen Påtegning Forskningsministeriets påtegning af virksomhedsregnskabet for 1999 sker i overensstemmelse med ovennævnte fremlæggelse København den maj 2000 Rudolf Straarup Direktør Beretning 1 1 Baggrund for etableringen af IT højskolen i København IT C Med henblik på at styrke IT uddannelser og forskning nedsatte Undervisnings ministeriet og Forskningsministeriet i marts måned 1998 et udvalg Udvalget leverede i oktober 1998 en rapport hvori man anbefalede at iværksætte en kraftig forøgelse af kapaciteten af forskningsbaserede IT uddannelser i Danmark ved at etablere en IT højskole i København IT C og et universitetssamarbejde i Vestdanmark IT V IT C skulle etableres som en fysisk selvstændig enhed med en selvstændig bestyrelse men som en del af en eksisterende universitetslovsinstitution IT C og IT V fik til opgave at sørge for et markant meroptag til uddannelserne gennem udviklingen af nye studier med nyt indhold og en ny profil IT C og IT V skulle således udvikle nye kandidatuddannelser der i modsætning til andre IT overbygningsuddannelser skulle være tilgængelige for bachelorer i fag der ikke hovedsageligt drejer sig om IT Desuden skulle IT C og IT V udvikle master og diplomuddannelser der kunne tjene som efter og videreuddannelse på IT området på et højt niveau IT C og IT V skulle udvikle en egen forskningsindsats i international klasse og skulle hertil have særlige forskningsbevillinger IT C og IT V skulle blandt andet tiltrække forskere fra udlandet og bidrage til udviklingen af Øresundsregionen som et internationalt videnscentrum for IT Der skulle etableres et Foresight panel der skulle rådgive bestyrelsen for IT højskolen om IT højskolens forskning og uddannelser Endelig skulle IT højskolerne prioritere offentligt privat samspil på såvel uddannelses som forskningsområdet højt I januar 1999 blev der etableret en interimsbestyrelse for IT højskolen og i maj måned kunne IT højskolen rykke ind i lejede kontor og undervisningslokaler på Glentevej i Københavns Nordvestkvarter Den officielle indvielse blev foretaget af undervisningsministeren og forskningsministeren den 30 august 1999 Administrativt blev IT højskolen oprettet som et frifakultet under Handels højskolen i København med en direktør som ansvarlig for den daglige ledelse 1 2 Uddannelser Indhold Indholdet af IT højskolens uddannelser er organiseret i forhold til følgende landkort Image11 gif Inden for denne trekant har IT højskolen udviklet uddannelser der placerer sig forskelligt i trekanten Uddannelserne lapper over hinanden idet der på alle uddannelser er moduler der er delt med andre uddannelser Men uddannelserne hælder mod forskellige hjørner Orienteret mod Science hjørnet har IT højskolen kandidat og master uddannelsen i Softwareudvikling IT branchen efterspørger medarbejdere med en bred vifte af kvalifikationer Softwarelinien spænder bredt lige fra tilegnelse af efterlyste praktiske færdigheder til innovative fremtidsteknologier og fordybelse i fundamentale problemstillinger og teorier Igennem studieforløbet lærer kandidaten at planlægge og styre udviklingsprocesser fra id til implementering og drift Orienteret mod The Arts hjørnet har IT højskolen kandidatlinien i Design Kommunikation og Medier Studieforløbet omhandler IT som et medie hvor de studerende bl a arbejder med design af web sider og tilrettelæggelse af IT baseret kommunikation I studieforløbet arbejdes der med IT både som et socialt og kulturelt medie Orienteret mod Business hjørnet har IT højskolen kandidatlinien i Elektronisk Handel Gennem studieforløbet opnås kendskab til de juridiske og organisa toriske aspekter af elektronisk handel Kandidaten skal være velbevandret i de særlige tekniske problemer der er forbundet med elektronisk handel så som sikkerhed beskyttelse af privatlivets fred elektronisk betaling distribuerede databaser og netværksteknologi Placeret mellem hjørnerne Science og The Arts har IT højskolen kandidat linien i Tværfaglig IT Her fokuseres der på anvendelsen af IT i andre fagområder typisk fagområdet fra bacheloruddannelsen Målet for kandidatuddannelsen er at bygge bro mellem IT og et andet fagområde Organisation Uddannelserne er organiseret gennem et netværk af aftaler der knytter IT højskolen sammen med universiteterne i regionen Således er kandidatlinierne i Elektronisk Handel og Tværfaglig IT udliciteret til henholdsvis Handelshøjskolen i København og Roskilde Universitetscenter Desuden bidrager Den Kongelige Veterinær og Landbohøjskole Malm H gskola og Danmarks Designskole til uddannelserne IT højskolen har indgået eller er i færd med at indgå formelle samarbejdsaftaler med alle ovennævnte institutioner Det faglige indhold er tilrettelagt af interimsstudienævn med deltagere fra ovennævnte institutioner De studerende på IT højskolens linie i Elektronisk Handel følger som et led i deres studieplan kurser der deles med Softwareudviklingslinien som også leverer kurser til linien i Design Kommunikation og Medier De studerende på linien i Tværfaglig IT har i begrænset omfang mulighed for at følge kurser udbudt af andre linier Mange af de studerende kommer dagligt på flere institutioner For eksempel foregår undervisningen i Elektronisk Handel på Handelshøjskolen i København IT C og Den Kongelige Veterinær og Landbohøjskole Optagelse For at blive optaget på IT højskolens kandidatstudium skal man have en bacherlorgrad eller anden tilsvarende uddannelse Kandidatstudiet er et 2 årigt fuldtidsstudium og betegnelsen for de nye kandidater er cand it For at blive optaget på IT højskolens masteruddannelse skal man have en bachelorgrad eller lignende uddannelse samt mindst 2 års relevant erhvervserfaring Interessen for at studere på IT højskolen har været større end forventet idet der i blev optaget 119 studerende på kandidatstudierne 15 på masterstudiet og yderligere 22 enkeltfagsstuderende Til sammenligning var måltallene for kandidatstudiet 70 IT højskolen kunne desuden konstatere at de studerende kom fra mange forskellige fag Ud af 179 ansøgere til kandidatlinierne var 155 forskellige uddannelser repræsenteret Da ansøgernes baggrunde er så varierede har IT C valgt ikke kun at lægge eksamenskarakterer til grund for optagelsen men i lige så høj grad hidtidig viden og målet med den valgte kandidatlinie Accepterer den studerende en tilbudt studieplads tilbydes vedkommende inden studiestart en samtale med en repræsentant for den pågældende kandidatlinie Dette sker med henblik på at tilrettelægge et individuelt studieforløb hvor der tages udgangspunkt i vedkommendes tidligere uddannelse Det har desuden kunne konstateres at de nye uddannelser også tiltrækker kvinder idet ca 1 3 af de studerende er kvinder Fordelingen for 1999 er følgende Kvinder Mænd Ialt Kandidat 40 79 119 Master 4 11 15 Optag fordelt efter linier for 1999 og 2000 Kandidat 1999 F 00 Faktisk E 00 Budget I alt 2000 Design Kommunikation og Medier 41 36 40 76 Tværfaglig IT 15 14 20 34 Internethandel 20 25 45 Multimedieteknologi 9 20 29 Softwareudvikling 30 30 40 70 Elektronisk Handel 33 32 40 72 119 141 185 326 Åben uddannelse E 99 F 00 Faktisk E 00 Budget I alt 2000 Design Kommunikation og Medier 6 6 12 Multimedieteknologi 0 Softwareudvikling 15 4 4 8 Diplom i Informationsteknologi 0 19 19 38 15 29 29 58 I alt optaget 134 170 214 384 I 1999 er yderligere to kandidatlinier defineret med studiestart forår 2000 Det drejer sig om Multimedieteknologi og Internet teknologi Masteruddannelsen udvides med Design Kommunikation og Medier Studiet er et 3 årigt deltidsstudie Med virkning fra 2000 er det ligeledes blevet muligt at få en Diplomuddannelse i Informationsteknologi Studiet et 2 årigt deltidsstudium Søgningen til kandidatstudierne er tilfredsstillende og den er højere end forventet i Finansloven Derimod har søgningen til de åbne uddannelser været væsentligt mindre Hovedårsagen er så vidt vides at IT C kun har kunnet overkomme at udbyde studierne som dagstudier og desuden har krævet at de studerende i 24 uger om året skulle bruge to hele hverdage på studierne hver uge Det har vist sig at disse krav er vanskelige at opfylde for de fleste af de interesserede der har henvendt sig For at opnå en større søgning skal der etableres mulighed for at en større del af studiet foregår om aftenen og uden for normal arbejdstid eventuelt ved hjælp af fjernundervisning IT C har i februar 2000 nedsat en arbejdsgruppe bestående af to lektorer der skal komme med oplæg til reorganisering af indsatsen på området IT C agter at satse lige så målrettet på åben uddannelse som på ordinær uddannelse gennem nyopslag af stillinger målgruppeanalyser og dialog med aftagerne 1 3 Forskning på IT C Rekruttering IT højskolen fik af forskningsministeren ret til at besætte fem VIP stillinger uden opslag Herudover opslog IT højskolen i juni 1999 13 stillinger fordelt på kategorierne lektor forskningsadjunkt og ekstern lektor Der indkom i alt 39 ansøgninger Resultatet af disse to ansættelsestiltag var at IT højskolen ansatte en professor ni lektorer tre forskningsadjunkter en ammanuensis og fem eksterne lektorer Med nogle af lektorerne fulgte Ph D studerende og forskningsmidler således at der kunne ansættes yderligere en forskningsadjunkt I aktstykket er der bevilget 14 Ph D stipendier til IT højskolen for 1999 Otte af disse blev fordelt blandt Københavns Universitet Roskilde Universitetscenter Danmarks Tekniske Universitet og Handelshøjskolen i København De resterende seks blev besat i 1999 I alt var der ved udgangen af 1999 8 Ph D studerende på Glentevej heraf 3 projektansatte og 8 Ph D stipendier under besættelse på Danmarks Tekniske Universitet Københavns Universitet Roskilde Universitetscenter og Handelshøjskolen i København Emneområder Der drives to typer af forskning på IT højskolen teknologidrevet forskning og behovsdrevet forskning Den teknologidrevne forskning drejer sig om at udvikle ny teknologi og finde nye måder at anvende den på Den behovsdrevne forskning drejer sig om at analyse hvilke behov der findes i praksis og dernæst finde generelt anvendelig metoder til at tilfredsstille behovene på Den teknologidrevne forskning omfatter bl a Udvikling af teknologi til at bestemme formen af æg til kunstig befrungtning af kvinder med henblik på at øge chancen for en vellykket graviditet samtidig med at man mindsker risikoen for dannelse af for mange fostre Denne forskning kræver udvikling af algoritmer der kan danne 3D modeller af klynger af æg fra 2D billeder Udvikling af teknologi til at verificere indlejret software sådan som den findes i f eks smart cards og mobiltelefoner Udvikling af programmeringssprogsteknologi der understøtter udvikling af store softwaresystemer Den behovsdrevne forskning omfatter bl a Hvordan udformer man kravspecifikationer som fungerer som et effektivt kommunikationsmiddel mellem brugere og udviklere af store IT systemer Dette er af central betydning for at undgå skandaler med store systemer der aldrig kommer til at fungere Hvad er museskader og hvordan undgår man dem Hvordan kan bevægelseshæmmede styre en computer med øjnene Sidstnævnte projekt sker i samarbejde med Tokyo Institute of Technology og er finansieret bl a gennem en bevilling på 2mio kr fra Forskningsministeriet Opfindelser og nyttiggørelse af forskning Flere forskere på IT højskolen har været med til eller er i færd med at nyttiggøre forskningsresultater gennem start af egen virksomhed Disse virksomheder beskæftiger sig med at omsætte matematisk baseret teoretisk forskning til konkrete produkter inden for områderne programanalyse verifikation af indlejrede systemer og billedanalyse IT højskolen forventer at indgå aftaler i henhold til loven om nyttiggørelse af opfindelser i løbet af år 2000 Forskerparken Symbion A S åbnede i 1999 en afdeling på Vibevej kun få hundrede meter fra IT højskolen Flere forskere og studerende har seriøst drøftet opstart af virksomhed med Symbion 1 4 Sponsorater IT højskolen modtog to sponsorater i 1999 Syv Netfinity servere fra IBM til en samlet værdi af ca 1 mio kr Femten bærbare computere til studerende på IT højskolen doneret af Hewlett Packard til en samlet værdi af ca 500 000 kr 1 5 IT højskolen og omverdenen Det er IT højskolens mål at være i tæt kontakt med det omgivende samfund Hidtil har det ikke været vanskeligt idet IT højskolen meget naturligt i forbindelse med etablering og åbning har været i pressens søgelys Men denne interesse gør det ikke alene IT højskolen skal også selv være udfarende og skabe kontakter til erhvervslivet Der er således ansat en medarbejder med Erhvervsrettede aktiviteter som arbejdsområde Et eksempel på det eksterne samarbejde er BuzzTalk Det er foredrag der afholdes hver fredag eftermiddag i undervisningsperioderne Indtil videre har vi været i den heldige situation at virksomhederne har stået i kø for at komme til at tale på en BuzzTalk BuzzTalk foredragsrækken er også åben for tilhørere uden direkte tilknytning til miljøet på Glentevej og allerede nu kan vi se at interessen er der idet der som tilhørere blandt andet kommer potentielle studerende journalister handels skolelærere og repræsentanter fra erhvervslivet Deres baggrund for deltagelse er vidt forskellig Journalisterne kan f eks bruge foredraget som et afsæt til research på en teknologihistorie mens repræsentanter fra erhvervslivet kan bruge BuzzTalks til at få deres viden opdateret Det blev til i alt 14 BuzzTalks i efteråret 99 og med et deltagerantal på mellem 30 og 300 alt efter emnet 1 6 Nuværende situation På nuværende tidspunkt kan det konstateres at behovet for en IT højskole er tilstede Ved forårssemestrets start var der allerede optaget det antal kandidatstuderende der var målet for hele år 2000 således at med optagelsen til efteråret forventes kandidat STÅ produktionen at blive 165 mod Forsknings ministeriets budget på 91 Derimod vil det ikke være muligt at opnå den forventede STÅ produktion på de åbne uddannelser Samtidig er IT højskolen stadig i opbygningsfasen hvilket forventes at fortsætte indtil etableringen i Ørestaden i 2003 har fundet sted Dette stiller store krav til organisationen såvel inden for det undervisningsmæssige som inden for det administrative område idet der skal fastlægges rutiner og strategier og desuden skal de enkelte linier udbygges I øjeblikket er økonomien sund Der er netop udarbejdet et budget for årene 2000 2003 Så snart grænsen på kr 28 0 mio i forskningsmatchningen er nået hvilket forventes at ske i 2002 tyder de nuværende budgetter på vanskeligheder med at finansiere forskningen Desuden har det været nødvendigt at bruge mange af etableringsmidlerne til nedbringelse af ombygningsudgifter i forbindelse med indflytningen i 1999 2 Driftsregnskab Resultatopgørelse 1999 2000 Mio kr 3 decimaler årets priser Regnskab Budget Indtægter 38 991 60 967 Finanslov 31 100 42 800 Driftsindtægter 7 891 18 167 Udgifter 27 652 66 867 Lønninger 6 931 28 289 Øvrige driftsudgifter 20 721 38 578 Resultat 11 339 5 900 Regnskabet for 1999 udviser et overskud på kr 11 339 mio Dette er en følge af at IT højskolen kun har eksisteret i en del af året 1999 og at det viste sig vanskeligt at besætte alle de opslåede stillinger Desuden var det af tidsmæssige årsager ikke muligt at få etableret forskningen i ønsket omfang Vedrørende indretning af de lejede lokaler er auditoriet først blevet istandsat i 2000 Det overskud der er opsparet i 1999 forventes brugt i 2000 som følger Disponering af overskud 1999 Mio kr 3 decimaler årets priser 2000 Overskud primo 11 339 Falcksikring etableret 1999 0 250 Edb bestilt i 1999 først leveret januar 2000 0 308 Indretning af af auditorium 1 990 Indretning af af auditorium møbler tavler mv 0 823 Manglende forskning af tidsmæssige årsager 7 000 Huslejereulering 1999 0 554 Ikke forbrugte midler 1999 10 925 Ej disponeret 0 414 Vedrørende indtægterne for 1999 er de sammensat af følgende Indtægterne specificeret Mio kr 3 decimaler årets priser 1999 Resultatopgørelse Forskningsministeriet etableringsmidler 27 000 Forskningsministeriet forskningsmidler 4 000 Phd uddannelse 0 100 Undervisningsministeriet udvikling af nye uddannelser Deltagerbetaling åben uddannelse 7 000 0 200 Tilskudsfinansieret forskningsvirksomhed 0 691 Indtægter i alt 38 991 Akkumuleret resultat Mio kr 3 decimaler årets priser 1999 2000 Reserver primo 0 000 11 339 Resultat til overførsel 11 339 5 900 Reserver ultimo 11 339 5 439 Bevillingsafregning Mio kr 3 decimaler årets priser 1999 Resultatopgørelse Bevilling B TB 31 100 Regnskab 19 761 Bevillingsafvigelse Årets overskud før dispositioner 11 339 Akkumuleret overskud Akkumuleret overskud primo indeværende år 0 000 Årets overskud 11 339 Akkumuleret overskud ultimo indeværende år 11 339 Overskud som bortfalder 0 000 Akkumuleret overskud til videreførsel ultimo indeværende år 11 339 I beløbet indgår TB på kr 7 0 mio fra Undervisningsministeriet 3 Resultatanalyse 3 1 Kommentar til resultat Som følge af opstarten af IT højskolen er mange af udgifterne atypiske i forhold et normalt driftsår Således udgør udgifterne til generel ledelse og administration i alt kr 14 114 mio idet anskaffelse af inventar og edb udstyr indgår i denne post ligesom der blev brugt konsulenter til varetagelse af en del af de administrative opgaver i de første måneder jævnfør nedenstående specifikation Specifikation af generel ledelse og administration Mio kr 3 decimaler årets priser 1999 Konsulenthonorar eksternt 2 347 Konsulenthonorar internt 347 Telefon 584 Annoncering 742 Kontorhold 333 Leje leasing af udstyr 205 Øvrige udgifter 1 803 Driftsudgifter 6 361 Etablering af IT højskolen Edb udstyr 4 307 Inventar 3 446 Anlægsudgifter 7 753 Generel ledelse og administration i alt 14 114 For at give et mere samlet overblik over lønudgifterne er udarbejdet nedenstående specifikation Specifikation af løn konsulent og tilskud til andre institutioner Mio kr 3 decimaler årets priser 1999 Lønudgifter 6 044 Konsulentudgifter 2 347 Betaling til andre institutioner 1 669 I alt 10 060 3 2 Ordinær og åben uddannelse antal gennemførte eksaminer De kandidat og masterstuderendestuderende der blev optaget i efterårssemesteret har tilsammen bestået 412 fag ved eksamen i januar 2000 3 3 Antal optagne og antal studerende 1999 2004 Med udgangspunkt i den nuværende efterspørgsel efter uddannelserne for venter IT højskolen følgende udvikling i studenteroptagsprognosen frem til 2004 1999 2000 2001 2002 2003 2004 Kandidater 119 326 300 400 500 500 Master 15 20 130 160 200 200 Diplom 0 38 150 200 300 300 I alt 134 384 580 760 1000 1000 Prognosen for antal samtidigt indskrevne studerende frem til 2004 er følgende 1999 2000 2001 2002 2003 2004 Kandidater 119 405 616 948 1113 1245 Master 15 33 155 291 455 546 Diplom 0 36 171 318 500 625 I alt 134 474 942 1557 2068 2416 3 4 Nuværende og fremtidige lokaleforhold IT højskolen overtog i foråret 1999 lejemålet efter Den Grafiske Højskole på Glentevej i Københavns Nordvestkvarter For at opfylde behovet for undervisningslokaler auditorier m v var en større ombygning imidlertid påkrævet WRentreprise påtog sig denne opgave I løbet af de godt 4 måneder hvor ombygningen stod på var de første medarbejdere ansat og ved indvielsen den 30 august var man nået så langt at nyansatte kunne rykke ind i egne kontorer ligesom de fleste undervisningslokaler stod færdige Kun ombygningen og indretningen af et stort auditorium måtte udsættes til begyndelsen af 2000 For at dække det stigende behov for undervisningslokaler og kontorer besluttede IT C i december 1999 at leje 2 og 3 salen på Glentevej Lejemålet overtages efter Niels Brocks Handelsskole Det forventes at de nye lokaler kan tages i brug i starten af efterårssemesteret 2000 Det nuværende lejemål på Glentevej udgør netto 4 417 m2 Med udvidelsen af Niels Brock lejemålet på 3 199 m2 bliver det samlede areal 7 616 m2 Ørestadsprojektet På længere sigt er de nuværende lokaleforhold ikke tilstrækkelige og samtidig med vedtagelsen af oprettelsen af IT højskolen i København blev det besluttet at IT højskolens fremtidige permanente placering skal være i Ørestaden sammen med udbygning af Københavns Universitet Amager Danmarks Radio og Det kgl Bibliotek og Rigsarkivet med flere Der er blevet bevilget 2 0 mio kr til planlægningsarbejdet for året 1999 og en planlægningsgruppe er igang med arbejdet herunder ekskursioner til andre bygninger i undervisningsregi og afholdelse af workshops Byggeprojektet er blevet offentliggjort i EU Tidende indbydelse til prækvali fikation blev publiceret i slutningen af 1999 Ansøgningsfristen var den 28 februar 2000 På baggrund af det indkomne materiale skal 5 arkitektfirmaer udvælges til at deltage i den endelige konkurrence Byggearbejdet planlægges færdiggjort medio 2003 3 5 Publikationer I nedenstående tabel er vist en samlet oversigt over forskningspublikationer offentliggjort i 1999 Fremmedsprogede publikationer afhandlinger og bøger 0 artikler i tidskrifter og antologier 6 Nordisksprogede publikationer afhandlinger og bøger 0 artikler i tidskrifter og antologier 1 Øvrige publikationer proceedings 22 I alt 29 4 Øvrige indsatsområder Foruden at lægge stor vægt på at opbygge et spændende forskningsmiljø og gode uddannelser lægges der på IT højskolen vægt på følgende Opbygning af organisation og ledelse der skal sikre at IT højskolen kan forblive dynamisk og fremadrettet også udover den første opstartsfase Der lægges vægt på at opbløde de traditionelle skel mellem administrative og videnskabelige medarbejdere De administrative medarbejdere skal have indblik i hvad der skal til rent organisatorisk for at have et levende og velfungerende forsknings og uddannelsesmiljø De videnskabeligt ansatte der pålægges ledelsesansvar skal lære at værdsætte og udføre god ledelse og levere kvalitet i forvaltningen Aktiv indragelse af de studerende i opbygningen af IT højskolen i alle anliggender lige fra udformingen af studierne til etablering af web sider og udarbejdelse af informationsmateriale til andre studerende Studerende der har lyst får i deres projekter lov til at løse opgaver der vil blive sat i produktion på skolen Forholdet til de studerende er baseret på tillid f eks er der døgnåbent for de studerende på IT højskolen og den kendsgerning at IT højskolen uddanner voksne mennesker der allerede har gennemført en bachelorgrad I opbygningen af administrationen lægges der naturligt nok meget vægt på udvikling af gode IT systemer Grundideen er at administrative rutiner skal være indbygget i brugergrænsefladen til IT højskolen administrative systemer i modsætning til blot at foreligge som administrative foreskrifter IT højskolens hastige opbygning har været intimt sammenkædet med en meget hurtig opbygning af en effektiv IT infrastruktur Allerede den 6 april 1999 havde IT højskolen sin første primitive hjemmeside med en nyhedstjeneste hvor man kunne tilmelde sig hvis man var interesseret i at modtage yderlige information elektronisk et tilbud som over 2 600 personer i skrivende stund har taget imod Direkte elektronisk kommunikation med potentielle studerende og ansatte snarere end kampagner i medierne har været essentielle for den hurtige opstart IT infrastrukturen som er essentiel for IT højskolen bestod ved udgangen af 1999 af Internet med nyhedstjeneste 11 www itu dk som alle interesserede kan tilmelde sig hvorefter man løbende får emails fra IT C Intranet for ansatte og studerende Studenternet for de studerende www2 itu dk IT udstyr 7 servere doneret af IBM og 15 bærbare computere doneret af HP 50 PC ere som arbejdsstationer til multimedieproduktion Multimedielaboratorium Linux network Oplysningsarbejde Et stort antal interviews til skrevne og elektroniske medier En oversigt findes på hjemmesiden IT højskolen har i 1999 udviklet en betragtelig mængde software herunder Software til oprettelse af brugere på linux mac sgi og windowsplatforme Software til håndtering af indkomne ansøgninger fra potentielle studerende Software til en elektronisk nyhedstjeneste som gør det muligt for besøgende på IT højskolen hjemmeside at modtage nyheder elektronisk Software til generering af breve til ansøgere Software til web baseret målgruppeanalyse i forbindelse med oprettelse af studier Software til web baseret distribueret administration af udlån af bærbare computere til studerende Software til web baseret elektronisk personfortegnelse inklusiv udvikling af en personsøgemaskine Software til automatisk opdatering af email lister ved tilgang af medarbejdere Software til automatisk sammenfatning af IT højskolens website Dusinvis af sider til IT højskolens internet og intranet med informationer for omverdenen for ansatte og for studerende Software til back up af data på IT højskolens mange servere Software til automatisk sortering og prioritering af indgående epost Ovenstående software er udviklet af personer på IT højskolen i løbet af 1999 Desuden har der været afholdt et kursus i HTML for administrationspersonalet 5 Administration 5 1 Personalet i tal De første to ansættelser på den nyoprettede IT højskole skete pr 1 april 1999 herefter er der successivt sket nyansættelser og dette vil fortsætte indtil IT højskolen har nået det antal studerende på 2 416 som er målet i år 2004 For 1999 er personalenormeringen i årsværk meget lille og samtidig atypisk idet der dels har været konsulenter ansat i indkøringsfasen dels at en del af de beløb der er er betalt til øvrige uddannelsesinstitutioner er uden årsværk Årsværk 1999 2000 VIP 8 3 31 9 TAP vedr undervisning 1 3 3 0 TAP vedr administration 6 8 13 7 I alt IT C 16 4 48 6 Noter I ovenstående specifikation indgår ikke tal for Eksterne lektorer Ansatte på HHK som IT C betaler for i h t administrationsaftale Det drejer sig om en 0 50 HK stilling og 0 75 AC stilling Sygefravær Sygefraværet i 1999 har for de 39 ansatte medarbejdere ligesom antallet af feriedage været beskedent Dage Fravær på grund af sygdom 11 Fravær på grund af barselsorlov 14 Samlet fravær 24 Note 1 Undervisere der får udbetalt løn fra andre læreanstalter er ikke medtaget 5 2 Organisationsdiagram Direktør Direktionssekretær Intern Service Økonomiafd Personale Ledelsessekretariat Studieadministration Edb afdeling 5 3 Bestyrelse Bestyrelsen er udpeget af forskningsministeren Koncernchef og adm direktør Mogens Munk Rasmussen formand Nykredit Underdirektør Kim Østrup IBM Underdirektør Lillian Mogensen ATP Administrerende direktør Preben Damgaard Damgaard Holding Cand Polit Anne E Jensen Rektor for Københavns Universitet Kjeld Møllgård Rektor for Danmarks Tekniske Universitet Hans Peter Jensen Rektor for Roskilde Universitetscenter Henrik Toft Jensen Rektor for Handelshøjskolen i København Finn Junge Jensen Bestyrelsen har ansat en direktør Mads Tofte som varetager den daglige ledelse af IT højskolen Bilag Bilagstabeller Bilagstabel 1 Hovedformålsoversigt Mio kr 3 decimaler årets priser 1999 Indtægter Taxameterindtægter uddannelse 0 000 Forskningsindtægter 0 687 Overførselsindtægt til kapitalformål 7 000 Overførselsindtægt øvrige formål 31 100 Driftsindtægter 0 204 Indtægter ialt 38 991 Udgifter Uddannelse 4 822 Forskning 2 122 Andre faglige formål 0 000 Generel ledelse og administration 14 114 Øvrige fælles formål 3 080 Kapitalformål 3 514 Udgifter ialt 27 652 Årets overskud i alt 11 339 Bilagstabel 2 Tilskudsfinansieret forskningsvirksomhed UK 95 Mio kr 3 decimaler 1999 Statslige fonds og programmidler 0 691 EU og andre internationale tilskudsgivere 0 000 Øvrige tilskudsgivere 0 000 Indtægter ialt 0 691 Bilagstabel 3 Tabel 9 1 Formålsopdelt regnskab Total Mio kr 3 decimaler årets priser TOTAL Delformål 1999 2 1 Ordinær uddannelse 4 822 2 3 Åben uddannelse 0 000 2 4 Efteruddannelse 0 000 2 7 Ikke videregående uddannelse 0 000 2 8 International studenterudveksling 0 000 2 9 Kursusundervisning 0 000 2 Uddannelse i alt 4 822 1 1 Basisforskning 1 431 1 2 Tilskudsfinansieret forskning 0 691 1 3 Kontraktsforskning 0 000 1 4 Forskeruddannelse 0 000 1 Forskning i alt 2 122 3 1 Biblioteker 0 000 3 2 Museer og samlinger 0 000 3 3 Klinikker 0 000 3 4 Retsmedicin 0 000 3 9 Øvrige 0 000 3 Andre faglige formål i alt 0 000 4 1 Bygningsdrift 3 075 4 2 Generel ledelse og administration 14 114 4 9 Øvrige 0 005 4 Fælles formål i alt 17 194 5 1 Lejemål 3 213 5 2 Prioritetsydelser 0 000 5 3 Vedligehold og mindre byggearbejder 0 301 5 4 Energisparende froranstaltninger 0 000 5 Kapitalformål i alt 3 514 6 Inst interne overførselsudgift 7 Udgift i alt 27 652 Tabel 4 Lønudgift i det formålsopdelte regnskab Mio kr 3 decimaler årets priser TOTAL Delformål 1999 2 1 Ordinær uddannelse 2 396 2 3 Åben uddannelse 0 000 2 4 Efteruddannelse 0 000 2 7 Ikke videregående uddannelse 0 000 2 8 International studenterudveksling 0 000 2 9 Kursusundervisning 0 000 2 Uddannelse i alt 2 396 1 1 Basisforskning 1 302 1 2 Tilskudsfinansieret forskning 0 406 1 3 Kontraktsforskning 1 4 Forskeruddannelse 1 Forskning i alt 1 708 3 1 Biblioteker 0 000 3 2 Museer og samlinger 0 000 3 3 Klinikker 0 000 3 4 Retsmedicin 0 000 3 9 Øvrige 0 000 3 Andre faglige formål i alt 0 000 4 1 Bygningsdrift 2 827 4 2 Generel ledelse og administration 0 000 4 9 Øvrige 0 000 4 Fælles formål i alt 2 827 5 3 Vedligehold og mindre byggearbejder 0 000 7 Lønudgift i alt 6 931 Tabel 5 Driftsregnskab uddannelse og forskning Mio kr 3 decimaler årets priser 1999 Bevillingsfinansieret område Udgifter ordinær drift 4 822 Udgifter forskning 2 122 Udgifter i alt 6 944 Indtægter ordinær drift 0 200 Indtægter forskning 0 687 Indtægter i alt 0 887 Overskud bevillingsfinasieret område 6 057 Markedsstyret område Indtægter 0 000 Udgifter 0 000 Dækningsbidrag 0 000 Årets overskud i alt 6 057 I ovenstående opstilling er uddannelse og forskning opgjort under t da bogføringen for 1999 ikke var lagt an på separat driftsregnskab for uddannelse og forskning Der er ikke udarbejdet driftsregnskab for andre faglige formål da der ingen bevægelser har været i 1999 Bilagstabel 6 Generel ledelse og administration Mio kr 3 decimaler årets priser 1999 Generel ledelse og administration 14 114 Generel ledelse og administration af total udgift 51 04 Jf bemærkninger under punkt 3 1 Bilagstabel 7 Drifts og overførselsindtægter fordelt på kilder Mio kr med 3 decimaler Årets priser 1999 1 1 Ordinær uddannelse 1 3 Åben uddannelse 1 4 Efteruddannelse 1 5 Øvrige uddannelser 1 Taxameterindtægter uddannelse i alt 2 1 Statslige fonds og programmidler 0 687 2 2 EU og andre internationale tilskudsgivere 2 3 Øvrige tilskudsgivere 0 004 2 Tilskudsfinansieret forskning i alt 0 691 3 1 Kontrakforskningsmidler under IV 90 3 2 Basisbevilling til forskning 7 000 3 3 Forskeruddannelse taxameter 4 Forskningsindtægter i alt 2 3 1 3 3 7 691 5 Overførselsindtægter til kapitalformål 7 000 6 1 Overførselsindt til øvr formål særformål 16 000 6 2 Grundbevilling 1 000 6 3 Energibesparende foranstaltninger 6 Overførselsindtægt øvrige formål i alt 17 000 7 1 Deltagerbetaling for åben uddannelse 0 200 7 2 Driftsindtægter ved salg og udleje 7 3 Indtægter ved IV ex Forskning 7 4 Driftsindtægter i øvrigt 7 5 Retsmedicin 7 Driftsindtægter i alt 0 200 8 1 Stipendirater tidl SU styrelsen 8 2 Forskerakademiet 8 3 Andre tilskudsgivere 8 4 Ph d løn ny ift 1997 0 100 8 Stipendirater og løn i alt 0 100 9 1 Tilskud fra internationale org til udd programmer 9 2 Tilskud i øvrigt til udd formål m v 7 000 9 Øvrige tilskud i alt 7 000 10 Inst intern statslig overførselsindtægt 11 Indtægter i alt 38 991 Bilagstabel 8 Aktivitetsoplysninger STÅ for uddannelse Ordinær uddannelse 1999 1 1 Antal studerende 119 1 2 Antal STÅ 0 2 1 Antal optagne pr 1 oktober 119 2 2 Heraf antal 1 prioritetsansøgere 2 3 Gennemsnitsalder for optagne 29 1 2 4 Median alder for optagne 29 5 Færdiguddannede antal og gennemsnitsalder 3 1 Antal bachelorer 3 2 Gennemsnitsalder bachelorer 3 3 Gennemsnitlige gennemførselstid bachelorer 3 4 Antal kandidater 0 3 5 Gennemsnitsalder kandidater 0 3 6 Gennemsnitlige gennemførselstid kandidater 0 Åben efteruddannelse 4 1 Antal deltagerbetalende STÅ 0 4 2 Færdiguddannede på hele uddannelser master diplom 0 Forskeruddannelse 5 1 Antal forskeruddannelsesårsværk i alt 0 5 2 Antal forskeruddannelsesstud pr 1 oktober i alt 0 5 3 Antal forskeruddannelsesstud pr 1 oktober mænd 0 5 4 Antal forskeruddannelsesstud pr 1 oktober kvinder 0 5 5 Antal afhandlinger året 0 Internationaliseringstilskud 6 Studerende der udløser internationaliseringstilskud 0 6 1 Indgående 0 6 2 Udgående 0 Forskeruddannelsesoplysninger vedrører alle typer af forskeruddannelse Ph d studerende kandidatstipendiater osv Bilagstabel 9 Indtægtsdækket virksomhed underkonto 90 Mio kr 3 decimaler 1999 Indtægter 0 000 Direkte omkostninger 0 000 Dækningsbidrag 0 000 Fællesudgifter indirekte omkostninger 0 000 Driftsresultat før afskrivning og forrentning m v 0 000 Afskrivninger 0 000 Forrentning 0 000 Årets omkostningsbaserede resultat 0 000 Dækningsgrad Bilagstabel 10 Institutionens driftssituation Indtægtsdækket virksomhed underkonto 90 Mio kr 3 decimaler Driftsresultat 1999 0 000 Institutionens driftssituation 0 000 Bilagstabel 11 Resultatopgørelse Tilskudsfinansierede aktiviter underkonto 95 og 97 Tilskudsfinasieret Andre tilskuds forskning uk 95 finasierede aktiviteter uk 97 Årets indtægter 0 691 0 000 Årets udgifter 0 691 0 000 Årets driftsoverskud 0 000 0 000 Uforbrugte indtægter 1999 1 241 0 000 Årets overskud 1 241 0 000 På Handelshøjskolen er der i 1999 i alt modtaget kr 1 932 000 til projketer men da indtægterne først indtægtsføres i takt med udgiftsafholdelsen er beholdning statslige tilskudsmidler lig med uforbrugte indtægter 1999 Bilagstabel 12 Personaleoplysninger Total Antal årsværk 1 decimal 1999 Delformål VIP DVIP TAP I alt 2 1 Ordinær uddannelse 2 5 0 8 2 8 6 1 2 3 Åben uddannelse 0 0 2 4 Efteruddannelse 0 0 2 7 Ikke videregående uddannelse 0 0 2 8 International studenterudveksling 0 0 2 9 Kursusundervisning 0 0 2 Uddannelse i alt 6 1 1 1 Basisforskning 2 1 0 8 2 9 1 2 Tilskudsfinansieret forskning 1 4 1 4 1 3 Forskeruddannelse 0 0 1 9 Kontraktforskning 0 0 1 Forskning i alt 4 3 3 1 Biblioteker 0 0 3 2 Museer og samlinger 0 0 3 3 Klinikker 0 0 3 4 Retsmedicin 0 0 3 9 Øvrige 0 0 3 Andre faglige formål i alt 0 0 4 1 Bygningsdrift 0 0 4 2 Generel ledelse og administration 2 3 4 5 6 8 4 9 Øvrige 0 0 4 Fælles formål i alt 6 8 5 3 Vedligehold og mindre byggearbejder 0 0 6 Årsværk i alt 8 3 0 8 8 1 17 2 Bilagstabel 13 Professorater ultimo VR året Ordinært finansierede Eksternt finansierede I alt 1 1 Antal professorater 1 0 1 1 2 Heraf antal midlertidige professorater forskningsprofeessorater Fordeling på lønrammer 2 1 L37 2 2 L38 1 0 1 Antal ubesatte professorater i L37 fordelt på 3 1 Under opslag 1 0 1 3 2 Under bedømmelse 3 3 Bedømmelse afgivet Bilagstabel 14 Antal konsulenter og fuldmægtige ultimo VR året 1999 1 1 L35 specialkonsulenter 0 1 2 L36 chefkonsulenter 0 1 0 Konsulenter i alt 0 2 0 Antal AC fuldmægtige 3 Bilagstabel 15 Nettobygningsarealer 1999 1 10 Forskningsareal netto m2 585 0 1 20 Undervisningsareal netto m2 1449 0 1 30 Øvrige arealer netto m2 2383 0 1 00 Samlet nettoareal i m2 4417 0 Bilagstabel 16 Oversigt over igangværende og afsluttede projekter i 1999 Mio kr Årets priser Hjemmel Bygge Forventet Total Statsudgift Årets Forventet start afslutnings udgift udgift restudgift tidspunkt indeks 156 indeks 156 indeks 156 Igangværende projekter Nybyggeri Akt 138 1999 2000 5 000 0 155 Bilagstabel 17 Bevillingsafregning for anlægsbevilling 1999 Hovedkonto 19 21 03 Mio kr 3 decimaler årets priser reg indeks 156 Bruttoudgift Udgifter Indtægter Resultatopgørelse 1 Bevilling B TB 2 000 0 000 2 Regnskab 0 156 0 000 3 Bevillingsafvigelse 1 844 0 000 4 Korrektioner til bevillingsafvigelsen ud fra regnskabet 4 1 Ikke fradragsberettiget købsmoms 0 000 6 Årets overskud før dispositioner 1 844 0 000 Akkumuleret resultat 15 Akkumuleret overskud ultimo indeværende år 1 844 0 000 18 Overskud som bortfalder 0 000 Akkumuleret overskud til videreførsel ultimo indeværende år 1 844 0 000 12 USEMAP inter icon2top gif opdateret 13 05 2000 13 wwwadm it c dk IT højskolen i København Virksomhedsregnskab 2000 Indholdsfortegnelse 0 Fremlæggelse og påtegning 4 1 Beretning 1 1 Sammenfatning 5 1 2 Uddannelser 5 1 3 Forskning 11 1 4 Opbygning af organisationen 13 1 5 Ørestadbyggeriet 13 1 6 Sponsorater 15 1 7 IT højskolen og omverdenen 16 1 8 Nuværende situation 16 2 Driftsregnskab 18 3 Resultatanalyse 3 1 Kommentar til resultatet 20 3 2 Antal optagne og antal studerende 1999 2003 20 3 3 Lokaleforhold 21 4 Øvrige indsatsområder 22 5 Administration 5 1 Personalet i tal 23 5 2 Bestyrelse 25 6 Bilagstabeller 26 31 1 Hovedformålsoversigt 2 Tilskudsfinansieret forskningsvirksomhed 3 Formålsopdelt regnskab 4 Lønudgift i det formålsopdelte regnskab 5 Drifts og overførselsindtægter 6 Bevillingsafregning 7 Aktivitetesoplysninger STÅ for uddannelse 8 Resultatopgørelse tilskudsfinansierede aktiviteter 9 Personaleoplysninger total 10 Antal konsulenter og fuldmægtige ultimo VR året 11 Nettobygningsarealer 12 Oversigt over igangværende og afsluttede projekter 13 Bevillingsafregning for anlægsbevilling Fremlæggelse og påtegning IT Højskolens virksomhedsregnskab for 2000 underskrives og påtegnes i henhold til bestemmelserne herom i Akt 82 af 4 december 1996 For virksomhedsregnskabets oplysninger erklæres at disse er dækkende og at dokumentationen herfor er tilstede Image1 gif Virksomhedsregnskabet findes på IT højskolens hjemmeside http www it c dk pub db 393 html Beretning 1 1 Sammenfatning IT højskolen i København IT C blev etableret i 1999 I løbet af 5 måneder lykkedes det at definere en ny kandidatuddannelse med fire forskellige linier og en masteruddannelse I alt 145 studerende hvoraf de fleste var bachelorer startede deres studier på IT C i 1999 Hovedmålene for 2000 var at fortsætte udbygningen af de uddannelser der blev etableret i 1999 både hvad angår fagudbud og antal studerende der blev optaget organisere og styrke forskningen på IT højskolen opbygge en organisations og ledelsesstruktur der er velegnet til at håndtere den kraftige vækst i aktiviteter IT højskolen skal søge at nå i opbygningsfasen frem til 2003 specificere krav og ønsker til IT højskolens bygning i Ørestaden De fire mål behandles i de følgende afsnit IT højskolen har omkring årsskiftet 2000 2001 indledt forhandlinger med IT og Forskningsministeriet om indgåelse af en udviklingskontrakt for perioden frem til sommeren 2003 Forhandlingerne forventes afsluttet i sommeren 2001 1 2 Uddannelser Indhold Indholdet af IT højskolens uddannelser er organiseret i forhold til følgende landkort trekant gif Inden for rammerne af denne trekant startede IT højskolen i 1999 fire kandidatlinier der placerer sig forskelligt i trekanten Uddannelserne overlapper hinanden idet der på alle uddannelser er moduler der er delt med andre uddannelser men uddannelserne hælder dog mod de forskellige hjørner Orienteret mod naturvidenskabs hjørnet har IT højskolen kandidat og master uddannelsen i Softwareudvikling IT branchen efterspørger medarbejdere med en bred vifte af kvalifikationer Softwarelinien spænder bredt lige fra tilegnelse af efterlyste praktiske færdigheder til innovative fremtidsteknologier og fordybelse i fundamentale problemstillinger og teorier Igennem studieforløbet lærer kandidaten at planlægge og styre udviklingsprocesser fra id til implementering og drift Orienteret mod humaniora hjørnet har IT højskolen kandidatlinien i Design Kommunikation og Medier Studieforløbet omhandler IT som et medie hvor de studerende bl a arbejder med design af web sider og tilrettelæggelse af IT baseret kommunikation I studieforløbet arbejdes der med IT både som et socialt og kulturelt medie Orienteret mod forretnings hjørnet har IT højskolen kandidatlinien i Elektronisk Handel Gennem studieforløbet opnås kendskab til de juridiske og organisatoriske aspekter af elektronisk handel Kandidaten skal være velbevandret i de særlige tekniske problemer der er forbundet med elektronisk handel såsom sikkerhed beskyttelse af privatlivets fred elektronisk betaling distribuerede databaser og netværksteknologi Placeret mellem hjørnerne naturvidenskab og humaniora har IT højskolen kandidatlinien i Tværfaglig IT udvikling Her fokuseres der på anvendelsen af IT i andre fagområder typisk fagområdet fra bacheloruddannelsen Målet for kandidatuddannelsen er at bygge bro mellem IT og et andet fagområde I år 2000 fortsatte udbygningen af uddannelserne En kandidatlinie og en masteruddannelse i Internetteknologi blev startet Kandidater i Internetteknologi vil have en grundlæggende viden om de teknologier der tilsammen udgør internet og kan udvikle driftssikre og effektive internetprogrammer Uddannelsen består af tre fagområder netværksteknologi internetprogrammel og internet i organisationer En kandidatlinie i Multimedieteknologi er blevet startet Uddannelsen i Multimedieteknologi kombinerer den nyeste teknologi i sammenhæng med andre og mere etablerede fagområder Det drejer sig om taleteknologi billedanalyse computergrafik signalbehandling og interaktiv 3 D grafik i relation til medicinske og industrielle anvendelser Uddannelsen er naturvidenskabelig orienteret og fokuserer på principper for mønstergenkendelse automatisk billedanalyse og signalbehandling ligesom uddannelsen beskæftiger sig med teorier for human perception De første studerende på en masteruddannelse i Design Kommunikation og Medier og på masteruddannelsen i multimedieteknologi er blevet optaget Studierne er 3 årige deltidsstudier De første studerende på diplomuddannelsen i Informationsteknologi blev optaget i foråret 2000 Studiet et 2 årigt deltidsstudium Der er lavet en fælles studieordning for samtlige seks kandidatlinier såvel de fire der drives af IT Højskolen selv som de to linier der er udliciteret til henholdsvis Handelshøjskolen i København HHK og Roskilde Universitetscenter RUC Derved blev der skabt et grundlag for en udstrakt grad af samarbejde mellem IT højskolen og universiteterne i regionen Endvidere er 3 studienævn blevet etableret Antallet af kurser voksede fra 21 i efteråret 1999 til 43 i foråret 2000 og videre til 70 i efteråret 2000 Dette er et usædvanligt stort antal uddannelsesaktiviteter at have under fælles studieordninger Organisation Uddannelserne er organiseret gennem et netværk af aftaler der knytter IT højskolen sammen med universiteterne i regionen Kandidatlinierne i Elektronisk Handel og Tværfaglig IT er udliciteret til henholdsvis Handelshøjskolen i København og Roskilde Universitetscenter Desuden bidrager Københavns Universitet Danmarks Tekniske Universitet Den Kongelige Veterinær og Landbohøjskole Malm H gskola og Danmarks Designskole til uddannelserne IT højskolen afsluttede i 2000 formelle samarbejdsaftaler med de nævnte institutioner sådan at alle samarbejder nu er dækket af samarbejdsaftaler Fysisk finder undervisningen på kandidatlinien i Tværfaglig IT udvikling sted på RUC Undervisningen på de øvrige linier også linien i Elektronisk handel foregår hovedsageligt på IT højskolen på Glentevej Studieordning Hen over sommeren kom studieordningerne for kandidat diplom og masteruddannelserne på plads Arbejdet foregik i interimstudienævnets regi og indebar mange gode diskussioner om samarbejde mellem kandidatlinierne og de studerendes muligheder for tværfaglighed Studieordningerne kan findes på IT højskolen hjemmeside på siden http www it c dk pub db 96 html Kandidatstudieordningen er udarbejdet som en samlet ordning for alle 6 linier for at sikre at de fortsat er tæt knyttet til hinanden selvom 2 linier er udliciterede til henholdsvis Roskilde Universitetscenter og Handelshøjskolen Alle de studerende er indskrevet ved IT højskolen og det er vigtigt at studieordningen understøtter de studerendes mulighed for at vælge kurser fra det kursuskatalog der er fælles for alle 6 kandidatliner Image3 jpg Perioden med interimstudienævn fik en ende da der i efteråret blev afholdt valg til studienævnene På Roskilde Universitetscenter er der valgt et studienævn for kandidatlinien Tværfaglig IT på Handelshøjskolen er der valgt et studienævn for kandidatlinien Elektronisk Handel og på IT højskolen et studienævn for master og diplomuddannelserne samt kandidatlinerne i Softwareudvikling Internetteknologi Multimedieteknologi og Design Kommunikation og Medier Alle 3 studienævn er valgt af og blandt undervisere og studerende på de respektive uddannelser linier Kandidatuddannelsen hører således under 3 forskellige studienævn For at koordinere arbejdet og sikre fortsat konsensus mødes de 3 studieledere regelmæssigt med direktøren for IT højskolen Optagelse For at blive optaget på IT højskolens kandidatstudium skal man have en bacherlorgrad eller tilsvarende uddannelse Kandidatstudiet er et 2 årigt fuldtidsstudium og betegnelsen for de nye kandidater er cand it For at blive optaget på IT højskolens masteruddannelse skal man have en bachelorgrad eller tilsvarende uddannelse samt mindst 2 års relevant erhvervserfaring Søgning og optag 1999 2003 excl tidligt frafald Regn skab Regn skab Budget Budget Budget Budget 1999 2000 2000 2001 2002 2003 Kandidatuddannelserne Ansøgere 159 504 Optagne 124 325 326 390 405 405 Master og diplomuddannelserne Ansøgere 40 125 Optagne 21 46 58 120 180 210 Optagne i alt 145 371 384 510 585 615 IT højskolen oplevede meget stor interesse for kandidatstudiet i 2000 Til gengæld var søgningen på master og diplomuddannelserne under måltallene Hvis ordinær og åben uddannelse regnes under t har IT højskolen næsten levet op til måltallene for optag i 2000 IT højskolen kunne også i 2000 konstatere at de studerende der blev optaget havde vidt forskellige uddannelsesmæssige baggrunde Det er centralt for IT højskolen fortsat at kunne rekruttere studerende med en bred vifte af bacheloruddannelser De nye uddannelser tiltrækker i rimeligt omfang kvinder idet ca 1 3 af de studerende er kvinder Fordelingen af de indskrevne studerende var ved udgangen af 2000 Image4 jpg Kvinder Mænd Ialt Kandidat 142 307 449 Master og diplom 17 37 54 Optag fordelt efter linier 1999 2001 Kandidat 1999 2000 2001 budget I alt ultimo 2001 Design Kommunikation og Medier 43 78 90 210 Tværfaglig IT 15 43 42 100 Internetteknologi 0 40 58 90 Multimedieteknologi 0 22 33 40 Softwareudvikling 32 71 92 185 Elektronisk Handel 34 71 75 175 124 325 390 800 Åben uddannelse 1999 2000 2001 budget I alt ultimo 2001 Design Kommunikation og Medier 13 15 25 Multimedieteknologi 1 5 5 Internetteknologi 4 5 8 Softwareudvikling 21 12 20 50 Diplom i Informationsteknologi 0 16 75 90 21 46 120 178 I alt optaget 145 371 510 978 Åben uddannelse IT højskolen har i 2000 begyndt et udviklingsarbejde der sætter fokus på åben uddannelse Der er ansat en udviklingsleder som har det som sin særlige opgave at udvikle de åbne uddannelser på IT højskolen Som konsekvens startede IT højskolen pr februar 2001 diplom og masteruddannelser som fleksibel uddannelse hvilket indebærer undervisning i weekender og ikke i almindelig arbejdstid og brug af e learning STÅ produktion IT højskolen modtager betaling fra Undervisningsministeriet efter antallet af producerede STudenterÅrsværk STÅ på lige fod med de øvrige universiteter Antallet af STÅ opgøres ud fra antallet af beståede eksaminer I det første afregningsår 1 10 1999 til 30 9 2000 har IT højskolen haft følgende STÅ produktion Antal STÅ Ordinært indskrevne kandiatstuderende 148 Enkeltfagsstuderende indskrevet ved andre institutioner 3 Master og diplomstuderende 17 I alt 168 For de indskrevne kandidatstuderende på IT højskolen svarer STÅ produktionen til 0 76 STÅ pr indskreven helårsstuderende IT højskolens forventning var en STÅ produktion pr helårsstuderende på 0 85 Den faktiske STÅ produktion er lidt under det forventede men tilfredsstillende De foreløbige tal fra vintereksamen 2000 2001 viser en produktion på ca 0 72 STÅ pr indskrevet helårsstuderende IT højskolens første erfaringer med frafald fra kandidatstudierne er positivt Der tegner sig følgende billede Frafald fra kandidatuddannelserne Linie Efterår 1999 Forår 2000 Efterår 2000 Forår 2001 Ind skrevne Optag Frafald 1 3 2001 Optag Frafald 1 3 2001 Optag Frafald 1 3 01 Optag pr 1 3 2001 Design kommunikation medier 43 3 35 1 43 1 39 155 Tværfaglig IT 15 13 13 1 30 3 21 61 Internetteknologi 0 20 1 20 1 17 55 Multimedieteknologi 0 9 1 13 2 14 33 Softwareudvikling 32 4 30 41 4 39 134 Elektronisk Handel 34 3 31 2 40 34 134 I alt 124 23 138 6 187 11 164 572 Frafaldn senere er optaget på en anden linie 14 3 1 Reelt frafald 9 3 10 22 IT højskolen har haft ualmindelig mange og store problemer med at anvende det studieadministrative system på Handelshøjskolen som IT højskolen har købt sig adgang til Manglende instruktion har ført til en række fejlregisteringer i systemet Disse fejl i det studieadministrative system har bl a medført at IT højskolen ikke har modtaget afregning for alle de STÅ der er blevet produceret i optjeningsåret 2000 IT højskolen forventer at få afregning for disse STÅ i 2001 Evalueringssystem IT højskolen udviklede i 2000 et Internetbaseret evalueringssystem som de studerende bruger til at evaluere IT højskolens kurser og undervisere Evalueringen blev gennemført to gange n gang i foråret og n gang i efteråret Evalueringen viste at der er meget stor tilfredshed blandt de studerende for at gå på IT højskolen På spørgsmålet Overordnet konklusion Dette er et kursus jeg er er glad for var gennemsnittet i foråret 4 9 på en skala fra 1 til 6 På spørgsmålet Overordnet konklusion Dette er en underviser jeg er glad for var gennemsnittet i foråret 5 16 igen på en skala fra 1 til 6 Evalueringen viste imidlertid også at der resterer et stort arbejde for IT højskolen med at håndtere de udfordringer der opstår ved at immatrikulere studerende med mange forskellige bachelorgrader Konklusion Det er lykkedes at fortsætte udbygningen af de uddannelser der blev etableret i 1999 både hvad angår fagudbud og studerende De studerende rapporterer stor tilfredshed med uddannelserne Dog bør IT højskolen i 2001 søge at øge optaget på åben uddannelse markant og der bør arbejdes med en klarere profilering af de enkelte linier og studieaktiviteter 1 3 Forskning på IT højskolen Rekruttering Nedenstående tabel viser udviklingen i forskerstaben på IT højskolen Ultimo 1999 Tilgang 2000 Fratrådt 2000 Ultimo 2000 Ph d stud 4 15 1 18 Amanuneser 1 2 1 2 Forskningsass 1 2 3 0 Adjunkter 3 3 1 5 Lektorer 9 4 0 13 Professorer 1 0 0 1 Forskningsafdelinger For at sætte fokus på forskningen foretog IT højskolen i 2000 en organisering af alle medarbejdere med forskningspligt Forskerne blev inddelt i forskningsafdelinger i henhold til de typer af mål de forfølger med deres forskning snarere end efter fagområde Hver gang en forskningsafdeling bliver oprettet aftales det også hvornår den skal nedlægges Det sker for at bidrage til dynamikken i forskningen Hver forskningsafdeling ledes af en forskningsafdelingsleder som er udpeget af direktøren Foruden at være ansvarlig for definition af afdelingens mål er afdelingslederen personaleleder for afdelingen Der er i 2000 etableret fire forskningsafdelinger der skal eksistere i tre år Afdeling for design og brug af IT systemer Forsker i systemudvikling og samspillet mellem IT brugere og arbejdsorganisering Afdeling for digital æstetik og kommunikation Forsker i æstetiske kulturelle sociale og kommunikative aspekter af IT fænomener Innovationsafdelingen Udvikler højteknologiske forskningsresultater og omsætter dem til nye realiserbare teknologier Forskningsområderne omfatter datamatsyn grafik multimedieteknologi programmeringssprog formel verifikation indlejret software og nye former for interaktion Teoriafdelingen Grundforskning i algoritmik kompleksitetsteori samt semantik og logik i programmeringssprog De fire afdelinger har formuleret målbeskrivelser og visioner som i uddrag kan findes på 1 www it c dk under Forskning Forskningsprojekter IT højskolen har i 2000 været hjemsted for 9 forskningsprojekter med ekstern finansiering Projekt Finansieringskilde Recource Constrained Embedded Software Forskningsstyrelsen Informationsteknoligprogrammet Verification of embedded Systems Statens Teknisk Videnskabelige Forskningsråd Design og brug af Interaktive Web Applikationer Forskningsstyrelsen Informationsteknologiprogrammet Explain Center for IT forskning Øjenstyret IT IT og Forskningsministeriet Ph d vejledning DTU IDAK projektet Industriens Uddannelsesfond Computing Natural Shape Forskningsstyrelsen Informationsteknologiprogammet Effektive beregningsmetoder Direktør Ib Henriksens fond Effektive databasesystemer Statens Naturvidenskabelige Forskningsråd De 9 forskningsprojekter omsatte for 2 9 mio kr i 2000 Det er IT højskolens mål at forøge antallet af eksternt finansierede forskningsprojekter i de kommende år IT højskolen vil særligt søge at iværksætte projekter med private virksomheder for at fremme samarbejdet Væksten i antal og omfang af eksternt finansierede forskningsprojekter vil ske i takt med væksten i fastansat videnskabeligt personale Forskningspublikationer IT højskolen har anvendt en relativ lille del af sine samlede udgifter i 2000 til forskning Forskningsmidlerne er blevet anvendt dels til forskning på IT højskolen dels til forskning på de institutioner som IT højskolen har indgået samarbejdsaftaler med Fordelingen af forskningsmidlerne og produktionen af forskningspublikationer har været som følger Forskningsmidler Antal publikationer HHK RUC DTU KVL KU 3 6 mio kr 13 IT højskolen 5 9 mio kr 39 I alt 9 5 mio kr 52 Opfindelser og nyttiggørelse af forskning Flere forskere på IT højskolen har været med til eller er i færd med at nyttiggøre forskningsresultater gennem start af egen virksomhed Disse virksomheder beskæftiger sig med at omsætte matematisk baseret teoretisk forskning til konkrete produkter inden for områderne programanalyse verifikation af indlejrede systemer og billedanalyse IT højskolen lejer i øjeblikket lokaler ud til disse firmaer Sammenfatning Etableringen af de fire forskningsafdelinger er udtryk for en opnået bred enighed blandt forskerne om hvordan forskningen skal organiseres og ledes Forskningen på Glentevej har givet anledning til et rimeligt antal publikationer i betragtning af hvor stor en opgave det har været at opbygge det store kursusudbud 1 4 Opbygning af organisationen Der er i 2000 indført følgende organisation organisation gif Ledelsesgruppen består af lederne af de 9 afdelinger direktøren direktionsassistenten studielederen og lederen af åben uddannelse Ledelsesgruppen mødes ugentligt De medlemmer af ledelsesgruppen der ikke har ledelseserfaring gennemgår formaliserede lederudviklingskurser På nær IT afdelingen der savner højtuddannet arbejdskraft er de administrative afdelinger i løbet af 2000 øget med henblik på at kunne håndtere en kraftig vækst i aktivitetsniveauet Det er tanken at afdelingerne i løbet af første halvdel af 2001 skal nå en størrelse der kan håndtere væksten frem til indflytningen i Ørestaden i 2003 Konklusion Det er lykkedes at etablere ni velfungerende afdelinger og få en ledelsesstruktur der befordrer samarbejde på tværs i organisationen og er gearet til at håndtere kraftig vækst 1 5 IT højskolen i Ørestad Samtidig med vedtagelsen af oprettelsen af IT højskolen i København blev det besluttet at IT højskolens fremtidige permanente placering skal være i Ørestaden sammen med udbygning af Københavns Universitet Amager Danmarks Radio og Det kgl Bibliotek Rigsarkivet med flere Til IT højskolens 1 byggeafsnit samt en bebyggelsesplan for hele det udpegede konkurrenceområde i Universitetskvarteret i Ørestad udskrev IT og Forskningsministeriet i marts 2000 en projektkonkurrence om et nybyggeri på ca 20 000m2 Der blev indbudt fem rådgivergrupper som alle deltog Dommerkomit en udpegede den 20 juni i enighed et forslag udarbejdet af Arkitekt Henning Larsens Tegnestue i samarbejde med Ingeniørfirmaet Carl Bro som det bedste I dommerbetænkningen stod bl a Det har generelt været skuffende at der i konkurrencens besvarelser ikke fandtes originale bud på hvordan undervisnings og kontorområder fysisk skulle udformes inspireret af skolens høje informationsteknologiske sigte Komit en har således favoriseret forslag der dels var robuste nok til at tåle en bearbejdning i dialog med skolens brugere og dels forslag der i deres konceptuelle udgangspunkt klarest formulerede den ønskede mulighed for tætte kontakter og interaktion mellem studerende undervisere forskere og gæster på tværs af undervisningens forskellige linier Forslag nr 4 udtrykker en således klar konceptuel tanke Forslaget er netop en fabulerende tolkning af de intentioner som IT højskolen har defineret i konkurrence programmet Projektet vil igennem en bearbejdning med brugerne kunne forme et unikt og inspirerende undervisningsmiljø dannet af en dialog imellem bygningens funktionelle undervisningsprogram og et overbevisende arkitektonisk formsprog der klart udtrykker vores tid og Ørestaden som et særligt sted i det 21 århundrede Image5 jpg IT højskolen i Ørestaden set fra vest Til at varetage IT højskolens interesser i planlægningsprocessen har IT højskolen ansat en arkitekt og en ingeniør og derudover er der blandt øvrige ansatte og studerende nedsat en brugergruppe Der har været holdt mange møder med brugergruppen som er kommet med input til blandt andet indretning og størrelsen på undervisningslokaler Brugergruppens møder har mest været interne men et par gange har arkitekterne deltaget for at fremlægge nye tegninger Desuden har der været afholdt ekskursioner til andre byggerier for at se på byggematerialer og stil samt naturlig ventilation Projekteringen startede i løbet af sommeren 2000 med udarbejdelsen af et lokalplan forslag for området over IT højskolens 1 og 2 byggeafsnit samt en forskerpark Forslaget er nu godkendt af Københavns Kommunes Borgerrepræsentation og sendt i offentlig høring IT højskolen udarbejdede i samarbejde med byggeprocesledelsen et byggeprogram for IT højskolens 1 byggeafsnit Det blev udsendt 18 9 2000 På dette grundlag udfærdigede rådgiverne et dispositionsforslag der blev kommenteret og revideret i løbet af januar 2001 Den fortsatte projektering er nu i gang og der planlægges udbud af byggeriet i sommeren 2001 Byggeriet forventes færdiggjort medio 2003 1 6 Sponsorater LinuxLab IT højskolen blev i 2000 udvidet med en ny IT afdeling Linux laboratoriet LinuxLab Denne afdeling er den første af sin art i Danmark Etableringen af LinuxLab blev gjort mulig gennem et større sponsorat fra IBM Linux laboratoriet blev åbnet den 1 december 2000 Åbningen blev foretaget af forskningsminister Birte Weiss IT højskolens direktør Mads Tofte IT højskolens bestyrelsesformand Mogens Munk Rasmussen og direktør Ole Haaber fra IBM I åbningen deltog endvidere IT C ansatte IT C studerende pressen græsrødder og interesserede virksomheder Efter den officielle åbning fremviste IT medarbejdere Linux systemerne og der var åbent hus i Linux Laboratoriet hvor udstyret blev vist Linux er et åbent system i modsætning til mange kommercielle produkter der er lukkede systemer hvor brugeren ikke har mulighed for at ændre og tilpasse systemet til egne behov Baggrunden for at oprette Linux laboratoriet er en interesse for og opbakning omkring Linux og Open Source samt behovet for en centreret viden omkring Linux i et IT stærkt område som Øresundsregionen i dag og i fremtiden Fra Dansk side er IBM gået kraftigt ind i udbredelsen af kendskabet til Linux og IBM har doneret følgende udstyr til IT højskolens LinuxLab 2 Netfinity servere 6 Netvista workstations 3 IBM Thinkpads 4 IBM WordPads 3 UltraPort cameras og 2 smartcard readers Image6 jpg Efter åbningen var der BuzzTalk med paneldiskussion over emnet Linux i undervisningssektoren og i erhvervslivet Alle interesserede kan hver torsdag få undervisning i Linux og Linux programmel kl 15 17 Linux anvendes af mange af IT højskolens forskere og lærere og IT driften er hovedsagelig Linux baseret 1 7 IT højskolen og omverdenen Det er IT højskolens mål at være i tæt kontakt med det omgivende samfund IT højskolens åbne foredragsrække BuzzTalk har eksisteret siden IT højskolens start i 1999 og er fortsat med stor succes både hvad angår foredragsholdere der er interesserede i at holde en BuzzTalk og tilhørere BuzzTalk s fungerer som en del af IT højskolens kontakt med både erhversliv og omverden idet det er eksterne foredragsholdere fra enten erhvervslivet eller andre forskningsinstitutioner der kommer og præsenterer et emne eller en id der relaterer sig til den forskning og undervisning der foregår på IT højskolen Foredragene er åbne for offentligheden og tiltrækker højt kvalificerede foredragsholdere Foredragene finder sted hver fredag fra kl 15 15 på IT højskolen og varer ca en time Der afholdes BuzzTalks hver fredag i undervisningsperioderne Antallet af deltagere varierer fra 30 til 300 DRs IT og videnskabsportal Orbitalen IT højskolen blev i sommeren 2000 kontaktet af redaktørerne bag Danmarks Radios nye IT og videnskabsportal Orbitalen www dr dk orbitalen for at diskutere muligheden for et fremtidigt samarbejde I august 2000 indgik vi en aftale med Orbitalen Det indebærer at en af IT højskolens forskere eller studerende hver måned skriver en artikel til Orbitalen om de nyeste trends inden for IT Målgruppen er folk som interesserer sig for IT både professionelt og privat De andre bidragsydere til Orbitalen er Aktuel Naturvidenskab Danmarks Tekniske Universitet Aarhus Universitet og Computerworld Online Orbitalen har over 500 besøgende hver dag Dette arrangement har vist sig at være en glimrende mulighed for at informere bredt om IT forskning og IT højskolen Følgende artikler blev bragt i år 2000 Computeren som fejlfinder Algoritmik IT vender Taylor på hovedet og Virtuelle verdener 1 8 Nuværende situation Der er et stort samfundsmæssigt behov for IT højskolen Det viser de høje ansøgertal Søgningen til kandidatuddannelserne har været større end oprindelig forudset i IT og Forskningsministeriets rapport om styrkelse af IT forskning og IT uddannelse IT højskolen er tilfreds med udviklingen for kandidatuddannelserne Det er på kort tid lykkedes at skabe 6 nye kandiatuddannelser der oplever stor søgning En væsentlig del af succesen skyldes det tætte samarbejde med de øvrige universiteter i området Det undervisningsmæssige samarbejde har løftet alle samarbejdets parter op på et højere aktivitetsniveau De forskningsmidler som i første omgang blev knyttet til undervisningsmidlerne har derimod ikke givet anledning til specielt mange publikationer Højskolen må i løbet af 2001 nøje overveje om samarbejdet i fremtiden udelukkende skal omfatte undervisningen Under alle omstændigheder må aftalerne om udlicitering af uddannelser revideres fordi IT højskolens succes gør de nuværende aftaler hvor hver undervisningskrone følges af en forskningskrone for dyre i fremtiden Antallet af optagne på Master og diplomuddannelserne har ikke levet op til forventningerne Først og fremmest fordi IT højskolen har stillet for store krav til de studerendes fysiske tilstedeværelse på Glentevej Disse krav bliver nu lempet ved at udvikle nye kursusformer der ikke kræver den samme grad af fysisk tilstedeværelse IT højskolen er stadig i opbygningsfasen hvilket forventes at fortsætte indtil etableringen i Ørestaden i 2003 har fundet sted Det stiller store krav til organisationen såvel indenfor det undervisningsmæssige som indenfor det administrative område idet der skal fastlægges rutiner og strategier Den interne organisering er blevet styrket betydeligt i løbet af 2000 og i løbet af 2001 vil der ske en yderligere styrkelse for at skabe en organisation der er gearet til de kommende års vækst I øjeblikket er økonomien god IT højskolen gik ud af 2000 med en opsparing på 14 mio kr Resultatet skyldes flere indtægter fra Undervisnings og IT og Forskningsministeriet end forventet og færre udgifter på IT højskolen 2000 har fortsat været præget af meget store etableringsudgifter Investeringerne i lokaler og udstyr har været meget store og kigger man på omkostningen ved at producere et studenterårsværk 1 STÅ er udgiften faktor 2 større end taksameterindtægten fra Undervisningsministeriet En stor del af forklaringen ligger i det særlige statslige regnskabsprincip om at alle investeringer straks afskrives IT højskolen skal i de kommende år være bevidst om at udnytte de fysiske rammer til det yderste for at skabe størst muligt økonomisk råderum for de undervisningsmæssige kerneaktiviteter Image7 jpg 2 Driftsregnskab Resultatopgørelse 1999 2000 2000 2000 2001 Mio kr 3 decimaler årets priser Regnskab Regnskab Internt budget Afvigelse Budget Indtægter 38 991 61 914 60 967 0 947 79 880 Finanslov 31 100 43 700 42 800 0 899 44 692 Driftsindtægter 7 891 18 214 18 167 0 048 35 188 Udgifter 27 652 59 237 66 867 7 630 89 073 Lønninger 6 931 24 088 28 289 4 201 37 505 Øvrige driftsudgifter 20 721 35 149 38 578 3 429 51 568 Resultat 11 339 2 677 5 900 8 577 9 193 Akkumuleret resultat 11 339 14 016 5 439 8 577 4 823 Regnskabet for 2000 udviser et overskud på kr 2 677 mio kr mod et budgetteret underskud på 5 9 mio kr Forskellen mellem budget og regnskab skyldes at opslåede stillinger er blevet besat i et langsommere tempo end forudset og at IT højskolen ved regnskabets afslutning skyldte eksterne samarbejdspartnere 1 4 mio kr for aktiviteter gennemført i 2000 Det interne budget var på indtægtssiden 0 947 mio kr lavere end den endelige finanslov Forskellen skyldtes at det interne budget ikke opererede med indtægter til patentering og at budgetteringen af ph d bevillingen blev ændret i årets løb Hele den akkumulerede opsparing findes i den ordinære virksomhed underkonto 10 En stor del af den akkumulerede opsparing forventes anvendt i 2001 til den fortsatte etablering af højskolen Forskningsaktiviteten forventes at vokse i 2001 som følge af ansættelse af flere faste videnskabelige medarbejdere IT højskolen har i 1999 og 2000 ikke drevet kommerciel indtægtsdækket virksomhed Det budget der er vist i tabellen ovenfor er det budget der er vedtaget af bestyrelsen Efter at budgettet er vedtaget har IT højskolen modtaget ekstra bevillinger bl a som følge af udmøntningen af flerårsaftalen på universitetsområdet Disse bevillinger indgår ikke i det viste budget I bilagstabel 1 side 26 findes et formålsopdelt regnskab Indtægterne for 1999 og 2000 er sammensat af følgende poster Indtægterne specificeret Mio kr 3 decimaler årets priser 1999 2000 Resultatopgørelse IT og Forskningsministeriet etableringsmidler 14 000 18 900 IT og Forskningsministeriet forskningsmidler 10 000 12 700 IT og Forskningsministeriet kapitaludgifter og grundbevilling 7 000 8 100 Ph d uddannelse 0 100 4 009 Undervisningsministeriet udvikling af nye uddannelser 7 000 0 000 Deltagergebyr åben uddannelse 0 200 0 945 Taxameterindtægter 0 000 13 527 Afrundingsdifference i Finansloven 0 200 Tilskudsfinansieret forskningsvirksomhed 0 691 2 874 Driftsindtægter 0 000 0 488 Interne statslige overførsler 0 000 0 171 Indtægter i alt 38 991 61 914 Image8 jpg 3 Resultatanalyse 3 1 Kommentar til resultat IT højskolens udgiftsstruktur har i 2000 været præget af at højskolen fortsat er under etablering IT højskolen har udvidet sit lejemål på Glentevej fra 2 til 4 etager Denne udvidelse har ført til større huslejeudgifter men også til betragtelige udgifter til indretning af lokalerne Isoleret set har højskolen haft en for stor lokalekapacitet i 2000 men med den planlagte stigning i studentertallet i de kommende år vil lokalekapaciteten gradvis komme til at matche studentermængden I det formålsfordelte udgiftsregnskab bilagstabel 1 opgøres undervisningsudgifterne til 20 376 mio kr i 2000 Dette beløb skal sammenholdes med en produktion på 163 STÅ Gennemsnitsudgiften for 1 STÅ var 125 000 kr i 2000 Denne udgift skal sammenholdes med at taxameterindtægten var 63 449 kr pr STÅ i 2000 De store undervisningsomkostninger skyldes dels at der er investeret meget i at udvikle nye kurser dels at kapacitetsudnyttelsen var lav p g a relativt få studerende små holdstørrelser De store undervisningsudgifter må betragtes som en helt nødvendig startinvestering men på sigt skal udgifterne bringes ned på et niveau omkring 50 000 kr pr STÅ taxameterindtægten skal også medfinansiere udgifter til bygningsdrift og administration 3 2 Antal optagne og antal studerende 1999 2003 Med udgangspunkt i den nuværende efterspørgsel efter uddannelserne forventer IT højskolen følgende udvikling i studenteroptagsprognosen frem til 2003 1999 2000 2001 2002 2003 Kandidater 124 325 390 405 405 Master 21 31 40 60 75 Diplom 0 19 80 120 135 I alt 145 371 510 585 615 Prognosen for antal samtidigt indskrevne studerende frem til 2003 er følgende 1999 2000 2001 2002 2003 Kandidater 124 449 750 900 1025 Master 21 55 90 130 175 Diplom 0 19 90 200 300 I alt 145 523 930 1230 1500 Åben uddannelse Som følge af den svage intersse der var på diplomuddannelsen til studiestart foråret 2000 valgte IT højskolen ikke at udbyde denne i efteråret 2000 I stedet blev der nedsat en arbejdsgruppe som skulle komme med forslag til hvorledes undervisningen skulle tilrettelægges for at den kunne tilfredsstille de studerendes ønsker Som led i IT højskolens prioritering af åben uddannelse blev der ansat en udviklingsleder som skal stå for udviklingen af åben uddannelse herunder den fleksible undervisning og andre specielt tilrettelagte kurser markedsføring voksen og erhvervspædagogik samarbejdet med eksterne parter mm Den største ændring af de åbne uddannelser er at de fra februar 2001 er tilrettelagt delvist som fleksibel undervisning I foråret 2001 udbydes kurset Grundlæggende Programmering som fleksibel undervisning hvilket er en blanding af almindelig undervisning n lørdag hver måned og undervisning over Internettet I de følgende semestre vil flere kurser blive udbudt som fleksibel undervisning således at diplomuddannelsen vil kunne gennemføres med kun n ugentlig undervisningsdag IT højskolen vurderer at denne omlægning har været en væsentlig årsag til at der til semesterstart forår 2001 kom 45 ansøgninger til diplomstudiet mod 30 året før Enkeltfagskurser under åben uddannelse er et nyt forretningsområde som IT højskolen har planlagt i år 2000 og udbudt med første optag pr 1 februar 2001 Erhvervsaktive enkeltfagsstuderende vil fremover kunne følge en række af IT højskolens dagskurser for kandidatstuderende under den såkaldte tompladsordning hvor enkeltfagsstuderende bliver optaget under forudsætning af at der er ledige pladser på kurset når kandidat diplom og masterstuderende er blevet optaget Enkeltfagsstuderende har også haft mulighed for at søge om optagelse på kurser med fleksibel undervisning Desuden er der udbudt 2 kurser tilrettelagt som aften og weekendkurser specielt for studerende ved åben uddannelse Af de 130 personer som søgte om optagelse på enkeltfag søgte langt de fleste om optagelse på aftenkurset weekendkurserne eller kurset med fleksibel undervisning IT højskolen vil derfor i 2001 intensivere udbudet af ikke dagskurser med henblik på at øge antallet af studerende ved åben uddannelse IT højskolen har siden efteråret 2000 arbejdet sammen med Dansk Magisterforenings Efteruddannelse DME om at markedsføre af et weekend kursus Samarbejdet betød at antallet af studerende på kurset blev fordoblet Samarbejdet med DME videreføres og udbygges i 2001 3 3 Nuværende og fremtidige lokaleforhold IT højskolen overtog i foråret 1999 lejemålet på Glentevej efter Den Grafiske Højskole i Københavns Nordvestkvarter For at opfylde behovet for undervisningslokaler auditorier m v var en større ombygning imidlertid påkrævet For at dække det stigende behov for undervisningslokaler og kontorer besluttede IT højskolen i december 1999 at leje 2 og 3 salen på Glentevej Lejemålet blev overtaget efter Niels Brocks Handelsskole Det nuværende lejemål på Glentevej udgør netto 7 616 m2 4 Øvrige indsatsområder Foruden at lægge stor vægt på at opbygge et spændende forskningsmiljø og gode uddannelser lægges der på IT højskolen vægt på følgende Opbygning af organisation og ledelse der skal sikre at IT højskolen kan forblive dynamisk og fremadrettet også udover den første opstartsfase Der lægges vægt på at opbløde de traditionelle skel mellem administrative og videnskabelige medarbejdere De administrative medarbejdere skal have indblik i hvad der rent organisatorisk skal til for at have et levende og velfungerende forsknings og uddannelsesmiljø De videnskabeligt ansatte der pålægges ledelsesansvar skal lære at værdsætte og udføre god ledelse og levere kvalitet i forvaltningen Aktiv inddragelse af de studerende i opbygningen af IT højskolen i alle anliggender lige fra udformingen af studierne til etablering af web sider og udarbejdelse af informationsmateriale til andre studerende Studerende der har lyst får i deres projekter lov til at løse opgaver der vil blive sat i produktion på skolen Forholdet til de studerende er baseret på tillid f eks er der døgnåbent for de studerende på IT højskolen og den kendsgerning at IT højskolen hovedsagligt uddanner voksne mennesker der allerede har gennemført en bachelorgrad I opbygningen af administrationen lægges der meget vægt på udvikling af gode IT systemer Grundid en er at administrative rutiner skal være indbygget i brugergrænsefladen til IT højskolens administrative systemer i modsætning til kun at foreligge som administrative foreskrifter Image9 jpg 5 Administration Personale IT højskolen har i år 2000 ansat et stort antal medarbejdere såvel videnskabeligt personale og undervisere som administrativt personale Ved udgangen af 1999 var der i alt ansat 46 personer og ved udgangen af 2000 var tallet steget til 117 Antallet af ansættelser har imidlertid været endnu større end 71 da visse ansættelser hjælpelærere og instruktorer f eks er års ansættelser hvorved genbesættelser af sådanne stillinger ofte forekommer Alders og kønsfordeling Ultimo 1999 Ultimo 2000 Alder K M I alt K M I alt 20 24 0 0 0 3 3 6 25 29 2 15 17 9 40 49 30 34 1 2 3 3 5 8 35 39 2 7 9 6 17 23 40 44 3 3 6 4 4 8 45 49 2 4 6 8 5 13 50 54 2 2 4 3 4 7 55 59 0 1 1 0 2 2 60 64 0 0 0 0 1 1 I alt 12 34 46 36 81 117 fordeling 26 1 73 9 30 8 69 2 Gennemsnitsalderen på IT højskolen er 35 år hvor det statslige gennemsnit er 41 år Den ovenfor beskrevne vækst er ikke foregået i samme takt for alle personalegrupper Personalegruppe Antal ultimo 1999 Antal ultimo 2000 Fuldtids videnskabelige medarbejdere 15 21 Deltidsundervisere 9 35 Ph d studerende 4 18 Øvrigt personale 18 43 I alt 46 117 Det er særligt gruppen af deltidsundervisere og antallet af ph d studerende der er vokset i 2000 Det større antal deltidsundervisere hænger snævert sammen med at undervisningsmængden er vokset voldsomt uden at det er blevet fulgt af en tilsvarende vækst i antallet af fastansatte videnskabelige medarbejdere Det er meget glædeligt at væksten i antallet af ph d studerende er så stor De ph d studerende gennemfører megen værdifuld forskning og udgør et vækstlag for både IT højskolen og erhvervslivet Væksten i det øvrige personale afspejler at den administrative struktur stort set er blevet bragt på plads i 2000 I 2001 planlægges der med en betydelig vækst i antallet af faste videnskabelige medarbejdere Generelt sker ansættelser på baggrund af opslag såvel i dagspressen og i fagtidsskrifter som på Internettet Enkelte midlertidige ansættelser er sket akut uden opslag Den hidtil anvendte ansættelsespolitik afspejler en klar vægtning på den enkeltes kvalifikationer uden nogen form for diskrimination på køn alder etc I 2000 er en stor del af IT højskolens fremtidige organisationsstruktur faldet på plads herunder oprettelse af forskningsafdelinger web redaktion og udbygning af eksisterende administrative afdelinger Det har medført et stort antal nyansættelser Til at varetage IT højskolens interesser i forbindelse med Ørestadsbyggeriet er der ansat en arkitekt og en ingeniør På grund af behovet i forskningsafdelingerne er nye AC medarbejdere ansat der og der har været et stort antal nyansættelser af undervisere hvilket hænger sammen med at der nu er både 1 2 og 3 semester studerede i forhold til 1999 hvor der kun var 1 semester studerende Endvidere er to af de seks kandidatlinier først startet i 2000 Dertil kommer lanceringen af Åben Uddannelse som ligeledes fandt sted i 2000 Da strukturen nu er fastlagt vil stigningen i antallet af ansatte inden for de næste år især ligge inden for undervisnings og forskningsområderne idet disse områder ikke er færdigudviklet I 2001 vil der også være 4 semester studerende og som følge af flere studerende vil kursusudbudet skulle udbygges IT C s personalepolitik har i 2000 været på dagsordenen i ledelsesgruppen og skal i 2001 diskuteres og nedfældes Det forventes at personalepolitikken kommer til at omfatte både en elevpolitik og en klar positiv holdning til det rummelige arbejdsmarked Indtil nu har IT højskolen ikke ment det var forsvarligt at ansætte elever men der er heldigvis blevet plads til en medarbejder der ikke har fuld arbejdsevne Inden for personaleadministration er der i 2000 blevet etableret faste rutiner for områder som ferie syge og orlovsfravær flextid og afspadsering deltagelse i kurser mm Der er endvidere blevet nedsat et sikkerhedsudvalg der skal sikre korrekte forhold i de aktuelle bygninger såvel som i bygningerne i Ørestaden Sygefravær Sygefraværet har både i 1999 og 2000 været beskedent Dage 1999 2000 Fravær på grund af sygdom 24 216 Det gennemsnitlige sygefravær pr fuldtidsansat på IT højskolen var i 2000 på 3 4 dage og dette må betegnes tilfredsstillende i sammenligning med statens som i 2000 var på 7 4 5 3 Bestyrelse Bestyrelsen er udpeget af forskningsministeren Koncernchef og adm direktør Mogens Munk Rasmussen formand Nykredit Underdirektør Kim Østrup IBM Underdirektør Lillian Mogensen ATP Administrerende direktør Preben Damgaard Damgaard Holding Cand Polit Anne E Jensen Rektor for Københavns Universitet Kjeld Møllgård Rektor for Danmarks Tekniske Universitet Hans Peter Jensen Rektor for Roskilde Universitetscenter Henrik Toft Jensen Rektor for Handelshøjskolen i København Finn Junge Jensen Image10 jpg Bilag Bilagstabeller Bilagstabel 1 Hovedformålsoversigt Mio kr 3 decimaler årets priser 1999 2000 Indtægter Taxameterindtægter uddannelse 0 000 13 527 Forskningsindtægter 4 691 16 783 Overførselsindtægt til kapitalformål 7 000 7 000 Overførselsindtægt øvrige formål 26 996 20 000 Ph d stipendier og ph d løn 0 100 2 800 Interne overførsler 0 000 0 171 Driftsindtægter 0 204 1 433 Afrundingsdifference på Finanslov 0 200 Indtægter i alt 38 991 61 914 Udgifter Uddannelse 4 822 20 204 Forskning 2 122 12 886 Generel ledelse og administration 14 114 6 878 Bygningsdrift 3 080 8 272 Øvrige formål 0 000 0 331 Kapitalformål 3 514 10 495 Interne overførsler 0 000 0 171 Udgifter i alt 27 652 59 237 Årets overskud i alt 11 339 2 677 Bilagstabel 2 Tilskudsfinansieret forskningsvirksomhed UK 95 Mio kr 3 decimaler 1999 2000 Statslige fonds og programmidler 0 691 2 856 EU og andre internationale tilskudsgivere 0 000 0 000 Øvrige tilskudsgivere 0 000 0 018 Indtægter i alt 0 691 2 874 Bilagstabel 3 Formålsopdelt regnskab Total Mio kr 3 decimaler årets priser TOTAL Delformål 1999 2000 2 1 Ordinær uddannelse 4 822 17 788 2 3 Åben uddannelse 0 000 2 335 2 8 International studenterudveksling 0 000 0 082 2 Uddannelse i alt 4 822 20 204 1 1 Basisforskning 1 431 9 490 1 2 Tilskudsfinansieret forskning 0 691 2 875 1 4 Forskeruddannelse 0 000 0 521 1 Forskning i alt 2 122 12 886 3 Andre faglige formål i alt 0 000 0 000 4 1 Bygningsdrift 3 075 8 272 4 2 Generel ledelse og administration 14 114 6 878 4 9 Øvrige 0 005 0 331 4 Fælles formål i alt 17 194 15 481 5 1 Lejemål 3 213 7 966 5 3 Vedligehold og mindre byggearbejder 0 301 2 530 5 Kapitalformål i alt 3 514 10 495 6 Institutionsintern overførselsudgift 0 171 7 Udgift i alt 27 652 59 237 Den viste sum kan afvige fra summen af de enkelte dele p g a afrunding Tabel 4 Lønudgift i det formålsopdelte regnskab Mio kr 3 decimaler årets priser TOTAL Delformål 1999 2000 2 1 Ordinær uddannelse 2 396 9 645 2 3 Åben uddannelse 0 000 1 267 2 8 International studenterudveksling 0 000 0 075 2 Uddannelse i alt 2 396 10 996 1 1 Basisforskning 1 302 5 803 1 2 Tilskudsfinansieret forskning 0 406 1 532 1 4 Forskeruddannelse 0 000 0 315 1 Forskning i alt 1 708 7 650 3 Andre faglige formål i alt 0 000 0 000 4 1 Bygningsdrift 2 827 2 378 4 2 Generel ledelse og administration 0 000 3 318 4 9 Øvrige 0 000 0 124 4 Fælles formål i alt 2 827 5 820 7 Lønudgift i alt 6 931 24 466 Note Nettolønudgiften for 2000 er kr 24 088 181 Differencen kr 378 000 i forhold til ovenstående skyldes at ph d stipendier og AER bidrag er incl i tabel 4 Den viste sum kan afvige fra summen af de enkelte dele p g a afrunding Bilagstabel 5 Drifts og overførselsindtægter fordelt på kilder Mio kr med 3 decimaler Årets priser 1999 2000 1 1 Ordinær uddannelse 0 000 12 552 1 3 Åben uddannelse 0 000 0 975 1 Taxameterindtægter uddannelse i alt 0 000 13 527 2 1 Statslige fonds og programmidler 0 687 2 856 2 3 Øvrige tilskudsgivere 0 004 0 018 2 Tilskudsfinansieret forskning i alt 0 691 2 874 3 2 Basisbevilling til forskning 7 000 12 700 3 3 Forskeruddannelse taxameter 1 209 4 Forskningsindtægter i alt 2 3 1 3 3 7 691 16 783 5 Overførselsindtægter til kapitalformål 7 000 7 000 6 1 Overførselsindt til øvr formål særformål 16 000 18 900 6 2 Grundbevilling 1 000 1 100 6 Overførselsindtægt øvrige formål i alt 17 000 20 000 7 1 Deltagerbetaling for åben uddannelse 0 200 0 945 7 4 Driftsindtægter i øvrigt 0 235 7 Driftsindtægter i alt 0 200 1 180 8 1 Stipendiater tidl SU styrelsen 0 500 8 4 Ph d løn 0 100 2 300 8 Stipendiater og løn i alt 0 100 2 800 9 2 Tilskud i øvrigt til udd formål m v 7 000 0 453 9 Øvrige tilskud i alt 7 000 0 453 10 Inst intern statslig overførselsindtægt 0 171 11 Indtægter i alt 38 991 61 914 Inkl kr 0 200 mio i afrundingsdifference på Finansloven Tabel 6 Bevillingsafregning Nettoudgift mio kr 1999 2000 Resultatopgørelse Bevilling B TB 38 787 43 700 Regnskab 27 448 41 022 Bevillingsafvigelse 11 339 2 678 Årets overskud 11 339 2 678 Akkumuleret overskud til videreførsel 11 339 14 016 Bilagstabel 7 Aktivitetsoplysninger STÅ for uddannelse Ordinær uddannelse 1999 2000 1 1 Antal studerende 124 420 1 2 Antal STÅ 0 148 2 1 Antal optagne pr 1 oktober 124 325 2 3 Gennemsnitsalder for optagne 29 1 28 3 2 4 Median alder for optagne 29 5 27 4 3 4 Antal kandidater 0 0 Åben efteruddannelse 4 1 Antal deltagerbetalende STÅ 0 17 4 2 Færdiguddannede på hele uddannelser master diplom 0 0 Forskeruddannelse 5 1 Antal forskeruddannelsesårsværk i alt 0 9 5 2 Antal forskeruddannelsesstud pr 1 oktober i alt 0 15 5 3 Antal forskeruddannelsesstud pr 1 oktober mænd 0 13 5 4 Antal forskeruddannelsesstud pr 1 oktober kvinder 0 2 Internationaliseringstilskud 6 Studerende der udløser internationaliseringstilskud 0 1 6 1 Indgående 0 0 6 2 Udgående 0 1 N B I tabel 6 er der kun medtaget oplysninger om de ph d studerende der arbejder og aflønnes direkte af IT højskolen IT højskolen betaler for 8 ph d studerende der arbejder og aflønnes på Københavns Universitet Danmarks Tekniske Universitet Roskilde Universitetscenter og Handelshøjskolen i København Bilagstabel 8 Resultatopgørelse Tilskudsfinansierede aktiviter underkonto 95 og 97 Tilskudsfinasieret Andre tilskuds Tilskudsfinasieret Andre tilskuds forskning uk 95 finasierede forskning uk 95 finasierede aktiviteter uk 97 aktiviteter uk 97 1999 1999 2000 2000 Årets indtægter 0 691 0 000 2 874 0 253 Årets udgifter 0 691 0 000 2 874 0 253 Årets driftsoverskud 0 000 0 000 0 000 0 000 Bilagstabel 9 Personaleoplysninger Total FORMÅL DELFORMÅL VIP DVIP TAP IALT VIP DVIP TAP IALT Antal årsværk 1 decimal 1999 1999 1999 1999 2000 2000 2000 2000 2 1 Ordinær uddannelse 2 5 0 8 2 8 6 1 9 2 5 4 8 4 23 0 2 3 Åben uddannelse 1 5 1 1 1 3 3 9 2 Uddannelse i alt 6 1 10 6 6 5 9 7 26 8 1 1 Basisforskning 2 1 0 8 2 9 11 8 0 1 1 1 13 0 1 2 Tilskudsfinansieret forskning 1 4 1 4 4 1 0 0 1 2 5 4 1 4 Forskeruddannelse 0 5 0 0 0 2 0 6 1 Forskning i alt 4 3 16 4 0 1 2 5 19 0 3 Andre faglige formål i alt 4 1 Bygningsdrift 8 0 8 0 4 2 Generel ledelse og administration 2 3 4 5 6 8 1 0 0 0 6 4 7 4 4 9 Øvrige 0 4 0 4 4 Fælles formål i alt 6 8 1 0 0 0 14 8 15 8 7 Årsværk i alt 8 3 0 8 8 1 17 2 28 1 6 6 27 0 61 6 Bilagstabel 10 Antal konsulenter og fuldmægtige ultimo VR året 1999 2000 1 1 L35 specialkonsulenter 1 2 L36 chefkonsulenter 1 1 0 Konsulenter i alt 1 2 0 Antal AC fuldmægtige 3 16 Bilagstabel 11 Nettobygningsarealer 1999 2000 1 10 Forskningsareal netto m2 585 497 1 20 Undervisningsareal netto m2 1449 3531 1 30 Øvrige arealer netto m2 2383 5445 1 00 Samlet nettoareal i m2 4417 9473 Bilagstabel 12 19 24 14 IT Højskolen Afvigelse tabel 10095 årets overskud Primo 2000 saldo Bevil afr pkt 13 Korrektion ved bevil lingsafreg ningen RF Korrektion hele kroner Ny ultimo 2000 saldo mio kr med 1 dec 10 Nybyggeri st kt 31 1 9 1 8 0 0 0 0 0 70 Andre byggearbejder st kt 31 52 2 0 0 0 0 0 52 2 I alt 50 3 1 8 0 0 0 52 2 Note Summen af den enkelte underkonto og summen af underkonti kan afvige som følge af afrunding Ad 10 Nybyggeri Afvigelsen skyldes forbrug af videreførte beholdninger Ad 70 Andre byggearbejder Afvigelsen skyldes forsinkelser i forbindelse med afklaring af institutionens fremtidige behov og overvejelser om bevillingsdækning ved huslejeordningens indførelse Det har derfor ikke været muligt at fremsende det forventede aktstykke til Finansudvalget og som følge heraf har det ikke været muligt at gennemføre det forventede grundkøb m v i Ørestaden Ændringer på statuskonti for bygninger og grunde Til brug for beregningen af statuskontiene for år 2000 er der taget udgangspunkt i regnskabet for periode 13 For bygningerne er der i 2000 sket en værditilskrivning svarende til de værdiforøgende anlægsaktiviteter i 2000 Endvidere er der gennemført en lineær afskrivning svarende til 2 5 af primo saldoen Bilagstabel 13 Mio kr Primo 2000 Auto postering Straks afskrivn Lineær afskrivn Ultimo 2000 Bygningsværdi 0 2 6 0 0 0 0 0 6 2 Grundværdi 0 0 0 0 Der foreligger en specificeret opgørelse for hver ejendom 1 IT højskolen Aktiviteter 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English inter menu bund gif Aktivitetskalender 03 05 2001 IT højskolen Glentevej 65 Karrieredag for dimmitender IT Højskolen får besøg af en række førende IT virksomheder som kan diskutere jobprofiler muligheder med kommende dimmitender 15 05 2001 19 21 IT højskolen Glentevej 65 Informationsmøde for åben uddannelse Hør om mulighederne for master diplom og enkeltfagsuddannelser på IT Højskolen 18 05 2001 IT højskolen Glentevej 65 Informationsdag for kandidatuddannelserne Der vil for og eftermiddag være mulighed for at høre om IT Højskolen uddannelser og linjer om adgangskrav om ansøgningsprocedure og mulighed for at tage en snak med en studievejleder 15 06 2001 Kl 12 00 IT højskolen Glentevej 65 Ansøgningsfrist for kandidat master og diplomuddannelserne 01 08 2001 Kl 12 00 IT højskolen Glentevej 65 Ansøgningsfrist for enkeltfagskurserne 9 USEMAP inter icon2top gif opdateret 30 04 2001 10 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT 6 INT Seminarer Efterår 2000 7 Stillinger 8 Aktiviteter 9 Home 10 Find person 11 SiteMap 12 Intranet 13 English inter menu bund gif Internetteknologiseminar E2000 Afholdte seminarer i efterårssemesteret 2000 Uge Dato Lokale Tid Emne Foredragsholder 35 29 8 2 59 15 15 16 00 14 bigwig a DSL for WWW 15 Michael I Schwartzbach BRICS University of Aarhus 38 21 9 3 14 15 15 16 00 16 Secure Collaboration on the Internet 17 Christian Damsgaard Jensen O Reilly Institute Trinity College Dublin 46 14 11 2 51 15 00 16 00 18 Smart Cards what why and how Peter Aage 19 Gemplus 47 22 11 2 03 15 00 20 Bisimilarity in the spi calculus results and directions 21 Hans H ttel BRICS Aalborg University 22 USEMAP inter icon2top gif opdateret 04 05 2001 23 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om INT 6 INT Seminarer Forår 2000 7 Stillinger 8 Aktiviteter 9 Home 10 Find person 11 SiteMap 12 Intranet 13 English inter menu bund gif Internetteknologiseminar F2000 14 Internetteknologiseminarer foråret 2000 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser Uddannelses katalog 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Uddannelseskatalog 11 I Word format 12 I PDF format 13 USEMAP inter icon2top gif opdateret 27 04 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Uddannelser linjer og kurser Optagelses regler og studieordning 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Love og regler Bekendtgørelser Undervisningsministeriets bekendtgørelser om IT højskolens uddannelser findes 11 her Optagelsesregler for IT højskolen i København IT højskolens optagelsesregler som 12 word dokument eller som 13 ren tekst Studieordninger Studieordning for kandidatuddannelsen i informationsteknologi på IT højskolen i København 25 08 2000 som 14 word dokument og som 15 pdf dokument Errata 30 stk 2 Korrekt ordlyd Orlov efter optjening af 30 ECTS point kan meddeles i op til 6 måneder Orlov ud over 6 måneder kræver dispensation fra Studieadministrationen Studieordning for masteruddannelser i informationsteknologi på IT højskolen i København Fællesregler 25 08 2000 som 16 word dokument og 17 pdf dokument Studieordning for masteruddannelsen i Design Kommunikation og Medier 25 08 2000 som 18 word dokument og 19 pdf dokument Studieordning for masteruddannelsen i Internetteknologi 25 08 2000 som 20 word dokument og 21 pdf dokument Studieordning for masteruddannelsen i Multimedieteknologi 25 08 2000 som 22 word dokument og 23 pdf dokument Studieordning for masteruddannelsen i Softwareudvikling 25 08 2000 som 24 word dokument og 25 pdf dokument Studieordning for diplomuddannelsen i informationsteknologi på IT højskolen i København 25 08 2000 som 26 word dokument og 27 pdf dokument 28 USEMAP inter icon2top gif opdateret 27 04 2001 29 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English 11 Studieleder 12 Mere om EBUSS inter menu bund gif Elektronisk Handel Uddannelsen i Elektronisk handel EBUSS er en uddannelse der giver kandidaten kompetencer indenfor tekniske forretningsmæssige og politiske juridiske områder i forhold til e handel Tre områder der alle er vigtige hvis man vil beskæftige sig med e handel På EBUSS omfatter e handel både de tekniske løsninger logistik og betalingssystemer og de mere markedsmæssige så som markedsføring og salg og distributionen af serviceydelser og fysiske eller digitale varer En kandidat i Elektronisk handel vil vide hvordan elektronisk handel influerer på eksempelvis forholdet mellem kunde og leverandør og han eller hun vil være velbevandret i de særlige tekniske problemer der er forbundet med e handel En kandidat i e handel vil på akademisk niveau således kunne bidrage erhvervslivet med aktuelle og relevante e handelskompetencer EBUSS uddannelsen vil være på forkant med udviklingen i ind og udland og samtidig give kandidaten generelle akademiske kompetencer Uddannelsen foregår hovedsageligt på Handelshøjskolen i København der også står for den daglige administration og planlægning Flere oplysninger kan fås på 13 www ebuss dk Man kan også kontakte EBUSS studiesekretariat Institut for Informatik Handelshøjskolen i København Howitzvej 60 3 sal 2000 Frederiksberg e post 14 studiesekretær Charlotte Jørgensen tlf 38 15 24 27 fax 38 15 24 01 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Studieleder 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Kim Viborg Andersen Tænk globalt og anderledes Studieleder lektor Kim Viborg Andersen I erhvervslivet er der et akut behov for folk med forstand på e handel både i det private og det offentlige fortæller lektor Kim Viborg Andersen der er studieleder for elektronisk handel Når vi taler om e handel handler det selvfølgelig om egentlig salg af varer på nettet men det er også elektronisk flytning af og handel med viden kompetencer rådgivning og lignende og så er e handels betydning for or ganisationen og arbejdsprocesserne lige så vigtig E handelslinien indeholder det tekniske det kommercielle og det strategiske og juridiske omkring e handel En kandidat i e handel skal vide noget om det hele men samtidig er det set med mine øjne vigtigt at man specialiserer sig i en af delene siger Kim Viborg Andersen Og så gælder det om at tænke anderledes globalt og aktionsrettet for det går stærkt i denne branche Kim Viborg Andersen synes det har været en stor og spændende udfor dring at være med til at stable e handels linien på benene og han ser kan didaterne i e handel som nogle der i fremtiden vil være e handels projekt ledere i virksomhederne eller som nogen der starter egne e handelsvirksomheder E handelskonsulenter og strateger er også nogle af fremtidens jobmuligheder På uddannelsen kan vi både arbejde teoretisk og praktisk og så at sige skabe et laboratorium for e handel Kort om Kim Viborg Andersen 33 år cand scient pol 1989 University of California 1991 93 Ph D Københavns Universitet 1994 forsknings oplæg ved Tokyo Universitet 1996 97 lektor Institut for Informatik Handelshøjskolen i København 1997 studieleder elektronisk handel IT højskolen 1999 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Mere om EBUSS 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Læs mere om Elektronisk handel Du kan læse mere om linien Elektronisk Handel i vores 12 uddannelseskatalog eller besøge deres 13 hjemmeside Samtidig har du mulighed for at læse om de forskellige kurser der udbydes i 14 kursusbogen 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser Søg om optagelse 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Optagelsesregler inter menu bund gif Søg om optagelse Enkeltfagskurser under Åben Uddannelse Ansøgningsfristen for optagelse på enkeltfagskurser efterårssemesteret 2001 er onsdag den 1 august 2001 kl 12 00 IT højskolen vil medio maj 2001 annoncere de ca 60 forskellige enkeltfagskurser som der kan søges optagelse på til efterårssemesteret 2001 Tilmeld dig evt IT højskolens 11 elektroniske nyhedstjeneste hvor de kommende enkeltfagskurser vil blive omtalt Kandidat diplom og masteruddannelser Ansøgningsfristen for optagelse til IT højskolens kandidat master og diplomuddannelser efterårssemesteret 2001 er fredag den 15 juni 2001 kl 12 00 Her kan du downloade et ansøgningsskema til efterårssemesteret 2001 i 12 word format eller som en 13 pdf fil Her kan du downloade ansøgningsvejledningen i 14 word format eller som en 15 pdf fil Efterårssemesteret starter den 1 september 2001 Hvis du har spørgsmål vedrørende IT højskolens uddannelser og optagelse bedes du kontakte 16 studievejledningen 17 USEMAP inter icon2top gif opdateret 04 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Søg om optagelse Optagelsesregler 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Optagelsesregler IT højskolens optagelsesregler som 11 word dokument eller som 12 ren tekst 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen Presse 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English 9 Pressearkiv 10 Fakta 11 Ledelse 12 Baggrund 13 Billedarkiv inter menu bund gif Pressemeddelelser og pressekontakt Generel pressekontakt Journalist Mikael Kjærbye E mail 14 mk it c dk Telefon 38 16 88 80 Pressemeddelelser Åbent foredrag IBM guru spår om fremtidens IT 09 marts 2001 15 word 16 text og 17 pdf Computerspil under lup på IT konference 01 februar 2001 18 word 19 text og 20 pdf De bedste internationale IT hjerner skal studere i Danmark 18 januar 2001 21 word 22 text og 23 pdf IT højskolen parat med bredt udbud af enkeltfagskurser 20 december 2000 24 word 25 text og 26 pdf IT højskolen i front med åbningen af LinuxLab dk 1 december 2000 27 word 28 text og 29 pdf IT højskolen lancerer ny fleksibel diplomuddannelse 23 oktober 2000 30 text 31 word Henning Larsens Tegnestue i samarbejde med Carl Bro vinder konkurrencen om IT højskolens ny domicil i Ørestaden 21 juni 2000 32 vinderprojektet 33 Word Forskningsministeren løfter sløret for IT højskolens ny domicil i Ørestaden 19 juni 2000 34 Word IT højskolen klar med fire nye uddannelser 9 november 1999 35 text 36 Word IT højskole klar til at skabe helhedsudviklere 10 juni 1999 37 text 38 Word 39 USEMAP inter icon2top gif opdateret 04 05 2001 40 wwwadm it c dk 1 IT højskolen 2 Presse Pressearkiv 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Pressearkiv IT højskolen i København er blevet fulgt med stor interesse i diverse medier i Danmark siden vores oprettelse i 1999 Vi er i øjeblikket i gang med at opbygge et pressearkiv som vil give et indblik i debatten omkring IT højskolen ved at resumere udvalgte artikler m m fra dagspressen og andre medier Hvis du kender til en interessant artikel om IT højskolen vil vi meget gerne modtage en 10 reference så vi kan tilføje den her på siden Artikler og resumeer 11 2001 12 2000 13 1999 14 1998 og før 15 marts 2001 Harddisken P1 Computerspilskonference 15 Harddisken indslag del 1 interview med Lisbeth Klastrup og Espen Aarseth 16 Harddisken indslag del 2 interview med Selmer Bringsjord 05 marts 2001 Kulturnyt P1 17 Real audio I weekenden afholdtes den første europæiske konference om computerspil på IT Højskolen i København Thomas Jacobsen fra firmaet IO Interactive firmaet bag det succesfulde danske spil Hitman og foredragsholder og Jesper Juul arrangør og ph d studerende på IT Højskolen interviewes af Claus Vittus 03 marts 2001 Information 18 Computerspillet der ville være videnskab Humanister trækker computerspillet ind i den videnskabelige varme Marts 2001 DR Orbitalen IT Videnskab 19 Hvad er god IT support Fejl og mangler i software koster os mere end vi tror Løsningen er en proaktiv IT help desk med brugeren i centrum 27 februar 2001 Computerworld Online 20 IT højskolen udvikler øjenstyring Øjenstyring af computere åbner for at hav af muligheder men systemerne er for dyre IT højskolen er nu med penge fra Forskningsministeriet gået i gang med at udvikle et nyt og billigt øjenstyringssystem 19 februar 2001 Computerworld Online 21 IT ansatte mangler IT uddannelse Mange virksomheder har store problemer med at skaffe kvalificeret IT arbejdskraft Tre ud af fire IT ansatte er ikke uddannet indenfor IT viser ny undersøgelse 6 februar 2001 Computerworld Online 22 Konference om Computerspil IT højskolen i København er den 1 2 marts vært for Europas første konference nogensinde om computerspil under navnet Computer Games and Digital Textualities 2 februar 2001 Søndag aften 23 Quake på dagsorden IT højskolen i København sætter bogstaveligt talt spillet Quake på dagsordenen når man inviterer til konferencen Computer Games Digital Textualities i København i begyndelsen af marts Februar 2001 DR Orbitalen IT Videnskab 24 Forskere sætter fokus på Linux LinuxLab er et nyt tiltag på IT højskolen i København som sætter fokus på Linux og Open Source Ideen er at skabe et videncenter inden for brug af åbne systemer som Linux at fremme brugen af åbne standarder og at skabe et kreativt IT miljø Januar 2001 DR Orbitalen IT Videnskab 25 Virtuelle verdener internettets legepladser Virtuelle verdener er steder på internettet hvor man indenfor rammerne af et fiktivt univers kan lade sin virtuelle personlighed sin avatar mødes med andre virtuelle personligheder Skrevet af IT højskolens Lisbeth Klaustrup 21 december 2000 Computerworld Online 26 Nyt tilbud IT højskolen tilbyder enkeltfag 21 december 2000 Computerworld online 27 IT uddannelserne halter bagud December 2000 AAK Information 28 En million megabytes i IT højskolen 14 december 2000 Aktuelt 29 Flere kvinder på IT uddannelser 7 december 2000 Linux Today 30 IT University takes the lead with launch of LinuxLab dk 5 december 2000 Børsen Informatik 31 LinuxLab på IT højskolen 4 december 2000 Ingeniøren 32 IT højskolen satser på Open Source 30 november 2000 Harddisken P1 33 Ugens Gæst Hanne Munkholm fra LinuxLab besøger Jens Aagren Poder i studiet IT højskolen i København slår dørene op for Danmarks største Open Source initiativ Det sker når forskningsminister Birte Weiss åbner IT højskolens LinuxLab dk fredag d 1 december Tryk på Harddisken Live for at høre radio programmet i RealAudio November 2000 DR Orbitalen IT Videnskab 34 IT vender Taylor på hovedet Et nyt dansk IT forskningsprojekt sætter for alvor gang i drømmen om at oprette selvstyrende grupper på fabriksgulvet 25 oktober 2000 Computerworld online 35 Glæde over ny IT uddannelse Oktober 2000 DR Orbitalen IT Videnskab 36 Fra morgenkaffe i 1956 til moderne søgemaskiner To algoritmikforskere fra IT højskolen i København står bag et nyligt gennembrud inden for hurtig distribution af datapakker på internettet Her fortæller de om nogle af computerverdenens farverige genier Samtidig bliver du udfordret til at løse tre lette algoritmik grublere 27 oktober 2000 Computerworld Online 37 Symbion IT bag iværksætterkursus Væksthuset Symbion IT har været fødselshjælper for en række IT virksomheder Nu samarbejder det med IT højskolen om at videregive viden om opstart af egen virksomhed til IT studerende September 2000 DR Orbitalen IT Videnskab 38 Computeren som fejlfinder En simpel computerfejl kan sende firmaer konkurs og i værste fald koste menneskeliv F eks blev mindst seks mennesker stegt levende da de modtog op til 20 000 gange for store strålingsmængder under en rutinebehandling for kræft i USA og Canada for nogle år siden 11 august 2000 Computerworld online 39 Søgningen til IT højskolen fordoblet 12 maj 2000 Computerworld 40 IT højskolen laver Linux laboratorium 5 Maj 2000 41 IT højskole med vokseværk 3 Maj 2000 42 Linux Install fest på IT højskolen 16 Marts 2000 43 Romantik på chatten og Chat giver de unge et åndehul 23 Februar 2000 44 Rektor Offentlig Linux giver mange problemer 2 Februar 2000 45 Prøvekludene på IT højskolen 2 Februar 2000 46 Kampen mod politisk uvidenhed 17 december 1999 47 IT højskolerne fik en flyvende start 7 december 1999 48 USA jurister myrder Internet 7 december 1999 49 Patenteringsbølge i USA truer Internet 10 november 1999 50 IT højskolen udvider 5 november 1999 51 DTU drænet for IT lærere Af Bjarke Wiegand Ingeniøren nr 44 1999 19 oktober 1999 52 Oppositionen vil kæmpe for CIT 19 oktober 1999 53 Disse prægtige IT projekter og deres bagmænd 28 september 1999 54 Unge mødes og sød IT musik opstår 22 september 1999 55 IT med følelser 17 september 1999 56 Hvilke kvalifikationer efterspørges 13 september 1999 57 Uforligneligt til markedsføring 7 september 1999 58 Rektorer rejser tvivl om ny IT højskole 30 august 1999 59 Fuldt hus på IT højskolerne 30 august 1999 60 140 optaget på den ny IT højskole 12 august 1999 61 IT højskole fyldt op 10 august 1999 62 IT højskolen fuldt booket 15 juli 1999 63 Stor søgning til IT uddannelse Der arbejdes ihærdigt i to landsdele på at få fordelt ansøgere til de nyoprettede IT uddannelser Hos IT højskolen i København er der glæde over at 40 af ansøgerne til den mest populære linie er kvinder Skrevet af Kurt Westh Nielsen Ingeniøren 1 juli 1999 64 IT højskoler går i luften uden koordinering Ingen fællesnævner for septemberoptaget på skolernes nye uddannelser Skrevet af Bjarke Wiegand Ingeniøren nr 7 1999 24 juni 1999 65 IT højskole spænder fra kunst til erhverv 21 juni 1999 66 IT højskole skaber uro blandt elever Handelshøjskolens e handelslærere skal undervise på IT højskolen til efteråret Eleverne frygter at IT højskolen vil udhule e handelsfagene på cand merc dat studiet Skrevet af Lotte Davidsen Computerworld 18 juni 1999 67 Profilen 17 juni 1999 68 IT højskolen Rasmus Visby har været en tur på Glentevej i København s Nordvest kvarter og talt med IT Højskolens direktør Mads Tofte om deres visioner 17 juni 1999 69 IT højskole bejler til bløde værdier 16 juni 1999 70 Helhedsudviklere på IT højskole At skabe IT medarbejdere der kan integrere teknik design og mennesker er en af hovedmålsætningerne for den nye IT højskole i København Skrevet af Henrietta Kjær Computerworld 16 juni 1999 71 Hektisk aktivitet på IT Højskolen IT højskolen arbejder hårdt på at gøre klar til de 154 studerende der starter 1 september Skrevet af Henrietta Kjær Computerworld 11 juni 1999 72 Startskud affyret for IT højskolen 11 juni 1999 73 IT højskole vil tænke nyt 26 marts 1999 74 Skærpet kamp om IT undervisere Nye initiativer deriblandt IT højskolen øger behovet for lærerkræfter Skrevet af Bjarke Wiegand Ingeniøren nr 12 1999 23 marts 1999 75 IT satsning af format 22 marts 1999 76 IT højskolen en oplagt mulighed 15 marts 1999 77 Mads Tofte direktør for IT højskolen Mads Tofte datalogi lektoren fra Københavns Universitet er indstillet til posten som direktør for IT højskolen der får hjemme i lokaler på Nørrebro i København Skrevet af Claus Thor Nielsen Computerworld 19 februar 1999 78 Ingeniører ved for lidt om softwareudvikling Skrevet af Bjarke Wiegand Ingeniøren nr 7 1999 12 februar 1999 79 Fantasien i brug mod ingeniørmangel Skrevet af Søren Ravnsborg Ingeniøren nr 6 1999 20 november 1998 80 Flaskehalse Pas på uigennemtænkte feberredninger Skrevet af Ole Schiøth Ingeniøren nr 47 1998 16 oktober 1998 81 Nye IT højskoler i hele langdet Der er også brug for en IT masteruddannelse i provinsen mener prorektoren for Aalborg Universitet Skrevet af Sebastian Cappelen Ingeniøren nr 42 1998 28 november 1997 82 Værd at støtte IT uddannelse Skrevet af Lars Rhein Hansen formand for Ingeniør foreningens Uddannelsesudvalg Ingeniøren nr 48 1997 83 USEMAP inter icon2top gif opdateret 04 05 2001 84 wwwadm it c dk 1 IT højskolen 2 Presse 3 Pressearkiv 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Flere kvinder på IT uddannelser Antallet af kvinder der er optaget på en IT relateret uddannelse er mere end fordoblet på blot fire år Det viser tal der netop er offentliggjort i rapporten Netværksredegørelse 2000 fra Forskningsministeriet skriver Aktuelt Heraf fremgår det at 11 procent af de studerende på de IT relaterede uddannelser i 1996 var kvinder hvor tallet i år er oppe på 26 procent Det er glædeligt lyder det fra erhvervslivet og uddannelsesinstitutionerne IT fagene er ved at ændre karakter hvor mennesket er kommet mere i centrum end maskinen Der er kommet et markant behov for kreative personer der mestrer grafisk design og informationsstruktur og det er noget der appellerer til kvinder siger Mads Tofte direktør på IT højskolen i København I løbet af det halvandet år IT højskolen har eksisteret har der været in kønsfordeling på en kvinde for hver to mænd Størstedelen af dem går på skolens design kommunikation og medielinje der er skolens mest eftersøgte uddannelse Dette er et resume af en artikel som blev bragt i Aktuelt den 14 december 2000 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Presse 3 Pressearkiv 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif LinuxLab på IT højskolen Det åbne og gratis distribuerede styresystem Linux som kun benyttes i meget beskeden omfang i erhvervslivet får nu hjælp til at vinde større udbredelse i kraft af et nyoprettet Linux laboratorium Det er den to år gamle IT højskolen i København som står bag initiativet med et nyt LinuxLab www linuxlab dk som blev officielt åbnet af forskningsminister Birte Weiss Børsen Informatik skriver at den manglende tiltro til et gratis styresystems styrker og muligheder stadig er den dominerende opfattelse hos mange virksomheder Men denne holdning kan fremover blive stillet over for flere udfordringer efterhånden som IT højskolen udklækker nye kandidater som kommer ud og demonstrerer deres kunnen og viden rundt om i virksomhederne Dette er et resume af en artikel som blev bragt i Børsen Informatik den 5 december 2000 Artiklen var skrevet af pmc 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Presse 3 Pressearkiv artikel 4 Uddannelser 5 Stillinger 6 Aktiviteter 7 Home 8 Personer 9 SiteMap 10 Intranet 11 English inter menu bund gif IT højskolen laver Linux laboratorium Forårets diskussioner om det gratis styresystem Linux har båret frugt Den københavnske IT højskole vil åbne et decideret laboratorium for eksperimenter Undervisning og forskning i det alternative operativsystem Med en person til at drive laboratoriet Vi har ikke fået nogen ekstra bevilling til opgaven men vi kan jo bruge sådan et laboratorium i undervisningen og lave kurser så det bliver egentlig ikke noget problem vurderer rektor for IT højskolen Mads Tofte IT højskolen har allerede lejet et 70 kvadratmeter stort lokale til det nye Linux lab og Mads Tofte har store forventninger til at IBM vil sponsorere en del af det nødvendige isenkram Der bliver vel fem til 10 maskiner og netværk og id en er så at man kan få lov til at crashe udstyret og virkelig forsøge sig uden at det går ud over produktionen siger Mads Tofte Åbent laboratorium IT højskolens Linux laboratorium skal i princippet være åbent så man kan komme Lige ind fra gaden og får råd og vejledning i styresystemet Skatteborgerne har jo alligevel betalt for skolen For eksempel var vi vært for Sjællands Skåne Linux User Group Installfest her forrige lørdag og den slags arrangementer vil vi naturligvis være vært for også i fremtiden siger Mads Tofte Artiklen blev bragt i Computerworld 12 maj 2000 12 USEMAP inter icon2top gif opdateret 11 12 2000 13 wwwadm it c dk 1 IT højskolen 2 Presse Fakta 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Fakta og nøgletal Uddannelser Kandidatuddannelsen Den der gennemfører kandidatuddannelsen i informationsteknologi har ret til titlen cand it Der findes følgende linier på kandidatuddannelsen design kommunikation og medier elektronisk handel softwareudvikling internetteknologi multimedier tværfaglig IT Masteruddannelser design kommunikation og medier softwareudvikling internetteknologi multimedier Diplomuddannelse Se nærmere under 10 Uddannelser Antal indskrevne studerende 1999 2000 2001 2002 måltal måltal måltal Kandidatuddannelser 119 405 616 948 Masteruddannelser 15 33 155 291 Diplomuddannelsen 0 36 171 318 Ansatte årsværk 1999 2000 2001 2002 måltal måltal måltal Forskere og undervisere excl eksterne lektorer 8 3 31 9 58 5 90 0 Administrativ support til undervisning 1 3 3 0 6 0 6 0 Anden Admin 6 8 13 7 24 5 32 5 Finanslovsbevilling mio kr 1999 2000 2001 2002 Finansloven 39 0 61 0 83 1 95 2 Oprettelsesår 1999 Adresse IT højskolen Glentevej 67 DK 2400 København NV telefon 45 38 16 88 88 telefax 45 38 16 88 99 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Presse Ledelse 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Bestyrelse og direktion Bestyrelsen for IT højskolen Formand Mogens Munk Rasmussen koncernchef og adm direktør Nykredit Bestyrelsesmedlemmer Preben Damgaard adm direktør Damgaard Holding Anne E Jensen cand polit Hans Peter Jensen rektor Danmarks Tekniske Universitet Henrik Toft Jensen rektor Roskilde Universitetscenter Finn Junge Jensen rektor Handelshøjskolen i København Lillian Mogensen underdirektør ATP Kjeld Møllgård rektor Københavns Universitet Kim Østrup underdirektør IBM Direktør 10 Mads Tofte Frifakultet IT højskolen er et såkaldt frifakultet der har Handelshøjskolen i København som vært Ved frifakultet forstås kort fortalt at konsistorium for værtsinstitutionen har uddelegeret væsentlige kompetencer til bestyrelsen for IT højskolen Bestyrelsen er udpeget af forskningsministeren 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Presse Baggrund 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Baggrunden for IT højskolen IT højskolen i København blev oprettet i 1999 på baggrund af en 10 rapport fra Undervisningsministeriet og Forskningsministeriet om styrkelse af IT uddannelser og IT forskning som anbefalede en kraftig forøgelse af kapaciteten af de forskningsbaserede IT uddannelser i Danmark IT højskolen i København fik sammen med et universitetssamarbejde om nye IT uddannelser i Vestdanmark til opgave at tilbyde akademiske overbygningsuddannelser med nyt indhold og ny profil og som skulle kunne tages oven på en bachelorgrad fra fag der ikke drejede sig om IT De to institutioner skulle også udvikle og tilbyde master og diplomuddannelser som efter og videreuddannelse på højt niveau på IT området Endelig skulle der også ske en forskning på IT området i international klasse IT højskolen er et såkaldt frifakultet under Handelshøjskolen i København i henhold til 12 stk 1 i universitetsloven Skolen har foreløbig til huse på Glentevej i Københavns Nordvestkvarter hvor den officielle indvielse fandt sted 30 august 1999 Det bevillingsmæssige grundlag for IT højskolen er Forskningsministeriets aktstykke nr 138 af 9 marts 1999 som er tiltrådt af finansudvalget den 17 marts 1999 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Presse Billedarkiv 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Billedarkiv REFRESH 0 sec 10 http www it c dk billedarkiv Denne side sender dig videre til IT Højskolens billedarkiv Hvis dette ikke sker klik venligst her på dette link 11 http www it c dk billedarkiv 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen Om IT højskolen 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English 9 Vision 10 Kontakt 11 Uddannelser 12 Ørestads byggeriet 13 Nøgletal 14 Virksomheds regnskaber 15 Vedtægter 16 Billedarkiv 17 At finde IT C inter menu bund gif Om IT højskolen IT højskolen i København blev etableret i 1999 med det formål at varetage teoretisk forskning og forskning i informationsteknologiens samspil med og betydning for samfundet IT højskolen tilbyder en række af uddannelser inden for IT 18 Seks 2 årige kandidatuddannelser 19 Fire masteruddannelser 20 En diplomuddannelse IT højskolen beskæftiger sig med alle sider af informationsteknologien fra naturvidenskaben og matematikken over de humanistiske og kreative sider af teknologien til de erhvervsmæssige konsekvenser og de kommercielle muligheder med IT IT højskolen arbejder bl a sammen med 21 Københavns Universitet 22 Handelshøjskolen i København 23 Danmarks Tekniske Universitet og 24 Roskilde Universitetscenter IT højskolen er et frifakultet der har Handelshøjskolen i København som vært Direktør for IT højskolen er 25 Mads Tofte Bestyrelsesformand er Mogens Munk Rasmussen koncernchef og adm direktør Nykredit 26 USEMAP inter icon2top gif opdateret 04 05 2001 27 wwwadm it c dk 1 IT højskolen 2 Om IT højskolen Vision 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Vision IT højskolens vision IT højskolen vil i dialog med sine omgivelser skabe et attraktivt og levende forsknings og uddannelsesmiljø der bidrager til vækst og udvikling i det danske og internationale samfund ved at skabe et IT miljø der favner naturvidenskab humaniora design og erhverv at uddanne personer med en stor og bred viden om IT og IT s muligheder gennem forskning at skabe ny teknologi og bedre anvendelse af eksisterende teknologi at øge samfundets indsigt i IT og IT s muligheder Ovenstående er uddybet i 10 Direktørens visioner 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Om IT højskolen Kontakt 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Kontakt Adresse IT højskolen i København Glentevej 67 DK 2400 København NV Telefon 45 38 16 88 88 Telefax 45 38 16 88 99 Studievejledning Studievejledningen Telefon 45 38 16 88 73 10 Studievejledningen it c dk Træffetider Mandag Kl 10 14 Tirsdag Kl 10 14 Onsdag Kl 10 14 Torsdag Kl 10 14 Fredag Kl 10 14 Erhvervssamarbejde Mikael Kjærbye Telefon 45 38 16 88 80 11 mk it c dk Ledige stillinger Personalechef Kirsten Talbro Laraignou Telefon 45 38 16 88 03 12 ktl it c dk BuzzTalks Tanja Danner Telefon 45 38 16 88 06 13 td it c dk Pressekontakt Mikael Kjærbye Telefon 45 38 16 88 80 14 mk it c dk Bygninger drift og intern service Afdelingsleder Margit Achen Telefon 45 38 16 88 10 15 margit it c dk Kommentarer til hjemmesiden Webadministrationen 16 wwwadm it c dk 17 USEMAP inter icon2top gif opdateret 04 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Om IT højskolen Uddannelser 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Uddannelser IT højskolen udbyder en række uddannelser inden for IT Kandidatuddanelser Kandidatuddannelsen er et to årigt fuldtidsstudium som kan tages inden for linierne 10 Design kommunikation og medier 11 Elektronisk handel 12 Internetteknologi 13 Multimedieteknologi 14 Softwareudvikling og 15 Tværfaglig IT Kandidatuddannelsen resulterer i titlen cand it med tilføjelse af betegnelsen for den pågældende linje Kandidatuddannelsen tages på baggrund af en bachelorgrad fra en anden uddannelsesinstitution Masteruddannelser På IT højskolen er der også fire tre årige masteruddannelser Masteruddannelsen kan tages inden for linierne 16 Design kommunikation og medier og 17 Internetteknologi 18 Multimedieteknologi 19 Softwareudvikling Masteruddannelsen er en deltidsuddannelse som typisk gennemføres i sammenhæng med ens erhvervsarbejde Den udbydes under lov om Åben Uddannelse Efter endt studium for man betegnelsen Master of Information Technology MIT med tilføjelse af betegnelsen for den pågældende linje Diplom uddannelse IT højskolen tilbyder en to årig 20 diplomuddannelse på deltid Den henvender sig primært til erhvervsaktive som har brug for et bredere kendskab til informationsteknologi Den udbydes under lov om Åben Uddannelse Efter endt studium får man betegnelsen Diploma in Information Technology DIT Enkeltfag IT højskolen tilbyder nu to forskellige muligheder for at læse enkeltfag 21 Enkeltfag som kandidatstuderende ved andre universiteter 22 Enkeltfag under Åben Uddannelse for alle med mindst en bacheloruddannelse eller tilsvarende Kurserne henvender sig i høj grad til erhvervsaktive som har brug for et bredere kendskab til informationsteknologi men ikke ønsker at tage en længerevarende kandidat master eller diplomuddannelse Hvis du har spørgsmål vedrørende IT højskolens uddannelser bedes du kontakte 23 studievejledningen Se mere om IT højskolens uddannelser under 24 uddannelser 25 USEMAP inter icon2top gif opdateret 04 05 2001 26 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English 11 Studieleder 12 Mere om MMT inter menu bund gif Multimedieteknologi Uddannelsen i Multimedieteknologi kombinerer den nyeste teknologi i sammenhæng med andre og etablerede fagområder Det kan eksempelvis være taleteknologi billedanalyse computergrafik signalbehandling og interaktiv 3 D grafik i relation til medicinske og industrielle anvendelser Uddannelsen er naturvidenskabelig orienteret og fokuserer på principper for eksempelvis mønstergenkendelse automatisk billedanalyse og signalbehandling ligesom uddannelsen beskæftiger sig med teorier for human perception Samtidig lægger uddannelsen vægt på at bruge software som i forvejen bruges kommercielt eller forskningsorienteret i industrien Kandidaterne vil få et grundigt kendskab til basisteknologier og systemer og vil være i stand til både at vedligeholde og udvikle sådanne systemer Kandidater i Multimedier vil kunne komme til at arbejde med eksempelvis film tv medicinske systemer billed og lydtransmission industriel automatisering og geografiske informationssystemer Uddannelsen i Multimedieteknologi udbydes i samarbejde med 13 Danmarks Tekniske Universitet og 14 Københavns Universitet Det meste af undervisningen foregår på IT højskolen men enkelte kurser kan forekomme på DTU og KU 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Studieleder 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif John Aa Sørensen Viden om teknologien bag IT løsninger Studieleder lektor John Aa Sørensen Der er et stort behov for IT folk med indsigt i teknologien bag IT løsninger så vi ikke bare bliver brugere af andre landes teknologi Vi skal også deltage i udviklingen af teknologi siger lektor John Aa Sørensen uddannelseslinien for Multimedieteknologi På linien er der både plads til studerende som kommer med en stor teknisk viden og dem der ikke gør Vi skal sørge for at bygge videre på de forskellige fundamenter som de studerende kommer med så deres forskellighed bliver en gevinst for fællesskabet Vi sørger så vidt muligt for at teorien bliver understøttet af praktiske øvelser så de studerende har en klar fornemmelse af hvad de kan skabe med deres viden Vi forsøger også at åbne valgmuligheder for de studerende med pegepinde til kurser og projekter på f eks DIKU og DTU så de har mulighed for yderligere specialisering John Aa Sørensen giver et par eksempler på opgaver som en kandidat på Multimedielinien kunne løse Når TV sender direkte fra Tour de France ville det være attraktivt at kunne skifte reklamerne ud langs vejene ved hjælp af multimedieteknologi så man hjemme i den danske stue så reklamer for en dansk bank mens de franske seere fik vist reklamer for god fransk vin I relation til filmindustrien er digital behandling af film et vigtigt fremtidigt område f eks i videreudvikling af teknologien bag film som Jurassic Park eller Titanic Som et andet eksempel kan nævnes opgaver indenfor systemer der sender billeder og lyd mellem geografisk adskilte steder f eks for at muliggøre kommunikation mellem disse Kort om John Aa Sørensen Uddannet civilingeniør i elektronik fra Danmarks Tekniske Universitet i 1975 Ph d i 1982 fra DTU Ansættelser som adjunkt og lektor ved DTU Fra 1 november 2000 lektor ved IT højskolen Han har bl a arbejdet med forskning og undervisning indenfor signalbehandling og dens anvendelser i kodning og støjreduktion af tale og anvendelser i kliniske diagnosesystemer Hans interesseområde er metoder til og anvendelse af multimediesignalbehandling Deltager i internationalt samarbejde indenfor IEEE 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Mere om MMT 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Læs mere om Multimedieteknologi Du kan læse mere om Multimedieteknologi i vores 12 uddannelseskatalog eller besøge deres 13 hjemmeside Samtidig har du mulighed for at læse om de forskellige kurser der udbydes i 14 kursusbogen 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English 11 Interview med studieleder 12 Interview med underviser 13 Mere om SWU inter menu bund gif Softwareudvikling Kandidater i Softwareudvikling skal kunne skabe nye IT anvendelser tilpasse og udnytte eksisterende software og nyudvikle software lige som de løbende skal kunne omstille sig til nye teknologier og metoder i IT sektoren Uddannelsen består af et kernepensum inden for områderne programmering softwareteknologi og systemudvikling samt en række valgfrie fag som dels udbydes på Softwarelinien og dels udbydes af andre linier på IT højskolen Uddannelsen i Softwareudvikling spænder fra fundamentale teorier om programudvikling til brug af anerkendte udviklingsværktøjer og fra teorier om forholdet mellem menneske og maskine til praktisk kendskab til brugergrænseflader Kandidatuddannelsen i Softwareudvikling sigter på at uddanne nogle af fremtidens systemudviklere IT projektledere IT chefer IT rådgivere forskere og undervisere på softwareområdet Kandidatuddannelsen i Softwareudvikling foregår hovedsageligt på IT højskolen og uddannelsen udbydes af IT højskolen i samarbejde med Den Kongelige Veterinær og Landbohøjskole 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Interview med studieleder 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Søren Lauesen linjeleder SWU Professor Søren Lauesen Studieleder Kombinere teori og praktik Min vision for IT højskolen er et uddannelsested hvor de studerende kombinerer teori og praksis siger Søren Lauesen De studerende tilegner sig den viden en IT professionel har brug for og de har den teoretiske ballast der skal til for at kunne fortsætte en livslang uddannelse på egen hånd De kommer ud med åbent sind og lever ikke kun i deres eget IT univers men forstår succesfuldt at samarbejde med mennesker fra andre faggrupper Bygge bro IT højskolen er en unik mulighed for at bygge bro mellem IT og andre fagområder Jeg har i mange firmaer set talentfulde IT folk der ikke kunne kommunikere med talentfulde folk inden for andre fagområder Jeg sagde ja tak til denne mulighed fordi jeg tror at jeg kan gøre en forskel Jeg har med succes før hjulpet med at bygge bro mellem IT og økonomi Jeg er også interesseret i biologi psykologi kultur samt mange andre emner og så har jeg stor erfaring fra IT branchen såvel som forskning og undervisning En kort biografi for Søren Lauesen Født i 1942 Cand Sc i matematik og fysik fra Københavns Universitet i 1965 I 1962 startede han i IT branchen hvor han siden udviklede mange slags produkter lige fra buskøreplanlægning oversættere og operativsystemer til computerstyring af eldistributionen i Danmark Hans første opgave var at udvikle et program som kunne vinde over ethvert menneske i et spil udviklet af Piet Hein Han har arbejdet for den danske computerproducent Regnecentralen og to multinationale firmaer ABB and NCR Siden 1985 har han været professor Han har været med til at starte tre uddannelser Datalogi på Københavns Universitet økonomi datalogi på Handelshøjskolen i København og IT uddannelserne på IT højskolen 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Interview med underviser 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Fritz Henglein underviser på SWU Fokus på principper Lektor Fritz Henglein Fritz Henglein Uddannelserne i softwareudvikling på IT højskolen beskæftiger sig med hvordan man udvikler relevant og effektiv software af høj kvalitet På softwareudvikling får man indsigt i grundlæggende principper i programmering og i udviklingsprocessen og kombinerer dem med praktisk udøvelse siger lektor Fritz Henglein der er studieleder på softwareudvikling Fritz Henglein ser tre profiler inden for softwareudvikling Den ene er udviklingsprofilen hvor der er fokus på processer systemkrav og interaktion mellem mennesker Den anden profil har fokus på selve programmeringen og konstruktion af softwaresystemer Den tredje beskæftiger sig med det teoretiske og matematiske fundament for programmering og software Det er vigtigt at vi uddanner forskellige profiler som kan tilpasses helt individuelt Derfor er det også godt at vi kan tiltrække studerende med vidt forskellig baggrund lige fra det matematisk naturvidenskabelige over samfundsvidenskab til humaniora Ved at have studerende med vidt forskellig baggrund skaber vi synergi og bygger oven på værdifulde kompetencer Det giver også et særdeles interessant og spændende studiemiljø med motiverede og selvstændige studerende vurderer Fritz Henglein Kort om Fritz Henglein 39 år Master of Science Rutgers University New Jersey 1986 Research Scientist New York University 1987 89 IBM 1988 Ph D Rutgers University 1989 postdoc Utrecht University 1990 lektor Datalogisk Institut Københavns Universitet 1991 1999 direktør Hafnium ApS 1999 lektor og studieleder IT højskolen i København 1999 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Mere om SWU 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Læs mere om Softwareudvikling Du kan læse mere om Softwareudvikling i vores 12 uddannelseskatalog Samtidig har du mulighed for at læse om de forskellige kurser der udbydes i 13 kursusbogen 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English 11 Mere om TIT inter menu bund gif Tværfaglig IT Kandidater i Tværfaglig IT kombinerer deres viden om IT med faglig viden fra andre uddannelser og uddannelsen lægger stor vægt på at kombinere flere fagområder Uddannelsen giver samtidig en indsigt i hvordan IT systemer designes og konstrueres Med en uddannelse i Tværfaglig IT kan kandidaten med basis i et andet fagområde se nye muligheder med IT og bruge IT i nye sammenhænge og til løsning af andre og nye opgaver Uddannelsen sigter mod at give den enkelte sin egen faglige profil samtidig med at den giver generelle og langsigtede kvalifikationer der bygger på et fælles teoretisk og metodisk fundament Målet er blandt andet at kandidater i Tværfaglig IT kan arbejde selvstændigt kritiskt og problemløsende i projektarbejder Hovedparten af uddannelsen foregår på RUC som også er ansvarlig for uddannelsen I et vist omfang vil der dog være mulighed for at tage kurser på andre linier på IT højskolen 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 Mere om TIT 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Læs mere om Tværfaglig IT Du kan læse mere om linien Tværfaglig IT i vores 12 uddannelseskatalog Samtidig har du mulighed for at læse om de forskellige kurser der udbydes i 13 kursusbogen Yderligere information om uddannelsen studieordning mv kan fås fra 14 Tværfaglig IT s hjemmeside på Roskilde Universitetscenter 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master Design Kommunikation og Medier 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English 12 Studieleder 13 Mere om DKM inter menu bund gif Design Kommunikation og Medier Masteruddannelsen i Design Kommunikation og Medier består af tre områder konstruktion interaktionsdesign og medier Uddannelsen beskæftiger sig med design og interaktivitet og med IT som socialt og kulturelt medie Desuden indeholder uddannelsen undervisning i mere håndværksorienterede fag Nogle af nøgleordene på uddannelsen er abstraktionsevne formidling argumentation og refleksion ligesom der lægges stor vægt på tværfaglig orientering Uddannelsen gør kandidaten i stand til at bruge den nye informationsteknologi til formidling Det kan eksempelvis være konstruktion og design af web og multimedieproduktioner 3 D animationer og spil Desuden giver uddannelsen indsigt i projektledelse grafisk design organisation brugervenlighed og interaktion Masteruddannelsen i Design Kommunikation og Medier udbydes af IT højskolen i samarbejde med Københavns Universitet og Danmarks Designskole Undervisningen foregår dels på IT højskolen og dels på Danmarks Designskole 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser Deltidsuddannel ser og enkeltfag 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Master 11 Diplom 12 Enkeltfag 13 Uddannelses katalog 14 Informations møde 15 Fleksibel undervisning inter menu bund gif En bred vifte af IT uddannelser og enkeltfag for erhvervsaktive Åben Uddannelse er rammen om IT højskolens mange tilbud om kompetencegivende efter og videreuddannelse på universitetsniveau Uddannelserne er specielt tilrettelagt for erhvervsaktive som har brug for et IT kompetenceløft samtidig med at de arbejder Derfor foregår flere og flere af IT højskolens kurser under Åben Uddannelse uden for almindelig arbejdstid om eftermiddagen aftenen i weekenden eller som undervisning via internettet Alle studerende under Åben Uddannelse har også mulighed for at følge IT højskolens dagkurser Hvis du har spørgsmål vedrørende IT højskolens uddannelser bedes du kontakte 16 studievejledningen 17 USEMAP inter icon2top gif opdateret 04 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag Master 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English 11 Design Kommunikation og Medier 12 Internetteknologi 13 Multimedie teknologi 14 Softwareudvikling 15 Fleksibel undervisning 16 Kurser foråret 2001 17 Optagelses betingelser inter menu bund gif Masteruddannelser På IT højskolen i København kan man tage fire masteruddannelser Design kommunikation og medier Internetteknologi Multimedieteknologi Softwareudvikling Masteruddannelsen er en tre årig deltidsuddannelse svarende til 1 5 års fuldtidsstudium Masteruddannelsen er opdelt i seks semestre og den er bygget op af obligatoriske kurser valgfri aktiviteter og et afsluttende projekt Den skemalagte undervisning gennemføres på to ugentlige hverdage hvert semester Dog kan den skemalagte undervisning for to af masteruddannelserne begrænses til n ugentlig hverdag ved at vælge et kursus med fleksibel undervisning som er en kombination af Internetbaseret fjernundervisning hjemmearbejde og tilstedeværelsesundervisning uden for almindelig arbejdstid se masteruddannelserne i internetteknologi og softwareudvikling Masteruddannelsen udbydes under lov om åben uddannelse og koster kr 12 500 pr semester i alt kr 75 000 kr for hele uddannelsen Optagelse på masteruddannelsen finder sted to gange om året 18 Ansøgningsfrist for næste optagelse ses her Der kræves en bacheloruddannelse eller tilsvarende kvalifikationer samt mindst to års erhvervserfaring for at blive optaget på masteruddannelsen på IT højskolen Alle bachelorgrader er adgangsgivende Hvis du har spørgsmål vedrørende masteruddannelsen bedes du kontakte 19 studievejledningen 20 USEMAP inter icon2top gif opdateret 04 05 2001 21 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master Internetteknologi 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English 12 Studieleder 13 Mere om INT inter menu bund gif Internetteknologi Masteruddannede inden for Internetteknologi vil have en grundliggende viden om de teknologier der tilsammen udgør internettet og kan udvikle driftssikre og effektive internetprogrammer Uddannelsen består af tre emneområder netværksteknologi internetprogrammel og internet i organisationer Netværksteknologi indeholder opbygning og organisering af netværk netværksprotokoller fejltolerance og datasikkerhed Herigennem opnås indsigt i netværkets basale funktioner Internetprogrammel giver indsigt i internetprogrammel og aktuelle teknologier og værktøjer og omhandler parallelle systemer distribueret databehandling databaser indlejrede og tidstro systemer operativsystemer algoritmer og datastrukturer korrekthed og pålidelighed Internet i organisationer beskæftiger sig med IT i geografisk spredte organisationer interaktionsdesign og økonomiske og organisatoriske aspekter af intra og internet samt giver indsigt i nye samarbejdsformer services og produkter Masteruddannelsen i internetteknologi udbydes i samarbejde med Danmarks Tekniske Universitet og Københavns Universitet For mere information kontakt 14 studievejledningen 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master 5 Internetteknologi Studieleder 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Thomas Hildebrandt Med til at sætte dagsordenen Studieleder Thomas Hildebrandt Internettet er unikt fordi det gør datalogiske problemstillinger meget mere synlige og relevante for den almindelige bruger F eks er net surfere afhængige af semantik og fortolkning hver gang de får vist en ny webside Og de hurtigste og smarteste søgemaskiner udnytter avancerede algoritmer og datastrukturer siger forskningsadjunkt Thomas Troels Hildebrandt som er leder af linien Internetteknologi på IT højskolen Teknologien udvikler og ændrer sig med stor hast Derfor er det vigtigt at en master i internetteknologi også forstår de bagvedliggende og varige principper for de teknologier der tilsammen udgør internettet Målet med uddannelsen er netop at uddanne IT praktikere som er i stand til selv at udvikle teknologien og bruge den i nye sammenhænge så vi ikke bare bliver passive bruger der overlader det til andre at sætte dagsordenen for internettet Det spændende ved IT højskolen er at de studerende har vidt forskellige faglige baggrunde Inden for Internetteknologi linjen har mange af de studerende en teknisk baggrund men der er også studerende som har læst religion historie og musik Det gælder om at de husker og udnytter den faglighed de kom med De studerende kan bruge deres IT overbygning til at bringe nye ideer til virkelighed inden for deres eget fag F eks lavede en studerende som før havde læst musik en slags online play room hvor musikere fra hele verden kunne spille sammen i real time Thomas Hildebrandt forventer at de studerende holder sig grundigt orienteret om hvad der foregår på IT området f eks via dagspressen og de hyppige forsknings og virksomhedsforedrag på IT højskolen Hvis man vil være med til at præge Internet området i fremtiden kræver det at man har øje for hvilke forventinger f eks erhvervslivet har til området hvilke samfundsmæssige tendenser som kan præge udviklingen osv Vi skal ved hjælp af uddannelse forskning og et samarbejde med erhvervslivet være med til at sætte dagsordenen på Internet området intet mindre Kort om Thomas Troels Hildebrandt 28 år uddannet datalog fra Århus Universitet i 1997 Forskningsområde Semantik Kategoriteori Parallelle og Mobile systemer 1998 Labaratory for Foundations of Computer Science University of Edinburgh Kortere ophold på McGill University Montreal 1999 Ph d i datalogi fra Aarhus Universitet BRICS grundforskningscenteret Siden 1999 ansat som forskningsadjunkt ved IT højskolen tilknyttet RCES forskningsprojektet 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master 5 Internetteknologi Mere om INT 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master Multimedie teknologi 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English 12 Studieleder 13 Mere om MMT inter menu bund gif Multimedieteknologi Masteruddannelsen i Multimedieteknologi kombinerer den nyeste teknologi i sammenhæng med andre og etablerede fagområder Det kan eksempelvis være taleteknologi billedanalyse computergrafik signalbehandling og interaktiv 3 D grafik i relation til medicinske og industrielle anvendelser Uddannelsen er naturvidenskabelig orienteret og fokuserer på principper for eksempelvis mønstergenkendelse automatisk billedanalyse og signalbehandling ligesom uddannelsen beskæftiger sig med teorier for human perception Samtidig lægger uddannelsen vægt på at bruge software som i forvejen bruges kommercielt eller forskningsorienteret i industrien De masteruddannede vil få et grundigt kendskab til basisteknologier og systemer og vil være i stand til både at vedligeholde og udvikle sådanne systemer Som færdiguddannet master i Multimedieteknologi vil du kunne komme til at arbejde med eksempelvis film tv medicinske systemer billed og lydtransmission industriel automatisering og geografiske informationssystemer Masteruddannelsen i Multimedieteknologi udbydes i samarbejde med 14 Danmarks Tekniske Universitet og 15 Københavns Universitet Det meste af undervisningen foregår på IT højskolen men enkelte kurser kan forekomme på DTU og KU 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master 5 Multimedie teknologi Studieleder 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Mads Nielsen Viden om teknologien bag IT løsninger Studieleder lektor Mads Nielsen Der er et stort behov for IT folk med dyb indsigt i teknologien bag IT løsninger så vi ikke bare bliver brugere af andre landes teknologi Vi skal skabe teknologi siger lektor Mads Nielsen Multimedielinien På linien er der både plads til studerende som kommer med en stor teknisk viden og dem der ikke gør Vi skal sørge for at bygge videre på de forskellige fundamenter som de studerende kommer med så deres forskellighed bliver en gevinst for fællesskabet Vi sørger så vidt muligt for at teorien bliver understøttet af praktiske øvelser så de studerende har en klar fornemmelse af hvad de kan skabe med deres viden Vi forsøger også at åbne valgmuligheder for de studerende med pegepinde til kurser og projekter på f eks DIKU og DTU så de har mulighed for yderligere specialisering Mads Nielsen giver et par eksempler på opgaver som en master på Multimedielinien kunne løse Når TV sender direkte fra Tour de France ville det være attraktivt at kunne skifte reklamerne ud langs vejene ved hjælp af multimedieteknologi så man hjemme i den danske stue så reklamer for en dansk bank mens de franske seere fik vist reklamer for god fransk vin Udvikling af en elektronisk vejviser i bilen kunne være en anden opgave mens filmindustrien har ledige pladser til dem der kan udvikle teknologien bag film som Jurassic Park eller Titanic Kort om Mads Nielsen 34 år uddannet datalog fra Københavns Universitet i 1992 PhD i 1995 fra KU I forbindelse med PhD var Mads Nielsen et år i Frankrig på Robotvis forskningslaboratoriet INRIA Efterfølgende forskning i et halvt år på universitetet i Utrecht Holland Siden 3D lab Panum Fra 1 april 1999 lektor på IT højskolen 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master 5 Multimedie teknologi Mere om MMT 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Læs mere om Multimedieteknologi Du kan læse mere om Multimedieteknologi i vores 13 uddannelseskatalog eller besøge deres 14 hjemmeside Samtidig har du mulighed for at læse om de forskellige kurser der udbydes i 15 kursusbogen 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master Softwareudvikling 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English 12 Søren Lauesen 13 Fritz Henglein 14 Mere om SWU inter menu bund gif Softwareudvikling Med en masteruddannelse i Softwareudvikling kan man skabe nye IT anvendelser tilpasse og udnytte eksisterende software og nyudvikle software samt løbende omstille sig til nye teknologier og metoder i IT sektoren Uddannelsen består af et kernepensum inden for områderne programmering softwareteknologi og systemudvikling samt en række valgfrie fag som dels udbydes på Softwarelinien og dels udbydes af andre linier på IT højskolen Uddannelsen i Softwareudvikling spænder fra fundamentale teorier om programudvikling til brug af anerkendte udviklingsværktøjer og fra teorier om forholdet mellem menneske og maskine til praktisk kendskab til brugergrænseflader Masteruddannelsen i Softwareudvikling sigter på at uddanne nogle af fremtidens softwareudviklere systemudviklere IT projektledere IT konsulenter IT rådgivere IT iværksættere undervisere og forskere på softwareområdet Masteruddannelsen i Softwareudvikling foregår hovedsageligt på IT højskolen og uddannelsen udbydes af IT højskolen i samarbejde med Den Kongelige Veterinær og Landbohøjskole 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master 5 Softwareudvikling Søren Lauesen 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Søren Lauesen IT rettet mod erhvervslivet Professor Søren Lauesen Det er utrolig spændende at være på IT højskolen og fra starten være med til at afstikke vejen så de nye generationer af IT folk lærer erhvervsrettet IT på højt niveau siger professor Søren Lauesen Softwareudvikling Vi skal sørge for at give hver af de studerende en IT ballast og forståelse som de både kan anvende straks og bygge videre på Søren Lauesen vægter også forskellige arbejdsformer så de studerende både arbejder i grupper og individuelt Det er vigtigt at man også kan præstere selv og stå på egne ben Det er et krav i erhvervslivet De studerende kommer med vidt forskellige uddannelser og IT forudsætninger og Søren Lauesen ser det som en stor udfordring at understøtte de forskellige baggrunde og kombinere de forskellige fagligheder så der kommer synergi ud af samarbejdet De studerende er nysgerrige og energiske og det giver et fantastisk studiemiljø som er enestående for IT højskolen siger Søren Lauesen Kort om Søren Lauesen 57 år uddannet cand scient i matematik og fysik i 1965 fra Københavns Universitet Siden 1962 har han haft arbejde i IT branchen bl a med udvikling af spilprogram for Piet Hein I 1965 Regnecentralen med udvikling af operativsystemer 1969 medstifter af den første IT uddannelse på Københavns Universitet I 1973 ansat hos Brown Boveri hvor han arbejdede med fjernstyring af el forsyningen i Danmark Siden ansat ved NCR som chefdesigner og fra 1985 professor ved Handelshøjskolen i København bl a medstifter af økonomi datalogi uddannelsen Fra 1999 professor ved IT højskolen 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master 5 Softwareudvikling Fritz Henglein 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Fokus på principper Lektor Fritz Henglein Fritz Henglein Uddannelserne i softwareudvikling på IT højskolen beskæftiger sig med hvordan man udvikler relevant og effektiv software af høj kvalitet På softwareudvikling får man indsigt i grundlæggende principper i programmering og i udviklingsprocessen og kombinerer dem med praktisk udøvelse siger lektor Fritz Henglein der er studieleder på softwareudvikling Fritz Henglein ser tre profiler inden for softwareudvikling Den ene er udviklingsprofilen hvor der er fokus på processer systemkrav og interaktion mellem mennesker Den anden profil har fokus på selve programmeringen og konstruktion af softwaresystemer Den tredje beskæftiger sig med det teoretiske og matematiske fundament for programmering og software Det er vigtigt at vi uddanner forskellige profiler som kan tilpasses helt individuelt Derfor er det også godt at vi kan tiltrække studerende med vidt forskellig baggrund lige fra det matematisk naturvidenskabelige over samfundsvidenskab til humaniora Ved at have studerende med vidt forskellig baggrund skaber vi synergi og bygger oven på værdifulde kompetencer Det giver også et særdeles interessant og spændende studiemiljø med motiverede og selvstændige studerende vurderer Fritz Henglein Kort om Fritz Henglein 39 år Master of Science Rutgers University New Jersey 1986 Research Scientist New York University 1987 89 IBM 1988 Ph D Rutgers University 1989 postdoc Utrecht University 1990 lektor Datalogisk Institut Københavns Universitet 1991 1999 direktør Hafnium ApS 1999 lektor og studieleder IT højskolen i København 1999 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master 5 Softwareudvikling Mere om SWU 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Læs mere om Softwareudvikling Du kan læse mere om Softwareudvikling i vores 13 uddannelseskatalog Samtidig har du mulighed for at læse om de forskellige kurser der udbydes i 14 kursusbogen 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master Fleksibel undervisning 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English 12 Kurser efterår 2000 inter menu bund gif Fleksibel undervisning Fleksibel undervisning bliver en del af diplomuddannelsen og masteruddannelserne i internetteknologi og softwareudvikling når de udbydes på IT højskolen fra forårssemestret 2001 Fleksibel undervisning betyder at studerende ikke behøver at møde op til forelæsninger og øvelser på IT højskolen to hele hverdage hver uge De studerende kan nøjes med at møde en hverdag samt enkelte aftener eller weekenddage og kan så sidde hjemme eller på arbejdet og studere på de tider af ugen der passer den enkelte bedst På IT højskolen udbydes fra forårssemesteret 2001 følgende former for fleksibel undervisning Fleksibel tilrettelagt kursus En vigtig del af et fleksibelt tilrettelagt kursus er dog at de studerende mødes med deres underviser flere gange i løbet kurset men uden for normal arbejdstid Et fleksibelt tilrettelagt kursus består således af en kombination af fokusperioder med undervisning via Internettet og 4 5 tilstedeværelsesdage på IT højskolen Et fleksibelt tilrettelagt kursus vil i fokusperioderne bestå af selvstændig læsning af teori opgaveløsning praktiske og teoretiske øvelser samt løbende elektronisk kommunikation og debat med underviseren og medstuderende Tilstedeværelsesdagene som ligger om aftenen eller i weekenden uden for normal arbejdstid vil bl a bestå af fremlæggelser debat evaluering samt forberedelse af næste fokusperiode Fleksibelt tilrettelagte kurser forløber som hovedregel over semestrets første 16 uger I forårssemesteret 2001 kan kurset Grundlæggende Programmering følges som fleksibelt tilrettelagt kursus IT højskolen forventer fra efteråret 2001 at udbyde yderligere et antal fleksibelt tilrettelagte kurser Projekt I såvel diplomuddannelsen som i masteruddannelserne indgår et eller flere projekter De fleste projekter vil være gruppeprojekter Projektbeskrivelsen udarbejdes i høj grad selvstændigt i den første del af projektperioden Et projekt gennemføres via en kombination af hjemmearbejde undervisning via Internettet møder med projektvejlederen og gruppemøder for studerende For mere information kontakt 13 studievejledningen 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master 5 Fleksibel undervisning Kurser efterår 2000 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master Kurser foråret 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master Optagelses betingelser 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Optagelsesbetingelser op masteruddannelserne Optagelse på masteruddannelserne finder sted to gange om året 12 Ansøgningsfrist for næste optagelse ses her Optagelse kan kun finde sted hvis de studerende opfylder nedenstående optagelseskrav Uddannelses og erhvervsmæssig baggrund Der kræves en bacheloruddannelse eller tilsvarende kvalifikationer samt mindst to års erhvervserfaring for at blive optaget på en masteruddannelse på IT højskolen Alle bachelorgrader er adgangsgivende Optagelse vil ske i henhold til IT højskolens optagelsesregler 13 Word 14 ren tekst som er under godkendelse For mere information kontakt 15 studievejledningen 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag Diplom 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English 11 Fagligt indhold 12 Fleksibel undervisning 13 Kurser forår 2001 14 Optagelses betingelser 15 Studieleder inter menu bund gif Diplomuddannelsen Diplomuddannelsen i informationsteknologi er en to årig deltidsuddannelse svarende til et års fuldtidsstudium Efter endt studium får du betegnelsen Diploma in Information Technology DIT Diplomuddannelsen er en videregående uddannelse som giver et grundlæggende og bredt kendskab til informationsteknologi Der findes ingen specielle linier på diplomuddannelsen men studerende kan inden for nærmere beskrevne rammer selv vælge kurser ud fra nuværende uddannelse erhvervserfaringer og egne interesser Det gør diplomuddannelsen til en individuel uddannelse hvor den studerende kan vælge at fokusere specielt på f eks opbygning af hjemmesider Internetprogrammering databasesystemer generel softwareudvikling mm Diplomuddannelsen i informationsteknologi kan kvalificere til at tage yderligere uddannelser på IT højskolen Diplomuddannelsen er opdelt i fire semestre De tre første semestre består af i alt fem kurser og et projekt mens det fjerde semester bruges til et afsluttende projekt Den skemalagte undervisning gennemføres på to ugentlige hverdage eller helt eller delvis som fleksibel undervisning Fleksibel undervisning betyder at studerende kan gennemføre den skemalagte undervisning uden for almindelig arbejdstid om eftermiddagen om aftenen i weekenden eller som netbaseret fjernundervisning Optagelse på diplomuddannelsen Diplomuddannelsen udbydes under lov om åben uddannelse og koster kr 12 500 pr semester i alt kr 50 000 kr for hele uddannelsen Optagelse på diplomuddannelsen finder sted to gange om året 16 Ansøgningsfrist for næste optagelse ses her Der kræves en kort videregående en mellemlang videregående en lang videregående uddannelse eller tilsvarende kvalifikationer samt mindst to års relevant erhvervserfaring efter den adgangsgivende uddannelse for at blive optaget på diplomuddannelsen Det forventes som hovedregel at ansøgere med en kort videregående uddannelse har en solid IT baggrund dvs at ansøgerne har erfaring med IT ud over brugerniveau Hvis du har spørgsmål vedrørende diplomuddannelsen så kontakt venligst 17 studievejledningen 18 USEMAP inter icon2top gif opdateret 04 05 2001 19 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Diplom Fagligt indhold 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English 12 Struktur inter menu bund gif Fagligt indhold i diplomuddannelsen i informationsteknologi Hvilken kompetence opnår du Personer med en diplomuddannelse i informationsteknologi vil kunne medvirke ved kravspecifikation design udvikling eller udvælgelse af de forskellige typer af anvendelsesprogrammer og standardsoftware F eks vil diplomuddannelsen give kompetence til deltage i opbygning og vedligeholdelse af virksomheders og organisationers intranet og eksterne hjemmeside herunder af systemer til elektronisk kommunikation e handel e læring mm Diplomuddannelsen vil typisk passe ind i gabet mellem IT brugere og IT afdelingen eller eksterne IT konsulenter Uddannelsen vil således også give mulighed for at deltage i løbende problemløsning fejlfinding vedligeholdelse og videreudvikling af de etablerede systemer Uddannelsen indeholder såvel hands on træning af informationsteknologiske færdigheder som gennemgang og vurdering af væsentlige metoder og teorier Uddannelsen kan f eks spænde fra fundamentale teorier om programudvikling til brug af anerkendte udviklingsværktøjer og fra teorier om forholdet mellem menneske og maskine til praktisk kendskab til brugergrænseflader For datamatikere eller andre med en IT uddannelse vil diplomuddannelsen give mulighed specialisering inden for f eks avancerede datastrukturer algoritmer objektorienteret programmering systemudvikling og IT projektledelse med henblik på efterfølgende at tage en master eller kandidatuddannelse på IT højskolen inden for f eks softwareudvikling Da diplomstuderende skal have mindst to års erhvervserfaring kommer man som diplomstuderende med en ballast af erfaringer fra erhvervslivet I diplomuddannelsen kan denne tilknytning til erhvervslivet bl a udnyttes hvis de studerende laver projekter som relaterer sig til den virksomhed eller organisation som de arbejder i Det kan gøre den teoretiske IT viden mere nærværende og interessant og virksomheden kan drage nytte af at have en medarbejder på uddannelse For mere information kontakt 13 studievejledningen 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Diplom 5 Fagligt indhold Struktur 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Diplomuddannelsens struktur Diplomuddannelsen er opdelt i fire semestre 1 semester Kursus Kursus 2 semester Kursus Projekt 3 semester Kursus Kursus 4 semester Afsluttende projekt Diplomuddannelsen består således af Fire kurser der kan vælges blandt diplomuddannelsens kernekurser nævnt nedenfor Et projektforløb Et valgfrit kursus som kan vælges frit blandt alle kurser i IT Cs kursusbog Et afsluttende projekt Diplomuddannelsens kernekurser er Introduktion til Informationsteknologi Grundlæggende Programmering gennemføres som fleksibel undervisning fra foråret 2001 Internetprogrammering Databasebaseret Web publicering Videregående Programmering for Praktikere Design af Brugergrænseflader og Data Databasesystemer Systemudvikling IT projektledelse Eksempel på kursusvalg for ikke IT kyndige På 1 semester vælges to kurser Introduktion til Informationsteknologi og Grundlæggende Programmering På 2 semester vælges kurset Design af Brugergrænseflader og Data samt et erhvervsrelateret projekt med udgangspunkt i programmeringskurset på 1 semester På 3 semester vælges et helt valgfrit kursus fra IT C s kursusbog Desuden vælges et af følgende kurser Systemudvikling Videregående Programmering for Praktikere Internetprogrammering eller Databasebaseret Web publiceing På 4 semester gennemføres et afsluttende projekt som udfærdiges i samarbejde med en erhvervsvirksomhed Eksempel på kursusforløb for IT kyndige f eks datamatikere eller datanomer På 1 semester vælges enten kurset Design af Brugergrænseflader og Data eller kurset Databasesystemer Desuden vælges kurset Internetprogrammering eller et videregående programmeringskursus f eks Objektorienteret Programmering fra IT C s kursusbog På 2 semester vælges kurset IT projektledelse eller et kursus indenfor softwareudvikling se IT C s kursusbog Desuden gennemføres et erhvervsrelateret projekt der tager udgangspunkt i programmeringskurset på 1 semester På 3 semester vælges et helt valgfrit kursus fra IT C s kursusbog Desuden vælges kurset Databasesystemer eller kurset Introduktion til Algoritmik og Datastrukturer eller et andet kursus inden for fagområdet klassisk datalogi På 4 semester gennemføres et afsluttende projekt som udfærdiges i samarbejde med en erhvervsvirksomhed Studerende kan vælge kurser blandt dem som udbydes i det enkelte semester IT højskolen kan undlade at igangsætte udbudte kurser hvis der er for få tilmeldte eller ved andre særlige omstændigheder For mere information kontakt 13 studievejledningen 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Diplom Fleksibel undervisning 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Fleksibel undervisning Fleksibel undervisning ligger uden for almindelig arbejdstid om eftermiddagen om aftenen i weekenden eller som netbaseret fjernundervisning I efterårssemesteret 2001 vil antallet af fleksible kurser blive lige knap 10 IT højskolen øger for hvert semester antallet af fleksible kurser for erhvervsaktive som ønsker at studere uden for almindelig arbejdstid IT højskolens fleksible undervisning betyder at diplom og masterstuderendes ikke behøver at møde op til forelæsninger og øvelser på IT højskolen to hele hverdage hver uge Afhængig af kursusvalg vil de studerende typisk kunne lægge dele af eller måske hele deres skemalagte undervisning om eftermiddagen om aftenen i weekenden eller som netbaseret undervisning På IT højskolen udbydes følgende former for fleksibel undervisning Netbaseret undervisning Netbaseret undervisning består af en kombination af fokusperioder med undervisning via internettet og 4 5 tilstedeværelsesdage på IT højskolen Et kursus udbudt som netbaseret undervisning vil i fokusperioderne bestå af selvstændig læsning af teori opgaveløsning praktiske og teoretiske øvelser samt løbende elektronisk kommunikation og debat med underviseren og medstuderende Tilstedeværelsesdagene som ligger om aftenen eller i weekenden uden for normal arbejdstid vil bl a bestå af forelæsninger fremlæggelser debat evaluering samt forberedelse af næste fokusperiode Netbaseret undervisning forløber som hovedregel over semestrets første 16 uger I efterårssemesteret 2001 kan bl a kurset Grundlæggende Programmering følges som netbaseret undervisning Medio maj 2001 vil den samlede oversigt over netbaseret undervisning blive vist her på IT højskolens hjemmeside Vi forventer at øge udbudet af netbaseret undervisning de følgende semestre Kursus med ugentlig skemalagt undervisning som gennemføres uden for almindelig arbejdstid om eftermiddagen aftenen eller i weekenden IT højskolen tilrettelægger flere og flere kurser under Åben Uddannelse hvor den skemalagte undervisning ligger uden for almindelig arbejdstid om eftermiddagen aftenen og i weekenden Medio maj 2001 vil den samlede oversigt over sådanne specielt tilrettelagte kurser blive vist her på IT højskolens hjemmeside Vi forventer at øge udbudet af sådanne kurser de følgende semestre Projekt I såvel diplomuddannelsen som i masteruddannelserne indgår et eller flere projekter De fleste projekter vil være gruppeprojekter Projektbeskrivelsen udarbejdes i høj grad selvstændigt af gruppen i den første del af projektperioden Et projekt gennemføres via en kombination af hjemmearbejde undervisning via internettet møder med projektvejlederen og gruppemøder for studerende For mere information kontakt 12 studievejledningen 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Diplom Kurser forår 2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif REFRESH 0 sec 12 http www it c dk kursusbog Denne side sender dig videre til IT Højskolens kursusbog Hvis dette ikke sker benyt dette link 13 http www it c dk kursusbog 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Diplom Optagelses betingelser 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Optagelsesbetingelser på diplomuddannelsen Optagelse på diplomuddannelsen finder sted to gange om året 12 Ansøgningsfrist for næste optagelse ses her Optagelse kan kun finde sted hvis de studerende opfylder nedenstående optagelseskrav Uddannelses og erhvervsmæssig baggrund Der kræves som hovedregel en videregående uddannelse eller tilsvarende kvalifikationer samt mindst to års relevant erhvervserfaring for at blive optaget på diplomuddannelsen i informationsteknologi på IT højskolen i København Den videregående uddannelse kan være en kortere videregående uddannelse en mellemlang videregående uddannelse eller en lang videregående uddannelse f eks bachelor eller kandidatgrad fra et universitet Det forventes som hovedregel at ansøgere med en kortere eller mellemlang videregående uddannelse har en solid IT baggrund dvs at ansøgerne har erfaring med IT ud over brugerniveau Optagelse vil ske i henhold til IT højskolens optagelsesregler 13 Word 14 ren tekst som er under godkendelse For mere information kontakt 15 studievejledningen 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Diplom Studieleder 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Jens Christian Godskesen Studieleder lektor Jens Christian Godskesen De studerende kommer med erfaringer fra erhvervslivet som vi bygger IT viden på Vi skal give dem en bedre ballast til forståelse af teknologierne og hvorledes disse designes De skal have aha oplevelser så de tænker nå det er sådan teknologien virker De skal i højere grad blive i stand til at bedømme hvilke muligheder teknologien giver men også begrænsningerne siger lektor Jens Christian Godskesen diplomuddannelsen Et eksempel kunne være at blive mere kvalificeret til at vurdere og anbefale hvilken IT struktur der er den bedst egnede til at understøtte en bestemt organisationsmodel i en virksomhed På diplomuddannelsen er der meget koncentrerede undervisningsforløb og en hel del pensum som skal klares derhjemme eller i gruppearbejde Det ligger i kortene at der skal være en nøje sammenhæng mellem de studerendes erhvervsliv og studiet I de tilfælde hvor det kan lade sig gøre vil de studerende lave projekter som relaterer sig til den virksomhed de arbejder i Det gør den teoretiske viden nærværende og interessant og virksomheden drager nytte af at have en medarbejder på uddannelse Kort om Jens Christian Godskesen 37 år uddannet datalog fra Aalborg Universitet i 1988 1989 1991 ansat på Teleteknisk Forskningslaboratorium 1994 Ph D fra Aalborg Universitet 1994 1996 ansat hos Tele Danmark Research Adjunkt på DTU 1998 1999 lektor på IT højskolen 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag Enkeltfag 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Enkeltfag under Åben Uddannelse IT højskolens enkeltfagskurser under Åben Uddannelse henvender sig i høj grad til erhvervsaktive som har brug for et bredere kendskab til informationsteknologi men ikke ønsker at tage en længerevarende kandidat master eller diplomuddannelse For at blive optaget kræves mindst en videregående uddannelse på bachelorniveau eller tilsvarende Klik på linket 11 enkeltfag under Åben Uddannelse for at læse mere om kursusformen kursusindhold og optagelsesbetingelser Du kan her se en 12 samlet liste over de enkeltfagskurser som IT højskolen udbyder under Åben Uddannelse i foråret 2001 men hvor ansøgningsfristen var den 15 19 eller 26 januar 2001 Der kan ikke ansøges om optagelse på disse kurser mere IT højskolen vil medio maj 2001 annoncere de ca 60 forskellige enkeltfagskurser som der kan søges optagelse på til eftrårssemesteret 2001 Tilmeld dig evt IT højskolens 13 elektroniske nyhedstjeneste hvor de kommende enkeltfagskurser vil blive omtalt Hvis du vil vide mere Hvis du har spørgsmål vedrørende enkeltfagskurser så kontakt venligst 14 studievejledningen 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag Uddannelses katalog 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Uddannelseskatalog REFRESH 0 sec 11 http www it c dk pub db 454 html Denne side sender dig videre til IT Højskolens uddannelseskatalog Hvis dette ikke sker benyt dette link 12 http www it c dk pub db 454 html 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag Informations møde 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Informationsmøde Tirsdag den 15 maj 2001 kl 19 00 21 00 er der informationsmøde om IT højskolens program for Åben Uddannelse Kom og hør mere om enkeltfagskurser diplom og masteruddannelserne adgangskrav ansøgningsprocedure og få en snak med de uddannelsesansvarlige Sted IT højskolen i København Glentevej 65 lokale 0 10 Mere information Kontakt 11 studievejledningen 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag Fleksibel undervisning 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Fleksibel undervisning Fleksibel undervisning betyder at studerende ikke behøver at møde op til forelæsninger og øvelser på IT højskolen to hele hverdage hver uge De studerende kan nøjes med at møde en hverdag samt enkelte aftener eller weekenddage og kan så sidde hjemme eller på arbejdet og studere på de tider af ugen der passer den enkelte bedst På IT højskolen udbydes fra forårssemesteret 2001 følgende former for fleksibel undervisning Fleksibel tilrettelagt kursus En vigtig del af et fleksibelt tilrettelagt kursus er dog at de studerende mødes med deres underviser flere gange i løbet kurset men uden for normal arbejdstid Et fleksibelt tilrettelagt kursus består således af en kombination af fokusperioder med undervisning via Internettet og 4 5 tilstedeværelsesdage på IT højskolen Et fleksibelt tilrettelagt kursus vil i fokusperioderne bestå af selvstændig læsning af teori opgaveløsning praktiske og teoretiske øvelser samt løbende elektronisk kommunikation og debat med underviseren og medstuderende Tilstedeværelsesdagene som ligger om aftenen eller i weekenden uden for normal arbejdstid vil bl a bestå af fremlæggelser debat evaluering samt forberedelse af næste fokusperiode Fleksibelt tilrettelagte kurser forløber som hovedregel over semestrets første 16 uger I forårssemesteret 2001 kan kurset Grundlæggende Programmering følges som fleksibelt tilrettelagt kursus IT højskolen forventer fra efteråret 2001 at udbyde yderligere et antal fleksibelt tilrettelagte kurser Projekt I såvel diplomuddannelsen som i masteruddannelserne indgår et eller flere projekter De fleste projekter vil være gruppeprojekter Projektbeskrivelsen udarbejdes i høj grad selvstændigt i den første del af projektperioden Et projekt gennemføres via en kombination af hjemmearbejde undervisning via Internettet møder med projektvejlederen og gruppemøder for studerende For mere information kontakt 11 studievejledningen 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master 5 Design Kommunikation og Medier Studieleder 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif John Paulin Hansen Praktikere med indsigt Studieleder lektor John Paulin Hansen Design kommunikation og medier er en intensiv masteruddannelse som gør det muligt at arbejde med alle former for digitale medier siger lektor John Paulin Hansen der leder linien for Design kommunikation og medier Samtidig bliver man god til konceptudvikling målgrupper og implementering af et projekt og man får en dybere indsigt i de digitale mediers muligheder både nu og i fremtiden På Design kommunikation og medier lægges der vægt på at få indsigt i teknologien bag de mange muligheder og på evnen til at reflektere teknisk og analytisk over IT som medie Endelig er det vigtigt at få en viden om ITs samfundsmæssige sociologiske og organisatoriske konsekvenser og muligheder Uddannelsen i Design kommunikation og medier kan i høj grad bruges inden for webkommunikation men kan også inden for andre elektroniske medier så som DVD CD rom film lyd og video Endelig kan en Masteruddannelse i Design kommunikation og medier føre til at arbejde med offentlige edb baserede servicesystemer og store databasesystemer Det har været utrolig spændende og udfordrende at være med til at etablere linien i Design kommunikation og medier på IT højskolen lyder det fra John Paulin Hansen Og så er det inspirerende og motiverende at have studerende der er dygtige og engagerede slutter han Kort om John Paulin Hansen 41 år studieleder og lektor på IT højskolen cand psyk Århus Universitet 1984 ph d Århus Universitet 1992 forsker og seniorforsker Forskningscenter Risø 1992 rektor multimedieskolen Space Invaders 1996 IT højskolen 1999 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Deltidsuddannel ser og enkeltfag 4 Master 5 Design Kommunikation og Medier Mere om DKM 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Mere om DKM 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Om IT højskolen Ørestads byggeriet 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Vinderprojektet 11 Betænkning inter menu bund gif IT højskolens ny bygning i Ørestaden Henning Larsens Tegnestue har i samarbejde med Carl Bro vundet den indbudte konkurrence om en ny bygning i Ørestaden til IT højskolen i København i juni 2000 IT højskolen skal placeres i den nordøstlige del af Ørestaden imellem Københavns Universitets første nye byggeafsnit og det kommende DR byggeri Byggeriet der skal opføres over flere etaper bliver i første omgang på ca 19 000m2 og skal stå klar til indflytning 1 juni 2003 Højskolen skal rumme undervisningslokaler og forskerkontorer og senere udbygges med en forskerpark Det har været afgørende for dommerkomit en at vælge et projekt der passer ind i den overordnede plan for Ørestaden Således har man bl a lagt stor vægt på at det valgte projekt er åbent og indbydende også for andre end skolens daglige brugere og at projektet desuden afspejler det karakteristiske for en uddannelsesinstitution der beskæftiger sig med et så nutidigt og væsentligt emne som informationsteknologi IT højskolen placeres ud mod den ca 800m lange kanal der binder de nye institutioner i denne del af Ørestaden sammen Henning Larsens projekt har form som et kæmpemæssigt H To parallelle bygningskroppe svøbt i en metalbeklædning omslutter et panoptisk rum ud imod hvilket man har trukket en lang række transparente skuffer i forskellig længde Centralrummet der har en fin kontakt med kanalmiljøet ligger imellem to bytorve et nordligt og et sydligt og rummet inviterer på naturlig måde til færdsel igennem huset Byggeriet giver forventninger om at det vil kunne afspejle det progressive fremadrettede IT miljø på en måde der som IT højskolen selv forener teknologi design og mennesker Til konkurrencen var indbudt følgende 5 arkitektfirmaer Dissing Weitling KHR AS arkitekter Henning Larsens Tegnestue Søren Robert Lund Schmidt Hammer Lassen 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Om IT højskolen 3 Ørestads byggeriet Vinderprojektet 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Vinderprojektet for IT højskolens ny domicil i Ørestaden Vinderprojektet er tegnet af Henning Larsens Tegnestue i samarbejde med Carl Bro Fra oven sitplan IT jpg IT højskolen set fra oven med nord pegende opad Det sorte bånd til venstre er kanalen IT højskolens 1 etape på 19 000m2 udgøres af det store H nederst til venstre i planen Længen umiddelbart øst derfor er IT højskolens 2 etape 10 000m2 Resten er den planlagte IT forskerpark IT højskolens 1 etape består af to længer der er forbundet af et centralrum Adgang sker ad ramper fra nord og syd Nærmeste nabo mod nord er Københavns Universitet Nærmeste nabo mod syd er Danmarks Radio Fra vest A FACADE1200 jpg IT højskolen set fra vest dvs fra kanalsiden Bygningen er seks etager høj og ligger på et dæk Den nordlige ende til venstre på illustrationen hæver sig op i 1 sals højde Det orange område er auditoriet Umiddelbart til højre derfor ses kantinen der fortsætter uden for bygningen på den sydligste del af dækket Fra nordvest main 45 CMYK jpg IT højskolen set fra nordvest Taget de nordlige og de sydlige facader er svøbt i metal mens der er glas i loftet af centralrummet og i alle øst og vestvendte facader Under ramperne i nord og syd er der cykelparkering som man kommer til ad ramper i ramperne Centralrummet 50 sketch2 jpg Centralrummet som det tager sig ud fra kantinen dels i skitseform dels i computergrafik Glasburene er beregnet som lokaler hvor man går hen hvis man har lyst til at møde andre low 20 CMYK jpg En lang trappe op gennem centralrummet giver mulighed for en iscenesat vandring op gennem bygningen box 20 RGB jpg Glasburene set fra en af de midterste etager 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Om IT højskolen 3 Ørestads byggeriet Betænkning 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Dommerbetænkning Dommerbetænkningen for byggeriet findes 11 her 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Om IT højskolen Nøgletal 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Nøgletal Antal indskrevne studerende 1999 2000 2001 2002 måltal måltal måltal Kandidatuddannelser 119 405 616 948 Masteruddannelser 15 33 155 291 Diplomuddannelsen 0 36 171 318 Ansatte årsværk 1999 2000 2001 2002 måltal måltal måltal Forskere og undervisere excl eksterne lektorer 8 3 31 9 58 5 90 0 Administrativ support til undervisning 1 3 3 0 6 0 6 0 Anden Admin 6 8 13 7 24 5 32 5 Finanslovsbevilling mio kr 1999 2000 2001 2002 Finansloven 39 0 61 0 83 1 95 2 Oprettelsesår 1999 10 USEMAP inter icon2top gif opdateret 04 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Om IT højskolen Virksomheds regnskaber 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Virksomhedsregnskaber Her på siden finder du IT højskolens virksomhedsregnskaber for 1999 og 2000 Virksomhedsregnskab 2000 10 I HTML format 11 I Word format 12 I PDF format Virksomhedsregnskab 1999 13 I HTML format 14 I Word format 15 I PS format 16 I PDF format 17 USEMAP inter icon2top gif opdateret 04 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Om IT højskolen Vedtægter 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Vedtægter for IT højskolen i København Vedtægterne for IT højskolen i København findes 10 her 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Om IT højskolen Billedarkiv 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Billedarkiv REFRESH 0 sec 10 http www it c dk billedarkiv Denne side sender dig videre til IT Højskolens billedarkiv Hvis dette ikke sker klik venligst her på dette link 11 http www it c dk billedarkiv 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Om IT højskolen At finde IT C 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif At finde IT C REFRESH 0 sec 10 http www it c dk pub uk db 179 html Denne side sender dig videre til en side hvor du kan se hvordan du kommer til IT C Hvis dette ikke sker klik venligst her på dette link 11 http www it c dk pub uk db 179 html 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen Links 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English inter menu bund gif Links Uddannelsesinstitutioner 9 Københavns Universitet 10 Roskilde Universitetscenter 11 Århus Universitet 12 Ålborg Universitet 13 Syddansk Universitet 14 Handelshøjskolen i København 15 Danmarks Tekniske Universitet 16 Den Kongelige Veterinær og Landbohøjskole 17 Danmarks Pædagogiske Universitet 18 Danmarks Designskole 19 Malm H gskola 20 Lund Universitet 21 IT Vest 22 LinuxLab Linuxlaberatorium på IT Højskolen Ministerier styrelser og lign 23 IT og Forskningsministeriet 24 Undervisningsministeriet 25 SU styrelsen 26 Center for Information om videregående uddannelser 27 Instituttet for fremtidsforskning 28 Teknologirådet 29 Center for IT forskning 30 Center for teknologistøttet undervisning 31 Learning Lab Denmark 32 Copenhagen Capacity Københavns officielle investeringsbureau Brancheorganisationer 33 IT brancheforeningen 34 Teknologisk institut 35 PROSA 36 Teknisk Landsforbund 37 Symbion forskerpark 38 Inkubator IT lab 39 Teknologisk innovations center Studenterorganisation 40 USG 41 BEST 42 Studenterhuset 43 Studenterforeningen 44 Studienet Danmark 45 Bøsse Lesbiske universitetsstuderende 46 Handicappede Studerende og Kandidaters IT medier 47 DRs IT og videnskabsportal Orbitalen 48 Computerworld online 49 Comon dk Udlandet 50 MIT Webfora for studerende 51 Studerende Online 52 Studenterhjaelpen dk Events og lign 53 Reboot 54 Naturvidenskabsfestivallen 55 WCCE 2001 Networking the Learner 56 USEMAP inter icon2top gif opdateret 04 05 2001 57 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat Informationsdag 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Informationsdag om kandidatuddannelsen Den 18 maj 2001 er der to informationsmøder om kandidatuddannelserne Her kan du høre mere om IT højskolen uddannelser og linjer om adgangskrav om ansøgningsprocedure og samtidig tage en snak med en studievejleder Tid Kl 10 12 og kl 13 15 Sted IT højskolen i København Glentevej 65 lokale 0 10 Mere information Kontakt 11 studievejledningen 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies 4 Courses Constructive Logic Project F2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Constructive Logic Project F2001 In spring 2001 Lars Birkedal is giving a PhD course entitled Constructive Logic Project You can find a description of the course 12 here 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Ph D studies 4 Courses Streaming video for wireless networks F2001 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Streaming video for wireless networks May 17 23 2001 at the IT University of Copenhagen Course objective The objective of this course is to introduce the major standards and signal processing methods necessary for video streaming systems in wireless networks This includes the MPEG family of standards for transporting video images audio speech and graphics through a network and carrying out joint source and channel coding for a wireless channel The course is scheduled as a series of lectures before noon and exercise work on selected course material in the afternoon Course period Thursday 17 Wednesday 23 May 2001 The lecturer 12 Dr Liu is a Professor of Electrical and Computer Engineering Department and Institute for Systems Research of University of Maryland College Park He has a PhD degree from the University of California Los Angeles in electrical engineering His research interests span broad aspects of signal processing and communications including signal processing algorithms and architectures image and video processing wireless communications and networking and medical and biomedical technology He holds five US patents and has published over 200 papers Among others he received the Best Paper Award from IEEE 50th Vehicular Technology Conference IEEE VTC Amsterdam 1999 References 1 J Chen U V Koc K J Ray Liu Design of Digital Video Coding Systems To appear Marcel Dekker 2 M T Sun A Reibman Compressed Video over Networks Macel Dekker 2001 3 K Ngan C W Yap K T Tan Video Coding for Wireless Communication Systems Marcel Dekker 2001 4 Research papers Course schedule Thursday May 17 Source Coding for Video Friday May 18 Recent Multimedia Standards MPEG 1 2 4 and H 263 Monday May 21 Wireless Channel Model Channel Coding Joint Source and Channel Coding Error Concealment Error Resilience Tuesday May 22 Advanced Topics Secure Multicast Communications Wednesday May 23 Advanced Topics Course participants The course is targeted for Ph D students in Computer Science Informatics or Electrical Engineering advanced level Master of Science students in the above areas and participants from industry Some exercises use the c programming language Course credit 2 ECTS European Credit Transfer System points Course site IT University of Copenhagen Glentevej 67 2400 Copenhagen Denmark www it c dk Registration and further information Please contact 13 Lotte Møller for registration To a limited extent she can assist in booking accomodation The lectures are free of charge 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Research Publications inter vandret gif 3 Courses 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter grey vert r gif inter grey bund gif Optimal Static Range Reporting in One Dimension 10 Stephen Alstrup 11 Gerth S Brodal 12 Theis Rauhe November 2000 Technical report TR 2000 3 in IT University Technical Report Series November 2000 Available as 13 PostScript 14 PDF 15 USEMAP inter icon2top gif opdateret 11 10 2000 16 wwwadm it c dk 1 IT højskolen 2 Research Publications inter vandret gif 3 Courses 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter grey vert r gif inter grey bund gif Satisfiability Checking Using Boolean Expression Diagrams 10 Poul Frederick Williams 11 Henrik Reif Andersen 12 Henrik Hulgaard October 2000 Abstract In this paper we present a method for determining satisfiability of formulae represented by Boolean Expression Diagrams The method uses the upone algorithm for splitting on variables and rewriting rules instead of unit propagation We show how to combine the method with BDD construction In this way our method can be seen as bridging the gap between standard SAT solvers and BDD construction Technical report TR 2000 1 in IT University Technical Report Series October 2000 Available as 13 PostScript gzip ed 14 PostScript 15 PDF and 16 BibTeX 17 USEMAP inter icon2top gif opdateret 11 10 2000 18 wwwadm it c dk 1 IT højskolen 2 Research Publications inter vandret gif 3 Courses 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter grey vert r gif inter grey bund gif Greedy Model Checking 10 Poul Frederick Williams 11 Antoine Rauzy October 2000 Abstract We present a model checking method which greedily explores the state space Using ideas similar to greedy satisfiability checking our method tries to fit a path to match a temporal specification The advantages of this method is that we do not need any quantifications we do not calculate a reachable neither forward nor backward set of states and the memory requirements are quite small Technical report TR 2000 2 in IT University Technical Report Series October 2000 Available as 12 PostScript gzip ed 13 PostScript 14 PDF and 15 BibTeX 16 USEMAP inter icon2top gif opdateret 11 10 2000 17 wwwadm it c dk 1 IT højskolen 2 Forskning Eksterne undervisere 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Interview inter menu bund gif Eksterne undervisere En af de vigtigste måder IT højskolen knytter kontakter til andre institutioner og virskomheder på er gennem ansættelse af eksterne lektorer IT højskolen satser på at opbygge et stort og stærkt netværk af eksterne lektorer Det omfatter allerede eksterne lektorer fra bl a Tele Danmark Danmarks Radio og Lund Universitet se profil For at blive ekstern lektor skal man 1 have faglig ekspertise inden for et gerne anvendelsesorienteret område af IT 2 være kandidat eller lignende 3 være i stand til at tilrettelægge og gennemføre undervisning vejlede projekter og føre op til eksamen på kandidatniveau Opslag af stillinger samt uopfordrede ansøgninger se 11 Stillinger 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Forskning 3 Eksterne undervisere Interview 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Ekstern lektor Lise Jensen Jeg underviser i 3 D modellering hvordan man digitalt opbygger en 3 D model fortæller Lise Jensen der har et eksternt lektorat og er tilknyttet Design kommunikation og medier men ellers er adjunkt på Lund Universitet 3 D modellering bruges blandt andet til animationer som blandt andet bruges i film til Virtual Reality hvor man kan bevæge sig frit i et kunstigt univers og til faste billeder hvor man skal fotografere noget som eksempelvis ikke eksisterer i virkeligheden Det bruges en del i reklamer Det er sjovt og inspirerende at undervise på IT højskolen siger Lise Jensen Der er en god stemning og de studerende er vidende aktive og interesserede så som underviser får man helt klart et modspil Lise Jensen er 43 år og oprindelig uddannet arkitekt Hun har også arbejdet som multimediedesigner inden hun blev adjunkt på Lund Universitet Til efteråret udbyder hun igen et kursus i 3 D modellering og udbyder også et projektkursus hvor de studerende skal arbejde praktisk med 3 D modeller 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Forskning Interview 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Lars Birkedal Grundforsker i beregnelighed Lars Birkedal startede som forskningsadjunkt på IT højskolen 15 marts efter at være kommet hjem fra USA hvor han tog en Ph D på Carnegie Mellon University i Pittsburgh Jeg forsker i matematisk logik teoretisk datalogi typeteori og beregnelighed fortæller Lars Birkedal Populært sagt arbejder jeg med hvad der kan beregnes og hvordan man omsætter det til computersprog Ved siden af sin forskning forbereder Lars Birkedal sin kommende undervisning I efterårssemestret udbyder han kurser i semantik for programmeringssprog og kategoriteori Samtidig er han i samarbejde med professorer fra DIKU og DTU ved at forberede en stor international konference i Datalogi og logik som skal finde sted i København i 2002 og hvor der kommer 800 forskere Jeg søgte stillingen på IT højskolen fordi miljøet på skolen er ambitiøst også på internationalt plan og fordi jeg godt kunne tænke mig at arbejde et sted hvor der var kort vej fra den teoretiske forskning til den praktiske anvendelse Og så er IT højskolen meget internationalt orienteret siger Lars Birkedal Kort om Lars Birkedal 30 år cand scient i datalogi 1994 HD i organisation 1994 Ph D Carnegie Mellon University Pittsburgh USA 1999 Fra 2000 forskningsadjunkt IT højskolen 10 USEMAP inter icon2top gif opdateret 04 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om DKM Projekter 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Projekter På DKM afsluttes hvert semester med projektarbejde hvor de studerende går sammen i grupper om et projekt af 4 ugers varighed Projekterne omfatter både en teoretisk del i form af en skriftlig rapport og en praktisk del i form af f eks en hjemmeside et program eller lign Projekterne bedømmes med karakterer efter 13 skalaen ved en afsluttende eksamen Her er nogle eksempler på DKM studenterprojekter Underfladen 13 Produkt HTML og 14 rapport Word Se også nogle eksempler på fiktive DKM projektbeskrivelser 15 Projektbeskrivelse 1 16 Projektbeskrivelse 2 17 Projektbeskrivelse 3 18 Projektbeskrivelse 4 Samt et lille 19 videoklip fra projektarbejdet på DKM QuickTime format 20 QuickTime download 21 USEMAP inter icon2top gif opdateret 04 05 2001 22 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om DKM Ansatte 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif Ansatte ved DKM Lektor Ph D 13 Anker Helms Jørgensen IT højskolen Glentevej 67 lokale 2 22 2400 NV a 38 16 88 88 a dir 38 16 88 28 14 anker it c dk Ekstern lektor Bjarne Sandstrøm Allerød Gymnasium Rådshusvej 6 3450 Allerød a 48 17 75 55 15 bjsa post2 tele dk Ekstern lektor Christian Høyer Pedersen 16 chp internet dk Ekstern lektor Claus Jensen ABC Public Relations A S Bredgade 73 1260 K a 33 13 14 33 17 cj abc pr dk Ekstern lektor Claus Thor Nielsen Egmont Online Halmtorvet 29 1700 V a 33 26 69 00 a dir 33 26 69 43 18 claus thor onl egmont com Ekstern lektor Denis Virlogeux Danmarks Designskole Strandboulvd 47 2100 Ø a 35 27 75 00 a dir 35 27 75 73 19 devi dk designskole dk Amanuensis Ida Engholm IT højskolen Glentevej 67 lokale 4 02 2400 NV a 38 16 88 88 a dir 38 16 88 71 20 ie it c dk Ph D studerende 21 Jesper Juul IT højskolen Glentevej 67 lokale 2 46 2400 NV a 38 16 88 88 a dir 38 16 88 41 22 jjuul it c dk Studieleder lektor Ph D 23 John Paulin Hansen IT højskolen Glentevej 67 lokale 4 02 2400 NV a 38 16 88 88 a dir 38 16 88 25 24 paulin it c dk Amanuensis Klaus Bjerager IT højskolen Glentevej 67 lokale 4 02 2400 NV a 38 16 88 88 a dir 38 16 88 92 25 designco post4 tele dk Ekstern lektor Klaus Bruhn Jensen Institut for Film og Medievidenskab Njalsgade 80 2300 S a 35 32 88 11 a dir 35 32 81 04 26 kbj hum ku dk Ph D studerende 27 Lisbeth Klastrup IT højskolen Glentevej 67 lokale 2 46 2400 NV a 38 16 88 88 a dir 38 16 88 32 28 klastrup it c dk Ekstern lektor Lise Jensen p 00 46 435 44 03 40 29 Lise Jensen telia com AC fuldmægtig 30 Lise Louv IT højskolen Glentevej 67 lokale 3 20 2400 NV a 38 16 88 88 a dir 38 16 88 60 31 louv it c dk Ekstern lektor Ph D Margit Neisig TeleDanmark Mediecenter Telegade 2 2630 Høje Tåstrup a 43 34 56 52 32 mnei tdk dk Adjunkt Ph D 33 Martin Elsman IT højskolen Glentevej 67 lokale 2 42 2400 NV a 38 16 88 88 a dir 38 16 88 43 34 mael it c dk 35 mael dina kvl dk Ekstern lektor Morten Remmer re public Vestergade 10d 2 sal 1456 Kbh K a 33 91 33 10 a dir 33 91 33 27 36 morten dj360 com Undervisningsassistent Morten Ulf Bøll 37 boell post4 tele dk Ekstern lektor Niels Hallenberg IT højskolen Glentevej 67 lokale 2 38 2400 NV a 38 16 88 88 a dir 38 16 88 24 38 nh it c dk Undervisningsassistent Nikolaj de fine Licht 39 nikolaj musicmedia dk Ekstern lektor Pernille Eisenhardt RUC Marbjerg Mark Postbox 260 4000 Roskilde a dir 46 74 38 70 40 pnille ruc dk Ekstern lektor Peter Olaf Looms DR Online TV Byen Television Centre DK 2860 Søborg a 35 20 30 40 a dir 35 20 83 66 41 poo dr dk 42 polooms inet uni2 dk 43 polooms hotmail com Forskningsadjunkt Ph D Raine Koskimaa IT højskolen Glentevej 67 lokale 2 08 2400 NV a 38 16 88 88 a dir 38 16 88 23 44 Koskimaa it c dk Ekstern lektor Stine Gotved Institut for Film og Medievidenskab Njalsgade 80 2300 S a 35 32 88 11 a dir 35 32 81 31 45 gotved hum ku dk AC medarbejder 46 Sven Bastrup IT højskolen Glentevej 67 lokale 3 20 2400 NV a 38 16 88 88 a dir 38 16 88 61 a 47 bastrup it c dk p 48 sven bastrup adr dk Ekstern lektor Tijana Paludan Duus Danmarks Radio H C Ørstedsvej 47 1879 Frederiksberg C a 3520 6522 49 tidu dr dk Ekstern lektor 50 Troels Degn Johansson Forskningscenter for Skov Landskab Hørsholm Kongevej 11 2970 Hørsholm a 45 76 32 00 a dir 45 76 32 20 45 17 83 20 51 tdj fsl dk Ph D studerende Ulrik Hartmann Gade IT højskolen Glentevej 67 lokale 2 46 2400 NV a 38 16 88 88 a dir 38 16 88 90 52 ulrik acm org 53 USEMAP inter icon2top gif opdateret 04 05 2001 54 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om DKM Fakultetsklub 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English inter menu bund gif DKMs Fakultetsklub I DKM s fakultetsklub diskuteres og udvikles DKM s faglige indhold forskning og uddannelse Fakultetsklubben er åben for ansatte ved DKM Fakultetsklubben mødes en gang om måneden DKM s 13 Fakultetsklub Næste møder Tirsdag d 17 04 01 kl 17 00 i lokale 4 20 medarbejdernes frokoststue 14 Dagsorden Tirsdag d 15 05 01 kl 17 00 i lokale 4 20 medarbejdernes frokoststue 15 Dagsorden Referater 16 Referat af fakultetsklubmøde tirsdag den 20 marts 2001 17 Referat af fakultetsklubmøde tirsdag den 20 februar 2001 18 Referat af fakultetsklubmøde tirsdag den 23 januar 2001 19 Referat af fakultetsklubmøde tirsdag den 12 december 2000 20 Referat af fakultetsklubmøde tirsdag den 24 oktober 2000 21 Referat af fakultetsklubmøde tirsdag den 19 september 2000 22 Referat af fakultetsklubmøde tirsdag den 15 august 2000 23 Referat af fakultetsklubmøde tirsdag den 13 juni 2000 24 Referat af fakultetsklubmøde tirsdag den 23 maj 2000 25 Referat af fakultetsklubmøde tirsdag den 25 april 2000 26 Referat af fakultetsklubmøde tirsdag den 21 marts 2000 Vedligeholdes af 27 Lise Louv 28 USEMAP inter icon2top gif opdateret 04 05 2001 29 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om DKM Fagudvalg 6 Stillinger 7 Aktiviteter 8 Home 9 Find person 10 SiteMap 11 Intranet 12 English 13 DKM s faglighed inter menu bund gif DKMs Fagudvalg I DKM s fagudvalg har de studerende mulighed for at påvirke det faglige indhold af uddannelsen på DKM Fagudvalget er åbent for alle studerende og ansatte på DKM Udvalget mødes ca en gang om måneden Fagudvalget består nu af følgende faste medlemmer Stud Louise Barkhuus Astrid Dyhr Pedersen Carsten Schmidt Christoffer Soya VIP John Paulin Hansen Anker Helms Jørgensen Denis Virlogeux Stine Gotved 14 mailingliste Næste møder onsdag 9 maj 01 kl 15 15 17 15 i lokale 2 03 15 Dagsorden Referater fra møderne 16 Referat af fagudvalgsmøde DKM 18 april 2001 17 Referat af fagudvalgsmøde DKM 14 marts 2001 18 Referat af fagudvalgsmøde DKM 14 feb 2001 19 Referat af fagudvalgsmøde DKM 13 dec 2000 20 Referat af fagudvalgsmøde DKM 8 nov 2000 21 Referat af fagudvalgsmøde DKM 11 okt 2000 22 Referat af fagudvalgsmøde DKM 13 sep 2000 23 Referat af fagudvalgsmøde DKM 16 aug 2000 24 Referat af fagudvalgsmøde DKM 7 juni 2000 25 Referat af fagudvalgsmøde DKM 10 maj 2000 26 Referat af fagudvalgsmøde DKM 12 april 2000 27 Referat af fagudvalgsmøde DKM 8 marts 2000 Vedligeholdes af 28 Lise Louv 29 USEMAP inter icon2top gif opdateret 04 05 2001 30 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat 4 5 Mere om DKM 6 Fagudvalg DKM s faglighed 7 Stillinger 8 Aktiviteter 9 Home 10 Find person 11 SiteMap 12 Intranet 13 English inter menu bund gif DKM s faglighed denne side er under opbygning Vedligeholdes af 14 Lise Louv 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat Søg om optagelse 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Søg om optagelse Her kan du downloade 11 ansøgningsmaterialet for forårssemesteret 2001 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat Enkeltfag 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Enkeltfag REFRESH 0 sec 11 http www it c dk pub db 453 html Denne side sender dig videre til IT Højskolens side om enkeltfag Hvis dette ikke sker benyt venligst dette link 12 http www it c dk pub db 453 html 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kandidat Uddannelses katalog 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Uddannelseskatalog REFRESH 0 sec 11 http www it c dk pub db 454 html Denne side sender dig videre til IT Højskolens uddannelseskatalog Hvis dette ikke sker benyt dette link 12 http www it c dk pub db 454 html 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser Kurser 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Kursusbog 11 Kursernes hjemmesider 12 Kursusevaluering 13 Tidligere kurser inter menu bund gif Kurser IT højskolens kurser omfatter fra grundlæggende kurser i IT til meget avancerede og specialiserede IT emner Nogle af kurserne er helt eller overvejende teoretiske mens de fleste kurser har en blanding af teori praktiske øvelser ugentlige afleveringsopgaver og projekter Du kan se en oversigt over de aktuelle kursusudbud i vores kursusbog 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kurser Kursusbog 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Kursusbog REFRESH 0 sec 11 http www it c dk kursusbog F2001 index php3 Denne side sender dig videre til IT Højskolens kursusbog Hvis dette ikke sker benyt venligst dette link 12 http www it c dk kursusbog F2001 index php3 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kurser Kursernes hjemmesider 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Kursernes hjemmesider REFRESH 0 sec 11 http www it c dk courses Denne side sender dig videre til oversigten over IT Højskolens kursers hjemmesider Hvis dette ikke sker benyt venligst dette link 12 http www it c dk courses 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kurser Kursusevaluering 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Kursusevaluering 11 Resultaterne for kursusevalueringen efterårssemestret 2000 er tilgængelige for alle Intranetbrugere IT højskolen gennemfører hvert semester en samlet elektronisk evaluering af kurser og undervisere Evalueringssystemet der såvidt vides er det første af sin art i landet er baseret på evaluering og informationsdeling via internettet Resultatet af evalueringen af kurser for efteråret 2000 er offentliggjort på intranettet Målet er at skabe et veldokumenteret grundlag for en løbende og åben diskussion af kvaliteten og kvantiteten af undervisningen på IT højskolen Konkret sker evalueringen ved at hver studerende indtaster deres personlige evaluering af kurser og undervisere Indtastningerne samles til en rapport som studienævn og undervisere bearbejder og drøfter Endelig bliver resultaterne offentliggjort på IT højskolens intranet så alle har mulighed for at se evalueringen af samtlige kurser og undervisere og læse hvordan IT højskolen og underviserne har kommenteret evalueringerne Den første evaluering blev gennemført i marts 2000 På spørgsmålet Overordnet konklusion dette er et kursus jeg er glad for scorede kurserne i gennemsnit 4 9 på en skala fra 1 til 6 På spørgsmålet Overordnet konklusion dette er en lærer jeg er glad for scorede lærerne i gennemsnit 5 1 på en skala fra 1 til 6 Du kan selv prøve den elektroniske 12 evaluering 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kurser Tidligere kurser 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Tidligere kurser Klik 11 her for at se en liste over hvilke kurser der tidligere har været udbudt 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Kurser 4 Tidligere kurser 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Kurser efteråret 2000 Kursushjemmesider Kursernes hjemmesider for efteråret 2000 findes 12 her Elektronisk kursusbog Kurser for efteråret 2000 er annonceret i den elektroniske 13 kursusbog 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser Ph D 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Ph D REFRESH 0 sec 10 http www it c dk pub db 25 html Denne side sender dig videre til IT Højskolens side om Ph D Hvis dette ikke sker klik venligst her på dette link 11 http www it c dk pub db 25 html 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser Studieliv og projekter 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Socialt liv 11 Studenter projekter 12 Praktik 13 Udenlandsophold 14 Studerende fortæller inter menu bund gif IT højskolens vision IT højskolen vil i dialog med sine omgivelser skabe et attraktivt og levende forsknings og uddannelsesmiljø der bidrager til vækst og udvikling i det danske og internationale samfund ved at skabe et IT miljø der favner naturvidenskab humaniora design og erhverv at uddanne personer med en stor og bred viden om IT og ITs muligheder gennem forskning at skabe ny teknologi og bedre anvendelse af ny teknologi at øge samfundets indsigt i IT og ITs muligheder Målsætninger i forhold til studerende IT højskolen vil i samarbejde med de studerende skabe et attraktivt studiemiljø der er forskningsbaseret udviklende og inspirerende og uddanne velkvalificerede personer der har et helhedssyn på IT behersker den nyeste teknologi har dyb indsigt i informationsteknologiens grundlag og muligheder 15 USEMAP inter icon2top gif opdateret 04 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Studieliv og projekter Socialt liv 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Socialt liv På IT højskolen arbejder de studerende i stor udstrækning i grupper og de studerende danner selv læsegrupper og studiekredse Med jævne mellemrum holder de studerende fredagscaf som typisk er præget af et tema De fleste fredage er der desuden 11 BuzzTalks som er et foredrag og efterfølgende diskussion af et IT relevant emne Foredragsholderne kan være forskere folk fra erhvervslivet og andre med tilknytning til IT branchen Desuden er der blandt andet en kunstgruppe et 12 fodboldhold og en 13 linuxgruppe på IT højskolen 14 USEMAP inter icon2top gif opdateret 04 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Studieliv og projekter Studenter projekter 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Studenterprojekter IT højskolens 11 Projektbørs er en ressource for Virksomheder der er interesserede i at lave projekt eller specialeaftaler med studerende fra IT højskolen Studerende fra IT højskolen der søger projektkontakter i erhvervslivet forsknings miljøet eller blandt andre studerende Forskere der søger studerende til projekter Alle der interesserer sig for specialer projekter og ny forskning på IT højskolen i København 12 Projektbørsen er designet og programmeret af tre studerende fra IT højskolen i København som en del af et fire ugers studenterprojekt i kurset Databasebaseret webpublisering De studerende bag projektet er 13 John Udo Ukpo fra Softwareudviklingslinjen 14 Lise Bennedsen fra linjen i Design Kommunikation og Medier og 15 Mathias Johansen From fra linjen i E handel Adjunkt 16 Martin Elsman var vejleder på projektet Her kan du se tidligere projektforslag 17 Projektbørs efterår 2000 18 USEMAP inter icon2top gif opdateret 04 05 2001 19 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Studieliv og projekter Praktik 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Praktik REFRESH 0 sec 11 http www it c dk pub db 268 html Denne side skulle gerne videresende dig til siden om praktik Hvis dette ikke sker bedes du benytte dette link 12 http www it c dk pub db 268 html 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Studieliv og projekter Udenlandsophold 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Udenlandsophold Igennem samarbejde med Handelshøjskolen i København har studerende ved IT højskolen i København mulighed for at tage en del af deres uddannelse i udlandet Hvis du ønsker at søge om udlandsophold for efterårssemesteret 2001 er der ansøgningsfrist allerede den 15 december 2000 Nye studerende der er optaget til studiestart i januar 2001 har dog ansøgningsfrist til den 22 december Ansøgningen skal sendes til det internationale kontor på Handelshøjskolen Få mere information ved henvendelse til det internationale kontor på Handelshøjskolen eller kontakt 11 studievejledningen på IT højskkolen 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Studieliv og projekter Studerende fortæller 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English 11 Ikke fortrudt 12 Høj energi 13 I grænselandet 14 Egne udfordringer 15 Nye input inter menu bund gif Studerende fortæller Her kan du læse om en række studerende ved IT højskolen De studerende fortæller om deres baggrund deres studier og hvad de venter sig af fremtiden 16 USEMAP inter icon2top gif opdateret 04 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Studieliv og projekter 4 Studerende fortæller Ikke fortrudt 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Har ikke fortrudt INT kandidat David Simonsen Jeg har ikke en plan men det her er spændende siger David Simonsen der startede på internetteknologi linien i februar 2000 Muligheden for at påvirke vores brug af internetteknologi trak i studenten der ellers kun manglede et halvt år af sit speciale i molekylær biologi Det var svært at træffe den beslutning men jeg har ikke fortrudt Lærerne her på min linie er velkvalificerede og motiverende og er også lydhøre over for os studenter Men det er hårdt arbejde og pensum er stort Studiemiljøet er ikke helt på plads endnu Det er jo noget som bliver bygget op lige så stille Mange har travlt og er også engagerede andre steder Det er noget vi studerende i sidste ende selv skal skabe men de fysiske rammer kunne også være bedre lyder det fra David Hvor jeg er om to tre år Det ved jeg ikke vi får se Jeg har arbejdet på Experimentarium i seks år og jeg kunne godt tænke mig at arbejde med formidling og fjernundervisning gennem ny teknologi David Simonsen bruger en del af sin tid på at få et kollegienet op at stå så alle kollegier i Danmark er koblet sammen i et netværk Det skal nok lykkes siger en engageret David Simonsen 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Studieliv og projekter 4 Studerende fortæller Høj energi 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Høj energi og hårdt arbejde SWU kandidat Rikke Vogelsang Jeg fik lyst til at søge ind på IT højskolen fordi stedet blev eksponeret som universitetet hvor studerende med forskellig uddannelsesmæssig baggrund mødes og jeg er ikke blevet skuffet siger 31 årige Rikke Vogelsang som går på softwarelinien og har en baggrund som bibliotekar 1999 Hun fik lyst til IT verdenen da hun skrev hovedopgave i computerstøttet journalistik på Danmarks Biblioteksskole Jeg får meget ud af at studere sammen med folk med en anden baggrund end min egen Det giver utrolig mange indfaldsvinkler og beriger mit eget perspektiv Det betyder også at vi har et spændende studiemiljø og IT højskolen er præget af høj energi Det samme går igen på lærersiden de har meget at byde på De kræver meget og vi skal nå et stort pensum i løbet af to år så man skal virkelig hænge i Rikke har glæde af sin bibliotekaruddannelse på IT højskolen På min gamle uddannelse har jeg lært at systematisere og strukturere viden Det er jeg god til og det har jeg stor gavn af Et muligt job efter endt uddannelse kunne f eks være database administrator Her er der brug for min nye viden plus systematikken og strukturen som jeg havde med i bagagen 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Studieliv og projekter 4 Studerende fortæller I grænselandet 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif I det teknologiske grænseland Uffe Damgaard Pedersen er fascineret af 3 D Det er en af grundene til at han i februar 2000 begyndte på multimedieteknologi linien Egentlig er 28 årige Uffe Damgaard Pedersen uddannet svagsstømsingeniør i 1997 og har arbejdet for IBM som han stadig studenterjobber hos 10 timer om ugen Det er rigtig godt at gå her Her er spændende faglige oplevelser og en god stemning præget af pionerånd Men jeg har ikke involveret mig så meget socialt siger Uffe Damgard Pedersen Det faglige niveau er højt og det kræver både tid og hårdt arbejde at gå her I fritiden eksperimenterer Uffe Damgard Pedersen med elektronisk at behandle lyd og med at lave effekter til lydanlæg Det grafiske er også spændende men Uffe synes det er svært at blive god til begge dele på en gang I øjeblikket er han i gang med at lave et projekt om texturemapping hvor han på en computer lægger et billede på et buet objekt Teknikken bruges blandt andet meget i 3D simulationer og Virtual Reality Jeg kunne godt tænke mig at komme til at arbejde med konstruktion af multimedier og det skal helst være en blanding af produktion og forskning Jeg ved ikke hvor jeg er om et par år men det må helt sikkert gerne være i det teknologiske grænseland slutter han 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Studieliv og projekter 4 Studerende fortæller Egne udfordringer 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Jeg vælger mine egne udfordringer SWU kandidat Kasper Vilhelm Torp Det er godt at kunne definere egne projekter og sammensætte sit studie efter eget valg På den måde kan jeg vælge egne udfordringer og det er jo interessant siger Kasper Vilhelm Torp 26 og studerende på IT højskolens softwarelinie Han kommer med en bachelor fra 1996 i biokemi fra Københavns Universitet og fik smag for IT området da han senere på Handelshøjskolen i forbindelse med et kursus endte med at komme til at programmere et system til videndeling Systemet er stadig i brug IT højskolen er et rart og interessant sted at studere ikke mindst fordi her er så mange spændende mennesker Jeg har bl a lavet et projekt med studerende som tidligere har studeret retorik teatervidenskab økonomi og psykologi Det var utroligt spændende at kunne se problemstillingerne med så mange indfaldsvinkler og vi mødes stadig Der opstår ganske enkelt et inspirerende miljø når folk med så forskellig faglighed mødes I sommer var Kasper i Kina og modtog en pris for at være innovativ og have lyst til at være igangsætter Det var Pionerakademiet der uddelte prisen Han ser sig selv som selvstændig erhvervsdrivende inden for software og id udvikling når han er færdig med sin uddannelse 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Studieliv og projekter 4 Studerende fortæller Nye input 5 Stillinger 6 Aktiviteter 7 Home 8 Find person 9 SiteMap 10 Intranet 11 English inter menu bund gif Får nye input Kathrine Bohus Madsen er gynmasielærer og underviser på fuld tid Samtidig er hun i gang med en masteruddannelse i softwareudvikling som hun begyndte på i september 1999 Da hun arbejder på fuld tid nøjes hun med et fag hvert semester Jeg er her især for at lære noget nyt og fordi jeg synes det er spændende at beskæftige mig med IT Her er det mig der får nogle input og ikke mig der er i formidlerrollen som jo i høj grad karakteriserer en gynmasielærer siger den 34 årige cand scient i matematik og statistik der også har et bedaget datalogikursus med i bagagen fra Universitetet Det er både sjovt og spændende at gå her og undervisningen er udmærket og engageret Og så er det tydeligt at mærke at de studerende har meget forskellige forudsætninger og vidt forskellige baggrunde Jeg har ikke engageret mig så meget i det sociale Det skyldes i høj grad mangel på tid når man arbejder på fuld tid og læser ved siden af siger Kathrine Bohus Madsen Masteruddannelsen giver mig helt bestemt den ny viden og de nye udfordringer jeg har brug for 12 USEMAP inter icon2top gif opdateret 04 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Uddannelser Love og regler 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English 10 Uddannelses katalog 11 Udenlandsophold 12 Praktikpladser 13 EU Course Transfer System inter menu bund gif Love og regler Studieordninger Studieordning for kandidatuddannelsen i informationsteknologi på IT højskolen i København 25 08 2000 som 14 word dokument og som 15 pdf dokument Errata 30 stk 2 Korrekt ordlyd Orlov efter optjening af 30 ECTS point kan meddeles i op til 6 måneder Orlov ud over 6 måneder kræver dispensation fra Studieadministrationen Studieordning for masteruddannelser i informationsteknologi på IT højskolen i København Fællesregler 25 08 2000 som 16 word dokument og 17 pdf dokument Studieordning for masteruddannelsen i Design Kommunikation og Medier 25 08 2000 som 18 word dokument og 19 pdf dokument Studieordning for masteruddannelsen i Internetteknologi 25 08 2000 som 20 word dokument og 21 pdf dokument Studieordning for masteruddannelsen i Multimedieteknologi 25 08 2000 som 22 word dokument og 23 pdf dokument Studieordning for masteruddannelsen i Softwareudvikling 25 08 2000 som 24 word dokument og 25 pdf dokument Studieordning for diplomuddannelsen i informationsteknologi på IT højskolen i København 25 08 2000 som 26 word dokument og 27 pdf dokument Bekendtgørelser Undervisningsministeriets bekendtgørelser om IT højskolens uddannelser findes 28 her IT højskolens optagelsesregler IT højskolens optagelsesregler som 29 word dokument eller som 30 ren tekst 31 USEMAP inter icon2top gif opdateret 04 05 2001 32 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Love og regler Uddannelses katalog 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Uddannelseskatalog REFRESH 0 sec 11 http www it c dk pub db 454 html Denne side sender dig videre til IT Højskolens uddannelseskatalog Hvis dette ikke sker klik venligst her på dette link 12 http www it c dk pub db 454 html 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Love og regler Udenlandsophold 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Udenlandsophold REFRESH 0 sec 11 http www it c dk pub db 447 html Denne side sender dig videre til IT Højskolens side om udenlandsophold Hvis dette ikke sker klik venligst her på dette link 12 http www it c dk pub db 447 html 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Love og regler Praktikpladser 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif Praktikpladser REFRESH 0 sec 11 http www it c dk pub db 268 html Denne side sender dig videre til IT Højskolens side om praktikpladser Hvis dette ikke sker klik venligst her på dette link 12 http www it c dk pub db 268 html 13 USEMAP inter icon2top gif opdateret 04 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Love og regler EU Course Transfer System 4 Stillinger 5 Aktiviteter 6 Home 7 Find person 8 SiteMap 9 Intranet 10 English inter menu bund gif ECTS ECTS er et europæisk system der gør det lettere for studerende inden for EU og EFTA at tage dele af uddannelsen i et andet land ECTS står for European Community Course Credit Transfer System IT højskolen benytter ECTS så IT højskolens studier direkte kan relateres til uddannelser i andre lande Et års fuldtidsstudier svarer til 60 ECTS Det betyder at et semester på kandidatuddannelserne svarer til 30 ECTS mens et semester på henholdsvis masteruddannelserne og diplomuddannelsen svarer til 15 ECTS Et kursus på IT højskolen svarer som udgangspunkt til 7 5 ECTS 11 USEMAP inter icon2top gif opdateret 04 05 2001 12 wwwadm it c dk 1 IT højskolen Dokumenter 2 Stillinger 3 Aktiviteter 4 Home 5 Find person 6 SiteMap 7 Intranet 8 English inter menu bund gif Dokumentoversigt Generelt om præsentation og dataformater HTML Beregnet til preview i browser Word Word fil til evt redigering og udskrift på Microsoft maskine TeX TeX fil til evt redigering og udskrift på Unix Linux maskine PS PostScript fil beregnet til udskrift på PostScript printer PDF PDF fil beregnet til læsning og udskrift via PDF viewer Det anbefales som hovedregel at downloade PDF eller alternativt PS filer Uddannelseskatalog 9 Word og som 10 PDF Beskrivelse af uddannelser udbudt på IT C i foråret 2001 Kursusbog 11 Online Virksomhedsregnskab 12 HTML 13 Word 14 PS 15 PDF Virksomhedsregnskabet som aflagt for 1999 IT C sitens indholdssider 16 HTML Alle siderne fra denne hjemmeside samlet i et dokument 17 USEMAP inter icon2top gif opdateret 04 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Find person Hvem underviser på hvilke linier 3 Stillinger 4 Aktiviteter 5 Home 6 Find person 7 SiteMap 8 Intranet 9 English inter menu bund gif Hvem underviser på hvilke linier Vælg en af følgende perioder Efterår 2000 Vælg en kategori af undervisere alle undervisere på linien uddannelsen Vælg en linie uddannelse Kandidatlinien i tværfaglig IT Klik endelig på fortsæt 10 USEMAP inter icon2top gif opdateret 04 05 2001 11 wwwadm it c dk IT højskolens nyhedstjeneste Det er muligt automatisk at modtage nyheder om IT højskolens uddannelser med epost Der er ligeledes mulighed for at modtage epost om annoncering af stillinger ved IT højskolen Hvis du er interesseret i automatisk at modtage sådan information så tilmeld dig nedenfor Du kan til enhver tid 1 afmelde dig ordningen Endelig kan du 2 kontrollere om du stadig er tilmeldt nyhedstjenesten Tilmelding Efternavn Fornavn e Adresse linie1 Adresse linie2 Adresse linie3 Adresse linie 4 epostadresse Elektronisk post vil blive sendt til den epostadresse du har angivet ovenfor Elektronisk post sendes separat og altså anonymt til hver modtager Sæt desuden kryds ved de typer af informationer du ønsker at modtage 1 Diplomstudiet kursusudbud og ansøgningsprocedure 2 Masterstudiet kursusudbud og ansøgningsprocedure 3 Internationale Masterstudier kursusudbud og ansøgningsprocedure 4 Kandidatstudiet kursusudbud og ansøgningsprocedure 5 Enkeltfag kursusudbud og ansøgningsprocedure 6 Ph d studiet ansøgningsprocedure 7 TAP stillinger når de annonceres 8 VIP stillinger når de annonceres 9 Åbne foredrag og konferencer 10 Generel orienterende information Sprog 1 Jeg ønsker at modtage de beskeder der er på dansk 2 Jeg ønsker at modtage de beskeder der er på engelsk Sådanne beskeder henvender sig fortrinsvis til personer der ikke taler dansk Der er beskeder der udsendes til dansktalende som ikke også sendes i en engelsk udgave Tryk på denne knap for at effektuere tilmeldingen bekræftelsen sendes til dig med epost Tilmeld mig Afmelding Indtast den epost addresse som du ønsker at melde fra ordningen Hvis du ikke har nogen epost addresse og ønsker at stoppe almindelige breve så ring eller skriv venligst til IT højskolen epostadresse Tryk på denne knap for at effektuere afmelding Afmeld mig Kontrol Hvis du undrer dig over ikke at have modtaget post fra nyhedslisten kan du kontrollere om du stadig er på den Vi fjerner nemlig fra tid til anden epostadresser som det ikke lykkes os at sende beskeder til epostadresse Tryk på denne knap for at kontrollere om du er tilmeldt Kontrol 1 IT højskolen 2 Uddannelser 3 Stillinger 4 Aktiviteter 5 Home 6 Personer 7 SiteMap 8 Intranet 9 English Kursusoversigt med deltagerlister for alle IT højskolens kurser E2000 Antal kurser alle nedenstående linier 64 10 Design Kommunikation og Medier 11 3D begynder 12 Avanceret multimedie produktion på Internet 13 Brugerperspektiver og fremtidens medier 14 Databasebaseret web publicering 15 Digital lyd 16 Digital videoproduktion 17 Grafisk Design 1 18 Grundlæggende Web Design 19 Interaktionsdesign 20 Internettets rum og geografi 21 Introduktion til IT som medie 22 Målgruppeanalyse 23 Projektledelse og produktion af digitalt indhold 24 Tekstformidling på Internet 25 Usability Engineering 26 Elektronisk Handel 27 B3 Logistik og Supply Chain Management 28 B5 E commerce markets and business models 29 B6 IT innovation og virksomhedsopstart 30 B8 Projektledelse 31 B9 Knowledge Management 32 P1 Internet jura 33 P2 Virtual Contracts digital signatures and Regulation 34 T1 Object Oriented Programming in Java 35 T4 Centrale Databaser 36 T6 IT sikkerhed 37 Internetteknologi 38 Datasikkerhed 39 Internetprogrammering 40 Netværk og protokoller 41 Operativsystemer og Maskinnær Programmering 42 Parallelle Systemer 43 Multimedieteknologi 44 Animation 45 Computergrafik 46 Digital Videoteknologi 47 Introduktion til multimediesystemer 48 Mønstergenkendelse og datamatsyn 49 Robot eksperimentarium 50 Signalbehandling 51 Videregaaende billedanalyse 52 Virtual reality 53 Softwareudvikling 54 Avanceret algoritmik 55 Databasesystemer 56 Design af brugergrænseflader og data 57 Grundlæggende programmering 58 IT projektledelse 59 IT støttet samarbejde 60 IT Platforme og Organisation 61 Introduktion til algoritmik og datastrukturer 62 Objekt orienteret programmering 63 Performance engineering 64 Programmeringssprog fortolkere og oversættere 65 Systemudvikling 66 Videregående objekt orienteret programmering 67 Tværfaglig IT 68 Begreber og redskaber i programmering 69 Databaser 70 Distribuerede Systemer 71 Indledende programmering 72 Interaktive Systemer og Projektledelse 73 Objektorienteret Programmering 74 Sprog Logik 75 Systemudvikling i organisationer Samannoncerede 76 Grundlæggende Programmering Fleksibel uddannelse 77 IT Platforme og Organisation lørdag kl 9 00 13 00 uge 9 21 78 Innovation og Iværksættere 79 Tekstformidling på Internet onsdag kl 16 00 21 30 This document was created using Standard ML on Mon Mar 26 15 47 17 2001 80 USEMAP icon totop gif opdateret 21 08 2000 81 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Stillinger 4 Aktiviteter 5 Home 6 Personer 7 SiteMap 8 Intranet 9 English Deltagerliste for Innovation og Iværksættere linie uddannelse Samannoncerede UL Semester E2000 Kursets form og indhold er beskrevet i 10 kursusbogen Kursusansvarlig lærer Robert B Mellor 11 mellor it c dk Samtlige undervisere på kurset Robert B Mellor 12 mellor it c dk Antal deltagere på kurset 7 Mailingliste til deltagerne på kurset 13 IIV stud Deltagere Navn email Linie Uddannelse enkeltfag immatrikuleret Bettina Ovgaard 14 ovgaard it c dk KDKM E2000 Kaspar Bøcher 15 kaspar it c dk KDKM E1999 Lise Bennedsen 16 lise it c dk KDKM F2000 Mikkel Veis Feld Thomsen 17 mvt it c dk KEBUSS F2000 Oskar Philip Justesen Lauritzen 18 oskar it c dk KEBUSS F2000 Rasmus Wolff Hansen 19 wolff it c dk UL F2001 Tess Gaston 20 tess it c dk KSWU E1999 Forkortelser DIT Diplomuddannelsen i Informationsteknologi KDKM Kandidatlinien i Design Kommunikation og Medier KEBUSS Kandidatlinien i Elektronisk Handel KINT Kandidatlinien i Internetteknologi KMMT Kandidatlinien i Multimedieteknologi KSWU Kandidatlinien i Softwareudvikling KTIT Kandidatlinien i Tværfaglig IT MDKM Masteruddannelsen i Design Kommunikation og Medier MINT Masteruddannelsen i Internetteknologi MMMT Masteruddannelsen i Multimedieteknologi MSWU Masteruddannelsen i Softwareudvikling UL Uden liniebetegnelse Bemærk kursusevalueringen starter Mon Mar 26 18 00 00 2001 This document was created using Standard ML on Mon Mar 26 15 56 58 2001 21 USEMAP icon totop gif opdateret 21 08 2000 22 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Stillinger 4 Aktiviteter 5 Home 6 Personer 7 SiteMap 8 Intranet 9 English Deltagerliste for Introduktion til algoritmik og datastrukturer linie uddannelse 10 Softwareudvikling KSWU Semester E2000 Kursets form og indhold er beskrevet i 11 kursusbogen Kursusansvarlig lærer Stephen Alstrup 12 stephen it c dk Samtlige undervisere på kurset Stephen Alstrup 13 stephen it c dk Philip Bille 14 bille it c dk Theis Rauhe 15 theis itu dk Antal deltagere på kurset 32 Mailingliste til deltagerne på kurset 16 IADS stud Deltagere Navn email Linie Uddannelse enkeltfag immatrikuleret Anders Kron 17 kron it c dk KSWU E2000 Anne Mette Mørkbak 18 anne it c dk KSWU E2000 Arja Tiina Silitamies 19 tiina it c dk KSWU F2000 Camilla B chler Seier Petersen 20 camillas it c dk KSWU E2000 Christian Hube Elbrandt 21 celbrandt it c dk KINT E2000 Dennis Jensen 22 jensen it c dk KINT E2000 Dorthe Clemens Koch 23 qaz it c dk KSWU F2000 Finn Danvar 24 finndanvar it c dk MSWU F2000 Hai Son Nguyen 25 hai it c dk KSWU E2000 Hanus Reinert 26 reinert it c dk KSWU F2000 Henrik Langebjerg Sørensen 27 hls it c dk KSWU E2000 Jesper Thaning 28 thaning it c dk KINT E2000 John Udo Ukpo 29 juu it c dk KSWU F2000 Jos Alvaro Ramirez Orellana 30 joseo it c dk KINT E2000 Kenneth Ahn Jensen 31 kaj it c dk KINT E2000 Mads Peter Nymand 32 pete it c dk KSWU E2000 Maria Rita Kondor 33 kondor it c dk MSWU E2000 Marie Louise Nielsen 34 mlouise it c dk KSWU E2000 Martin Schiøtz Jensen 35 msc it c dk KINT E2000 Michael Berliner Pedersen 36 mbp it c dk KSWU F2001 Mikkel Hugo Skovsgaard Jensen 37 mskovsgaard it c dk KSWU E1999 Minh Duc Tran 38 mdt it c dk KSWU F2001 Nguyen Trung Vo 39 ntv it c dk KINT E2000 Olav Madsen 40 olav it c dk KSWU E2000 Siddhartha Raychaudhuri 41 src2001 it c dk KSWU F2000 Simon Faarup 42 simonfaarup it c dk KSWU E2000 Simon Kohrtz 43 kohrtz it c dk KSWU E2000 Sten Graff Larsen 44 graff it c dk KSWU E2000 Susanne Pehrsson 45 tusser it c dk KSWU F2000 Theis Poulsen 46 theispoulsen it c dk KSWU E1999 Thomas Blomseth Christiansen 47 blomseth it c dk KINT E2000 Thomas Rasmussen 48 whomas it c dk KSWU F2000 Forkortelser DIT Diplomuddannelsen i Informationsteknologi KDKM Kandidatlinien i Design Kommunikation og Medier KEBUSS Kandidatlinien i Elektronisk Handel KINT Kandidatlinien i Internetteknologi KMMT Kandidatlinien i Multimedieteknologi KSWU Kandidatlinien i Softwareudvikling KTIT Kandidatlinien i Tværfaglig IT MDKM Masteruddannelsen i Design Kommunikation og Medier MINT Masteruddannelsen i Internetteknologi MMMT Masteruddannelsen i Multimedieteknologi MSWU Masteruddannelsen i Softwareudvikling UL Uden liniebetegnelse Bemærk kursusevalueringen starter Mon Mar 26 18 00 00 2001 This document was created using Standard ML on Mon Mar 26 15 56 58 2001 49 USEMAP icon totop gif opdateret 21 08 2000 50 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Stillinger 4 Aktiviteter 5 Home 6 Personer 7 SiteMap 8 Intranet 9 English Deltagerliste for Avancerede datastrukturer linie uddannelse 10 Softwareudvikling KSWU Semester E2000 Kursets form og indhold er beskrevet i 11 kursusbogen Kursusansvarlig lærer Stephen Alstrup 12 stephen it c dk Samtlige undervisere på kurset Theis Rauhe 13 theis it c dk Stephen Alstrup 14 stephen it c dk Inge Li Gørtz 15 inge it c dk Antal deltagere på kurset 16 Mailingliste til deltagerne på kurset 16 ADS stud Deltagere Navn email Linie Uddannelse enkeltfag immatrikuleret Allan Odgaard 17 alod it c dk KSWU enkeltfag E2000 Benny Kjær Nielsen 18 beni it c dk KSWU enkeltfag E2000 Christian Strøyer Pedersen 19 chpe it c dk KSWU enkeltfag E2000 Christian Worm Mortensen 20 chmo it c dk KSWU enkeltfag E2000 Hans Christian Hammerstoft 21 hch it c dk KSWU E1999 Inge Li Gørtz 22 inge it c dk KSWU enkeltfag E2000 Jeppe Nejsum Madsen 23 nejsum it c dk KSWU enkeltfag E2000 John Erik Knudsen 24 jek it c dk MSWU E1999 Klavs Bo Bonnevie 25 bobonnevie it c dk KSWU E1999 Marianne Otzen Terkildsen 26 janse it c dk KSWU enkeltfag E2000 Morten Fjord Larsen 27 mfl it c dk KSWU enkeltfag E2000 Ole Johan Gr nbaum 28 olegrunbaum it c dk KSWU F2000 Philip Bille 29 beetle it c dk KSWU enkeltfag E2000 Søren Eduard Jacobsen 30 sej it c dk KSWU E1999 Thomas Bartvig 31 bartvig it c dk KSWU enkeltfag E2000 Thor Jessen 32 thorjes it c dk KSWU enkeltfag E2000 Forkortelser DIT Diplomuddannelsen i Informationsteknologi KDKM Kandidatlinien i Design Kommunikation og Medier KEBUSS Kandidatlinien i Elektronisk Handel KINT Kandidatlinien i Internetteknologi KMMT Kandidatlinien i Multimedieteknologi KSWU Kandidatlinien i Softwareudvikling KTIT Kandidatlinien i Tværfaglig IT MDKM Masteruddannelsen i Design Kommunikation og Medier MINT Masteruddannelsen i Internetteknologi MMMT Masteruddannelsen i Multimedieteknologi MSWU Masteruddannelsen i Softwareudvikling UL Uden liniebetegnelse Bemærk kursusevalueringen starter Fri Dec 29 08 00 00 2000 This document was created using Standard ML on Wed Jan 24 15 07 44 2001 33 USEMAP icon totop gif opdateret 21 08 2000 34 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Stillinger 4 Aktiviteter 5 Home 6 Personer 7 SiteMap 8 Intranet 9 English Deltagerliste for Effektive algoritmer og programmer linie uddannelse 10 Internetteknologi KINT Semester E2000 Kursets form og indhold er beskrevet i 11 kursusbogen Kursusansvarlig lærer Henrik Reif Andersen 12 hra it c dk Samtlige undervisere på kurset Henrik Reif Andersen 13 hra it c dk Henrik Hulgaard 14 henrik it c dk Antal deltagere på kurset 6 Mailingliste til deltagerne på kurset 15 EAP stud Deltagere Navn email Linie Uddannelse enkeltfag immatrikuleret Allan Larsen 16 al it c dk KSWU E1999 Jens Morten Primdahl 17 morten it c dk KINT F2000 Johannes Beyer 18 jbeyer it c dk KSWU E2000 Kasper Bilsted Graversen 19 kbilsted it c dk KSWU E2000 Kasper Bøgebjerg Pedersen 20 kasperp it c dk KSWU F2000 Michael Berantzino Hansen 21 miha96ac it c dk KINT enkeltfag E2000 Forkortelser DIT Diplomuddannelsen i Informationsteknologi KDKM Kandidatlinien i Design Kommunikation og Medier KEBUSS Kandidatlinien i Elektronisk Handel KINT Kandidatlinien i Internetteknologi KMMT Kandidatlinien i Multimedieteknologi KSWU Kandidatlinien i Softwareudvikling KTIT Kandidatlinien i Tværfaglig IT MDKM Masteruddannelsen i Design Kommunikation og Medier MINT Masteruddannelsen i Internetteknologi MMMT Masteruddannelsen i Multimedieteknologi MSWU Masteruddannelsen i Softwareudvikling UL Uden liniebetegnelse Bemærk kursusevalueringen starter Fri Dec 29 08 00 00 2000 This document was created using Standard ML on Wed Jan 24 15 07 44 2001 22 USEMAP icon totop gif opdateret 21 08 2000 23 wwwadm it c dk 1 IT højskolen 2 Uddannelser 3 Stillinger 4 Aktiviteter 5 Home 6 Personer 7 SiteMap 8 Intranet 9 English Deltagerliste for Grundlæggende programmering linie uddannelse 10 Softwareudvikling KSWU Semester E2000 Kursets form og indhold er beskrevet i 11 kursusbogen Kursusansvarlig lærer Peter Sestoft 12 sestoft it c dk Samtlige undervisere på kurset Peter Sestoft 13 sestoft it c dk Lars Birkedal 14 birkedal it c dk Thomas B Jørgensen 15 thj jubii dk Kasper B Pedersen 16 kasperp it c dk Søren Eduard Jacobsen 17 sej it c dk Antal deltagere på kurset 83 Mailingliste til deltagerne på kurset 18 GP stud Deltagere Navn email Linie Uddannelse enkeltfag immatrikuleret Allan Lundgaard 19 lanky it c dk KDKM E2000 Anna Bizova 20 anbi it c dk KSWU F2001 Anne Merete Hvid Larsen 21 mhl it c dk DIT F2001 Asem Butt 22 asem it c dk KINT F2001 Assi Herve Euloge Yapaud 23 assi it c dk KMMT F2001 Christian Jussi Arstorp 24 jussi it c dk KDKM E2000 Christian Pedersen 25 cp it c dk KSWU F2001 Christina Haustrup Hansen 26 haustrup it c dk KSWU F2001 Christina Schou Christensen 27 christina it c dk KDKM E2000 Claus Bennett Christiansen 28 cc it c dk KEBUSS E1999 Dan Aakerhjelm Sørensen 29 dan it c dk DIT F2001 David Simonsen 30 david it c dk KINT F2000 Eydun Rannvaarson Jensen 31 eydun it c dk KSWU F2001 Grete Ellersgaard 32 ge it c dk KDKM E2000 Halina Tomaszewska 33 halina it c dk KSWU F2001 Henning Høy Hansen 34 hhhansen it c dk KSWU F2001 Henriette Diana Rolskov 35 Henry it c dk UL F2001 Iskinder Berhane 36 iswoldu it c dk KINT F2001 Ivan Westh Christensen 37 ivanwesth it c dk KSWU E2000 Jacob Ingversen 38 ingversen it c dk KSWU F2001 Jacques Holm Villaume Johansen 39 jacques it c dk KSWU E2000 Jakob Haaber 40 jh it c dk UL F2001 Janus Friis Bindslev 41 janus it c dk KSWU F2001 Jesper Guhle Mogensen 42 guhle it c dk KDKM E2000 Jesper Linvald 43 linvald it c dk KSWU F2001 Joachim Halse 44 joachim it c dk KDKM E2000 Jon Ebbe Larsen 45 jow it c dk KINT F2001 Jonas Damgaard Jensen 46 jodam it c dk KSWU F2001 Kar Chun Chong 47 kcc it c dk KEBUSS E2000 Kasper Frøhlich 48 kasperf it c dk UL F2001 Kasper Kock 49 kock it c dk KINT F2001 Katja Rudloff 50 karu it c dk KSWU F2001 Kim An Pham 51 kapham it c dk KSWU F2001 Kim Larsen 52 timo it c dk MMMT E2000 Klaus Jakobsen 53 klausj it c dk MINT F2001 Kristian Ramskov Føge Jensen 54 kristian it c dk KDKM E2000 Kristian Rastrup 55 rastrup it c dk KSWU F2001 Kristian Stengaard Munkholm 56 krismunk it c dk KSWU F2001 Kristian Tørning 57 toerning it c dk KDKM F2001 Lars Arne Conrad Hansen 58 l it c dk KMMT F2001 Lars Gyldenkærne 59 lgy it c dk KSWU F2001 Lars Høyrup Jensen 60 robinhat it c dk KSWU F2001 Laurance Stanford Vinson 61 stanford it c dk KDKM E2000 Lene Nørgaard 62 norgaard it c dk KDKM E2000 Louise Kragh 63 lokra it c dk KSWU F2001 Luise Søe 64 luisesoe it c dk KSWU F2001 Mads Thøger Grønne 65 mtg it c dk KSWU F2001 Mads Jørn Nørgaard 66 m jn it c dk KSWU F2001 Magnus Nilsson 67 nilsson it c dk KSWU E2000 Mahshad Rezaali 68 mahshad it c dk KSWU F2001 Maibrittt Brink Larsen 69 maier it c dk KSWU F2001 Marie Kathrine Fryland 70 marie it c dk KDKM F2000 Michael Berliner Pedersen 71 mbp it c dk KSWU F2001 Michael Grusgaard Andersen 72 grus it c dk KDKM E2000 Mikkel Ramskov Føge Jensen 73 mfoege it c dk KEBUSS F2001 Mikkel Westh Pedersen 74 mwp it c dk KSWU F2001 Muayad Ahmad Bakir 75 muayad it c dk KINT E2000 Nada Yahyah Alzubeidi 76 nada it c dk KINT F2000 Nasim Odeh 77 nassim it c dk KSWU F2001 Natalia Nielsen 78 natasha it c dk KMMT F2001 Niels Engelund 79 nielse it c dk DIT F2001 Nikolaj Aggeboe 80 aggeboe it c dk KINT F2001 Nikolas Dragsdorff 81 dragsdorff it c dk KSWU F2001 Paolo Lund Tonolli 82 tonolli it c dk KINT E2000 Paul Henning Fabricius Kjær 83 fabric it c dk KINT F2001 Pernille Platz 84 platz it c dk KSWU F2001 Peter Krogstrup 85 peterk it c dk MDKM E2000 Pia Lene Giversen 86 giversen it c dk KEBUSS E2000 Poul Erik Stenger 87 stenger it c dk KINT F2001 Sadegh Eghbal 88 noor it c dk KINT E2000 Saif Alghanemi 89 saal it c dk KMMT F2001 Salman Iqbal Khan 90 khan it c dk KSWU F2001 Samar Tamur Mirza 91 samata it c dk KINT F2001 Sigrid Jensdottir Dalsgaard 92 sigrid it c dk KINT F2001 Steinar Logi Sigurdsson 93 steinar it c dk KDKM E2000 Susanne Bisgaard 94 bisgaard it c dk KSWU F2001 Thomas Alexander Hoelgaard 95 thalex it c dk UL F2001 Thomas Holst Petersen 96 holst it c dk KDKM F2001 Thomas Lynge 97 thomaslynge it c dk KMMT F2001 Tore Fornes 98 torefornes it c dk KTIT F2001 Ulf Toke 99 ulftoke it c dk KINT F2001 Ulrik Rasmussen 100 ur it c dk DIT F2001 Wajiha Rehman 101 missrehman it c dk KSWU F2001 Forkortelser DIT Diplomuddannelsen i Informationsteknologi KDKM Kandidatlinien i Design Kommunikation og Medier KEBUSS Kandidatlinien i Elektronisk Handel KINT Kandidatlinien i Internetteknologi KMMT Kandidatlinien i Multimedieteknologi KSWU Kandidatlinien i Softwareudvikling KTIT Kandidatlinien i Tværfaglig IT MDKM Masteruddannelsen i Design Kommunikation og Medier MINT Masteruddannelsen i Internetteknologi MMMT Masteruddannelsen i Multimedieteknologi MSWU Masteruddannelsen i Softwareudvikling UL Uden liniebetegnelse Bemærk kursusevalueringen starter Mon Mar 26 18 00 00 2001 This document was created using Standard ML on Mon Mar 26 15 56 58 2001 102 USEMAP icon totop gif opdateret 21 08 2000 103 wwwadm it c dk Visioner for en IT højskole Af Mads Tofte Direktør for IT højskolen i København Informationsteknologi IT er al teknologi hvor computere spiller en væsentlig rolle IT højskolen har til opgave at varetage forskning og uddannelse inden for informationsteknologi Hvorfor skal vi have en IT højskole Informationsteknologien gennemsyrer vores liv og påvirker næsten enhver arbejdsopgave IT er ikke længere noget som kun dataloger og ingeniører skal forstå sig på Det er i stigende grad nødvendigt at højtuddannede inden for alle fag udnytter teknologiens muligheder og forstår dens begrænsninger Vi taler frejdigt om informationsteknologien som om det er klart hvad den er Faktum er at den er alt andet end givet IT skabes i et dynamisk samspil mellem teknik design og mennesker Man kan ikke bruge en teknologi hvis man ikke ved hvad man vil bruge den til Det at opstille krav til systemer at designe systemer der er elegante og lette at bruge at bruge teknologi til at kommunikere med hinanden at forstå de udfordringer og muligheder IT rummer for vore virksomheder og studere det teoretiske grundlag for IT alle disse ting er tæt forbundet og fortjener at blive behandlet inden for en og samme organisation På IT højskolen vil vi skabe ny teknologi og finde nye måder at bruge den på Vi tror på at ny teknologi og nye anvendelser bliver skabt når mennesker med forskellig baggrund og faglighed mødes For at komme ind på IT højskolens kandidatstudium skal man have en bachelorgrad men det kan i princippet være en hvilken som helst bachelorgrad Vi vil skabe et studiemiljø der er udfordrende for alle studerende uanset deres faglige baggrund og det stiller store krav til såvel lærere som studerende Men det giver også mulighed for meget spændende former for uddannelse IT højskolen er skabt fordi der er brug for den Erhvervslivet og det offentlige har et meget stort udækket behov for højtuddannede med IT kompetencer Det er fint at vi i Danmark er kommet igang med at bruge computere men Danmark skulle nødig udvikle sig til udelukkende at være et IT brugerland Det er vigtigt at Danmark er med på den bølge af pionerånd og iværksættertrang som præger informationsteknologien andre steder i verden Forhåbentlig kan IT højskolen yde et markant bidrag til en sådan vækst til fordel for de studerende virksomhederne og samfundet generelt Hvad er IT højskolen Her er et kort over det faglige landskab som IT højskolen bevæger sig i image2 gif I det ene hjørne har vi den del af informationsteknologien som er baseret på naturvidenskaben datalogi matematik og ingeniørfagene I det andet hjørne har vi de humanistisk kunstnerisk kreative aspekter af informations teknologien f eks design af multimediepræsentationer IT psykologi design af brugergrænseflader og web design I det tredje hjørne har vi erhvervsfag f eks økonomi organisation og projektledelse Påstanden er at hvis man i fremtiden vil begå sig inden for informationsteknologien så skal man kende til alle tre hjørner og man skal være god til mindst en af de tre ting Nørden der sidder isoleret i det naturvidenskabelige hjørne mangler evnen til at lave systemer der sætter mennesket og brugen af teknologien i centrum Der er brug for personer der kan udvikle software som virker er elegant og let at bruge Tilsvarende er den designer der udelukkende ser computeren gennem sit grafikprogram forhindret i at udnytte teknologiens virkelige potentiale Og erhvervspersonen har brug for at forstå hvordan de kreative personer hvad enten de er til det matematiske eller det kunstneriske arbejder og hvordan deres viden og arbejdsform påvirker organisationen Men relationen mellem de forskellige faglige hjørner er mere end blot et tvungent samarbejde Det er en nøgle til succes Tænk på hvad en specialegruppe på IT højskolen vil kunne præstere hvis den er sammensat af en person fra hvert hjørne en ny teknisk ide realiseret som et funktionelt og æstetisk tiltalende produkt som passer ind i en forretningsplan Med andre ord Man vil have prototypen på en opstartsvirksomhed Masterplan for uddannelserne Når man prøver at kombinere meget forskellige fagligheder er der en fare for at man laver en uddannelse der har meget bredde men for lidt dybde Derfor er uddannelserne på IT højskolen organiseret i linier Som studerende bliver man optaget på en af linierne omend der vil være mulighed for at følge kurser fra andre linier IT højskolen arbejder med følgende linier som fordeler sig jævnt i trekanten Design kommunikation og medier Elektronisk handel Internetteknologi Multimedieteknologi Softwareudvikling Tværfaglig IT Yderligere information om disse uddannelser og andre uddannelser på IT højskolen findes på hjemmesiden 1 www itu dk Fælles for alle uddannelserne er at man hælder over til et af hjørnerne i trekanten men man skal også lære noget om de to andre hjørner For eksempel skal en softwareudvikler fra IT højskolen være dygtig til at programmere men vedkommende skal også kunne opstille krav til et system designe en god brugergrænseflade og forstå sig på projektstyring og økonomi Mulige jobprofiler er softwareudvikler projektleder IT chef og konsulent En kandidat i linien Design kommunikation og medier skal kunne arbejde teoretisk med for eksempel psykologiske aspekter af IT eller IT i et samfundsmæssigt perspektiv Men vedkommende skal også kunne designe web sider konstruere en multimediepræsentation og anvende teknologien på et højt niveau Mulige jobprofiler informationsmedarbejder mulitimedieproducent alle former for formidler af budskaber via de elektroniske medier webmaster salg og marketing En kandidat i Elektronisk handel skal kende til de juridiske og organisatoriske aspekter af elektronisk handel og skal forstå hvorledes elektronisk handel influerer på f eks forholdet mellem kunde og leverandør Dertil skal personen være velbevandret i de særlige tekniske problemer der er forbundet med e handel f eks sikkerhed beskyttelse af privatlivets fred elektronisk betaling distribuerede databaser og netværksteknologi Denne kombination af fagligheder er vigtig fordi elektronisk handel på mange måder revolutionerer vores måde at handle på og samtidig kun kan lade sig gøre hvis der er tilstrækkeligt mange personer der forstår sig på de teknologiske udfordringer elektronisk handel indebærer En kandidat i Internetteknologi skal have grundlæggende viden om de teknologier der til sammen udgør internettet Kandidaten skal forstå netværksteknologien som gør det muligt at kommunikere mellem to vilkårlige punkter på internettet og forstå og kunne anvende de grundlæggende principper for konstruktion af internetprogrammel Desuden skal kandidaten kende til hvilke muligheder internetteknologi giver for forbedrede samarbejdsformer og services i organisationer som bruger inter og intranet Kandidaten skal være i stand til at deltage i projekter med udvikling design konstruktion aftestning og vedligeholdelse af internetprogrammel Mulige jobprofiler er netværksspecialist ekspert i datasikkerhed udvikler eller driftsansvarlig indenfor et af følgende områder distribuerede internetløsninger kommunikationssoftware til f eks mobiltelefoner apparatsoftware internetbutikker distribuerede databaser eller sikkerhedskritisk udstyr En kandidat i Multimedieteknologi vil kende de grundlæggende problemer i at repræsentere og behandle billeder lyd og geometri i en computer Vedkommende skal forstå den tekniske opbygning af konkrete multimediesystemer men også forstå og kunne arbejde med de underliggende videnskabelige discipliner tale genkendelse signalbehandling billedanalyse datamatsyn mønstergenkendelse computergrafik animation virtual reality og kodning Oftest er det de underliggende teknologier der begrænser anvendeligheden af et system og en multimediesystemansvarlig må derfor mestre disse discipliner Mulige job profiler teknisk koordinator af udviklingsprojekter indenfor tv produktion industriautomation grafisk produktion hospitalsdigitalisering systemansvarlig indenfor samme områder forsker og innovator En kandidat i Tværfaglig IT skal kunne slå bro mellem IT og et andet fagområde Kandidaten skal dels have et solidt fundament i IT med fortrolighed i de forskellige aspekter af udviklingen af software Dels skal personen udnytte sin baggrund fra en bacheloruddannelse i et andet fag til at skabe sin helt særlige profil med en viden og indsigt i hvordan IT kan bruges i faget image16 gif Forskningen Forskningen på IT højskolen omfatter både grundforskning og teknologiudvikling Formålet med grundforskningen er at forfølge nye ideer for at få større forståelse af principper om informationsteknologiens væsen og brug Teknologiudviklingen drejer sig om at omsætte ny viden og indsigt til teknologi som gør det muligt at udnytte eller i hvert fald vurdere nytten af grundforskningen Forskningen omfatter meget forskellige emner alt lige fra at finde og løse år 2000 problemer i gamle COBOL programmer til at forstå de dybere matematiske mysterier i billedbehandling Flere emner kan ses på hjemmesiden 2 www itu dk Det kræver en ph d og dokumenteret forskningsexcellence at blive forsker på IT højskolen Dertil er det nødvendigt at have vilje til at strække sig fagligt i tråd med IT højskolens vision om at en ny faglighed skal vokse i samspillet med de eksisterende Forskningen skal have internationalt format og der skal være levende kontakt med forskning i ind og udland Forskningen behøver ikke at være direkte orienteret mod anvendelse men den del af forskningen der er anvendelsesorienteret skal afprøves i praksis meget gerne gennem samarbejde med virksomheder eller ved opstart af nye virksomheder Samtidig skal der også være plads til grundforskningen Det har altid været vigtigt at forstå grundlæggende principper og jo mere informationsteknologien omfatter jo mere akut bliver behovet for dyb indsigt Ellers ender vi med et babelstårn af dimser som ikke kan kommunikere med hinanden eller med os Vi skal give os den tid og de ressourcer det kræver at udvikle de teorier og principper som kan give os en lille smule orden i det kaos som givetvis altid vil være der Det er gennem ny indsigt der skabes grundlag for de helt store forandringer Det kan være en enkelt genial id som fører til en teknologisk revolution Men ofte som i tilfældet Java er det en kop af viden og indsigt der langsomt er fyldt op af forskerne en kop der til sidst løber over og resulterer i hvad der virker som en teknologisk revolution Derfor er det vigtigt at vi på IT højskolen hæger om forskningsmiljøerne så de både kan finde nye stier og sørge for at små stier kan blive til rigtige veje Image3 jpg Grundlaget for etablering af IT højskolen i København IT højskolen er etableret som et frifakultet i henhold til 12 stk 1 i universitetsloven af 23 december 1992 med senere ændringer Etableringen er sket på baggrund af rapport afgivet af udvalg om styrkelse af IT uddannelser og forskning hvilket udvalg blev nedsat i maj 1998 af forskningsministeren og undervisningsministeren Det bevillingsmæssige grundlag for IT højskolens etablering er Forskningsministeriets aktstykke nr 138 af 9 marts 1999 som er tiltrådt af finansudvalget den 17 marts 1999 Handelshøjskolen i København HHK Roskilde Universitetscenter RUC og Danmarks Tekniske Universitet DTU har som konsortium indstillet Handelshøjskolen som værtsinstitution for IT højskolen Efter godkendelser af Handelshøjskolens styrelsesråd og konsistorium er Handelshøjskolen af Forskningsministeriet efter samråd med bestyrelsesformanden og undervisningsministeren udpeget som værtsinstitution Udpegningen af Handelshøjskolen som værtsinstitution er gældende indtil den 31 august 2004 IT højskolen er en del af den selvejende institution HHK Den kompetence og det ansvar der er tillagt Styrelsesrådet for Handelshøjskolen i København jf 4 i Undervisningsministeriets bekendtgørelse om styrelse af Handelshøjskolen i København nr 340 af 21 juni 1974 er i henhold til disse vedtægter tillagt bestyrelsen for IT højskolen Hvis værtsskabet flyttes eller IT højskolen omdannes til en selvstændig institution udskilles den til IT højskolen hørende formue fra HHK s formue Med henblik herpå føres der særskilt formueregnskab for IT højskolen Retningslinierne herfor godkendes af Forskningsministeriet VEDTÆGTER for IT højskolen i København IT C the IT University of Copenhagen I Navn og hjemsted 1 Frifakultetets navn er IT højskolen i København Højskolens hjemsted og værneting er Frederiksberg Kommune II Formål 2 IT højskolen har til formål at drive forskning og give undervisning inden for informationsteknologi IT højskolen skal tilstræbe et offentligt privat samspil i såvel uddannelse som forskning og skal medvirke til at styrke det tværinstitutionelle samarbejde mellem IT uddannelses og forskningsinstitutioner IT højskolen skal udvikle og gennemføre uddannelsesprogrammer der er attraktive for et stort antal personer og som er egnet til at bibringe dem IT kompetencer der er relevante i forhold til den til enhver tid værende efterspørgsel IT højskolen skal desuden gennem sin forskning bidrage til videnskabelig og industriel innovation III Økonomisk grundlag 3 Det økonomiske grundlag for IT højskolen tilvejebringes fortrinsvis ved årlige bevillinger til anlæg drift og forskning under Forskningsministeriet samt uddannelsestaxameterbevillinger under Undervisningsministeriet midler fra private forskningsmidler fra nationale og EU forskningsprogrammer samt indtægtsdækket virksomhed IT højskolens ledelse råder over IT højskolens bevillinger øvrige indtægter og tilskud Midlernes administration opbevaring m v fastlægges i en administrationsaftale med værtsinstitutionen IV Organisatoriske forhold A Ledelse 4 IT højskolen ledes af en bestyrelse og en direktør Bestyrelse 5 Bestyrelsen udpeges af forskningsministeren i samråd med undervisningsministeren Bestyrelsen består af 9 medlemmer 5 medlemmer der repræsenterer aftagersiden og 4 medlemmer der repræsenterer universiteterne Bestyrelsens formand udpeges blandt aftagerrepræsentanterne af forskningsministeren i samråd med undervisningsministeren Universitetsrepræsentanterne udpeges efter indstilling fra den uddannelsesinstitution der er vært for IT højskolen og skal medmindre forskningsministeren måtte træffe anden afgørelse så vidt muligt bestå af rektorerne for Københavns Universitet KU RUC DTU og HHK Bestyrelsens medlemmer beskikkes for en periode af 5 år Genbeskikkelse kan finde sted Forskningsministeren kan bestemme at bestyrelsen suppleres med 1 medarbejderrepræsentant og 1 studenterrepræsentant Bestyrelsen fastlægger de nærmere regler for valg af disse repræsentanter 6 Bestyrelsen træffer afgørelser ved simpel stemmeflerhed dog kræves til vedtagelse af forslag at mindst 7 medlemmer af bestyrelsen er til stede samt at 5 af de af forskningsministeren og efter samråd med undervisningsministeren udpegede bestyrelsesmedlemmer stemmer for forslaget Bestyrelsen kan træffe afgørelser ved skriftlig votering dog ikke i spørgsmål om vedtægtsændringer og budgetgodkendelse 7 Bestyrelsen 1 ansætter og afskediger direktøren for IT højskolen 2 fastlægger overordnede retningslinier for IT højskolens forskning og uddannelser samt godkender forslag vedrørende IT højskolens langsigtede virksomhed og udvikling 3 godkender efter indstilling fra direktøren oprettelse af studienævn 4 fastlægger IT højskolens uddannelsesudbud 5 godkender studieordninger efter oplæg fra studienævnet og indstilling fra direktøren og tildeler ressourcer i overensstemmelse med det af bestyrelsen godkendte budget 6 nedsætter sagkyndige udvalg til bedømmelse af videnskabelige arbejder med henblik på erhvervelse og tildeling af ph d og dr grader 7 godkender efter indstilling fra direktøren IT højskolens budget og regnskab 8 godkender efter indstilling fra direktøren overordnede retningslinier for optagelsesprocedurer 9 foretager efter oplæg fra direktøren løbende opfølgning og kontrol af IT højskolens regnskab og økonomi Bestyrelsen kan bemyndige bestyrelsesformanden til at træffe beslutninger på bestyrelsens vegne Bestyrelsen foranlediger udarbejdet en forretningsorden for bestyrelsens arbejde Bestyrelsesmøder afholdes efter behov dog minimum 4 gange om året Bestyrelsens aftagerrepræsentanter modtager særskilt vederlag i overensstemmelse med statens regler 8 Bestyrelsesformanden 1 godkender efter indstilling fra direktøren samarbejds og udliciteringsaftaler med andre universiteter og institutioner 2 godkender efter forslag fra direktøren indstillinger til Forskningsministeriet om oprettelse af professorater 3 godkender efter indstilling fra direktøren og efter samråd med rektor for værtsinstitutionen sammensætningen af bedømmelsesudvalg til videnskabelige stillinger 4 godkender efter indstilling fra direktøren og efter samråd med rektor for værtsinstitutionen ansættelse og afskedigelse af professorer og ledende personale 5 godkender efter indstilling fra direktøren rammerne for individuelle lønforhandlinger meddeler fuldmagter til at direktøren alene eller sammen med andre kan forpligte IT højskolen i forbindelse med den daglige ledelse og drift af IT højskolen 6 repræsenterer bestyrelsen indadtil og udadtil 7 træffer beslutninger på bestyrelsens vegne efter bemyndigelse af denne 9 Direktøren 1 er ansvarlig over for bestyrelsen i ethvert spørgsmål Direktøren har ansvaret for den daglige ledelse af IT højskolen Ledelsesretten omfatter alt personale der har tjenestested på IT højskolen jf 20 2 disponerer IT højskolens bevillinger og indtægter i øvrigt i overensstemmelse med de af bestyrelsen godkendte budgetter og retningslinier samt gældende lovgivning og bevillingsforudsætninger 3 udarbejder forslag vedrørende IT højskolens langsigtede virksomhed og udvikling 4 er ansvarlig for udarbejdelse af forslag til budget og aflæggelse af regnskab samt for at holde bestyrelsen løbende underrettet om IT højskolens økonomiske udvikling 5 ansætter og afskediger IT højskolens personale Ledende personale og professorer ansættes og afskediges efter godkendelse fra bestyrelsesformanden 6 opretter efter forudgående godkendelse af bestyrelsesformanden og forskningsministeren professorater 7 indstiller til bestyrelsesformanden sammensætningen af bedømmelsesudvalg til videnskabelige stillinger 8 forhandler og aftaler løn og ansættelsesvilkår hvor gældende aftaler og overenskomster giver hjemmel hertil inden for rammer godkendt af bestyrelsesformanden 9 fastlægger størrelsen af studienævn bestemmer om der skal afholdes indirekte valg til et studienævn gennem valg af et fagudvalg herunder hvornår og for hvor lang en periode dette valg skal finde sted sikrer udskrivelse af valg til studienævn og fagudvalg og godkender valgresultater 10 godkender studieledere og godkender og indstiller til bestyrelsen studieordninger efter oplæg fra studienævnene 11 indstiller til bestyrelsesformandens godkendelse samarbejds og udliciteringsaftaler med andre universiteter og institutioner Direktøren er endvidere ansvarlig for at IT højskolen til enhver tid overholder gældende lovgivning og regler og er pligtig at foretage enhver anden handling der er nødvendig til god og forsvarlig ledelse af IT højskolen hvadenten sådanne handlinger måtte være beskrevet i nærværende vedtægt eller ej B Nævn og udvalg 10 Studienævn Der etableres studienævn der dækker de enkelte uddannelser linjer eller flere uddannelser linjer Til studienævn for uddannelser linjer der ikke er udliciteret jf 18 vælges et antal VIP videnskabeligt personale og studerende VIP vælges af og blandt de VIP der underviser på uddannelserne linjerne og har tjenestested på IT højskolen jf 20 De studerende vælges af og blandt de studerende der er indskrevet på uddannelserne linjerne Til studienævn for uddannelser linjer der er udliciteret i deres helhed jf 18 vælges et antal VIP og studerende VIP vælges af og blandt de VIP der underviser på uddannelserne linjerne uanset ansættelsessted De studerende vælges af og blandt de studerende der er indskrevet på uddannelserne linjerne Til studienævn for uddannelser linjer der er delvist udliciteret jf 18 vælges et antal VIP og studerende VIP vælges af og blandt de VIP der underviser på uddannelserne linjerne og har tjenestested på IT højskolen jf 20 De studerende vælges af og blandt de studerende der er indskrevet på uddannelserne linjerne Der kan i de konkrete udliciteringsaftaler indsættes bestemmelser om at VIP der underviser på uddannelserne linjerne men som ikke har tjenestested på IT højskolen jf 20 kan blive tildelt en plads i studienævnet I så fald overlades det til den uddannelsesinstitution som udliciteringsaftalen er indgået med at udpege institutionens repræsentant i studienævnet Til studienævn der dækker flere uddannelser linjer kan medlemmerne vælges ved indirekte valg Der vælges i så fald et fagudvalg på hver uddannelse linje Til fagudvalget vælges et antal VIP videnskabeligt personale og studerende VIP vælges af og blandt de VIP der underviser på uddannelsen linjen og har tjenestested på IT højskolen jf 20 De studerende vælges af og blandt de studerende der er indskrevet på uddannelsen linjen VIP i fagudvalget vælger af deres midte en VIP til studienævnet De studerende i fagudvalget vælger af deres midte en studerende til studienævnet Til studienævn hvor medlemmerne er valgt ved direkte valg vælger studienævnet af sin midte blandt sine VIP medlemmer en formand Studienævnet vælger blandt de studerende en næstformand Til studienævn hvor medlemmerne er valgt ved indirekte valg gennem fagudvalg vælges formanden og næstformanden ved direkte valg Formanden vælges af og blandt de VIP der underviser på uddannelserne linjerne og har tjenestested på IT højskolen jf 20 og næstformanden af og blandt de studerende der er indskrevet på uddannelserne linjerne Næstformanden deltager i tilrettelæggelsen af studienævnets arbejde Formanden for et studienævn er tillige studieleder Studienævn udarbejder oplæg til studieordninger og fastlægger studieplaner for den eller de pågældende uddannelser linjer i overensstemmelse med de af bestyrelsen godkendte studieordninger 11 Der nedsættes indtil videre et interimstudienævn som sammensættes af bestyrelsen efter indstilling fra direktøren Interimstudienævnet fungerer indtil ordinære studienævn etableres Bestyrelsen fastlægger interimstudienævnets funktionsperiode som ikke må overskride et år Andre nævn og udvalg 12 Der etableres for IT højskolen eget samarbejds og sikkerhedsudvalg IT højskolen omfattes ikke af værtsinstitutionens samarbejdsudvalg og sikkerhedsudvalg 13 For nedsættelse af nævn og råd i øvrigt i henhold til denne vedtægt eller bestyrelsens beslutning gælder at i det omfang der skal vælges kandidater til sådanne nævn og råd skal de pågældende have tjenestested på IT højskolen jf 20 eller være tilmeldt som studerende ved IT højskolens uddannelser medmindre bestyrelsen måtte træffe anden beslutning 14 Centerråd Bestyrelsen kan beslutte at nedsætte et centerråd og fastlægger i så fald retningslinier for dets sammensætning og virke 15 Administration m v IT højskolen indgår med værtsinstitutionen aftale om bistand for så vidt angår administrative opgaver mod dækning af værtsinstitutionens dermed forbundne omkostninger Aftalen skal godkendes af forskningsministeriet 16 Rektor ved værtsinstitutionen er ansvarlig for legalitetskontrollen og bevillingskontrollen Klager behandles i overensstemmelse med de til enhver tid gældende regler herfor og indgives til rektor for værtsinstitutionen som videresender klagen til den relevante klageinstans Klager over IT højskolens personale behandles af IT højskolen Klage over en afgørelse truffet af IT højskolen vedrørende IT højskolens personale kan for så vidt angår retlige spørgsmål behandles af rektor for værtsinstitutionen Klager over andet personale end IT højskolens personale behandles af den institution hvor den pågældende medarbejder er ansat Klager over eksamen behandles af IT højskolen i overensstemmelse med de til enhver tid for eksamensklager gældende regler herunder de relevante uddannelsesbekendtgørelser 17 Værtsinstitutionen udsteder eksamensbevis for de uddannelser der udbydes af IT C Eksamensbeviser designes af IT C efter samråd med værtsinstitutionen 18 IT højskolen vil som et led i at koordinere og styrke IT uddannelserne i regionen indgå udliciteringsaftaler om uddannelsessamarbejder med HHK RUC DTU og KU samt andre uddannelsesinstitutioner Sådanne aftaler skal være skriftlige og skal sikre IT højskolens faglige indflydelse på og evaluering af sådanne udliciterede uddannelser 19 Værtsinstitutionen og konsortiets øvrige universiteter involveres i øvrigt i IT højskolens virke via repræsentation i IT højskolens bestyrelse C Personale 20 Ansættelsessted for IT højskolens personale er indtil videre Handelshøjskolen i København med tjenestested ved IT højskolen i København V Uddannelse og forskning 21 IT højskolen udbyder uddannelser på master diplom kandidat og Ph D niveau samt kortere videre og efteruddannelsesforløb samt kursusvirksomhed 22 Uddannelserne skal være forskningsbaserede IT højskolen skal frembringe attraktive alternativer og supplementer til de eksisterende uddannelsestilbud på IT området Uddannelsestilbuddene skal tilrettelægges og gennemføres på en sådan måde at der sikres høje gennemførelsesprocenter uden at kompromittere det faglige niveau Der skal således skabes fleksible rammer for undervisningen der bl a skal åbne mulighed for fjernundervisning og hjemmeuddannelsespladser IT højskolen skal kunne tilbyde stor fleksibilitet for studerende og undervisere og samtidig etablere et kompakt integreret attraktivt undervisnings og forskningsmiljø 23 Det påhviler IT højskolen at nedsætte et eller flere rådgivende IT foresight paneler bestående af såvel repræsentanter for aftagere som forskere med henblik på at gøre IT højskolens forskningsaktiviteter og uddannelsesudbud fremtidsorienterede 24 Undervisningsministeriet udarbejder uddannelsesbekendtgørelser og godkender uddannelsesudbuddet for så vidt Master Diplom og kandidatuddannelser VI Evaluering 25 Med henblik på at vurdere IT højskolens langsigtede organisationsform og dens evne til at nå de opstillede krav og mål iværksætter bestyrelsen i samarbejde med forskningsministeren en ekstern evaluering af IT højskolen Resultatet af evalueringen skal foreligge ved udgangen af år 2003 VII Vedtægtsændringer 26 Bestyrelsen kan fremsætte forslag til ændringer af nærværende vedtægter Vedtagelse af ændringsforslag til vedtægterne kræver i tillæg til reglerne i 6 at mindst 6 bestyrelsesmedlemmer stemmer for forslaget Vedtægtsændringer skal godkendes af værtsinstitutionens ledende organer og af forskningsministeren VIII Tegning 27 IT højskolen tegnes af bestyrelsens formand sammen med enten direktøren eller et andet bestyrelsesmedlem IX Regnskab og revision m v 28 Bestyrelsen kan antage ekstern bistand til kontrol og styring af IT højskolens budgetter og regnskabsrapportering IT højskolen indgår udviklingskontrakt med Forskningsministeriet og udarbejder særskilt virksomhedsregnskab og forskningsårsberetning X Ikrafttræden 29 Nærværende vedtægter træder i kraft 1 marts 2000 o0o Vedtaget på konsistoriums møde d Finn Junge Jensen Rektor Vedtaget på styrelsesrådsmøde d Niels Kjeldsen Direktør På bestyrelsens vegne for IT højskolen i København Mogens Munk Rasmussen Bestyrelsesformand Mads Tofte Direktør Godkendt af Forskningsministeriet den Forslag til studenterprojekter IT højskolen i København Forår 2000 Nedenfor findes korte beskrivelser af de indkomne projektforslag fra ansatte og studerende Firmaet Agency com Copenhagen tidligere Visionik A S tilbyder også en række forskellige projekter 1 de kan ses her Cardio megali Jesus og hjertet Beskrivelse En web baseret audiovisuel installation der skal indgå som n ud af 24 selvstændige scener under forestillingen jesus c odd size en forestilling af Hotel Pro Forma under ledelse af Kirsten Dehlholm der udspiller sig i området omkring og på Malm Hogskola i Malm Cardio megali skal ses som et selvstændigt værk der efter forestillingen skal formidles videre til udvalgte web kunstmuseer En installation på webben der vil indeholde audio visuelle billeder Cardio megali opbygges så den får karakter af collage stoflighed rumlighed en sammenstykning af billeder i nye konstellationer hvor du aldrig ser den første sandhed Et sammenstød af tid i et elektronisk rum Deadline for siten d 4 september 2000 Den visuelle oplevelse skal underbygges af en teknisk kunnen der gør oplevelsen af navigation gådefuld Omfanget af siten vil være afhængig af vores økonmiske fundament vores budget bygger på 15 images Målgruppe forudsætninger Cardio megali tænkes primært blive produceret i Flash 4 0 Dette program er valgt fordi det giver mulighed for høj grad af interaktion Lingo programmering Interaktionen skal give cardio megali en stor fremdrift i dialog med brugeren uden at siten bliver for tungt til webben Cardio megali skal have spil karakter dog uden fast løsning eller afslutning Fremdriften opnås ved dynamisk tilpasning til brugerens adfærd ved hjælp af registrering af brugerens hit mouse over på billeder symboler og tekst i kombination med en random funktion Dette skulle føre til fornemmelse af en systematik som dog til stadighed brydes Nuværende medlemmer af gruppen kontaktpersoner Nikolaj de Fine Licht 2 nikolaj itu dk undervisningsassistent pt ingen ITU studerende Derudover Anette Væring 3 vaering hotmail com projektleder og Peter Dammand 4 dammanddesign get2net dk grafiker Der er tilknyttet følgende konsulenter Kirsten Dehlholm Hotel Pro Forma dr med Jesper Trillingsgaard lektor dr theol Troels Nørager avatar researcher John Westworth Oplæg den 14 april Dorit Shoshan Beskrivelse Oplæg til kommunikationsplan og dummy produktion af et web site for tøjdesigner Dorit Shoshan som er rekvirent Ekstern opdragsgiver Målgruppe forudsætninger Web design I II Projektledelse Interaktionsdesign og Grafisk Design Nuværende medlemmer af gruppen Thomas Lyngdam Pedersen 5 Lyngdam itu dk 32 96 24 21 Therese Juncker 6 Juncker itu dk 45 42 59 16 20 61 17 92 Erik Hansen Hansen 7 Eh itu dk 40 74 91 96 Kontaktperson Therese Juncker 8 Juncker itu dk Oplæg den 14 april Net Virksomhed Beskrivelse I samarbejde med 3 udøvende arkitekter ønsker vi at lave et forslag til hvordan en netbaseret arkitektvirksomhed kunne se ud Udgangspunktet er at skabe et website med en tilhørende arbejdsplatform i form af et intranet På intranetsiden ligger firmaets aktuelle arbejdsprojekter med tilhørende konferencer og evt synkron arbejds og evalueringsmulighed Inden for mange brancher er dette en ny arbejdsform som skaber mulighed for et kommunikations og interaktionsforum uafhængig af tid og sted Konceptet øger muligheden for dialog og samarbejde mellem klient og firma under projekters tilblivelse Målgruppe forudsætninger Vi er allerede 2 DKM er som gerne vil tage os af konceptplanlægning og website Vi mangler nogle friske programmører som syntes det kunne være en udfordring at udarbejde et mindre program til intranetdelen Nuværende medlemmer af gruppen kontaktperson Susanne Bendixen 9 susb itu dk og Hanne Beier Sørensen 10 hanne itu dk 2 Semester DKM Oplæg den 14 april Ja Konceptudvikling af software til børn Beskrivelse Multimediekoncept en art hjemmesideprogram for børn Målgruppen er 8 11 årige en gruppe der oftest må tage til takke med spøgelser med forkølelser og skeletter med kasketter Vores mål er at udvikle et koncept der giver muligheder for en mere aktiv tilgang til computermediet end de traditionelle produkter til børn giver en art voksen it for børn Vægten lægges på brugernes egen kreativitet og produktivitet og ikke så meget på spilleelementer Vi vil fokusere på ide og konceptudvikling og knap så meget den tekniske implementering Målgruppe forudsætninger Projektet retter sig mod web1 og interaktionsdesign Nuværende medlemmer af gruppen Astrid Dyhr Pedersen 11 astridity itu dk Christine Fyhn 12 christine itu dk Rune Mejlvang 13 runem itu dkrunem itu dk Kontaktperson Astrid Dyhr Pedersen 14 astridity itu dk Oplæg den 14 april Nørrebro portal Beskrivelse Når man søger efter en speciel butik eller f eks et galleri på nettet er det en fordel på forhånd at vide hvad man er ude efter Det betyder at de på forhånd kendte etablerede forretninger står bedst i kampen om internetkunder Der findes på nuværende nogle få blandt andre http www aok dk guides over hvad der findes af små butikker gallerier i København Men vi mener at det kan gøres bedre Vores id går i alt sin enkelthed ud på at lave designet til en hjemmeside der informerer reklamerer om de små butikker gallerier og cafeer på Nørrebro som ikke har råd til at stå alene i den store kamp om internetkunderne Projektet skal lede frem til en oversigts hjemmeside over udvalgte selvbestaltede butikker med kunsthåndværk tøj musik gallerier evt også cafeer og små restauranter At f eks også en fynbo kan få bruge internettet og derigennem få informationer om hvad der sker af latinerkvarter agtige ting på Nørrebro Ikke så meget en traditionel E handels site men om arrangementer nye tiltag butikker fælles galleri ferniseringer vi anbefaler En kultur Nørrbro butikker portal Ideen kunne udvikle sig til også at indeholde en tilsvarende Vesterbro portal Odense portal osv Det følgende er kun forslag til indhold og kan selvfølgelig ændres En analyse af tilsvarende også udenlandske hjemmesider der vil noget tilsvarende Findes der f eks en god Underground hjemmeside om de kunstgallerier i Berlin Hvad er der godt skidt ved f eks Alt om København En målgruppeanalyse Hvem hvad hvorfor og alt det Design En løsning der ikke dominerer de deltagende forretninger i sit design Men fungerer som effektiv oversigt Teknisk realisering Især om hensigtsmæssig database og opdatering En prototype hjemmeside som på grund af opgavens omfang nok kun kan blive delvis fungerende Målgruppe forudsætninger Må meget gerne bestå af folk på tværs af linierne Ideelt set skal projektgruppen bestå af folk med forskellig viden og interesse for 1 design 2 brugerperspektiver 3 realisering af hjemmeside 4 Databaseløsninger blandt andet om effektiv opdatering Nuværende medlemmer af gruppen På nuværende tidspunkt gruppen lidt usikker men består af 3 DKMer Karin Katja og Viktor Kontaktperson Viktor Rasmussen Tlf 35 39 32 82 E mail 15 viktor itu dk Oplæg den 14 april www skole it dk version 2 0 Beskrivelse Analyse af eksisterende website med henblik på konceptudvikling og demoversion af en ny website med baggrund I erfaringer med den eksisterende site Tanken er en konceptudviklingsfase der tager udgangspunkt i de gode og dårlige sider ved sitet Vi vil også tage udgangspunkt i de erfaringer folkene bag Skole IT har haft med sitet og med webdelen af kurset Spørgsmål i projektet Er det fjernundervisning med udgangspunkt der ligner det traditionelle PC kørekort eller er læringsbegrebet overvejet I forhold til fjernundervisning Ligner sitets struktur normale undervisningmaterialer eller bruges mediets muligheder for interaktion og alternative strukturer Opgaven er tænkt som en samlet pakke sammen med eksamensopgave i Introduktion til IT som medie Målgruppe forudsætninger DKM med fagene Interaktionsdesign og Webdesign I Nuværende medlemmer af gruppen Carsten Schmidt 16 cs itu dk Sune Børsen 17 suneb itu dk Gruppen er halv lukket Kontaktperson Carsten Schmidt 18 cs itu dk Sune Børsen 19 suneb itu dk Oplæg den 14 april FYSIO COM hjemmeside Beskrivelse Ideen er kommet i forlængelse af den nye rapport om arbejdsmiljøet på ITU foretaget af en gruppe fysioterapeut studerende De har indsamlet en stor mængde viden om sådan nogle som os der sidder og kæmper med ondt i nakke og arm på grund af computerarbejde Jeg har kontakt meden af rapportens forfattere som er interesseret i at der samarbejdes Formålet er at kreere en hjemmeside hvor man blandt andet kan få gode råd og f eks downloade hjælpeprogrammer vedrørende computerskader En slags net doktor specielt for IT folk Det følgende er kun forslag til indholddet og kan selvfølgelig ændres Et afsnit om de vigtige af rapportens pointer som det vil være relevante at indbygge hjemmesiden Ideen er ikke ny se bl a http www computer smerter dk Derfor bør opgaven indeholde en analyse af andres løsninger på hvordan sådan en site bør se ud En målgruppeanalyse Hvem hvad hvorfor og alt det Design Teknisk realisering En id der sikkert heller ikke er ubetinget ny kunne være at lave et program der fortæller brugeren at man nu har siddet og arbejdet ved sin computer i f eks 45 min og at det er tid til at lave armbøjninger En hjemmeside som selvfølgelig helst skal være fuldt fungerende Eventuelt udviklet specielt til ITU s intranet Målgruppe forudsætninger Kunne gerne bestå af folk på tværs af linierne Projektgruppen kunne f eks bestå af folk med forskellig interesse for 1 design 2 brugerperspektiver 3 realisering af hjemmeside 4 programmering af eksempelvis små downloads Nuværende medlemmer af gruppen NB Gruppen har på nuværende tidspunkt ingen medlemmer Formentligt heller ikke undertegnede da jeg er med på en anden id Men det kunne jo være der var nogle andre der ville tage id en op Kontaktperson Chr Viktor Rasmussen Jeg læser på første semester DKM linien og er sociolog uden speciale fra Københavns Universitet Tlf 35 39 32 82 E mail 20 viktor itu dk Oplæg den 14 april www museumguide dk Beskrivelse Www museumsguide dk er en web baseret museumsguide hvis formål er at gøre det lettere for den alment kunst og kultur interesserede at få adgang til information om museer til museale samlinger web udstillinger Ideen er at museumsguiden ikke blot skal være en guide til museer den skal ligeledes inddrage nogle af de nye formidlingsmuligheder der ligger i web mediet Projektets fem faser 1 Konceptudvikling ideforslag design lay out osv 2 Udarbejdelse af site 3 Brugertest tilgængelighed funktionalitet etc 4 Markedsføring økonomi 5 Vedligeholdelse og videreudvikling Udelades i 4 ugers projektforløbet Mulige eksterne opdragsgivere kunne være Kulturnet Danmark Nationalmuseet m fl Målgruppe forudsætninger Projektet formodes at være relevant for studerende på linjerne Design Kommunikation og Medier Internetteknologi Multimedieteknologi Nuværende medlemmer af gruppen Gruppen er åben for flere deltagere 2 stk og består d d af Stig Sloth Christensen 21 stigsc itu dk og Kim Jacobsen 22 kjacobsen itu dk begge fra DKM linjen 1 semester Der kan tages kontakt til begge Kontaktperson Stig Sloth Christensen 23 stigsc itu dk og Kim Jacobsen 24 kjacobsen itu dk Oplæg den 14 april Karrieredagene dk Beskrivelse Studenterorganisationen Aiesec har gennem de sidste 15 år afholdt en karrieremesse hvor studerende på videregående uddannelser har mulighed for at komme i kontakt med virksomheder Aiesec har siden sidste år haft et website hvor de studerende kan indhente information omkring messen www karrieredagene dk men der er endnu ingen business to business side for virksomheder og organisationer Projektet går ud på at lave en side for de virksomheder som enten allerede deltager i Karrieredagene eller kunne have interesse i at gøre det fremover Der skal derfor være et oplysende markedsførende element for nysgerrige samt praktiske funktioner for de virksomheder der allerede er tilmeldt arrangementet Elementer i opgaven design af siden tekst informationsbearbejdning udvikling af databaser til behandling af brugernes specifikke informationer Anvendelse Eftersom vi har kontakt med Aiesec både før under og efter forløbet er der mulighed for at resultatet bliver brugt i deres fremtidige arbejde og markedsføring Målgruppe forudsætninger Vi læser på DKM og kunne godt tænke os at arbejde sammen med studerende fra andre linjer for at få en større bredde i arbejdet Eftersom vi primært beskæftiger os med konceptudvikling design informationsbehandling o lign ville det være perfekt hvis nogen med en mere teknisk indfaldsvinkel har lyst til at deltage i projektet men det er absolut intet krav Eftersom vi allerede er to personer er der plads til op til yderligere to deltagere Nuværende medlemmer af gruppen Malin Lindeblad 25 malin itu dk 33216052 og Heidi Møller 26 heidimarie itu dk 39273087 Kontaktperson Malin Lindeblad 27 malin itu dk Oplæg den 14 april 3 D Internet Community Beskrivelse Vores vision er at skabe et tredimensionelt miljø i forlængelse af distributionen af musik i digitalt form Konkret er der tale om et samtaleforum i tredimensionelle rammer Med udgangspunkt i 3d modellering og VRML teknologien ønsker vi således at skabe et fokuseret tredimensionelt rum for kommunikation der er målrettet mod den kunstneriske udvikling af musik Rummets arkitektur vil stå i musikkens tegn Således skal rummets arkitektoniske fremtræden baseres på metaforer der hentes fra musikkens verden Koncertsalen festivalpladsen øvelokalet osv kunne være konkrete eksempler på genkendelige lokaliter Mere abstrakte metaforer for musik som man eksempelvis finder dem i Kandinskys kunst kunne ligeledes med fordel etableres som tredimensionelle lokaliteter Disse lokaliteter vil udgøre en inspirerende og provokerende kontekst for samtale om musik Rammerne for samtalen vil tvinge brugeren til at forholde sig til musik og ønskeligt være med til at stimulere en frugtbar kunstnerisk udfoldelse Projektets formål er altså konkret såvel som konceptuelt at udvikle et 3 D Internet community med fokus på musik Den eksterne rekvirent er Det Virtuelle Pladeselskab aps Målgruppe forudsætninger Projektet er rettet mod deltagerne på DKM s 3 D modelleringskursus Nuværende medlemmer af gruppen Lars Rune Christensen Simon Jørgensen Helene Madsen Alle fra DKM linien Gruppens er åben for flere deltagere Kontaktperson Lars Rune Christensen 28 Lrc itu dk Oplæg den 14 april TranzMobil Beskrivelse Tranzistor er en udergrunds netradio som har til formål å promotere den københavnske DJ og club scene Tranzistor består av 10 frivillige og ulønnede medarbeidere samt ca 30 40 løst tilknyttede DJs Tranzistor vil inn på det håndholdte markedet og planlegger å sette opp en WAP tjeneste Siden skal i første omgang bestå av en kalender med oversikt over hva som skjer på klub og konsert stedene i københavn Det skal være mulig for utsendte Tranzistor medarbeidere å oppdatere siden via håndholdte enheter og en database slik at brukerne kan få en fortløpende tilstandsrapport over de ulike arrangementene Målgruppen er hovedsakelig unge mennesker som benytter seg av det københavnske nattelivet og mobiltelefoni med andre ord early adaptors av begge kjønn i alderen 17 til 30 Oppgaven består derfor i å konstruere en WAP side tilknyttet en database hvor brukerne kan hente og legge inn information Det legges vekt på at siden skal være hurtig og brukervennlig og at det taes høyde for mediets begrensniger Målgruppe forudsætninger Opgaven har relevanse i følgende fag WW2 WW1 Målgruppeanalyse Nuværende medlemmer af gruppen Gruppen er delvis åpen og består så langt av Henrik Norberg 29 norberg itu dk Mikkel Cauchi 30 mc itu dk Kontaktperson Henrik Norberg 31 norberg itu dk Oplæg den 14 april Grundlæggende Programmering som fjernundervisning Beskrivelse Udvikling af koncept for fjernundervisning på IT C med faget Grundlæggende Programmering som konkret eksempel Vi kommer til at arbejde med design funktionalitet tekniske betragtninger kommunikation og pædagogik inden for netbaseret undervisning Opgaven skal munde ud i et forslag som IT C kan bygge videre på når de skal udvikle deres fjernundervisnings program Målgruppe forudsætninger Vi søger en tredje partner med pædagogisk og eller undervisnings erfaring fx lærer pædagog Det er ikke nødvendigt at vedkommende har fulgt kurset Nuværende medlemmer af gruppen Anders Skovgaard Petersen DKM David Simonsen INT Kontaktperson David 32 david studnet dk 35370202 149 Anders 33 post bagmanden dk 35370202 121 Oplæg den 14 april Nej Online introduktionslektioner for kommende itu studerende Beskrivelse Der skal udvikles et koncept til online undervisning af kommende studerende på itu Formålet er at hæve det teknisk faglige niveau ved at gøre grundlæggende færdigheder tilgængelige for alle studerende via online undervisning inden studiestart Projektet skal udvikle et koncept en struktur og en brugerflade til undervisnings forløbet i overensstemmelse med feks pædagoisk teori og teori og brugerfladedesign Konceptet skal omfatte tre elementer et undervisningsforløb en database med ordforklaringer og sider med links og litteraturhenvisning til videre læsning Der skal produceres en prototype eller en dummy men der skal ikke udvikles et færdigt produkt Målgruppe forudsætninger De nye studerende og i et vist omfang nuværende studerende Nuværende medlemmer af gruppen Lori Webb 34 webb itu dk Ida Wang Carlsen 35 iwc itu dk Karl Kjær 36 karl itu dk Vi har en god gruppe og er så småt gået i gang Men vi er åbne hvis du er interesseret og for eksempel har en pædagoisk baggrund eller lignende Kontaktperson karl itu dk Oplæg den 14 april Ja gerne men primært med henblik på lidt feedback Anvendelse af systemudviklingsmetoder Beskrivelse Anvendelse af en konkret systemudviklingsmetode på et mindre projekt Det kunne fx dreje sig om anvendelse af objekt orienteret analyse og design til beskrivelse og specifikation af en mindre case fx administration af IT C s bibliotek Hvis der er interesse for det og ressourcer nok i gruppen kan dele af det eventuelt også programmeres og testes Undertegnede er meget åben for præcisering og drejning af disse løse ideer Målgruppe forudsætninger Grundlæggende programmering og gerne lidt viden om systemudvikling i gruppen fx fra kurserne Kravspec og forundersøgelser Systemudvikling og IT støttet samarbejde eller Projektledelse Nuværende medlemmer af gruppen Pt ingen Kontaktperson Forslaget er stillet af Peter Carstensen som tilbyder at vejlede det Oplæg den 14 april Nej men eventuelt interesserede kan henvende sig til Peter Carstensen lokale 2 24 37 carstensen itu dk Vurdering af styrker og svagheder i forskellige systemudviklingsmetoder Beskrivelse Litteraturbaseret sammenligning af forskellige tilgange til systemudvikling Undertegnede har visse forslag til litteratur som eventuelt kunne bruges Undertegnede er meget åben for præcisering og drejning af ideerne Målgruppe forudsætninger Grundlæggende programmering og gerne lidt viden om systemudvikling i gruppen fx fra kurserne Kravspec og forundersøgelser Systemudvikling og IT støttet samarbejde eller Projektledelse Nuværende medlemmer af gruppen Pt ingen Kontaktperson Forslaget er stillet af Peter Carstensen som tilbyder at vejlede det Oplæg den 14 april Nej men eventuelt interesserede kan henvende sig til Peter Carstensen lokale 2 24 38 carstensen itu dk IT baseret samarbejde Systemer til dokumenthåndtering og deling Beskrivelse Baseret på litteratur eller egne eksperimenter beskrives og diskuteres hvilke muligheder IT giver for at håndtere de store mængder dokumenter vi ofte er konfronteret med i forskellige samarbejdssammenhænge Dette kan analyseres med vægten lagt på temaer som brugergrænsefaldedesign systemernes brugbarhed faciliteter til at støtte samarbejdet etc Undertegnede er meget åben for præcisering og drejning af ideerne Målgruppe forudsætninger Ingen væsentlige Problemet kan formuleres forskelligt i lyset af gruppens forhåndsviden Nuværende medlemmer af gruppen Pt ingen Kontaktperson Forslaget er stillet af Peter Carstensen som tilbyder at vejlede det Oplæg den 14 april Nej men eventuelt interesserede kan henvende sig til Peter Carstensen lokale 2 24 39 carstensen itu dk Web Informations Systemer Beskrivelse Web teknologien ændrer på mange af de måder vi udvikler og anvender informationsteknologien Web systemer har en anderledes mere primitiv brugerflade systemerne er ikke så centralt kontrollerede som tidligere sammenlignet med gammeldags IT systemer systemudviklingen kan foregå stærkt distribueret og anarkistisk rollerne omkring hvem der er udviklere og hvem der er brugere opløses etc Grupper som vil beskrive og diskutere nogle af disse aspekter under dette tema kan tage fat i de aspekter de selv finder interessante Projektarbejdet kan være baseret på konkrete eksperimenter undersøgelse af specifikke systemer eller litteratur baserede studier Undertegnede er meget åben for præcisering og drejning af ideerne Målgruppe forudsætninger Ingen specifikke dog vil det være en klar fordel at visse af gruppemedlemmerne har haft kurser indenfor de temaer den vinkel de vælger Nuværende medlemmer af gruppen Pt ingen Kontaktperson Forslaget er stillet af Peter Carstensen som tilbyder at vejlede det Oplæg den 14 april Nej men eventuelt interesserede kan henvende sig til Peter Carstensen lokale 2 24 40 carstensen itu dk Webcasting projekt interaktivt TV Beskrivelse Vores ide går ud på at lave et webcasting program hvor temaet er at udforske mediets interaktive muligheder Konceptet går kort beskrevet ud på at lave interaktivt teater hvor mediet bliver en del af udtrykket Vi har I samarbejde med mimeren og skuespilleren Kristjan Ingimarsson og andre fra performance gruppen Neander udtænkt en ide hvor publikum kan interagere med Kristjan på scenen I form af forslag som han vil respondere på Eftersom ideen er at teaterstykket skal være real time på internettet har vi taget kontakt med Tvropa om mulig samarbejde Vi vil udvikle et site som er tænkt for at være en platform for debat underholdning og alle mulige eksperimenter Udover at lave en spændende side med logo præsentation dokumentation vil vi inkorporere andre funktioner som games quiz og kommentarer For at få indtryk af Kristjan og hans arbejde kan I kigge ind på Neanders hjemmeside 41 http www neander dk index htm Målgruppe forudsætninger Vi håber at to tre samstuderende med kundskaber i f eks database programmering målgruppe og markedsanalyse samt streaming teknologi Nuværende medlemmer af gruppen kontaktpersoner Torben Kjærgård torb itu dk Thor Magnusson thorh post tele dk Oplæg den 14 april Grundlæggende programmering Søgemaskiner Beskrivelse På hvilke IT C tidligere ITU hjemmesider finder man information om f eks fodbold eller oplysing om eksamensdatoer Til at svare på et sådan spørgsmål ville det være rart med en søgemaskine til IT C En sådan søgemaskine består dels af teknologi der muliggøre at flere bruger systemet samtidigt mange bruger f eks yahoo samtidigt og teknologi der muliggøre hurtige søgninger Disse teknologier kan man lære om i dybden på hhv internetprogrammerings og algoritmekurser på IT C I projektet begrænser vi os til forudsætninger fra grundlæggende programmering Hensigten er at projektet skal munde ud i et simpelt program som kan 1 Indlæse en fil med en masse ord som abemor katte og husvogn 2 En simpel brugergrænseflade hvorfra der kan spørges om et givet ord var i filen For at kunne besvare et spørgsmål hurtigere end at undersøge samtlige ord fra filen starter projekter med en enkelt forklaring i hvorledes man kan kostruere en simpel hurtig søgerutine Forslag til varianter af opgaven er velkommen Hensigten med dette kursus er at de studerende skal opnå erfaring med at konstruere et større program ved at sammensætte og anvende de ting der er blevet undervist i på kurset grundlæggende programmering Denne erfaring er en stor støtte for en bred vifte af efterfølgende kurser på IT C F eks hvis man tager et kursus som omhandler estimering af hvor lang tid det tager at udvikle større programmer eller et teknik kursus der bygger vider på grundlæggende programmering Dette projekt har som det fremgår en teknisk orientering der specielt understøtter et kursusforløb i vidergående programmering som f eks introduktion til algoritmik og datastruktur Målgruppe forudsætninger Grundlæggende programmering Nuværende medlemmer af gruppen Kontaktperson 42 stephen itu dk 43 jcg itu dk eller 44 theis itu dk Oplæg den 14 april Algoritmik Søgemaskiner Beskrivelse På hvilke IT C tidligere ITU hjemmesider finder man information om f eks fodbold eller oplysing om eksamensdatoer Til at svare på et sådan spørgsmål ville det være rart med en søgemaskine til IT C Projektet går ud på at konstruere et forslag til en søgemaskine for IT C En søgemaskine består dels af client server teknologi og søgerutiner Afhængig af interesser kan man ignorer client server delen og fokusere på at lave hurtige og funktionelle søgerutiner eller lave en banal søgerutine med client server teknologi Projektperioden vil starte med en gennemgang af de nødvendige teknologier som f eks søgerutiner Forslag til varianter af opgaven eller andre algoritmeprojekter er velkomne Målgruppe forudsætninger Introduktion til algoritmik og data struktur Alle med interesse for algoritmik Da et lignende projekt udbydes til studerende der har fulgt internetprogrammeringskurset vil der være mulighed for gode gruppeprojekter Nuværende medlemmer af gruppen Kontaktperson 45 stephen itu dk 46 jcg itu dk eller 47 theis itu dk Oplæg den 14 april Internetprogrammering søgemaskiner Beskrivelse På hvilke IT C tidligere ITU hjemmesider finder man information om f eks fodbold eller oplysing om eksamensdatoer Til at svare på et sådan spørgsmål ville det være rart med en søgemaskine til IT C Projektet går ud på at konstruere et forslag til en søgemaskine for IT C Løsningen skal indeholde en client server program Afhængig af forudsætninger og interesser stilles forskellige forslag af lærerne til at implementere selve søgerutinen og metoden til opsamling af data Egne forslag er ligeledes meget velkomne Projektperioden vil starte med en gennemgang af f eks søgerutiner som understøtter forskellig funktionalitet for søgning Målgruppe forudsætninger Internetprogrammering Deltagere Alle med interesse for konstruktion af søgemaskiner Nuværende medlemmer af gruppen Kontaktperson Stephen Alstrup 48 stephen itu dk Jens Christian Godskesen 49 jcg itu dk eller Theis Rauhe 50 theis itu dk Oplæg den 14 april Ja Webbutik baseret på lagerdatabaser Beskrivelse I kurset systemer for elektronisk handel er gennemgået hvorledes man kan bruge JDBC TM JAVA TM API til udførelse af SQL kommandoer Opgaven går ud på at implementere et prototypesystem i e lab DIKU s e handelslaboratorium for en Webbutik baseret på 2 eller flere lagerdatabaser databaser for nogle fjernlagre I Webbutikken skal implementeres ordrehåndtering samt instrukser til fjernlagre om ekspedition af ordrer der vedrører deres lager vareudbringning samt databaseopdatering E lab systemet er forberedt til opgaven På e lab systemet findes MySQL JAVA og JDBC for MySQL Målgruppe forudsætninger Kendskab til databaser SQL og JAVA Programmeringserfaring Kurset Systemer for elektronisk handel Nuværende medlemmer af gruppen Kontaktperson vejleder Jens Damgaard Andersen 51 jda diku dk Oplæg den 14 april Analyse af sikkerhedsrisici i e handels projekter Beskrivelse Projektet går ud på at skrive en rapport der analyserer sikkerhedsrisici i e handels projekter hvad kan gå galt I lærebogen DSIC kap 13 Security er opregnet et antal sikkerhedsrisici og farer i forbindelse med e handel Disse ønskes undersøgt mere detaljeret m h p danske forhold Målgruppe forudsætninger Kurset Systemer for elektronisk handel Nuværende medlemmer af gruppen Kontaktperson vejleder Jens Damgaard Andersen 52 jda diku dk Oplæg den 14 april Firewalls for e handelssystemer Projektbeskrivelse I dette projekt skal konstrueres et firewall system for en Web forretning De forskellige typer af mulige hacker angreb skal analyseres og man skal beskrive hvorledes man bedst afværger dem og hvorledes man evt kan afsløre hvem hackerne er Herefter er opgaven at konstruere et sikkert system med en eller flere firewalls Desuden skal beskrives hvor de forskellige funktioner i Web forretningen skal placeres Målgruppe forudsætninger Kurset Systemer for elektronisk handel Nuværende medlemmer af gruppen Kontaktperson vejleder Jens Damgaard Andersen 53 jda diku dk Oplæg den 14 april En oversigt over andre mulige skriftlige projekter hos Jens Damgaard Andersen emneområder samt eksempler på valgte projekter i efterårssemestret 1999 findes på Web adressen 54 http www diku dk teaching 2 del kandidatuddannelsen Kursernes hjemmesider Systemer for elektronisk handel kursus 336 Bryllupssite Beskrivelse Det at skulle arrangere en stor fest som f eks et bryllup er et kæmpe arbejde Blandt andet skal der en hel del koordination til Jeg tror at man ville kunne lave et site der kunne understøtte den slags planlægning og som kunne blive populært Målgruppe forudsætninger Jeg vil gerne lave usability og brugertests Det vil sige at jeg gerne vil blive bedre til at teste prototyper og ufærdige tests Udover det er der som minimum behov for design og programmering database etc Det berør områder som it støttet samarbejde CSCW HCI usability tcl oracle eller php MySQL eller hvad man nu kan finde på Design web og sikkert andre fagområder Jeg er meget åben også overfor usability folk Jeg har bare gået og rodet med id en Det kunne blive godt hvis andre er på Der er ingen der siger at det skal begrænses til bryllupper det ville bare give en god afgrænset målgruppe Det ville også være nemmere at målrette reklamer informationer mod dem end mod fest arrangører generelt Nuværende medlemmer af gruppen Christian Hagel Sørensen hvis jeg finder på noget andet at lave er id en til fri afbenyttelse og jeg kræver ingen form for ejerskab over den Kontaktperson Christian Hagel Sørensen 55 hagel itu dk Oplæg den 14 april Nej Ray tracing Beskrivelse Implement a simple ray tracer in Java Light is casted on a scene from some light sources The ray tracer follows the rays of light and thereby construct an image of the scene The image may contain reflections etc This has to programmed in Java Målgruppe forudsætninger Grundlæggende programmering Nuværende medlemmer af gruppen Kontaktperson Mads Nielsen 56 malte itu dk Oplæg den 14 april Jaj Loud reader Beskrivelse Make a Java program that can scan an input string and read it loud by combining sound samples One example is reading loud the time of the day a string like 16 32 16 The program must then combine pre recorded sound samples into sixteen thirtytwo sixteen The sounds may be sampled by use of matlab and exported into a small database Målgruppe forudsætninger Grundlæggende programmering mmsys eller signalbehandling Nuværende medlemmer af gruppen Kontaktperson Mads Nielsen 57 malte itu dk Oplæg den 14 april Jaj Image processing Beskrivelse Construct a small Java program that can make simple operations on images rotate scale crop sub sample resize This Java program may be made interactive being the back bone of a small Java photoshop Målgruppe forudsætninger Forudsætning Grundlæggende programmering matematik evt signalbehandling eller mmsys Nuværende medlemmer af gruppen Kontaktperson Mads Nielsen 58 malte itu dk Oplæg den 14 april Jaj Visualisering af Parametriske Flader Beskrivelse Projektet går ud på at analysere designe og implementere et simpelt grafiksystem til visualisering af Bezier flader Disse skal kunne visualiseres med både Gouraud og Phong shading skjulte flader og perspektivisk korrekt Texture mapping Fladerne kunne visualiseres fra en vilkårlig position i rummet Målgruppe forudsætninger Studerende som har gennemført kurset introduktion til grafik Forudsætningerne er gennemførelse af dette kursus Nuværende medlemmer af gruppen Kontaktperson Knud henriksen 59 kaiip diku dk Oplæg den 14 april Nej det kan jeg desværre ikke da jeg skal til institutmøde i samme tidsrum System til syntese og behandling af lyd Beskrivelse Der udvikles et system til syntese af vilkaarlige lyde samt generering af ekko og efterklang Målgruppe forudsætninger Kurset Introduktion til Signalbehandling Nuværende medlemmer af gruppen Kontaktperson John Aasted Sorensen 60 jaas imm dtu dk Oplæg den 14 april Ja System til analyse af tale Beskrivelse Der udvikles et system til analyse af talesignaler Ved analysen benyttes Fast Fourier Transform FFT Talesignalers egenskaber undersoeges og modificeres eventuelt Formanter og stemte ustemte passager identificeres og benyttes ved modifikationen Målgruppe forudsætninger Kurset Introduktion til Signalbehandling Nuværende medlemmer af gruppen Kontaktperson John Aasted Sorensen 61 jaas imm dtu dk Oplæg den 14 april Ja System til konstruktion af digitale filtre Beskrivelse Der arbejdes med metoder til kontruktion af filtre til f eks syntese af lyd Der lægges vægt på at arbejde med forskellige filtreringsmetoder og undersøge disses egenskaber i relation til anvendelsen Målgruppe forudsætninger Kurset Introduktion til Signalbehandling Nuværende medlemmer af gruppen Kontaktperson John Aasted Sorensen 62 jaas imm dtu dk Oplæg den 14 april Ja Kontrol af robotter i produktionscelle Beskrivelse Målet med dette projekt er at designe implementere og dokumentere et større parallelt system inspireret af en virkelige produktionscelle der indpræger metalplader på en fabrik i Karlsruhe Der vil lægges stor vægt på en systematisk design proces dvs hvilke afgørelser der træffes undervejs og hvordan disse dokumenteres Implementationen af kontrol systemet foretages ved hjælp af en CSP pakke CSP er et FSP lignende processsprog i Java og afprøves op i mod en simulator af produktionscellen udviklet af Forschungscentrum Informatik FZI i Karlsruhe Projektet har tidligere kørt med stor success på DTU og er en oplagt chance for at afprøve teori og praksis fra Parallelle Systemer kurset på et spændende eksempel og derved binde de to aspekter tættere sammen Mere information kan fås ved henvendelse til en af nedenstående vejledere Målgruppe forudsætninger Parallelle systemer Nuværende medlemmer af gruppen Kontaktperson Hans Rischel DTU Hans Henrik Løvengreen Thomas T Hildebrandt Oplæg den 14 april Ja Java in your pocket project Beskrivelse Grundelementet er at udvikle programmer til Java Cards og iButtons og programmer til en standard PC evt browser der kan kommunikere med et kort eller en knap Dette vil blive gennemgået ved et par indledende forelæsninger øvelser Dernæst vælger hver gruppe en applikation der hvis tiden tillader det implementeres Problemer omkring test verifikation og sikkerhed skal overvejes Som eksempler på applikationer kan nævnes Kopi eller udskriftskort PIN kode Adressebog Adgangskontrol til internetsider E handel Mere information kan findes på denne side Målgruppe forudsætninger Grundlæggende programmering som udgangspunkt Internetprogrammering kræves hvis der vælges en internetapplikation og Parallelle systemer er en fordel Nuværende medlemmer af gruppen Kontaktperson Thomas Hildebrandt 63 hilde itu dk Oplæg den 14 april Ja Vare søgemaskine Beskrivelse Ideen med projektet er at det skal være nemt at købe brugt Jeg forestiller mig en site i stil med www bogpriser dk bare med opslag hos auktioner brugtmarkeder og lignende i stedet Man skal således bare indtaste sin vare en bagemaskine f eks og efter 5 sekunder plinger halvtreds bagemaskiner op på skærmen med links til det rette marked DBA Jubii Forum mv Der skal nok kodes lidt på dette projekt jeg kunne forestille mig at cgi kunne bruges men er ikke sikker Målgruppe forudsætninger Opgaven bygger vel mest på faget internetprogrammering Lasse Jeremiassen er eneste nuværende deltager kunne godt have brug for en to kodemagikere og en designer Nuværende medlemmer af gruppen Lasse Jeremiassen Kontaktperson Lasse Jeremiassen lasse itu dk Oplæg den 14 april Ja Webserver log analyzer Beskrivelse Der skal udvikles et program til analyse af logfiler fra diverse webservers Logfilerne skal parses på baggrund af en JavaCC grammatik eller et regulært udtryk De rensede data IP tid URL bytes code kommes i en database Herfra kan der evt via views trækkes statistik on the fly efter diverse kriterier Denne statistik trækkes ud af databasen fra en Servlet via JDBC hvorefter den præsenteres i HTML JSP Et separat modul kan bygges til serverside generering af jpg statistik grafer Delopgaver Logfil analyzer multitrådet DB layout Servlet JSP sider Serverside grafik modul JAI Backup rutiner Da praktisk taget al data kommer i DB en kan al information om load hits pages hvorfra osv trækkes ud Opgaven kan moduliseres kraftigt så den kan tilpasses 4 uger Målgruppe forudsætninger Databasesystemer Parallelle systemer Java programmering Gerne viden om OOD div design patterns f eks Observer Observable til multitrådet indlæsning af flere logfiler eller erfaring med JAI Java Advanced Imaging Nuværende medlemmer af gruppen Morten Primdahl Kontaktperson Morten Primdahl morten itu dk Oplæg den 14 april Ja Sundhedscheck af Web sites Beskrivelse Projektet skal udvikle software der kan foretage et sundhedscheck af et web site En del af opgaven er at gøre klart hvad man vil mene med et sundt web site men nogle oplagte krav børe være opfyldt Der må ikke være url er som peger på ikke eksisterende sider siderne skal virke under både Internet Explorer og Netscape der bør ikke være sider som man ikke kan klikke sig frem til Projektet skal resultere i noget software som foretager en del af checkene og i rapporten skal beskrives hvordan disse udføres og hvilke andre checks man kunne forestille sig og hvordan disse kan udføres Målgruppe forudsætninger Internetprogrammering Netværk og protokoller Nuværende medlemmer af gruppen Kontaktperson Henrik Reif Andersen 64 hra itu dk Oplæg den 14 april Ja Indledning til 8 projektforslag Forslagene vedrører konstruktionsprojekter Man skal beskrive designe og realisere et system der faktisk kører men hvor man formentlig udelader en række faciliteter som ville være ønskelige i den virkelige verden Projekterne bør laves i grupper på 2 4 personer Af praktiske grunde må vi begrænse antallet af grupper til ca 5 Projekterne er åbne for alle studerende fra SWU Diplom INT MMT TIT DKM og EBUSS Hver projektgruppe kan med fordel involvere studerende med forskellig baggrund og interesser og må gerne bygge på arbejdsdeling så forskellige studerende står for design og realisering af brugergrænseflade programmering af den tekniske funktionalitet afprøvning og kvalitetssikring osv Alle skal dog medvirke til rapportskrivning f eks udarbejdelse af dokumentation Projektforslagene angivet nedenfor er ment som inspiration Det er meningen at I selv skal præcisere indhold mål ambitionsniveau og tidsplan for projektet Dette er nemlig indholdet af projektaftalen der skal udarbejdes i løbet af de to første projektdage Da de fleste projektforslag nedenfor involverer brug af Internet webserver databaseserver og lignende vil vi i projektperiodens første dage holde indledende forelæsninger om disse emner HTML og maskinel generering af websider webserver skripts i Java såkaldte servletter databaseadgang fra Java programmer og appletter SQL og JDBC udfærdigelse af projektrapport tekstfiler hvis nødvendigt Online registrering af studerendes kursusønsker Beskrivelse Formålet er at lave online registrering af kursusønsker for studerende på IT højskolen Der er en database med kurser der udbydes og hvilke kurser de forudsætter Derudover er der en database med studerende og de kurser de allerede har haft Opgaven er at lave online registrering af kursusønsker ved hjælp af cgi scripts servlets Brugeren indtaster sine ønsker som behandles af et eller flere Java programmer der kører på WEB serveren Java programmerne opdaterer databaserne og sender html sider tilbage med oplysninger om de registrerede ønsker Opgaven gør brug af databaseteori brugergrænseflader design og programmering Projektet kan evt indeholde en lille foranalyse og eller kravspecifikation hvor studieadministrationen på ITU samt studerende kan interviewes i forbindelse med funktionalitet og brugergrænseflade Evaluering Skriftlig rapport med design konstruktion og beskrivelse af program og database Hjælpemidler Databaseserver evt Apache web server Målgruppe forudsætninger Benytter Grundlæggende Programmering samt yderligere emner der vil blive præsenteret ved indledende forelæsninger i projektperioden Nuværende medlemmer af gruppen Kontaktperson Peter Sestoft 65 sestoft itu dk og Niels Hallenberg 66 nh itu dk Oplæg den 14 april Ja Salg af biografbilletter 1 billetluge Beskrivelse Formålet er at lave et program som kan benyttes ved salg af billetter i en lille biograf med n billetluge Programmet skal kunne håndtere flere sale og forestillinger og skal på en bekvem måde muliggøre salg af en eller flere billetter på ønskede steder i salen Programmet skal holde styr på hvilke pladser der er solgt til hvilke sale og forestillinger Programmet skal kunne gemme disse data på disk når billetsalget lukker og skal kunne indlæse dem igen når billetsalget åbner igen Eventuelt kan der indbygges søgefaciliteter så programmet selv vælger en fornuftig placering hvis kunden blot ønsker 3 billetter men ikke stiller krav til placering Problemet kan i modsætning til nedenstående løses med et selvstændigt Java program Evaluering Skriftlig rapport med design konstruktion og beskrivelse af program Målgruppe forudsætninger Benytter Grundlæggende Programmering Nuværende medlemmer af gruppen Kontaktperson Peter Sestoft 67 sestoft itu dk og Niels Hallenberg 68 nh itu dk Oplæg den 14 april Ja Salg af biografbilletter flere billetluger Beskrivelse Formålet er at lave et billetsalgssystem der kan bruges i en biograf med flere billetluger Programmet i hver enkelt billetluge kan f eks køre som en applet der tilgår en fælles database eller lignende fælles server via Internettet I denne udgave af projektet kunne også indgå overvejelser om hvilke yderligere faciliteter der kræves for at biografkunder kan købe deres billetter på WWW inden de går hjemmefra Ellers gælder mange af de samme forhold som for projektet Salg af biografbilletter 1 billetluge Evaluering Skriftlig rapport med design konstruktion og beskrivelse af program og database Hjælpemidler Databaseserver og evt Apache web server Målgruppe forudsætninger Benytter Grundlæggende Programmering samt yderligere emner der vil blive præsenteret ved indledende forelæsninger i projektperioden Nuværende medlemmer af gruppen Kontaktperson Peter Sestoft 69 sestoft itu dk og Niels Hallenberg 70 nh itu dk Oplæg den 14 april Ja Fælles beskedsystem for en arbejdsplads Beskrivelse Formålet er at lave et webbaseret system med hvilket medarbejderne på en arbejdsplads kan orientere hinanden om hvornår de er til møde på forretningsrejse er syge arbejder hjemme er på ferie osv Man skal kunne indtaste og læse beskeder ved hjælp af en almindelig webbrowser Systemet skal kunne vise alle dagens beskeder uanset hvem de vedrører og skal kunne vise alle beskeder om en given medarbejder uanset hvilke dage de vedrører Systemet kan enten baseres på HTML og webserver skripts eller på Java appletter Evaluering Skriftlig rapport med design konstruktion og beskrivelse af program og database Hjælpemidler Databaseserver og evt Apache web server Målgruppe forudsætninger Benytter Grundlæggende Programmering samt yderligere emner der vil blive præsenteret ved indledende forelæsninger i projektperioden Nuværende medlemmer af gruppen Kontaktperson Peter Sestoft 71 sestoft itu dk og Niels Hallenberg 72 nh itu dk Oplæg den 14 april Ja Udklipsbureau Beskrivelse At lave et webbaseret udklipsbureau hvor man kan registrere artikler under diverse emnekategorier Det skal være muligt at søge efter artikler givet diverse søgekriterier Et udklipsbureau gennemlæser daglig mange aviser og blade for at finde omtaler af virksomheder institutioner lande personer og forskellige emnekategorier uddannelsesforhold udlandshandel sociale forhold finans økonomi miljø For hver artikel i hver avis registreres avis sidetal overskrift forfatter hvis angivet og omtrentlig artikellængde for hvert relevant emne Udklipsbureauets kunder virksomheder organisationer ambassader bruger udklipsbureauets database til at finde bestemte slags artikler f eks om virksomheden selv om konkurrenter eller om branchen Det ville være smart med en webgrænseflade så kunderne løbende kan se hvad der er blevet lagt ind Overvej organisering af dataene central database brugergrænsefladen for de ansatte avislæsere og brugergrænsefladen for kunderne Udvidelsesmuligheder 1 Hver artikel skannes og arkiveres som billede så den kan læse direkte fra nettet I så fald skal kundens tilgang til artiklen registreres så der kan betales til avisen 2 Hvordan skal udklipsbureauet organiseres hvis det henviser til websteder i stedet for papiraviser Hvad med websteder der opdateres hele tiden så det samme link i morgen henviser til en helt anden artikel Evaluering Skriftlig rapport med design konstruktion og beskrivelse af program og database Hjælpemidler Databaseserver og evt Apache web server Målgruppe forudsætninger Benytter Grundlæggende Programmering samt yderligere emner der vil blive præsenteret ved indledende forelæsninger i projektperioden Nuværende medlemmer af gruppen Kontaktperson Peter Sestoft 73 sestoft itu dk og Niels Hallenberg 74 nh itu dk Oplæg den 14 april Ja Spil og rangliste Beskrivelse Formålet er at implementere et simpelt spil som en applet Det er vigtigt at man kan blive målt på hvor god man er til at spille spillet idet der også skal implementeres en central rangliste Der skal implementeres et eller flere simple spil hvor spillernes duelighed kan måles f eks yatzi memory minestryger Spillet skal implementeres som en applet Appletten skal vedligeholde en rangliste på en central database hvor en deltagers resultat registreres Det skal overvejes om alle resultater skal registreres eller kun de resultater som spillerne ønsker registreret Databasen kan udvides til også at håndtere små turneringer hvor en gruppe spillere kæmper indbyrdes om at være den bedste Evaluering Skriftlig rapport med design konstruktion og beskrivelse af program og database Hjælpemidler Databaseserver Målgruppe forudsætninger Benytter Grundlæggende Programmering samt yderligere emner der vil blive præsenteret ved indledende forelæsninger i projektperioden Nuværende medlemmer af gruppen Kontaktperson Peter Sestoft 75 sestoft itu dk og Niels Hallenberg 76 nh itu dk Oplæg den 14 april Ja Webbaseret diskusionsforum Beskrivelse Formålet er at lave et webbaseret diskusionsforum hvor man kan oprette et nyt emne samt kommentere på de emner indlæg der allerede findes Man kan opfatte systemet som en lang liste af emner der bliver diskuteret Under hvert emne findes en række indlæg der vedrører emnet Alle indlæg registreres i en central database Det skal overvejes hvorledes man skal kunne starte en tråd af indlæg og give direkte svar på tidligere indlæg Det er tænkeligt at hvert emne kan indeholde mange tråde Systemet er tænkt implementeret ved CGI programmering med Java servlets Bemærk at dette projektforslag ligner projektforslag nummer 4 men her er indlægene ordnet som tråde I projektforslag 4 er indlæggene mere ordnet efter medarbejer og dato Evaluering Skriftlig rapport med design konstruktion og beskrivelse af program og database Hjælpemidler Databaseserver og Apache web server Målgruppe forudsætninger Benytter Grundlæggende Programmering samt yderligere emner der vil blive præsenteret ved indledende forelæsninger i projektperioden Nuværende medlemmer af gruppen Kontaktperson Peter Sestoft 77 sestoft itu dk og Niels Hallenberg 78 nh itu dk Oplæg den 14 april Ja Analyse af webserverlog Beskrivelse Formålet er at analysere en webserverlog og beregne statistik for hvorledes ens webserver anvendes En webserver registrerer alle henvendelser i en log som er en tekstfil i et nærmere specificeret layout Projektet går ud på at læse loggen og finde interessant information i den besøgendes fordeling på døgnet på ugen på websider på domæner osv Overvej hvordan man finder antal besøgende ikke bare sideforespørgsler træk søgemaskiner fra osv Lav grafiske fremstillinger Programmet kan evt vedlige holde en central database over den statistik som beregnes regelmæssigt Evaluering Skriftlig rapport med design konstruktion og beskrivelse af program og database Hjælpemidler Apache web server og evt databaseserver Målgruppe forudsætninger Benytter Grundlæggende Programmering samt yderligere emner der vil blive præsenteret ved indledende forelæsninger i projektperioden Nuværende medlemmer af gruppen Kontaktperson Peter Sestoft 79 sestoft itu dk og Niels Hallenberg 80 nh itu dk Oplæg den 14 april Ja E handelsløsning for smykkebutikken Creol Beskrivelse Projektet hører ind under e handelsliniens W1 kursus og går kort fortalt ud på at opsætte og implementere en internetbutik for smykkebutikken Creol Målgruppe forudsætninger Nuværende medlemmer af gruppen Camilla Bartholdy EH Anders Kofoed EH Jens Høystad EH Rikke Bygballe Møller DKM Karsten Mottlau EH Kontaktperson Rikke Bygballe Møller 81 rikke itu dk yderligere oplysninger 82 www2 itu dk mottlau Oplæg den 14 april Nej Ateli r Jarvis Beskrivelse Projekt til handel med billedkunst på nettet Markeder USA DK D I Der samarbejdes med en kvindelige billedkunstner aktiv i kvindebevægelsen Målgruppe forudsætninger Gruppen søger en DKM er til den designmæssige udformning af billeder på nettet og i markedsføringsmateriale Nuværende medlemmer af gruppen Maria Møller og Per Rasmussen Kontaktperson 83 karenmaria itu dk eller 84 pbras itu dk Oplæg den 14 april Ja Databasedesign på Steno Diabetes Center Beskrivelse Vores gruppe på Steno Diabetes Center har gennem ca 10 år arbejdet med at identificere de arvelige årsager til aldersukkersyge type 2 diabetes Vi er ca 20 medarbejdere en sekretær laboranter specialestuderende ingeniører biokemikere biologer human biologer og læger der arbejder med denne forksning Som led i vores søgen efter diabetes gener har vi undersøgt en masse personer 1000 både med og uden diabetes mange personer er i familie med hinanden Deltagerne i vores undersøgelser er i visse tilfælde blot undersøgt med spørgeskema højde og vægt samt enkelte blodprøver i andre tilfælde med spørgeskemaer ekstensive undersøgelser af kropssammensætning insulin sekretion o a For tiden er alle data lagt ind i statistikprogammet SPSS som en stor flad fil cases nedad og variable ca 300 forskellige henad Dette design er uhåndterbart svært at opdatere og det er vanskeligt at være sikker på at data ikke ved en fejl ændres af en bruger En optimal database ville være en database med høj datasikkerhed overskkuelig for brugeren nem at indtaste ny data i bør foregå ved dobbeltindtastning Desuden bør det være nemt at trække relevante data ud af databasen også afledte variable dvs data som er udregnet på baggrund af de rå data som primært er lagt ind i databasen Målgruppe forudsætninger Nuværende medlemmer af gruppen Kontaktperson Torben Hansen læge tlf 4443 9391 e mail 85 toha novo dk Funktionelt software engineering projekt Beskrivelse Projektet gaar ud paa at give deltagerne ifm udvikling af et specifikt software system en introduktion til praktiske metoder og vaerktoej til brug i softwareudviklingsprojekter som udvikles af en gruppe projektstyring module level design inkrementel softwareudvikling software configuration management testdesign og testimplementering regressionstest osv Fokus er paa software engineering aspekterne frem for programmeringssprog Der er flere muligheder hvilket system der skal udvikles f eks implementation af en database af XML dokumenter Det er op til diskussion Målgruppe forudsætninger Projektet er en overbygning til kurset FP Funktionelt design og programmering NB Metoderne og vaerktoej er ikke specifikke til funktionel programmering Nuværende medlemmer af gruppen Kontaktperson Fritz Henglein 86 mailto henglein it edu Oplæg den 14 april Nej Databasedesign for IT Cs studieadministration Beskrivelse Målet er at lave en datamodel databasedesign alternativt et objekt orienteret design samt prototype implementation af IT Cs studieadministration Modellen skal inkludere beskrivelse af studerende kurser og projekter samt krav til uddannelsesforløb Datamodellet skal f eks gøre det muligt at checke automatisk om en kursusdeltager har opfyldt de obligatoriske kursusforudsætninger for et kurus han hun vil tilmelde sig at checke automatisk om en interesseret i at blive optaget paa IT C har opfyldt alle formelle forudsætninger at sikre om en studerende har opfyldt alle sammensætningskrav for sin uddannelseslinje at kontrollere at studerende skal op til eksamen i mere end et fag om dagen Baggrund IT C har nedsat en arbejdsgruppe work flow som beskæftiger sig med problemstill Projektet forudsætter at det kan koordineres med arbejdsgruppen Målgruppe forudsætninger Enten GP DBS DBD er anbefalet eller GP OODV Dette projekt kan gennemføres baseret på en objekt orienteret data model eller et relationelt baseret model Begge modeller kan udvikles enten inden for en og samme gruppe eller af flere grupper separat Nuværende medlemmer af gruppen Kontaktperson Fritz Henglein 87 mailto henglein it edu Oplæg den 14 april Nej Den tekniske snabel a Beskrivelse Mål i hvilken grad offentlige og private websites i Danmark og andre steder overholder standarder for HTML dokumenter f eks HTML 4 01 og relater resultaterne til en raekke kvalitetskriterier for websites fejlbehæftethed tilgængelighed med forskellige brugeragenter browsere såsom Lynx Opera Navigator Internet Explorer og tilgængelighed for handicappede Baggrund De fleste websites overholder langt fra HTML standarden Det er dels begrundet i at værktøjene som producerer HTML koden ikke overholder standarden browserne har leverandørspecifikke udvidelser som understøtter dynamisk indhold f eks ActiveX controls Målgruppe forudsætninger Gruppen skal samlet have ekspertise nok til at læse og forstå HTML standarden inkl læse formelle grammatikker implementere rutiner som manipulerer HTML kode evaluere grafisk design og brugerfunktionalitet evaluere kommercielle konsekvenser af brugen af proprietaere udvidelser i HTML Kunne f eks være en blanding af SWU INT DKM og EH studerende Nuværende medlemmer af gruppen Kontaktperson Fritz Henglein 88 mailto henglein it edu Oplæg den 14 april Nej C parser Beskrivelse Skriv en C parser ved hjælp af funktionel parsing parser kombinatorer som producerer et abstrakt syntaks træ i XML format Baggrund C er det mest anvendte programmeringssprog i system og applikationsprogrammering i øjeblikket C programmer er ogsaa notoriske for at være fejlbehæftede og svært gennemskuelige Desuden er C kendt for at være svært at parse med konventionelle parsing vaerktøjer C parsere som kan producere abstrakte syntakstræer er stærkt efterspurgte fordi de er centrale i at udvikle programmer som kan analysere C programmer finde fejl og efterbehandle dem XML er en offentlig W3 standard for repræsentation af træ strukturerede dokumenter Målgruppe forudsætninger Grundlaeggende programming GP funktionelt design og programmering FP forudgående praktisk kendskab til C og XML er ønskværdige men ikke påkrævede Nuværende medlemmer af gruppen Kontaktperson Fritz Henglein 89 mailto henglein it edu Oplæg den 14 april Nej Fremtidens interaktive muligheder Beskrivelse En analyse hvad fremtiden kan være for firmaet MTV s interaktive TV kanaler PDA samt broadband systemer Det fx være en rapport med tilhørende CD rom presentation De studerende får materiale videoer og grafik samt rådgivning fra kontaktperson i firmaet Målgruppe forudsætninger Interesse for fremtidens medier interaktive præsentationer samt grafisk design Nuværende medlemmer af gruppen Kontaktperson Henrik Werdelin Firmaet MTV 90 henrik tripledash com John Paulin Hansen 91 paulin itu dk Oplæg den 14 april Nej Virtuel tøjbutik Beskrivelse Dette er et forslag til et muligt erhvervsrelateret projekt på ITU for især DKM studerende Det er dog nødvendigt med en smule programmeringserfaring da projektet kræver etablering af en database og viden om hvordan websider kan interagere med denne f eks php3 Derudover er der designmæssige udfordringer da det grafiske koncept skal viderudvikles med kreativitet Projektet går kort ud på at designe og implementere et website til en virtuel tøjbutik samt implementere en lille database med oplysninger omkring kunder Der er lagt vægt på det kreative og grafiske design som skal udvikles til en allerede etableret målgruppe Projektet er afgrænset og det er ikke krævet at projektgruppen skal arbejde med det udover projektperioden Med hensyn til det teoretiske kunne det være relevant at undersøge hvordan der kan sælges tøj og lignende over Internettet Flere oplysninger kan fås ved at henvendelse til 92 nilaus itu dk Systemudviklings og samarbejdsanalyse af udviklingen af basisprogrammel Beskrivelse Analyse og karakterisering af samarbejdet omkring systemudviklingen af en compiler For dermed at kunne sammenfatte et øjebliksbillede af systemudviklingen og sekundært at kunne anskue udviklingen som et sammenhængende forløb Målgruppe forudsætninger ITSS Nuværende medlemmer af gruppen Annette Millner Britt Gadegaard Stig K Lundbech Stine Kalmer Jørgensen gruppen er lukket Kontaktperson e mail 93 bass itu dk Ønsker man at holde oplæg den 14 April Nej Digitalt studiearkiv Beskrivelse Hensigten med det digitale studiearkiv er at skabe et udbygget indeks over nulevende danske kunstnere Arkivet vil indeholde materiale om enkeltkunstnere med værkpræsentation fra 1960 erne til i dag De enkeltstående kunstnerprofiler vil kun være introducerende For yderligere information henvises til Center for Dansk Billedkunsts eksisterende studiearkiv Kunstakademiets bibliotek ect Formål Center for Dansk Billedkunst har igennem de senere år opbygget et omfangsrigt studiearkiv over nulevende danske kunstnere Studiearkivet har en uvurderlig praktisk værdi for folk i ind og udland der søger materiale om danske kunstnere med henblik på udstillinger artikler og bogudgivelser Studiearkivet besidder samtidig en dokumentarisk såvel som historisk værdi idet der er tale om dokumentation af danske kunstneres produktion gennem de senere år Arkivet fungerer derfor som et dokumentationsarkiv hvor udbredelsen men også bevaringen er i fokus Det er dette studiearkiv Center for Dansk Billedkunst ønsker at tilpasse til en digitalpræget virkelighed hvor folk er mere og mere vant til at søge information på internettet Det digitale studiearkiv skal være et led i centerets formidling af dansk kunst Dels i forhold til et internationalt professionelt publikum af kritikere kuratorer men også som værktøj i etableringen af en umiddelbar tilgængelighed til dansk nutids kunst Gennem internettet håber Center for Dansk Billedkunst på at kunne udbrede kendskabet til dansk kunst til en bredere offentlighed af interesserede og nysgerrige der normalt ikke opsøger centeret for at få tilgang til studiearkivet Samtidig åbner internettet helt nye muligheder for at præsentere kunst idet der gives mulighed for at inkorporere dias kunstvideo og optagelse i en sammenhængende form Det digitale studiearkiv opdateres på foranledning af den enkelte kunstner der selv henvender sig til centeret med ønske om en opdatering Det digitale studiearkiv repræsenterer derfor ikke samtlige nulevende kunstnere i Danmark men de kunstnere som supplerer Center for Dansk Billedkunst med materiale Udarbejdelsen Pilotprojektet som skal være færdigt til januar 2001 vil rumme materiale på 100 kunstnere Strukturen og opbygningen af et sådan projekt skal ske forsøgsvis ved udarbejdelsen af en test model indeholdende 11 udvalgte kunstnere De er følgende Pia Arke Peter Bonde Jes Brinch Ursula Reuter Christiansen Jes Fomsgaard Bjørn Nørgaard Lilibeth Cuenca Rasmussen Superflex William Louis Sørensen Elsabeth Toubro og Gitte Villesen Det er meningen at Det Digitale Studiearkiv i sidste ende skal tælle mere end 300 kunstnere Kravene til Det digitale Studiearkiv er Arkivet skal bygges alfabetisk op omkring hver kunstner Arkivet skal indeholde materiale om enkeltkunstnerne med værkpræsentation fra 1960 erne til i dag Der skal udvikles en digitaliseringsmetode der formidlingsmæssigt tager højde for det enkelte kunstværks beskaffenhed og krav Under hver kunstnerprofil skal der være links til de steder på nettet hvor man vil kunne finde yderligere oplysninger om den enkelte kunstner Tekstmateriale på både dansk og engelsk Det tekniske aspekt Kulturnet Danmark har givet tilladelse til at Det Digitale Studiearkiv må ligge på Kulturnet Danmarks server FTP server guest kb dk som understøtter Linux og apache php3 perl og MySql Databaseserverne NT 4 0 servicepack 5 Microsofts informationserver 4 0 MS SQL 6 5 ASP cgi Lyd videoserver Linux Real Servr Quicktime Teknisk anskuelt skal det digitale studiearkiv indeholde to databaser en tekstdatabase og en billeddatabase med lav opløsning En billeddatabase i høj opløsning skal ligge fast hos Center for Dansk Billedkunst og denne vil man kun kunne få adgang til ved henvendelse til centeret De to databaser skal sammenkædes med en søgemaskine et interface der kan koble oplysninger fra de to databaser Man skal kunne søge på kunstnerens navn ikke på et værk da det vil kræve alt for mange ressourcer både teknisk og arbejdsmæssigt Hver kunstnerprofil skal gennemsnitteligt ikke fylde mere end max 2 gB Man kan vælge at præsentere et stykke videokunst eller et forløb af en optagelse i stedet for at opfylde kravene om fem værk per kunstner så man måske kun præsentere 2 eller 3 værker af den pågældende kunstner Men kun i de tilfælde at optagelsen vurderes at være essentiel for kunstnerens produktion Eksempel på et forløb Billed a SØG KUNSTNER søgemaskiner på både fornavn efternavn kombineret og dele af navn Liste over repræsenterede kunstnere i alfabetisk orden på scroll Billed b SPECIFIK kort data med navn fødselsdato titel og erhverv kort biografisk CV hvilke uddannelse kunstsammenslutninger kollegaer ect LINK til CV LINK til artikler Indeks over fem repræsenterede værker hver med LINK til VÆRKSITE kort tekst med titel årstal og tilhørssted Billed c VÆRKSITE værket i fuld længde størrelse Kort introducerende tekst vedrørende tilblivelsen og interessante omstændigheder Billede d CV Liste over henholdsvis i nogle tilfælde selekteret gruppeudstillinger enkeltudstillinger LINKs til relevante museer gallerier websider ect Billede e Artikler m m Indeks over artikler i kronologisk rækkefælge Kort introduktion til hver enkelt Ved KLIK kommer hele artiklen frem på skærmen Udover kunstnerindeks skal det digitale studiearkiv indeholde en informationsside en diskussionsside en side med relevante links til kunst på nettet og en kontaktside med email adresse telefonnummer til Center for Dansk Billedkunst Alle siderne skal være med fast ramme og design links med frem tilbage og en link til CDB og Søg Kunstner Der vil endvidere blive lagt vægt på at en opdatering af scene vil kunne forløbe enkelt Center for Dansk Billedkunst vil producere tekstmaterialet i samarbejde med den enkelte kunstner En faguddannet gruppe vil varetage den tekniske opbygning det digitale studiearkiv Kontaktperson Mette Mechlenborg Rasmussen 94 mechlenborg73 hotmail com agencylogo gif Visionik Interactive A S Struensegade 9 4 floor DK 2200 Copenhagen North Contact Your contact at AGENCY COM Copenhagen is Maz Spork 1 mspork agency com 45 36960021 Feel free to contact Maz if you have any questions or suggestions Background AGENCY COM is a professional services company From a 30 000 foot perspective we create interactive services and build interactive relationship management between content owners and their customers and end users AGENCY COM has offices in 8 countries worldwide with headquarters in New York and the client portfolio includes British Airways Coca Cola Bank of America Deutsche Bank Benetton and Colgate Palmolive From a 10 000 foot perspective we work with multiple digital channels and build our own technologies to support interactive services across a number of target platforms Some of these platforms are the Worldwide Web Wireless devices and Interactive Television We have an understanding of the differences in these platforms not least the design issues that distinguish them In the Interactive TV division which is headed from Copenhagen Denmark AGENCY COM works with both content owners network operators and public service broadcasters in creating interactive solutions with an end to end understanding of the entire process model from content to user We work with second generation set top boxes deployed in both cable satellite and terrestrial digital networks These domains are still in their infancy with regard to standardisation and market coverage Our work is therefore partly to develop our own knowledge and technology to facilitate standardisation from above and integration of legacy domains such as TV production We are offering students at ITU access to some of our resources in conjunction with their studies We are able to advice groups on projects and we can provide access to the infrastructure and technology used in digital TV and ITV broadcast AGENCY COM have an interest in working with educational institutions because we want to broaden our understanding of the new interactive media We may later be able to offer students working with their theses closer cooperation Subject ideas for student projects We acknowledge the fact that projects at ITU are either carried out in conjunction with courses concentrated in four week full time periods or as part of individual thesis work Nothing is assumed about size in the subject matter presented here rather it is decomposed to partly fit the departmental subjects at ITU However we do encourage students to create projects that cross the boundaries of these subjects Design communication and media We are preoccupied with the differences between the look feel and understanding of the various target platforms of the future What constitutes e g televisual navigation in contrast to the established interactive services How do graphic design and content presentation including levels of detail differ Who is the target audience and what is their age in Denmark one third of the population will be above 60 in a few years is this a factor To AGENCY COM design and communication are dependent on the medium User interfaces for Interactive Television The TV in contrast to a PC has a history of being a passive platform in front of which the user is practically inactive in selecting information apart from the odd zap As the TV platform becomes increasingly interactive it becomes necessary to understand how user interfaces for a passive platform is best designed in order to create interactive services for the TV media that people want to use In a broad sense the TV audience is much more established and probably a lot less forgiving than the WWW community and according to some analyses the e commerce market will be larger on ITV than on the Worldwide Web before 2003 Questions to ask yourselves 1 What is the difference between a pointer device based GUI on a PC workstation and a televisual user interface What GUI metaphor suits televisual user interfaces 2 How do you navigate complex information with a conventional remote control 3 What are the differences in graphic design on the TV compared to a browser on a PC workstation 4 Which interactive services works better on the PC workstation and which work better on the TV 5 What connotations are attached to the TV screen and how does that reflect visual representation and navigation 6 User interfaces are increasingly dependent on the user being able to control a certain amount of state Will that work on the TV e g does a back button make sense Convergence of TV and the Internet A major issue in the market is how television and the Internet mainly the Worldwide Web will eventually come together A major issue in blending these media is the means of data transport which is streaming broadcast for television and IP connectivity for the Internet Some Web centric companies are working towards TV on the Web e g WebTV where viewers will be able to watch TV essentially using appropriate plug ins to their browsers and appropriate digital broadband subscriber lines Some broadcasters focus on IP traffic over their cables and satellites directly to the viewers allowing browser like functionality on the television screen Questions to ask yourselves 1 What will happen to the Internet if content owners begin fencing it to control what content goes to the users 2 Does it make sense to browse generic web content on the TV Are the platforms too dissimilar 3 Does TV demand a more rich experience than the Worldwide Web Multi media technology Two issues are in focus First content owners will soon face a plethora of digital channels to support WWW WAP ITV how will they manage their content for such different target platforms Using XML and style sheets does not solve the problem alone Second TV as a medium will want to produce TV programmes with interactive features What does this mean to TV viewing and what are the implications for producing TV programmes with which the viewers can interact to some degree Enhanced TV Presently Interactive TV is chiefly about moving content from existing digital channels to the TV screen The TV production companies are interested in adding value to their programmes by augmenting them with interactivity This is currently known as eTV or Enhanced TV examples are game shows in which viewers can actively participate broadcast news that allow the viewer to skip select or deepen the news stories and live sports events allowing the viewer to personally produce the broadcast by selecting camera angles etc and will be made possible using third generation set top boxes But how should such truly multi media applications look and feel Questions to ask yourselves 1 Does interactivity make sense in live events It is too expensive to produce TV allowing viewers a broad selection in content depth 2 Can you design a television show that has interactive features 3 Will the whole family understand what is going on 4 How is traditional television personalised 5 Define pay TV pay per view PPV video on demand VOD and near video on demand NVOD Content Management At the end of the day the quantity and quality of content will determine the usefulness of online connectivity Before long the end user apparatus will span a plethora of target platforms for which content has to be treated in special ways to be useful What strategies may work for easy management of information in the form of text graphics video snippets audio and broadcast quality radio and video Questions to ask yourselves 1 Can you categorise the various target platforms into families that should be treated as abstract platforms Is a family a superset or some denominator of the features of its representatives set top boxes PDAs mobile phones etc 2 How is a homogeneous workflow ensured in authoring content 3 How may an interactive service be configured e g as changes to the site map if it spans multiple target platforms 4 Will content management limitations eventually result in limitations on new target platforms Set top box technology Much competition is going on in the set top box market Vendors of set top boxes e g Nokia Sagem Phillips General Instruments typically choose a simple operating system e g OpenTV MediaHighway DVB MHP HTML based to allow third party developers of applications easy transition to their hardware Effort is made to standardise set top boxes in generations and to standardise the capabilities of operating systems New players in the field may however emerge quickly e g vendors of cheap game console devices may choose to integrate a tuner digital conversion and MPEG decoding in their next offering which may become a de facto standard A survey of set top box technology is required to understand this situation What are the capabilities of the first second and third generation set top boxes What are the strengths and weaknesses of the different set top box operating systems Who uses them and how difficult is it to phase in new generations of technology How easy is it to develop applications for the distinct systems Internet technology The growth of the Internet in both sheer user base and data transport speed may eventually mean the end of TV broadcast as we know it today Rather than being TV channels such as DR TV2 TV3 announcing events we will be able to choose from a multitude of events detached from actual channels Questions to ask yourselves 1 Will near future digital subscriber lines support broadcast quality video 2 Can the Internet sustain the traffic 3 Is it possible that the Internet may be fenced off by content providers each claiming their own part Consider the Europeans landing in the New World with its vast open spaces Their first activity was to fence off their claimed properties Will this also happen to the Internet when it becomes massively commercialised 4 What are the pros and cons of using packet based communications for high bandwidth demanding point to point connectivity The set top box as a network computer Parts of the industry e g Oracle Corporation are determined that the computing community will revert to a situation similar to that of the mid 70s i e powerful server installations and thin clients The NC or network computer has been suggested as a replacement for the personal computer The set top box has undergone changes twice First from devices with digital receivers and MPEG decoders to devices with processing power and simple return path connectivity and then to devices with fast return paths advanced graphics keyboards large disks for spooling video etc May the set top box may become the network computer of the modern home replacing even the idea of a home server E commerce on the TV The TV is already extensively used for in yer face advertising including prolonged home shopping presentations With interactive capabilities the TV may become even more accepted as a shopping device But which methods are best and how are the TV medium integrated into e commerce Advertising on Interactive TV Digital advertising opens possibilities for submitting only advertisements that are relevant to the viewer and it creates new ways of offering information in advertising Think of a TV advertisement for clothing offering a link to an interactive version where you can see models with your measures on a catwalk wearing it Questions to ask yourselves 1 How may relevant as used in the above paragraph be defined 2 Dog food adverts shouldn t find their way to viewers without dogs But how will the advertiser broadcaster know this What are the legal issues 3 Who wants to pay for an ad that follows an interactive ad 4 Can more advertisements be sold in this way Ordering Placing an order on a digital device today involves a transaction with a credit card company through a dial in somewhere The Interactive TV community wants all transactions to go through their domain in order to control subscription and security With a multitude of products to order on the set top box what is the business model lying beneath this How are orders routed processed and fulfilled Which domain network operator broadcaster content owner retailer bank should contain which server functions Questions to ask yourselves 1 How is the BUY button on the remote control linked to the current on screen content 2 How will the customer know if there are problems with delivery 3 Will the telecommunications companies take over the role of banks think also of the mobile phone as a replacement of the credit card and simply issue the purchased goods each month on the telephone bill 4 Security issues Do set top boxes offer encryption today Digital goods With digital broadband channels we see possibilities for selling digital goods such as computer programs and games videos and motion pictures music and books directly from producer to consumer saving a large number of chains from distribution over export and import to retail Questions to ask yourselves 1 Is anyone already doing this Are they successful 2 What is currently missing in the infrastructure to sustain this Software development Contrary to the dot com IT sector Interactive TV is very much in its infancy First it is not based on standard off the shelf products and second a few big players are moving slowly as dinosaurs these are the network operators For both reasons the ITV industry is moving comparatively slow compared to the Internet On the other hand the demands may be considerably higher when talking about scalability stability and security Questions to ask yourselves 1 Survey the software technology used in interactive TV from content to television What are the missing pieces that must be specially constructed Is history repeating itself 2 Can any conventional high end server sustain 20 000 000 eurovision song contest votes within 60 seconds What are the demands for high volume scalability 3 Is there any legacy software in the industry and how is the best way to handle the legacy issue Tools A number of tools are missing which ITV companies build themselves We currently investigate possibilities for runtime generation of MPEG streams and construction of tools to generate p frames with special functionality What effects can be achieved by e g changing the quantizer matrix for a frame and replaying it etc 1 IT højskolen 2 Kurser forår 2001 Introduktion til algoritmik og datastrukturer inter vandret gif Deltagerliste for kurset Introduktion til algoritmik og datastrukturer forår 2001 Kursets form og indhold er beskrevet i 3 kursusbogen Kursusansvarlig lærer Stephen Alstrup stephen it c dk Mailinglisten til kurset er 4 IADS stud it c dk Der er i alt 32 deltagere på kurser Navn Email Anders Kron 5 kron it c dk Anne Mette Mørkbak 6 anne it c dk Arja Tiina Silitamies 7 tiina it c dk Camilla B chler Seier Petersen 8 camillas it c dk Christian Hube Elbrandt 9 celbrandt it c dk Dennis Jensen 10 jensen it c dk Dorthe Clemens Koch 11 qaz it c dk Finn Danvar 12 finndanvar it c dk Hai Son Nguyen 13 hai it c dk Hanus Reinert 14 reinert it c dk Henrik Langebjerg Sørensen 15 hls it c dk Jesper Thaning 16 thaning it c dk John Udo Ukpo 17 juu it c dk Jos Alvaro Ramirez Orellana 18 joseo it c dk Kenneth Ahn Jensen 19 kaj it c dk Mads Peter Nymand 20 pete it c dk Maria Rita Kondor 21 kondor it c dk Marie Louise Nielsen 22 mlouise it c dk Martin Schiøtz Jensen 23 msc it c dk Michael Berliner Pedersen 24 mbp it c dk Mikkel Hugo Skovsgaard Jensen 25 mskovsgaard it c dk Minh Duc Tran 26 mdt it c dk Nguyen Trung Vo 27 ntv it c dk Olav Madsen 28 olav it c dk Siddhartha Raychaudhuri 29 src2001 it c dk Simon Faarup 30 simonfaarup it c dk Simon Kohrtz 31 kohrtz it c dk Sten Graff Larsen 32 graff it c dk Susanne Pehrsson 33 tusser it c dk Theis Poulsen 34 theispoulsen it c dk Thomas Blomseth Christiansen 35 blomseth it c dk Thomas Rasmussen 36 whomas it c dk 37 USEMAP inter icon2top gif opdateret 2001 02 22 Autogenerated 1 IT højskolen 2 Kurser forår 2001 3D begynder inter vandret gif Deltagerliste for kurset 3D begynder forår 2001 Kursets form og indhold er beskrevet i 3 kursusbogen Kursusansvarlig lærer Lise Jensen Mailinglisten til kurset er 4 3DM stud it c dk Der er i alt 24 deltagere på kurser Navn Email Alan Engelhardt 5 alan it c dk Allan Folke Larsson 6 afl it c dk Anne Sofie Nielsen Man 7 fieman it c dk Annette Havlit 8 havlit it c dk Camilla Hvilsom 9 hvilsom it c dk Christian G ttler 10 guttler it c dk Christina Schou Christensen 11 christina it c dk David Carlinfanti Zahle 12 zahle it c dk Dennis Foss Jacobsen 13 dennis it c dk Ida Marie Nissen 14 idamarie it c dk Jesper Linvald 15 linvald it c dk Kaspar Munk 16 kasparmunk it c dk Katja Jakobsen 17 katja it c dk Kevin Cook McLean 18 kcm it c dk Kristian Tørning 19 toerning it c dk Lene Nørgaard 20 norgaard it c dk Morten Greve 21 grendel it c dk Nicolai Garhøj Larsen 22 hrafn it c dk Saso Tomovski 23 saso it c dk Simon Kohrtz 24 kohrtz it c dk Theodor Sebastian B low 25 zeppo it c dk Tom Lau Kristensen 26 tomlau it c dk Torben Kjærgaard 27 torb it c dk Torben Munksgaard 28 munksgaard it c dk 29 USEMAP inter icon2top gif opdateret 2001 02 22 Autogenerated 1 IT højskolen 2 Kurser forår 2001 Animation inter vandret gif Deltagerliste for kurset Animation forår 2001 Kursets form og indhold er beskrevet i 3 kursusbogen Kursusansvarlig lærer Jon Sporring Mailinglisten til kurset er 4 AN stud it c dk Der er i alt 9 deltagere på kurser Navn Email Bent Larsen 5 bdl it c dk Bjarke Jakobsen 6 bj it c dk Camilla Helgesen Pedersen 7 camilla it c dk Kim Steen Petersen 8 ksp it c dk Mads Parviz Nyholm Larsen 9 mnl it c dk Marianne Bilsted Pedersen 10 mbilsted it c dk Poul Martin Swanholm Rasmussen 11 swanholm it c dk Rasmus Henrik Espholm 12 rasesp it c dk Uffe Damgaard Pedersen 13 udp it c dk 14 USEMAP inter icon2top gif opdateret 2001 02 22 Autogenerated 1 IT højskolen 2 Kurser forår 2001 Grundlæggende programmering inter vandret gif Deltagerliste for kurset Grundlæggende programmering forår 2001 Kursets form og indhold er beskrevet i 3 kursusbogen Kursusansvarlig lærer Peter Sestoft Mailinglisten til kurset er 4 GP stud it c dk Der er i alt 83 deltagere på kurser Navn Email Allan Lundgaard 5 lanky it c dk Anna Bizova 6 anbi it c dk Anne Merete Hvid Larsen 7 mhl it c dk Asem Butt 8 asem it c dk Assi Herve Euloge Yapaud 9 assi it c dk Christian Jussi Arstorp 10 jussi it c dk Christian Pedersen 11 cp it c dk Christina Haustrup Hansen 12 haustrup it c dk Christina Schou Christensen 13 christina it c dk Claus Bennett Christiansen 14 cc it c dk Dan Aakerhjelm Sørensen 15 dan it c dk David Simonsen 16 david it c dk Eydun Rannvaarson Jensen 17 eydun it c dk Grete Ellersgaard 18 ge it c dk Halina Tomaszewska 19 halina it c dk Henning Høy Hansen 20 hhhansen it c dk Henriette Diana Rolskov 21 Henry it c dk Iskinder Berhane 22 iswoldu it c dk Ivan Westh Christensen 23 ivanwesth it c dk Jacob Ingversen 24 ingversen it c dk Jacques Holm Villaume Johansen 25 jacques it c dk Jakob Haaber 26 jh it c dk Janus Friis Bindslev 27 janus it c dk Jesper Guhle Mogensen 28 guhle it c dk Jesper Linvald 29 linvald it c dk Joachim Halse 30 joachim it c dk Jon Ebbe Larsen 31 jow it c dk Jonas Damgaard Jensen 32 jodam it c dk Kar Chun Chong 33 kcc it c dk Kasper Frøhlich 34 kasperf it c dk Kasper Kock 35 kock it c dk Katja Rudloff 36 karu it c dk Kim An Pham 37 kapham it c dk Kim Larsen 38 timo it c dk Klaus Jakobsen 39 klausj it c dk Kristian Ramskov Føge Jensen 40 kristian it c dk Kristian Rastrup 41 rastrup it c dk Kristian Stengaard Munkholm 42 krismunk it c dk Kristian Tørning 43 toerning it c dk Lars Arne Conrad Hansen 44 l it c dk Lars Gyldenkærne 45 lgy it c dk Lars Høyrup Jensen 46 robinhat it c dk Laurance Stanford Vinson 47 stanford it c dk Lene Nørgaard 48 norgaard it c dk Louise Kragh 49 lokra it c dk Luise Søe 50 luisesoe it c dk Mads Thøger Grønne 51 mtg it c dk Mads Jørn Nørgaard 52 m jn it c dk Magnus Nilsson 53 nilsson it c dk Mahshad Rezaali 54 mahshad it c dk Maibrittt Brink Larsen 55 maier it c dk Marie Kathrine Fryland 56 marie it c dk Michael Berliner Pedersen 57 mbp it c dk Michael Grusgaard Andersen 58 grus it c dk Mikkel Ramskov Føge Jensen 59 mfoege it c dk Mikkel Westh Pedersen 60 mwp it c dk Muayad Ahmad Bakir 61 muayad it c dk Nada Yahyah Alzubeidi 62 nada it c dk Nasim Odeh 63 nassim it c dk Natalia Nielsen 64 natasha it c dk Niels Engelund 65 nielse it c dk Nikolaj Aggeboe 66 aggeboe it c dk Nikolas Dragsdorff 67 dragsdorff it c dk Paolo Lund Tonolli 68 tonolli it c dk Paul Henning Fabricius Kjær 69 fabric it c dk Pernille Platz 70 platz it c dk Peter Krogstrup 71 peterk it c dk Pia Lene Giversen 72 giversen it c dk Poul Erik Stenger 73 stenger it c dk Sadegh Eghbal 74 noor it c dk Saif Alghanemi 75 saal it c dk Salman Iqbal Khan 76 khan it c dk Samar Tamur Mirza 77 samata it c dk Sigrid Jensdottir Dalsgaard 78 sigrid it c dk Steinar Logi Sigurdsson 79 steinar it c dk Susanne Bisgaard 80 bisgaard it c dk Thomas Alexander Hoelgaard 81 thalex it c dk Thomas Holst Petersen 82 holst it c dk Thomas Lynge 83 thomaslynge it c dk Tore Fornes 84 torefornes it c dk Ulf Toke 85 ulftoke it c dk Ulrik Rasmussen 86 ur it c dk Wajiha Rehman 87 missrehman it c dk 88 USEMAP inter icon2top gif opdateret 2001 02 22 Autogenerated IT højskolen ønsker Symbion velkommen til Nordvestkvarteret af Mads Tofte Forskerparken 1 Symbion har åbnet en ny afdeling på Vibevej få minutters gang fra IT højskolen IT højskolens opgave er at drive forskning og forskningsbaseret uddannelse En af grundideerne i IT højskolen er at medvirke til innovation på IT området IT højskolen gør dette bl a ved at arbejde med områder som har stort kommercielt potentiale såsom Internet design og software generelt Studerende og ansatte der har fået en id der kan danne grundlag for en virksomhed har imidlertid ofte brug for hjælp og vejledning Det er i denne forbindelse særdeles glædeligt at forskerparken Symbion nu har placeret en afdeling så tæt på IT højskolen Forskerparken er en privat virksomhed som specialiserer sig i at hjælpe med opstart af nye virksomheder Forskerparken kan altså fungere som kuvøse for IT virksomheder som udspringer af forskningen og undervisningen på IT højskolen til gavn for alle parter Bemærk at Elisabeth Gr ner direktør for Symbion holdt en 2 BuzzTalk om Symbion fredag d 15 oktober 1999 Velkommen til Symbion i Nordvest The News Service of the IT University of Copenhagen It is possible to receive news about the IT University of Copenhagen via email It is also possible to receive news about vacant positions If you would like to receive such information then please register below We use the news service sparingly but you can always 1 cancel your registration Finally you can 2 check whether you are currently registered Registration Last name First name s Address line 1 Address line 2 Address line 3 Address line 4 email News will be sent to the email address you register in the email field News are sent individually and hence anonymously to each recepient Please tick the types of news you wish to receive 1 Master programmes in English admission procedure etc 2 The Ph d programme notification of scholarships etc 3 Vacant academic positions 4 Talks and conferences at the ITU 5 General information Language 1 I wish to receive those messages that are in English 2 I wish to receive those messages that are in Danish Messages that are only relevant to people who speak Danish are not distributed in an English version Klick below in order to register Confirmation will be emailed to you Register Cancel a registration Enter the email address you wish to delete email Unsubscribe Check subscription In case you wonder wheter you are still registered you can check your registration here We sometimes remove email addresses that do not work email Click to check whether you are still registered Check DSC1226 jpg DSC1226 jpg DSC1227 jpg DSC1227 jpg DSC1231 jpg DSC1231 jpg DSC1232 jpg DSC1232 jpg DSC1233 jpg DSC1233 jpg 1 Næste DSC1236 jpg DSC1236 jpg DSC1237 jpg DSC1237 jpg DSC1243 jpg DSC1243 jpg DSC1244 jpg DSC1244 jpg DSC1245 jpg DSC1245 jpg 1 Næste DSC1248 jpg DSC1248 jpg DSC1249 jpg DSC1249 jpg DSC1251 jpg DSC1251 jpg DSC1255 jpg DSC1255 jpg DSC1256 jpg DSC1256 jpg 1 Næste DSC1258 jpg DSC1258 jpg DSC1260 jpg DSC1260 jpg DSC1261 jpg DSC1261 jpg DSC1262 jpg DSC1262 jpg DSC1266 jpg DSC1266 jpg 1 Næste DSC1267 jpg DSC1267 jpg DSC1276 jpg DSC1276 jpg DSC1279 jpg DSC1279 jpg DSC1281 jpg DSC1281 jpg DSC1283 JPG DSC1283 JPG 1 Næste DSC1285 JPG DSC1285 JPG DSC1288 jpg DSC1288 jpg DSC1291 jpg DSC1291 jpg DSC1292 jpg DSC1292 jpg DSC1295 jpg DSC1295 jpg 1 Næste DSC1297 jpg DSC1297 jpg DSC1299 jpg DSC1299 jpg DSC1300 jpg DSC1300 jpg DSC1303 jpg DSC1303 jpg DSC1305 jpg DSC1305 jpg 1 Næste DSC1307 jpg DSC1307 jpg DSC1309 jpg DSC1309 jpg DSC1310 jpg DSC1310 jpg DSC1316 jpg DSC1316 jpg DSC1322 jpg DSC1322 jpg 1 Næste DSC1324 jpg DSC1324 jpg DSC1325 jpg DSC1325 jpg DSC1327 jpg DSC1327 jpg DSC1328 jpg DSC1328 jpg DSC1333 jpg DSC1333 jpg DSC1336 jpg DSC1336 jpg 1 Næste DSC1337 jpg DSC1337 jpg DSC1338 jpg DSC1338 jpg DSC1340 jpg DSC1340 jpg DSC1341 jpg DSC1341 jpg DSC1344 jpg DSC1344 jpg 1 Næste DSC1348 jpg DSC1348 jpg DSC1349 jpg DSC1349 jpg DSC1350 jpg DSC1350 jpg DSC1351 jpg DSC1351 jpg DSC1352 jpg DSC1352 jpg 1 Næste DSC1353 jpg DSC1353 jpg DSC1354 jpg DSC1354 jpg DSC1355 jpg DSC1355 jpg DSC1356 jpg DSC1356 jpg DSC1360 jpg DSC1360 jpg 1 Næste DSC1362 jpg DSC1362 jpg DSC1363 jpg DSC1363 jpg DSC1364 jpg DSC1364 jpg DSC1366 jpg DSC1366 jpg DSC1367 jpg DSC1367 jpg 1 Næste DSC1370 jpg DSC1370 jpg DSC1371 jpg DSC1371 jpg DSC1373 jpg DSC1373 jpg DSC1375 jpg DSC1375 jpg DSC1376 jpg DSC1376 jpg 1 Næste DSC1377 jpg DSC1377 jpg DSC1378 jpg DSC1378 jpg DSC1381 jpg DSC1381 jpg DSC1383 jpg DSC1383 jpg 1 Næste DSC1384 jpg DSC1384 jpg DSC1385 jpg DSC1385 jpg DSC1387 jpg DSC1387 jpg DSC282 jpg DSC282 jpg Dsc1273 jpg Dsc1273 jpg 1 Tilbage til første Brugerkontrol af oplysninger om studerende og kursustilmeldinger for IT højskolen i København Denne blanket benyttes til at kontrollere korrektheden af studenterfortegnelsen og kursusregistreringer på IT højskolen i København fortsæt Studenteradministrationssystemet er skrevet af Mads Tofte i sommeren 2000 1 IT højskolen 2 Research Publications 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif Publications Technical Reports TR 2000 1 9 Satisfiability Checking Using Boolean Expression Diagrams Authors Poul F Williams Henrik R Andersen Henrik Hulgaard TR 2000 2 10 Greedy Model Checking Authors Poul F Williams Antoine Rauzy TR 2000 3 11 Optimal Static Range Reporting in One Dimension Authors Stephen Alstrup Gerth S Brodal and Theis Rauhe 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen i København 2 Vacancies 3 Home 4 Find Persons 5 SiteMap 6 Intranet 7 Danish 8 Studies and degrees 9 Research 10 Media info 11 About the IT University 12 Links 13 Contact Us inter menu bund gif Welcome to the IT University of Copenhagen 14 Register to receive news e g announcements of jobs and scholarships by email The IT University of Copenhagen IT C is a teaching and research based tertiary institution concerned with information technology IT and the opportunities it offers The University was established in 1999 It is funded to undertake both theoretical research and applied research into the interaction and growing importance of information technology to society Vacancies The IT University of Copenhagen invites applications for 15 13 vacant Associate or Assistant Professorships Application deadline 1 May 2001 16 International Master of Science in IT multimedia technology The IT University welcomes applications from international students who wish to study multimedia technology PhD Course 17 Topics in Language Based Security by Assistant Professor Greg Morrisett Cornell University June 11 15 2001 PhD Course 18 Streaming video for wireless networks v Professor K J Ray Liu University of Maryland 17 23 May 2001 International conference 19 Computer Games and Digital Textualities More than 160 participants from Denmark and abroad took part in the first ever European conference on computer games at the IT University of Copenhagen on 1 2 March 2001 See the 20 conference program 21 pictures and 22 press coverage Assoc Professor from IT University becomes chair of IEEE Computer Society Associate Professor 23 Mads Nielsen has been elected the new chair of the Danish Section of the 24 Institute of Electrical and Electronics Engineers Computer Society Denmark s largest Open Source initiative 25 LinuxLab dk is situated at the IT University of Copenhagen Its mission is to gain insight into and knowledge about open systems and to supply this knowledge to the IT University external collaborators and in the public debate Our new domicile The architecture competition for the IT University s domicile in the Oerestad was won by the Henning Larsen s Drawing Room in cooperation with Carl Bro A S See the 26 Winning Project and the 27 pictures of the Prize Presentation 28 USEMAP inter icon2top gif opdateret 03 05 2001 29 wwwadm it c dk 1 IT højskolen Vacancies 2 Vacancies 3 Home 4 Find Persons 5 SiteMap 6 Intranet 7 Danish 8 13 Associate or Assistant Professorships inter menu bund gif Staff Vacancies Vacancies at the IT C Here is an outline of all the posted vacancies at the IT University of Copenhagen IT C 9 13 Associate or Assistant Professorships 10 Information about the Ph D program Each listing includes the name of the contact person the job conditions and the application deadline If you have any questions regarding vacancies at the IT C you are welcome to contact human resources manager Kirsten Talbro Laraignou on phone number 45 38 16 88 03 or email 11 ktl it c dk Ad hoc applications should be sent to The IT University of Copenhagen Human Resources Glentevej 67 DK 2400 Copenhagen 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen Find employee staff and Ph D students inter vandret gif 2 Courses 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter grey vert r gif inter grey bund gif Find staff and Ph D students at the IT C Name or part of it Type of position all staff Affiliation IT C and partners Find person s 9 USEMAP inter icon2top gif opdateret 26 09 2000 10 wwwadm it c dk 1 IT højskolen English inter vandret gif 2 Educations 3 Jobs 4 Home 5 Persons 6 SiteMap 7 Intranet 8 Danish 9 Find employee staff and Ph D students 10 tilbage inter grey vert r gif inter grey bund gif The IT University of Copenhagen Welcome to the IT University of Copenhagen IT C 11 Contact Information 12 Research Projects 13 Ph D studies at IT C 14 Master and kandidat courses in English some text in Danish 15 Vacant positions 16 USEMAP inter icon2top gif opdateret 26 09 2000 17 wwwadm it c dk 1 IT højskolen none 2 Vacancies 3 Home 4 Find Persons 5 SiteMap 6 Intranet 7 Danish inter menu bund gif Under construction Undskyld Du har ramt en planlagt side som er under udformning men desværre endnu ikke færdigredigeret Sorry this page is currently under construction 8 USEMAP inter icon2top gif opdateret 11 05 2000 9 wwwadm it c dk 1 IT højskolen SiteMap 2 Vacancies 3 Home 4 Find Persons 5 SiteMap 6 Intranet 7 Danish inter menu bund gif IT C site overview 8 A wide range of courses 9 International Master of Science in IT multimedia technology o 10 About the degree o 11 Language requirements 12 TOEFL test o 13 Academic requirements o 14 Other requirements o 15 Curriculum 16 The degree structure 17 Courses on offer o 18 A vibrant student life 19 Relevant and fun 20 From France to Denmark with love o 21 Meet the teachers o 22 Apply to study 23 When to apply 24 The application process 25 Application form and instructions o 26 Frequently asked questions 27 How much does it cost to live in Denmark 28 How do I find accommodation 29 How much does it cost to study at the IT University 30 Can I get any financial assistance 31 Can I earn money in Denmark while studying 32 Do I need a residence visa 33 What about health insurance 34 How do I survive the Danish winter 35 Useful links about Denmark and living in DK o 36 About the IT University of Copenhagen o 37 Contact us 38 Master of Science courses o 39 Master of Science Design Communication and Media 40 John Paulin Hansen 41 Read more about Design Communication and Media o 42 Master of Science Electronic Business 43 Kim Viborg Andersen 44 Read more about the degree in Electronic Business o 45 Master of Science Internet Technology 46 Thomas Hildebrandt 47 Read more about Internet Technology o 48 Master of Science Software Development 49 Soren Lauesen 50 Focus on principles 51 Read more about Software Development o 52 Master of Science Multimedia Technology 53 John Aa Sørensen 54 Read more about Multimedia Technology o 55 Master of Science Interdisciplinary IT 56 Read more about Interdisciplinary IT 57 Master of Information Technology 58 Graduate Diploma o 59 Peter Carstensen 60 Single Subjects 61 European Union Course Credit Transfers 62 Courses on offer 63 International students 64 Staff Vacancies 65 13 Associate or Assistant Professorships 66 Contact information 67 Contact Information 68 Media Information 69 Research 70 Visions Goals 71 Publications 72 External lecturers o 73 External Lecturer Lise Jensen 74 Ph D Studies o 75 Lisbeth Klastrup o 76 Application o 77 Studies o 78 Funding o 79 Courses 80 Topics in Language Based Security 81 Advanced algorithms F2001 82 Scale based Geometry and Singularities for Computer Imaging 83 Constructive Logic Project F2001 84 Streaming video for wireless networks 85 Department of Digital Aesthetics and Communication o 86 The staff and their research interests 87 Department home 88 Anker Helms Jørgensen s homepage 89 CV 90 Anker home 91 Research 92 Anker home 93 Teaching and consulting 94 Anker home Publications 95 Anker home 96 Hiring now o 97 Department home 98 The conference Computer Games Digital Textualities o 99 Department home 100 The IT University of Copenhagen at a glance o 101 Department home 102 Theory Department 103 Visions and Goals o 104 Department Home 105 Members of the Theory Department o 106 Department Home 107 Visitors at the Theory Department o 108 Department Home o 109 Past Visitors at the Theory Department 110 Department Home 111 Research Projects o 112 Department Home 113 Selected Publications from the Theory Department o 114 Department Home 115 Seminars o 116 Department Home 117 Activities o 118 Department Home o 119 Conference Organization 120 Department Home 121 Activities o 122 Conferences and Workshops Located at IT C 123 Department Home 124 Activities o 125 Invited Talks 126 Department Home 127 Department Activities o 128 Editorials 129 Department Home 130 Activities o 131 Ph D activities 132 Department Home 133 Department Activities 134 Joint Ph D activities 135 Department Home 136 Department Activities 137 Ph D Activities 138 Ph D Courses 139 Department Home 140 Department Activities 141 Ph D Activities o 142 Summer School 143 Department Home 144 Activities 145 Teaching o 146 Department Home o 147 Courses fall 2000 mainly in Danish 148 Department Home 149 Teaching o 150 Courses Spring 2001 151 Department Home 152 Teaching o 153 Previous Courses 154 Department Home 155 Teaching o 156 Master of Science Theses 157 Department Home 158 Teaching 159 Department of Innovation 160 People o 161 Home 162 Visitors o 163 Autumn 2000 164 Visitors o 165 Spring 2001 166 Visitors o 167 Home 168 Seminars o 169 SPACE 2001 170 Seminars o 171 Home 172 Projects o 173 Home 174 Publications o 175 Home 176 Teaching o 177 Courses autumn 2000 178 Teaching o 179 Courses spring 2001 180 Teaching o 181 Home 182 Dept of Design and Use of Information Technology DUIT 183 Visions and goals for the Department of Design and Use of Information Technology 184 Members of the Department of Design and Use of Information Technology o 185 Department Home 186 Research Projects o 187 Department Home 188 Visitors to the Department of Design and Use of Information Technology o 189 Past visitors to the department of DUIT 190 Visitors 191 Department Home o 192 Department Home 193 Publications by the members of DUIT o 194 Department Home 195 Teaching by the members of DUIT o 196 Courses in spring 2001 197 Teaching 198 Department Home o 199 Previous courses taught by the members of DUIT 200 Courses in fall 2000 201 Teaching 202 Department Home 203 Courses in spring 2000 204 Teaching 205 Department Home o 206 Master of Science theses supervised by the members of DUIT 207 Teaching 208 Department Home o 209 Student s projects at IT C 210 Teaching 211 Department Home o 212 Department Home 213 Lars Birkedal 214 About the IT University of Copenhagen 215 Vision 216 Contact Details 217 Courses o 218 The winning project the IT C s new domicile in the Ørestad o 219 The Judges Report 220 Facts Figures 221 How to get to the IT University of Copenhagen 222 The rules for IT C 223 Links 224 International students 225 The IT University s News Service 226 News Service in Danish 227 Find medarbejder e 228 USEMAP inter icon2top gif opdateret 03 05 2001 229 wwwadm it c dk 1 IT højskolen Studies and degrees 2 Vacancies 3 Home 4 Find Persons 5 SiteMap 6 Intranet 7 Danish 8 International Master of Science in IT multimedia technology 9 Master of Science IT 10 Master of IT 11 Graduate Diploma 12 Single Subjects 13 EU course credit transfer 14 Courses on offer 15 International students inter menu bund gif A wide range of courses The IT University of Copenhagen IT C offers a range of courses in Information Technology IT Master of Science Information Technology The Master of Science in Information Technology degree is a two year full time course which includes a research component Students can enrol in one of the following areas Design Communication and Media Electronic Business Internet Technology Multimedia Technology Software Development Interdisciplinary IT Only students who have completed a Bachelor degree can be considered for enrolment in the Master of Science Information Technology course In principle any Bachelor degree is a prerequisite for the Master course Master of Information Technology Also on offer are a number of three year part time Master of Information Technology degrees These courses are designed for students who participate in the workforce These degrees do not include a research component Students specialise in one of the following four areas Design Communication and Media Internet Technology Multimedia Technology Software Development Course prerequisites include any Bachelor degree and two years of work experience Graduate Diploma It is also possible to study a Graduate Diploma course This course is a two year part time program aimed at students who participate in the workforce Individual subjects The IT University also offers individual subjects if places are available in the particular course 16 USEMAP inter icon2top gif opdateret 03 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Studies and degrees International Master of Science in IT multimedia technology 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish 9 About the degree 10 Language requirements 11 Academic requirements 12 Other requirements 13 Curriculum 14 Student life 15 Meet the teachers 16 Apply to study 17 FAQ 18 About the University 19 Contact us inter menu bund gif International Master of Science in IT multimedia technology Welcome The IT University of Copenhagen IT C welcomes applications from international students who wish to enrol in the International Master of Science in Information Technology multimedia technology degree The aim of the degree is to graduate highly qualified IT professionals to work in the broad field of multimedia Graduates will gain the necessary technical skills for using and creating cutting edge technology and learn to push the limits of existing multimedia applications The degree has a scientific emphasis and focuses on sense stimuli such as pattern recognition image analysis speech technology computer graphics signal processing and interactive 3D graphics Entry into the degree is highly competitive Students must meet both academic and English language requirements of the course 15 international students are accepted each semester for the Multimedia Technology degree The courses are taught in English and the international students will study together with Danish students International students are not charged tuition fees to study for the degree The Danish Government has decided to offer this degree free of charge in order to attract qualified IT students from abroad to study in Denmark It is projected that Denmark needs to graduate around 40 000 more computer scientists in the next three years Here you can read more about the Danish Government s IT strategy 20 Digital Denmark 21 USEMAP inter icon2top gif opdateret 03 05 2001 22 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology About the degree 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif About the degree The degree is offered on a full time basis over two years Graduates are awarded the title Master of Science in Information Technology multimedia technology The graduates gain a thorough knowledge of basic technologies and systems and will be able to develop and maintain such systems Multimedia graduates are able to work with film TV medical systems transmissions of image and sound industrial automatisation and geographical information systems Graduates may also choose to start a research career by enrolling in a Ph D study program at the IT University of Copenhagen or elsewhere The IT University of Copenhagen is committed to building on the students variety of educational backgrounds so their diversity becomes an asset to the community Theory is supported by hands on practical exercises in order to give the students a clear picture of what they can create with their knowledges Students will be able to take advantage of the IT C s new multimedia laboratory for their assignments The academic year at the IT C comprises two semesters The autumn semester starts approximately 1 September and The spring semester starts approximately 1 February Students can enrol to start their studies at the beginning of either semester The Multimedia Technology degree is offered in collaboration with the 10 Technical University of Denmark Copenhagen and the 11 Department of Computer Science University of Copenhagen Most of the courses take place at the IT University of Copenhagen Here you can find more detailed information about the 12 curriculum of the Master of Science in Information Technology multimedia technology degree 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology Curriculum 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Degree structure 11 Courses on offer inter menu bund gif Curriculum The Master of Science in Information Technology multimedia technology is a scientific degree which provides the graduate with the necessary technical skills for constructing and programming multimedia systems and applications The degree combines cutting edge technologies with established IT solutions The degree is research based and can lead to Ph D studies at the IT University of Copenhagen or elsewhere The essential data in a multi media system are sensing stimuli images sounds and haptics The objective of the degree is to graduate IT professionals who can analyse and synthesise such stimuli in a computer system The core of the curriculum is basic technologies such as computer graphics image analysis signal processing and computer systems On top of these skills students will specialise in an application area or in a basic technology area Graduates will be able to use state of the art technology as well as create their own technologies Graduates are awarded the title of Master of Science in Information Technology multimedia technology 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 Curriculum Degree structure 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif The degree structure The degree is a two year full time course consisting of four semesters Each of the first three semesters contains three 3 courses and one 1 project activity The final semester is dedicated to the master thesis The IT University uses the European Community Course Credit Transfer System ECTS to directly relate the courses on offer to those at international universities Each course or project activity is worth 7 5 ECTS points The table below shows the point structure of the degree Semester 1 Course 1 7 5 ECTS points Course 1 7 5 ECTS points Course 1 7 5 ECTS points Project 7 5 ECTS points Exam Semester 2 Course 1 7 5 ECTS points Course 1 7 5 ECTS points Course 1 7 5 ECTS points Project 7 5 ECTS points Exam Semester 3 Course 1 7 5 ECTS points Course 1 7 5 ECTS points Course 1 7 5 ECTS points Project 7 5 ECTS points Exam Semester 4 Master thesis 30 ECTS points Defence of thesis To successfully complete the degree students must complete at least three 3 activities worth 7 5 ECTS points in the area of multimedia systems and applications at least two 2 activities worth 7 5 ECTS points in the area basic technologies at least one 1 activity worth 7 5 ECTS points in the area of thesis preparation The IT University has developed the curriculum in collaboration with the 11 Technical University of Denmark Copenhagen and the 12 Department of Computer Science University of Copenhagen Students can study elected courses at these collaborating institutions free of charge 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 Curriculum Courses on offer 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Courses on offer Courses in the area of multimedia systems and applications Multimedia systems Speech and IT systems Musical signal processing Virtual Reality Courses in basic technologies Computer graphics Signal processing Image analysis Computer vision Information theory The curriculum is still under development and the number of courses at the IT University is expected to increase in the future In addition to the courses listed above students can enrol in 11 other courses at the IT University of Copenhagen at the 12 Department of Computer Science University of Copenhagen and at the 13 Technical University of Denmark Copenhagen subject to spaces being available Please note that some of the courses on offer at collaborating institutions may be taught in Danish only 14 USEMAP inter icon2top gif opdateret 03 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology Language requirements 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 TOEFL test inter menu bund gif Language requirements All courses are taught in English International students must provide sufficient evidence of their proficiency in English to be considered for the degree This does not apply to nationals from the Nordic countries and students who have completed their bachelor degrees in English The IT Univerisity of Copenhagen accepts only the Test of English as a Foreign Language TOEFL as evidence of English proficiency Applicants must have achieved a minumum TOEFL score of 230 Computer Based TOEFL Test or 573 Paper Based TOEFL Test for admission to the multimedia technology degree The TOEFL university code for the IT University of Copenhagen is 9015 Please make sure to enter this code on your TOEFL answer sheets when sitting the examination You should also include the code on the Score Report Request Forms for tests previously taken The IT University will not process your application until we have received your official TOEFL test score The TOEFL office will send your score directly to the IT University To register for the TOEFL test contact your regional 11 TOEFL test centre 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 Language requirements TOEFL test 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology Academic requirements 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif Academic requirements Only students who have completed a Bachelor degree in the areas of science or engineering are considered for the Master of Science in Information Technology multimedia technology course Students can apply for the course prior to completion of the undergraduate degree However enrolment is conditional on the successful completion of the undergraduate degree at least three 3 months prior to the semester start at the IT University of Copenhagen For example You must have completed your Bachelor degree by 1 June to enrol in the autumn semester starting on 1 September You must have completed your Bachelor degree by 1 November to enrol in the autumn semester starting on 1 February The following criteria are used to assess applications Degree transcript including grades Letter of motivation eg no more than one A 4 sheet outlining the motivation for applying including a detailed description of your education Documented skills in computer science mathematics and physics The application must include a brief description of previous or prior courses undertaken and an official transcript of grades In addition to the above academic requirements the applicant must also meet the specified 10 language requirements of this course 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology Other requirements 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif Other requirements Financial requirements International students are not charged tuition fees to study at the IT University of Copenhagen However students will have to cover living expenses eg accommodation meals transport books and materials during their stay in Denmark The immigration office through the Danish embassy will ask students from outside the Nordic countries and EU countries to demonstrate funds corresponding to DKK 50 000 US 6 500 before issuing a one year residence permit You must be able to document that 1 you have the full legal rights of disposal of the amount and that 2 these funds are available to you in Denmark Please note that the Danish currency is linked to the Euro and may display variations to the US Visa requirements Students from the Nordic countries need no visa or residence permit A visa is required for students from many countries Please contact your local Danish Embassy or Consulate to see if you require a visa EU citiziens do not need a permit for the first three months of their stay After three months EU citiziens are required to apply for a residence permit This is usually only a formality Students from non Nordic countries must apply for a residence permit prior to arrival Application for a residence permit must be submitted to the Danish Embassy or Consulate in the student s home country at least two months before arrival To speed up the process the IT University will forward successful applicants a purple supplement form posted with the letter of acceptance which states that you have been invited to study here by a Danish tertiary institution Applicants must submit this form together with the residence permit application to the local Embassy or Consulate 10 USEMAP inter icon2top gif opdateret 03 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology Student life 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Relevant and fun 11 From France to Denmark inter menu bund gif A vibrant student life The students at the IT University often work in groups it is common practice for students to form their own study groups The IT University has a vibrant social life Each Friday afternoon students are invited to socialise in the Scroll Bar Most Fridays the IT University organises an open lecture called BuzzTalk A key note speaker will address a current IT topic The speakers are either leading IT researchers or IT practitioners from a business community or government organisation The IT C also hosts an arts group a soccer team and a 12 Linux laboratory Links to pictures 13 working together and 14 studying 15 USEMAP inter icon2top gif opdateret 03 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 Student life Relevant and fun 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Relevant and fun Student Stine Grith Relevant exciting and fun That s how Multimedia Technology student Stine Grith describes her time at the IT University of Copenhagen The degree is very relevant to the needs of the IT sector The curriculum seems to reflect the requirements of private enterprises so I am certain of getting a job afterwards Stine said Stine Grith enrolled in the Master of Science in Information Technology multimedia technology degree recently because it sounded like an exciting course Before that she studied electronic engineering at the Danish Technical University Stine enjoys the practical emphasis of the courses We are often taught the heavier theoretical elements in the morning During the afternoon we put theory into practice with hands on exercises Stine said At the end of each semester students are required to combine theory and practice when they complete a practical project for a real client as part of a group exercise Diverse backgrounds According to Stine one of the greatest assets of the Multimedia Technology degree is the diverse academic backgrounds of the students In my classes there are students with backgrounds in biology micro biology philosophy geology mathematics and library studies We supplement each other well and learn a lot from each other The teachers are very approachable and are good at listening to the individual needs of each student Stine also likes the social life at the IT University Every Friday we are invited to an open lecture called BuzzTalk to hear a keynote speaker from the IT sector In general people are helpful and relaxed which creates a positive atmosphere 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 Student life From France to Denmark 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif From France to Denmark with love Student Francois Lauze Frenchman Francois Bernard Lauze experienced a fair bit of the world before enrolling as a multimedia technology student at the IT University He completed his Ph D degree in mathematics at the Universit de Nice Sophia Antipolis in France seven years ago Then he and his Danish wife decided to move to the small West African country of Burkina Faso Francois got a job at the local hospital teaching children who were long term patients as well as a small teaching job at the local university Unfortunately it wasn t really possible for me to continue my research in Burkina Faso and after more than three years in West Africa it was too difficult to re enter the research systems in Europe Instead Francois and his wife moved to Denmark to start a new life Francois got a teaching job at a local high school but needed more challenges in his professional life When the IT University of Copenhagen opened its doors in August 1999 Francois was one of the first students to enrol in the Master of Science in Information Technology multimedia technology course I was keen to learn more about multimedia applications and especially image processing Francois said It is strange to be a student again but so far I haven t been disappointed No more globetrotting Now I am looking forward to getting my diploma next year or and start a Ph D or get a job in the area of image processing or image analysis Francois thinks a degree from a Danish university is highly regarded internationally I know that many Danish companies have heard about this University They often try to recruit students to do part time jobs and projects Francois doesn t spend a lot of time on campus outside classes I have a six month old son Victor who demands a lot of attention So I tend to go straight home after classes to spend time with my family For the time being Francois and his wife have had enough of the globetrotting life style Now we want to settle and work in Denmark for a while Francois said 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology Meet the teachers 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif Meet the teachers John Aasted Sorensen Head of studies Ph D Electric Engineering I am the head of the multimedia technology studies and I teach the courses Signal Processing and Speech and IT systems Education Ph D Electrical Engineering 1982 Technical University of Denmark Master of Science Electrical Engineering MScEE 1975 Research interests Signal processing in multimedia systems Speech analysis coding recognition and animation Noise reduction of speech signals Architectures for signal processing systems General methods for signal analysis filtering detection and classification Mads Nielsen Mads Nielsen Associate Professor Ph D I teach the courses Advanced Image Analyis and Medical Image Analysis 10 My homepage can be found here Education Ph D from the Department of Computer Science University of Copenhagen DIKU April 1995 International studies at the INRIA Sophia Antipolis France 93 94 Master of computer science University of Copenhagen KU August 1992 Bachelor of physics and computer science June 1989 Research interests Computer vision image analysis and especially medical image analysis Erik Dam Ph D Candidate I am an assistant teacher in the course Image Analysis 11 My homepage can be found here Education Ph D candidate at the IT University of Copenhagen August 2000 Master in Computer Science University of Copenhagen April 2000 Bachelor in Mathematics University of Copenhagen Research interests Image analysis inspired by scale space theory and medical image analysis applications Theo Engell Nielsen Ph D Candidate I teach the course Introduction to Computer Graphics 12 My homepage can be found here Education Ph D Candidate Animation and Visualisation of Fire Explosions at the IT University of Copenhagen dissertation expected in december 2002 Master of Computer Science graduated from DIKU Department of Computer Science University of Copenhagen 1999 Bachelor of Computer Science DIKU Department of Computer Science University of Copenhagen and Information Psychology Laboratory of Psychology University of Copenhagen 1996 Research interests Computer Graphics Dan Witzner Hansen Ph D Candidate I am an instructor at the course Introduction to Multimedia Technology 13 My homepage can be found here Education Ph D Candidate in the IT University of Copenhagen since July 2000 Master of Computer Science University of Aarhus 1999 Research interests Image processing Tracking Geometric Algebra and Gaze estimation Ole Fogh Olsen Ole Fogh Olsen Assistant research professor Ph D I teach the courses Image Analysis 14 My homepage can be found here Education Ph D in Computer Science from the Department of Computer Science University of Copenhagen DIKU 2000 International studies at the University of Minnesota USA 97 98 Master of Computer Ccience from the Department of Computer Science University of Copenhagen DIKU 1996 International studies at the Vision Lab University of Melbourne Australia 1995 Bachelor of Computer Science from the Department of Computer Science University of Copenhagen DIKU 1994 Research interests Image analysis especially diffusion differential geometry and singularity theory Kristoffer Jensen Ph D I teach the course Musical Signal Processing 15 My homepage can be found here Education Ph D from the Department of Computer Science at the Copenhagen University 1998 Research interests Musical Signal Processing Declean Murphy Ph D Candidate Patterns in Music 16 My homepage can be found here Education Ph D Candidate at the Computer Science Department of Copenhagen University Research interests Computer music and Interactive multimedia 17 USEMAP inter icon2top gif opdateret 03 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology Apply to study 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 When to apply 11 Application process 12 Application form and instructions inter menu bund gif Apply to study The IT University of Copenhagen welcomes international applications for the Master of Science in Information Technology multimedia technology degree Admission to the degree is very competitive It is best to apply early to allow yourself plenty of time to organise your student visa to study at the IT University of Copenhagen Applicants must complete the application form and provide sufficient evidence of their academic background and English language proficiency The application package must be forwarded to The Admission Office IT University of Copenhagen Glentevej 67 2400 Copenhagen NV Denmark Fax 45 38 16 88 99 Click here to read more about the International 13 Master of Science in Information Technology multimedia technology degree 14 USEMAP inter icon2top gif opdateret 03 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 Apply to study When to apply 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif When to apply You may apply to the IT University at any time But the University must receive your application no later than three months prior to semester start see below International students can apply for the course prior to completion of the undergraduate degree However enrolment is conditional on the successful completion of the undergraduate degree at least three 3 months prior to the semester start at the IT University of Copenhagen For example You must have completed your Bachelor degree by 1 June to enrol in the autumn semester starting on 1 September You must have completed your Bachelor degree by 1 November to enrol in the autumn semester starting on 1 February 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 Apply to study Application process 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif The application process Here is an outline of the application process Step One The application package The applicant must forward the completed application form together with the following material A degree transcript A letter of motivation eg no more than one A 4 sheet outlining the motivation for applying including a detailed description of your education Documentation of skills in computer science mathematics and physics Certified copies of supporting documents The IT University will not process your application until we have received your official TOEFL test score as proof of your 11 English language proficiency Certified photocopies of relevant documents must be enclosed with the application form Certificates and academic transcripts in a language other than English or one of the Scandinavian languages must be accompanied by a certified translation in English Applicants are requested not to submit original documents as these will not be returned See the section 12 Application form and instructions for detailed information on how to apply Step two Confirmation of receipt Within a week of receiving the application the IT University will e mail a confirmation of receipt to the applicant The application procedure normally takes about one to two months and the IT University will advise you whether your application is successful Step three Notification of acceptance Applicants are notified whether their application has been successful Applications will be dealt with on a competitive basis and are considered by a M Sc Programme Steering Committee consisting of faculty members The Steering Group reserves the right not to accept applicants Step four Applying for a Danish visa Successful applicants must apply for a Danish student and resident visa at the Danish Embassy or Consulate in their home country It is the responsibility of the student to obtain the necessary visa This process can take up to two months The IT University will forward successful applicants a special purple visa application form which states that you have been invited to study here by a Danish tertiary institution 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 Apply to study Application form and instructions 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Application form and instructions Please click below to download the application form and instructions 11 Application form as a word document 12 Application form as a pdf document 13 Instructions as a word document on how to complete the application form 14 Instructions as a pdf document on how to complete the application form 15 USEMAP inter icon2top gif opdateret 03 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology FAQ 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Cost of living in Denmark 11 How do I find accommodation 12 Cost of tuition fees 13 Can I get any financial assistance 14 Can I earn money while studying 15 Do I need a residence visa 16 What about health insurance 17 How do I survive the Danish winter 18 Useful links about Denmark inter menu bund gif Frequently asked questions Here is a list of answers to frequently asked questions about studying in Denmark the IT University of Copenhagen and the international Master of Science in Information Technology multimedia technology degree For further information email the 19 information office 20 USEMAP inter icon2top gif opdateret 03 05 2001 21 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 FAQ Cost of living in Denmark 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif How much does it cost to live in Denmark Naturally such costs tend to display individual variations In my experience these costs will vary from DKK 50 000 to DKK 60 000 per year corresponding to US 6 000 8 000 The amount allows for some expenditure for clothing and recreation Insurance and travel costs to and from Denmark are excluded 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 FAQ How do I find accommodation 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif How do I find accommodation The IT University of Copenhagen offers advice and assistance with accommodation We will help you to find private accommodation at prices in the range of DKK 1 600 2 000 single rooms furnished no meals included but access to kitchen facilities If you want the IT University to help find you accommodation then email our 11 accommodation help desk 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 FAQ Cost of tuition fees 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif How much does it cost to study at the IT University International students are not charged tuition fees to study at the IT University of Copenhagen The Danish Government has decided to offer this degree free of charge in order to attract qualified IT students from abroad to study in Denmark It is projected that Denmark needs to graduate around 40 000 more computer scientists in the next three years 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 FAQ Can I get any financial assistance 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Can I get any financial assistance Students will have to cover living expenses eg accommodation meals transport books and materials during their stay in Denmark The immigration office through the Danish embassy will ask students from outside the Nordic countries and EU countries to demonstrate funds corresponding to DKK 50 000 US 6 500 before issuing a one year residence permit You must be able to document that 1 you have the full legal rights of disposal of the amount and that 2 these funds are available to you in Denmark Please note that the Danish currency is linked to the Euro and may display variations to the US 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 FAQ Can I earn money while studying 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Can I earn money in Denmark while studying You can apply for a work permit The work permit will allow you to work 15 hours a week during the semester and full time in June July and August Students from the Nordic countries and EU countries need no work permit 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 FAQ Do I need a residence visa 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Do I need a residence visa Students from the Nordic countries need no visa or residence permit A visa is required for students from many countries Please contact your local Danish Embassy or Consulate to see if you require a visa EU citiziens do not need a permit for the first three months of their stay After three months EU citiziens are required to apply for a residence permit This is usually only a formality Students from non Nordic countries must apply for a residence permit prior to arrival Application for a residence permit must be submitted to the Danish Embassy or Consulate in the student s home country at least two months before arrival To speed up the process the IT University will forward successful applicants a purple supplement form posted with the letter of acceptance which states that you have been invited to study here by a Danish tertiary institution Applicants must submit this form together with the residence permit application to the local Embassy or Consulate The immigration office through the Danish embassy will ask you to demonstrate funds corresponding to DKK 50 000 US 6 500 before issuing a one year residence permit You must be able to document that 1 you have the full legal rights of disposal of that amount and that 2 these funds are available to you in Denmark Please note that the Danish currency is linked to the Euro and may display variations to the US 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 FAQ What about health insurance 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif What about health insurance European Union EU citizens staying in Denmark on a residence permit and bringing an E 104 E 111 form from their home country are automatically covered by the National Health Service which gives free access to medical treatment Citizens from Nordic countries are entitled to the same medical treatment as Danish nationals Nationals from outside Nordic and EU countries are not covered during the first 6 weeks of their stay in Denmark after which they are covered by the National Health Insurance Service 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 FAQ How do I survive the Danish winter 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif How do I survive the Danish winter The Danish winter can be rather cold with temperatures down to minus 10 degrees Danes however will tell you that there is no such thing as bad weather only inappropriate clothing So don t forget to bring your warm sweaters and wollen socks On the upside all Danish housing has central heating and the public infrastructure is designed to deal with the winter weather During the summer temperatures can reach 25 degrees and it does not get dark until 11pm 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology 4 FAQ Useful links about Denmark 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Useful links about Denmark and living in DK Here are some useful links about Denmark 11 Royal Danish ministry of foreign affairs 12 Facts and figures on Denmark 13 Danish export directory click on the words Export directory in the left navigation bar 14 Wonderful Copenhagen tourist guide 15 Official information guide 16 USEMAP inter icon2top gif opdateret 03 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology About the University 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif About the IT University of Copenhagen Here you can read more about the 10 IT University of Copenhagen 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen About the IT University of Copenhagen 2 Vacancies 3 Home 4 Find Persons 5 SiteMap 6 Intranet 7 Danish 8 Vision 9 Contact Details 10 Courses 11 The Ørestad Building 12 Facts Figures 13 How to find us 14 Rules 15 Links inter menu bund gif About the IT University of Copenhagen The IT University of Copenhagen IT C is a teaching and research based tertiary institution concerned with information technology IT and the opportunities it offers The University was established in 1999 It is funded to undertake both theoretical research and applied research into the interaction and growing importance of information technology to society The IT C offers a range of courses in IT including Six two year Master of Science courses These courses are offered on a full time basis and include a research component After completing one of these courses the graduate is awarded the title of Master of Science in Information Technology Four Master courses These courses are offered on a part time basis over three years Graduates are awarded the title of Master of Information Technology One part time graduate diploma course Graduates are awarded the t tle Diploma in Information Technology The IT C covers all aspects of information technology including natural sciences humanities and social sciences business impact and the commercialisation of IT The IT C cooperates with a number of institutions for instance the University of Copenhagen the Copenhagen Business School the Technical University of Denmark and the University of Roskilde The IT C is a so called independent faculty which is hosted by the Copenhagen Business School The president of the IT C is 16 Mads Tofte The chair of the board is Mogens Munk Rasmussen president and CEO of Nykredit A S 17 USEMAP inter icon2top gif opdateret 03 05 2001 18 wwwadm it c dk 1 IT højskolen 2 About the IT University of Copenhagen Vision 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif Vision IT C s vision The IT C is committed to the development of a vibrant research and learning environment that contributes to the growth and further development of Danish and international societies This vision will be achieved by creating an IT environment which incorporates key aspects from the natural sciences the business sector and the arts and humanities equipping students with a thorough understanding of IT and its possiblities creating new technologies and improving the use of existing technologies through research collaborating with the professions business government and the wider community in promoting the use of IT enhancing society s knowledge of IT Read the IT C President s 9 elaboration on this vision Danish only 10 USEMAP inter icon2top gif opdateret 03 05 2001 11 wwwadm it c dk 1 IT højskolen 2 About the IT University of Copenhagen Contact Details 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif Contact Details Address The IT University of Copenhagen Glentevej 67 DK 2400 Copenhagen NV Telephone 45 38 16 88 88 Fascimile 45 38 16 88 99 IT C s Student Advisory Service The Student Advisory Office Telephone 45 38 16 88 73 9 Studievejledningen it c dk Corporate Relations Journalist Mikael Kjærbye Telephone 45 38 16 88 80 10 mk it c dk Staff Vacancies Human Resources Manager Kirsten Talbro Laraignou Telephone 45 38 16 88 03 11 ktl it c dk Media information Journalist and webeditor Mikael Kjærbye Telephone 45 38 16 88 80 12 mk it c dk Public Lectures BuzzTalks Tanja Danner Telephone 45 38 16 88 09 13 td it c dk Buildings Operations and Internal Services Head of Department Margit Achen Telephone 45 38 16 88 10 14 margit it c dk Comments about IT C s homepage Information Secretariat 15 wwwadm it c dk 16 USEMAP inter icon2top gif opdateret 03 05 2001 17 wwwadm it c dk 1 IT højskolen 2 About the IT University of Copenhagen Courses 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif Courses The IT University of Copenhagen IT C offers a range of courses in Information Technology IT Master of Science Information Technology The Master of Science in Information Technology degree is a two year full time course which includes a research component Students can enrol in one of the following areas Design Communication and Media Electronic Business Internet Technology Multimedia Technology Software Development Interdisciplinary IT Only students who ve completed a Bachelor degree can be considered for enrolment in the Master of Science Information Technology course In principle any Bachelor degree is a prerequisite for the Master course Master of Information Technology Also on offer are a number of three year part time Master of Information Technology degrees These courses are designed for students who participate in the workforce These degrees do not include a research component Students specialise in one of the following four areas Design Communication and Media Internet Technology Multimedia Technology Software Development Course prerequisites include any Bachelor degree and two years of work experience Graduate Diploma It is also possible to study a Graduate Diploma course This course is a two year part time program aimed at students who participate in the workforce Individual subjects The IT University also offers individual subjects if places are available in the particular course 9 USEMAP inter icon2top gif opdateret 03 05 2001 10 wwwadm it c dk 1 IT højskolen 2 About the IT University of Copenhagen 3 Courses 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif 10 USEMAP inter icon2top gif opdateret 03 05 2001 11 wwwadm it c dk 1 IT højskolen 2 About the IT University of Copenhagen The Ørestad Building 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish 9 Report inter menu bund gif The winning project the IT C s new domicile in the Ørestad The winning project was drawn by the Henning Larsen s Drawing Room in cooperation with Carl Bro A S From above sitplan IT jpg The IT C as seen from above with the north pointing upwards The black blocks on the left are the canal The IT C s 1st stage 19 000m2 consists of the big H on the bottom left hand side of the plan The wing immediately to the east is the IT C s 2nd stage 10 000m2 The IT C s 1st stage is made up of two wings that are connected to a central room Users can access the building via the ramps in the north and south The closest neighbour to the north is the University of Copenhagen The closest neighbour to the south is the Danish Broadcasting Corporation DR A look from the west A FACADE1200 jpg The IT C as seen from the west i e from the canal side The building is six floors high and rests on a deck The north end of the building on the left hand side of the illustration rises to the 1st floor s height The orange area is the auditorium Immediately to the right of this is the canteen which continues outside the building on the southernmost part of the deck A look from the north main 45 CMYK jpg The IT C as seen from the northwest The roof together with the facades facing north and west are wrapped in metal while the Central Room ceiling the eastern and western facades consist of glass Under the ramps in the north and south is a place to park bicycles Connecting ramps provide access to the bicycle parking area The Central Room 50 sketch2 jpg The Central Room as seen from the canteen firstly as a sketch and below as a computer illustration The glass cubicles are meant as areas where students can socialize low 20 CMYK jpg A long stairway up through the Central Room gives the visitor a picturesque climb through the building box 20 RGB jpg The glass cubicles as seen from one of the middle floors 10 USEMAP inter icon2top gif opdateret 03 05 2001 11 wwwadm it c dk 1 IT højskolen 2 About the IT University of Copenhagen 3 The Ørestad Building Report 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif The Judges Report The Judges Report on the new building can be seen 10 here in Danish only 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 About the IT University of Copenhagen Facts Figures 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif Facts Figures Number of enrolled students target figures 1999 2000 2001 2002 M Sc courses 119 405 616 948 Master courses 15 33 155 291 Diploma courses 0 36 171 318 Number of employees target figures 1999 2000 2001 2002 Researchers and lecturers excl lecturers based at collaborating institutions 8 3 31 9 58 5 90 0 Administrative support 1 3 3 0 6 0 6 0 Other administrative staff 6 8 13 7 24 5 32 5 Government Grant Kr Mill 1999 2000 2001 2002 Government Budget 39 0 61 0 83 1 95 2 Established in year 1999 9 USEMAP inter icon2top gif opdateret 03 05 2001 10 wwwadm it c dk 1 IT højskolen 2 About the IT University of Copenhagen How to find us 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif How to get to the IT University of Copenhagen Address The IT University of Copenhagen Glentevej 67 DK 2400 Copenhagen NV Telephone 45 38 16 88 88 Fascimile 45 38 16 88 99 With public transport From the Copenhagen Airport Outside the airport terminal take the public bus No 250S towards the Buddinge Station On week days the bus leaves every 10 minutes from the airport Ask the bus driver to let you off at the stop at Hillerødgade Borups All The bus trip takes around 40 minutes It takes around five minutes to walk from the bus stop to the IT University You walk straight down Vibevej and then left at Glentevej The IT University is at Glentevej 67 See the map below map gif From the Central Railway Station Hovedbanegården Take bus No 250S towards Buddinge Station The 250S bus stop is situated outside the central railway station in Bernstorffsgade outside the Tivoli amusement park Ask the bus driver to let you off at the stop at Hillerødgade Borups All The bus trip takes around 10 minutes It takes around five minutes to walk from the bus stop to the IT University You walk straight down Vibevej and then left at Glentevej The IT University is at Glentevej 67 See the map above Cab prices From the airport during the day approximately 170 00 DDK From the airport at night time approximately 200 00 DDK From the Central Railway Station during the day approximately 100 00 DDK From the Central Railway Station during the night time approximately 130 00 DDK These prices are correct as of November 2000 9 USEMAP inter icon2top gif opdateret 03 05 2001 10 wwwadm it c dk 1 IT højskolen 2 About the IT University of Copenhagen Rules 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif The rules for IT C The rules that apply to IT C can be found 9 here in Danish only 10 USEMAP inter icon2top gif opdateret 03 05 2001 11 wwwadm it c dk 1 IT højskolen 2 About the IT University of Copenhagen Links 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif Links Tertiary Institutions 9 University of Copenhagen 10 Roskilde University 11 University of Aarhus 12 Aalborg University 13 University of Southern Denmark 14 Copenhagen Business School 15 Technical University of Denmark 16 The Royal Veterinary and Agricultural University 17 Malm University 18 Lund University Ministries and other Government institutions 19 Ministry of Information Technology and Research 20 The Danish Ministry of Education 21 State Educational Grant and Loan Scheme Agency 22 Institutions in Denmark offering programmes degrees of higher education in English 23 The Copenhagen Institute for Futures Studies 24 The Danish Board of Technology 25 Centre for Pervasive Computing 26 CTU Denmark s national information centre for technology supported learning 27 Copenhagen Capacity Copenhagen s official investment agency Industrial Organizations 28 The Danish IT Industry Association 29 Danish Technological Institute 30 Danish Association of Professional Technicians 31 Symbion Science Park 32 Technological Information Centre Student Organizations 33 Board of European Students of Technology BEST 34 Studenterhuset The International Caf IT media 35 IDG net 36 Computerworld online Internatioal 37 MIT 38 USEMAP inter icon2top gif opdateret 03 05 2001 39 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 International Master of Science in IT multimedia technology Contact us 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif Contact us Address The IT University of Copenhagen Glentevej 67 DK 2400 Copenhagen Denmark Phone 45 38 16 88 88 Fax 45 38 16 88 99 If you have further questions regarding the international Master of Science in Information Technology multimedia technology which are not answered on these pages you are welcome to email our 10 information office 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees Master of Science IT 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish 9 Design Communication and Media 10 Electronic Business 11 Internet Technology 12 Software Development 13 Multimedia Technology 14 Interdisciplinary IT inter menu bund gif Master of Science courses The IT University offers six 6 two year full time Master of Science courses in the following areas Design Communciation and Media Electronic Business Internet Technology Software Development Multimedia Technology Interdisciplinary IT The Master of Science degree is approved according to the Danish Government s student allowance regulations SU approved Upon completing the course the student is awarded the title of Master of Science in Information Technology The courses are comprised of a number of mandatory courses optional courses electives projects and the Master of Science thesis which is written during the final semester All courses and projects are individually assessed Only students who have completed a Bachelor degree can be considered for the Master of Science in Information Technology course In principle any Bachelor degree is a prerequisite for the Master of Science courses You must have studied mathematics at the highest level A level in secondary school to be considered for the Multimedia Technology course or the Internet Technology course 15 USEMAP inter icon2top gif opdateret 03 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT Design Communication and Media 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Head of Studies 11 More about Design Communcation and Media inter menu bund gif Master of Science Design Communication and Media The Master of Science Design Communication and Media consists of three areas Construction Interactive Design and Media The course is concerned with Design and Interactivity and IT as a social and cultural media Graduates are empowered to use the new IT for communication purposes including a hands on practical approach to construct and design web sites and multimedia 3 D animations and games This course offers knowledge of project management graphic design organisation usability and interaction Some of the keywords of the course are communication argumentation reflection an interdisciplinary orientation and the ability to be abstract The Master of Science Design Communication and Media is offered by the IT C in collaboration with the University of Copenhagen and the Danish School of Design in Copenhagen The course takes place at the IT C and the 12 the Danish School of Design 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT 4 Design Communication and Media Head of Studies 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif John Paulin Hansen Practitioners with insight Head of studies lecturer John Paulin Hansen The Master of Science in Design Communication and Media is an intensive addition to a Bachelor degree Graduates will be able to work with all forms of digital media John Paulin said Students learn to become confident in developing concepts communicating with target groups implementing projects and gaining a deep knowledge of the possibilities of the digital media now and in the future The Design Communication and Media degree is concerned with gaining an understanding of the technology behind IT and the ability to reflect technically and analytically on IT as a media Students will also gain knowledge about IT s societal sociological and organizational role and possibilities To a large extent the degree in Design Communication and Media can be used in web communication but also in other forms of electronic media such as DVD CD rom movies sound and video Furthermore graduates can work with public based service systems and large database systems It has been a rewarding challenge to be part of establishing the degree in Design Communication and Media at the IT C It is inspiring to have students from a variety of backgrounds A brief biography of John Paulin Hansen 41 years old M A in Psychology University of Aarhus 1984 Ph D University of Aarhus 1992 researcher and senior researcher at the Research Center Risø Roskilde 1992 principal at the Space Invaders multimedia design school 1996 Head of Studies and lecturer at the IT C 1999 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT 4 Design Communication and Media More about Design Communcation and Media 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Read more about Design Communication and Media See the 11 course catalog for a list of all courses currently on offer at the IT University 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT Electronic Business 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Head of Studies 11 More about EBUSS inter menu bund gif Master of Science Electronic Business The Master of Science in Electronic Business is at the cutting edge of the development of e business practices in Denmark and abroad The course qualifies graduates to work in the three most important areas relating to e business including the technical business and policy legal spheres The Master of Science in Electronic Business degree focuses on the technical solutions the logistics the payment systems the marketing the sale and distribution of physical as well as digital goods and services A graduate knows how e business impacts on the customer supplier relationship and has a thorough knowledge of the technical problems relating to the industry A graduate is also able to offer corporate businesses academic and applied knowledges of contemporary and relevant e business competencies In the main the course takes place at the 12 Copenhagen Business School which manages the daily administration and planning of the program For more information contact 13 www ebuss dk You can also contact the EBUSS Study Secretariat Department for Informatics Copenhagen Business School Howitzvej 60 3rd floor DK 2000 Copenhagen e mail 14 heje it c dk telephone 38 15 24 68 fascimile 38 15 24 01 15 USEMAP inter icon2top gif opdateret 03 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT 4 Electronic Business Head of Studies 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Kim Viborg Andersen Think globally and differently Head of Studies lecturer Kim Viborg Andersen There is an enormous demand in the business world for people with an understanding of e business both in the private and public sectors Kim Viborg Andersen said He is the Head of Studies of the Electronic Business degree at the IT C When we talk about e business we often think about the sales of goods over the Internet but there is also an electronic transfer of knowledge competencies and advice Consequently e business has an immense influence on the corporate organisation and work processes The Electronic Business degree contains the technical commercial strategic and legal areas pertaining to e business A graduate in e business should know something about everything but it is also important to specialize in one of these areas Kim Viborg Andersen said It is about thinking globally differently and with a purpose because everything changes very fast in this line of business Kim Viborg Andersen says that he has experienced a great exciting challenge developing the e business degree He envisions the graduates in positions such as consultants strategists and projects managers for e business in companies or e business entrepreneurs At the IT University we work in a theoretical manner as well as in an applied manner You can say that we are developing a lab for e business Kim Viborg Andersen said A short biography of Kim Viborg Andersen 33 years old M A in Political Science 1989 University of California 1991 1993 Ph D University of Copenhagen 1994 research presentation at the University of Tokyo 1996 1997 lecturer at the Copenhagen Business School Department 1997 Head of Studies for the E business degree at the IT C 1999 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT 4 Electronic Business More about EBUSS 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Read more about the degree in Electronic Business See the 11 course catalog for a list of all courses currently on offer at the IT University 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT Internet Technology 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Head of Studies 11 More about Internet Technology inter menu bund gif Master of Science Internet Technology Graduates of the Master of Science Internet Technology degree possess a fundamental knowledge of the technologies that make up the Internet and they will be able to develop reliable and effective internet programs The degree consists of three main areas Network technology Internet programming Internet in organizations Network technology is about building and organizing a network network protocol fault tolerance and data security The graduate is equipped with a sound knowledge of the basic functions of a network Internet programming provides an insight into internet programming and current technologies and tools This area explores parallel systems distributed data treatment databases internal and real time systems operating platforms algorithms datastructures and integrity and reliability Internet in organizations deals with IT in geographically diverse organizations interactive design economic and organizational aspects of intra and internet and provides an insight into cooperative relationships services and products This M Sc degree is offered in collaboration with the 12 Technical University of Denmark Copenhagen 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT 4 Internet Technology Head of Studies 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Thomas Hildebrandt Contributing to the internet agenda Head of studies Thomas Hildebrandt The internet is unique because it makes computer science problems visible and relevant for ordinary users E g netsurfers rely on semantics and interpretation every time they download a new web page and the fastest and smartest search engines use complicated algorithms and datastructures according to Thomas Troels Hildebrandt head of studies for the Internet Technology degree at the IT University The technologies are changing and developing rapidly Therefore it is important for a graduate to understand the underlying and permanent principles behind the technologies that make up the internet The aim of this degree is to graduate IT professionals to develop technologies and use them in new contexts They learn to set the agenda for tomorrow s internet instead of just becoming passive users of other people s technologies It is exciting that the students come from different academic backgrounds Many of the internet technology students have a technical background but we also have students with bachelor degrees in religion history and music It is important that they remember and use their academic knowledges Thomas Hildebrandt said The students can use an IT master degree to realise new ideas within their own academic field E g one student with a bachelor in music designed an on line playroom where musicians from around the world could jam together in real time as part of a student project Thomas Hildebrandt expects students to continuously keep up to date with the latest developments in the IT sector by reading the papers and attending some of the regular research and business talks at the IT University If you want to be part of shaping the internet development of the future you must be able to spot the emerging trends of the business world and keep an eye on the relevant societal tendencies which might influence that development Assisted by education research and collaborations with the business world we intend to contribute to the internet agenda nothing less Thomas Hildebrandt said A short biography of Thomas Hildebrandt 1972 Born 1997 Master of Computer Science Aarhus University Denmark 1998 Visiting Ph D student at the Laboratory for Foundations of Computer Science University of Edinburgh Scotland Also short research visit at the McGill University Montreal 1999 Ph D in Computer Science from the Aarhus University Denmark at the BRICS research centre 1999 Employed as assistant research professor at the IT University of Copenhagen Associated with the 11 RCES research project Research areas include semantics category theory and parallel and mobile systems 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish 9 People 10 Research projects 11 Publications 12 Teaching inter menu bund gif Dept of Design and Use of Information Technology DUIT The research aims at contributing to a better understanding of the relationship between modern information technology its users and their work practice as well as improving the understanding and support of the involved design and development activities Apart from theories and concepts the objective is development of useful methodologies and tools Much of the research work is empirical and experimental and builds on research from science social science and the humanities Experienced and observed challenges in the IT industry and in user organizations is a major source of inspiration for the work DUIT is involved in two externally funded research projects 13 DIWA and 14 IDAK The participants in the projects come from Danish research institutes as well as from the industry News Upcoming events DUIT in the large seminar On 1 May at 4 00 p m Klaus Jul Jeppesen Dept of Design and Use of IT is giving a seminar on 15 Diffusing Software Product and Process Innovations The talk takes place at the IT University of Copenhagen Glentevej 67 room 2 03 Contact Head of Department 16 Peter Carstensen 17 carstensen it c dk Administrative Officer Hanne Sørensen 18 hs it c dk Department of Design and Use of Information Technology IT University of Copenhagen Glentevej 67 DK 2400 Copenhagen Denmark Phone 45 3816 8921 Fax 45 3816 8899 URL www it c dk 19 USEMAP inter icon2top gif opdateret 03 05 2001 20 wwwadm it c dk 1 IT højskolen Research 2 Vacancies 3 Home 4 Find Persons 5 SiteMap 6 Intranet 7 Danish 8 Vision 9 Publications 10 External lecturers 11 Ph D Studies 12 Profile of researcher inter menu bund gif Research There are four research departments at the IT C 13 The Department of Digital Aesthetics and Communication The Department of Digital Aesthetics and Communication is concerned with aesthetic cultural and communications aspects of IT based on the humanities and scientific research traditions The Department develops theoretical interdisciplinary models of understanding digital phenomena from a historical and functional viewpoint 14 The Theory Department The Theory Department focuses on the following research topics algorithms and complexity theory semantics of logics and programming languages categorical logic and type theory models of concurrency verification automatic test generation embedded systems and mobile computation 15 The Department of Innovation The Department of Innovation aims to develop new technologies achieved through high class research and its innovative application Currently focus is on the areas of data security and compression computer vision and graphics interaction technology and software technology 16 The Department of Design and Use of InformationTechnology DUIT The research in the department aims at contributing to a better understanding of the relationship between modern information technology its users and their work practice as well as improving the understanding and support of the involved design and development activities Apart from theories and concepts the objective is development of useful methodologies and tools Much of the research work is empirical and experimental and builds on research from science social science and the humanities Experienced and observed challenges in the IT industry and in user organizations is a major source of inspiration for the work 17 USEMAP inter icon2top gif opdateret 03 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Research Vision 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif Visions Goals IT C s vision The IT C is committed to the development of a vibrant research and learning environment that contributes to the growth and further development of Danish and international societies This vision will be achieved by creating an IT environment which incorporates key aspects from the natural sciences the business sector communications and the arts and humanities equipping students with a thorough understanding of IT and its possiblities creating new technologies and improving the use of existing technologies through research collaborating with the professions business government and the wider community in promoting the use of IT enhancing society s knowledge of IT Research Goals Based on a comprehensive academic foundation the IT C is committed to contribute to the understanding and development of IT on an international level through the establishment of a vibrant research and learning culture the application of basic research in IT the development of new technologies and uses of IT the recruitment of eminent researchers and lecturers a high professional level of education 9 USEMAP inter icon2top gif opdateret 03 05 2001 10 wwwadm it c dk 1 IT højskolen 2 Research External lecturers 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish 9 Interview inter menu bund gif External lecturers One of the most important ways the IT C collaberates with other institutions and companies is by employing external lecturers The IT C aims to build an extensive and powerful network of external lecturers This network includes external lecturers from Tele Danmark the Danish Broadcasting Corporation and the University of Lund Sweden External lecturers must 1 possess the necessary technical expertise in a given area preferably within an applied area of IT 2 have completed a M Sc degree or equivalent 3 have experience with post graduate supervision and teaching List of vacancies and for voluntary applications please see 10 positions 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 External lecturers Interview 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif External Lecturer Lise Jensen I teach 3 D modelling and show students how they can build a 3 D model digitally Lise Jensen explains Lise is an external lecturer at the Design Communication and Media course and an Assistant Professor at the University of Lund in Sweden 3 D modelling is used for animation in movies Virtual Reality where you can move freely in an artificial universe and for stationary pictures where you can photograph something which in reality does not exist It is also used extensively in the advertising world It is fun and inspiring to teach at the IT C Lise Jensen says This place has a good atmosphere and the students are clever active and interested That means I am guaranteed feedback as a lecturer Lise Jensen is 43 years old and originally a qualified architect She has worked as a multimedia designer before she became an Assistant Professor at the University of Lund in Sweden 10 USEMAP inter icon2top gif opdateret 03 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Research Ph D Studies 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish 9 Interview 10 Application 11 Studies 12 Funding 13 Courses inter menu bund gif Ph D Studies The IT C has 19 Ph D students enrolled at present This number is expected to drastically increase in a short period of time Information about available Ph D scholarships can be seen at 14 vacancies 15 USEMAP inter icon2top gif opdateret 03 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Research 3 Ph D Studies Interview 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif Lisbeth Klastrup In the Virtual World Lisbeth Klastrup teaches a course in Virtual Societies She is also organising the forthcoming conference Computer Games digital textualities which will take place at the IT University on 1 2 March 2001 I carry out research in how to narrate and learn in virtual worlds Ph D student Lisbeth Klastrup says Firstly I read a lot of literature about narrative theory Secondly I spend a lot of time looking more closely at virtual worlds And finally I am building my own virtual universe right here at the IT C 30 year old Lisbeth Klastrup started on her Ph D studies in October 1999 and is part of the Design Communication and Media degree Before she started at the IT C she finished her thesis on Interactive Narratives in Literary Science at the University of Copenhagen in 1999 I applied for a position at the IT C because I was attracted by the interdisciplinary environment and I felt it would be exciting to help build a new research environment The place is characterized by a pioneer spirit innovation and hard work I would like to see more researchers with a humanities background but more people are coming and the university is looking for teachers with a broad educational background When Lisbeth Klastrup has completed her Ph D she plans to combine research with teaching and a private job in which she either has a multimedia publishing house or works with virtual worlds in companies 10 USEMAP inter icon2top gif opdateret 03 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Research 3 Ph D Studies Application 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif Application 10 Short description of the IT University further information in Danish can be obtained from the 11 homepage Application package in English in various formats form and guide Word 2000 12 skemaENG doc 13 vejlENG doc PostScript 14 skemaENG ps 15 vejlENG ps Questions can be directed to the Ph D school at e mail 16 phdadm it c dk or telephone 45 3816 8888 Maintained by 17 Lotte Møller lm it c dk 18 USEMAP inter icon2top gif opdateret 03 05 2001 19 wwwadm it c dk 1 IT højskolen 2 Research 3 Ph D Studies Studies 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif Studies 10 The latest proposal for the Study Scheme Excerpt from the Study Scheme Appendix J Scheme for biannual reports o Latex source text 11 biannual tex To fill out and latex translation Example 12 biannual karl smart pdf o Printable blank scheme to be filled out by hand 13 halvaars blank pdf General questions regarding Ph D studies can be directed to 14 phdadm itu dk The interim Ph D Study Council Fritz Henglein 15 henglein itu dk Lecturer SWU Software Development Anker Helms Jørgensen 16 anker itu dk Lecturer DKM Design Communication and Media Lecturer 17 malte itu dk lektor MMT Multimedia Technology Lisbeth Klastrup 18 klastrup itu dk Ph D student Ken Larsen 19 kfl itu dk Ph D student assistant Henrik Reif Andersen 20 hra itu dk Lecturer INT Internet Technology chairman Lotte Møller 21 lm itu dk AC principal 22 USEMAP inter icon2top gif opdateret 03 05 2001 23 wwwadm it c dk 1 IT højskolen 2 Research 3 Ph D Studies Funding 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif Funding At present Ph D students and their supervisors each receive DKK 25 000 anno 2001 which must be used for trips summer schools and petty purchases such as books special PC accessories etc The chair of the Ph D Study Council can grant smaller amounts up to DKK 5 000 for any additional expenses If the required amount exceeds DKK 5 000 an application must be sent to the Ph D Study Council In both instances an application must be made which includes the following points Applicant s Name Ph D student and supervisor Reason for example a trip to California to present a research article Outline why additional funds are required to the Ph D Study Council for example I have had so many research articles accepted that I have spent the my entire allocation for trips this year A detailed itemised budget eg The ticket according to the travel agency DKK 8 500 Student s fee for attending the conference DKK 1200 Food DKK 500 Signed by both the Ph D student and the supervisor The supervisor must verify with a signature the relevancy of the activity expenses The application must be submitted through 10 Lotte Møller room 1 38 to the chair of the Ph D Study Council 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Ph D Studies Courses 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Topics in Language Based Security 11 Advanced algorithms F2001 12 Scale based Geometry and Singularities for Computer Imaging F2001 13 Constructive Logic Project F2001 14 Streaming video for wireless networks F2001 inter menu bund gif Courses Here is a list of available Ph D courses at the IT University of Copenhagen during the spring semester 2001 Scale based Geometry and Singularities for Computer Imaging by 15 Professor James Damon May 14 17 2001 Streaming video for wireless networks by 16 Professor K J Ray Liu May 17 23 2001 Topics in Language Based Security by 17 Assistant Professor Greg Morrisett June 11 15 2001 Courses at other universities 18 Aalborg University 19 Danmarks Tekniske Universitet 20 USEMAP inter icon2top gif opdateret 03 05 2001 21 wwwadm it c dk 1 IT højskolen 2 Research 3 Ph D Studies 4 Courses Topics in Language Based Security 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Topics in Language Based Security by 11 Assistant Professor Greg Morrisett June 11 15 2001 Preliminary course description When secure operating systems emerged in the early 1970 s the primary goal was to isolate users processes from one another to mediate access to files and to facilitate fair sharing of resources Back then OS kernels were small and system components were updated infrequently from tape or disk A system administrator had a good idea as to what software components were installed where to get trustworthy components and how to configure the system In short operating systems provided a good architecture for ensuring the secure operation of systems In contrast today s desktops are running primarily by a single user so almost all applications run with the same privileges Desktops are connected by fast networks that allow new software components to be installed from various sites with the click of a button Worse some components are installed and executed without the user s consent or knowledge Furthermore modern operating systems consist of tens of millions of lines of code code that in practice has proven to be buggy And finally because operating systems know so little about the semantics of the applications they are running they have no opportunity to intervene when something bad happens outside the kernel As a result today s operating systems do not protect desktops against relatively simple attacks e g Melissa the Love Bug etc and it s only a matter of time until we are hit with a really bad virus Consequently researchers are re visiting security architectures to find solutions that take the modern networked world into account Certain programming language based technologies have emerged as exciting contenders Interpreters just in time compilers partial evaluators program analyzers type checkers proof checkers binary rewriters and certifying compilers have all been suggested as security enforcement mechanisms that in principle a can enforce a wider range of fine grained least privilege security policies than traditional OS based reference monitors b can achieve superior performance and c require only small trustworthy components The most widely known exemplar is the Java Virtual Machine and its associated Security Manager The recently announced Microsoft IL and associated NET architecture is similar But the JVM and MSIL architectures suffer from a number of shortcomings and are in danger of evolving towards the pitfalls of operating systems We will take a quick survey through exciting language based security technologies and access their potential for moving out of the lab and into the real world Among the topics that we will cover 1 what security policies can we hope to enforce 2 language based reference monitors 3 the role of type systems in security 4 proof carrying code and certifying architectures Registration Please contact 12 Lotte Møller for registration and help for booking accommodation The lectures are free of charge Credit The course yields 2 ECTS European Credit Transfer System Site The course takes place at 13 the IT University of Copenhagen Glentevej 67 DK 2400 NV Copenhagen Denmark 14 USEMAP inter icon2top gif opdateret 03 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Research 3 Ph D Studies 4 Courses Advanced algorithms F2001 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Advanced algorithms F2001 Get further information about the course 11 here 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 Ph D Studies 4 Courses Scale based Geometry and Singularities for Computer Imaging F2001 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Scale based Geometry and Singularities for Computer Imaging May 14 17 2001 at the IT University of Copenhagen This series of lectures will concern scale based geometry as applied to computer images For various problems in computer imaging we wish to be able to analyze the geometry of the objects in the image In order that geometric structures associated to objects in an image can be used for various purposes they should satisfy certain basic properties which include the following 1 They should apply to discrete real world objects and to the mathematical objects which model them which include nondifferentiable functions measures etc 2 Genericity This means that most images have associated geometric structures which exhibit local properties described by a finite catalogue of possibilities 3 Structural Stability These structures must be constructed in the presence of noise and various distortions Hence the structure should be robust i e the structural properties should remain unchanged under sufficiently small perturbations 4 Generic Transitions Variations in the structure occurring for images changing with one or 5 The methods should be applicable to features as well as raw images The lectures will explain how the introduction of scale together with the methods of singularity theory provide rigorous mathematical results establishing the list of properties for a large class of possible geometric structures and demonstrating the applicability to specific ones First we consider what exactly genericity means and what it doesn t mean We will explain how the traditional methods of singularity theory using transversality theory leads to generic properties However genericity requires that we place a topology on the space of functions measures etc modeling the images Even for images defined by smooth functions the topology for genericity does not match traditional mathematical ideas for closeness of images More generally if we wish to allow images to be defined by general nondifferentiable functions then the stability in the classical framework will fail Both of these problems are overcome t hrough the introduction of scale The method of Gaussian blurring introduces the notion of scale and is the prototype for a large class of scaling kernels for which we can apply the methods of singularity theory These allow us to pass from methods designed for idealized problems involving differentiable functions such as the Blum medial axis and Canny edges to more general versions applicable to real world problems We explain how the traditional methods of singularity theory must be modified and what they yield We illustrate with a number of explicit examples how the results about generic properties of local structures stability and generic transitions can be obtained These include both edge and medial scale based geometric structures Course material Ideas from the following book and papers will be presented at the course Although not a prerequisite you might want to look through the introduction part of the material prior to the course The course will not scrutinize every detail in these papers but will explain the highlights and main ideas from them as well as from other material Bruce and Giblin Curves and Singularities ISBN 0 521 42999 4 J N Damon Ridges and Cores for Two Dimensional Images Jour Math Imag and Vision 10 1999 163 174 J N Damon Generic Structure of Two Dimensional Images under Gaussian Blurring SIAM Jour Appl Math 59 1998 97 138 J N Damon Singularities with Scale Threshold and Discrete Functions Exhibiting Generic Properties Proc Int Workshop on Real and Complex Singularities Sao Carlos Maria Ruas Ed Math Contemp vol 12 1997 45 65 Lecturer James N Damon is professor in Mathematics at University of North Carolina Chapel Hill since 1983 He graduated as Ph D from Harvard with John Mather as supervisor in 1972 He has developed the singularity theory of solutions to differential equations This constitutes when applied to the heat equation the mathematical basis of feature detection in Gaussian scale space Please see 11 http www math unc edu Faculty jndamon Registration Please contact 12 Lotte Møller for registration and help for booking accommodation The lectures are free of charge Credit The course yields 2 ECTS European Credit Transfer System Site The course takes place at 13 the IT University of Copenhagen Glentevej 67 DK 2400 NV Copenhagen Denmark Further information Up to date information will be provided at 14 http www it c dk pub db 425 html 15 USEMAP inter icon2top gif opdateret 03 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Research 3 Ph D Studies 4 Courses Constructive Logic Project F2001 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Constructive Logic Project F2001 In spring 2001 Lars Birkedal is giving a PhD course entitled Constructive Logic Project You can find a description of the course 11 here 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT 4 Internet Technology More about Internet Technology 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Read more about Internet Technology See the 11 course catalog for a list of all courses currently on offer at the IT University 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT Software Development 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Interview Head of Studies 11 Interview Lecturer 12 More about Software Development inter menu bund gif Master of Science Software Development Graduates of the Master of Science Software Development degree are able to create new IT applications modify and use existing software develop new software adapt to new technologies and methods in the IT sector The course consists of a core curriculum in the following areas programming software technology system development and several electives which are offered by the Software Development degree and other degrees at the IT C The degree in Software Development ranges from fundamental theories of program development to the application of acknowledged development tools and from theories of the relationship between people and computers to practical knowledge of user interfaces The degree in Software Development focuses on educating the system developers of the future IT project leaders IT managers IT advisors researchers and educators in the software sphere The M Sc degree in Software Development takes place at the IT C It is hosted by the IT C in collaboration with 13 the Royal Veterinary and Agricultural University of Denmark 14 USEMAP inter icon2top gif opdateret 03 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT 4 Software Development Interview Head of Studies 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Soren Lauesen Professor Soren Lauesen Combining theory and practice My vision for the IT University is a tertiary institution where students combine theory and practice Soren Lauesen said The students will learn the stuff that IT professionals need and they have a theoretical basis that helps them continue the life long education on their own They become broad minded and don t just live in the IT world but understand and cooperate successfully with people from other professions Bridging the gap The IT C is a unique opportunity to bridge the gap between IT and other disciplines I have seen this gap in many companies where talented IT people cannot communicate with talented people in other areas I have successfully helped bridge the gap between economy and IT I am also interested in biology psychology culture and many other things and I have long time experience from the IT industry as well as research and teaching A short biography of Soren Lauesen Born in 1942 Master of Science in Mathematics and Physics from the University of Copenhagen 1965 In 1962 he started in the IT industry where he developed many kinds of products ranging from bus scheduling compilers and operating systems to computer control of electricity distribution in Denmark His first assignment in 1962 was to make a program that could beat any human in a game developed by Piet Hein He has worked for a Danish computer manufacturer Regnecentralen and two multi national companies ABB and NCR Since 1985 Soren Lauesen has been a professor He has co founded three educations computer science at the University of Copenhagen economics computer science at the Copenhagen Business School and the IT educations at the IT C 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT 4 Software Development Interview Lecturer 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Focus on principles Lecturer Fritz Henglein Fritz Henglein The Software Development degree is concerned with developing effective software of high quality Software Development students receive an insight into the fundamental principles of programming and development processes and combine these with practical application Fritz Henglein said He was involved in the development of the Software Development program at ITU from the beginning until recently as Head of Software Development and Head of Studies at ITU Fritz Henglein sees three types of academic profiles for students completing the Software Development degree The first profile emphasises software processes system specifications and interaction between people The second profile focuses on programming and construction of software systems The third profile concerns theoretical and mathematical fundamentals for programming and software development It is important that we incorporate a variety of profiles that can be tailored to the individual student Therefore it is crucial to attract students with diverse educational backgrounds including the mathematical and natural sciences the social sciences and arts and humanities We create synergy and build on valuable competencies by having students with diverse backgrounds This provides a stimulating and vibrant learning environment with motivated and independent students Fritz Henglein said A short biography of Fritz Henglein 39 years old Master of Science M S Rutgers University New Jersey 1986 Research Scientist New York University 1987 89 IBM Research 1988 Doctor of Philosophy Ph D in computer science Rutgers University 1989 Postdoctorate fellow Utrecht University and New York University 1989 1990 Researcher Assistant and Associate Professor at the Department of Computer Science at the University of Copenhagen 1991 1999 President Hafnium ApS 1999 present Associate Professor at The IT University of Copenhagen ITU 1999 present Head of Studies at ITU 2000 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT 4 Software Development More about Software Development 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Read more about Software Development See the 11 course catalog for a list of all courses currently on offer at the IT University 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT Multimedia Technology 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Head of Studies 11 More about Multimedia Technology inter menu bund gif Master of Science Multimedia Technology The Master of Science Multimedia Technology is a scientific degree which provides the graduate with the necessary technical skills for constructing and programming multimedia applications The degree combines cutting edge technologies with established IT solutions the course focuses on subjects such as Speech Technology Image Analysis Computer Graphics Signal Processing and Interactive 3D Graphics used in the medical and industrial sphere The degree is concerned with the principles Pattern Recognition Automatic Image Analysis and Signal Treatment The degree also deals with theories about Human Perception and contains courses about the use of commercial and or research based software for industry The graduates gain a thorough knowledge of basic technologies and systems and will be able to develop and maintain such systems Multimedia graduates are able to work with film TV medical systems transmissions of image and sound industrial automatisation and geographical information systems The degree in Multimedia Technology is offered in collaboration with the 12 Technical University of Denmark Copenhagen and the 13 University of Copenhagen Most of teaching takes place at the IT University but a few courses might take place at the Technical University of Denmark or the University of Copenhagen 14 USEMAP inter icon2top gif opdateret 03 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT 4 Multimedia Technology Head of Studies 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif John Aa Sørensen The technology behind IT solutions Head of Studies senior lecturer John Aa Sørensen There is a large need for people with knowledge on the technology of IT systems so we can participate in the development of new systems not only by applying existing technology from foreign countries but also by taking part in the further development of this technology states John Aa Sørensen Associate Professor the Multimedia Technology MMT Program The Program enrolls students with a comprehensive technical background as well as students with no such background In the MMT Program the student can expand her his individual background One of the major aims of the courses is to further explain and elucidate the theory given in the courses through practical hands on exercises exemplifying what type of applications can be designed from the course To obtain the largest number of specializations some courses from the Department of Computer Science at the University of Copenhagen and the Technical University of Denmark can also be included in the curriculum John Aa Sørensen gives a few examples on projects of relevance to candidates from the MMT Program When TV transmits from Tour de France it would be very attractive if the advertisements positioned along the French roads could be substituted by Danish advertisements through the application of multimedia technology so the Danish TV user will receive an advertisement from a bank and the French user an advertisement of quality vine In relation to the film industry digital processing of film is an important future area e g in connection with further development of the technology used in Jurassic Park or Titanic Another important example is projects on increasingly important systems which use images and sound for communication between geographical distant places A short biography of John Aa Sørensen Master of Science in Electrical Engineering from the Technical University of Denmark TUD in 1975 and Ph D in Electronics from TUD in 1982 Assistant and Associate Professor at TUD and from November 2000 Associate Professor at IT C Among others he has carried out research and teaching within the area of signal processing and its applications within coding and noise reduction of speech signals and applications in systems for clinical diagnosis His field of interest is methods and applications of Multimedia Signal Processing He participates in international cooperation within the framework of IEEE 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT 4 Multimedia Technology More about Multimedia Technology 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Read more about Multimedia Technology See the 11 course catalog for a list of all courses currently on offer at the IT University 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT Interdisciplinary IT 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 More about Interdisciplinary IT inter menu bund gif Master of Science Interdisciplinary IT The Master of Science Interdisplinary IT degree places a heavy emphasis on combining students existing educational backgrounds with a sound knowledge of information technology The degree also provides an insight into how IT systems are designed and constructed The graduate will be able to apply IT solutions in a wide range of areas and use IT in new contexts to solve assignments The graduate will be able to work independently critically and proactively on a wide range of IT projects The degree focuses on providing each student with their own unique academic profile as well as broad long term qualifications based on theoretical and methodical foundations The majority of the courses is undertaken at the 11 University of Roskilde which manages the daily administration and planning of the degree To some extent it is possible to enrol in courses from other degrees at the IT C 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Master of Science IT 4 Interdisciplinary IT More about Interdisciplinary IT 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Read more about Interdisciplinary IT See the 11 course catalog for a list of all courses currently on offer at the IT University Further information about this degree including the academic guidelines can be obtained from 12 the webpage for Interdisciplinary IT at the University of Roskilde 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Studies and degrees Master of IT 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif Master of Information Technology The Master of Information Technology is a three year part time degree aimed at students who participate in the workforce Students can choose between four 4 Master of IT degrees Design Communication and Media Internet Technology Multimedia Technology Software Development The Master degree comprises manadatory courses optional courses and a final project The Master degree is the equivalent of one and a half years full time study load There are activities two days a week for twelve weeks each semester The Master of Information Technology degree costs DKK 75 000 for all six semesters and is regulated by the Danish Government s law for open education Course prerequisites include a Bachelor degree and two years of work experience Any Bachelor degree is considered a course prerequisite The Master of IT degree is shorter than the Master of Science degree Both degrees contain the same professional elements but the Master of IT does not include a final thesis On the other hand the theoretical substance is higher in the Master degree than in the Graduate Diploma degree You can find more information about the content of each Master of IT degree by reading the description of each corresponding Master of Science degree 9 USEMAP inter icon2top gif opdateret 03 05 2001 10 wwwadm it c dk 1 IT højskolen 2 Studies and degrees Graduate Diploma 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish 9 Head of Studies inter menu bund gif Graduate Diploma The Graduate Diploma degree is a two year part time course The Diploma course corresponds to one year s full time study load split between four semesters The first three semesters consists of course work Students will produce a final project in the last semester Course prerequisites include two years of work experience and a tertiary degree The Graduate Diploma degree costs DKK 60 000 for all four semesters it is regulated by the Danish Government s Law for open education 10 USEMAP inter icon2top gif opdateret 03 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Studies and degrees 3 Graduate Diploma Head of Studies 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif Peter Carstensen Understanding the technology Head of Studies Peter Carstensen The Graduate Diploma degree supplements students existing experiences from the workforce with a wide range of IT skills The degree is designed to provide students with a thorough understanding of IT technologies and how these are designed Graduates will gain in depth knowledge of the possibilities and limitations of the IT technology lecturer Peter Carstensen of the Graduate diploma course said For instance graduates will be qualified to assess and recommend the most suitable IT structure for a specific company The aim of the degree is to create a close connection with the students working life If possible the students will write projects which directly relates to their workplace This makes the theoretical knowledge relevant and interesting while the company benefits from having an employee attending the course The Graduate Diploma degree carries a heavy study load Part of course homework will be group based A short biography of Peter Carstensen 42 years old qualified computer scientist from the Department of Computer Science at the Universtity of Copenhagen 1985 1978 1990 employed in the industrial sector in Sparekassen Datacenter Denmark and with Christian Rovsing Denmark as a system developer designer and consultant 1991 1997 at the Risø Research Centre Roskilde working on the research project the interaction of humans and computer 1994 Ph D 1997 1999 at the Technical University of Denmark research leader of a multimedia lab 1999 lecturer at the IT C 10 USEMAP inter icon2top gif opdateret 03 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Studies and degrees Single Subjects 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif Single Subjects The IT University offers individual subjects if places are available Only students who have completed a bachelor degree and are currently enrolled in a Master degree at a tertiary institution can be considered for admission For further information please contact 9 the Student Advisory Council 10 USEMAP inter icon2top gif opdateret 03 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Studies and degrees EU course credit transfer 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif European Union Course Credit Transfers The European Community Course Credit Transfer System ECTS is designed to help students in the European Union and the European Free Trade Association EFTA to participate in degrees at international universities The IT University uses the ECTS point system to directly relate our courses on offer to those at international universities One year s full time study load corresponds to 60 ECTS points This means that one semester in a Master of Science degree corresponds to 30 ECTS whereas one semester in the Master of IT and Graduate Diploma degree corresponds to 15 ECTS points A general rule of thumb is that one course at the IT C corresponds to 7 5 ECTS points For further information please contact 9 the Student Advisory Council 10 USEMAP inter icon2top gif opdateret 03 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Studies and degrees Courses on offer 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif 9 USEMAP inter icon2top gif opdateret 03 05 2001 10 wwwadm it c dk 1 IT højskolen 2 Studies and degrees International students 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif International students International students are eligible to apply to study at the IT University of Copenhagen However most courses require knowledge of Danish Click here to download an 9 application form in Danish Courses taught in English The degree International 10 Master of Science in Information Technology multimedia technology is taught in English Click here to download an 11 application package in English for the multimedia technology degree 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Vacancies 13 Associate or Assistant Professorships 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif 13 Associate or Assistant Professorships The IT University of Copenhagen invites applications for 13 vacant Associate or Assistant Professorships The IT University was created by the Danish Ministry of Research in 1999 to boost research and higher education in Information Technology in the Oresund Region The IT University offers graduate studies post graduate studies and Open University using e learning The first students were admitted September 1999 By now more than 700 graduate students have been admitted More than 130 people teach or conduct research at the IT University There are currently 20 PhD students and the Faculty consists of 19 Assistant and Associate Professors The IT University continues to expand rapidly Each new Assistant or Associate Professor shall belong to one of the following four research departments The Department of Design and Use of IT conducts research in systems development and the interplay between IT its users and their work practice The Department of Digital Aesthetics and Communication addresses aesthetic cultural social and communicative aspects of IT phenomena The Department of Innovation conducts research in various areas of computer science with the aim of taking the research all the way to being new innovative technology Subjects include computer vision and graphics multimedia technology programming language technology formal verification embedded software and interaction technologies The Theory Department conducts research in algorithms and complexity theory and in semantics of logic and programming languages Faculty is wanted primarily within the following areas Mobility theory of mobility software platforms security m business cultural and social impact mobile usability Media and Communication design of interactive systems digital media digital aesthetics convergence of technologies digital discourse interaction technologies Software technology databases programming and programming languages software engineering operating systems software tools and architectures component based systems embedded software verification Software applications design methodologies IT and organisations IT strategies diffusion and adoption of IT computer supported co operative work human computer interaction and usability Theory application of mathematical logic and category theory to computer science especially concerning the semantics of programming languages and type theories and algorithms and complexity theory Virtual Reality VR infrastructure basic technologies contents and use Scientific Leader of Lab We seek an Associate Professor who will establish and run a new virtual reality laboratory within the Department of Innovation The Associate Professorship is a tenured position and the Assistant Professorship is an untenured position for a 3 year period Both positions are with research and teaching obligations The teaching may involve diploma students MSc students and PhD students Some of the courses are specifically for part time students at the Open University The positions can be filled at either Assistant or Associate Professor level depending on the qualifications of the applicants Since the IT University is young we seek candidates who are dedicated to the task of building a new organisation Associate professor level Responsibilities Research including responsibility for the academic development of the research field in question Research management initiation and management of research projects pedagogical instruction supervision of PhD students and Assistant Professors and assessment work Teaching preparation and participation in examinations at the IT University of Copenhagen Educational development and other relevant assignments at the IT University of Copenhagen Work of administrative nature The Associate Professor is expected to contribute to the development of the research profile of the IT University Furthermore the Associate Professor is expected to participate in maintaining and improving the international research level of the IT University and in the building of a new organisation Qualifications Qualifications must correspond to the level of Assistant Professor with teaching obligations based on previous employment or the equivalent Applicants must be able to document an unusually strong record within university level research and teaching as well as research production at an international level Emphasis is placed on the applicant s research qualifications in relation to the research area Furthermore applicants must document pedagogical qualifications or other material for the evaluation of the pedagogical level Assistant Professors who apply for a position as Associate Professor must enclose an evaluation of the pedagogical qualifications obtained during the employment as Assistant Professor Applicants without teaching experience at the Associate Professor level or the equivalent will be appointed on a probationary period of up to 1 year Assistant Professor level Responsibilities Research including responsibility for the academic development of the research field in question Teaching preparation and participation in examinations at the IT University of Copenhagen Educational development and other relevant assignments at the IT University of Copenhagen Work of administrative nature Qualifications Qualifications must correspond to the PhD level based on previous employment or the equivalent Emphasis is placed on the applicant s research potential which means that the researcher with a large research potential may be preferred to the researcher with a large research production The applicant is obliged to participate in the Assistant Professor development program of teaching principles and methods at the IT University in order to elaborate a written evaluation of the pedagogical qualifications at the termination of the employment as Assistant Professor For further information please contact For the Department of Design and Use of IT Associate Professor PhD Peter Carstensen phone 45 3816 8830 e mail 9 carstensen it c dk For the Department of Digital Aesthetics and Communication Associate Professor PhD Anker Helms Jørgensen phone 45 3816 8888 e mail 10 anker it c dk For the Department of Innovation Associate Professor PhD Henrik Reif Andersen phone 45 3816 8827 e mail 11 hra it c dk For the Theory Department Assistant Professor PhD Lars Birkedal phone 45 3816 8868 e mail 12 birkedal it c dk Appointment and salary will be in accordance with the Ministry of Finance s agreement with the Central Academic organisation with the possibility of negotiating extra allowances based on qualifications Applications must include 1 A complete numbered list of publications with asterisks marking those publications to be taken into account at the evaluation If you apply for an Associate Professorship you can mark a maximum of 10 publications If you apply for an Assistant Professorship only you can mark a maximum of 5 publications 2 Copies of those publications marked with an 3 Co author statements clarifying the applicant s contribution to the submitted publications with more than one author 4 Assistant Professor level any documentation of previous teaching experience Associate Professor level documentation of previous teaching experience for assessment of pedagogical qualifications Instruction is followed by the job advertisement 5 Transcripts and CV An Assessment Committee will be appointed to assess the applications The applicants will receive only the part of the final recommendation concerning the assessment of their qualifications The application in Danish or English must state explicitly a whether the application is for Assistant Professor Associate Professor or both and b the reference number s of the research department s with whom the appointment is sought see below The application including enclosures in six copies and the marked publications in six copies must be submitted to The IT University of Copenhagen Att Kirsten Talbro Laraignou Glentevej 67 DK 2400 Copenhagen NV Denmark Marked Associate Professorship or Assistant Professorship or both and reference number s see below For the Department of Design and Use of IT ref no 33 0525 For the Department of Digital Aesthetics and Communication ref no 33 0522 For the Department of Innovation ref no 33 0523 For the Theory Department ref no 33 0524 Application deadline 1 May 2001 12 00 noon Applications received electronically will not be taken into consideration All interested researchers irrespective of age sex race religion or nationality are invited to apply for the position Documentation and information on pedagogical qualifications Associate Professor level The IT University of Copenhagen requests that the application is provided with the below mentioned information for the assessment of the applicant s pedagogical qualifications 1 Outline of the instruction activities over the last 3 years at least Taught subjects and level Bachelor Master PhD or other levels Extend of the instruction periods and number of students Sort of the instruction lectures group instruction tutorials Internet based instruction distance teaching Applied pedagogical methods Language used Evaluation and examination forms 2 List of any instructional materials the applicant may have written 3 Information on participation in development of teaching elaboration of course plans etc 4 Management and supervision of part time instructors 5 Administration of the instruction including administrative responsibilities 6 Evaluation of the pedagogical qualifications at the termination of the employment as Assistant Professor in case 7 Student evaluations of the instruction other kind of evaluations from colleagues experts or others 8 Reflections on the described instruction and perspectives for future instruction with regard to the academic content course and pedagogics 9 Other relevant information for the documentation of pedagogical qualifications The information may be organised otherwise but the same level of details is requested 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Vacancies 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif 9 USEMAP inter icon2top gif opdateret 03 05 2001 10 wwwadm it c dk 1 IT højskolen Contact Us 2 Vacancies 3 Home 4 Find Persons 5 SiteMap 6 Intranet 7 Danish 8 Contact Information inter menu bund gif Contact information Address The IT University of Copenhagen Glentevej 67 DK 2400 Copenhagen Denmark Phone 45 38 16 88 88 Fax 45 38 16 88 99 Information for students Student advisory office 9 Studievejledningen it c dk Media Relations Journalist Mikael Kjærbye 10 mk it c dk Vacant staff positions Human Resources Manager Kirsten Talbro Laraignou 11 ktl it c dk Corporate Relations Mikael Kjærbye 12 mk it c dk Public lectures BuzzTalks Tanja Danner 13 td it c dk Buildings and Maintenance Head of dept of Buildings and Internal Service Margit Achen 14 margit it c dk Comments and suggestions regarding the web site Webmaster 15 wwwadm it c dk 16 USEMAP inter icon2top gif opdateret 03 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Contact Us Contact Information 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif Contact Information Address The IT University of Copenhagen Glentevej 67 DK 2400 Copenhagen Denmark Phone 45 38 16 88 88 Fax 45 38 16 88 99 Information for students Student advisory office 9 Studievejledningen it c dk Media relations Journalist Mikael Kjærbye 10 mk it c dk Vacant staff positions Human Resources Manager Kirsten Talbro Laraignou 11 ktl it c dk Corporate relations Mikael Kjærbye 12 mk it c dk BuzzTalks Tanja Danner 13 td it c dk Buildings and Maintenance Head of dept of Buildings and Internal Service Margit Achen 14 margit it c dk Comments and suggestions regarding the web site Webmaster 15 wwwadm it c dk 16 USEMAP inter icon2top gif opdateret 03 05 2001 17 wwwadm it c dk 1 IT højskolen Media info 2 Vacancies 3 Home 4 Find Persons 5 SiteMap 6 Intranet 7 Danish inter menu bund gif Media Information Media information Journalist and webeditor Mikael Kjaerbye Telephone 45 38 16 88 80 8 mk it c dk Media releases IT University of Copenhagen opens doors for international students 18 January 2001 9 word 10 text and 11 pdf IT University takes the lead with launch of LinuxLab dk 1 December 2000 12 word 13 text and 14 pdf Online pictures 15 President Mads Tofte 16 The IT University 17 Information meeting 1 18 Information meeting 2 19 Information meeting 3 20 In the class room 1 21 In the class room 2 22 In the class room 3 23 USEMAP inter icon2top gif opdateret 03 05 2001 24 wwwadm it c dk 1 IT højskolen 2 Research 3 Ph D Studies 4 Courses Streaming video for wireless networks F2001 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif Streaming video for wireless networks May 17 23 2001 at the IT University of Copenhagen Course objective The objective of this course is to introduce the major standards and signal processing methods necessary for video streaming systems in wireless networks This includes the MPEG family of standards for transporting video images audio speech and graphics through a network and carrying out joint source and channel coding for a wireless channel The course is scheduled as a series of lectures before noon and exercise work on selected course material in the afternoon Course period Thursday 17 Wednesday 23 May 2001 The lecturer Dr Liu is a Professor of Electrical and Computer Engineering Department and Institute for Systems Research of University of Maryland College Park He has a PhD degree from the University of California Los Angeles in electrical engineering His research interests span broad aspects of signal processing and communications including signal processing algorithms and architectures image and video processing wireless communications and networking and medical and biomedical technology He holds five US patents and has published over 200 papers Among others he received the Best Paper Award from IEEE 50th Vehicular Technology Conference IEEE VTC Amsterdam 1999 References 1 J Chen U V Koc K J Ray Liu Design of Digital Video Coding Systems To appear Marcel Dekker 2 M T Sun A Reibman Compressed Video over Networks Macel Dekker 2001 3 K Ngan C W Yap K T Tan Video Coding for Wireless Communication Systems Marcel Dekker 2001 4 Research papers Course schedule Thursday May 17 Source Coding for Video Friday May 18 Recent Multimedia Standards MPEG 1 2 4 and H 263 Monday May 21 Wireless Channel Model Channel Coding Joint Source and Channel Coding Error Concealment Error Resilience Tuesday May 22 Advanced Topics Secure Multicast Communications Wednesday May 23 Advanced Topics Course participants The course is targeted for Ph D students in Computer Science Informatics or Electrical Engineering advanced level Master of Science students in the above areas and participants from industry Some exercises use the c programming language Course credit 2 ECTS European Credit Transfer System points Course site IT University of Copenhagen Glentevej 67 2400 Copenhagen Denmark www it c dk Registration and further information Please contact 11 Lotte Møller for registration To a limited extent she can assist in booking accomodation The lectures are free of charge 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish 9 Staff and research 10 Computer Games Digital Textualities 11 The IT University at a glance inter menu bund gif Department of Digital Aesthetics and Communication The department at a glance The research department Digital Aesthetics and Communication DiAC is one of four research departments at the IT University of Copenhagen The department addresses aesthetic cultural social and communicative aspects of IT phenomena DiAC complements the other research departments of the IT University that cover technical and organisational aspects of IT Research projects and staffing The current research projects address e books computer games story MOOs digital visual style user experience architecture and mental workload in IT work The staff comprises so far only one Associate Professor one Assistant Research Professor four PhD students and one administrative officer However we expect to employ four more PhD students in the nearest future but rest assured we plan to grow considerably Available positions The IT University of Copenhagen is expanding and positions as Associate and Assistant Professor post docs and PhD grants will be announced in the years to come Please keep an eye on our website in the future as we will be growing with a considerable pace over the next years Recent event On March 1st and 2nd DiAC hosted the conference Computer Games Digital Textuality CGDT The event attracted 160 participants who enjoyed keynotes by Espen Aarseth Selmer Bringsjord and Marie Laure Ryan as well as presentations by a number of European researchers in the field See further 12 details or visit the 13 conference site Contact Head of Department 14 Anker Helms Jørgensen 15 anker it c dk Administrative Officer Trine Eltang 16 eltang it c dk 17 USEMAP inter icon2top gif opdateret 03 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Research 3 Staff and research 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department home inter menu bund gif The staff and their research interests The staff is currently very small but we plan to grow considerably in the years to come 11 Anker Helms Jørgensen Associate Professor PhD Head of Department Anker s general research interest is usability currently focussing on mental and physical workload in IT work He earned his PhD in Human Computer Interaction in 1983 Anker has worked as systems developer freelance consultant and associate professor in Human Computer Interaction at Dept of Psychology at Copenhagen University from 1987 to 1999 Ida Engholm PhD Student Ida conducts research in the field of digital design Currently she s writing her PhD on the design history of digital media The aim of her thesis is to survey the development of graphical design at the internet and to develop a theoretical framework for analysis of digital design phenomena Ida holds an MA in Danish Literature and Art History and has published two books about design 12 Jesper Juul PhD Student Jesper s primary research interest is computer games The goal of his PhD project is to help establish computer games and partly non electronic games as a field of study Jesper holds a MA in Nordic Language and Literature and has developed graphical systems multiplayer games and art installations 13 Lisbeth Klastrup PhD Student Lisbeth s research field is virtual worlds interactive story environments and digital literature She holds a master in Comparative Literature and Media Studies from University of Copenhagen and an MA in Image Studies from University of Kent From 1999 2000 Lisbeth is writing her PhD thesis on the construction of story in narrative centered learning environments Raine Koskimaa PhD Assistant Professor Raine conducts research in the field of digital textuality He has published two books and several articles on the issues of digital literature hyper and cybertextuality and narratology Furthermore he co edits the Cybertext Yearbook series and he is a member of the Literary Advisory Board for the Electronic Literature Organisation Raine earned his PhD with a 14 thesis on digital literature 15 Ulrik Hartmann Gade PhD Student Ulrik is currently pursuing a Ph D in user centred design His research interests are to explore the desire for intentionally designing how digital media and other computational artefacts are experienced by users in use Ulrik has a Master s degree in Communication Studies from Roskilde University Denmark 16 USEMAP inter icon2top gif opdateret 03 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Staff and research Department home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Staff and research 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 CV 12 Research 13 Teaching and consulting 14 Publications inter menu bund gif Anker Helms Jørgensen s homepage Contact information Anker foto gif Anker Helms Jørgensen Associate Professor The IT University of Copenhagen Glentevej 67 DK 2400 Copenhagen NV Denmark Phone 45 38 16 88 88 Fax 45 38 16 88 99 Email 15 anker it c dk Homepage www it c dk people anker CV in brief I m currently head of the Department of Digital Aesthetics and Communication and Associate Professor in Design Communication Media at the IT University of Copenhagen From 1987 to 1999 I was employed at Dept of Psychology at the University of Copenhagen Since my MSc and PhD I have been working as systems developer and consultant in HCI My research interests Mental and physical workload in IT work Epistemological aspects of usability evaluation methods Selected recent publications Jørgensen A H Jensen B R Laursen B and Garde A H Integrating HCI Human Factors and Occupational Health An exploratory Study HCI Intnl 2001 New Orleans Aug 2001 accepted Jacobsen N E H and Jørgensen A H 2000 The State of Art in the Science of Usability Evaluation Methods A Kuhnnian Perspective Proc XIVth Triennal Congress of the International Ergonomics Association and 44th Annual Meeting of the Human Factors and Ergonomics Society San Diego July 30th August 4th 2000 p 6 577 6 580 16 USEMAP inter icon2top gif opdateret 03 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Staff and research 5 CV 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish 12 Anker home inter menu bund gif CV Personal information I was born in 1946 in Copenhagen I m a Danish Citizen I m married to Ulla Vadstrup whom I met in 1992 in front of the beautiful watercolour Capron House by Edward Hopper at the delightful Danish museum of modern art 13 Lousiana Academic Degrees 1983 PhD in Human Computer Interaction from 14 Dept of Computer Science 15 Copenhagen University 1977 MSc in Computer Science Dept of Computer Science University of Copenhagen thesis in readability of computer programs Positions 2000 Head of department Digital Aesthetics and Communication IT University of Copenhagen 1999 Associate professor in Design Communication Media IT University of Copenhagen 1987 1999 Associate professor in IT psychology 16 Dept of Psychology University of Copenhagen 1985 1987 Independent consultant in Human Computer Interaction 1983 1985 In house consultant at I S Datacentralen now 17 CSC 1980 1983 PhD student at Dept of Computer Science University of Copenhagen 1977 1980 Systems developer at Dept of Clinical Physiology Bispebjerg Hospital Visits abroad 1993 1993 Dept of Psychology University of York 1981 1982 18 Applied Psychology Unit Cambridge UK Affiliations with Professional Societies ACM Human Factors and Ergonomics Society European Society of Cognitive Ergonomics Sammenslutningen af Medieforskere i Danmark Ingeniørforeningen i Danmark Datalogforeningen 19 USEMAP inter icon2top gif opdateret 03 05 2001 20 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Staff and research 5 6 CV Anker home 7 Vacancies 8 Home 9 Find Persons 10 SiteMap 11 Intranet 12 Danish inter menu bund gif 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Staff and research 5 Research 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish 12 Anker home inter menu bund gif Research Current Research Interests Workload in IT work This work addresses the cognitive and physiological aspects of IT work in particular use of keyboard and mouse This work is done in collaboration with three work physiologists at the IT laboratory at 13 National Institute of Occupational Health Bente Rona Jensen Bjarne Laursen and Helene Garde Epistemological aspects of usability evaluation methods This work addresses the body of evidence we have accumulated about usability evaluation methods over the years Development of Interactive Web applications The theme of the 14 DIWA project is design management and use of interactive Web applications in distributed work settings DIWA focusses on the Web technology as an IT platform for collaborative distributed work inside an organization intranet or between organizations extranet Major Research Projects 2000 2002 IT and the elderly with the National Institute of Occupational Health funded by the Danish National Research Council 2000 2002 DIWA Design of Interactive Web Applications with University of Copenhagen The Technical University and Roskilde University funded by the Danish National Research Council 1992 1995 15 AMODEUS II Assaying Models of Design Expressions in Use with 9 partners in Western Europe headed the research package Transfer and Assay 1989 1992 AMODEUS I Assimilating Models of Designers Users and Systems with 9 partners in Europe headed the research package Empirical Designer Studies Editorial Experience Program committee member and reviewer at the conferences Human Factors in Computing Systems CHI 1992 CHI 2001 Interact 1992 1995 1998 The British Conference on Human Computer Interaction 1998 1999 2000 16 USEMAP inter icon2top gif opdateret 03 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Staff and research 5 6 Research Anker home 7 Vacancies 8 Home 9 Find Persons 10 SiteMap 11 Intranet 12 Danish inter menu bund gif 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Staff and research 5 Teaching and consulting 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish 12 Anker home inter menu bund gif Teaching and consulting My main teaching area is Human Computer Interaction user interface design usability and usability evaluation Consulting I have been consulting widely in many areas in Human Computer Interaction in the last 18 years I have held courses in user interface design since 1982 for designers from industry Teaching At Copenhagen University and at the IT University of Copenhagen I have given courses in Human Computer Interaction Basic Web Design Interaction Design and User Perspectives and Future Media Supervision of PhD Students I m currently supervising three PhD Students 13 Lisbeth Klastrup who is working with virtual worlds from a linguistic perspective 14 Jesper Juul who is working with computer games 15 Ulrik Hartmann Gade who is working with user experience architecture Former PhD Students Annette Aboulafia who addressed the foundations of the field Human Computer Interaction the traditional cognitive science based and one based on activity theory She s current employed as Associate Professor in psychology at Roskilde University Niels Ebbe Holm Jacobsen who investigated the validity of usability evaluation methods He s currently employed by Nokia as a usability specialist Torkil Clemmensen who did research into human machine interaction in maritime IT systems He s currently employed as Assistant Professor at the Copenhagen Business School 16 USEMAP inter icon2top gif opdateret 03 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Staff and research 5 6 Teaching and consulting Anker home 7 Vacancies 8 Home 9 Find Persons 10 SiteMap 11 Intranet 12 Danish inter menu bund gif 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Staff and research 5 Publications 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish 12 Anker home inter menu bund gif Publications This page lists five recent publications followed by the complete list of publications ordered by topic Within each topic the papers are listed cronologically newest first Please bear with me as you have to scroll down this page Recent Publications Jørgensen A H Jensen B R Laursen B and Garde A H Integrating HCI Human Factors and Occupational Health An exploratory Study HCI Intnl 2001 New Orleans Aug 2001 accepted Jørgensen A H Jensen B R Laursen B and Garde A H A Study of Mental Workload in Mouse and Keyboard Input Proc NordiCHI Stockholm Oct 23 25th 2000 Jacobsen N E H and Jørgensen A H The State of Art in the Science of Usability Evaluation Methods A Kuhnnian Perspective Proc XIVth Triennal Congress of the International Ergonomics Association and 44thAnnual Meeting of the Human Factors and Ergonomics Society San Diego July 30th August 4th 2000 p 6 577 6 580 Jørgensen A H and Jacobsen N E H Towards an Epistemology of Usability Evaluation Methods Proc CybErg 99 Australia August 1999 http cyberg curtin edu au and CD ROM CybErg 1999 The International Ergonomics Association Press Curtin University Perth Australia Jørgensen A H Garde A H Laursen B and Jensen B R Mental Workload in IT Work Combining Cognitive and Physiological Perspectives In Bullinger H J and Ziegler J eds Human Computer Interaction Ergonomics and User Interfaces vol 1 p 97 101 Lawrence Erlbaum 13 To the top Mental workload in IT work Jørgensen A H Jensen B R Laursen B and Garde A H Integrating HCI Human Factors and Occupational Health An exploratory Study Accepted at HCI International 2001 New Orleans Aug 2001 Jensen B R Laursen Garde A H and Jørgensen A H Effect of mental demand on muscle activity during use of computer mouse and keyboard Proc 2nd PROCID Symposium Prevention of Muscle Disorders in Computer Users G teborg 8 10 March 2001 Jørgensen A H Jensen B R Laursen B and Garde A H A Study of Mental Workload in Mouse and Keyboard Input Proc NordiCHI Stockholm Oct 23 25th 2000 Jørgensen A H Garde A H Laursen B and Jensen B R Applying the Concept of Mental Workload to IT work Proc CybErg 1999 Australia August 1999 http cyberg curtin edu au and CD ROM CybErg 1999 The International Ergonomics Association Press Curtin University Perth Australia Jørgensen A H Garde A H Laursen B and Jensen B R Mental Workload in IT Work Combining Cognitive and Physiological Perspectives In Bullinger H J and Ziegler J eds Human Computer Interaction Ergonomics and User Interfaces vol 1 p 97 101 Lawrence Erlbaum Proc HCI International 99 M nchen August 1999 Garde A H Laursen B Jensen B R Jørgensen A H The effect of cognitive demands on heart rate and blood pressure variability during computer work In preparation Laursen B Jensen B R Garde A H Jørgensen A H Effect of Mental Demand During Computer Work Using Mouse and Keyboard In preparation Jørgensen A H Garde A H Laursen B and Jensen B R Mental and Physical Workload in Computer Work An Experimental Study of Mouse and Keyboard Input In preparation Garde A H Laursen B Jørgensen A H Jensen B R Heart rate variability as a measure of autonomic nervous activity during mentally demanding computer work In preparation 14 To the top Epistemology of usability Jacobsen N E H and Jørgensen A H The State of Art in the Science of Usability Evaluation Methods A Kuhnnian Perspective Proc XIVth Triennal Congress of the International Ergonomics Association and 44thAnnual Meeting of the Human Factors and Ergonomics Society San Diego July 30th August 4th 2000 p 6 577 6 580 Jørgensen A H and Jacobsen N E H Towards an Epistemology of Usability Evaluation Methods Proc CybErg 99 Australia August 1999 http cyberg curtin edu au and CD ROM CybErg 1999 The International Ergonomics Association Press Curtin University Perth Australia Jørgensen A H og Jacobsen N E H Taking stock of what we know and don t know about usability evaluation methods Poster Proc Human Factors and Ergonomics Society s 42nd Annual Meeting Chicago Oct 5th 9th 1998 p 1638 Jacobsen N E H and Jørgensen A H Evaluating Usability Evaluation Methods CHI 98 Basic Research Symposium Los Angeles April 1998 15 To the top User Interface Design in General Jørgensen A H Brugervenlige edb systemer en introduktion Psyke og Logos 1984 pp 302 327 In Danish Usable computer systems an introduction Beyer P Carstensen P Jørgensen A H Molich R and Pedersen F H 1986 Brugervenlige edb systemer København Teknisk Forlag In Danish Usable Computer Systems 16 To the top Iterative Systems Development and Prototyping Hjæresen P Hedegaard O Jørgensen A H Quick Development of High Quality Applications in a Standardized Graphical Environment Proc COPE IT 93 June 14 16 Copenhagen pp 323 330 Jørgensen A H The psychology of prototyping In R Budde K Kuhlenkamp L Mathiassen and H Zullighoven eds Approaches to prototyping Berlin Springer Verlag 278 289 1984 17 To the top Empirical Studies of User Interface Design Practice Due B Jørgensen A H Nielsen J An Observational Study of User Interface Design Proceedings of Human Factors Society 35th Annual Conference San Francisco USA Sep 2 6th 1991 pp 1219 1222 Due B and Jørgensen A H User interface designers in action Preceedings of the conference Human Jobs and Computer Interfaces Tampere Finland 26 28th June 1991 pp 274 282 Olsen K B and Jørgensen A H En undersøgelse af skærmbaseret vejledning NORDDATA 1989 s 730 34 København 1989 Milsted U Varnild A Jørgensen A H Hvordan sikres kvaliteten af brugergrænsefladen i systemudviklingen NORDDATA 1989 s 479 84 København 1989 Jørgensen A H Barnard P Hammond N Clark I Naming commands An analysis of designers naming behaviour In Green Payne and Veer eds The psychology of computer use London Academic Press 69 88 1983 Hammond N Jørgensen A H MacLean A Barnard P Long J Design practice and interface usability evidence from interviews with designers Proc CHI 83 Human Factors in Computing Systems Boston Dec 1983 ACM New York 40 44 18 To the top Thinking aloud in User Interface Design Jørgensen A H Thinking Aloud in User Interface Design A Method promoting Cognitive Ergonomics Ergonomics vol 33 no 4 501 507 1990 Jørgensen A H Using the thinking aloud method in system development I G Salvendy M J Smith eds Designing and using Human Computer Interfaces and Knowledge based Systems Elsevier 1989 pp 743 750 19 To the top Evaluation of the Usability of Particular Computer Systems Jørgensen A H An assessment of the learnability of UNIX Mail In R Speth ed Research into Networks and Distributed Applications Amsterdam Elsevier 1988 375 385 Jørgensen A H The trouble with UNIX Mail Initial learning and experts strategies In H J Bullinger and B Shackel eds Human Computer Interaction INTERACT 87 Amsterdam Elsevier 1987 847 854 20 To the top Evaluations of Particular Design Appoaches or Methods Jørgensen A H and May J Evaluation of a Theory Based Display Guide Proc HCI 97 San Francisco Aug 24 29 1997 Smith M J Salvendy G and Koubek R J eds Advances in Human Factors Ergonomics vol 21B Design of Computing Systems Social and Ergonomic Considerations Amsterdam Elsevier 1997 403 406 Jørgensen A H and Aboulafia A Perceptions of Design Rationale In Nordby K Helmersen P H Gilmore D J and Arnesen S A eds Human Computer Interaction Interact 95 Chapman and Hall London pp 61 66 1995 Jørgensen A H Nielsen L C and Carstensen P H Formal specification of user interfaces two application studies In B Knave and P G Wideb ck Work With Display Units 86 Amsterdam Elsevier 851 859 21 To the top The relation between theory and practice in usability Jørgensen A H Making Psychology Serve Design of Information Technology The Case of AMODEUS In preparation Buckingham Shum S Jørgensen A H Aboulafia A Hammond N Communicating HCI Modelling to Designers CHI 94 Adjunct Proc pp 271 272 1994 Terrins Rudge D and Jørgensen A H Supporting the Designers Reaching the Users In P Byerley P Barnard and J May eds Computers Communication and Usability Design Issues Research Methods for Integrated Services Elsevier North Holland Amsterdam 1993 pp 71 98 Aboulafia A Jørgensen A H Nielsen J Modelling in User Interface Design Designers Views of Application and Requirements Proceedings of the 16th IRIS Information Systems Research Seminar in Scandinavia pp 298 307 1993 Aboulafia A Nielsen J Jørgensen A H The Ambiguous Reality and Formal Methods in User Interface Design Proc INTERCHI 93 Research Symposium Amsterdam April 23 24 1993 pp 1 2 Nielsen J and Jørgensen A H Design of User Interfaces Intuitive Solutions and Imagination CHI 92 Research Symposium Monterey CA May 3 7 1992 Jørgensen A H Two approaches to usability the objective and the subjective In Proc Work with Display Units Stockholm May 1986 940 943 22 To the top Miscellaneous Buch T Ødum J Jørgensen A H Exploring the Use of Ideal Speech Recognition Presented at the Electronic Conference CybERG September 1996 www curtin edu au conference cyberg Aboulafia A Klausen T Jørgensen A H Towards a Theoretical Underpinning of Scenarios In Proceedings of the 17th Information Systems Research Seminar IRIS in Scandinavia Part II pp 561 571 University of Oulu Finland August 1994 Jørgensen A H and Sauer A The Personal Touch A Study of Users Customization Practice Proc Interact 90 Cambridge Sep 1990 pp 561 565 Jørgensen A H An experiment on the effect of task structure in interactive computer systems In Proc Work with Display Units Stockholm May 1986 777 780 Jørgensen A H A methodology for measuring the readability and modifiability of computer programs BIT vol 20 394 405 1980 23 USEMAP inter icon2top gif opdateret 03 05 2001 24 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Staff and research 5 6 Publications Anker home 7 Vacancies 8 Home 9 Find Persons 10 SiteMap 11 Intranet 12 Danish inter menu bund gif 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department home inter menu bund gif Hiring now The IT University of Copenhagen is currently inviting applications for 13 positions as Associate or Assistant Professor The application deadline is 1 May 2001 12 00 noon See the 11 full announcement Faculty is wanted primarily within the following five general research areas Mobility Media and Communication Software technology Software applications Theoretical computer science The fields of particular interest to the Department of Digital Aesthetics and Communication are Digital aesthetics digital discourse and digital media Human computer interaction and usability in particular mobile usability Cultural and social impact of mobility Design of interactive systems and interaction technologies Convergence of technologies Please check the 12 full announcement re research areas in question requirements for the positions application procedure etc 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Department home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Computer Games Digital Textualities 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department home inter menu bund gif The conference Computer Games Digital Textualities On March 1st and 2nd the Department of Digital Aesthetics Communication hosted the conference Computer Games and Digital Textuality CGDT The aim of the conference was to stimulate interest in this relatively new academic field among academics and developers alike and to promote the department The event attracted 160 participants from Denmark the Nordic Countries Germany Spain the Netherlands England and USA The participants represented both academia and industry and the conference attracted considerable interest from the press CGDT was featured twice by the Danish Broadcasting Corporation and twice by leading Danish newspapers Espen Aarseth keynote speaker and a leading figure into research in digital textuality and computer games stated This conference is probably the first international academic conference on computer games The keynote speakers were Espen Aarseth University of Bergen Norway Understanding Computer Games Selmer Bringsjord Rensselaer Polytechnic Institute USA Is It Possible to Build Dramatically Compelling Interactive Digital Entertainment Marie Laure Ryan Independent Scholar Colorado USA Beyond Myth and Metaphor The Case of Narrative in Digital Media Thomas Jakobsen IO Interactive Denmark Hitman a new computer game from IO Interactive Visit the 11 conference website containing the full programme photos from the conference links to articles and interviews in Danish etc 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Computer Games Digital Textualities Department home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 The IT University at a glance 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department home inter menu bund gif The IT University of Copenhagen at a glance The IT University of Copenhagen was established in 1999 to boost research and higher education in Information Technology in the Greater Copenhagen Region The IT University addresses IT broadly including perspectives of natural sciences humanities and business impact The University is featured by cross disciplinarity a vivid pioneering spirit and a strong commitment to quality In 2003 the university will be moving to new premises in Greater Copenhagen The closest neighbours will be the Faculty of Humanities University of Copenhagen and the Danish Broadcasting Corporation Collaboration is already taking place and further measures are being taken in order to support synergy Research is organised in four departments Dept of Digital Aesthetics and Communication 11 Dept of Design and Use of IT 12 Dept of Innovation 13 Dept of Theory The university offers educations at the PhD level Master and Diploma in the following areas Design Communication Media Internet technology E business Multimedia technology Software development Cross disciplinary IT All the students admitted have a Bachelor s degree The students are extremely motivated creative constructive and critical Visit the full 14 website of the IT University of Copenhagen 15 USEMAP inter icon2top gif opdateret 03 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Research 3 4 The IT University at a glance Department home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif Visions and goals for the Department of Design and Use of Information Technology 10 USEMAP inter icon2top gif opdateret 03 05 2001 11 wwwadm it c dk 1 IT højskolen 2 Research 3 People 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department Home inter menu bund gif Members of the Department of Design and Use of Information Technology Faculty 11 Peter Carstensen Associate Professor Head of Department Research interests Computer Supported Cooperative Work CSCW Work Analysis and Field Studies Methodologies for Systems Development Human Computer Interaction 12 Finn Kensing Reader Research interests Participatory Design Computer Supported Cooperative Work CSCW Human Computer Interaction Information Systems 13 Søren Lauesen Professor Research interests Human Computer Interaction Requirements Specification Object Oriented Design Quality Assurance Systems Development Marketing and Product Development Cooperation between Research and Industry 14 Kasper Østerbye Associate Professor Research interests Programming Language Design Object Oriented Design and Programming Program Understanding Framework Documentation Software Development Tools Software Architecture PhD students 15 Klaus Jul Jeppesen Research interests User Support Function Point Counting Life Cycle Management and Economics Software Tailoring Software Quality 16 Lasse Vogelsang Research interests Systems Development Information Systems Computer Supported Cooporative Work CSCW Human Computer Interaction Administration Hanne Sørensen Administrative Officer 17 USEMAP inter icon2top gif opdateret 03 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Research 3 4 People Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Research projects 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department Home inter menu bund gif Research Projects DUIT is involved in the research projects 11 DIWA and 12 IDAK which are funded by the 13 Danish Research Council and the 14 Danish Industry s Education Foundation Industriens Uddannelsesfond respectively The participants in the projects come from Danish research institutes as well as from the industry Current projects 15 DIWA Design of Interactive Web Applications DIWA is funded by the 16 Danish Research Council s Program on Cross Disciplinary Information Technology and runs from 1999 2003 The project addresses different aspects of Web technology as an IT platform for collaborative distributed work inside organizations e g Intranets or between organizations extranets Among the participants in DIWA are the 17 IT University of Copenhagen the 18 Danish Technical University 19 University of Copenhagen 20 Roskilde University 21 Novo Nordisk 22 Unibank 23 Statens Information 24 Net Medier and 25 Net Bureauet Araneum 26 Peter Carstensen 27 Finn Kensing 28 Lasse Vogelsang 29 IDAK IT støtte til Decentralisering af Ansvar og Kompetence The project was started in 1999 as a continuation of the 30 FASIT project It addresses planning and collaboration support for autonomous groups of shop floor workers The participants in IDAK include 31 CO Industri 32 Dansk Industri 33 Odense Steel Shipyard Ltd 34 OPI 35 Kubix the 36 Danish Technical University and 37 Aalborg University Esbjerg The IDAK project runs till the end of 2001 38 Peter Carstensen 39 USEMAP inter icon2top gif opdateret 03 05 2001 40 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Research projects Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Past visitors 11 Department Home inter menu bund gif Visitors to the Department of Design and Use of Information Technology Visitors spring 2001 The following researchers are visiting DUIT at IT C in the spring term 2001 During their stay they will participate in the activities of the research department give seminars and supervise student s projects 12 15 February 12 Volker Wulf 13 Institut f r Informatik III 14 Universit t Bonn Research interests Computer Supported Cooperative Work Human Computer Interaction Computer Supported Cooperative Learning Participatory Software Engineering Integrated Organization and Technology Development Privacy Computers and Society April June Toni Robertson 15 Department of Computing and Information Sciences Kansas State University 16 November 16 Bjarne Stroustrup 17 Large Scale Programming Research Department 18 AT T Labs Research 7 December Lars Bak Sun Microsystems 19 USEMAP inter icon2top gif opdateret 03 05 2001 20 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Past visitors 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Visitors 12 Department Home inter menu bund gif Past visitors to the department of DUIT 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 5 Past visitors Visitors 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 5 Past visitors Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Publications 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department Home inter menu bund gif Publications by the members of DUIT Below you will find a short list of recent publications for each member of DUIT More complete publication lists can be found on each members personal homepage 11 Peter Carstensen P H Carstensen and M Nielsen Guiding the Thrust Analytical Concepts in the Service of Coordination Support Systems 2000 P H Carstensen and U Snis On Knowledge Management A Field Study 2000 P H Carstensen K Schmidt and U K Wiil Supporting shop floor intelligence A CSCW approach to production planning and control in flexible manufacturing 1999 12 Klaus Jul Jeppesen 13 Finn Kensing 14 Søren Lauesen Søren Lauesen Real life object oriented systems 1998 Søren Lauesen Usability requirements in a tender process 1998 Søren Lauesen Marianne Mathiassen Use cases in a COTS tender 1999 Søren Lauesen Software Requirements Styles and Techniques 1999 15 Lasse Vogelsang 16 Kasper Østerbye Kasper Østerbye Associations as a Language Construct 1999 Kasper Østerbye and Wolfgang Kreutzer Synchronization abstraction in the BETA programming language 1999 Bent Bruun Kristensen and Kasper Østerbye Roles Conceptual Foundation and Practical Usage in Analysis Design and Programming 1996 17 USEMAP inter icon2top gif opdateret 03 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Publications Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Teaching 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department Home inter menu bund gif Teaching by the members of DUIT Below you will find a list of courses and M Sc theses given and supervised by members of DUIT The members of DUIT are teaching in the study line 11 Software Development SWU in topics covering Computer Supported Cooperative Work CSCW Human Computer Interaction Design of User Interfaces and Data etc 12 Courses in spring 2001 13 Previous courses by the members of DUIT 14 Master of Science theses supervised by the members of DUIT 15 USEMAP inter icon2top gif opdateret 03 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Teaching 12 Department Home inter menu bund gif Courses in spring 2001 13 Design af brugergrænseflader og data Design of User Interfaces and Data given by 14 Søren Lauesen 15 IT støttet samarbejde Computer Supported Cooperative Work given by 16 Peter Carstensen 17 Systemudvikling System Engineering given by 18 Lasse Vogelsang 19 Grundlæggende programmering fleksibel uddannelse Introductory Programming Flexible Education given by 20 Kasper Østerbye 21 USEMAP inter icon2top gif opdateret 03 05 2001 22 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Teaching 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Teaching 12 Department Home inter menu bund gif Previous courses taught by the members of DUIT 13 Courses in fall 2000 14 USEMAP inter icon2top gif opdateret 03 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish 12 Teaching 13 Department Home inter menu bund gif Courses in fall 2000 14 Design af brugergrænseflader og data Design of User Interfaces and Data given by 15 Søren Lauesen 16 Design og designere Design and Designers given by 17 Finn Kensing 18 IT støttet samarbejde Computer Supported Cooperative Work given by 19 Peter Carstensen 20 Systemudvikling System Engineering given by 21 Klaus Jul Jeppesen 22 Lasse Vogelsang 23 Videregående programmering for praktikere Advanced programming for practicians given by 24 Kasper Østerbye 25 USEMAP inter icon2top gif opdateret 03 05 2001 26 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 6 Teaching 7 Vacancies 8 Home 9 Find Persons 10 SiteMap 11 Intranet 12 Danish inter menu bund gif 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 6 Department Home 7 Vacancies 8 Home 9 Find Persons 10 SiteMap 11 Intranet 12 Danish inter menu bund gif 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif Courses in spring 2000 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Teaching 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Teaching 12 Department Home inter menu bund gif Master of Science theses supervised by the members of DUIT The members of DUIT are currently supervising a number of master s theses that will be forthcoming during spring and summer 2001 Date Title Author Supervisor 04 05 99 Anvendelse af intranet til intellektuelt arbejde Adam Arndt Peter H Carstensen 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Teaching 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Teaching 12 Department Home inter menu bund gif Student s projects at IT C This page is meant to hold presentations of student s projects at IT C which are related to the research interests of DUIT Please forward information on your project to 13 Hanne Sørensen 14 USEMAP inter icon2top gif opdateret 03 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Teaching 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish 9 People 10 Visitors 11 Seminars 12 Projects 13 Publications 14 Teaching inter menu bund gif Department of Innovation The Department of Innovation aims at developing new technologies achieved through research and its innovative applications Currently focus is on the areas of data security and compression computer vision and graphics interaction technology and software technology For a description of our visions and goals please click either 15 pdf version or 16 ps version 17 USEMAP inter icon2top gif opdateret 03 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Research 3 People 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Home inter menu bund gif People 11 Henrik Reif Andersen 12 Erik Bjørnager Dam 13 Martin Elsman 14 Theo Engell Nielsen 15 Nanna Glerup 16 John Paulin Hansen 17 Dan Witzner Hansen 18 Fritz Henglein 19 Henrik Hulgaard 20 Camilla Jørgensen 21 Alexandre Krivoulets 22 Ken Friis Larsen 23 Jakob Lichtenberg 24 Martin Lillholm 25 Erik van der Meer 26 Jesper Møller 27 Lotte Espenhain Møller 28 Mads Nielsen 29 Michael Florentin Nielsen 30 Niels Martin Holm Olsen 31 Ole Fogh Olsen 32 Peter Sestoft 33 John Aasted Sørensen Andersen Henrik Reif jpg jpg 34 Henrik Reif Andersen Associate Professor Research Interests Verification model checking embedded software and concurrency Dam Erik Bjoernager jpg jpg 35 Erik Bjørnager Dam PhD Student Research Interests Image analysis inspired by scale space theory and medical image analysis applications Elsman Martin jpg jpg Martin Elsman Assistant Professor Research Interests Programming language semantics compiler construction type based optimization and module languages Engell Nielsen Theo jpg jpg 36 Theo Engell Nielsen PhD Student Research Interests Computer graphics Glerup Nanna jpg jpg Nanna Glerup PhD Student Hansen John Paulin jpg jpg John Paulin Hansen Associate Professor Research Interests Eye gaze interaction usability testing methods perception and cognition Witzner Dan Hansen jpg 37 Dan Witzner Hansen PhD Student Research Interests Image processing tracking geometric algebra and gaze estimation Henglein Fritz jpg jpg Fritz Henglein Associate Professor Research Interests Theory of programming languages design implementation of programming languages program analysis incl security type systems type inference dynamic memory management staged computation incl partial evaluation and run time code generation functional software technology and software architectures platforms for mobile distributed computing Hulgaard Henrik jpg jpg 38 Henrik Hulgaard Associate Professor Research Interests Timing analysis asynchronous circuits VLSI CAD tools formal verification programming techniques computer security and database backed web publishing Joergensen Camilla jpg jpg Camilla Jørgensen Academic Research Officer Krivoulets Alexandre jpg jpg Alexandre Krivoulets PhD Student Research Interests Source coding theory information theory and data compression Larsen Ken Friis jpg jpg 39 Ken Friis Larsen PhD Student Research Interests Language design and formal methods Larsen Peter Berg jpg jpg Peter Berg Larsen PhD Student Lichtenberg Jakob jpg jpg 40 Jakob Lichtenberg PhD Student Research Interests Software testing program analysis verification model checking embedded real time systems and functional programming Lilholm Martin jpg jpg Martin Lillholm PhD Student Van Der Meer Erik jpg jpg Erik van der Meer PhD Student Research Interests Functional programming program analysis transformation multimedia network applications and reliability of software Moeller Jesper jpg jpg 41 Jesper Møller PhD Student Research Interests Verification real time systems model checking timed automata binary decision diagrams difference decision diagrams decision procedures quantifier elimination algorithms and data structures Moeller Lotte Esperhain jpg jpg Lotte Espenhain Møller Academic Research Officer Nielsen Mads jpg jpg 42 Mads Nielsen Associate Professor Research Interests Computer vision image analysis and especially medical image analysis Nielsen Michael Florentin jpg jpg Michael Florentin Nielsen PhD Student Research Interests Semantics functional programming type theory staged computation and run time code generation Olsen Niels Martin Holm jpg jpg 43 Niels Martin Holm Olsen PhD Student Research Interests Statistical pattern recognition image and shape manifolds models of light propagation through phase objects and reconstructions of phase objects from light microscopy Olsen Ole Fogh jpg jpg 44 Ole Fogh Olsen Assistant Research Professor Research Interests Image analysis especially diffusion differential geometry and singularity theory Sestoft Peter jpg jpg 45 Peter Sestoft Associate Professor Research Interests Functional programming languages their implementation program analysis transformation and partial evaluation Soerensen John Aasted jpg jpg John Aasted Sørensen Associate Professor Research Interests Signal processing in multimedia systems speech analysis coding recognition animation noise reduction of speech signals architectures for signal processing systems general methods for signal analysis filtering detection and classification 46 USEMAP inter icon2top gif opdateret 03 05 2001 47 wwwadm it c dk 1 IT højskolen 2 Research 3 4 People Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Visitors 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Autumn 2000 11 Spring 2001 12 Home inter menu bund gif Visitors Please follow the links to your left to get a list of the researchers who visits have visited the Department of Innovation 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Visitors Autumn 2000 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Visitors inter menu bund gif Visitors autumn 2000 21 25 August Antoine Rauzy 12 LaBRI Laboratory for Research in Computer Science Universit de Bordeaux 2 6 October Martin Frenzle Universit t Oldenburg 5 6 October 13 John Hatcliff 14 Department of Computing and Information Sciences Kansas State University 16 November 15 Bjarne Stroustrup 16 Large Scale Programming Research Department 17 AT T Labs Research 17 November Thomas Jensen IRISA 23 24 November 18 John Hughes 19 Computing Science Department Chalmers University of Technology 7 December Lars Bak Sun Microsystems 20 USEMAP inter icon2top gif opdateret 03 05 2001 21 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Visitors 5 Autumn 2000 Visitors 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Visitors Spring 2001 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Visitors inter menu bund gif Visitors spring 2001 4 7 January 12 Gabor Szekely 13 Computer Vision Group 14 Swiss Federal Institute of Technology Zurich 11 January 15 Anindya Banerjee 16 Department of Computer Science 17 Stevens Institute of Technology 25 26 January 18 Jakob Rehof 19 Software Productivity Tools Group 20 Microsoft Research Redmond 8 February Michael Tyrsted 21 Ideogramic ApS Aarhus 22 23 February 22 Erik Ernst 23 Department of Computer Science Aalborg University 23 February Anders Sandholm Synergis GmbH 28 February 2 March 24 Peter O Hearn 25 Department of Computer Science Queen Mary and Westfield College London 8 March 26 Lars Bendix 27 Department of Computer Science Aalborg University 29 30 March 28 Anders Møller 29 Basic Research in Computer Science BRICS Aarhus 30 March 30 Michael Schwartzbach 31 Basic Research in Computer Science BRICS 32 Department of Computer Science University of Aarhus 20 April Erik Meijer Microsoft Redmond 3 May Karsten Schulz Terp Nielsen Oracle Ballerup Denmark 10 May 33 Aino Cornils 34 Department of Computer Science University of Aarhus 25 May 35 John Hannan 36 Department of Computer Science Engineering Pennsylvania State University 37 USEMAP inter icon2top gif opdateret 03 05 2001 38 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Visitors 5 Spring 2001 Visitors 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Visitors Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Seminars 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 SPACE 2001 11 Home inter menu bund gif Seminars The Department of Innovation is hosting the 12 FunTech and FooTech seminars The 13 weekly talks cover both functional and object oriented topics They normally take place on Thursdays starting at 3 15 pm at the IT University of Copenhagen The invited speakers are from both regional and international universities and businesses 14 USEMAP inter icon2top gif opdateret 03 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Seminars SPACE 2001 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Seminars inter menu bund gif SPACE 2001 First workshop on SEMANTICS PROGRAM ANALYSIS AND COMPUTING ENVIRONMENTS FOR MEMORY MANAGEMENT SPACE 2001 held in London UK January 15 16 2001 This workshop is sponsored by The Danish Natural Science Research Council and The IT University of Copenhagen In cooperation with ACM SIGPLAN and EAPLS subject to final approval 12 Fritz Henglein IT University of Copenhagen is the workshop chair About SPACE 2001 Since the inception of programming languages increasingly powerful run time support has been devised for memory management starting with static memory management via run time stacks with explicitly managed heaps and more recently garbage collection Correspondingly static reasoning about and harnessing dynamic memory management for predictability performance real time applications security mobility and distribution has become increasingly more challenging Highlighted by the advent of region inference in the early 90s compile time techniques have been proposed for reasoning about and improving dynamic memory management Such techniques bear the promise of reducing memory footprints guaranteeing real time constraints meeting resource constraints for embedded devices etc and may in the end provide a foundation for the next generation of memory management Click here for more information on the 13 SPACE 2001 workshop 14 USEMAP inter icon2top gif opdateret 03 05 2001 15 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Seminars 5 SPACE 2001 Seminars 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Seminars Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Projects 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Home inter menu bund gif Projects Functional Software Technologies 11 Funtechs Fritz Henglein Standard ML 12 Moscow ML 13 The ML Kit 14 Peter Sestoft Martin Elsman Embedded Software 15 RCES 16 Peter Sestoft 17 Henrik Reif Andersen 18 Henrik Hulgaard 19 Ken Friis Larsen 20 Jakob Lichtenberg Verification of embedded systems 21 VERIS 22 Henrik Reif Andersen 23 Henrik Hulgaard 24 Jesper Møller 25 Jakob Lichtenberg 26 Computation of Natural Shapes Martin Lilholm 27 Mads Nielsen 28 Ole Fogh Olsen 29 Erik Dam 30 Eye Based IT 31 Mads Nielsen John Paulin Hansen 32 Boolean Expression Diagrams 33 Henrik Reif Andersen 34 Henrik Hulgaard 35 BuDDy 36 Henrik Reif Andersen 37 MuDDy 38 Ken Friis Larsen 39 Jakob Lichtenberg 40 Difference Decision Diagrams 41 Henrik Reif Andersen 42 Henrik Hulgaard 43 Jesper Møller 44 Jakob Lichtenberg 3D image Analysis 45 3D lab 46 Niels Martin Holm Olsen 47 USEMAP inter icon2top gif opdateret 03 05 2001 48 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Projects Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Publications 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Home inter menu bund gif Publications 11 A fast method for transforming continued fractions into ordinary fractions journal paper by E Matchikina 12 B Ryabko 1999 13 A simply realizable ideal cryptographic system journal paper by 14 B Ryabko 2000 15 An efficient method for adaptive arithmetic coding of sources with large alphabets journal paper by 16 B Ryabko A Fionov 1999 17 Binocular stereo from grey scale images journal paper by 18 M Nielsen R Maas W Niessen L Florack B t H Romeny 1999 19 Boolean Expression Diagrams journal paper accepted by 20 H R Andersen 21 H Hulgaard 1999 22 Branch points in one dimensional scale space journal paper by P Johansen 23 M Nielsen 24 O F Olsen 2000 25 Computing optic flow by scale space integration of normal flow conference paper submitted by K S Pedersen 26 M Nielsen 2001 27 Deep Structure book draft by 28 E Dam 2000 29 Difference Decision Diagrams conference paper by 30 J Møller 31 J Lichtenberg 32 H R Andersen 33 H Hulgaard 1999 34 Difference Decision Diagrams technical report by 35 J Møller 36 J Lichtenberg 37 H R Andersen 38 H Hulgaard 1999 39 Efficient Homophonic Coding journal paper by 40 B Ryabko A Fionov 1999 41 Efficient transformation of random sequences into equiprobable and independent sequences journal paper by 42 B Ryabko E Matchikina 1999 43 Equivalence Checking of Combinational Circuits using Boolean Expression Diagrams journal paper by 44 H Hulgaard 45 P F Williams 46 H R Andersen 1999 47 Equivalence Checking of Hierarchical Combinational Circuits conference paper by 48 P F Williams 49 H Hulgaard 50 H R Andersen 1999 51 Evaluation of Diffusion Schemes for Watershed Segmentation thesis by 52 E Dam 2000 53 Exploring Non Linear Diffusion The Diffusion Trace conference paper submitted by 54 E Dam 55 M Nielsen 2001 56 Fast and Efficient Construction of an Unbiased Random Sequence journal paper by 57 B Ryabko E Matchikina 2000 58 Fast and Space Efficient Adaptive Arithmetic Coding conference paper by 59 B Ryabko A Fionov 1999 60 Fast Coding of Low Entropy Sources journal paper by 61 B Ryabko M P Sharova 1999 62 Fast encoding of low entropy sources journal paper by 63 B Ryabko M P Sharova 1999 64 Fully Symbolic Model Checking of Timed Systems using Difference Decision Diagrams workshop paper by 65 J Møller 66 J Lichtenberg 67 H R Andersen 68 H Hulgaard 1999 69 Generic Image Structure thesis by 70 O F Olsen 2000 71 Greedy Model Checking technical report by 72 P F Williams A Rauzy 2000 73 Hausdorff Dimension as a New Dimension in Source Coding and Prediction workshop paper by 74 B Ryabko J Suzuki F Topsøe 1999 75 Koenderink Corner Points conference paper accepted by 76 M Nielsen 77 O F Olsen M Sig M Sigurd 2001 78 Lie Group Modelling of Nonlinear Point Set Variability conference paper by N H Olsen 79 M Nielsen 2000 80 Non Linear Diffusion for Interactive Multi scale Watershed Segmentation conference paper by 81 E Dam 82 M Nielsen 2000 83 Non rigid registration by geometry constrained diffusion journal paper accepted by P R Andresen 84 M Nielsen 2000 85 Non rigid registration by geometry constrained diffusion conference paper by P R Andresen 86 M Nielsen 1999 87 On Asymptotically Optimal Methods of Prediction and Adaptive Coding for Markov Sources with Unknown Memory conference paper by 88 B Ryabko F Topsøe 2000 89 On the Symbolic Verification of Timed Systems technical report by 90 J Møller 91 J Lichtenberg 92 H R Andersen 93 H Hulgaard 1999 94 Partial Model Checking of Modal Equations A Survey journal paper by 95 H R Andersen 96 J Lind Nielsen 1999 97 Practical Verification of Embedded Software journal paper by 98 J Staunstrup 99 H R Andersen 100 H Hulgaard 101 J Lind Nielsen K G Larsen G Behrmann K Kristoffersen A Skou H Leerberg N B Theilgaard 1999 102 Proceedings of second international conference on scale space theories in computer vision book by 103 M Nielsen P Johansen 104 O F Olsen J Weickert 1999 105 Satisfiability Checking Using Boolean Expression Diagrams conference paper accepted by 106 P F Williams 107 H R Andersen 108 H Hulgaard 2000 109 Scale time kernels and models conference paper submitted by B t H Romeny L Florack 110 M Nielsen 2001 111 Segmentation by compression using Linear scale space and watersheds conference paper by J Sporring 112 O F Olsen 1999 113 Smoothing Images Creates Corners journal paper by J Sporring 114 O F Olsen 115 M Nielsen J Weickert 2000 116 Stepwise CTL Model Checking of State Event Systems conference paper by 117 J Lind Nielsen 118 H R Andersen 1999 119 Symbolic Time Separation of Events conference paper by 120 T Amon 121 H Hulgaard 1999 122 Symbolic Timing Analysis of Asynchronous Systems journal paper by 123 H Hulgaard 124 T Amon 2000 125 The Estimate for the Cost of a Search Tree Constructed on an Arbitrary Set of Binary Words conference paper by A Fedotov 126 B Ryabko 2000 127 The Hausdorf dimension and scale space normalisation conference paper by K S Pedersen 128 M Nielsen 1999 129 The Haussdorf dimension and scale space normalisation journal paper by K S Pedersen 130 M Nielsen 2000 131 The Simple Ideal Cipher System conference paper by 132 B Ryabko 2000 133 Tube snake models for reconstruction of elongated structures from their contour projections conference paper by I Mogensen 134 M Nielsen 1999 135 Using Information Theory Approach to study the Communication System and Numerical Competence in Ants conference paper by 136 B Ryabko 2000 137 Verification of Hierarchical State Event Systems using Reusability and Compositionality journal paper accepted by G Behrmann K G Larsen 138 H R Andersen 139 H Hulgaard 140 J Lind Nielsen 2000 141 Verification of Hierarchical State Event Systems using Reusability and Compositionality conference paper by G Behrmann K G Larsen 142 H R Andersen 143 H Hulgaard 144 J Lind Nielsen 1999 145 Verification of Large State Event Systems using Compositionality and Dependency Analysis journal paper by 146 J Lind Nielsen 147 H R Andersen 148 H Hulgaard G Behrmann K Kristoffersen K G Larsen 1999 149 What do Features Tell about Images conference paper submitted by 150 M Nielsen M Lillholm 2001 151 USEMAP inter icon2top gif opdateret 03 05 2001 152 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Publications Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Teaching 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Autumn 2000 11 Spring 2001 12 Home inter menu bund gif Teaching Please follow the links to your left to get a list of the courses given by the people at the Department of Innovation 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching Autumn 2000 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Teaching inter menu bund gif Courses autumn 2000 12 Efficient Algorithms and Programs given by 13 Henrik Reif Andersen and 14 Henrik Hulgaard 15 Image Analysis given by 16 Ole Fogh Olsen and 17 Erik Dam 18 Database based Web publishing given by Martin Elsman 19 Universal Access to Information Technology given by John Paulin Hansen 20 Computer Security given by 21 Henrik Hulgaard 22 Computer Graphics given by 23 Theo Engell Nielsen 24 Introduction to Multimedia Systems given by 25 Mads Nielsen and 26 Dan Witzner Hansen 27 Signal Processing given by John Aasted Sørensen 28 Speech and IT Systems given by John Aasted Sørensen 29 Functional Design and Programming given by 30 Peter Sestoft 31 USEMAP inter icon2top gif opdateret 03 05 2001 32 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Autumn 2000 Teaching 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching Spring 2001 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Teaching inter menu bund gif Courses spring 2001 12 Computer Security given by 13 Henrik Hulgaard 14 Operating Systems and Machine level Programming given by 15 Henrik Hulgaard 16 Introduction to Multimedia Systems given by 17 Mads Nielsen and 18 Dan Witzner Hansen 19 Signal Processing given by John Aasted Sørensen 20 Introductory Programming given by 21 Peter Sestoft 22 USEMAP inter icon2top gif opdateret 03 05 2001 23 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Spring 2001 Teaching 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish 9 Visions and Goals 10 Members 11 Visitors 12 Research Projects 13 Selected Publications 14 Seminars 15 Activities 16 Teaching inter menu bund gif Theory Department Gruppe2 jpg The Theory Department focuses on the following research topics algorithms and complexity theory semantics of logics and programming languages categorical logic and type theory models of concurrency verification automatic test generation mobile computation For a description of our visions and goals please click either 17 pdf version or 18 postscript version Contact Head of Department 19 Lars Birkedal 20 birkedal it c dk Administrative Officer 21 Annette Hjort Christensen 22 ahc it c dk Theory Department IT University of Copenhagen Glentevej 67 DK 2400 Copenhagen Denmark Phone 45 3816 8840 Fax 45 3816 8899 URL www it c dk 23 USEMAP inter icon2top gif opdateret 03 05 2001 24 wwwadm it c dk 1 IT højskolen 2 Research 3 Visions and Goals 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department Home inter menu bund gif Visions and Goals The visions and goals of the Theory Department are described in a document available in 11 pdf and in 12 postscript 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Visions and Goals Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Members 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department Home inter menu bund gif Members of the Theory Department Faculty 11 Stephen Alstrup 12 Lars Birkedal 13 Jens Chr Godskesen 14 Thomas Hildebrandt 15 Theis Rauhe 16 Inge Li Gørtz 17 Annette Hjort Christensen Alstrup Stephen jpg jpg 18 Stephen Alstrup Research Assistant Professor Research interests Algorithms data structures lower bounds computational complexity theory Birkedal Lars jpg jpg 19 Lars Birkedal Research Assistant Professor Head of Department Research interests Semantics of logics and programming languages categorical logic and type theory realizability toposes domain theory design and implementation of advanced programming languages Godskesen Jens Christian jpg jpg 20 Jens Chr Godskesen Associate Professor Research interests Automatic test generation fault models embedded systems caculi for mobility and concurrency verification and model checking Hildebrandt Thomas jpg jpg 21 Thomas Hildebrandt Research Assistant Professor Research interests Semantics and programming languages category theory and logic in computer science concurrency theory verification and model checking mobility resource constrained embedded systems Rauhe Theis jpg jpg 22 Theis Rauhe Research Assistant Professor Research interests Algorithms data structures lower bounds computational complexity theory PhD students Inge jpg 23 Inge Li Gørtz Research interests Algorithms data structures lower bounds computational compexity theory Administration Annette2 jpg 24 Annette Hjort Christensen Administrative Officer 25 USEMAP inter icon2top gif opdateret 03 05 2001 26 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Members Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Visitors 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department Home 11 Past Visitors inter menu bund gif Visitors at the Theory Department Current and future visitors 12 Christian Nørgaard Storm Pedersen Research Assistant Professor at 13 BRICS Center for Basic Research in Computer Science located at the 14 Department of Computer Science 15 University of Aarhus Århus Denmark Visiting on April 17th and April 24th 2001 16 USEMAP inter icon2top gif opdateret 03 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Visitors Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Visitors Past Visitors 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Department Home inter menu bund gif Past Visitors at the Theory Department Past visitors 12 Andrej Bauer Ph D working at the 13 Mittag Leffler Institut Sweden Visiting from March 21st 2001 until March 23rd 2001 Seminar 14 Realizability Who Needs It 15 Gerth Stølting Brodal PhD student of computer science at the 16 BRICS PhD school at 17 the Department of Computer Science 18 Aarhus University Visiting on March 20th March 27th and April 3rd 2001 19 Phil Janson Ph D VP IBM Academy of Technology Program Manager 20 University Relations Visiting on March 16th 2001 Buzztalk 21 IBM Research Global Technology Outlook 22 Rasmus Pagh PhD student of computer science at the 23 BRICS PhD school at 24 the Department of Computer Science 25 Aarhus University Visiting on March 12th and 13th 2001 Christian N S Pedersen BRICS Århus Visiting on February 23rd 2001 26 Vladimiro Sassone associate professor at Universita de Catania Italy Visiting from November 1st 2000 until January 31st 2001 Research interests Calculi and models for concurrent and mobile processes and objects including their typing coordination safety and security web and global computing functional and object oriented programming and software technologies Seminar 27 High Level nets as type theories in the join calculus 28 Christian S Jensen Nykredit professor at the 29 Department of Computer Science at Ålborg University Visiting on January 31st 2001 30 Dana S Scott professor at Carnegie Mellon University Pittsburgh USA Visiting from January 14th 2001 until January 16th 2001 31 Hanne Gottliebsen School of Computer Science University of St Andrews Scotland Visiting on December 18th 2000 Seminar 32 Transcendental Functions and Continuity Checking in PVS 33 Jan Arne Telle associate professor at 34 University of Bergen Visiting on December 8th 2000 35 Madhavan Mukund associate professor at the 36 Chennai Mathematical Institute Chennai Madras India Visiting on December 7th 2000 Seminar 37 Synthesizing distributed finite state systems from MSCs Giuseppe Milicia 38 BRICS Århus Visiting on December 6th 2000 Seminar 39 JavaSpaces programming distributed systems 40 Hans H ttel BRICS Ålborg University Visiting on November 22nd 2000 Seminar 41 Bisimilarity in the spi calculus results and directions 42 Dana S Scott professor at Carnegie Mellon University Pittsburgh USA Visiting from Ocotober 1st 2000 until October 4th 2000 Seminar Teaching mathematics via the computer is this a good idea 43 Thore Husfeld associate professor at Lund University Sweden Visiting August 9th 2000 Mikkel Thorup at 44 AT T Visiting July 2000 45 Gerth Brodal research associate professor at 46 BRICS Århus Visiting April 2000 47 USEMAP inter icon2top gif opdateret 03 05 2001 48 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Visitors 5 Past Visitors Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Visitors 5 Past Visitors 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 Seminars 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department Home inter menu bund gif Seminars Future seminars Date Title Speaker March 23rd 2001 11 Realizability Who Needs It 12 Andrej Bauer Ph D working at the 13 Mittag Leffler Institut Sweden Past seminars Date Title Speaker February 27th 2001 14 Plan10 Thoughts on a programming platform for distributivity and mobility Fritz Henglein IT C February 23rd 2001 15 Bioinformatics elements of an emerging discipline Christian Nørgaard Storm Pedersen 16 BRICS Århus December 18th 2000 17 Transcendental Functions and Continuity Checking in PVS 18 Hanne Gottliebsen School of Computer Science University of St Andrews Scotland December 7th 2000 19 Synthesizing distributed finite state systems from MSCs 20 Madhavan Mukund 21 Chennai Mathemathical Institute Chennai Madras India December 6th 2000 22 JavaSpaces programming distributed systems Giuseppe Milicia 23 BRICS Århus November 24th 2000 24 High Level nets as type theories in the join calculus 25 Vladimiro Sassone associate professor at Universita de Catania Italy November 22nd 2000 26 Bisimilarity in the spi calculus results and directions 27 Hans H ttel BRICS Ålborg November 14th 2000 28 Smart Cards what why and how Peter Aage 29 Gemplus October 3rd 2000 Teaching mathematics via the computer is this a good idea 30 Dana S Scott 31 Carnegie Mellon University Pittsburgh USA 32 USEMAP inter icon2top gif opdateret 03 05 2001 33 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Seminars Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Research Projects 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department Home inter menu bund gif Research Projects Ongoing projects Efficient algorithms 11 Stephen Alstrup 12 Theis Rauhe 13 Inge Li Gørtz Efficient database systems 14 Stephen Alstrup 15 Theis Rauhe 16 Inge Li Gørtz 17 RCES 18 Jens Chr Godskesen 19 Thomas Hildebrandt Reasoning about Resources 20 Lars Birkedal 21 USEMAP inter icon2top gif opdateret 03 05 2001 22 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Research Projects Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Selected Publications 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department Home inter menu bund gif Selected Publications from the Theory Department Below you will find a few selected publications for each member of the Theory Department More complete publication lists can be found on each members personal homepage 11 Stephen Alstrup S Alstrup G S Brodal and T Rauhe New Data Structures for Orthogonal Range Searching Proceedings of the 41th Annual Symposium on Foundations of Computer Science FOCS pp 198 207 2000 S Alstrup A Ben Amram and T Rauhe Worst case and Amortised Optimality in Union Find Proceedings of the thirty first annual ACM Symposium on Theory of Computing STOC pp 499 506 1999 S Alstrup and D Harel and P W Lauridsen and M Thorup Dominators in Linear Time SIAM Journal on Computing SICOMP pp 2117 2132 December 1999 12 Lars Birkedal L Birkedal Developing theories of types and computability via realizability Electronic Notes in Theoretical Computer Science 34 2000 Available 13 online S Awodey L Birkedal and D S Scott Local realizability toposes and a modal logic for computability Mathematical Structures in Computer Science May 2000 Accepted for publication L Birkedal and R W Harper Constructing interpretations of recursives types in an operational setting Information and Computation 155 pp 3 63 1999 14 Jens Chr Godskesen Jens Chr Godskesen Developing theories of types and computability via realizability Proceedings of CHARME 99 LNCS 1703 September 1999 Springer Verlag Jens Chr Godskesen Two Algorithms for Generating Tests for Embedded Systems Proceedings of ISCIS 99 October 1999 Jens Chr Godskesen Test Generation from Fault Models for Redirected Outputs Proceedings of HLDVT 99 November 1999 15 Thomas Hildebrandt T T Hildebrandt Categorical Models for Fairness and a Fully Abstract Presheaf Semantics of SCCS with Finite Delay A Revised version will appear in CTCS special issue of TCS 34 2000 Available in 16 postscript 17 pdf and 18 dvi format S Fr schle and T T Hildebrandt On Plain and Hereditary History Preserving Bisimulation Proceedings of the 24th International Symposium on Mathematical Foundations of Computer Science MFCS 99 19 LNCS 1672 pp 354 365 1999 Full version available as 20 BRICS Report 21 RS 99 4 T T Hildebrandt P Panangaden and G Winskel A Relational Model of Non deterministic Dataflow Proceedings of the 9th International Conference on Concurrency Theory 22 CONCUR 98 23 LNCS 1466 pp 613 628 1998 24 Theis Rauhe Stephen Alstrup Thore Husfeldt and Theis Rauhe Marked Ancestor Problems 39th Annual Symposium on Foundations of Computer Science FOCS 98 Available as 25 ps and 26 pdf Stephen Alstrup Gerth Stølting Brodal and Theis Rauhe Optimal Static Range Reporting in One Dimension 33rd Annual ACM Symposium on the Theory of Computing STOC 01 Available as 27 ITU Technical Report Jakob Pagter and Theis Rauhe Optimal Time Space Trade Offs for Sorting 39th Annual Symposium on Foundations of Computer Science FOCS 98 Available as 28 dvi 29 ps and 30 pdf 31 Inge Li Gørtz 32 USEMAP inter icon2top gif opdateret 03 05 2001 33 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Selected Publications Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 Activities 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department Home 11 Conference Organization 12 Conferences and Workshops 13 Invited Talks 14 Editorials 15 Ph D activities 16 Summer School inter menu bund gif Activities Left you find a list of activities involving members of the Theory Department 17 USEMAP inter icon2top gif opdateret 03 05 2001 18 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities Conference Organization 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Department Home 12 Activities inter menu bund gif Conference Organization Below you find a list of future and past conferences partly organized by members of the Theory Department Current engagements 13 The 2002 Federated Logic Conference Copenhagen Denmark 14 Lars Birkedal Organizing Committee for FLoC 15 Jens Chr Godskesen Organizing Committee for CAV 16 Mathematical Foundations of Programming Semantics 2001 Aarhus Denmark 17 Lars Birkedal Program Committee Past 18 Workshop on Realizability Semantics and Applications 1999 Trento Italy 19 Lars Birkedal Organizing Committee and Program Committee 20 USEMAP inter icon2top gif opdateret 03 05 2001 21 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Conference Organization Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Conference Organization Activities 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities Conferences and Workshops 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Department Home 12 Activities inter menu bund gif Conferences and Workshops Located at IT C Below you find a list of future and past conferences and workshops organized and held at the Theory Department Future Date Title Organized by March 30th 2001 13 DAIMI IT C Meeting on programming language Organized by 14 Thomas Hildebrandt Past Date Title Organized by November 6th 2000 15 6th ARCO Organized by 16 Stephen Alstrup and 17 Theis Rauhe 18 USEMAP inter icon2top gif opdateret 03 05 2001 19 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Conferences and Workshops Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Conferences and Workshops Activities 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities Invited Talks 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Department Home 12 Department Activities inter menu bund gif Invited Talks 13 Stephen Alstrup Date Title Place June 5 9 2000 Tutorial Trees 14 Workshop on Dynamic Graph Problems at the 15 Pacifc Institute for the Mathemathical Sciences Vancouver Canada June 5 9 2000 Improved Algorithms for Finding Level Ancestors in Dynamic Trees 16 Workshop on Dynamic Graph Problems at the 17 Pacifc Institute for the Mathemathical Sciences Vancouver Canada 18 Lars Birkedal Date Title Place September 22 24 2000 Relative and Modified Realizability AMS regional meeting no 957 Toronto Canada Sepember 4 2000 Local Realizability Toposes and a Modal Logic for Computability 19 Department of Mathematical Sciences at the University of Aarhus February 17 2000 An Introduction to Developing Theories of Types and Computability via Realizability Logic Colloquium 20 Carnegie Mellon University 21 USEMAP inter icon2top gif opdateret 03 05 2001 22 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Invited Talks Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Invited Talks Department Activities 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities Editorials 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Department Home 12 Activities inter menu bund gif Editorials Below you find a list of future and past publications edited or partly edited by members of the Theory Department Current engagements Special Issue of Mathematical Strucuteres in Computer Science MSCS on Realizability Semantics and Applications Submissions due January 20 2000 13 Lars Birkedal Co editor Past 14 A Tutorial Workshop on Realizability Semantics and Applications Electronic Notes in Theoretical Computer Science Volume 23 Issue 1 15 Lars Birkedal Co editor 16 USEMAP inter icon2top gif opdateret 03 05 2001 17 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Editorials Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Editorials Activities 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities Ph D activities 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Department Home 12 Department Activities 13 Joint Ph D activities 14 Ph D Courses inter menu bund gif Ph D activities Left you find a list of Ph D courses and activities organized by members of the Theory Department 15 USEMAP inter icon2top gif opdateret 03 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Ph D activities Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Ph D activities Department Activities 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Ph D activities Joint Ph D activities 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish 12 Department Home 13 Department Activities 14 Ph D Activities inter menu bund gif Joint Ph D activities Below you find a list of Ph D activities organized by members of the Theory Department together with researchers from other institutions 15 DAIMI IT C Meetings The DAIMI IT C series of one day meetings is a forum for collaboration between Ph D students at the 16 IT University of Copenhagen and the 17 Department of Computer Science at the University of Aarhus DAIMI including the 18 BRICS research center and PhD school 19 USEMAP inter icon2top gif opdateret 03 05 2001 20 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Ph D activities 6 Joint Ph D activities Department Home 7 Vacancies 8 Home 9 Find Persons 10 SiteMap 11 Intranet 12 Danish inter menu bund gif 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Ph D activities 6 Joint Ph D activities Department Activities 7 Vacancies 8 Home 9 Find Persons 10 SiteMap 11 Intranet 12 Danish inter menu bund gif 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Ph D activities 6 Joint Ph D activities Ph D Activities 7 Vacancies 8 Home 9 Find Persons 10 SiteMap 11 Intranet 12 Danish inter menu bund gif 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Ph D activities Ph D Courses 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish 12 Department Home 13 Department Activities 14 Ph D Activities inter menu bund gif Ph D Courses Below you find a list of Ph D courses given by members of the Theory Department 15 Avanceret Algoritmik given by 16 Stephen Alstrup 17 Theis Rauhe 18 USEMAP inter icon2top gif opdateret 03 05 2001 19 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Ph D activities 6 Ph D Courses Department Home 7 Vacancies 8 Home 9 Find Persons 10 SiteMap 11 Intranet 12 Danish inter menu bund gif 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Ph D activities 6 Ph D Courses Department Activities 7 Vacancies 8 Home 9 Find Persons 10 SiteMap 11 Intranet 12 Danish inter menu bund gif 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Ph D activities 6 Ph D Courses Ph D Activities 7 Vacancies 8 Home 9 Find Persons 10 SiteMap 11 Intranet 12 Danish inter menu bund gif 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities Summer School 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Department Home 12 Activities inter menu bund gif Summer School Future Past 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Summer School Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Activities 5 Summer School Activities 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 Teaching 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish 10 Department Home 11 Current courses 12 Spring 2001 13 Previous Courses 14 Master of Science Theses inter menu bund gif Teaching Left you find a list of courses and M SC theses given and advised by members of the Theory Department 15 USEMAP inter icon2top gif opdateret 03 05 2001 16 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching Department Home 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish inter menu bund gif 11 USEMAP inter icon2top gif opdateret 03 05 2001 12 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching Current courses 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Department Home 12 Teaching inter menu bund gif Courses fall 2000 mainly in Danish 13 Apparatsoftware Embedded Software given by 14 Thomas Hildebrandt 15 Avancerede Datastrukturer given by 16 Stephen Alstrup 17 Theis Rauhe 18 Category Theory given by 19 Lars Birkedal 20 Thomas Hildebrandt 21 Internetprogrammering INP given by 22 Jens Chr Godskesen 23 Introduktion til algoritmik og datastrukturer given by 24 Stephen Alstrup 25 Theis Rauhe 26 Parallelle Systemer Concurrency given by 27 Thomas Hildebrandt 28 Søgemaskineprojekt given by 29 Stephen Alstrup 30 Theis Rauhe 31 USEMAP inter icon2top gif opdateret 03 05 2001 32 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Current courses Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Current courses Teaching 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching Spring 2001 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Department Home 12 Teaching inter menu bund gif Courses Spring 2001 13 Avanceret Algoritmik given by 14 Stephen Alstrup 15 Theis Rauhe 16 Grundlæggende programmering given by 17 Lars Birkedal 18 Internetprogrammering given by 19 Jens Chr Godskesen 20 Introduktion til algoritmik og datastrukturer given by 21 Stephen Alstrup 22 Theis Rauhe Mobility given by 23 Thomas Hildebrandt Operating Systems and Machine level Programming given by 24 Thomas Hildebrandt 25 Parallelle Systemer Concurrency given by 26 Thomas Hildebrandt 27 Søgemaskineprojekt given by 28 Stephen Alstrup 29 Theis Rauhe 30 USEMAP inter icon2top gif opdateret 03 05 2001 31 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Spring 2001 Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Spring 2001 Teaching 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching Previous Courses 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Department Home 12 Teaching inter menu bund gif Previous Courses Spring 2000 13 Internetprogrammering given by 14 Jens Chr Godskesen 15 Introduktion til algoritmik og datastrukturer given by 16 Stephen Alstrup 17 Theis Rauhe 18 Søgemaskineprojekt given by 19 Stephen Alstrup 20 Theis Rauhe Fall 1999 Effektive algoritmer og programmer given by 21 Stephen Alstrup Research Assistant Professor Grafalgoritmeprojekt given by 22 Stephen Alstrup 23 Theis Rauhe 24 Introduktion til algoritmik og datastrukturer given by 25 Stephen Alstrup 26 Theis Rauhe 27 USEMAP inter icon2top gif opdateret 03 05 2001 28 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Previous Courses Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Previous Courses Teaching 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching Master of Science Theses 5 Vacancies 6 Home 7 Find Persons 8 SiteMap 9 Intranet 10 Danish 11 Department Home 12 Teaching inter menu bund gif Master of Science Theses Date Title Author Advisor 13 USEMAP inter icon2top gif opdateret 03 05 2001 14 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Master of Science Theses Department Home 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 4 Teaching 5 Master of Science Theses Teaching 6 Vacancies 7 Home 8 Find Persons 9 SiteMap 10 Intranet 11 Danish inter menu bund gif 12 USEMAP inter icon2top gif opdateret 03 05 2001 13 wwwadm it c dk 1 IT højskolen 2 Research 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif 9 USEMAP inter icon2top gif opdateret 03 05 2001 10 wwwadm it c dk 1 IT højskolen 2 Research Profile of researcher 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif Lars Birkedal Researcher in Theoretical Computer Science Lars Birkedal teaches courses in Semantics for Programming Languages and Category Theory He started as an Associate Research Professor at the IT C on 15 March 2000 after returning from the USA where he completed his Ph D at the Carnegie Mellon University in Pittsburgh I carry out research in Mathematical Logic Theoretical Computer Science Type Theory and Computability Lars Birkedal explains In other words I investigate which operations can be computed and how you describe this in computer programs At the same time he is preparing a large international conference in Computer Science and Logic together with professors at the Department of Computer Science at the University of Copenhagen and the Technical University of Denmark This conference titled FLoC 02 for Federated Logic Conferences 2002 will take place in Copenhagen in July 2002 It is expected that around 800 researchers will attend I applied for the position at the IT C because the environment is very ambitious also when compared to international standards and because I like to work in a place which has a short route from theoretical research to practical implementation The IT C is also very internationally focused Lars Birkedal says A short biography of Lars Birkedal 30 years of age M Sc in Computer Science 1994 from the University of Copenhagen HD BA in Business Administration and Organizational Theory in 1994 from the Copenhagen Business School Ph D in Computer Science from Carnegie Mellon University Pittsburgh U S A 1999 As of March 2000 Assistant Research Professor at the IT C As of July 2000 Head of the Theory Research Department at the IT University 9 USEMAP inter icon2top gif opdateret 03 05 2001 10 wwwadm it c dk 1 IT højskolen International students 2 Vacancies 3 Home 4 Find Persons 5 SiteMap 6 Intranet 7 Danish inter menu bund gif International students 8 USEMAP inter icon2top gif opdateret 04 05 2001 9 wwwadm it c dk 1 IT højskolen News 2 Vacancies 3 Home 4 Find Persons 5 SiteMap 6 Intranet 7 Danish 8 News Service in Danish inter menu bund gif The IT University s News Service You can receive regular news updates about available courses vacant staff positions and general news events at the IT University of Copenhagen as part of our News Service Currently this service is only available in Danish To subscribe to the free News Service in Danish click 9 here and fill out the subscription form 10 USEMAP inter icon2top gif opdateret 04 05 2001 11 wwwadm it c dk 1 IT højskolen 2 News News Service in Danish 3 Vacancies 4 Home 5 Find Persons 6 SiteMap 7 Intranet 8 Danish inter menu bund gif 9 USEMAP inter icon2top gif opdateret 04 05 2001 10 wwwadm it c dk 1 IT højskolen Personer 2 Vacancies 3 Home 4 Find Persons 5 SiteMap 6 Intranet 7 Danish inter menu bund gif Find medarbejder e Fornavn efternavn eller dele heraf Stilling Alle Ansættelsessted Alle Afdeling Alle afdelinger Søg Find studerende Fornavn efternavn eller dele heraf Immatrikuleret Alle Linie Alle Søg Søgning i indhold Brug enten SiteMap eller lav fritekstsøgning i dokumentet med 8 det samlede site indhold 9 USEMAP inter icon2top gif opdateret 04 05 2001 10 wwwadm it c dk 1 IT højskolen 2 Research Projects 3 Courses 4 Vacancies 5 Home 6 Find Persons 7 SiteMap 8 Intranet 9 Danish inter menu bund gif Research Projects and Research Software 10 Algorithm Group 3D image Analysis 11 3D lab Functional Software Technologies 12 Funtechs Standard ML 13 Moscow ML 14 The ML Kit Embedded Software 15 RCES Verification of embedded systems 16 VERIS Design and Use of Interactive Web Applications 17 DIWA 18 Computation of Natural Shapes 19 Eye Based IT 20 Boolean Expression Diagrams 21 BuDDy 22 MuDDy 23 Difference Decision Diagrams 24 STTools 25 USEMAP inter icon2top gif opdateret 04 12 2000 26 wwwadm it c dk 1 logo3 gif photo of Mads Nielsen Mads Nielsen Associate Professor Ph D Phone 45 38 16 88 88 Phone direct 45 38 16 88 23 Phone home 45 32 94 32 30 Fax ITU 45 38 16 88 99 E mail 2 malte itu dk Address 3 IT University of Copenhagen Glentevej 67 69 DK 2400 4 Copenhagen NV 5 Denmark Office 2 27 Mads Nielsen received a MSc in 1992 and a PhD in 1995 both in computer science from 6 DIKU Department of Computer Science University of Copenhagen Denmark During his PhD studies he spent one year 93 94 at the 7 Robotvis lab at INRIA Sophia Antipolis France In the second half of 1995 he was post doc at the 8 Image Sciences Institute of Utrecht University The Netherlands In 1996 he was joint post doc at DIKU and 9 3D Lab School of Dentistry University of Copenhagen where he served as assistant professor 1997 99 In 1998 99 he served as external associate professor at 10 Institute of Mathematical Modelling Technical University of Denmark April 1999 he became the first associate professor at the new 11 IT University of Copenhagen Some relevant links Project 12 Eye based Information Technology 13 Danish version Book 14 Gaussian Scale Space Theory Project 15 Computation of Natural Shape Conference 16 Scale Space 99 Corfu Greece 17 Proceedings LNCS 1682 online Ph D students 18 Martin Lillholm ITU Multiscale analysis of multichannel images 19 Theo Engell Nielsen ITU Visualisation of fire and explosions 20 Niels Holm Olsen ITU 3D Lab Analysis of 3D microscope images 21 Kim Stenstrup Pedersen DIKU Multiscale image analysis and least committed statistics 22 Dan Witzner Hansen ITU Eye tracking 23 Erik B Dam ITU Deep structure of images 24 Nanna Glerup ITU 3D Lab Quantization of assymetry 25 Peter Berg Larsen ITU DIKU Computations in the human visual system 26 Alex Krivoulets ITU Compression of medical images Former Ph D students 27 Ole Fogh Olsen DIKU Multiscale image analysis and singularity theory 13 June 2000 28 Peter Riber DIKU Analysis of image sequences 17 April 2000 29 Home 30 Research 31 Teaching 32 CV 33 Publications 34 3D Lab 35 Image Group Mads Nielsen 36 malte diku dk updated January 27 2000 This layout was stolen from 37 Joachim Weickert 1 logo3 gif Eye Based IT Background Recently the ALS patient Birger Jeppesen wrote the book Is heaven a better place to be Danish title Er der mon bedre i himlen This book was written using an 2 eye controlled computer user interface The cost price of this equipment is approximately US 3000 in addition to the price of the PC Furthermore this system requires a substantial training periode and some human assistance It is the aim of the project Eye Based IT to make eye controlled computer equipment accessible to a broader audience of disabled people at a lower cost price and in a more user friendly form Traditional communication equipment like pointers mounted in the forehead have a number of obvious drawbacks they are slow tedious and fatiguing to use for longer periods and they do often require assistance for mounting the equipment However they are cheap and work in conjunction with standard interfaces such as keyboards Speech recognition systems are currently not available in Danish and they cannot be used unless the patient has a clear pronunciation It is the aim of the project Eye Based IT to develop cheap fast and flexible tools that can be used by disabled people of minimum mobility and with a minimum of assistance Furthermore eye based user interfaces may also show useful in professional settings and it may be an alternative interaction device for people with arm or shoulder strain problems Technology A system that measures the users eye movements when he or she observes a computer screen or a blackboard may be used for eye gaze typing Existing gaze typing systems are relatively expensive US 3000 to 25000 plus the cost of a PC and some of them does not include the special Danish characters æ ø and å See 3 list of products and 4 Eye Controlled Media by Theo Engell Nielsen Arne John Glenstrup for a general description of the potential of this technology It is the aim of the project Eye Based IT to develop systems based on ordinary video cameras or web cams and to develop eye tracking software that will run on a state of the art PC The price of the total system will be low and the software can be distributed via the Internet The drawbacks are that the system cannot track the eye movement very precisely In general it will not be possible to use standard mouse operated software Only the more expensive systems can obtain such a precision They have not become cheaper during the last 5 years as they are based on specialized hardware components The system developed in the project Eye Based IT will take use of a second computer monitor placed on top of the ordinary monitor Next to this a plate with characters may be placed The user selects a character on the plate by looking at it It now appears on the extra computer monitor The user acknowlegde it by fixating the monitor This systems is very flexible and new symbols and characters can easily be included It is design goal that well trained users may reach a typing speed of one character a second under optimal circumstances The final system can be downloaded from a website It is the plan to develop the tracking system so it can be used with standard word processors email systems and Internet browsers Should this not be feasible a specialized integrated word processor email system and Internet browser will be developed under the project Furthermore it will be investigated how the technology may be incorporated in interactive television systems PhD project visual tracking of gaze direction By use of a camera mounted on top of a standard PC the eye and iris must be tracked It shall be investigated if these informations can be used for determining the gaze direction Eventually other facial features can be taken into account The basic techniques in this PhD project are real time tracking snakes and condensation techniques and computer vision self calibration and tensor techniques Collaborating partners The system will be developed in collaboration with 5 Professor Kenji Itoh Tokyo Institute of Technology Professor Itoh will be responsible for the implementation of the Japanese character set approximately 400 units During the development representatives from user organizations will take part in the project Their advise will be dictating the evolution of the project Time schedule February March 2000 Appointment of PhD student in computer vision March April 2000 Analysis of demands in collaboration with user organizations and establishment of experimental lab April 2000 December 2000 Development of tracking algorithms January 2001 User test of tracking system February 2001 July 2001 Design of user interface for plate monitor system Patents August 2001 Presentation of prototype system September 2001 Project meeting in Tokyo with Japanese partner September 2001 December 2001 Optimization of tracking system Programming of drivers for tracking system January 2002 June 2002 End user tests April 2002 Project meeting in Copenhagen with Japanese partners August 2002 December 2002 Programming of web site Eventually programming of email browser system User test of web site January 2003 Upload of web site Ph d thesis ready February April 2003 Lectures and courses for organizations of disabled Staff and partners Associate professor 6 Mads Nielsen main Ph D supervisor Associate professor 7 John Paulin Hansen co supervisor project responsible design of user interfaces Ph d student in computer vision systems Programmer of drivers and user interfaces Professor 8 Kenji Itoh Tokyo Institute of Technology Research Associate Hirotaka Aoki Tokyo Institute of Technology 1 logo3 gif Øjenstyret IT 2 English Version Baggrund For nylig udgav Birger Jeppesen der lider af ALS bogen Er der mon bedre i himlen Denne bog er skrevet med et 3 øjeudpegningssystem Det pågældene udstyr koster ca 20 000 kr i tillæg til en PC og kræver en længerevarende tilvænning samt assistance fra en teknisk kyndig hjælper Projekt Øjestyret IT ønsker at gøre øjeudpegning tilgængelig for andre handicappede til en mere overkommelig pris og i en mere brugervenlig form En række af de redskaber som traditionelt har været brugt af handicappede til alternative system inputs fx pande pinde har en række åbenbare ulemper De er langsomme de kan anstrengende at bruge over længere tid og de forudsætter ofte en medhjælper til at montere udstyret Fordelen er at de er billige og virker sammen med gængse tastaturer Selvom talegenkendelsessystemer sandsynligvis snart vil være tilgængelige for danske brugere kræver de en velartikuleret udtale og de vil derfor ikke kunne anvendes ved fx hæshedsproblemer Projekt Øjenstyret IT sigter mod at udvikle et input redskab der er hurtigt billigt fleksiblet og kan anvendes af handicappede med et minimum af førlighed Øjenstyrede systemer kan muligvis også vise sig interessante for personer med midlertidige eller længerevarende museskader Teknologi Systemer som kan registrere øjets bevægelser når brugeren kigger på en skærm eller en tavle kan bruges til at identificeres hvilket bogstav der kigges på De eksisterende systemer er desværre relativt dyre fra ca 20 000 kr op til 150 000 kr i tillæg til en PC s pris og mange har ikke danske bogstaver Se 4 produktoversigt og 5 Eye Controlled Media af Theo Engell Nielsen Arne John Glenstrup for en generel beskrivelse af teknologiens potentialer Projekt Øjenstyret IT ønsker istedet at anvende et almindeligt videokamera eller et web cam til at optage brugerenes øjnbevægleser og vil analysere disse ved hjælp af specielt udviklet software som kan fungere på en almindelig nyere PC 400 Mhz eller mere Fordelen er at prisen på udstyret holdes på et minimum og at systemet kan distribueres over nettet Ulempen er at systemet ikke vil muliggøre den præcise styring af en curser som kendes fra den traditionelle mus Det er i dag kun tilnærmelsesvis opnåeligt med systemer som koster over 100 000 kr Prisen på disse meget præcise systemer er ikke faldet nævneværdigt de sidste 5 år og vil næppe gøre det fremover da de anvender en række specielle hardware komponenter Det system som vil blive udviklet under projekt i Øjenstyret IT består foruden vieokameraet af en ekstra monitor placeret over den skræm hvorpå programmerne bliver vist Omkring denne skærm monteres en enkel tavle med de skrifttegn som skal anvendes under udpegningen Tavlen kan laves efter et forlæg på almindeligt karton Systemet bliver fleksibelt så brugeren og medhjælperen nemt selv kan lave nye tavler med individuelle tekster og symboler Systemet vil fungere ved at brugeren kigger på det bogstav på tavlen han eller hun ønsker at indtaste Det fremkommer så på monitoren over den almindelige skærm og man bekræfter ved blot at kigge på det Herved undgås det at man ved et uheld kommer til at vælge det forkerte bogstav Der er ambitionen at kunne opnå en skrivehastighed på et tegn i sekundet for trænede brugere under optimale omstændigheder I tillæg til det grundlæggende system vil der blive udviklet en hjemmeside hvorfra man kan downloade den nødvendige software og få vejledning i anvendelsen af systemet Der vil også blive etableret en nyhedsgruppe for systemet hvorfra der kan kommunikeres med andre brugere Systemet vil blive søgt anvendt sammen med gængse tekstbehandlingsprogrammer e mail systemer og internet browsere Såfremt disse ikke findes egnet til målgruppen eller teknologien vil der blive udviklet et brugervenligt tekstsystem hvorfra der kan sendes e mails og en browser som har de nødvendige funktioner til at surfe på internettet Det vil endvidre blive undersøgt om systemet eventuelt kan integreres med set top box til kabel tv baserede browsere og e mailsystemer PhD projekt visuel tracking af synsretning Ved hjælp af et kamera monteret på en standard PC skal øje og iris følges Det skal undersøges om disse informationer er tilstrækkelige til kvalitativt at fastlægge synsretning med respekt til et fast verdenskoordinatsystem Er dette ikke tilfældet må andre ansigts features indvolveres Projektet vil inkludere teknikker fra sandtids tracking snakes og condensation og fra datamatsyn selvkalibrering og tensorteknikker Samarbejdspartnere Systemet vil blive udviklet i samarbejde med 6 Professor Kenji Itoh Tokyo Institute of Technology som vil stå for implementereingen af det japanske tegnsæt med ca 400 enheder Derved sikres en international projektorientering og muligheden for at markere dansk tilgængelighedsforskning på et stort marked Under hele udviklingsforløbet vil brugerrepræsentanter fra de organisationer som ønsker at medvirke blive inddraget Deres råd og kommentarer vil være retningsgivende for projektets konkrete design Tidsplan Februar marts 2000 Ansættelse af Ph d studerende til udvikling af algoritmer Marts april 2000 Behovsanalyse i samarbejde med brugerorganisationer Indkøb af udstyr og opbygning af laboratorium April 2000 december 2000 Udvikling af tracking algoritmer Januar 2001 Test af tracking system på brugere Februar 2001 juli 2001 Design af grænseflade for tavle monitor system Patentudredninger August 2001 Præsentation af prototype system September 2001 Projektmøde i Tokyo med japansk partner September 2001 december 2001 Optimering af trackingsystem Programmering af drivere til trackingsystem Januar 2002 juni 2002 Afprøvning af system på slutbrugere April 2002 Projektmøde i København med japansk partner August 2002 december 2002 Programmering af website og eventuelt tekst email samt browser Brugertest af web site Januar 2003 Upload af øjenstyrings site og aflevering af Ph d afhandling Færdigredigering af videnskabelige artikler og proceedings om projektet Februar april 2003 Foredrag og kurser for handicapforeninger og hjælpemiddelcentraler Medvirkende forskere og samarbejdsparnere Lektor 7 Mads Nielsen hovedvejleder for Ph d studerende Lektor 8 John Paulin Hansen sidevejleder for Ph d studerende projektstyring og design Ph d studerende i computer vision systemer Programmør af drivere og brugergrænseflader Professor 9 Kenji Itoh Tokyo Institute of Technology Research Associate Hirotaka Aoki Tokyo Institute of Technology 1 logo3 gif photo of Mads Nielsen Research My research interest are in computer vision image analysis and especially medical image analysis My basic point of view is that least committed inference and models unconfounded from their digital representation must be used This has led to research in least committed models for projected surface orientation and natural images and the intrinsic structure of scale space representations of images Techniques developed on basis of these tools falls into stereo vision optic flow computation registration segmentation all of these with a natural multi scale in front Techniques have been applied registration and segmentation of medical images modelling of biological objects tracking of pigs counting of cells etc 2 Home 3 Research 4 Teaching 5 CV 6 Publications 7 3D Lab 8 Image Group Mads Nielsen 9 malte diku dk updated August 20 1999 1 logo3 gif photo of Mads Nielsen Teaching Currently I m working on the curriculum of the studies at the IT University in Copenhagen for Master of Science of Information Technology and Master of Information Technology both with specialization in multi media technology This is done in collaboration with DTU and DIKU I have been teaching several couses in image analysis and medical image analysis at DIKU and at IMM DTU I participate in the effort beeing made to coordinate the teaching in image analysis in the Copenhagen area including southern sweeden 2 Oresyn I have been supervising a number of student projects at DIKU and IMM Titles are among Koenderink Corner points Generic structure of isophote curvature extrema Multi scale watershed segmentation Tube snake reconstruction of tubular structures from their contour projections Starfish junction snakes for tracking The huasdorf dimension and multi scale normalisation I am PhD cosupervisor of Ole F Olsen and Peter Riber Along with the image group at DIKU we have been arranging a number of PhD summerschools I have been especially involved in Classical scale space theory and Shape Variation Courses Period Institution Title Spring 99 IMM DTU 3 Advanced Image Analysis 9 98 6 99 IMM DTU Medical Image Analysis Spring 98 DIKU Medical Image Analysis Spring 98 IMM DTU 4 Statistical Image Analysis Spring 97 DIKU 5 Catastrophe Theory in Image Analysis Autumn 96 DIKU 6 Medical Image Analysis Spring 93 DIKU Regularisation in Computer Vision 7 Home 8 Research 9 Teaching 10 CV 11 Publications 12 3D Lab 13 Image Group Mads Nielsen 14 malte diku dk updated November 25 1998 1 logo3 gif photo of Mads Nielsen Mads Nielsen Born October 24 1965 Danish citizen Married to Mai Britt Children Katinka Feb 1st 1996 and Maria June 20 1998 Studies PhD from Department of Computer Science University of Copenhagen DIKU April 1995 International studies at INRIA Sophia Antipolis one year 93 94 Master Cand Scient of computer science University of Copenhagen KU August 1992 Bachelor of physics and computer science June 1989 Professional life Associate Professor at IT University in Copenhagen since April 1999 External Associate Professor at IMM DTU January 1998 July 1999 Asst Research Professor at 3D Lab School of Dentistry KU February 1997 March 1999 Post Doc at 3D Lab School of Dentistry KU April 1996 February 1997 Post Doc at DIKU December 95 to March 96 Post Doc at Utrecht University July December 1995 Research Assistant at DIKU February 1995 to July 1995 February 1997 PhD Student at DIKU from August 1992 to February 1995 Funded by STVF Research programmer under Professor Peter Johansen at DIKU from April 1990 to June 1992 Funded by SNF 20 h week Programmer in the company Interbase from February 1986 to April 1990 20 h week Instructor of Computer Science Copenhagen Business University April 1985 to November 1986 15 h week Honorary Office Chair of 2nd International Conference Scale Space Conference Corfu Greece September 18 19 1999 Co chair of 7th ECCV Copenhagen Denmark May 2002 Program committee member 1st International Scale Space Conference Utrecht July 2 4 1997 SCIA99 Soendre Stroemfjord Greenland June 1999 ICCV 01 Vancouver Canada July 9 12 2001 Secretary of IEEE Computer Society Denmark Member of the editorial board of Journal of Mathematical Imaging and Vision Reviewer at several international conferences and journals among which are IEEE PAMI Medical Image Analysis IEEE Trans on Medical Image Analysis co Organiser of international workshops in computer vision and image analysis in Copenhagen Linear scale space theory 1997 Shape Variation 1999 Statistics of textures and shapes 2000 External funding Eye based Information Technology collaboration with John Paulin Hansen ITU 2 Mkr Natural Shape collaboration with Peter Johansen DIKU 3D Lab Psycology Mathematics 7 Mkr Fertimorph collaboration with University Hospital of Copenhagen 3D Lab and Image House A S 8 Mkr CIT project 101 Project in collaboration with Image House A S funded by CIT 1 5 Mkr Shape Variation PhD summerschool funded by the Danish Research Academy 70 kkr and by CIT 30 kkr Utrecht Extra expenses during stay at Utrecht University Hospital SNF 28 kkr Sophia Antipolis Extra expenses during stay at INRIA Sophia Antipolis Research Academy 58 kkr Teaching Courses at ITU Multimedia systems Courses at DIKU Regularisation in image analysis Catastrophe Theory in Image Analysis Medical Image Analysis Courses at IMM DTU Statistical Image Analysis Medical Image Analysis Undergraduate supervision at DIKU app 10 projects and theses PhD supervision Supervisor of Martin Lillholm Theo Engell Nielsen Niels Holm Olsen Co supervisor of Kim Steenstrup Pedersen Ole Fogh Olsen Peter Riber Member of Jon Sporring s supervision group 2 Home 3 Research 4 Teaching 5 CV 6 Publications 7 3D Lab 8 Image Group Mads Nielsen 9 malte diku dk updated November 25 1998 1 logo3 gif photo of Mads Nielsen Publications Books Book chapters Theses Mads Nielsen From Paradigm to Algorithms in Computer Vision PhD thesis 2 DIKU University of Copenhagen Denmark April 1995 DIKU 95 8 3 thesis ps gz 4 7Mb Mads Nielsen Scale space generators and functionals In Gaussian Scale Space Theory pages 99 114 Kluwer Academic press 1996 4 ssBookCh7 ps gz 423Kb Mads Nielsen and Rachid Deriche Binocular dense depth reconstruction using isotropy constraint In Gunilla Borgefors editor Theory and Applications of Image Processing II Selected articles from the 9th Scandinavian Conference on Image Analysis pages 127 140 World Scientific Publishing 1995 5 bookScia95 ps gz 963Kb Mads Nielsen Peter Johansen Ole F Olsen Joachim Weickert editors Proceedings of second international conference on scale space theories in computer vision Springer Verlag Lecture Notes in Computer Science vol 1682 6 Proceedings LNCS 1682 online Jon Sporring and Mads Nielsen Direct estimation of first order optic flow In Gunilla Borgefors editor 7 Theory And Applications of Image Analysis II Selected Papers from the 9th Scandinavian Conference on Image Analysis pp 225 238 World Scientific Jon Sporring Mads Nielsen Luc Florack and Peter Johansen editors Gaussian Scale Space Theory Kluwer Academic press 1997 8 Book at Kluwer Journal papers Mads Nielsen Graduated non convexity by functional focusing IEEE PAMI 19 5 521 525 1997 9 PAMI19 5 ps gz 3 2Mb Mads Nielsen Luc Florack and Rachid Deriche Regularization scale space and edge detection filters Journal on Mathematical Imaging and Vision 7 4 291 307 1997 10 JMIV7 4 ps gz 475Kb Mads Nielsen Robert Maas Wiro Niessen Luc Florack and Bart ter Haar Romeny Binocular stereo from grey scale images Journal of Mathematical Imaging and Vision 10 2 pp 103 122 1999 11 JMIV10 2 ps gz 1 6Mb Luc Florack Wiro Niessen and Mads Nielsen The intrinsic structure of optic flow incorporating measurement duality International Journal on Computer Vision 27 3 263 286 1998 Peter Johansen Mads Nielsen and Ole F Olsen Branch Points in One Dimensional gaussian Scale Space Accepted for JMIV 2000 Per R Andresen and Mads Nielsen Non rigid registration by geometry constrained diffusion Accepted for Medical Image Analysis 2000 Jon Sporring Ole F Olsen Mads Nielsen Joachim Weickert 12 Smoothing Images Creates Corners 13 Image and Vision Computing Vol 18 No 3 February 2000 pp 261 266 Kim S Pedersen Mads Nielsen The Haussdorf dimension and scale space normalisation Journal of Visual Communication and Image Representation 11 2 266 277 2000 Special Issue on the Scale Space 99 Conference 14 JVCIR10 2 pdf zip 128Kb Wiro Niessen Jim Duncan Mads Nielsen Luc Florack Bart ter Haar Romeny and Max Viergever A multi scale approach to image sequence analysis Computer Vision Image Understanding Feb 1997 Conference papers Mads Nielsen Surface reconstruction GNCs and MFA In Proceedings of International Conference on Computer Vision pages 344 349 Cambridge Massachusetts USA June 20 23 1995 15 iccv95 ps gz 320Kb Mads Nielsen and Per R Andresen Feature displacement interpolation In proc of ICIP Chicago 5 pages IEEE Computer Society Press October 1998 16 icip98 ps gz 250Kb Mads Nielsen Luc Florack and Rachid Deriche Regularization scale space and edge detection filters In Proc of 4th ECCV Cambridge UK volume 1065 of Lecture Notes on Computer Science pages 70 81 Springer Verlag April 1996 17 eccv96 ps gz 46Kb Mads Nielsen Wiro Niessen Robert Maas Luc Florack and Bart ter Haar Romeny On the duality of scalar and density flows In Proc 1st Scale Space conference Lecture Notes in Computer Science pages 65 76 Springer Verlag July 1997 18 ss97 ps gz 562Kb Mads Nielsen and Ole F Olsen The structure of the optic flow field In proc of 5th ECCV Freiburg Germany Lecture Notes in Computer Science pages 271 287 Springer Verlag June 1998 19 eccv98 ps gz 1 0Mb Mads Nielsen Graduated non convexity by smoothness focusing In proc of 4th BMVC pages 599 608 Guildford England September 21 23 1993 20 bmvc93 ps gz 81Kb Mads Nielsen Isotropic regularization In proc of 4th BMVC pages 135 144 Guildford England September 21 23 1993 Mads Nielsen Scale space extensions of the weak string In proc of the 8th Scandinavian Conference on Image Analysis pages 867 874 Tromso Norway May 25 28 1993 Mads Nielsen Bayesian inference in computer vision Binocular stereo from axioms to algorithm In proc of International Conference on Current Issues of Statistical Shape Analysis pages 128 135 Leeds England June 5 7 1995 21 cissa95 ps gz 922Kb Mads Nielsen and Rachid Deriche Binocular dense depth reconstruction using isotropy constraint In proc of the 9th Scandinavian Conference on Image Analysis pages 49 56 Uppsala Sweden June 6 9 1995 22 scia95 ps gz 920Kb Mads Nielsen Stereo vision A least committed bayesian approach In proc of Interdisciplinary Inversion Workshop DTU September 1996 Niels H Olsen Mads Nielsen Lie Group Modelling of Nonlinear Point Set Shape Variability In proc of the 2nd AFPAC Kiel Germany September 2000 LNCS 1888 Erik B Dam Mads Nielsen Nonlinear diffusion schemes for interactive watershed segmentation accepted for 3rd MICCAI Pittsburg USA October 2000 Wiro Niessen Mads Nielsen Luc Florack Robert Maas Bart ter Haar Romeny and Max Viergever Multiscale optic flow using physical constraints In proc DIKU PhD Summerschool on Classical Scale Space Theory Copenhagen Denmark 1996 Ole Fogh Olsen and Mads Nielsen Generic events for the gradient squared In proc of the 1st Scale Space Conference Lecture Notes in Computer Science pages 101 112 Springer Verlag July 1997 23 ss97b ps gz 562Kb Ole Fogh Olsen and Mads Nielsen Gradient magnitude based watershed segmentation In proc of ICIAP 97 Florence Italy Lecture Notes in Computer Science pages 6 13 Springer Verlag September 1997 24 iciap97 ps gz 81Kb Per R Andresen and Mads Nielsen 4d shape preserving modelling of bone growth In proc of MICCAI Cambridge Ma Lecture Notes in Computer Science 10 pages Springer Verlag October 1998 25 miccai98 ps gz 1 3Mb Per R Andresen Mads Nielsen Non rigid registration by geometry constrained diffusion Proc of MICCAI99 LNCS Springer Verlag 1999 26 miccai99 ps gz 1 9Mb Kim S Pedersen Mads Nielsen The Hausdorf dimension and scale space normalisation Proc of ScaleSpace99 LNCS 1682 pp 271 282 Corfu 1999 27 ss99 ps gz 1 2Mb Ionana D O Mogensen Mads Nielsen Tube snake models for reconstruction of elongated structures from their contour projections SCIA 99 June 7 11 Kangerlussuaq Greenland 1999 John Bach Jensen and Mads Nielsen A simple genetic algorithm applied to discontinous regularization In proc of 1992 IEEE Workshop on Neural Networks for Signal Processing pages 69 78 August 1992 Jon Sporring Mads Nielsen Joachim Weickert and Ole Fogh Olsen A note on differential corner detectors In proc of ICPR Brisbane Australia 4 pages August 1998 Jon Sporring and Mads Nielsen Direct estimation of time to contact In proc of the 9th Scandinavian Conference on Image Analysis pages 941 948 Uppsala Sweden June 6 9 1995 Robert Maas Mads Nielsen Wiro Niessen Bart ter Haar Romeny Luc Florack and Max Viergever Local disparity measurements using scalable operators In proc of DIKU PhD Summerschool on Classical Scale Space Theory Copenhagen Denmark 10 13 May 1996 28 Home 29 Research 30 Teaching 31 CV 32 Publications 33 3D Lab 34 Image Group Mads Nielsen 35 malte diku dk updated November 25 1998 1 The IT University of Copenhagen pengis2 gif Henrik Hulgaard Welcome to my home page I m an associate professor at the 2 IT University of Copenhagen Teaching Fall 2000 3 Efficient Algorithms and Programs Fall 2000 4 Computer security Fall 2000 5 Internet programming Spring 2001 6 Computer security 7 LinuxSecurity tgz Spring 2001 8 Operating Systems Spring 2001 9 Internet Programming Research 10 Overview of my research 11 CTSE 12 Resource Constrained Embedded Systems RCES 13 Difference Decision Diagrams 14 Boolean Expression Diagrams BEDs 15 Verification of Interacting Systems VERIS 16 Publication list 17 My dissertation abstract PostScript file Personal Information 18 ConfigIt Software 19 About me 20 Contact Information 21 My public PGP key Comments to 22 henrik itu dk Version June 30 1999 BED page has moved Please go to 1 www it c dk research bed 1 hoved logo4 gif Timing Analysis A concurrent system is modeled using a safe Petri net Timing information is introduced by annotating the places of the net with delay ranges This model is 2 further explained below Given a model of the system the temporal properties of the system is analyzed by determing the extreme case separation in time between two system events i e between two transition firings This information is useful for optimization verification and performance evaluation of concurrent systems The problem of determing the extreme case separation in time between two system events is called the 3 TSE problem also further explaing below Two algorithms have been developed called TSE and CTSE for determining the extreme case separation in time between two system events The 4 TSE algorithm analyzes a Petri net without conditional behavior also called a marked graph or a decision free Petri net The 5 CTSE algorithm is an extension of the TSE algorithm capable of analyzing safe Petri nets i e nets that include conditional behavior Formal Model of a Concurrent System Petri Nets The Timed Separation of Events Problem The TSE problem The TSE Algorithm Determining the time separation of events TSE is a fundamental problem in the analysis synthesis and optimization of concurrent systems Applications range from logic optimization of asynchronous digital circuits to the evaluation of execution times of real time systems We have developed an efficient algorithm to find exact tight bounds on the time separation of events in an arbitrary concurrent process specification without conditional behavior This technique has been extended to consider specifications with conditional behaviors that are common in asynchronous circuit design especially through circuits derived from high level descriptions in terms of concurrent programs for example 6 CSP The TSE problem occurs in two forms Firstly given a description of a concurrent system as a set of events and rules with time intervals constraining the firing of these events determine the largest possible separation in time between the firing of two particular event occurrences Secondly determine the maximum separation over all occurrences of two events with the same difference in occurrence numbering Solutions to the second problem can be used to determine the minimum and maximum time separations between consecutive transitions on a wire information that can then be used to analyze best and worst case performance of the system Such information can also be used to determine whether hazard prevention circuitry can be safely removed from the circuit yielding a smaller and faster implementation In the process of developing the TSE algorithm we have invented several useful new algebras in the spirit of the max algebra Efficient algorithms to manipulate the elements in these algebras have been incorporated into our implementation of the TSE algorithm The CTSE Algorithm In adapting of our algorithm to include conditional behavior we have concentrated on modeling a restricted class of Petri nets those nets with places that are either free choice or unique choice This model corresponds to asynchronous circuit implementations that can be derived from 7 CSP program without the need to introduce arbitration devices at the circuit level This represents a large class of circuits including the entire control portion of the Caltech Asynchronous Microprocessor Continuing work will show how these results can be used to efficiently synthesis asynchronous circuits that are optimized based on timing information Tools gif There is a publicly available implementation of the CTSE algorithm in C 8 here Some Related Publications 1 Henrik Hulgaard Steven M Burns Tod Amon and Gaetano Borriello An algorithm for exact bounds on the time separation of events in concurrent systems IEEE Transactions on Computers 44 11 1306 1317 November 1995 2 Tod Amon and Henrik Hulgaard 9 Temporal Analysis of Manufacturing Systems Using Non Stochastic Methods Journal of Manufacturing Systems 15 3 1996 3 Henrik Hulgaard and Steven M Burns 10 Efficient Timing Analysis of a Class of Petri Nets In Computer Aided Verification 1995 4 Henrik Hulgaard and Steven M Burns 11 Bounded Delay Timing Analysis of a Class of CSP Programs with Choice International Symposium on Advanced Research in Asynchronous Circuits and Systems 1994 5 Henrik Hulgaard and Steven M Burns 12 Bounded Delay Timing Analysis of a Class of CSP Programs to appear in Formal Methods in System Design Comments to 13 henrik itu dk Version Mar 7 1997 1 hoved logo4 gif CTSE Source Code Please check the CTSE 2 licensing and copyright terms 3 CTSE documentation 4 ANSI C source code gzip ed tar file 5 Dissertation describing the algorithms Comments to 6 henrik itu dk Version Mar 7 1997 1 hoved logo4 gif CTSE Licencing Terms The CTSE program is licensed free of charge and thus there is no warranty for the program The copyright holder provides the CTSE program as is without warranty of any kind either expressed or implied including but not limited to the implied warranties of merchantability and fitness for a particular purpose The entire risk as to the quality and performance of the CTSE program is with the user Should the program prove defective the user assumes the cost of all necessary servicing repair or correction In no event will the copyright holder be liable to the user for damages including any general special incidental or consequential damages arising out of the use or inability to use the CTSE program Comments to 2 henrik itu dk Version Mar 7 1997 1 hoved logo4 gif Dissertation by Henrik Hulgaard Timing Analysis and Verification of Timed Asynchronous Circuits Abstract This dissertation develops a formal framework for the analysis of temporal properties of concurrent systems A concurrent system is modeled as a set of independent concurrent components that occasionally synchronize Formally such a model is represented by a safe Petri net where the timing information is specified using delay ranges annotated on the places of the net Petri nets have a simple representation of concurrency synchronization and state and have proven adequate for modeling many types of control dominated concurrent systems The analysis we perform is to determine the extreme case separation in time between two system events transitions in the Petri net This analysis is useful both for performance evaluation and for timing verification We apply the techniques developed in this dissertation to a particular domain namely the analysis and verification of timed asynchronous circuits This will allow designers to reason about and thus synthesize non speed independent or timed asynchronous circuits Our hope is that these techniques can be used in a complete synthesis methodology for developing robust and high performance timed designs The timing analysis problem is approached in a bottom up manner We identify two subclasses of safe Petri nets for which we develop efficient and exact solutions For a choice free Petri net we develop an exact and efficient algorithm called the TSE algorithm This algorithm is extended to an iterative algorithm called the CTSE algorithm for analyzing Petri net specification with choice If the choice is limited to extended free choice and unique choice the CTSE algorithm is exact If the choice is more general the CTSE algorithm provides conservative bounds on the extreme case separation in times The algorithms developed in this dissertation have been implemented in C and the practicality of the timing analysis is demonstrated by benchmarking the algorithms on a number of realistically sized applications The CTSE algorithm is able to analyze Petri net specifications with more than 3000 nodes and 10 16 reachable states in less than two hours on a modern workstation The dissertation is approx 300 pages formatted for doublesided printing The PostScript file is 764k after gzip compression o 2 Download from itu dk o 3 Download from ftp cs washington edu o 4 Version without ZapfDingbats font from itu dk Comments to 5 henrik itu dk Version Mar 7 1997 1 hoved logo4 gif Research of Henrik Hulgaard My research interests include areas such as timing analysis asynchronous circuits VLSI CAD tools and formal verification In my Ph D dissertation I developed techniques based on abstract algebra to prove timing properties of timed Petri net These techniques are used to analyze and verify timed asynchronous systems Other applications include analysis of combined hardware software systems and non stochastic analysis of manufacturing systems More recently my research interests relate to the theory and application of formal verification techniques to embedded systems I work on model checking of embedded systems modeled using a large number of concurrent state machines Recent work also includes techniques for fast tautology checking using extensions of Binary Decision Diagrams Currently I look at model checking of real time systems modeled e g using timed automata I also work on performing symbolic timing analysis based on Presburger arithmetic Finally I consider using BDD techniques for efficient code generation for embedded systems and for combining model checking with generation of test vectors to validate safety critical software Further information about my research in these areas can be found below 2 Timing Analysis Determining the timing behavior of concurrent systems like communication protocols manufacturing systems and asynchronous circuits 3 Formal Verification New data structures allowing efficient representation and manipulation of circuits 4 Embedded Systems In the RCES Resource Constrained Embedded Systems project we investigate design methods and prototype tools for developing high quality efficient correct and reliable resource constrained embedded software 5 Publications A full list of my publications 6 Dissertation The abstract and full text of my dissertation titled Timing Analysis and Verification of Timed Asynchronous Circuits is available on line Projects 7 Boolean Expression Diagrams 8 Difference Decision Diagrams 9 The timing analysis tool CTSE 10 Verification of Interacting Systems VERIS 11 Resource Constrained Embedded Systems RCES Comments to 12 henrik itu dk Version Mar 7 1997 Publications by Henrik Hulgaard Journal Papers G Behrmann K G Larsen H R Andersen H Hulgaard J Lind Nielsen Verification of Hierarchical State Event Systems using Reusability and Compositionality Accepted for publication in Formal Methods in System Design H Hulgaard and T Amon Symbolic Timing Analysis of Asynchronous Systems IEEE Transactions on CAD vol 19 no 10 pp 1093 1104 oct 2000 J Lind Nielsen H R Andersen H Hulgaard G Behrmann K Kristoffersen and K G Larsen 1 Verification of Large State Event Systems using Compositionality and Dependency Analysis Submitted to Formal Methods in System Design NOTE The technique described in this paper is being patented by 2 Baan Visualstate which has all commercial rights J Staunstrup K G Larsen H R Andersen H Hulgaard G Behrmann K Kristoffersen J Lind Nielsen H Leerberg A Skou and N B Theilgaard Practical Verification of Embedded Software In IEEE Computer Vol 33 No 5 May 2000 Henrik Reif Andersen and Henrik Hulgaard 3 Boolean Expression Diagrams To appear in 4 Information and Computation Henrik Hulgaard Poul F Williams and Henrik Reif Andersen 5 Equivalence Checking of Combinational Circuits using Boolean Expression Diagrams In 6 IEEE Transactions on CAD 18 7 July 1999 Henrik Hulgaard and Steven M Burns 7 Bounded Delay Timing Analysis of a Class of CSP Programs Formal Methods in System Design vol 11 no 3 October 1997 8 BibTeX entry Henrik Hulgaard Steven M Burns Tod Amon and Gaetano Borriello An algorithm for exact bounds on the time separation of events in concurrent systems IEEE Transactions on Computers 44 11 1306 1317 November 1995 9 BibTeX entry Henrik Hulgaard Steven M Burns and Gaetano Borriello Testing Asynchronous Circuits A Survey Integration the VLSI Journal 19 3 111 132 1995 10 BibTeX entry Tod Amon and Henrik Hulgaard 11 Nonstochastic Analysis of Manufacturing Systems Using Timed Event Graphs Journal of Manufacturing Systems 15 3 1996 12 BibTeX entry Conference Workshop Papers P F Williams H R Andersen H Hulgaard Satisfiability Checking Using Boolean Expression Diagrams Accepted for publication at TACAS 2001 J Møller J Lichtenberg H R Andersen and H Hulgaard Difference Decision Diagrams Computer Science Logic CSL 99 J Møller J Lichtenberg H R Andersen and H Hulgaard Fully Symbolic Model Checking of Timed Systems using Difference Decision Diagrams SMC 99 13 Electronic Notes in Theoretical Computer Science 23 no 2 1999 P Williams H R Andersen and H Hulgaard Equivalence Checking of Hierarchical Combinational Circuits In IEEE International Conference on Electronics Circuits and Systems ICSCE 99 T Amon and H Hulgaard 14 Symbolic Time Separation of Events In Proceedings of Advanced Research in Asynchronous Circuits and Systems pp 83 93 April 1999 G Behrmann K G Larsen H R Andersen H Hulgaard J Lind Nielsen 15 Verification of Hierarchical State Event Systems using Reusability and Compositionality In Proceedings of TACAS 99 Springer Verlag NOTE The technique described in this paper is being patented by 16 Baan Visualstate which has all commercial rights F Jin H Hulgaard and E Cerny 17 Maximum Time Separation of Events in Cyclic Systems with Linear and Latest Timing Constraints Formal Methods in CAD FMCAD 98 J Lind Nielsen H R Andersen G Behrmann H Hulgaard K Kristoffersen and K G Larsen 18 Verification of Large State Event Systems using Compositionality and Dependency Analysis Proceedings of TACAS 98 Bernhard Steffen ed LNCS 1384 April 1998 Springer Verlag NOTE The technique described in this paper is being patented by 19 Baan Visualstate which has all commercial rights Henrik Hulgaard Poul F Williams and Henrik R Andersen 20 Combinational Logic Level Verification using Boolean Expression Diagrams 21 3rd International Workshop on Applications of the Reed Muller Expansion in Circuit Design 1997 Henrik Reif Andersen and Henrik Hulgaard 22 Boolean Expression Diagrams LICS 97 Henrik Hulgaard and Steven M Burns 23 Efficient Timing Analysis of a Class of Petri Nets In Computer Aided Verification 1995 24 BibTeX entry Henrik Hulgaard and Steven M Burns 25 Bounded Delay Timing Analysis of a Class of CSP Programs with Choice International Symposium on Advanced Research in Asynchronous Circuits and Systems 1994 26 BibTeX entry Henrik Hulgaard Tod Amon Steven M Burns and Gaetano Borriello 27 Timing Analysis of Timed Event Graphs with Bounded Delays Using Algebraic Techniques IEEE Conference on Decision and Control 1994 28 BibTeX entry Henrik Hulgaard Steven M Burns Tod Amon and Gaetano Borriello Practical Applications of an Efficient Time Separations of Events Algorithm Third International Workshop on Timing Issues in the Specification and Synthesis of Digital Systems Tau 93 1993 Henrik Hulgaard Steven M Burns Tod Amon and Gaetano Borriello 29 Practical Applications of an Efficient Time Separation of Events Algorithm IEEE International Conference on Computer Aided Design ICCAD pages 146 151 1993 30 BibTeX entry Tod Amon Henrik Hulgaard Steven M Burns and Gaetano Borriello 31 Algorithm for Exact Bounds on the Time Separation of Events in Concurrent Systems In IEEE International Conference on Computer Design ICCD pages 166 173 1993 32 BibTeX entry Henrik Hulgaard Per H Christensen and Jorgen Staunstrup Synthesis of Delay Insensitive Circuits from Verified Programs in Research directions in high level parallel programming languages editors J P Banatre and D Le Metayer Springer Lecture Notes in Computer Science 574 pages 326 337 1992 33 BibTeX entry Papers in Progress none submitted at the moment Comments to 34 henrik itu dk Version April 12 1999 1 hoved logo4 gif Personal information about Henrik Hulgaard 2 My CV in pictures My hobbies include badminton 3 skiing 4 workout and 5 dancing 6 here Anne Mette and I are dancing salsa the picture is from 7 Berlingske Tidende Here is a picture of 8 Steve Burns to the left Ken Stevens to the right and myself The picture is taken on a boat on Columbia River between Washington and Oregon in August 1996 At this time all three of us were working at The Strategic CAD Group at Intel Here is picture of 9 my wife Anne Mette to the right and My to the left Here is a picture of my 10 sister Karin the picture is from 11 Alt for Damerne Katja was born June 17th 2000 Below are links to pictures of my fantastic daughter Here she is 12 at age 20 weeks 13 Here she is only three days ond 14 Here she is approx 3 1 2 month old 15 Here she is learning to eat for the very first time she is 4 months 16 More pictures of Katja here at age approx 8 months Comments to 17 henrik itu dk Version 19 Mar 2001 1 hoved logo4 gif Henrik s CV in pictures I lived my first 24 years in 2 Denmark a little north of Copenhagen Koebenhavn jpg Then I moved to beautiful 3 Seattle to be a graduate student at the 4 Department of Computer Science Engineering Turing steam gif 5 University of Washington UW gif I highly recommend that you check out the 6 beutiful pictures from the North West by graduate student William Chan At the University of Washingtoned I was part of the 7 Laboratory of Integrated System LIS A picture with many of the LIS people are 8 here I was fortunate to get Steve Burns as my advisor Steve is now at the Strategic CAD Lab at Intel After about five years I had completed my Ph D thesis titled 9 Timing Analysis and Verification of Timed Asynchronous Circuits and in fall 95 I moved back to Denmark From January 1st 96 to June 99 I was an assistant professor at the Department of Information Technology now called 10 Informatics and Mathematical Modelling 11 Technical University of Denmark working on timing verification problems Since July 1st 99 I m an associate professor at 12 The IT University of Copenhagen dk flag gif A 13 Piet Hein gruk in Danish that is very appropriate after returning from Seattle Comments to 14 henrik itu dk Version Mar 19 2001 At bryde af og rejse bort kan være svært og falde hårdt men det er livets krav til dem som holder af at komme hjem Piet Hein 1 hoved logo4 gif Contact info for Henrik Hulgaard E mail 2 henrik itu dk Postal address Henrik Hulgaard 3 The IT University of Copenhagen Glentevej 67 DK 2400 Copenhagen NV Denmark Phone 45 3816 8808 Fax 45 3816 8899 You will find me in room 2 37 Version June 30 1999 MySQL Reference Manual for version 3 22 25 1 1 General Information about MySQL 2 1 1 What is MySQL 3 1 2 About this manual o 4 1 2 1 Conventions used in this manual 5 1 3 History of MySQL 6 1 4 The main features of MySQL 7 1 5 How stable is MySQL 8 1 6 Year 2000 compliance 9 1 7 General SQL information and tutorials 10 1 8 Useful MySQL related links 11 2 MySQL mailing lists and how to ask questions or report errors bugs 12 2 1 The MySQL mailing lists 13 2 2 Asking questions or reporting bugs 14 2 3 How to report bugs or problems 15 2 4 Guidelines for answering questions on the mailing list 16 3 MySQL licensing and support 17 3 1 MySQL licensing policy 18 3 2 Copyrights used by MySQL o 19 3 2 1 Possible future copyright changes 20 3 3 Distributing MySQL commercially 21 3 4 Example licensing situations o 22 3 4 1 Selling products that use MySQL o 23 3 4 2 Selling MySQL related services o 24 3 4 3 ISP MySQL services o 25 3 4 4 Running a web server using MySQL 26 3 5 MySQL licensing and support costs o 27 3 5 1 Payment information o 28 3 5 2 Contact information 29 3 6 Types of commercial support o 30 3 6 1 Basic email support o 31 3 6 2 Extended email support o 32 3 6 3 Login support o 33 3 6 4 Extended login support 34 4 Installing MySQL 35 4 1 How to get MySQL 36 4 2 Operating systems supported by MySQL 37 4 3 Which MySQL version to use 38 4 4 How and when updates are released 39 4 5 Installation layouts 40 4 6 Installing a MySQL binary distribution o 41 4 6 1 Linux RPM notes o 42 4 6 2 Building client programs o 43 4 6 3 System specific issues 44 4 6 3 1 Linux notes 45 4 6 3 2 HP UX notes 46 4 7 Installing a MySQL source distribution o 47 4 7 1 Quick installation overview o 48 4 7 2 Applying patches o 49 4 7 3 Typical configure options 50 4 8 Problems compiling 51 4 9 MIT pthreads notes 52 4 10 Perl installation comments o 53 4 10 1 Installing Perl on Unix o 54 4 10 2 Installing ActiveState Perl on Win32 o 55 4 10 3 Installing the MySQL Perl distribution on Win32 o 56 4 10 4 Problems using the Perl DBI DBD interface 57 4 11 System specific issues o 58 4 11 1 Solaris notes o 59 4 11 2 Solaris 2 7 notes o 60 4 11 3 Solaris x86 notes o 61 4 11 4 SunOS 4 notes o 62 4 11 5 Linux notes all Linux versions 63 4 11 5 1 Linux x86 notes 64 4 11 5 2 RedHat 5 0 notes 65 4 11 5 3 RedHat 5 1 notes 66 4 11 5 4 Linux SPARC notes 67 4 11 5 5 Linux Alpha notes 68 4 11 5 6 MkLinux notes o 69 4 11 6 Alpha DEC Unix notes o 70 4 11 7 Alpha DEC OSF1 notes o 71 4 11 8 SGI Irix notes o 72 4 11 9 FreeBSD notes 73 4 11 9 1 FreeBSD 3 0 notes o 74 4 11 10 BSD OS notes 75 4 11 10 1 BSD OS 2 x notes 76 4 11 10 2 BSD OS 3 x notes 77 4 11 10 3 BSD OS 4 x notes o 78 4 11 11 SCO notes o 79 4 11 12 SCO Unixware 7 0 notes o 80 4 11 13 IBM AIX notes o 81 4 11 14 HP UX notes 82 4 12 Win32 notes o 83 4 12 1 Installing MySQL on Win32 o 84 4 12 2 Starting MySQL on Win95 Win98 o 85 4 12 3 Starting MySQL on NT o 86 4 12 4 Running MySQL on Win32 o 87 4 12 5 Connecting to a remote MySQL from Win32 with SSH o 88 4 12 6 MySQL Win32 compared to Unix MySQL 89 4 13 OS 2 notes 90 4 14 TcX binaries 91 4 15 Post installation setup and testing o 92 4 15 1 Problems running mysql install db o 93 4 15 2 Problems starting the MySQL server o 94 4 15 3 Starting and stopping MySQL automatically o 95 4 15 4 Option files 96 4 16 Is there anything special to do when upgrading downgrading MySQL o 97 4 16 1 Upgrading from a 3 22 version to 3 23 o 98 4 16 2 Upgrading from a 3 21 version to 3 22 o 99 4 16 3 Upgrading from a 3 20 version to 3 21 o 100 4 16 4 Upgrading to another architecture 101 5 How standards compatible is MySQL 102 5 1 MySQL extensions to ANSI SQL92 103 5 2 MySQL differences compared to ANSI SQL92 104 5 3 Functionality missing from MySQL o 105 5 3 1 Sub selects o 106 5 3 2 SELECT INTO TABLE o 107 5 3 3 Transactions o 108 5 3 4 Stored procedures and triggers o 109 5 3 5 Foreign Keys 110 5 3 5 1 Reasons NOT to use foreign keys o 111 5 3 6 Views o 112 5 3 7 as the start of a comment 113 5 4 What standards does MySQL follow 114 5 5 How to cope without COMMIT ROLLBACK 115 6 The MySQL access privilege system 116 6 1 What the privilege system does 117 6 2 MySQL user names and passwords 118 6 3 Connecting to the MySQL server 119 6 4 Keeping your password secure 120 6 5 Privileges provided by MySQL 121 6 6 How the privilege system works 122 6 7 Access control stage 1 Connection verification 123 6 8 Access control stage 2 Request verification 124 6 9 When privilege changes take effect 125 6 10 Setting up the initial MySQL privileges 126 6 11 Adding new user privileges to MySQL 127 6 12 How to set up passwords 128 6 13 Causes of Access denied errors 129 6 14 How to make MySQL secure against crackers 130 7 MySQL language reference 131 7 1 Literals how to write strings and numbers o 132 7 1 1 Strings o 133 7 1 2 Numbers o 134 7 1 3 NULL values o 135 7 1 4 Database table index column and alias names 136 7 1 4 1 Case sensitivity in names 137 7 2 Column types o 138 7 2 1 Column type storage requirements o 139 7 2 5 Numeric types o 140 7 2 6 Date and time types 141 7 2 6 1 Y2K issues and date types 142 7 2 6 2 The DATETIME DATE and TIMESTAMP types 143 7 2 6 3 The TIME type 144 7 2 6 4 The YEAR type o 145 7 2 7 String types 146 7 2 7 1 The CHAR and VARCHAR types 147 7 2 7 2 The BLOB and TEXT types 148 7 2 7 3 The ENUM type 149 7 2 7 4 The SET type o 150 7 2 8 Choosing the right type for a column o 151 7 2 9 Column indexes o 152 7 2 10 Multiple column indexes o 153 7 2 11 Using column types from other database engines 154 7 3 Functions for use in SELECT and WHERE clauses o 155 7 3 1 Grouping functions o 156 7 3 2 Normal arithmetic operations o 157 7 3 3 Bit functions o 158 7 3 4 Logical operations o 159 7 3 5 Comparison operators o 160 7 3 6 String comparison functions o 161 7 3 7 Cast operators o 162 7 3 8 Control flow functions o 163 7 3 9 Mathematical functions o 164 7 3 10 String functions o 165 7 3 11 Date and time functions o 166 7 3 12 Miscellaneous functions o 167 7 3 13 Functions for use with GROUP BY clauses 168 7 4 CREATE DATABASE syntax 169 7 5 DROP DATABASE syntax 170 7 6 CREATE TABLE syntax o 171 7 6 1 Silent column specification changes 172 7 7 ALTER TABLE syntax 173 7 8 OPTIMIZE TABLE syntax 174 7 9 DROP TABLE syntax 175 7 10 DELETE syntax 176 7 11 SELECT syntax 177 7 12 JOIN syntax 178 7 13 INSERT syntax 179 7 14 REPLACE syntax 180 7 15 LOAD DATA INFILE syntax 181 7 16 UPDATE syntax 182 7 17 USE syntax 183 7 18 FLUSH syntax clearing caches 184 7 19 KILL syntax 185 7 20 SHOW syntax Get information about tables columns 186 7 21 EXPLAIN syntax Get information about a SELECT 187 7 22 DESCRIBE syntax Get information about columns 188 7 23 LOCK TABLES UNLOCK TABLES syntax 189 7 24 SET OPTION syntax 190 7 25 GRANT and REVOKE syntax 191 7 26 CREATE INDEX syntax 192 7 27 DROP INDEX syntax 193 7 28 Comment syntax 194 7 29 CREATE FUNCTION DROP FUNCTION syntax 195 7 30 Is MySQL picky about reserved words 196 8 MySQL Tutorial 197 8 1 Connecting to and disconnecting from the server 198 8 2 Entering queries 199 8 3 Creating and using a database o 200 8 3 1 Creating and selecting a database o 201 8 3 2 Creating a table o 202 8 3 3 Loading data into a table o 203 8 3 4 Retrieving information from a table 204 8 3 4 1 Selecting all data 205 8 3 4 2 Selecting particular rows 206 8 3 4 3 Selecting particular columns 207 8 3 4 4 Sorting rows 208 8 3 4 5 Date calculations 209 8 3 4 6 Working with NULL values 210 8 3 4 7 Pattern matching 211 8 3 4 8 Counting rows o 212 8 3 5 Using more than one table 213 8 4 Getting information about databases and tables 214 8 5 Using mysql in batch mode 215 8 6 Queries from twin project o 216 8 6 1 Find all non distributed twins o 217 8 6 2 Show a table on twin pair status 218 9 MySQL Server functions 219 9 1 What languages are supported by MySQL o 220 9 1 1 The character set used for data and sorting o 221 9 1 2 Adding a new character set o 222 9 1 3 Multi byte character support 223 9 2 The update log 224 9 3 How big MySQL tables can be 225 10 Getting maximum performance from MySQL 226 10 1 Tuning server parameters 227 10 2 How MySQL uses memory 228 10 3 How compiling and linking affects the speed of MySQL 229 10 4 How MySQL uses indexes 230 10 5 How MySQL optimizes WHERE clauses 231 10 6 How MySQL optimizes LEFT JOIN 232 10 7 How MySQL opens and closes tables o 233 10 7 1 Drawbacks of creating large numbers of tables in a database 234 10 8 Why so many open tables 235 10 9 Using symbolic links for databases and tables 236 10 10 How MySQL locks tables 237 10 11 How to arrange a table to be as fast small as possible 238 10 12 Table locking issues 239 10 13 Factors affecting the speed of INSERT statements 240 10 14 Factors affecting the speed of DELETE statements 241 10 15 How do I get MySQL to run at full speed 242 10 16 What are the different row formats Or when should VARCHAR CHAR be used 243 10 17 MySQL table types 244 11 The MySQL benchmark suite 245 12 MySQL Utilites 246 12 1 Overview of the different MySQL programs 247 12 2 Administering a MySQL server 248 12 3 Dumping the structure and data from MySQL databases and tables 249 12 4 Importing data from text files 250 12 5 The MySQL compressed read only table generator 251 13 Maintaining a MySQL installation 252 13 1 Using isamchk for table maintenance and crash recovery o 253 13 1 1 isamchk invocation syntax o 254 13 1 2 isamchk memory usage 255 13 2 Setting up a table maintenance regime 256 13 3 Getting information about a table 257 13 4 Using isamchk for crash recovery o 258 13 4 1 How to check tables for errors o 259 13 4 2 How to repair tables o 260 13 4 3 Table optimization 261 13 5 Log file maintenance 262 14 Adding new functions to MySQL 263 14 1 Adding a new user definable function o 264 14 1 1 UDF calling sequences o 265 14 1 2 Argument processing o 266 14 1 3 Return values and error handling o 267 14 1 4 Compiling and installing user definable functions 268 14 2 Adding a new native function 269 15 Adding new procedures to MySQL 270 15 1 Procedure analyse 271 15 2 Writing a procedure 272 16 MySQL ODBC Support 273 16 1 Operating systems supported by MyODBC 274 16 2 How to report problems with MyODBC 275 16 3 Programs known to work with MyODBC 276 16 4 How to fill in the various fields in the ODBC administrator program 277 16 5 How to get the value of an AUTO INCREMENT column in ODBC 278 17 Problems and common errors 279 17 1 What to do if MySQL keeps crashing 280 17 2 Some common errors when using MySQL o 281 17 2 1 MySQL server has gone away error o 282 17 2 2 Can t connect to local MySQL server error o 283 17 2 3 Host is blocked error o 284 17 2 4 Out of memory error o 285 17 2 5 Packet too large error o 286 17 2 6 The table is full error o 287 17 2 7 Commands out of sync error in client o 288 17 2 8 Ignoring user error o 289 17 2 9 Table xxx doesn t exist error 290 17 3 How MySQL handles a full disk 291 17 4 How to run SQL commands from a text file 292 17 5 Where MySQL stores temporary files 293 17 6 How to protect tmp mysql sock from being deleted 294 17 7 Access denied error 295 17 8 How to run MySQL as a normal user 296 17 9 Problems with file permissions 297 17 10 File not found 298 17 11 Problems using DATE columns 299 17 12 Timezone problems 300 17 13 Case sensitivity in searches 301 17 14 Problems with NULL values 302 17 15 Problems with alias 303 17 16 Deleting rows from related tables 304 17 17 Solving problems with no matching rows 305 17 18 Problems with ALTER TABLE 306 17 19 How to change the order of columns in a table 307 18 Solving some common problems with MySQL 308 18 1 Database replication 309 18 2 Database backups 310 18 3 Running multiple MySQL servers on the same machine 311 19 MySQL client tools and APIs 312 19 1 MySQL C API 313 19 2 C API datatypes 314 19 3 C API function overview 315 19 4 C API function descriptions o 316 19 4 1 mysql affected rows o 317 19 4 2 mysql close o 318 19 4 3 mysql connect o 319 19 4 4 mysql create db o 320 19 4 5 mysql data seek o 321 19 4 6 mysql debug o 322 19 4 7 mysql drop db o 323 19 4 8 mysql dump debug info o 324 19 4 9 mysql eof o 325 19 4 10 mysql errno o 326 19 4 11 mysql error o 327 19 4 12 mysql escape string o 328 19 4 13 mysql fetch field o 329 19 4 14 mysql fetch fields o 330 19 4 15 mysql fetch field direct o 331 19 4 16 mysql fetch lengths o 332 19 4 17 mysql fetch row o 333 19 4 18 mysql field count o 334 19 4 19 mysql field seek o 335 19 4 20 mysql field tell o 336 19 4 21 mysql free result o 337 19 4 22 mysql get client info o 338 19 4 23 mysql get host info o 339 19 4 24 mysql get proto info o 340 19 4 25 mysql get server info o 341 19 4 26 mysql info o 342 19 4 27 mysql init o 343 19 4 28 mysql insert id o 344 19 4 29 mysql kill o 345 19 4 30 mysql list dbs o 346 19 4 31 mysql list fields o 347 19 4 32 mysql list processes o 348 19 4 33 mysql list tables o 349 19 4 34 mysql num fields o 350 19 4 35 mysql num rows o 351 19 4 36 mysql options o 352 19 4 37 mysql ping o 353 19 4 38 mysql query o 354 19 4 39 mysql real connect o 355 19 4 40 mysql real query o 356 19 4 41 mysql reload o 357 19 4 42 mysql row seek o 358 19 4 43 mysql row tell o 359 19 4 44 mysql select db o 360 19 4 45 mysql shutdown o 361 19 4 46 mysql stat o 362 19 4 47 mysql store result o 363 19 4 48 mysql thread id o 364 19 4 49 mysql use result o 365 19 4 50 Why is it that after mysql query returns success mysql store result sometimes returns NULL o 366 19 4 51 What results can I get from a query o 367 19 4 52 How can I get the unique ID for the last inserted row o 368 19 4 53 Problems linking with the C API o 369 19 4 54 How to make a thread safe client 370 19 5 MySQL Perl API o 371 19 5 1 DBI with DBD mysql o 372 19 5 2 The DBI interface o 373 19 5 3 More DBI DBD information 374 19 6 MySQL Eiffel wrapper 375 19 7 MySQL Java connectivity JDBC 376 19 8 MySQL PHP API 377 19 9 MySQL C APIs 378 19 10 MySQL Python APIs 379 19 11 MySQL TCL APIs 380 20 How MySQL compares to other databases 381 20 1 How MySQL compares to mSQL o 382 20 1 1 How to convert mSQL tools for MySQL o 383 20 1 2 How mSQL and MySQL client server communications protocols differ o 384 20 1 3 How mSQL 2 0 SQL syntax differs from MySQL 385 20 2 How MySQL compares to PostgreSQL 386 A Some MySQL users 387 A 1 Some Web search engines 388 A 2 Some Information search engines concentrated on some area 389 A 3 Some Domain Internet Web and related services 390 A 4 Web sites that use PHP and MySQL 391 A 5 Uncategorized pages 392 A 6 Some MySQL consultants 393 A 7 Programming 394 B Contributed programs 395 B 1 API s 396 B 2 Clients 397 B 3 Web tools 398 B 4 Authentication tools 399 B 5 Converters 400 B 6 Using MySQL with other products 401 B 7 Useful tools 402 B 8 Uncategorized 403 C Contributors to MySQL 404 D MySQL change history 405 D 1 Changes in release 3 23 x Not released yet o 406 D 1 1 Changes in release 3 23 0 407 D 2 Changes in release 3 22 x o 408 D 2 1 Changes in release 3 22 25 o 409 D 2 2 Changes in release 3 22 24 o 410 D 2 3 Changes in release 3 22 23 o 411 D 2 4 Changes in release 3 22 22 o 412 D 2 5 Changes in release 3 22 21 o 413 D 2 6 Changes in release 3 22 20 o 414 D 2 7 Changes in release 3 22 19 o 415 D 2 8 Changes in release 3 22 18 o 416 D 2 9 Changes in release 3 22 17 o 417 D 2 10 Changes in release 3 22 16 o 418 D 2 11 Changes in release 3 22 15 o 419 D 2 12 Changes in release 3 22 14 o 420 D 2 13 Changes in release 3 22 13 o 421 D 2 14 Changes in release 3 22 12 o 422 D 2 15 Changes in release 3 22 11 o 423 D 2 16 Changes in release 3 22 10 o 424 D 2 17 Changes in release 3 22 9 o 425 D 2 18 Changes in release 3 22 8 o 426 D 2 19 Changes in release 3 22 7 o 427 D 2 20 Changes in release 3 22 6 o 428 D 2 21 Changes in release 3 22 5 o 429 D 2 22 Changes in release 3 22 4 o 430 D 2 23 Changes in release 3 22 3 o 431 D 2 24 Changes in release 3 22 2 o 432 D 2 25 Changes in release 3 22 1 o 433 D 2 26 Changes in release 3 22 0 434 D 3 Changes in release 3 21 x o 435 D 3 1 Changes in release 3 21 33 o 436 D 3 2 Changes in release 3 21 32 o 437 D 3 3 Changes in release 3 21 31 o 438 D 3 4 Changes in release 3 21 30 o 439 D 3 5 Changes in release 3 21 29 o 440 D 3 6 Changes in release 3 21 28 o 441 D 3 7 Changes in release 3 21 27 o 442 D 3 8 Changes in release 3 21 26 o 443 D 3 9 Changes in release 3 21 25 o 444 D 3 10 Changes in release 3 21 24 o 445 D 3 11 Changes in release 3 21 23 o 446 D 3 12 Changes in release 3 21 22 o 447 D 3 13 Changes in release 3 21 21a o 448 D 3 14 Changes in release 3 21 21 o 449 D 3 15 Changes in release 3 21 20 o 450 D 3 16 Changes in release 3 21 19 o 451 D 3 17 Changes in release 3 21 18 o 452 D 3 18 Changes in release 3 21 17 o 453 D 3 19 Changes in release 3 21 16 o 454 D 3 20 Changes in release 3 21 15 o 455 D 3 21 Changes in release 3 21 14b o 456 D 3 22 Changes in release 3 21 14a o 457 D 3 23 Changes in release 3 21 13 o 458 D 3 24 Changes in release 3 21 12 o 459 D 3 25 Changes in release 3 21 11 o 460 D 3 26 Changes in release 3 21 10 o 461 D 3 27 Changes in release 3 21 9 o 462 D 3 28 Changes in release 3 21 8 o 463 D 3 29 Changes in release 3 21 7 o 464 D 3 30 Changes in release 3 21 6 o 465 D 3 31 Changes in release 3 21 5 o 466 D 3 32 Changes in release 3 21 4 o 467 D 3 33 Changes in release 3 21 3 o 468 D 3 34 Changes in release 3 21 2 o 469 D 3 35 Changes in release 3 21 0 470 20 3 Changes in release 3 20 x o 471 D 3 36 Changes in release 3 20 18 o 472 D 3 37 Changes in release 3 20 17 o 473 D 3 38 Changes in release 3 20 16 o 474 D 3 39 Changes in release 3 20 15 o 475 D 3 40 Changes in release 3 20 14 o 476 D 3 41 Changes in release 3 20 13 o 477 D 3 42 Changes in release 3 20 11 o 478 D 3 43 Changes in release 3 20 10 o 479 D 3 44 Changes in release 3 20 9 o 480 D 3 45 Changes in release 3 20 8 o 481 D 3 46 Changes in release 3 20 7 o 482 D 3 47 Changes in release 3 20 6 o 483 D 3 48 Changes in release 3 20 3 o 484 D 3 49 Changes in release 3 20 0 485 D 4 Changes in release 3 19 x o 486 D 4 1 Changes in release 3 19 5 o 487 D 4 2 Changes in release 3 19 4 o 488 D 4 3 Changes in release 3 19 3 489 E Known errors and design deficiencies in MySQL 490 F List of things we want to add to MySQL in the future The TODO 491 F 1 Things that must done in the real near future 492 F 2 Things that have to be done sometime 493 F 3 Some things we don t have any plans to do 494 G Comments on porting to other systems 495 G 1 Debugging a MySQL server 496 G 2 Debugging a MySQL client 497 G 3 Comments about RTS threads 498 G 4 Differences between different thread packages 499 H Description of MySQL regular expression syntax 500 I What is Unireg 501 J The MySQL server license for non Microsoft operating systems 502 K The MySQL license for Microsoft operating systems 503 SQL command type and function index 504 Concept Index This document was generated on 8 July 1999 using the 505 texi2html translator version 1 52 extended by davida detron se MySQL Reference Manual for version 3 22 25 mysql5 gif 1 1 General Information about MySQL This is the MySQL reference manual it documents MySQL version 3 22 25 MySQL is a very fast multi threaded multi user and robust SQL Structured Query Language database server For Unix and OS 2 platforms MySQL is basically free for Microsoft platforms you must get a MySQL license after a trial time of 30 days See section 2 3 MySQL licensing and support 3 The MySQL home page provides the latest information about MySQL For a discussion of MySQL s capabilities see section 4 1 4 The main features of MySQL For installation instructions see section 5 4 Installing MySQL For tips on porting MySQL to new machines or operating systems see section 6 G Comments on porting to other systems For information about upgrading from a 3 21 release see section 7 4 16 2 Upgrading from a 3 21 version to 3 22 For a tutorial introduction to MySQL see section 8 8 MySQL Tutorial For examples of SQL and benchmarking information see the benchmarking directory For source distributions this is the bench directory For binary distributions this is the sql bench directory For a history of new features and bug fixes see section 9 D MySQL change history For a list of currently known bugs and misfeatures see section 10 E Known errors and design deficiencies in MySQL For future plans see section 11 F List of things we want to add to MySQL in the future The TODO For a list of all the contributors to this product see section 12 C Contributors to MySQL IMPORTANT Send bug error reports questions and comments to the mailing list at For source distributions the mysqlbug script can be found in the scripts directory For binary distributions mysqlbug can be found in the bin directory If you have any suggestions concerning additions or corrections to this manual please send them to the MySQL mailing list 13 mysql lists mysql com with the following subject line documentation suggestion Insert Topic Here See section 14 2 1 The MySQL mailing lists 15 1 1 What is MySQL MySQL is a true multi user multi threaded SQL database server SQL is the most popular database language in the world MySQL is a client server implementation that consists of a server daemon mysqld and many different client programs and libraries SQL is a standardized language that makes it easy to store update and access information For example you can use SQL to retrieve product information and store customer information for a web site MySQL is also fast and flexible enough to allow you to store logs and pictures in it The main goals of MySQL are speed robustness and ease of use MySQL was originally developed because we at TcX needed a SQL server that could handle very large databases an order of magnitude faster than what any database vendor could offer to us We have now been using MySQL since 1996 in an environment with more than 40 databases containing 10 000 tables of which more than 500 have more than 7 million rows This is about 100 gigabytes of mission critical data The base upon which MySQL is built is a set of routines that have been used in a highly demanding production environment for many years Although MySQL is still under development it already offers a rich and highly useful function set The official way to pronounce MySQL is My Ess Que Ell Not MY SEQUEL 16 1 2 About this manual This manual is currently available in Texinfo plain text Info HTML PostScript and PDF versions Because of their size PostScript and PDF versions are not included with the main MySQL distribution but are available for separate download at 17 http www mysql com The primary document is the Texinfo file The HTML version is produced automatically with a modified version of texi2html The plain text and Info versions are produced with makeinfo The Postscript version is produced using texi2dvi and dvips The PDF version is produced with the Ghostscript utility ps2pdf This manual is written and maintained by David Axmark Michael Monty Widenius Paul DuBois and Kim Aldale For other contributors see section 18 C Contributors to MySQL 19 1 2 1 Conventions used in this manual This manual uses certain typographical conventions constant Constant width font is used for command names and options SQL statements database table and column names C and Perl code and environment variables Example To see how mysqladmin works invoke it with the help option filename Constant width font with surrounding quotes is used for filenames and pathnames Example The distribution is installed under the usr local directory c Constant width font with surrounding quotes is also used to indicate character sequences Example To specify a wildcard use the character italic Italic font is used for emphasis like this boldface Boldface font is used for access privilege names e g do not grant the process privilege lightly and to convey especially strong emphasis When commands are shown that are meant to be executed by a particular program the program is indicated by the prompt shown with the command For example shell indicates a command that you execute from your login shell and mysql indicates a command that you execute from the mysql client shell type a shell command here mysql type a mysql command here Shell commands are shown using Bourne shell syntax If you are using a csh style shell you may need to issue commands slightly differently For example the sequence to set an environment variable and run a command looks like this in Bourne shell syntax shell VARNAME value some command For csh you would execute the sequence like this shell setenv VARNAME value shell some command Database table and column names often must be substituted into commands To indicate that such substitution is necessary this manual uses db name tbl name and col name For example you might see a statement like this mysql SELECT col name FROM db name tbl name This means that if you were to enter a similar statement you would supply your own database table and column names perhaps like this mysql SELECT author name FROM biblio db author list SQL statements may be written in uppercase or lowercase When this manual shows a SQL statement uppercase is used for particular keywords if those keywords are under discussion to emphasize them and lowercase is used for the rest of the statement So you might see the following in a discussion of the SELECT statement mysql SELECT count FROM tbl name On the other hand in a discussion of the COUNT function the statement would be written like this mysql select COUNT from tbl name If no particular emphasis is intended all keywords are written uniformly in uppercase In syntax descriptions square brackets and are used to indicate optional words or clauses DROP TABLE IF EXISTS tbl name When a syntax element consists of a number of alternatives the alternatives are separated by vertical bars When one member from a set of choices may be chosen the alternatives are listed within square brackets When one member from a set of choices must be chosen the alternatives are listed within braces and TRIM BOTH LEADING TRAILING remstr FROM str DESCRIBE DESC tbl name col name wild 20 1 3 History of MySQL We once started off with the intention of using mSQL to connect to our tables using our own fast low level ISAM routines However after some testing we came to the conclusion that mSQL was not fast enough or flexible enough for our needs This resulted in a new SQL interface to our database but with almost the same API interface as mSQL This API was chosen to ease porting of third party code The derivation of the name MySQL is not perfectly clear Our base directory and a large number of our libraries and tools have had the prefix my for well over 10 years However Monty s daughter some years younger is also named My So which of the two gave its name to MySQL is still a mystery even for us 21 1 4 The main features of MySQL The following list describes some of the important characteristics of MySQL Fully multi threaded using kernel threads That means it easily can use multiple CPUs if available C C Eiffel Java Perl PHP Python and TCL APIs See section 22 19 MySQL client tools and APIs Works on many different platforms See section 23 4 2 Operating systems supported by MySQL Many column types signed unsigned integers 1 2 3 4 and 8 bytes long FLOAT DOUBLE CHAR VARCHAR TEXT BLOB DATE TIME DATETIME TIMESTAMP YEAR SET and ENUM types See section 24 7 2 Column types Very fast joins using an optimized one sweep multi join Full operator and function support in the SELECT and WHERE parts of queries Example mysql SELECT CONCAT first name last name FROM tbl name WHERE income dependents 10000 AND age 30 SQL functions are implemented through a highly optimized class library and should be as fast as they can get Usually there shouldn t be any memory allocation at all after query initialization Full support for SQL GROUP BY and ORDER BY clauses Support for group functions COUNT AVG STD SUM MAX and MIN Support for LEFT OUTER JOIN with ANSI SQL and ODBC syntax You can mix tables from different databases in the same query as of version 3 22 A privilege and password system which is very flexible and secure and which allows host based verification Passwords are secure since all password traffic when connecting to a server is encrypted ODBC Open DataBase Connectivity for Windows95 with source All ODBC 2 5 functions and many others You can for example use Access to connect to your MySQL server See section 25 16 MySQL ODBC Support Very fast B tree disk tables with index compression 16 indexes per table are allowed Each index may consist of 1 to 15 columns or parts of columns The maximum index length is 256 bytes this may be changed when compiling MySQL An index may use a prefix of a CHAR or VARCHAR field Fixed length and variable length records In memory hash tables which are used as temporary tables Handles large databases We are using MySQL with some databases that contain 50 000 000 records All columns have default values You can use INSERT to insert a subset of a table s columns those columns that are not explicitly given values are set to their default values Uses GNU Automake Autoconf and libtool for portability Written in C and C Tested with a broad range of different compilers A very fast thread based memory allocation system No memory leaks Tested with a commercial memory leakage detector purify Includes isamchk a very fast utility for table checking optimization and repair See section 26 13 Maintaining a MySQL installation Full support for the ISO 8859 1 Latin1 character set For example the Scandinavian characters ringaccent a a and o are allowed in table and column names All data are saved in ISO 8859 1 Latin1 format All comparisons for normal string columns are case insensitive Sorting is done according to the ISO 8859 1 Latin1 character set the Swedish way at the moment It is possible to change this in the source by adding new sort order arrays To see an example of very advanced sorting look at the Czech sorting code MySQL supports many different character sets that can be specified at compile time Aliases on tables and columns as in the SQL92 standard DELETE INSERT REPLACE and UPDATE return how many rows were changed affected Function names do not clash with table or column names For example ABS is a valid column name The only restriction is that for a function call no spaces are allowed between the function name and the that follows it See section 27 7 30 Is MySQL picky about reserved words All MySQL programs can be invoked with the help or options to obtain online assistance The server can provide error messages to clients in many languages See section 28 9 1 What languages are supported by MySQL Clients connect to the MySQL server using TCP IP connections or Unix sockets or named pipes under NT The MySQL specific SHOW command can be used to retrieve information about databases tables and indexes The EXPLAIN command can be used to determine how the optimizer resolves a query 29 1 5 How stable is MySQL This section addresses the questions how stable is MySQL and can I depend on MySQL in this project Here we will try to clarify some issues and to answer some of the more important questions that seem to concern many people This section has been put together from information gathered from the mailing list which is very active in reporting bugs At TcX MySQL has worked without any problems in our projects since mid 1996 When MySQL was released to a wider public we noticed that there were some pieces of untested code that were quickly found by the new users who made queries in a manner different than our own Each new release has had fewer portability problems than the previous one even though each has had many new features and we hope that it will be possible to label one of the next releases stable Each release of MySQL has been usable and there have been problems only when users start to use code from the gray zones Naturally outside users can t know what the gray zones are this section attempts to indicate those that are currently known The descriptions deal with the 3 22 x version of MySQL All known and reported bugs are fixed in the latest version with the exception of the bugs listed in the bugs section which are things that are design related See section 30 E Known errors and design deficiencies in MySQL MySQL is written in multiple layers and different independent modules These modules are listed below with an indication of how well tested each of them is The ISAM table handler Stable This manages storage and retrieval of all data In all MySQL releases there hasn t been a single reported bug in this code The only known way to get a corrupted table is to kill the server in the middle of an update Even that is unlikely to destroy any data beyond rescue because all data are flushed to disk between each query There hasn t been a single bug report about lost data because of bugs in MySQL either The parser and lexical analyser Stable There hasn t been a single reported bug in this system for a long time The C client code Stable No known problems In early 3 20 releases there were some limitations in the send receive buffer size As of 3 21 x the buffer size is now dynamic up to a default of 24M Standard client programs Stable These include mysql mysqladmin and mysqlshow mysqldump and mysqlimport Basic SQL Stable The basic SQL function system and string classes and dynamic memory handling Not a single reported bug in this system Query optimizer Gamma Range optimizer Stable Join optimizer Stable Locking Gamma This is very system dependent On some systems there are big problems using standard OS locking fcntl In these cases you should run the MySQL daemon with the skip locking flag Problems are known to occur on some Linux systems and on SunOS when using NFS mounted file systems Linux threads Gamma The only problem found has been with the fcntl call which is fixed by using the skip locking option to mysqld Some people have reported lockup problems with the 0 5 release Solaris 2 5 pthreads Stable We use this for all our production work MIT pthreads Other systems Gamma There have been no reported bugs since 3 20 15 and no known bugs since 3 20 16 On some systems there is a misfeature where some operations are quite slow a 1 20 second sleep is done between each query Of course MIT pthreads may slow down everything a bit but index based SELECT statements are usually done in one time frame so there shouldn t be a mutex locking thread juggling Other thread implementions Alpha Beta The ports to other systems are still very new and may have bugs possibly in MySQL but most often in the thread implementation itself LOAD DATA INSERT SELECT Stable Some people have thought they have found bugs here but these usually have turned out to be misunderstandings Please check the manual before reporting problems ALTER TABLE Gamma Small changes in 3 22 12 DBD Gamma Now maintained by Jochen Wiedmann mysqlaccess Gamma Written and maintained by Yves Carlier GRANT Beta Big changes made in MySQL 3 22 12 MyODBC uses ODBC SDK 2 5 Beta It seems to work well with some programs TcX provides email support for paying customers but the MySQL mailing list usually provides answers to common questions Bugs are usually fixed right away with a patch for serious bugs there is almost always a new release 31 1 6 Year 2000 compliance MySQL itself has no problems with Year 2000 Y2K compliance MySQL uses Unix time functions and has no problems with dates until 2069 all 2 digit years are regarded to be in the range 1970 to 2069 which means that if you store 01 in a year column MySQL treats it as 2001 All MySQL date functions are stored in one file sql time cc and coded very carefully to be year 2000 safe In MySQL 3 22 and later versions the new YEAR column type can store years 0 and 1901 to 2155 in 1 byte and display them using 2 or 4 digits You may run into problems with applications that use MySQL in a way that is not Y2K safe For example many old applications store or manipulate years using 2 digit values which are ambiguous rather than 4 digit values This problem may be compounded by applications that use values such as 00 or 99 as missing value indicators Unfortunately these problems may be difficult to fix since different applications may be written by different programmers each of whom may use a different set of conventions and date handling functions Here is a simple demonstration illustrating that MySQL doesn t have any problems with dates until the year 2030 mysql DROP TABLE IF EXISTS y2k mysql CREATE TABLE y2k date date date time datetime time stamp timestamp mysql INSERT INTO y2k VALUES 1998 12 31 1998 12 31 23 59 59 1998123123595 9 mysql INSERT INTO y2k VALUES 1999 01 01 1999 01 01 00 00 00 1999010100000 0 mysql INSERT INTO y2k VALUES 1999 09 09 1999 09 09 23 59 59 1999090923595 9 mysql INSERT INTO y2k VALUES 2000 01 01 2000 01 01 00 00 00 2000010100000 0 mysql INSERT INTO y2k VALUES 2000 02 28 2000 02 28 00 00 00 2000022800000 0 mysql INSERT INTO y2k VALUES 2000 02 29 2000 02 29 00 00 00 2000022900000 0 mysql INSERT INTO y2k VALUES 2000 03 01 2000 03 01 00 00 00 2000030100000 0 mysql INSERT INTO y2k VALUES 2000 12 31 2000 12 31 23 59 59 2000123123595 9 mysql INSERT INTO y2k VALUES 2001 01 01 2001 01 01 00 00 00 2001010100000 0 mysql INSERT INTO y2k VALUES 2004 12 31 2004 12 31 23 59 59 2004123123595 9 mysql INSERT INTO y2k VALUES 2005 01 01 2005 01 01 00 00 00 2005010100000 0 mysql INSERT INTO y2k VALUES 2030 01 01 2030 01 01 00 00 00 2030010100000 0 mysql INSERT INTO y2k VALUES 2050 01 01 2050 01 01 00 00 00 2050010100000 0 mysql SELECT FROM y2k date date time time stamp 1998 12 31 1998 12 31 23 59 59 19981231235959 1999 01 01 1999 01 01 00 00 00 19990101000000 1999 09 09 1999 09 09 23 59 59 19990909235959 2000 01 01 2000 01 01 00 00 00 20000101000000 2000 02 28 2000 02 28 00 00 00 20000228000000 2000 02 29 2000 02 29 00 00 00 20000229000000 2000 03 01 2000 03 01 00 00 00 20000301000000 2000 12 31 2000 12 31 23 59 59 20001231235959 2001 01 01 2001 01 01 00 00 00 20010101000000 2004 12 31 2004 12 31 23 59 59 20041231235959 2005 01 01 2005 01 01 00 00 00 20050101000000 2030 01 01 2030 01 01 00 00 00 20300101000000 2050 01 01 2050 01 01 00 00 00 00000000000000 13 rows in set 0 00 sec mysql DROP TABLE y2k This shows that the DATE and DATETIME types are Date Data compliant while the TIMESTAMP type that is used to store the current time has a range up to only 2030 01 01 TIMESTAMP has a range of 1970 to 2030 on 32 bit machines Even though MySQL is Y2K compliant it is your responsibility to provide unambiguous input See section 32 7 2 6 1 Y2K issues and date types for MySQL s rules for dealing with ambiguous date input data data containing 2 digit year values 33 1 7 General SQL information and tutorials This book has been recommended by a several people on the MySQL mailing list Judith S Bowman Sandra L Emerson and Marcy Darnovsky The Practical SQL Handbook Using Structured Query Language Second Edition Addison Wesley ISBN 0 201 62623 3 http www awl com This book has also received some recommendations on the mailing list Martin Gruber Understanding SQL ISBN 0 89588 644 8 Publisher Sybex 510 523 8233 Alameda CA USA A SQL tutorial is available on the net at http www geocities com ResearchTriangle Node 9672 sqltut html SQL in 21 Tagen online book in German language http www mut de leseecke buecher sql inhalt htm 34 1 8 Useful MySQL related links 1 8 1 Web development tools that support MySQL 35 PHP A server side HTML embedded scripting language 36 A JDBC driver for MySQL 37 MySQL PHP demos 38 ForwardSQL HTML interface to manipulate MySQL databases 39 WWW SQL Display database information 40 Minivend A Web shopping cart 41 HeiTML A server side extension of HTML and a 4GL language at the same time 42 Metahtml A Dynamic Programming Language for WWW Applications 43 VelocityGen for Perl and TCL 44 Hawkeye Internet Server Suite 45 Network Database Connection For Linux 46 WDBI Web browser as a universal front end to databases which supports MySQL well 47 WebGroove Script HTML compiler and server side scripting language 48 A server side web site scripting language 49 Visual Basic class generator for Active X 50 How to use MySQL with Coldfusion on Solaris 51 Calistra s ODBC MySQL Administrator 52 Webmerger This CGI tool interprets files and generates dynamic output based on a set of simple tags Ready to run drivers for MySQL and PostgreSQL through ODBC 1 8 2 Web servers with MySQL tools 53 An Apache authentication module 54 The Roxen Challenger Web server 1 8 3 Examples and source 55 Little6 Inc An online contract and job finding site that is powered by MySQL PHP3 and Linux 56 DELECis A tool which makes it very easy to create an automatically generated table documentation They have used MySQL as an example 57 Steve Fambro Uses MySQL and webmerger There is an employee database and a license plate database with all of the registered Utah vehicles over 1 2 million The License plate field is indexed so the searches are instantaneous 58 World Records A search engine for information about music that uses MySQL and PHP 59 Examples using MySQL check Top 10 60 A Contact Database using MySQL and PHP 61 Web based interface and Community Calender with PHP 62 Perl package to generate html from a SQL table structure and for generating SQL statements from an html form 63 Basic telephone database using DBI DBD 64 TmySQL A library to use MySQL with Delphi 65 Installing new Perl modules that require locally installed modules 66 JDBC examples by Daniel K Schneider 67 SQL BNF 68 Object Oriented Concepts Inc CORBA applications with examples in source 69 DBWiz Includes an example of how to manage own cursors in VB 70 Pluribus Pluribus is a free search engine that learns to improve the quality of its results over time Pluribus works by recording which pages a user prefers among those returned for a query A user votes for a page by selecting it Pluribus then uses that knowledge to improve the quality of the results when someone else submits the same or similar query Uses PHP and MySQL 71 Stopbit A technology news site using MySQL and PHP 72 Example scripts at Jokes2000 1 8 4 ODBC related links 73 Popular iODBC Driver Manager now available in Open Source format 74 The FreeODBC Pages 1 8 5 API related links 75 www jppp com Partially implemented TDataset compatible components for MySQL 1 8 6 Other MySQL related links 76 Registry of Web providers who support MySQL 77 Links about using MySQL in Japan Asia 78 Commercial Web defect tracking system 79 PTS Project Tracking System 80 Job and software tracking system 81 Support for BIND The Internet Domain Name Server 82 Full text search engine using MySQL 83 ExportSQL A script to export data from Access95 84 SAL Scientific Applications on Linux MySQL entry 85 A consulting company which mentions MySQL in the right company 86 PMP Computer Solutions Database developers using MySQL and mSQL 87 Airborne Early Warning Association 88 MySQL UDF Registry 1 8 7 SQL and database interfaces 89 KMySQL KMySQL is a database client for KDE that primarily supports MySQL 90 The JDBC database access API 91 MySQL binding to Free Pascal 92 Patch for mSQL TCL 93 EasySQL An ODBC like driver manager 94 A REXX interface to SQL databases 95 TCL interface 96 Example of storing retrieving images with MySQL and CGI 1 8 8 General database links 97 Database Jump Site 98 Homepage of the webdb l Web Databases mailing list 99 Perl DBI DBD modules homepage 100 Cygwin tools MySQL Apache PHP under Win32 101 dbasecentral com Development and distribution of powerful and easy to use database applications and systems 102 Tek Tips Forums Tek Tips Forums are 800 independent peer to peer non commercial support forums for Computer Professionals Features include automatic e mail notification of responses a links library and member confidentiality guaranteed There are also many web pages that use MySQL See section 103 A Some MySQL users Send any additions to this list to MySQL logo somewhere It is okay to have it on a used tools page or something similar to be added 104 2 MySQL mailing lists and how to ask questions or report errors bugs 105 2 1 The MySQL mailing lists To subscribe to the main MySQL mailing list send a message to the electronic mail address 106 mysql subscribe lists mysql com To unsubscribe from the main MySQL mailing list send a message to the electronic mail address 107 mysql unsubscribe lists mysql com Only the address to which you send your messages is significant The subject line and the body of the message are ignored If your reply address is not valid you can specify your address explicitly Adding a hyphen to the subscribe or unsubscribe command word followed by your address with the character in your address replaced by a For example to subscribe john host domain send a message to mysql subscribe john host domain lists mysql com Mail to 108 mysql subscribe lists mysql com or ezmlm mailing list processor Information about ezmlm is available at 109 the ezmlm Website To post a message to the list itself send your message to mysql lists mysql com However please do not send mail about subscribing or unsubscribing to 110 mysql lists mysql com since any mail sent to that address is distributed automatically to thousands of other users Your local site may have many subscribers to 111 mysql lists mysql com If so it may have a local mailing list so that messages sent from lists mysql com to your site are propagated to the local list In such cases please contact your system administrator to be added to or dropped from the local MySQL list The following MySQL mailing lists exist announce This is for announcement of new versions of MySQL and related programs This is a low volume list that we think all MySQL users should be on mysql The main list for general MySQL discussion Please note that some topics are better discussed on the more specialized lists If you post to the wrong list you may not get an answer mysql digest The mysql list in digest form That means you get all individual messages sent as one large mail message once a day java Discussion about MySQL and Java Mostly about the JDBC drivers java digest A digest version of the java list win32 All things concerning MySQL on Microsoft operating systems such as Windows NT win32 digest A digest version of the win32 list myodbc All things concerning connecting to MySQL with ODBC myodbc digest A digest version of the myodbc list msql mysql modules A list about the Perl support in MySQL msql mysql modules digest A digest version of the msql mysql modules list developer A list for people who work on the MySQL code developer digest A digest version of the developer list You subscribe or unsubscribe to all lists in the same way as described above In your subscribe or unsubscribe message just put the appropriate mailing list name rather than mysql For example to subscribe to or unsubscribe from the myodbc list send a message to 112 2 2 Asking questions or reporting bugs Before posting a bug report or question please do the following Start by searching the MySQL online manual at 113 http www mysql com Manual chapter manual toc html We try to keep the manual up to date by updating it frequently with solutions to newly found problems Search the MySQL mailing list archives 114 http www mysql com doc html You can also use 115 http www mysql com search html to search all the web pages including the manual that are located at 116 http www mysql com If you can t find an answer in the manual or the archives check with your local MySQL expert If you still can t find an answer to your question go ahead and read the next section about how to send mail to 117 2 3 How to report bugs or problems Writing a good bug report takes patience but doing it right the first time saves time for us and for you This section will help you write your report correctly so that you don t waste your time doing things that may not help us much or at all We encourage everyone to use the mysqlbug script to generate a bug report or a report about any problem if possible mysqlbug can be found in the scripts directory in the source distribution or for a binary distribution in the bin directory under your MySQL installation directory If you are unable to use mysqlbug you should still include all the necessary information listed in this section The mysqlbug script helps you generate a report by determining much of the following information automatically but if something important is missing please include it with your message Please read this section carefully and make sure that all the information described here is included in your report Remember that it is possible to respond to a message containing too much information but not to one containing too little Often people omit facts because they think they know the cause of a problem and assume that some details don t matter A good principle is if you are in doubt about stating something state it It is a thousand times faster and less troublesome to write a couple of lines more in your report than to be forced to ask again and wait for the answer because you didn t include enough information the first time The most common errors are that people don t indicate the version number of the MySQL distribution they are using or don t indicate what platform they have MySQL installed on including the platform version number This is highly relevant information and in 99 cases out of 100 the bug report is useless without it Very often we get questions like Why doesn t this work for me and then we find that the feature requested wasn t implemented in that MySQL version or that a bug described in a report has been fixed already in newer MySQL versions Sometimes the error is platform dependent in such cases it is next to impossible to fix anything without knowing the operating system and the version number of the platform Remember also to provide information about your compiler if it is related to the problem Often people find bugs in compilers and think the problem is MySQL related Most compilers are under development all the time and become better version by version too To determine whether or not your problem depends on your compiler we need to know what compiler is used Note that every compiling problem should be regarded as a bug report and reported accordingly It is most helpful when a good description of the problem is included in the bug report That is a good example of all the things you did that led to the problem and the problem itself exactly described The best reports are those that include a full example showing how to reproduce the bug or problem If a program produces an error message it is very important to include the message in your report If we try to search for something from the archives using programs it is better that the error message reported exactly matches the one that the program produces Even the case sensitivity should be observed You should never try to remember what the error message was instead copy and paste the entire message into your report Please include the following information in your report The version number of the MySQL distribution you are using for example MySQL 3 22 22 You can find out which version you are running by executing mysqladmin version mysqladmin can be found in the bin directory under your MySQL installation directory The manufacturer and model of the machine you are working on The operating system name and version For most operating systems you can get this information by executing the Unix command uname a Sometimes the amount of memory real and virtual is relevant If in doubt include these values If you are using a source distribution of MySQL the name and version number of the compiler used is needed If you have a binary distribution the distribution name is needed If the problem occurs during compilation include the exact error message s and also a few lines of context around the offending code in the file where the error occurred If any database table is related to the problem include the output from mysqldump no data db name tbl name1 tbl name2 This is very easy to do and is a powerful way to get information about any table in a database that will help us create a situation matching the one you have For speed related bugs or problems with SELECT statements you should always include the output of EXPLAIN SELECT and at least the number of rows that the SELECT statement produces The more information you give about your situation the more likely it is that someone can help you For example the following is an example of a very good bug report it should of course be posted with the mysqlbug script Example run under the mysql command line tool mysql SHOW VARIABLES mysql EXPLAIN SELECT output from EXPLAIN mysql FLUSH STATUS mysql SELECT A short version of the output from SELECT including the time taken to run the query mysql SHOW STATUS output from SHOW STATUS If a bug or problem occurs while running MySQL try to provide an input script that will reproduce the anomaly This script should include any necessary source files The more closely the script can reproduce your situation the better If you can t provide a script you should at least include the output from mysqladmin variables extended status processlist in your mail to provide some information of how your system is performing If you think that MySQL produces a strange result from a query include not only the result but also your opinion of what the result should be and an account describing the basis for your opinion When giving an example of the problem it s better to use the variable names table names etc that exist in your actual situation than to come up with new names The problem could be related to the name of a variable table etc These cases are rare perhaps but it is better to be safe than sorry After all it should be easier for you to provide an example that uses your actual situation and it is by all means better for us In case you have data you don t want to show to others you can use ftp to transfer it to 118 ftp www mysql com pub mysql secret If the data are really top secret and you don t want to show them even to us then go ahead and provide an example using other names but please regard this as the last choice Include all the options given to the relevant programs if possible For example indicate the options that you use when you start the mysqld daemon and that you use to run any MySQL client programs The options to programs like mysqld and mysql and to the configure script are often keys to answers and very relevant It is never a bad idea to include them anyway If you use any modules such as Perl or PHP please include the version number s of those as well If you can t produce a test case in a few rows or if the test table is too big to be mailed to the mailing list more than 10 rows you should dump your tables using mysqldump and create a README file that describes your problem Create a compressed archive of your files using tar and gzip or zip and use ftp to transfer the archive to 119 ftp www mysql com pub mysql secret Then send a short description of the problem to If your question is related to the privilege system please include the output of mysqlaccess the output of mysqladmin reload and all the error messages you get when trying to connect When you test your privileges you should first run mysqlaccess After this execute mysqladmin reload version and last you should try to connect with the program that gives you trouble mysqlaccess can be found in the bin directory under your MySQL installation directory If you have a patch for a bug that is good But don t assume the patch is all we need or that we will use it even if you don t provide some necessary information such as test cases showing the bug that your patch fixes We might find problems with your patch or we might not understand it at all if so we can t use it If we can t verify exactly what the patch is meant for we won t use it Test cases will help us here Show that the patch will handle all the situations that may occur If we find a borderline case even a rare one where the patch won t work the patch may be useless Guesses about what the bug is why it occurs or what it depends on are usually wrong Even we can t guess such things without first using a debugger to determine the real cause of a bug Indicate in your mail message that you have checked the reference manual and mail archive so others know that you have tried to solve your problem yourself If you get a parse error please check your syntax closely If you can t find something wrong with it it s extremely likely that your current version of MySQL doesn t support the query you are using If you are using the current version and the manual at 120 http www mysql com doc html doesn t cover the syntax you are using MySQL doesn t support your query In this case your only options are to implement the syntax yourself or email 121 mysql support mysql com and ask for an offer to implement it If the manual covers the syntax you are using but you have an older version of MySQL you should check the MySQL change history to see when the syntax was implemented See section 122 D MySQL change history In this case you have the option of upgrading to a newer version of MySQL If you have a problem such that your data appears corrupt or you get errors when you access some particular table you should first check and then try repairing your tables with isamchk See section 123 13 Maintaining a MySQL installation If you often get corrupted tables you should try to find out when and why this happens In this case the mysql data directory hostname err file may contain some information about what happened Please include any relevant information from this file in your bug report Normally mysqld should NEVER crash a table if nothing killed it in the middle of an update If you can find the source of why mysqld dies it s much easier for us to provide you with a fix for the problem If possible download the most recent version of MySQL and check whether or not it solves your problem All versions of MySQL are thoroughly tested and should work without problems We believe in making everything as backward compatible as possible and you should be able to switch MySQL versions in minutes See section 124 4 3 Which MySQL version to use If you are a support customer please cross post the bug report to the appropriate mailing list to see if someone else has experienced and perhaps solved the problem For information on reporting bugs in MyODBC see section 125 16 2 How to report problems with MyODBC For solutions to some common problems see See section 126 17 Problems and common errors When answers are sent to you individually and not to the mailing list it is considered good etiquette to summarize the answers and send the summary to the mailing list so that others may have the benefit of responses you received that helped you solve your problem 127 2 4 Guidelines for answering questions on the mailing list If you consider your answer to have broad interest you may want to post it to the mailing list instead of replying directly to the individual who asked Try to make your answer general enough that people other than the original poster may benefit from it When you post to the list please make sure that your answer is not a duplication of a previous answer Try to summarize the essential part of the question in your reply don t feel obliged to quote the entire original message Please don t post mail messages from your browser with HTML mode turned on Many users doesn t read mail with a browser 128 3 MySQL licensing and support This chapter describes MySQL licensing and support arrangements including Our licensing policies for non Microsoft and Microsoft operating systems The copyrights under which MySQL is distributed see section 129 3 2 Copyrights used by MySQL Sample situations illustrating when a license is required see section 130 3 4 Example licensing situations Licensing and support costs see section 131 3 5 MySQL licensing and support costs and support benefits see section 132 3 6 Types of commercial support 133 3 1 MySQL licensing policy The formal terms of the license for non Microsoft operating systems such as Unix or OS 2 are specified in section 134 J The MySQL server license for non Microsoft operating systems Basically our licensing policy is as follows For normal internal use MySQL generally costs nothing You do not have to pay us if you do not want to A license is required if You sell the MySQL server directly or as a part of another product or service You charge for installing and maintaining a MySQL server at some client site You include MySQL in a distribution that is non redistributable and you charge for some part of that distribution For circumstances under which a MySQL license is required you need a license per machine that runs the mysqld server However a multiple CPU machine counts as a single machine and there is no restriction on the number of MySQL servers that run on one machine or on the number of clients concurrently connected to a server running on that machine You do not need a license to include client code in commercial programs The client access part of MySQL is in the public domain The mysql command line client includes code from the readline library that is under the GNU Public License For customers who have purchased 10 licenses or a high enough level of support we provide additional functionality Currently this means we provide the pack isam utility for creating fast compressed read only databases The server includes support for reading such databases but not the packing tool used to create them If support agreements generate sufficient revenue we will probably release this tool under the same license as the MySQL server If your use of MySQL does not require a license but you like MySQL and want to encourage further development you are certainly welcome to purchase a license anyway If you use MySQL in a commercial context such that you profit by its use we ask that you further the development of MySQL by purchasing some level of support We feel that if MySQL helps your business it is reasonable to ask that you help MySQL Otherwise if you ask us support questions you are not only using for free something into which we ve put a lot a work you re asking us to provide free support too For use under Microsoft operating systems Win95 Win98 WinNT you need a MySQL license after a trial period of 30 days with the exception that licenses may be obtained upon request at no cost for educational use or for university or government sponsored research settings See section 135 K The MySQL license for Microsoft operating systems A shareware version of MySQL Win32 that you can try before buying is available at 136 http www mysql com mysql w32 htmy After you have paid you will get a password that will enable you to access the newest MySQL Win32 version If you have any questions as to whether or not a license is required for your particular use of MySQL please contact us See section 137 3 5 2 Contact information If you require a MySQL license the easiest way to pay for it is to use the license form at TcX s secure server at https www tcx se license htmy Other forms of payment are discussed in section 138 3 5 1 Payment information 139 3 2 Copyrights used by MySQL There are several different copyrights on the MySQL distribution 1 The MySQL specific source needed to build the mysqlclient library and programs in the client directory is in the public domain Each file that is in the public domain has a header which clearly states so This includes everything in the client directory and some parts of the mysys mystring and dbug libraries 2 Some small parts of the source GNU getopt are covered by the GNU LIBRARY LIBRARY GENERAL PUBLIC LICENSE See the mysys COPYING LIB file 3 Some small parts of the source GNU readline are covered by the GNU GENERAL PUBLIC LICENSE See the readline COPYING file 4 Some parts of the source the regexp library are covered by a Berkeley style copyright 5 The other source needed for the MySQL server on non Microsoft platforms is covered by the MySQL FREE PUBLIC LICENSE which is based on the Aladdin FREE PUBLIC LICENSE See section 140 J The MySQL server license for non Microsoft operating systems When running MySQL on any Microsoft operating system other licensing applies The following points set forth the philosophy behind our copyright policy The SQL client library should be totally free so that it can be included in commercial products without limitations People who want free access to the software into which we have put a lot of work can have it so long as they do not try to make money directly by distributing it for profit People who want the right to keep their own software proprietary but also want the value from our work can pay for the privilege That means normal in house use is FREE But if you use MySQL for something important to you you may want to help further its development by purchasing a license or a support contract See section 141 3 6 Types of commercial support 142 3 2 1 Possible future copyright changes We may choose to distribute older versions of MySQL with the GPL in the future However these versions will be identified as GNU MySQL Also all copyright notices in the relevant files will be changed to the GPL 143 3 3 Distributing MySQL commercially This section is a clarification of the license terms that are set forth in the MySQL FREE PUBLIC LICENSE FPL See section 144 J The MySQL server license for non Microsoft operating systems MySQL may be used freely including by commercial entities for evaluation or unsupported internal use However distribution for commercial purposes of MySQL or anything containing or derived from MySQL in whole or in part requires a written commercial license from TcX AB the sole entity authorized to grant such licenses You may not include MySQL free in a package containing anything for which a charge is being made except as noted below The intent of the exception provided in the second clause of the license is to allow commercial organizations operating an FTP server or a bulletin board to distribute MySQL freely from it provided that 1 The organization complies with the other provisions of the FPL which include among other things a requirement to distribute the full source code of MySQL and of any derived work and to distribute the FPL itself along with MySQL 2 The only charge for downloading MySQL is a charge based on the distribution service and not one based on the content of the information being retrieved i e the charge would be the same for retrieving a random collection of bits of the same size 3 The server or BBS is accessible to the general public i e the phone number or IP address is not kept secret and anyone may obtain access to the information possibly by paying a subscription or access fee that is not dependent on or related to purchasing anything else If you want to distribute software in a commercial context that incorporates MySQL and you do not want to meet these conditions you should contact TcX AB to find out about commercial licensing which involves a payment The only ways you legally can distribute MySQL or anything containing MySQL are by distributing MySQL under the requirements of the FPL or by getting a commercial license from TcX AB 145 3 4 Example licensing situations This section describes some situations illustrating whether or not you must license the MySQL server Generally these examples involve providing MySQL as part of a product or service that you are selling to a customer or requiring that MySQL be used in conjunction with your product In such cases it is your responsibility to obtain a license for the customer if one is necessary This requirement is waived if your customer already has a MySQL license But the seller must send customer information and the license number to TcX and the license must be a full license not an OEM license Note that a single MySQL license covers any number of CPUs users customers mysqld servers on a machine 146 3 4 1 Selling products that use MySQL To determine whether or not you need a MySQL license when selling your application you should ask whether the proper functioning of your application is contingent on the use of MySQL and whether you include MySQL with your product There are several cases to consider Does your application require MySQL to function properly If your product requires MySQL you need a license for any machine that runs the mysqld server For example if you ve designed your application around MySQL then you ve really made a commercial product that requires the engine so you need a license If your application does not require MySQL you need not obtain a license For example if MySQL just added some new optional features to your product such as adding logging to a database if MySQL is used rather than logging to a text file it should fall within normal use and a license would not be required In other words you need a license if you sell a product designed specifically for use with MySQL or that requires the MySQL server to function at all This is true whether or not you provide MySQL for your client as part of your product distribution It also depends on what you re doing for the client Do you plan to provide your client with detailed instructions on installing MySQL with your software Then your product may be contingent on the use of MySQL if so you need to buy a license If you are simply tying into a database that you expect already to have been installed by the time your software is purchased then you probably don t need a license Do you include MySQL in a distribution and charge for that distribution If you include MySQL with a distribution that you sell to customers you will need a license for any machine that runs the mysqld server because in this case you are selling a system that includes MySQL This is true whether the use of MySQL with your product is required or optional Do you neither require for your product nor include MySQL with it Suppose you want to sell a product that is designed generally to use some database and that can be configured to use any of several supported alternative database systems MySQL PostgreSQL or something else That is your product does not not require MySQL but can support any database with a base level of functionality and you don t rely on anything that only MySQL supports Does one of you owe us money if your customer actually does choose to use MySQL In this case if you don t provide obtain or set up MySQL for the customer should the customer decide to use it neither of you need a license If you do perform that service see section 147 3 4 2 Selling MySQL related services 148 3 4 2 Selling MySQL related services If you perform MySQL installation on a client s machine and any money changes hands for the service directly or indirectly then you must buy a MySQL license If you sell an application for which MySQL is not strictly required but can be used a license may be indicated depending on how MySQL is set up Suppose your product neither requires MySQL nor includes it in your product distribution but can be configured to use MySQL for those customers who so desire This would be the case for example if your product can use any of a number of database engines If the customer obtains and installs MySQL no license is needed If you perform that service for your customer then a license is needed because then you are selling a service that includes MySQL 149 3 4 3 ISP MySQL services Internet Service Providers ISPs often host MySQL servers for their customers If you are an ISP that allows customers to install and administer MySQL for themselves on your machine with no assistance from you neither you nor your customer need a MySQL license If you charge for MySQL installation and administrative support as part of your customer service then you need a license because you are selling a service that includes MySQL 150 3 4 4 Running a web server using MySQL If you use MySQL in conjunction with a web server you don t have to pay for a license This is true even if you run a commercial web server that uses MySQL since you are not selling MySQL itself However in this case we would like you to purchase MySQL support because MySQL is helping your enterprise 151 3 5 MySQL licensing and support costs Our current license prices are shown below All prices are in US Dollars If you pay by credit card the currency is EURO European Union Euro so the prices will differ slightly Number of licenses Price per copy Total 1 US 200 US 200 10 pack US 150 US 1500 50 pack US 120 US 6000 For high volume OEM purchases the following prices apply Number of licenses Price per copy Minimum at one time Minimum payment 100 999 US 40 100 US 4000 1000 2499 US 25 200 US 5000 2500 4999 US 20 400 US 8000 For OEM purchases you must act as the middle man for eventual problems or extension requests from your users We also require that OEM customers have at least an extended email support contract If you have a low margin high volume product you can always talk to us about other terms for example a percent of the sale price If you do please be informative about your product pricing market and any other information that may be relevant After buying 10 MySQL licenses you will get a personal copy of the pack isam utility You are not allowed to redistribute this utility but you can distribute tables packed with it A full price license is not a support agreement and includes very minimal support This means that we try to answer any relevant question If the answer is in the documentation we will direct you to the appropriate section If you have not purchased a license or support we probably will not answer at all If you discover what we consider a real bug we are likely to fix it in any case But if you pay for support we will notify you about the fix status instead of just fixing it in a later release More comprehensive support is sold separately Descriptions of what each level of support includes are given in section 152 3 6 Types of commercial support Costs for the various types of commercial support are shown below Support level prices are in EURO European Union Euro One EURO is about 1 17 USD Type of support Cost per year Basic email support EURO 170 Extended email support EURO 1000 Login support EURO 2000 Extended login support EURO 5000 You may upgrade from any lower level of support to a higher level of support for the difference between the prices of the two support levels 153 3 5 1 Payment information Currently we can take SWIFT payments cheques or credit cards Payment should be made to Postgirot Bank AB 105 06 STOCKHOLM SWEDEN TCX DataKonsult AB BOX 6434 11382 STOCKHOLM SWEDEN SWIFT address PGSI SESS Account number 96 77 06 3 Specify license and or support and your name and email address In Europe and Japan you can use EuroGiro that should be less expensive to the same account If you want to pay by cheque make it payable to Monty Program KB and mail it to the address below TCX DataKonsult AB BOX 6434 11382 STOCKHOLM SWEDEN If you want to pay by credit card over the Internet you can use 154 TcX s secure license form You can also print a copy of the license form fill it in and send it by fax to 46 8 729 69 05 If you want us to bill you you can use the license form and write bill us in the comment field You can also mail a message to with your company information and ask us to bill you 155 3 5 2 Contact information For commercial licensing or if you have any questions about any of the information in this section please contact the MySQL licensing team The much preferred method is by E Mail to these may take much longer Fax 46 8 729 69 05 If you need to speak to us on the telephone David Axmark Detron HB Kungsgatan 65 B 753 21 UPPSALA SWEDEN Voice Phone 46 18 10 22 80 Timezone GMT 1 Swedish and English spoken 156 3 6 Types of commercial support 157 3 6 1 Basic email support Basic email support is a very inexpensive support option and should be thought of more as a way to support our development of MySQL than as a real support option At this support level the MySQL mailing lists are the preferred means of communication Questions normally should be mailed to the primary mailing list 158 mysql lists mysql com or one of the other regular lists for example 159 mysql win32 lists mysql com for Windows related MySQL questions as someone else already may have experienced and solved the problem you have See section 160 2 2 Asking questions or reporting bugs However by purchasing basic email support you also have access to the support address 161 mysql support mysql com which is not available as part of the minimal support that you get by purchasing a MySQL license This means that for especially critical questions you can cross post your message to 162 mysql support mysql com If the message contains sensitive data you should post only to 163 mysql support mysql com Whenever you send a message to 164 mysql support mysql com always remember to include your registration number and expiration date to ensure a quick response Basic email support includes the following types of service If your question is already answered in the manual we will inform you of the correct section in which you can find the answer If the answer is not in the manual we will point you in the right direction to solve your problem We guarantee a timely answer for your email messages We can t guarantee that we can solve any problem but at least you will receive an answer if we can contact you by email We will help with unexpected problems when you install MySQL from a binary distribution on supported platforms This level of support does not cover installing MySQL from a source distribution Supported platforms are those for which MySQL is known to work See section 165 4 2 Operating systems supported by MySQL We will help you with bugs and missing features Any bugs that are found are fixed for the next MySQL release If the bug is critical for you we will mail you a patch for it as soon the bug is fixed Critical bugs always have the highest priority for us to ensure that they are fixed as soon as possible Your suggestions for the further development of MySQL will be taken into consideration By taking email support you have already helped the further development of MySQL If you want to have more input upgrade to a higher level of support If you want us to help optimize your system you must upgrade to a higher level of support 166 3 6 2 Extended email support Extended email support includes everything in basic email support with these additions Your email will be dealt with before mail from basic email support users and non registered users Your suggestions for the further development of MySQL will receive strong consideration Simple extensions that suit the basic goals of MySQL are implemented in a matter of days By taking extended email support you have already helped the further development of MySQL We include a binary version of the pack isam packing tool for creating fast compressed read only databases it does not support BLOB or TEXT types yet The current server includes support for reading such databases but not the packing tool used to create them Typical questions that are covered by extended email support are We will answer and within reason solve questions that relate to possible bugs in MySQL As soon as the bug is found and corrected we will mail a patch for it We will help with unexpected problems when you install MySQL from a source or binary distribution on supported platforms We will answer questions about missing features and offer hints how to work around them We will provide hints on optimizing mysqld for your situation You are allowed to influence the priority of items on the MySQL TODO This will ensure that the features you really need will be implemented sooner than they might be otherwise 167 3 6 3 Login support Login support includes everything in extended email support with these additions Your email will be dealt with even before mail from extended email support users Your suggestions for the further development of MySQL will be taken into very high consideration Realistic extensions that can be implemented in a couple of hours and that suit the basic goals of MySQL will be implemented as soon as possible If you have a very specific problem we can try to log in on your system to solve the problem in place Like any database vendor we can t guarantee that we can rescue any data from crashed tables but if the worst happens we will help you rescue as much as possible MySQL has proven itself very reliable but anything is possible due to circumstances beyond our control for example if your system crashes or someone kills the server by executing a kill 9 command We will provide hints on optimizing your system and your queries You are allowed to call a MySQL developer in moderation and discuss your MySQL related problems 168 3 6 4 Extended login support Extended login support includes everything in login support with these additions Your email has the highest possible priority We will actively examine your system and help you optimize it and your queries We may also optimize and or extend MySQL to better suit your needs You may also request special extensions just for you For example mysql select MY CALCULATION col name1 col name2 from tbl name We will provide a binary distribution of all important MySQL releases for your system as long as we can get an account on a similar system In the worst case we may require access to your system to be able to create a binary distribution If you can provide accommodations and pay for traveler fares you can even get a MySQL developer to visit you and offer you help with your troubles Extended login support entitles you to one personal encounter per year but we are as always very flexible towards our customers 169 4 Installing MySQL This chapter describes how to obtain and install MySQL For a list of sites from which you can obtain MySQL see section 170 4 1 How to get MySQL To see which platforms are supported see section 171 4 2 Operating systems supported by MySQL Several versions of MySQL are available in both binary and source distributions To determine which version and type of distribution you should use see section 172 4 4 How and when updates are released Installation instructions for binary and source distributions are described in section 173 4 6 Installing a MySQL binary distribution and section 174 4 7 Installing a MySQL source distribution Each set of instructions includes a section on system specific problems you may run into For post installation procedures see section 175 4 15 Post installation setup and testing These procedures apply whether you install MySQL using a binary or source distribution 176 4 1 How to get MySQL Check the 177 MySQL home page for information about the current version and for downloading instructions However the Internet connection at TcX is not so fast we would prefer that you do the actual downloading from one of the mirror sites listed below Please report bad or out of date mirrors to 178 webmaster mysql com Europe austria gif Austria Univ of Technology Vienna 179 WWW 180 FTP bulgaria gif Bulgaria Naturella 181 FTP croatia gif Croatia HULK 182 WWW 183 FTP czech republic gif Czech Republic Masaryk University in Brno 184 WWW 185 FTP denmark gif Denmark Ake 186 WWW denmark gif Denmark SunSITE 187 WWW 188 FTP estonia gif Estonia Tradenet 189 WWW estonia gif Estonia OKinteractive 190 WWW france gif France minet 191 WWW finland gif Finland EUnet 192 WWW germany gif Germany Bonn University Bonn 193 WWW 194 FTP germany gif Germany Wolfenbuettel 195 WWW 196 FTP germany gif Germany Staufen 197 WWW germany gif Germany Cable Wireless 198 FTP greece gif Greece NTUA Athens 199 WWW 200 FTP hungary gif Hungary Xenia 201 WWW 202 FTP israel gif Israel Netvision 203 WWW italy gif Italy Teta Srl 204 WWW poland gif Poland Sunsite 205 WWW 206 FTP portugal gif Portugal lerianet 207 WWW 208 FTP russia gif Russia DirectNet 209 WWW russia gif Russia IZHCOM 210 WWW 211 FTP russia gif Russia Scientific Center Chernogolovka 212 FTP romania gif Romania Timisoara 213 WWW 214 FTP romania gif Romania Bucharest 215 WWW 216 FTP sweden gif Sweden Sunet 217 WWW 218 FTP switzerland gif Switzerland Sunsite 219 WWW 220 FTP great britain gif UK Omnipotent UK 221 WWW 222 FTP great britain gif UK PLiG UK 223 WWW 224 FTP great britain gif UK SunSITE 225 WWW 226 FTP ukraine gif Ukraine PACO 227 WWW 228 FTP North America canada gif Canada Tryc 229 WWW usa gif USA Hurricane Electric San Jose 230 WWW usa gif USA Buoy New York 231 WWW usa gif USA Netcasting West Coast 232 FTP usa gif USA Circle Net North Carolina 233 WWW usa gif USA Gina net Florida 234 WWW usa gif USA pingzero Los Angeles 235 WWW usa gif USA DIGEX 236 FTP South America chile gif Chile vision 237 http mysql vision cl chile gif Chile Amerikanclaris 238 WWW 239 FTP Asia south korea gif Korea KREONet 240 WWW japan gif Japan Soft Agency 241 WWW japan gif Japan Nagoya Syouka University 242 WWW 243 FTP japan gif Japan HappySize 244 WWW 245 FTP singapore gif Singapore HJC 246 WWW 247 FTP taiwan gif Taiwan NCTU 248 WWW taiwan gif Taiwan TTN 249 WWW Australia australia gif Australia AARNet Queensland 250 WWW 251 FTP australia gif Australia Tas 252 WWW 253 FTP australia gif Australia Blue Planet Melbourne 254 WWW 255 FTP australia gif Australia ITworks Consulting Victoria 256 WWW Africa south africa1 gif South Africa The Internet Solution Johannesburg 257 FTP south africa1 gif South Africa Mweb 258 WWW 259 4 2 Operating systems supported by MySQL We use GNU Autoconf so it is possible to port MySQL to all modern systems with working Posix threads and a C compiler To compile only the client code a C compiler is required but not threads We use and develop the software ourselves primarily on Sun Solaris versions 2 5 2 6 and to a lesser extent on RedHat Linux 5 0 MySQL has been reported to compile sucessfully on the following operating system thread package combinations Note that for many operating systems the native thread support works only in the latest versions AIX 4 x with native threads BSDI 2 x with the included MIT pthreads package BSDI 3 0 3 1 and 4 x with native threads DEC UNIX 4 x with native threads FreeBSD 2 x with the included MIT pthreads package FreeBSD 3 x with native threads HP UX 10 20 with the included MIT pthreads package HP UX 11 x with the native threads Linux 2 0 with LinuxThreads 0 7 1 or glibc 2 0 7 NetBSD 1 3 Intel and NetBSD 1 3 Alpha OpenBSD 2 x with the included MIT pthreads package OS 2 Warp 3 FixPack 29 and OS 2 Warp 4 FixPack 4 SGI Irix 6 x with native threads Solaris 2 5 2 6 and 2 7 with native threads on SPARC and x86 SunOS 4 x with the included MIT pthreads package SCO OpenServer with a recent port of the FSU Pthreads package SCO UnixWare 7 0 1 Tru64 Unix Win95 Win98 and NT the newest version is currently available only for users with a MySQL license or MySQL email support For those who wish to test before they buy we have released 260 MySQL 3 21 29 an older version as shareware 261 4 3 Which MySQL version to use The first decision to make is whether you want to use the latest development release or the last stable release Normally if you are beginning to use MySQL for the first time or trying to port it to some system for which there is no binary distribution we recommend going with the development release currently 3 22 x This is because there are usually no really serious bugs in the development release and you can easily test it on your machine with the crash me and benchmark tests See section 262 11 The MySQL benchmark suite Otherwise if you are running an old system and want to upgrade but don t want to take chances with 3 22 you should upgrade to 3 21 33 We have tried to fix only fatal bugs and make small relatively safe changes to that version The second decision to make is whether you want to use a source distribution or a binary distribution If you want to run MySQL on a platform for which a current binary distribution exists use that Generally it will be easier to install than a source distribution If you want to read and or modify the C and C code that makes up MySQL you should get a source distribution The source code is always the ultimate manual Source distributions also contain more tests and examples than binary distributions The MySQL naming scheme uses release numbers that consist of three numbers and a suffix For example a release name like mysql 3 21 17 beta is interpreted like this The first number 3 describes the file format All version 3 releases have the same file format When a version 4 appears every table will have to be converted to the new format nice tools for this will be included of course The second number 21 is the release level Normally there are two to choose from One is the release stable branch currently 21 and the other is the development branch currently 22 Normally both are stable but the development version may have quirks missing documentation on new features or may fail to compile on some systems The third number 17 is the version number within the release level This is incremented for each new distribution Usually you want the latest version for the release level you have choosen The suffix beta indicates the stability level of the release The possible suffixes are alpha indicates that the release contains some large section of new code that hasn t been 100 tested Known bugs usually there are none should be documented in the News section See section 263 D MySQL change history There are also new commands and extensions in most alpha releases beta means that all new code has been tested No major new features were added There should be no known bugs gamma is a beta that has been around a while and seems to work fine This is what many other companies call a release If there is no suffix it means that the version has been run for a while at many different sites with no reports of bugs other than platform specific bugs This is what we call a stable release All versions of MySQL are run through our standard tests and benchmarks to ensure that they are relatively safe to use Since the standard tests are extended over time to check for all previously found bugs the test suite keeps getting better Note that all releases have been tested at least with An internal test suite This is part of a production system for a customer It has many tables with hundreds of megabytes of data The MySQL benchmark suite This runs a range of common queries It is also a test to see whether the latest batch of optimizations actually made the code faster See section 264 11 The MySQL benchmark suite The crash me test This tries to determine what features the database supports and what its capabilities and limitations are See section 265 11 The MySQL benchmark suite Another test is that we use the newest MySQL version in our internal production environment on at least one machine We have more than 100 gigabytes of data to work with 266 4 4 How and when updates are released MySQL is evolving quite rapidly here at TcX and we want to share this with other MySQL users We try to make a release when we have very useful features that others seem to have a need for We also try to help out users who request features that are easy to implement We also take note of what our licensed users want to have and we especially take note of what our extended email supported customers want and try to help them out No one has to download a new release The News section will tell you if the new release has something you really want See section 267 D MySQL change history We use the following policy when updating MySQL For each minor update the last number in the version string is incremented When there are major new features or minor incompatibilities with previous versions the second number in the version string is incremented When the file format changes the first number is increased Stable tested releases are meant to appear about 1 2 times a year but if small bugs are found a release with only bug fixes will be released Working releases are meant to appear about every 1 8 weeks Binary distributions for some platforms will be made by us for major releases Other people may make binary distributions for other systems but probably less frequently We usually make patches available as soon as we have located and fixed small bugs For non critical but annoying bugs we will make patches available if they are sent to us Otherwise we will combine many of them into a larger patch If there is by any chance a fatal bug in a release we will make a new release as soon as possible We would like other companies to do this too The current stable release is 3 22 We have already moved active development to 3 23 Bugs will still be fixed in the stable version We don t believe in a complete freeze as this also leaves out bug fixes and things that must be done Somewhat frozen means that we may add small things that almost surely will not affect anything that s already working 268 4 5 Installation layouts This section describes the default layout of the directories created by installing binary and source distributions A binary distribution is installed by unpacking it at the installation location you choose typically usr local mysql and creates the following directories in that location Directory Contents of directory bin Client programs and the mysqld server data Log files databases include Include header files lib Libraries scripts mysql install db share mysql Error message files sql bench Benchmarks A source distribution is installed after you configure and compile it By default the installation step installs files under usr local in the following subdirectories Directory Contents of directory bin Client programs and scripts include mysql Include header files info Documentation in Info format lib mysql Libraries libexec The mysqld server share mysql Error message files sql bench Benchmarks and crash me test var Databases and log files Within an installation directory the layout of a source installation differs from that of a binary installation in the following ways The mysqld server is installed in the libexec directory rather than in the bin directory The data directory is var rather than data mysql install db is installed in the usr local bin directory rather than in usr local mysql scripts The header file and library directories are include mysql and lib mysql rather than include and lib 269 4 6 Installing a MySQL binary distribution You need the following tools to install a MySQL binary distribution GNU gunzip to uncompress the distribution A reasonable tar to unpack the distribution GNU tar is known to work An alternative installation method under Linux is to use RPM RedHat Package Manager distributions See section 270 4 6 1 Linux RPM notes If you run into problems PLEASE ALWAYS USE mysqlbug when posting questions to 271 mysql lists mysql com Even if the problem isn t a bug mysqlbug gathers system information that will help others solve your problem By not using mysqlbug you lessen the likelihood of getting a solution to your problem You will find mysqlbug in the bin directory after you unpack the distribution See section 272 2 3 How to report bugs or problems The basic commands you must execute to install and use a MySQL binary distribution are shell gunzip mysql VERSION OS tar gz tar xvf shell ln s mysql VERSION OS mysql shell cd mysql shell scripts mysql install db shell bin safe mysqld You can add new users using the bin mysql setpermission script if you install the DBI and Msql Mysql modules Perl modules Here follows a more detailed description To install a binary distribution follow the steps below then proceed to section 273 4 15 Post installation setup and testing for post installation setup and testing 1 Pick the directory under which you want to unpack the distribution and move into it In the example below we unpack the distribution under usr local and create a directory usr local mysql into which MySQL is installed The following instructions therefore assume you have permission to create files in usr local If that directory is protected you will need to perform the installation as root 2 Obtain a distribution file from one of the sites listed in section 274 4 1 How to get MySQL MySQL binary distributions are provided as compressed tar archives and have names like mysql VERSION OS tar gz where VERSION is a number e g 3 21 15 and OS indicates the type of operating system for which the distribution is intended e g pc linux gnu i586 3 Unpack the distribution and create the installation directory shell gunzip mysql VERSION OS tar gz tar xvf shell ln s mysql VERSION OS mysql The first command creates a directory named mysql VERSION OS The second command makes a symbolic link to that directory This lets you refer more easily to the installation directory as usr local mysql 4 Change into the installation directory shell cd mysql You will find several files and subdirectories in the mysql directory The most important for installation purposes are the bin and scripts subdirectories bin This directory contains client programs and the server You should add the full pathname of this directory to your PATH environment variable so that your shell finds the MySQL programs properly scripts This directory contains the mysql install db script used to initialize the server access permissions 5 If you would like to use mysqlaccess and have the MySQL distribution in some nonstandard place you must change the location where mysqlaccess expects to find the mysql client Edit the bin mysqlaccess script at approximately line 18 Search for a line that looks like this MYSQL usr local bin mysql path to mysql executable Change the path to reflect the location where mysql actually is stored on your system If you do not do this you will get a broken pipe error when you run mysqlaccess 6 Create the MySQL grant tables necessary only if you haven t installed MySQL before shell scripts mysql install db 7 If you want to install support for the Perl DBI DBD interface see section 275 4 10 Perl installation comments 8 If you would like MySQL to start automatically when you boot your machine you can copy support files mysql server to the location where your system has its startup files More information can be found in the support files mysql server script itself and in section 276 4 15 3 Starting and stopping MySQL automatically After everything has been unpacked and installed you should initialize and test your distribution You can start the MySQL server with the following command shell bin safe mysqld Note that MySQL versions before 3 22 10 started the MySQL server when you run mysql install db This is no longer true See section 277 4 15 Post installation setup and testing 278 4 6 1 Linux RPM notes The recommended way to install MySQL on Linux is by using an RPM file The MySQL RPMs are currently being built on a RedHat 5 2 system but should work on other versions of Linux that support rpm and use glibc If you have problems with an RPM file for example Sorry the host xxxx could not be looked up see section 279 4 6 3 1 Linux notes The RPM files you may want to use are MySQL VERSION i386 rpm The MySQL server You will need this unless you only want to connect to another MySQL server running on another machine MySQL client VERSION i386 rpm The standard MySQL client programs You probably always want to install this package MySQL bench VERSION i386 rpm Tests and benchmarks Requires Perl and msql mysql modules RPMs MySQL devel VERSION i386 rpm Libraries and include files needed if you want to compile other MySQL clients such as the Perl modules MySQL VERSION src rpm This contains the source code for all of the above packages It can also be used to try to build RPMs for other architectures for example Alpha or SPARC To see all files in an RPM package shell rpm qpl MySQL VERSION i386 rpm To perform a standard minimal installation run this command shell rpm i MySQL VERSION i386 rpm MySQL client VERSION i386 rpm To install just the client package shell rpm i MySQL client VERSION i386 rpm The RPM places data in var lib mysql The RPM also creates the appropriate entries in sbin rc d to start the server automatically at boot time This means that if you have performed a previous installation you may want to make a copy of your previously installed MySQL startup file if you made any changes to it so you don t lose your changes After installing the RPM file s go to the binary install section and use the instructions there starting from the step that creates the MySQL grant tables See section 280 4 6 Installing a MySQL binary distribution 281 4 6 2 Building client programs If you compile MySQL clients that you ve written yourself or that you obtain from a third party they must be linked using the lmysqlclient option on the link command You may also need to specify a L option to tell the linker where to find the library For example if the library is installed in usr local mysql lib use L usr local mysql lib lmysqlclient on the link command For clients that use MySQL header files you may need to specify a I option when you compile them for example I usr local mysql include so the compiler can find the header files 282 4 6 3 System specific issues The following sections indicate some of the issues that have been observed to occur on particular systems when installing MySQL from a binary distribution 283 4 6 3 1 Linux notes MySQL needs at least Linux 2 0 The binary release is linked with static which means you not normally need not worry about which version of the system libraries you have You need not install LinuxThreads either A program linked with static is slightly bigger than a dynamically linked program but also slightly faster 3 5 The only problem is that you can t use user definable functions UDFs with a statically linked program If you are going to write or use UDF functions this is something only for C or C programmers you must compile MySQL yourself using dynamic linking If you are using a libc based system instead of a glibc2 system you will probably get some problems with hostname resolving with the binary release This is because glibc unfortunately depends on some external libraries to resolve hostnames even when compiled with static In this case you probably get the following error message when you run mysql install db Sorry the host xxxx could not be looked up You can solve this problem one of the following ways Get a MySQL source distribution an RPM or the tar distribution and install this instead Execute mysql install db force This will not execute the resolveip test in mysql install db The downside is that you can t use host names in the grant tables you must use IP numbers instead except for localhost If you are using an old MySQL release that doesn t support force you have to remove the resolveip test in mysql install with an editor The Linux Intel binary and RPM releases of MySQL are configured for the highest possible speed We are always trying to use the fastest stable compiler available MySQL Perl support requires Perl 5 004 03 or newer 284 4 6 3 2 HP UX notes The binary distribution of MySQL for HP UX is distributed as an HP depot file This means that you must be running at least HP UX 10 x to have access to HP s software depot tools The HP version of MySQL was compiled on an HP 9000 8xx server under HP UX 10 20 and uses MIT pthreads It is known to work well under this configuration This version does not use HP s native thread package It is highly unlikely that MySQL will use HP native threads on anything but HP UX 10 30 or later Other configurations that may work HP 9000 7xx running HP UX 10 20 HP 9000 8xx running HP UX 10 30 does not use HP native threads The following configurations almost definitely won t work HP 9000 7xx or 8xx running HP UX 10 x where x 2 HP 9000 7xx or 8xx running HP UX 9 x To install the distribution use one of the commands below where path to depot is the full pathname of the depot file To install everything including the server client and development tools shell usr sbin swinstall s path to depot mysql full To install only the server shell usr sbin swinstall s path to depot mysql server To install only the client package shell usr sbin swinstall s path to depot mysql client To install only the development tools shell usr sbin swinstall s path to depot mysql developer The depot places binaries and libraries in opt mysql and data in var opt mysql The depot also creates the appropriate entries in sbin init d and sbin rc2 d to start the server automatically at boot time Obviously this entails being root to install 285 4 7 Installing a MySQL source distribution You need the following tools to build and install MySQL from source GNU gunzip to uncompress the distribution A reasonable tar to unpack the distribution GNU tar is known to work A working ANSI C compiler gcc 2 8 1 egcs 1 0 2 SGI C and SunPro C are some of the compilers that are known to work libg is not needed when using gcc gcc 2 7 x has a bug that makes it impossible to compile some perfectly legal C files such as sql sql base cc If you only have gcc 2 7 x you must upgrade your gcc to be able to compile MySQL A good make program GNU make is always recommended and is sometimes required If you have problems we recommend trying GNU make 3 75 or newer If you run into problems PLEASE ALWAYS USE mysqlbug when posting questions to 286 mysql lists mysql com Even if the problem isn t a bug mysqlbug gathers system information that will help others solve your problem By not using mysqlbug you lessen the likelihood of getting a solution to your problem You will find mysqlbug in the scripts directory after you unpack the distribution See section 287 2 3 How to report bugs or problems 288 4 7 1 Quick installation overview The basic commands you must execute to install a MySQL source distribution are from an unpacked tar file shell configure shell make shell make install shell scripts mysql install db shell usr local mysql bin safe mysqld If you start from a source RPM then do the following shell rpm rebuild MySQL VERSION src rpm This will make a binary RPM that you can install You can add new users using the bin mysql setpermission script if you install the DBI and Msql Mysql modules Perl modules Here follows a more detailed description To install a source distribution follow the steps below then proceed to section 289 4 15 Post installation setup and testing for post installation initialization and testing 1 Pick the directory under which you want to unpack the distribution and move into it 2 Obtain a distribution file from one of the sites listed in section 290 4 1 How to get MySQL MySQL source distributions are provided as compressed tar archives and have names like mysql VERSION tar gz where VERSION is a number like 3 22 25 3 Unpack the distribution into the current directory shell gunzip mysql VERSION tar gz tar xvf This command creates a directory named mysql VERSION 4 Change into the top level directory of the unpacked distribution shell cd mysql VERSION 5 Configure the release and compile everything shell configure prefix usr local mysql shell make When you run configure you might want to specify some options Run configure help for a list of options section 291 4 7 3 Typical configure options discusses some of the more useful options If configure fails and you are going to send mail to lines from config log that you think can help solve the problem Also include the last couple of lines of output from configure if configure aborts Post the bug report using the mysqlbug script See section 292 2 3 How to report bugs or problems If the compile fails see section 293 4 8 Problems compiling for help with a number of common problems 6 Install everything shell make install You might need to run this command as root 7 Create the MySQL grant tables necessary only if you haven t installed MySQL before shell scripts mysql install db 8 If you want to install support for the Perl DBI DBD interface see section 294 4 10 Perl installation comments 9 If you would like MySQL to start automatically when you boot your machine you can copy support files mysql server to the location where your system has its startup files More information can be found in the support files mysql server script itself and in section 295 4 15 3 Starting and stopping MySQL automatically After everything has been installed you should initialize and test your distribution You can start the MySQL server with the following command where BINDIR is the directory in which safe mysqld is installed usr local bin by default shell BINDIR safe mysqld If that command fails immediately with mysqld daemon ended then you can find some information in the file mysql data directory hostname err The likely reason is that you already have another mysqld server running See section 296 18 3 Running multiple MySQL servers on the same machine Note that MySQL versions before 3 22 10 started the MySQL server when you run mysql install db This is no longer true See section 297 4 15 Post installation setup and testing 298 4 7 2 Applying patches Sometimes patches appear on the mailing list or are placed in the 299 patches area of the MySQL FTP site To apply a patch from the mailing list save the message in which the patch appears in a file change into the top level directory of your MySQL source tree and run these commands shell patch p1 patch file name shell rm config cache shell make clean Patches from the FTP site are distributed as plain text files or as files compressed with gzip files Apply a plain patch as shown above for mailing list patches To apply a compressed patch change into the top level directory of your MySQL source tree and run these commands shell gunzip patch file name gz patch p1 shell rm config cache shell make clean After applying a patch follow the instructions for a normal source install beginning with the configure step After running the make install step restart your MySQL server You may need to bring down any currently running server before you run make install Use mysqladmin shutdown to do this Some systems do not allow you to install a new version of a program if it replaces the version that is currently executing 300 4 7 3 Typical configure options The configure script gives you a great deal of control over how you configure your MySQL distribution Typically you do this using options on the configure command line You can also affect configure using certain environment variables For a list of options supported by configure run this command shell configure help Some of the more commonly used configure options are described below To compile just the MySQL client libraries and client programs and not the server use the without server option shell configure without server If you don t have a C compiler mysql will not compile it is the one client program that requires C In this case you can remove the code in configure that tests for the C compiler and then run configure with the without server option The compile step will still try to build mysql but you can ignore any warnings about mysql cc If make stops try make k to tell it to continue with the rest of the build even if errors occur If you don t want your log files and database directories located under usr local var use a configure command something like one of these shell configure prefix usr local mysql shell configure prefix usr local localstatedir usr local mysql data The first command changes the installation prefix so that everything is installed under usr local mysql rather than the default of usr local The second command preserves the default installation prefix but overrides the default location for database directories normally usr local var and changes it to usr local mysql data If you are using Unix and you want the MySQL socket located somewhere other than the default location normally in the directory tmp or var run use a configure command like this shell configure with unix socket path usr local mysql tmp mysql sock Note that the given file must be an absolute pathname If you want to compile statically linked programs e g to make a binary distribution to get more speed or to work around problems with some RedHat distributions run configure like this shell configure with client ldflags all static with mysqld ldflags all static If you are using gcc and don t have libg or libstdc installed you can tell configure to use gcc as your C compiler shell CC gcc CXX gcc configure When you use gcc as your C compiler it will not attempt to link in libg or libstdc If the build fails and produces errors about your compiler or linker not being able to create the shared library libmysqlclient so is a version number you can work around this problem by giving the disable shared option to configure In this case configure will not build a shared libmysqlclient so library You can configure MySQL not to use DEFAULT column values for non NULL columns i e columns that are not allowed to be NULL This causes INSERT statements to generate an error unless you explicitly specify values for all columns that require a non NULL value To suppress use of default values run configure like this shell CXXFLAGS DDONT USE DEFAULT FIELDS configure By default MySQL uses the ISO 8859 1 Latin1 character set To change the default set use the with charset option shell configure with charset CHARSET CHARSET may be one of big5 cp1251 cp1257 czech danish dec8 dos euc kr german1 hebrew hp8 hungarian koi8 ru koi8 ukr latin1 latin2 sjis swe7 tis620 ujis usa7 win1251 or win1251ukr See section 301 9 1 1 The character set used for data and sorting Note that if you want to change the character set you must do a make distclean between configurations If you want to convert characters between the server and the client you should take a look at the SET OPTION CHARACTER SET command See section 302 7 24 SET OPTION syntax Warning If you change character sets after having created any tables you will have to run isamchk r q on every table Your indexes may be sorted incorrectly otherwise This can happen if you install MySQL create some tables then reconfigure MySQL to use a different character set and reinstall it To configure MySQL with debugging code use the with debug option shell configure with debug This causes a safe memory allocator to be included that can find some errors and that provides output about what is happening See section 303 G 1 Debugging a MySQL server Options that pertain to particular systems can be found in the system specific sections later in this chapter See section 304 4 11 System specific issues 305 4 8 Problems compiling All MySQL programs compile cleanly for us with no warnings on Solaris using gcc On other systems warnings may occur due to differences in system include files See section 306 4 9 MIT pthreads notes for warnings that may occur when using MIT pthreads For other problems check the list below The solution to many problems involves reconfiguring If you do need to reconfigure take note of the following If configure is run after it already has been run it may use information that was gathered during its previous invocation This information is stored in config cache When configure starts up it looks for that file and reads its contents if it exists on the assumption that the information is still correct That assumption is invalid when you reconfigure Each time you run configure you must run make again to recompile However you may want to remove old object files from previous builds first since they were compiled using different configuration options To prevent old configuration information or object files from being used run these commands before rerunning configure shell rm config cache shell make clean Alternatively you can run make distclean The list below describes some of the problems compiling MySQL that have been found to occur most often If you get errors when compiling sql yacc cc such as the ones shown below you have probably run out of memory or swap space Internal compiler error program cc1plus got fatal signal 11 or Out of virtual memory or Virtual memory exhausted The problem is that gcc requires huge amounts of memory to compile sql yacc cc with inline functions Try running configure with the with low memory option shell configure with low memory This option causes fno inline to be added to the compile line if you are using gcc and O0 if you are using something else You should try the with low memory option even if you have so much memory and swap space that you think you can t possibly have run out This problem has been observed to occur even on systems with generous hardware configurations and the with low memory option usually fixes it By default configure picks c as the compiler name and GNU c links with lg If you are using gcc that behavior can cause problems during configuration such as this configure error installation or configuration problem C compiler cannot create executables You might also observe problems during compilation related to g libg or libstdc One cause of these problems is that you may not have g or you may have g but not libg or libstdc Take a look at the config log file It should contain the exact reason why your c compiler didn t work To work around these problems you can use gcc as your C compiler Try setting the environment variable CXX to gcc O3 For example shell CXX gcc O3 configure This works because gcc compiles C sources as well as g does but does not link in libg or libstdc by default Another way to fix these problems of course is to install g libg and libstdc If your compile fails with errors such as any of the following you must upgrade your version of make to GNU make making all in mit pthreads make Fatal error in reader Makefile line 18 Badly formed macro assignment or make file Makefile line 18 Must be a separator or pthread h No such file or directory Solaris and FreeBSD are known to have troublesome make programs GNU make version 3 75 is known to work If you want to define flags to be used by your C or C compilers do so by adding the flags to the CFLAGS and CXXFLAGS environment variables You can also specify the compiler names this way using CC and CXX For example shell CC gcc shell CFLAGS O6 shell CXX gcc shell CXXFLAGS O6 shell export CC CFLAGS CXX CXXFLAGS See section 307 4 14 TcX binaries for a list of flag definitions that have been found to be useful on various systems If you get an error message like this you need to upgrade your gcc compiler client libmysql c 273 parse error before attribute gcc 2 8 1 is known to work but we recommend using egcs 1 0 3a or newer instead If you get errors such as those shown below when compiling mysqld configure didn t correctly detect the type of the last argument to accept getsockname or getpeername cxx Error mysqld cc line 645 In this statement the referenced type of the pointer value length is unsigned long which is not compatible with int new sock accept sock struct sockaddr cAddr length To fix this edit the config h file which is generated by configure Look for these lines Define as the base type of the last arg to accept define SOCKET SIZE TYPE XXX Change XXX to size t or int depending on your operating system Note that you will have to do this each time you run configure since configure regenerates config h The sql yacc cc file is generated from sql yacc yy Normally the build process doesn t need to create sql yacc cc because MySQL comes with an already generated copy However if you do need to recreate it you might encounter this error sql yacc yy line xxx fatal default action causes potential This is a sign that your version of yacc is deficient You probably need to install bison the GNU version of yacc and use that instead If you need to debug mysqld or a MySQL client run configure with the with debug option then recompile and link your clients with the new client library See section 308 G 2 Debugging a MySQL client 309 4 9 MIT pthreads notes This section describes some of the issues involved in using MIT pthreads Note that on Linux you should NOT use MIT pthreads but install LinuxThreads See section 310 4 11 5 Linux notes all Linux versions If your system does not provide native thread support you will need to build MySQL using the MIT pthreads package This includes most FreeBSD systems SunOS 4 x Solaris 2 4 and earlier and some others See section 311 4 2 Operating systems supported by MySQL On most systems you can force MIT pthreads to be used by running configure with the with mit threads option shell configure with mit threads Building in a non source directory is not supported when using MIT pthreads because we want to minimize our changes to this code MIT pthreads doesn t support the AF UNIX protocol used to implement Unix sockets This means that if you compile using MIT pthreads all connections must be made using TCP IP which is a little slower If you find after building MySQL that you cannot connect to the local server it may be that your client is attempting to connect to localhost using a Unix socket as the default Try making a TCP IP connection with mysql by using a host option h or host to specify the local host name explicitly The checks that determine whether or not to use MIT pthreads occur only during the part of the configuration process that deals with the server code If you have configured the distribution using without server to build only the client code clients will not know whether or not MIT pthreads is being used and will use Unix socket connections by default Since Unix sockets do not work under MIT pthreads this means you will need to use h or host when you run client programs When MySQL is compiled using MIT pthreads system locking is disabled by default for performance reasons You can tell the server to use system locking with the use locking option Sometimes the pthread bind command fails to bind to a socket without any error message at least on Solaris The result is that all connections to the server fail For example shell mysqladmin version mysqladmin connect to server at failed error Can t connect to mysql server on localhost 146 The solution to this is to kill the mysqld server and restart it This has only happened to us when we have forced the server down and done a restart immediately With MIT pthreads the sleep system call isn t interruptible with SIGINT break This is only noticeable when you run mysqladmin sleep You must wait for the sleep call to terminate before the interrupt is served and the process stops When linking you may receive warning messages like these at least on Solaris they can be ignored ld warning symbol iob has differing sizes file my local pthreads lib libpthread a findfp o value 0x4 file usr lib libc so value 0x140 my local pthreads lib libpthread a findfp o definition taken ld warning symbol iob has differing sizes file my local pthreads lib libpthread a findfp o value 0x4 file usr lib libc so value 0x140 my local pthreads lib libpthread a findfp o definition taken Some other warnings also can be ignored implicit declaration of function int strtoll implicit declaration of function int strtoul We haven t gotten readline to work with MIT pthreads This isn t needed but may be interesting for someone 312 4 10 Perl installation comments 313 4 10 1 Installing Perl on Unix Perl support for MySQL is provided by means of the DBI DBD client interface See section 314 19 5 MySQL Perl API The Perl DBD DBI client code requires Perl 5 004 or later The interface will not work if you have an older version of Perl MySQL Perl support also requires that you ve installed MySQL client programming support If you installed MySQL from RPM files client programs are in the client RPM but client programming support is in the developer RPM Make sure you ve installed the latter RPM As of release 3 22 8 Perl support is distributed separately from the main MySQL distribution If you want to install Perl support the files you will need can be obtained from 315 http www mysql com Contrib The Perl distributions are provided as compressed tar archives and have names like MODULE VERSION tar gz where MODULE is the module name and VERSION is the version number You should get the Data Dumper DBI and Msql Mysql modules distributions and install them in that order The installation procedure is shown below The example shown is for the Data Dumper module but the procedure is the same for all three distributions 1 Unpack the distribution into the current directory shell gunzip Data Dumper VERSION tar gz tar xvf This command creates a directory named Data Dumper VERSION 2 Change into the top level directory of the unpacked distribution shell cd Data Dumper VERSION 3 Build the distribution and compile everything shell perl Makefile PL shell make shell make test shell make install The make test command is important because it verifies that the module is working Note that when you run that command during the Msql Mysql modules installation to exercise the interface code the MySQL server must be running or the test will fail It is a good idea to rebuild and reinstall the Msql Mysql modules distribution whenever you install a new release of MySQL particularly if you notice symptoms such as all your DBI scripts dumping core after you upgrade MySQL If you don t have the right to install Perl modules in the system directory or if you to install local Perl modules the following reference may help you 316 http www iserver com support contrib perl5 modules html Look under the heading Installing New Modules that Require Locally Installed Modules 317 4 10 2 Installing ActiveState Perl on Win32 To install the MySQL DBD module with ActiveState Perl on Win32 you should do the following Open a DOS shell If required set the HTTP proxy variable For example you might try set HTTP proxy my proxy com 3128 Start the PPM program C perl bin ppm pl If you have not already done so install DBI install DBI If this succeeds install DBD mysql http www mysql com Contrib ppd DBD mysql ppd If you can t get the above to work you should instead install the MyODBC driver and connect to MySQL server through ODBC use DBI dbh DBI connect DBI ODBC dsn user password die Got error DBI errstr when connecting to dsn n 318 4 10 3 Installing the MySQL Perl distribution on Win32 The MySQL Perl distribution contains DBI DBD MySQL and DBD ODBC Get the Perl distribution for Win32 from 319 http www mysql com download html Unzip the distribution in C so that you get a C PERL directory Add the directory C PERL BIN to your path Add the directory C PERL BIN MSWin32 x86 thread or C PERL BIN MSWin32 x86 to your path Test that perl works by executing perl v in a DOS shell 320 4 10 4 Problems using the Perl DBI DBD interface If Perl reports that it can t find the mysql mysql so module then the problem is probably that Perl can t locate the shared library libmysqlclient so You can fix this by any of the following methods Compile the Msql Mysql modules distribution with perl Makefile PL static rather than perl Makefile PL Copy libmysqlclient so to the directory where your other shared libraries are located probably usr lib or lib On Linux you can add the pathname of the directory where libmysqlclient so is located to the etc ld so conf file Add the pathname of the directory where libmysqlclient so is located to the LD RUN PATH environment variable If you get the following errors from DBD mysql you are probably using gcc or using an old binary compiled with gcc usr bin perl can t resolve symbol moddi3 usr bin perl can t resolve symbol divdi3 Add L usr lib gcc lib lgcc to the link command when the mysql so library gets built check the output from make for mysql so when you compile the Perl client The L option should specify the pathname of the directory where libgcc a is located on your system Another cause of this problem may be that Perl and MySQL aren t both compiled with gcc In this case you can solve the mismatch by compiling both with gcc If you want to use the Perl module on a system that doesn t support dynamic linking like SCO you can generate a static version of Perl that includes DBI and DBD mysql The way this works is that you generate a version of Perl with the DBI code linked in and install it on top of your current Perl Then you use that to build a version of Perl that additionally has the DBD code linked in and install that On SCO you must have the following environment variables set shell LD LIBRARY PATH lib usr lib usr local lib usr progressive lib or shell LD LIBRARY PATH usr lib lib usr local lib usr ccs lib usr progressi ve lib usr skunk lib shell LIBPATH usr lib lib usr local lib usr ccs lib usr progressive lib usr skunk lib shell MANPATH scohelp usr man usr local1 man usr local man usr skunk man First create a Perl that includes a statically linked DBI by running these commands in the directory where your DBI distribution is located shell perl Makefile PL LINKTYPE static shell make shell make install shell make perl Then you must install the new Perl The output of make perl will indicate the exact make command you will need to execute to perform the installation On SCO this is make f Makefile aperl inst perl MAP TARGET perl Next use the just created Perl to create another Perl that also includes a statically linked DBD mysql by running these commands in the directory where your Msql Mysql modules distribution is located shell perl Makefile PL LINKTYPE static shell make shell make install shell make perl Finally you should install this new Perl Again the output of make perl indicates the command to use 321 4 11 System specific issues The following sections indicate some of the issues that have been observed to occur on particular systems when installing MySQL from a source distribution 322 4 11 1 Solaris notes On Solaris you may run into trouble even before you get the MySQL distribution unpacked Solaris tar can t handle long file names so you may see an error like this when you unpack MySQL x mysql 3 22 12 beta bench Results ATIS mysql odbc NT 4 0 cmp db2 informix ms s ql mysql oracle solid sybase 0 bytes 0 tape blocks tar directory checksum error In this case you must use GNU tar gtar to unpack the distribution You can find a precompiled copy for Solaris at 323 http www mysql com Downloads Sun native threads work only on Solaris 2 5 and higher For 2 4 and earlier versions MySQL will automatically use MIT pthreads See section 324 4 9 MIT pthreads notes If you are using Solaris on a SPARC the recommended compiler is egcs 1 1 2 or newer You can find this at 325 http egcs cygnus com Note that egs 1 1 1 and gcc 2 8 1 don t work reliably on SPARC The recommended configure line when using egcs 1 1 2 is shell CC gcc CFLAGS O6 CXX gcc CXXFLAGS O6 felide constructors fno exceptions fno rtti configure prefix usr local mysql with low memory If you have the Sun Workshop 4 2 compiler you can run configure like this CC cc CFLAGS xstrconst Xa xO4 native mt CXX CC CXXFLAGS xO4 native noex mt configure prefix usr local mysql shell CC cc CFLAGS Xa fast xO4 native xstrconst mt CXX CC CXXFLAGS noex XO4 mt configure You may also have to edit the configure script to change this line if defined STDC STDC 1 to this if defined STDC If you turn on STDC with the Xc option the Sun compiler can t compile with the Solaris pthread h header file This is a Sun bug broken compiler or broken include file If mysqld issues the error message shown below when you run it you have tried to compile MySQL with the Sun compiler without enabling the multi thread option mt libc internal error rmutex unlock rmutex not held Add mt to CFLAGS and CXXFLAGS and try again If you get the following error when compiling MySQL with gcc it means that your gcc is not configured for your version of Solaris shell gcc O3 g O2 DDBUG OFF o thr alarm thr alarm c In function signal hand thr alarm c 556 too many arguments to function sigwait The proper thing to do in this case is to get the newest version of egcs and compile it with your current gcc compiler At least for Solaris 2 5 almost all binary versions of gcc have old unusable include files that will break all programs that use threads and possibly other programs Solaris doesn t provide static versions of all system libraries libpthreads and libdl so you can t compile MySQL with static If you try to do so you will get the error ld fatal library ldl not found If too many processes try to connect very rapidly to mysqld you will see this error in the MySQL log Error in accept Protocol error You might try starting the server with the set variable back log 50 option as a workaround for this If you are linking your own MySQL client you might get the following error when you try to execute it ld so 1 my fatal libmysqlclient so open failed No such file or directo ry The problem can be avoided by one of the following methods Link the client with the following flag instead of Lpath Wl r full path to libmysqlclient so Copy libmysqclient so to usr lib Add the pathname of the directory where libmysqlclient so is located to the LD RUN PATH environment variable before running your client 326 4 11 2 Solaris 2 7 notes You can normally use a Solaris 2 6 binary on Solaris 2 7 Most of the Solaris 2 6 issues also apply for Solaris 2 7 Solaris 2 7 has some bugs in the include files You may see the following error when you use gcc usr include widec h 42 warning getwc redefined usr include wchar h 326 warning this is the location of the previous definition If this occurs you can do the following to fix the problem Copy usr include widec h to lib gcc lib os gcc version include and change line 41 from if defined lint defined lint to if defined lint defined lint defined getwc Alternatively you can edit usr include widec h directly Either way after you make the fix you should remove config cache and run configure again If you get errors like this when you run make it s because configure didn t detect the curses h file probably because of the error in usr include widec h In file included from mysql cc 50 usr include term h 1060 syntax error before usr include term h 1081 syntax error before The solution to this is to do one of the following steps Edit usr include widec h as indicted above and rerun configure Remove the define HAVE TERM line from config h file and run make again Configure with CFLAGS DHAVE CURSES CXXFLAGS DCURSES configure 327 4 11 3 Solaris x86 notes If you are using gcc or egcs on Solaris x86 and you experience problems with core dumps under load you should use the following configure command shell CC gcc CFLAGS O6 fomit frame pointer CXX gcc CXXFLAGS O6 fomit frame pointer felide constructors fno exceptions fno rtti configure prefix usr local mysql This will avoid problems with the libstdc library and with C exceptions If this doesn t help you should compile a debug version and run it with a trace file or under gdb See section 328 G 1 Debugging a MySQL server 329 4 11 4 SunOS 4 notes On SunOS 4 MIT pthreads is needed to compile MySQL which in turn means you will need GNU make Some SunOS 4 systems have problems with dynamic libraries and libtool You can use the following configure line to avoid this problem shell configure disable shared with mysqld ldflags all static When compiling readline you may get warnings about duplicate defines These may be ignored When compiling mysqld there will be some implicit declaration of function warnings These may be ignored 330 4 11 5 Linux notes all Linux versions MySQL uses LinuxThreads on Linux If you are using an old Linux version that doesn t have glibc2 you must install LinuxThreads before trying to compile MySQL 331 http www mysql com Downloads Linux If you can t start mysqld or if mysql install db doesn t work please continue reading This only happens on Linux system with problems in the LinuxThreads or libc glibc libraries There are a lot of simple workarounds to get MySQL to work The simplest is to use the binary version of MySQL not the RPM for Linux x86 One nice aspect of this version is that it s probably 10 faster than any version you would compile yourself See section 332 10 3 How compiling and linking affects the speed of MySQL One known problem with the binary distribution is that with older Linux systems that use libc like RedHat 4 x or Slackware you will get some non fatal problems with hostname resolution See section 333 4 6 3 1 Linux notes isamchk hangs with libc so 5 3 12 Upgrading to the newest libc fixes this problem When using LinuxThreads you will see a minimum of three processes running These are in fact threads There will be one thread for the LinuxThreads manager one thread to handle connections and one thread to handle alarms and signals If you see a dead mysqld daemon process with ps this usually means that you have found a bug in MySQL or you have got a corrupted table See section 334 17 1 What to do if MySQL keeps crashing If you are using LinuxThreads and mysqladmin shutdown doesn t work you must upgrade to LinuxThreads 0 7 1 or newer If you are using RedHat you might get errors like this usr bin perl is needed usr sh is needed usr sh is needed If so you should upgrade your version of rpm to rpm 2 4 11 1 i386 rpm and rpm devel 2 4 11 1 i386 rpm or later You can get the upgrades of libraries to RedHat 4 2 from 335 ftp ftp redhat com updates 4 2 i386 Or 336 http www sunsite unc edu pub Linux distributions redhat code rp m for other distributions If you are linking your own MySQL client and get the error ld so 1 my fatal libmysqlclient so 4 open failed No such file or directo ry when executing them the problem can be avoided by one of the following methods Link the client with the following flag instead of Lpath Wl r path libmysqlclient so Copy libmysqclient so to usr lib Add the pathname of the directory where libmysqlclient so is located to the LD RUN PATH environment variable before running your client If you are using the Fujitsu compiler fcc FCC you will have some problems compiling MySQL because the Linux header files are very gcc oriented The following configure line should work with fcc FCC CC fcc CFLAGS O K fast K lib K omitfp Kpreex D GNU SOURCE DCONST const DNO STRTOLL PROTO CXX FCC CXXFLAGS O K fast K lib K omitfp K preex n o exceptions no rtti D GNU SOURCE DCONST const Dalloca builtin alloca D NO STRTOLL PROTO D EXTERN INLINE static inline configure prefix usr local mysql enable assembler with mysqld ldflags all static disable shar ed with low memory 337 4 11 5 1 Linux x86 notes MySQL requires libc version 5 4 12 or newer It s known to work with libc 5 4 46 glibc version 2 0 6 and later should also work There have been some problems with the glibc RPMs from RedHat so if you have problems check whether or not there are any updates The glibc 2 0 7 19 and 2 0 7 29 RPMs are known to work On some older Linux distributions configure may produce an error like this Syntax error in sched h Change P to P in the usr include sched h file See the Installation chapter in the Reference Manual Just do what the error message says and add an extra underscore to the P macro that has only one underscore then try again You may get some warnings when compiling those shown below can be ignored mysqld cc o objs thread mysqld o mysqld cc In function void init signals mysqld cc 315 warning assignment of negative value 1 to long unsigned int mysqld cc In function void signal hand void mysqld cc 346 warning assignment of negative value 1 to long unsigned int In Debian GNU Linux if you want MySQL to start automatically when the system boots do the following shell cp support files mysql server etc init d mysql server shell usr sbin update rc d mysql server defaults 99 mysql server can be found in the share mysql directory under the MySQL installation directory or in the support files directory of the MySQL source tree If mysqld always core dumps when it starts up the problem may be that you have an old lib libc a Try renaming it then remove sql mysqld and do a new make install and try again This problem has been reported on some Slackware installations RedHat 5 0 has also a similar problem with some new glibc versions See section 338 4 11 5 2 RedHat 5 0 notes If you get the following error when linking mysqld it means that your libg a is not installed correctly usr lib libc a putc o In function IO putc putc o text 0x0 multiple definition of IO putc You can avoid using libg a by running configure like this shell CXX gcc configure 339 4 11 5 2 RedHat 5 0 notes If you have any problems with MySQL on RedHat you should start by upgrading glibc to the newest possible version If you install all the official RedHat patches including glibc 2 0 7 19 and glibc devel 2 0 7 19 both the binary and source distributions of MySQL should work without any trouble The updates are needed since there is a bug in glibc 2 0 5 in how pthread key create variables are freed With glibc 2 0 5 you must use a statically linked MySQL binary distribution If you want to compile from source you must install the corrected version of LinuxThreads from 340 http www mysql com Downloads Linux or upgrade your glibc If you have an incorrect version of glibc or LinuxThreads the symptom is that mysqld crashes after each connection For example mysqladmin version will crash mysqld when it finishes Another symptom of incorrect libraries is that mysqld crashes at once when it starts On some Linux systems this can be fixed by configuring like this shell configure with mysqld ldflags all static On Redhat 5 0 the easy way out is to install the glibc 2 0 7 19 RPM and run configure without the with mysqld ldflags all static option For the source distribution of glibc 2 0 7 a patch that is easy to apply and is tested with MySQL may be found at 341 http www mysql com Download Linux glibc 2 0 7 total patch tar gz If you experience crashes like these when you build MySQL you can always download the newest binary version of MySQL This is statically linked to avoid library conflicts and should work on all Linux systems MySQL comes with an internal debugger that can generate trace files with a lot of information that can be used to find and solve a wide range of different problems See section 342 G 1 Debugging a MySQL server 343 4 11 5 3 RedHat 5 1 notes The glibc of RedHat 5 1 glibc 2 0 7 13 has a memory leak so to get a stable MySQL version you must upgrade glibc to 2 0 7 19 downgrade glibc or use a binary version of mysqld If you don t do this you will encounter memory problems out of memory etc etc The most common error in this case is Can t create a new thread errno 11 If you are not out of available memory you can consult the manual for any possible OS dependent bug After you have upgraded to glibc 2 0 7 19 you can configure MySQL with dynamic linking the default but you cannot run configure with the with mysqld ldflags all static option until you have installed glibc 2 0 7 19 from source You can check which version of glibc you have with rpm q glibc 344 4 11 5 4 Linux SPARC notes In some implementations readdir r is broken The symptom is that SHOW DATABASES always returns an empty set This can be fixed by removing HAVE READDIR R from config h after configuring and before compiling Some problems will require patching your Linux installation The patch can be found at 345 http www mysql com patches Linux sparc 2 0 30 diff This patch is against the Linux distribution sparclinux 2 0 30 tar gz that is available at vger rutgers edu a version of Linux that was never merged with the official 2 0 30 You must also install LinuxThreads 0 6 or newer Thanks to 346 jacques solucorp qc ca for this information 347 4 11 5 5 Linux Alpha notes The big problem on Linux Alpha is that there are still some problems with threads in glibc on this platform You should start by getting the newest glibc version you can find Note that before you run any programs that use threads like mysqld thr alarm or thr lock you should raise the shared memory limit with ulimit The MySQL benchmarks are known to fail if you forget to do this Configure MySQL with the following command shell CC gcc CCFLAGS Dalpha linux port CXX gcc CXXFLAGS O3 Dalpha linux port felide constructors fno excep tions fno rtti configure prefix usr local mysql Try to compile mysys thr lock and mysys thr alarm Test that these programs work Invoke each one with no arguments Each should end with test succeeded if everything was okay After installing MySQL uncomment the ulimit command in safe mysqld and add options to increase shared memory Note that Linux Alpha is still an alpha quality platform for MySQL With the newest glibc you have a very good chance of it working If you have problems with signals MySQL dies unexpectedly under high load you may have found an OS bug with threads and signals In this case you can tell MySQL not to use signals by configuring with shell CFLAGS DDONT USE THR ALARM CXXFLAGS DDONT USE THR ALARM configure This doesn t affect the performance of MySQL but has the side effect that you can t kill clients that are sleeping on a connection with mysqladmin kill or mysqladmin shutdown Instead the client will die when it issues its next command 348 4 11 5 6 MkLinux notes MySQL should work on MkLinux with the newest glibc package tested with glibc 2 0 7 349 4 11 6 Alpha DEC Unix notes When compiling threaded programs under Digital UNIX the documentation recommends using the pthread option for cc and cxx and the libraries lmach lexc in addition to lpthread You should run configure something like this shell CC cc pthread CXX cxx pthread O configure with named thread libs lpthread lmach lexc lc When compiling mysqld you may see a couple of warnings like this mysqld cc In function void handle connections mysqld cc 626 passing long unsigned int as argument 3 of accept int sockadddr int You can safely ignore these warnings They occur because configure can detect only errors not warnings If you start the server directly from the command line you may have problems with it dying when you log out When you log out your outstanding processes receive a SIGHUP signal If so try starting the server like this shell nohup mysqld options nohup causes the command following it to ignore any SIGHUP signal sent from the terminal Alternatively start the server by running safe mysqld which invokes mysqld using nohup for you 350 4 11 7 Alpha DEC OSF1 notes If you have problems compiling and have DEC CC and gcc installed try running configure like this shell CC cc CFLAGS O CXX gcc CXXFLAGS O3 configure prefix usr local mysql If you get problems with the c asm h file you can create and use a dummy c asm h file with shell touch include c asm h shell CC gcc CFLAGS I include CXX gcc CXXFLAGS O3 configure prefix usr local mysql On OSF1 V4 0D and compiler DEC C V5 6 071 on Digital UNIX V4 0 Rev 878 the compiler had some strange behavior undefined asm symbols bin ld also appears to be broken problems with exit undefined errors occuring while linking mysqld On this system we have managed to compile MySQL with the following configure line after replacing bin ld with the version from OSF 4 0C shell CC gcc CXX gcc CXXFLAGS O3 configure prefix usr local mysql In some versions of OSF1 the alloca function is broken Fix this by removing the line in config h that defines HAVE ALLOCA The alloca function also may have an incorrect prototype in usr include alloca h This warning resulting from this can be ignored configure will use the following thread libraries automatically with named thread libs lpthread lmach lexc lc When using gcc you can also try running configure like this shell CFLAGS D PTHREAD USE D4 CXX gcc CXXFLAGS O3 configure If you have problems with signals MySQL dies unexpectedly under high load you may have found an OS bug with threads and signals In this case you can tell MySQL not to use signals by configuring with shell CFLAGS DDONT USE THR ALARM CXXFLAGS DDONT USE THR ALARM configure This doesn t affect the performance of MySQL but has the side effect that you can t kill clients that are sleeping on a connection with mysqladmin kill or mysqladmin shutdown Instead the client will die when it issues its next command 351 4 11 8 SGI Irix notes You may have to undefine some things in config h after running configure and before compiling In some Irix implementations the alloca function is broken If the mysqld server dies on some SELECT statements remove the lines from config h that define HAVE ALLOC and HAVE ALLOCA H If mysqladmin create doesn t work remove the line from config h that defines HAVE READDIR R You may have to remove the HAVE TERM H line as well SGI recommends that you install all of the patches on this page as a set http support sgi com surfzone patches patchset 6 2 indigo rps html At the very minimum you should install the latest kernel rollup the latest rld rollup and the latest libc rollup You definately need all the POSIX patches on this page for pthreads support http support sgi com surfzone patches patchset 6 2 posix rps html If you get the something like the following error when compiling mysql cc usr include curses h line 82 error 1084 invalid combination of type Then type the following in the top level directory of your MySQL source tree shell extra replace bool curses bool usr include curses h include curses h shell make There have also been reports of scheduling problems If only one thread is running things go slow Avoid this by starting another client This may lead to a 2 to 10 fold increase in execution speed thereafter for the other thread This is a poorly understood problem with Irix threads you may have to improvise to find solutions until this can be fixed If you are compiling with gcc you can use the following configure command shell CC gcc CXX gcc CXXFLAGS O3 configure prefix usr local mysql with thread safe client with n amed thread libs lpthread 352 4 11 9 FreeBSD notes If you notice that configure will use MIT pthreads you should read the MIT pthreads notes See section 353 4 9 MIT pthreads notes If you get an error from make install that it can t find usr include pthreads configure didn t detect that you need MIT pthreads This is fixed by executing these commands shell rm config cache shell configure with mit threads The behavior of FreeBSD make is slightly different from that of GNU make If you have make related problems you should install GNU make If mysql or mysqladmin takes a long time to respond a user said the following Are you running the ppp user process On one FreeBSD box 2 2 5 MySQL clients takes a couple of seconds to connect to mysqld if the ppp process is running FreeBSD is also known to have a very low default file handle limit See section 354 17 10 File not found If you have a problem with SELECT NOW returning values in GMT and not your local time you have to set the TZ environment variable to your current timezone This should be done for the environment in which the server runs for example in safe mysqld or mysql server Make sure that the localhost entry in the etc hosts file is correct otherwise you will have problems connecting to the database The etc hosts file should start with a line 127 0 0 1 localhost localhost your domain If you are using FreeBSD 2 2 6 don t forget to apply the ttcp and mmap 22 patches to the OS for security reasons Please see 355 http www freebsd org for these CERT patches If you are using FreeBSD 2 2 7 and you have problems killing the mysqld daemon you should get new sources using cvsup and recompile libc r 356 4 11 9 1 FreeBSD 3 0 notes You have to run configure with the with named thread libs lc r option The pthreads library for FreeBSD doesn t contain the sigwait function and there are some bugs in it To fix this get the FreeBSD 3 0 libc r 1 0 diff file from the 357 FreeBSD area of the MySQL FTP site and apply it in the usr src lib libc r uthread directory Then follow the instructions that can be found with man pthread about how to recompile the libc r library You can test if you have a modern libpthread a with this command shell nm usr lib libc r a grep sigwait If the above doesn t find sigwait you must use the patch above and recompile libc r 358 4 11 10 BSD OS notes 359 4 11 10 1 BSD OS 2 x notes If you get the following error when compiling MySQL your ulimit value for virtual memory is too low item func h In method Item func ge Item func ge const Item func ge item func h 28 virtual memory exhausted make 2 item func o Error 1 Try using ulimit v 80000 and run make again If this doesn t work and you are using bash try switching to csh or sh some BSDI users have reported problems with bash and ulimit If you are using gcc you may also use have to use the with low memory flag for configure to be able to compile sql yacc cc If you have a problem with SELECT NOW returning values in GMT and not your local time you have to set the TZ environment variable to your current timezone This should be done for the environment in which the server runs for example in safe mysqld or mysql server 360 4 11 10 2 BSD OS 3 x notes Upgrade to BSD OS 3 1 If that is not possible install BSDIpatch M300 038 Use the following command when configuring MySQL shell env CXX shlicc CC shlicc2 configure prefix usr local mysql localstatedir var mysql without perl with unix socket path var mysql mysql sock The following is also known to work shell env CC gcc CXX gcc CXXFLAGS O3 configure prefix usr local mysql with unix socket path var mysql mysql sock You can change the directory locations if you wish or just use the defaults by not specifying any locations If you have problems with performance under heavy load try using the skip thread priority option to safe mysqld This will run all threads with the same priority on BSDI 3 1 this gives better performance at least until BSDI fixes their thread scheduler If you get the error virtual memory exhausted while compiling you should try using ulimit v 80000 and run make again If this doesn t work and you are using bash try switching to csh or sh some BSDI users have reported problems with bash and ulimit 361 4 11 10 3 BSD OS 4 x notes BSDI 4 x has some thread related bugs If you want to use MySQL on this you should install all thread related patches At least M400 023 should be installed 362 4 11 11 SCO notes The current port is tested only on a sco3 2v5 0 4 and sco3 2v5 0 5 system There has also been a lot of progress on a port to sco 3 2v4 2 1 For OpenServer 5 0 X you need to use GDS in Skunkware 95 95q4c This is necessary because GNU gcc 2 7 2 in Skunkware 97 does not have GNU as You can also use egcs 1 1 2 or newer 363 http www egcs com If you are using egcs 1 1 2 you have to execute the following command shell cp p usr include pthread stdtypes h usr local lib gcc lib i386 pc sco 3 2v5 0 5 egcs 2 91 66 include pthread 2 You need the port of GCC 2 5 for this product and the Development system They are required on this version of SCO UNIX You cannot just use the GCC Dev system 3 You should get the FSU Pthreads package and install it first This can be found at 364 http www cs wustl edu schmidt ACE wrappers FSU threads tar gz You can also get a precompiled package from 365 ftp www mysql com pub mysql Downloads SCO FSU threads 3 5c tar gz 4 FSU Pthreads can be compiled with SCO UNIX 4 2 with tcpip Or OpenServer 3 0 or Open Desktop 3 0 OS 3 0 ODT 3 0 with the SCO Development System installed using a good port of GCC 2 5 X ODT or OS 3 0 you will need a good port of GCC 2 5 There are a lot of problems without a good port The port for this product requires the SCO UNIX Development system Without it you are missing the libraries and the linker that is needed 5 To build FSU Pthreads on your system do the following 1 Run configure in the threads src directory and select the SCO OpenServer option This command copies Makefile SCO5 to Makefile 2 Run make 3 To install in the default usr include directory login as root then cd to the thread src directory and run make install 6 Remember to use GNU make when making MySQL 7 On OSR 5 0 5 you should use the following configure line shell CC gcc DSCO CXX gcc DSCO configure The DSCO is needed to help configure detect some thread functions properly If you forget DSCO you will get the following error message while compiling my pthread c In function my pthread mutex init my pthread c 374 pthread mutexattr default undeclared first use this functi on 8 If you don t start safe mysqld as root you probably will get only the default 110 open files per process mysqld will write a note about this in the log file 9 With SCO 3 2V5 0 5 you should use a FSU Pthreads version 3 5c or newer The following configure command should work shell CC gcc belf configure prefix usr local mysql disable shared 10 With SCO 3 2V4 2 you should use a FSU Pthreads version 3 5c or newer The following configure command should work shell CFLAGS D XOPEN XPG4 CXX gcc CXXFLAGS D XOPEN XPG4 configure with debug prefix usr local mysql with named thread libs lgthreads lsocket lgen lgthreads with named curses libs lcurses You may get some problems with some include files In this case you can find new SCO specific include files at 366 ftp www mysql com pub mysql Downloads SCO SCO 3 2v4 2 inclu des tar gz You should unpack this file in the include directory of your MySQL source tree SCO development notes MySQL should automatically detect FSU Pthreads and link mysqld with lgthreads lsocket lgthreads The SCO development libraries are reentrant in FSU Pthreads SCO claims that its libraries functions are reentrant so they must be reentrant with FSU Pthreads FSU Pthreads on OpenServer tries to use the SCO scheme to make reentrant library FSU Pthreads at least the version at www mysql com comes linked with GNU malloc If you encounter problems with memory usage make sure that gmalloc o is included in libgthreads a and libgthreads so In FSU Pthreads the following system calls are pthreads aware read write getmsg connect accept select and wait If you want to install DBI on SCO you have to edit the Makefiles in DBI xxx and each subdirectory OLD NEW CC cc CC gcc belf CCCDLFLAGS KPIC W1 Bexport CCCDLFLAGS fpic CCDLFLAGS wl Bexport CCDLFLAGS LD ld LD gcc belf G fpic LDDLFLAGS G L usr local lib LDDLFLAGS L usr local lib LDFLAGS belf L usr local lib LDFLAGS L usr local lib LD ld LD gcc belf G fpic OPTIMISE Od OPTIMISE O1 OLD CCCFLAGS belf dy w0 U M XENIX DPERL SCO5 I usr local include NEW CCFLAGS U M XENIX DPERL SCO5 I usr local include This is because the Perl dynaloader will not load the DBI modules if they were compiled with icc or cc Perl works best when compiled with cc 367 4 11 12 SCO Unixware 7 0 notes You must use a version of MySQL at least as recent as 3 22 13 since that version fixes some portability problems under Unixware We have been able to compile MySQL with the following configure command on UnixWare 7 0 1 shell CC cc CXX CC configure prefix usr local mysql 368 4 11 13 IBM AIX notes Automatic detection of xlC is missing from Autoconf so a configure command something like this is needed when using the IBM compiler shell CC xlc r ma O3 qstrict CXX xlC r ma O3 qstrict configure If you are using egcs to compile MySQL you MUST use the fno exceptions flag as the exception handling in egcs is not thread safe This is tested with egcs 1 1 We recommend the following configure line with egcs and gcc on AIX shell CXX gcc CXXFLAGS felide constructors fno exceptions fno rtti configure prefix home monty with debug with low memory If you have problems with signals MySQL dies unexpectedly under high load you may have found an OS bug with threads and signals In this case you can tell MySQL not to use signals by configuring with shell CFLAGS DDONT USE THR ALARM CXX gcc CXXFLAGS felide constructors fno exceptions fno rtti DDONT USE THR ALARM configure prefix home monty with debug with low memory This doesn t affect the performance of MySQL but has the side effect that you can t kill clients that are sleeping on a connection with mysqladmin kill or mysqladmin shutdown Instead the client will die when it issues its next command 369 4 11 14 HP UX notes There are a couple of small problems when compiling MySQL on HP UX We recommend that you use gcc instead of the HP UX native compiler because gcc produces better code gcc 2 8 0 can t compile readline on HP UX an internal compiler error occurs if you are compiling with O6 On the other hand MIT pthreads can t be compiled with the HP UX compiler because it can t compile S assembler files We got MySQL to compile on HP UX 10 20 by doing the following shell CC gcc CXX gcc configure prefix usr local mysql with low memory shell cd readline shell edit Makefile and change O6 to something lower shell cd shell make shell make install shell scripts mysql install db shell usr local mysql bin safe mysqld 370 4 12 Win32 notes This section describes installation and use of MySQL on Win32 This is also described in the README file that comes with the MySQL Win32 distribution 371 4 12 1 Installing MySQL on Win32 If you don t have a registered version of MySQL you should first download the shareware version from 372 MySQL 3 21 29 If you plan to connect to MySQL from some other program you will probably also need the MyODBC driver You can find this at 373 MySQL download page To install either distribution unzip it in some empty directory and run the Setup exe program Installation takes place in C mysql 374 4 12 2 Starting MySQL on Win95 Win98 MySQL uses TCP IP to connect a client to a server This will allow any machine on your network to connect to your MySQL server Because of this you must install TCP IP on your machine before starting MySQL You can find TCP IP on your Windows CD ROM Note that if you are using an old Win95 release for example OSR2 it s likely that you have an old Winsock package MySQL requires Winsock 2 You can get the newest Winsock from 375 Microsoft Win98 has as default the new Winsock 2 library so the above doesn t apply for Win98 There are 2 different MySQL servers you can use mysqld Compiled with full debugging and automatic memory allocation checking mysqld opt Optimized for a Pentium processor Both of the above should work on any Intel processor i386 To start the mysqld server you should start a MS DOS window and type C mysql bin mysqld This will start mysqld in the background without a window You can kill the MySQL server by executing C mysql bin mysqladmin u root shutdown Note that Win95 Win98 don t support creation of named pipes On Win95 Win98 you can only use named pipes to connect to a remote MySQL running on an NT server 376 4 12 3 Starting MySQL on NT The Win95 Win98 section also applies to MySQL on NT with the following differences To get MySQL to work with TCP IP you must install service pack 3 or newer For NT the server name is mysqld nt Normally you should install MySQL as a service on NT C mysql bin mysqld nt install You could use the mysqld or mysqld opt servers on NT but those cannot be started as a service or use named pipes You can start and stop the MySQL service with NET START mysql NET STOP mysql Note that in this case you can t use any other options for mysqld nt You can also run mysqld nt as a standalone program on NT if you need to start mysqld nt with any options If you start mysqld nt without options on NT mysqld nt tries to starts itself as a service with the default service options If you have stopped mysqld nt you have to start it with NET START mysql The service is installed with the name MySql Once installed it must be started using Services Control Manager SCM Utility found in Control Panel or by using the NET START MySQL command If any options are desired they must be specified as Startup parameters in the SCM utility before you start the MySQL service Once running mysqld nt can be stopped using mysqladmin or from the SCM utility or by using the command NET STOP MySQL If you use SCM to stop mysqld nt there is a strange message from SCM about mysqld shutdown normally When run as a service mysqld nt has no access to a console and so no messages can be seen On NT you can get the following service error messages Permission Denied Means that it cannot find mysqld nt exe Cannot Register Means that the path is incorrect If you have problems installing mysqld nt as a service try starting it with the full path C mysql bin mysqld install If this doesn t work you can get mysqld nt to start properly by fixing the path in the registry If you don t want to start mysqld nt as a service you can start it as follows C mysql bin mysqld nt standalone or C mysql bin mysqld nt standalone debug The last version gives you a debug trace in C mysqld trace 377 4 12 4 Running MySQL on Win32 MySQL supports TCP IP on all Win32 platforms and named pipes on NT The default is to use named pipes for local connections on NT and TCP IP for all other cases if the client has TCP IP installed The host name specifies which protocol is used Host name protocol NULL none On NT try named pipes first if that doesn t work use TCP IP On Win95 Win98 TCP IP is used Named pipes localhost TCP IP to current host hostname TCP IP You can force a MySQL client to use named pipes by specifying the pipe option Use the socket option to specify the name of the pipe You can test whether or not MySQL is working by executing the following commands C mysql bin mysqlshow C mysql bin mysqlshow u root mysql C mysql bin mysqladmin version status proc C mysql bin mysql test By default MySQL Win32 is configured to be installed in C mysql If you want to install MySQL elsewhere install it in C mysql then move the installation to where you want it If you do move MySQL you must tell mysqld where everything is by supplying options to mysqld Use C mysql bin mysqld help to display all options If for example you have moved the MySQL distribution to D programs mysql you must start mysqld with D programs mysql bin mysqld basedir D programs mysql With the registered version of MySQL you can also create a C my cnf file that holds any default options for the MySQL server Copy the file mysql my example cnf to C my cnf and edit this to suit your setup Note that you should specify all paths with instead of If you use you need to specify this twice as is the escape character in MySQL See section 378 4 15 4 Option files If mysqld is slow to answer to connections on Win95 Win98 there is probably a problem with your DNS In this case start mysqld with skip name resolve and use only localhost and IP numbers in the MySQL grant tables You can also avoid DNS when connecting to a mysqld nt MySQL server running on NT by using the pipe argument to specify use of named pipes This works for most MySQL clients There are two versions of the MySQL command line tool mysql Compiled on native Win32 which offers very limited text editing capabilities mysqlc Compiled with the Cygnus GNU compiler and libraries which offers readline editing If you want to use mysqlc exe you must copy C mysql lib cygwinb19 dll to windows system or similar place The default privileges on Win32 give all local users full privileges to all databases To make MySQL more secure you should set a password for all users and remove the row in the mysql user table that has Host localhost and User You should also add a password for the root user C mysql bin mysql mysql mysql DELETE FROM user WHERE Host localhost AND User mysql QUIT C mysql bin mysqladmin reload C mysql bin mysqladmin u root password your password After you ve set the password if you want to take down the mysqld server you can do so using this command mysqladmin user root password your password shutdown 379 4 12 5 Connecting to a remote MySQL from Win32 with SSH Here is a note about how to connect to get a secure connection to remote MySQL server with SSH by David Carlson Install SSH client on your windows machine I used a free SSH client from 380 http www doc ic ac uk ci2 ssh Other useful links 381 http www npaci edu Security npaci security software html and 382 http www npaci edu Security samples ssh32 windows index htm l Start SSH Set Host Name yourmysqlserver name or IP address Set userid your userid to log in to your server Click on local forwards Set local port 3306 host localhost remote port 3306 Save everything otherwise you ll have to redo it the next time Log in to your server with SSH Start some ODBC application for example Access Create a new file and link to mySQL using the ODBC driver the same way you normally do except for server user localhost That s it It works very well with a direct Internet connection I m having problems with SSH conflicting with my Win95 network and Wingate but that ll be the topic of a posting on another software company s usegroup 383 4 12 6 MySQL Win32 compared to Unix MySQL MySQL Win32 has by now proven itself to be very stable This version of MySQL has the same features as the corresponding Unix version with the following exceptions Win95 and threads Win95 leaks about 200 bytes of main memory for each thread creation Because of this you shouldn t run mysqld for an extended time on Win95 if you do many connections since each connection in MySQL creates a new thread NT and Win98 don t suffer from this bug Blocking read MySQL uses a blocking read for each connection This means that A connection will not be disconnected automatically after 8 hours as happens with the Unix version of MySQL If a connection hangs it s impossible to break it without killing MySQL mysqladmin kill will not work on a sleeping connection mysqladmin shutdown can t abort as long as there are sleeping connections We plan to fix this in the near future UDF functions For the moment MySQL Win32 does not support user definable functions DROP DATABASE You can t drop a database that is in use by some thread Killing MySQL from the task manager You can t kill MySQL from the task manager or with the shutdown utility in Windows95 You must take it down with mysqladmin shutdown Case insensitive names Filenames are case insensitive on Win32 so database and table names are also case insensitive in MySQL for Win32 The only restriction is that database and table names must be given in the same case throughout a given statement The following query would not work because it refers to a table both as my table and as MY TABLE SELECT FROM my table WHERE MY TABLE col 1 The directory character Pathname components in Win95 are separated by characters which is also the escape character in MySQL If you are using LOAD DATA INFILE or SELECT INTO OUTFILE you must double the character or use Unix style filenames characters LOAD DATA INFILE C tmp skr txt INTO TABLE skr SELECT FROM skr INTO OUTFILE C tmp skr txt Can t open named pipe error If you use the shareware version of MySQL Win32 on NT with the newest mysql clients you will get the following error error 2017 can t open named pipe to host pipe This is because the release version of MySQL uses named pipes on NT by default You can avoid this error by using the host localhost option to the new MySQL clients or create a file C my cnf that contains the following information client host localhost Access denied for user error If you get the error Access denied for user some user unknown to database mysql when accessing a MySQL server on the same machine this means that MySQL can t resolve your host name properly To fix this you should create a file windows hosts with the following information 127 0 0 1 localhost Here are some open issues for anyone who might want to help us with the Win32 release Make a single user MYSQL DLL server This should include everything in a standard MySQL server except thread creation This will make MySQL much easier to use in applications that don t need a true client server and don t need to access the server from other hosts Add some nice start and shutdown icons to the MySQL installation Create a tool to manage registry entries for the MySQL startup options The registry entry reading is already coded into mysqld cc but it should be recoded to be more parameter oriented The tool should also be able to update the my cnf file if the user would prefer to use this instead of the registry When registering mysqld as a service with install on NT it would be nice if you could also add default options on the command line For the moment the workaround is to update the C my cnf file instead When you suspend a laptop running Win95 the mysqld daemon doesn t accept new connections when the laptop is resumed We don t know if this is a problem with Win95 TCP IP or MySQL It would be real nice to be able to kill mysqld from the task manager For the moment you must use mysqladmin shutdown Port readline to Win32 for use in the mysql command line tool GUI versions of the standard MySQL clients mysql mysqlshow mysqladmin and mysqldump would be nice It would be nice if the socket read and write functions in net c were interruptible This would make it possible to kill open threads with mysqladmin kill on Win32 Documentation of which Windows programs work with MySQL Win32 MyODBC and what must be done to get them working mysqld always starts in the C locale and not in the default locale We would like to have mysqld use the current locale for the sort order Port sqlclient to Win32 almost done and add more features to it Add more options to MysqlManager Change the communication protocol between the server and client to use Windows internal communication instead of sockets and TCP IP Implement UDF functions with DLLs Add macros to use the faster thread safe increment decrement methods provided by Win32 Other Win32 specific issues are described in the README file that comes with the MySQL Win32 distribution 384 4 13 OS 2 notes MySQL uses quite a few open files Because of this you should add something like the following to your CONFIG SYS file SET EMXOPT c n h1024 If you don t do this you will probably run into the following error File xxxx not found Errcode 24 When using MySQL with OS 2 Warp 3 FixPack 29 or above is required With OS 2 Warp 4 FixPack 4 or above is required This is a requirement of the Pthreads library MySQL must be installed in a partition that supports long file names such as HPFS FAT32 etc The INSTALL CMD script must be run from OS 2 s own CMD EXE and may not work with replacement shells such as 4OS2 EXE The scripts mysql install db script has been renamed it is now called install cmd and is a REXX script which will set up the default MySQL security settings and create the WorkPlace Shell icons for MySQL Dynamic module support is compiled in but not fully tested Dynamic modules should be compiled using the Pthreads runtime library gcc Zdll Zmt Zcrtdll pthrdrtl I include I regex I o example udf example cc L lib lmysqlclient udf example def mv example dll example udf Note Due to limitations in OS 2 UDF module name stems must not exceed 8 characters Modules are stored in the mysql2 udf directory the safe mysqld cmd script will put this directory in the BEGINLIBPATH environment variable When using UDF modules specified extensions are ignored it is assumed to be udf For example in Unix the shared module might be named example so and you would load a function from it like this CREATE FUNCTION metaphon RETURNS STRING SONAME example so Is OS 2 the module would be named example udf but you would not specify the module extension CREATE FUNCTION metaphon RETURNS STRING SONAME example 385 4 14 TcX binaries As a service TcX provides a set of binary distributions of MySQL that are compiled at TcX or at sites where customers kindly have given us access to their machines These distributions are generated with scripts make binary distribution and are configured with the following compilers and options SunOS 4 1 4 2 sun4c with gcc 2 7 2 1 CC gcc CXX gcc CXXFLAGS O3 configure prefix usr local mysql disable shared SunOS 5 5 1 sun4u with egcs 1 0 3a CC gcc CFLAGS O6 fomit frame pointer CXX gcc CXXFLAGS O6 fomit frame pointer felide constructors fno exceptions fno rtti configure prefix usr local mysql with low memory SunOS 5 6 sun4u with egcs 2 90 27 CC gcc CFLAGS O6 fomit frame pointer CXX gcc CXXFLAGS O6 fomit frame pointer felide constructors fno exceptions fno rtti configure prefix usr local mysql with low memory SunOS 5 6 i86pc with gcc 2 8 1 CC gcc CXX gcc CXXFLAGS O3 configure prefix usr local mysql with low memory Linux 2 0 33 i386 with pgcc 2 90 29 egcs 1 0 3a CFLAGS O6 mpentium mstack align double fomit frame pointer CXX gcc CXXFLAGS O6 mpentium mstack align double fomit frame pointer felide constructors fno exceptions fno rtti configure prefix usr local mysql enable assembler with mysqld ldflags all static SCO 3 2v5 0 4 i386 with gcc 2 7 95q4 CC gcc CXX gcc CXXFLAGS O3 configure prefix usr local mysql AIX 2 4 with gcc 2 7 2 2 CC gcc CXX gcc CXXFLAGS O3 configure prefix usr local mysql OSF1 V4 0 564 alpha with gcc 2 8 1 CC gcc CFLAGS O CXX gcc CXXFLAGS O3 configure prefix usr local mysql with low memory Irix 6 3 IP32 with gcc 2 8 0 CC gcc CXX gcc CXXFLAGS O3 configure prefix usr local mysql BSDI BSD OS 3 1 i386 with gcc 2 7 2 1 CC gcc CXX gcc CXXFLAGS O configure prefix usr local mysql BSDI BSD OS 2 1 i386 with gcc 2 7 2 CC gcc CXX gcc CXXFLAGS O3 configure prefix usr local mysql Anyone who has more optimal options for any of the configurations listed above can always mail them to the developer s mailing list at RPM distributions prior to MySQL 3 22 are user contributed Beginning with 3 22 some RPMs are TcX generated 386 4 15 Post installation setup and testing Once you ve installed MySQL from either a binary or source distribution you need to initialize the grant tables start the server and make sure that the server works okay You may also wish to arrange for the server to be started and stopped automatically when your system starts up and shuts down Normally you install the grant tables and start the server like this shell scripts mysql install db shell cd mysql installation directory shell bin safe mysqld Testing is most easily done from the top level directory of the MySQL distribution For a binary distribution this is your installation directory typically something like usr local mysql For a source distribution this is the main directory of your MySQL source tree In the commands shown below in this section and in the following subsections BINDIR is the path to the location in which programs like mysqladmin and safe mysqld are installed For a binary distribution this is the bin directory within the distribution For a source distribution BINDIR is probably usr local bin unless you specified an installation directory other than usr local when you ran configure EXECDIR is the location in which the mysqld server is installed For a binary distribution this is the same as BINDIR For a source distribution EXECDIR is probably usr local libexec Testing is described in detail below 1 If necessary start the mysqld server and set up the initial MySQL grant tables containing the privileges that determine how users are allowed to connect to the server This is normally done with the mysql install db script shell scripts mysql install db Normally mysql install db needs to be run only the first time you install MySQL Therefore if you are upgrading an existing installation you can skip this step However mysql install db is quite safe to use and will not update any tables that already exist so if you are unsure what to do you can always run mysql install db mysql install db creates six tables user db host tables priv columns priv and func in the mysql database A description of the initial privileges is given in section 387 6 10 Setting up the initial MySQL privileges Briefly these privileges allow the MySQL root user to do anything and allow anybody to create or use databases with a name of test or starting with test If you don t set up the grant tables the following error will appear in the log file when you start the server mysqld Can t find file host frm The above may also happens with a binary MySQL distribution if you don t start MySQL by executing exactly bin safe mysqld You might need to run mysql install db as root However if you prefer you can run the MySQL server as an unprivileged non root user provided that user can read and write files in the database directory Instructions for running MySQL as an unprivileged user are given in section 388 17 8 How to run MySQL as a normal user If you have problems with mysql install db see section 389 4 15 1 Problems running mysql install db There are some alternatives to running the mysql install db script as it is provided in the MySQL distribution You may want to edit mysql install db before running it to change the initial privileges that are installed into the grant tables This is useful if you want to install MySQL on a lot of machines with the same privileges In this case you probably should need only to add a few extra INSERT statements to the mysql user and mysql db tables If you want to change things in the grant tables after installing them you can run mysql install db then use mysql u root mysql to connect to the grant tables as the MySQL root user and issue SQL statements to modify the grant tables directly It is possible to recreate the grant tables completely after they have already been created You might want to do this if you ve already installed the tables but then want to recreate them after editing mysql install db For more information about these alternatives see section 390 6 10 Setting up the initial MySQL privileges 2 Start the MySQL server like this shell cd mysql installation directory shell bin safe mysqld If you have problems starting the server see section 391 4 15 2 Problems starting the MySQL server 3 Use mysqladmin to verify that the server is running The following commands provide a simple test to check that the server is up and responding to connections shell BINDIR mysqladmin version shell BINDIR mysqladmin variables The output from mysqladmin version varies slightly depending on your platform and version of MySQL but should be similar to that shown below shell BINDIR mysqladmin version mysqladmin Ver 6 3 Distrib 3 22 9 beta for pc linux gnu on i686 TCX Datakonsult AB by Monty Server version 3 22 9 beta Protocol version 10 Connection Localhost via UNIX socket TCP port 3306 UNIX socket tmp mysql sock Uptime 16 sec Running threads 1 Questions 20 Reloads 2 Open tables 3 To get a feeling for what else you can do with BINDIR mysqladmin invoke it with the help option 4 Verify that you can shut down the server shell BINDIR mysqladmin u root shutdown 5 Verify that you can restart the server Do this using safe mysqld or by invoking mysqld directly For example shell BINDIR safe mysqld log If safe mysqld fails try running it from the MySQL installation directory if you are not already there If that doesn t work see section 392 4 15 2 Problems starting the MySQL server 6 Run some simple tests to verify that the server is working The output should be similar to what is shown below shell BINDIR mysqlshow Databases mysql shell BINDIR mysqlshow mysql Database mysql Tables columns priv db func host tables priv user shell BINDIR mysql e select host db user from db mysql host db user test test There is also a benchmark suite in the sql bench directory under the MySQL installation directory that you can use to compare how MySQL performs on different platforms The sql bench Results directory contains the results from many runs against different databases and platforms To run all tests execute these commands shell cd sql bench shell run all tests If you don t have the sql bench directory you are probably using an RPM for a binary distribution Source distribution RPMs include the benchmark directory In this case you must first install the benchmark suite before you can use it Beginning with MySQL 3 22 there are benchmark RPM files named mysql bench VERSION i386 rpm that contain benchmark code and data If you have a source distribution you can also run the tests in the tests subdirectory For example to run auto increment tst do this shell BINDIR mysql vvf test tests auto increment tst The expected results are shown in the tests auto increment res file 393 4 15 1 Problems running mysql install db This section lists problems you might encounter when you run mysql install db mysql install db doesn t install the grant tables You may find that mysql install db fails to install the grant tables and terminates after displaying the following messages starting mysqld daemon with databases from XXXXXX mysql daemon ended In this case you should examine the log file very carefully The log should be located in the directory XXXXXX named by the error message and should indicate why mysqld didn t start If you don t understand what happened include the log when you post a bug report using mysqlbug See section 394 2 3 How to report bugs or problems There is already a mysqld daemon running In this case you have probably don t have to run mysql install db at all You have to run mysql install db only once when you install MySQL the first time Installing a second mysqld daemon doesn t work when one daemon is running This can happen when you already have an existing MySQL installation but want to put a new installation in a different place e g for testing or perhaps you simply want to run two installations at the same time Generally the problem that occurs when you try to run the second server is that it tries to use the same socket and port as the old one In this case you will get the error message Can t start server Bind on TCP IP port Address already in use or Can t start server Bind on unix socket You can start the new server with a different socket and port as follows shell MYSQL UNIX PORT tmp mysqld new sock shell MYSQL TCP PORT 3307 shell export MYSQL UNIX PORT MYSQL TCP PORT shell scripts mysql install db shell bin safe mysqld After this you should edit your server boot script to start both daemons with different sockets and ports For example it could invoke safe mysqld twice but with different socket port and basedir options for each invocation You don t have write access to tmp If you don t have write access to create a socket file at the default place in tmp or permission to create temporary files in tmp you will get an error when running mysql install db or when starting or using mysqld You can specify a different socket and temporary directory as follows shell TMPDIR some tmp dir shell MYSQL UNIX PORT some tmp dir mysqld sock shell export TMPDIR MYSQL UNIX PORT some tmp dir should be the path to some directory for which you have write permission After this you should be able to run mysql install db and start the server with these commands shell scripts mysql install db shell BINDIR safe mysqld mysqld crashes immediately If you are running RedHat 5 0 with a version of glibc older than 2 0 7 5 you should make sure you have installed all glibc patches There is a lot of information about this in the MySQL mail archives Links to the mail archives are available at the online 395 MySQL documentation page Also see section 396 4 11 5 Linux notes all Linux versions You can also start mysqld manually using the skip grant option and add the privilege information yourself using mysql shell BINDIR safe mysqld skip grant shell BINDIR mysql u root mysql From mysql manually execute the SQL commands in mysql install db Make sure you run mysqladmin reload afterward to tell the server to reload the grant tables 397 4 15 2 Problems starting the MySQL server Generally you start the mysqld server in one of three ways By invoking mysql server This script is used primarily at system startup and shutdown and is described more fully in section 398 4 15 3 Starting and stopping MySQL automatically By invoking safe mysqld which tries to determine the proper options for mysqld and then runs it with those options By invoking mysqld directly Whichever method you use to start the server if it fails to start up correctly check the log file to see if you can find out why Log files are located in the data directory typically usr local mysql data for a binary distribution usr local var for a source distribution Look in the data directory for files with names of the form host name err and host name log where host name is the name of your server host Then check the last few lines of these files shell tail host name err shell tail host name log When the mysqld daemon starts up it changes directory to the data directory This is where it expects to write log files and the pid process ID file and where it expects to find databases The data directory location is hardwired in when the distribution is compiled However if mysqld expects to find the data directory somewhere other than where it really is on your system it will not work properly If you have problems with incorrect paths you can find out what options mysqld allows and what the default path settings are by invoking mysqld with the help option You can override the defaults by specifying the correct pathnames as command line arguments to mysqld These options can be used with safe mysqld as well Normally you should need to tell mysqld only the base directory under which MySQL is installed You can do this with the basedir option You can also use help to check the effect of changing path options note that help must be the final option of the mysqld command For example shell EXECDIR mysqld basedir usr local help Once you determine the path settings you want start the server without the help option If you get the following error it means that some other program or another mysqld server is already using the TCP IP port or socket mysqld is trying to use Can t start server Bind on TCP IP port Address already in use or Can t start server Bind on unix socket Use ps to make sure that you don t have another mysqld server running If you can t find another server running you can try to execute the command telnet your host name tcp ip port number and press RETURN a couple of times If you don t get a error message like telnet Unable to connect to remote host Connection refused something is using the TCP IP port mysqld is trying to use See section 399 4 15 1 Problems running mysql install db and section 400 18 3 Running multiple MySQL servers on the same machine The safe mysqld script is written so that it normally is able to start a server that was installed from either a source or a binary version of MySQL even if these install the server in slightly different locations safe mysqld expects one of these conditions to be true The server and databases can be found relative to the directory from which safe mysqld is invoked safe mysqld looks under its working directory for bin and data directories for binary distributions or for libexec and var directories for source distributions This condition should be met if you execute safe mysqld from your MySQL installation directory for example usr local mysql for a binary distribution If the server and databases cannot be found relative to its working directory safe mysqld attempts to locate them by absolute pathnames Typical locations are usr local libexec and usr local var The actual locations are determined when the distribution was built from which safe mysqld comes They should be correct if MySQL was installed in a standard location Since safe mysqld will try to find the server and databases relative to its own working directory you can install a binary distribution of MySQL anywhere as long as you start safe mysqld from the MySQL installation directory shell cd mysql installation directory shell bin safe mysqld If safe mysqld fails even when invoked from the MySQL installation directory you can modify it to use the path to mysqld and the pathname options that are correct for your system Note that if you upgrade MySQL in the future your modified version of safe mysqld will be overwritten so you should make a copy of your edited version that you can reinstall If mysqld is currently running you can find out what path settings it is using by executing this command shell mysqladmin variables or shell mysqladmin h your host name variables If safe mysqld starts the server but you can t connect to it you should make sure you have an entry in etc hosts that looks like this 127 0 0 1 localhost This problem occurs only on systems that don t have a working thread library and for which MySQL must be configured to use MIT pthreads 401 4 15 3 Starting and stopping MySQL automatically The mysql server script can be used to start or stop the server by invoking it with start or stop arguments shell mysql server start shell mysql server stop mysql server can be found in the share mysql directory under the MySQL installation directory or in the support files directory of the MySQL source tree Before mysql server starts the server it changes directory to the MySQL installation directory then invokes safe mysqld You might need to edit mysql server if you have a binary distribution that you ve installed in a non standard location Modify it to cd into the proper directory before it runs safe mysqld If you want the server to run as some specific user you can change the mysql daemon user root line to use another user You can also modify mysql server to pass other options to safe mysqld mysql server stop brings down server by sending a signal to it You can take down the server manually by executing mysqladmin shutdown You might want to add these start and stop commands to the appropriate places in your etc rc files when you start using MySQL for production applications Note that if you modify mysql server then if you upgrade MySQL sometime your modified version will be overwritten so you should make a copy of your edited version that you can reinstall If your system uses etc rc local to start external scripts you should append the following to it bin sh c cd usr local mysql bin safe mysqld You can also add options or mysql server in a global etc my cnf file A typical etc my cnf file might look like this mysqld datadir usr local mysql var socket tmp mysqld sock port 3306 mysql server user mysql basedir usr local mysql The mysql server script uses the following variables user datadir basedir bindir and pid file See section 402 4 15 4 Option files 403 4 15 4 Option files MySQL 3 22 can read default startup options for the server and for clients from option files MySQL reads default options from the following files on Unix Filename Purpose etc my cnf Global options DATADIR my cnf Server specific options my cnf User specific options DATADIR is the MySQL data directory typically usr local mysql data for a binary installation or usr local var for a source installation Note that this is the directory that was specified at configuration time not the one specified with datadir when mysqld starts up datadir has no effect on where the server looks for option files because it looks for them before it processes any command line arguments MySQL reads default options from the following files on Win32 Filename Purpose windows system directory my ini C my cnf Global options C mysql data my cnf Server specific options Note that you on Win32 should specify all paths with instead of If you use you need to specify this twice as is the escape character in MySQL MySQL tries to read option files in the order listed above If multiple option files exist an option specified in a file read later takes precedence over the same option specified in a file read earlier Options specified on the command line take precedence over options specified in any option file Some options can be specified using environment variables Options specified on the command line or in option files take precedence over environment variable values The following programs support option files mysql mysqladmin mysqld mysqldump mysqlimport mysql server isamchk and pack isam You can use option files to specify any long option that a program supports Run the program with help to get a list of available options An option file can contain lines of the following forms comment Comment lines starts with or Empty lines are ignored group group is the name of the program or group for which you want to set options After a group line any option or set variable lines apply to the named group until the end of the option file or another group line is given option This is equivalent to option on the command line option value This is equivalent to option value on the command line set variable variable value This is equivalent to set variable variable value on the command line This syntax must be used to set a mysqld variable The client group allows you to specify options that apply to all MySQL clients not mysqld This is the perfect group to use to specify the password you use to connect to the server But make sure the option file is readable and writable only to yourself Note that for options and values all leading and trailing blanks are automatically deleted You may use the escape sequences b t n r and s in your value string s blank Here is a typical global option file client port 3306 socket tmp mysql sock mysqld port 3306 socket tmp mysql sock set variable key buffer 16M set variable max allowed packet 1M mysqldump quick Here is typical user option file client The following password will be sent to all standard MySQL clients password my password mysql no auto rehash If you have a source distribution you will find a sample configuration file named my example cnf in the support files directory If you have a binary distribution look in the DIR share mysql directory where DIR is the pathname to the MySQL installation directory typically usr local mysql You can copy my example cnf to your home directory rename the copy to my cnf to experiment with To tell a MySQL program not to read any option files specify no defaults as the first option on the command line This MUST be the first option or it will have no effect If you want to check which options are used you can give the option print defaults as the first option If you want to force the use of a specific config file you can use the option defaults file full path to default file If you do this only the specified file will be read Note for developers Option file handling is implemented simply by processing all matching options i e options in the appropriate group before any command line arguments This works nicely for programs that use the last instance of an option that is specified multiple times If you have an old program that handles multiply specified options this way but doesn t read option files you need add only two lines to give it that capability Check the source code of any of the standard MySQL clients to see how to do this 404 4 16 Is there anything special to do when upgrading downgrading MySQL You can always move the MySQL form and data files between different versions on the same architecture as long as you have the same base version of MySQL The current base version is 3 If you change the character set by recompiling MySQL which may also change the sort order you must run isamchk r q on all tables Otherwise your indexes may not be ordered correctly If you are paranoid and or afraid of new versions you can always rename your old mysqld to something like mysqld old version number If your new mysqld then does something unexpected you can simply shut it down and restart with your old mysqld When you do an upgrade you should also backup your old databases of course Sometimes it s good to be a little paranoid After an upgrade if you experience problems with recompiled client programs like Commands out of sync or unexpected core dumps you probably have used an old header or library file when compiling your programs In this case you should check the date for your mysql h file and libmysqlclient a library to verify that they are from the new MySQL distribution If not please recompile your programs If you get some problems that the new mysqld server doesn t want to start or that you can t connect without a password check that you don t have some old my cnf file from your old installation You can check this with program name print defaults If this outputs anything other than the program name you have a active my cnf file that will may affect things It is a good idea to rebuild and reinstall the Msql Mysql modules distribution whenever you install a new release of MySQL particularly if you notice symptoms such as all your DBI scripts dumping core after you upgrade MySQL 405 4 16 1 Upgrading from a 3 22 version to 3 23 MySQL 3 23 supports tables of the new MyISAM type and the old NISAM type You don t have to convert your old tables to use these with 3 23 By default all new tables will be created with type MyISAM unless you start mysqld with the default table type isam option You can change an ISAM table to a MyISAM table with ALTER TABLE or the Perl script mysql convert table format 3 22 and 3 21 clients will work without any problems with a 3 23 server The following lists what you have to watch out for when upgrading to 3 23 INNER and DELAYED are now reserved words FLOAT 4 and FLOAT 8 are now true floating point types When declaring DECIMAL length dec the length argument no longer includes a place for the sign or the decimal point A TIME string must now be of one of the following formats DAYS H H MM SS fraction or H H H H MM SS fraction LIKE now compares strings using the same character comparison rules as If you require the old behaveour you can compile MySQL with the CXXFLAGS DLIKE CMP TOUPPER flag When you check repair tables you should use myisamchk for MyISAM tables MYI and isamchk for ISAM ISM tables If you want your mysqldumps to be compatible between MySQL 3 22 and 3 23 you should not use the opt or full option to mysqldump Check all your calls to DATE FORMAT to make sure there is a before each format character mysql fetch fields direct is now a function it was a macro and it returns a pointer to a MYSQL FIELD instead of a MYSQL FIELD mysql num fields can no longer be used on a MYSQL object it s now a function that takes MYSQL RES as an argument You should now use mysql field count instead In MySQL 3 22 the output of SELECT DISTINCT was almost always sorted In 3 23 you have to use GROUP BY or ORDER BY to get it sorted 406 4 16 2 Upgrading from a 3 21 version to 3 22 Nothing that affects compatibility has changed between 3 21 and 3 22 The only pitfall is that new tables that are created with DATE type columns will use the new way to store the date You can t access these new fields from an old version of mysqld After installing MySQL 3 22 you should start the new server and then run the mysql fix privilege tables script This will add the new privileges that you need to use the GRANT command If you forget this you will get Access denied when you try to use ALTER TABLE CREATE INDEX or DROP INDEX If your MySQL root user requires a password you should give this as an argument to mysql fix privilege tables The C API interface to mysql real connect has changed If you have an old client program that calls this function you must place a 0 for the new db argument or recode the client to send the db element for faster connections You must also call mysql init before calling mysql real connect This change was done to allow the new mysql options function to save options in the MYSQL handler structure 407 4 16 3 Upgrading from a 3 20 version to 3 21 If you are running a version older than 3 20 28 and want to switch to 3 21 x you need to do the following You can start the mysqld 3 21 server with safe mysqld old protocol to use it with clients from the 3 20 distribution In this case the new client function mysql errno will not return any server error only CR UNKNOWN ERROR but it works for client errors and the server uses the old password checking rather than the new one If you are NOT using the old protocol option to mysqld you will need to make the following changes All client code must be recompiled If you are using ODBC you must get the new MyODBC 2 x driver The script scripts add long password must be run to convert the Password field in the mysql user table to CHAR 16 All passwords must be reassigned in the mysql user table to get 62 bit rather than 31 bit passwords The table format hasn t changed so you don t have to convert any tables MySQL 3 20 28 and above can handle the new user table format without affecting clients If you have a MySQL version earlier than 3 20 28 passwords will no longer work with it if you convert the user table So to be safe you should first upgrade to at least 3 20 28 and then upgrade to 3 21 x The new client code works with a 3 20 x mysqld server so if you experience problems with 3 21 x you can use the old 3 20 x server without having to recompile the clients again If you are not using the old protocol option to mysqld old clients will issue the error message ERROR Protocol mismatch Server Version 10 Client Version 9 The new Perl DBI DBD interface also supports the old mysqlperl interface The only change you have to make if you use mysqlperl is to change the arguments to the connect function The new arguments are host database user password the user and password arguments have changed places See section 408 19 5 2 The DBI interface The following changes may affect queries in old applications HAVING must now be specified before any ORDER BY clause The parameters to LOCATE have been swapped There are some new reserved words The most notable are DATE TIME and TIMESTAMP 409 4 16 4 Upgrading to another architecture If you are using MySQL 3 23 you can copy the frm the MYI and the MYD files between different architectures that support the same floating point format MySQL takes care of any byte swapping issues The MySQL data ISD and the index files ISM files are architecture dependent and in some case OS dependent If you want to move your applications to another machine that has a different architecture or OS than your current machine you should not try to move a database by simply copying the files to the other machine Use mysqldump instead By default mysqldump will create a file full of SQL statements You can then transfer the file to the other machine and feed it as input to the mysql client Try mysqldump help to see what options are available If you are moving the data to a newer version of MySQL you should use mysqldump opt with the newer version to get a fast compact dump The easiest although not the fastest way to move a database between two machines is to run the following commands on the machine on which the database is located shell mysqladmin h other hostname create db name shell mysqldump opt db name mysql h other hostname db name If you want to copy a database from a remote machine over a slow network you can use shell mysqladmin create db name shell mysqldump h other hostname opt compress db name mysql db name You can also store the result in a file then transfer the file to the target machine and load the file into the database there For example you can dump a database to a file on the source machine like this shell mysqldump quick db name gzip db name contents gz The file created in this example is compressed Transfer the file containing the database contents to the target machine and run these commands there shell mysqladmin create db name shell gunzip db name contents gz mysql db name You can also use mysqldump and mysqlimport to accomplish the database transfer For big tables this is much faster than simply using mysqldump In the commands shown below DUMPDIR represents the full pathname of the directory you use to store the output from mysqldump First create the directory for the output files and dump the database shell mkdir DUMPDIR shell mysqldump tab DUMPDIR db name Then transfer the files in the DUMPDIR directory to some corresponding directory on the target machine and load the files into MySQL there shell mysqladmin create db name create database shell cat DUMPDIR sql mysql db name create tables in database shell mysqlimport db name DUMPDIR txt load data into tables Also don t forget to copy the mysql database since that s where the grant tables user db host are stored You may have to run commands as the MySQL root user on the new machine until you have the mysql database in place After you import the mysql database on the new machine execute mysqladmin flush privileges so that the server reloads the grant table information 410 5 How standards compatible is MySQL 411 5 1 MySQL extensions to ANSI SQL92 MySQL includes some extensions that you probably will not find in other SQL databases Be warned that if you use them your code will not be portable to other SQL servers In some cases you can write code that includes MySQL extensions but is still portable by using comments of the form In this case MySQL will parse and execute the code within the comment as it would any other MySQL statement but other SQL servers will ignore the extensions For example SELECT STRAIGHT JOIN col name FROM table1 table2 WHERE MySQL extensions are listed below The field types MEDIUMINT SET ENUM and the different BLOB and TEXT types The field attributes AUTO INCREMENT BINARY UNSIGNED and ZEROFILL All string comparisons are case insensitive by default with sort ordering determined by the current character set ISO 8859 1 Latin1 by default If you don t like this you should declare your columns with the BINARY attribute or use the BINARY cast which causes comparisons to be done according to the ASCII order used on the MySQL server host MySQL maps each database to a directory under the MySQL data directory and tables within a database to filenames in the database directory This has two implications Database names and table names are case sensitive in MySQL on operating systems that have case sensitive filenames like most Unix systems If you have a problem remembering table names adopt a consistent convention such as always creating databases and tables using lowercase names Database table index column or alias names may begin with a digit but may not consist solely of digits You can use standard system commands to backup rename move delete and copy tables For example to rename a table rename the ISD ISM and frm files to which the table corresponds In SQL statements you can access tables from different databases with the db name tbl name syntax Some SQL servers provide the same functionality but call this User space MySQL dosen t support tablespaces like in create table ralph my table IN my tablespace LIKE is allowed on numeric columns Use of INTO OUTFILE and STRAIGHT JOIN in a SELECT statement See section 412 7 11 SELECT syntax The SQL SMALL RESULT option in a SELECT statement EXPLAIN SELECT to get a description on how tables are joined Use of index names indexes on a prefix of a field and use of INDEX or KEY in a CREATE TABLE statement See section 413 7 6 CREATE TABLE syntax Use of CHANGE col name DROP col name or DROP INDEX in an ALTER TABLE statement See section 414 7 7 ALTER TABLE syntax Use of IGNORE in an ALTER TABLE statement Use of multiple ADD ALTER DROP or CHANGE clauses in an ALTER TABLE statement Use of DROP TABLE with the keywords IF EXISTS You can drop multiple tables with a single DROP TABLE statement The LIMIT clause of the DELETE statement The DELAYED clause of the INSERT and REPLACE statements The LOW PRIORITY clause of the INSERT REPLACE DELETE and UPDATE statements Use of LOAD DATA INFILE In many cases this syntax is compatible with Oracle s LOAD DATA INFILE See section 415 7 15 LOAD DATA INFILE syntax The OPTIMIZE TABLE statement See section 416 7 8 OPTIMIZE TABLE syntax The SHOW statement See section 417 7 20 SHOW syntax Get information about tables columns Strings may be enclosed by either or not just by Use of the escape character The SET OPTION statement See section 418 7 24 SET OPTION syntax You don t need to name all selected columns in the GROUP BY part This gives better performance for some very specific but quite normal queries See section 419 7 3 13 Functions for use with GROUP BY clauses To make it easier for users that come from other SQL environments MySQL supports aliases for many functions For example all string functions support both ANSI SQL syntax and ODBC syntax MySQL understands the and operators to mean logical OR and AND as in the C programming language In MySQL and OR are synonyms as are and AND Because of this nice syntax MySQL doesn t support the ANSI SQL operator for string concatenation use CONCAT instead Since CONCAT takes any number of arguments it s easy to convert use of the operator to MySQL CREATE DATABASE or DROP DATABASE See section 420 7 4 CREATE DATABASE syntax The operator is a synonym for MOD That is N M is equivalent to MOD N M is supported for C programmers and for compatibility with PostgreSQL The AND OR or LIKE operators may be used in column comparisons to the left of the FROM in SELECT statements For example mysql SELECT col1 1 AND col2 2 FROM tbl name The LAST INSERT ID function See section 421 19 4 28 mysql insert id The REGEXP and NOT REGEXP extended regular expression operators CONCAT or CHAR with one argument or more than two arguments In MySQL these functions can take any number of arguments The BIT COUNT ELT FROM DAYS FORMAT IF PASSWORD ENCRYPT ENCODE DECODE PERIOD ADD PERIOD DIFF TO DAYS or WEEKDAY functions Use of TRIM to trim substrings ANSI SQL only supports removal of single characters The GROUP BY functions STD BIT OR and BIT AND Use of REPLACE instead of DELETE INSERT See section 422 7 14 REPLACE syntax The FLUSH flush option statement 423 5 2 MySQL differences compared to ANSI SQL92 We try to make MySQL follow the ANSI SQL standard and the ODBC SQL standard but in some cases MySQL does some things differently is not a comment See section 424 5 3 7 as the start of a comment For VARCHAR columns trailing spaces are removed when the value is stored See section 425 E Known errors and design deficiencies in MySQL In some cases CHAR columns are silently changed to VARCHAR columns See section 426 7 6 1 Silent column specification changes Privileges for a table is not automatically revoked when you delete a table You must explicitly issue a REVOKE to revoke privileges for a table See section 427 7 25 GRANT and REVOKE syntax 428 5 3 Functionality missing from MySQL The following functionality is missing in the current version of MySQL For a prioritized list indicating when new extensions may be added to MySQL you should consult 429 the online MySQL TODO list That is the latest version of the TODO list in this manual See section 430 F List of things we want to add to MySQL in the future The TODO 431 5 3 1 Sub selects The following will not yet work in MySQL SELECT FROM table1 WHERE id IN SELECT id FROM table2 SELECT FROM table1 WHERE id NOT IN SELECT id FROM table2 However in many cases you can rewrite the query without a sub select SELECT table1 FROM table1 table2 WHERE table1 id table2 id SELECT table1 FROM table1 LEFT JOIN table2 ON table1 id table2 id where table 2 id IS NULL For more complicated sub queries you can create temporary tables to hold the sub query MySQL only supports INSERT SELECT and REPLACE SELECT Independent sub selects will be probably be available in 3 23 2 You can now use the function IN in other contexts however 432 5 3 2 SELECT INTO TABLE MySQL doesn t yet support the Oracle SQL extension SELECT INTO TABLE MySQL supports instead the ANSI SQL syntax INSERT INTO SELECT which is basically the same thing Alternatively you can use SELECT INTO OUTFILE or CREATE TABLE SELECT to solve your problem 433 5 3 3 Transactions Transactions are not supported MySQL shortly will support atomic operations which are like transactions without rollback With atomic operations you can execute a group of INSERT SELECT whatever commands and be guaranteed that no other thread will interfere In this context you won t usually need rollback Currently you can prevent interference from other threads by using the LOCK TABLES and UNLOCK TABLES commands See section 434 7 23 LOCK TABLES UNLOCK TABLES syntax 435 5 3 4 Stored procedures and triggers A stored procedure is a set of SQL commands that can be compiled and stored in the server Once this has been done clients don t need to keep reissuing the entire query but can refer to the stored procedure This provides better performance because the query has to be parsed only once and less information needs to be sent between the server and the client You can also raise the conceptual level by having libraries of functions in the server A trigger is a stored procedure that is invoked when a particular event occurs For example you can install a stored procedure that is triggered each time a record is deleted from a transaction table and that automatically deletes the corresponding customer from a customer table when all his transactions are deleted The planned update language will be able to handle stored procedures but without triggers Triggers usually slow down everything even queries for which they are not needed To see when MySQL might get stored procedures see section 436 F List of things we want to add to MySQL in the future The TODO 437 5 3 5 Foreign Keys Note that foreign keys in SQL are not used to join tables but are used mostly for checking referential integrity If you want to get results from multiple tables from a SELECT statement you do this by joining tables SELECT from table1 table2 where table1 id table2 id See section 438 7 12 JOIN syntax The FOREIGN KEY syntax in MySQL exists only for compatibility with other SQL vendors CREATE TABLE commands it doesn t do anything The FOREIGN KEY syntax without ON DELETE is mostly used for documentation purposes Some ODBC applications may use this to produce automatic WHERE clauses but this is usually easy to override FOREIGN KEY is sometimes used as a constraint check but this check is unnecessary in practice if rows are inserted into the tables in the right order MySQL only supports these clauses because some applications require them to exist regardless of whether or not they work In MySQL you can work around the problem of ON DELETE not being implemented by adding the appropriate DELETE statement to an application when you delete records from a table that has a foreign key In practice this is as quick in some cases quicker and much more portable than using foreign keys In the near future we will extend the FOREIGN KEY implementation so that at least the information will be saved in the table specification file and may be retrieved by mysqldump and ODBC 439 5 3 5 1 Reasons NOT to use foreign keys There are so many problems with FOREIGN KEYs that we don t know where to start Foreign keys make life very complicated because the foreign key definitions must be stored in a database and implementing them would destroy the whole nice approach of using files that can be moved copied and removed The speed impact is terrible for INSERT and UPDATE statements and in this case almost all FOREIGN KEY checks are useless because you usually insert records in the right tables in the right order anyway There is also a need to hold locks on many more tables when updating one table because the side effects can cascade through the entire database It s MUCH faster to delete records from one table first and subsequently delete them from the other tables You can no longer restore a table by doing a full delete from the table and then restoring all records from a new source or from a backup If you have foreign keys you can t dump and restore tables unless you do so in a very specific order It s very easy to do allowed circular definitions that make the tables impossible to recreate each table with a single create statement even if the definition works and is usable The only nice aspect of FOREIGN KEY is that it gives ODBC and some other client programs the ability to see how a table is connected and to use this to show connection diagrams and to help in building applicatons MySQL will soon store FOREIGN KEY definitions so that a client can ask for and receive an answer how the original connection was made The current frm file format does not have any place for it 440 5 3 6 Views MySQL doesn t support views but this is on the TODO 441 5 3 7 as the start of a comment Some other SQL databases use to start comments MySQL has as the start comment character even if the mysql command line tool removes all lines that start with You can also use the C comment style this is a comment with MySQL See section 442 7 28 Comment syntax MySQL will not support this degenerate comment style has caused many problems with automatically generated SQL queries that have used something like the following code where we automatically insert the value of the payment for payment UPDATE tbl name SET credit credit payment What do you think will happen when the value of payment is negative Because 1 1 is legal in SQL we think it is terrible that means start comment If you have a SQL program in a text file that contains comments you should use shell replace text file with funny comments sql mysql database instead of the usual shell mysql database text file with funny comments sql You can also edit the command file in place to change the comments to comments shell replace text file with funny comments sql Change them back with this command shell replace text file with funny comments sql 443 5 4 What standards does MySQL follow Entry level SQL92 ODBC level 0 2 444 5 5 How to cope without COMMIT ROLLBACK MySQL doesn t support COMMIT ROLLBACK The problem is that handling COMMIT ROLLBACK efficiently would require a completely different table layout than MySQL uses today MySQL would also need extra threads that do automatic cleanups on the tables and the disk usage would be much higher This would make MySQL about 2 4 times slower than it is today MySQL is much faster than almost all other SQL databases typically at least 2 3 times faster One of the reasons for this is the lack of COMMIT ROLLBACK For the moment we are much more for implementing the SQL server language something like stored procedures With this you would very seldom really need COMMIT ROLLBACK This would also give much better performance Loops that need transactions normally can be coded with the help of LOCK TABLES and you don t need cursors when you can update records on the fly We have transactions and cursors on the TODO but not quite prioritized If we implement these it will be as an option to CREATE TABLE That means that COMMIT ROLLBACK will work only on those tables so that a speed penalty will be imposed on those table only We at TcX have a greater need for a real fast database than a 100 general database Whenever we find a way to implement these features without any speed loss we will probably do it For the moment there are many more important things to do Check the TODO for how we prioritize things at the moment Customers with higher levels of support can alter this so things may be reprioritized The current problem is actually ROLLBACK Without ROLLBACK you can do any kind of COMMIT action with LOCK TABLES To support ROLLBACK MySQL would have to be changed to store all old records that were updated and revert everything back to the starting point if ROLLBACK was issued For simple cases this isn t that hard to do the current isamlog could be used for this purpose but it would be much more difficult to implement ROLLBACK for ALTER DROP CREATE TABLE To avoid using ROLLBACK you can use the following strategy 1 Use LOCK TABLES to lock all the tables you want to access 2 Test conditions 3 Update if everything is okay 4 Use UNLOCK TABLES to release your locks This is usually a much faster method than using transactions with possible ROLLBACKs although not always The only situation this solution doesn t handle is when someone kills the threads in the middle of an update In this case all locks will be released but some of the updates may not have been executed You can also use functions to update records in a single operation You can get a very efficient application by using the following techniques Modify fields relative to their current value Update only those fields that actually have changed For example when we are doing updates to some customer information we update only the customer data that have changed and test only that none of the changed data or data that depend on the changed data have changed compared to the original row The test for changed data is done with the WHERE clause in the UPDATE statement If the record wasn t updated we give the client a message Some of the data you have changed have been changed by another user Then we show the old row versus the new row in a window so the user can decide which version of the customer record he should use This gives us something that is similar to column locking but is actually even better because we only update some of the columns using values that are relative to their current values This means that typical UPDATE statements look something like these UPDATE tablename SET pay back pay back relative change UPDATE customer SET customer date current date address new address phone new phone money he owes us money he owes us new money WHERE customer id id AND address old address AND phone old phone As you can see this is very efficient and works even if another client has changed the values in the pay back or money he owes us columns In many cases users have wanted ROLLBACK and or LOCK TABLES for the purpose of managing unique identifiers for some tables This can be handled much more efficiently by using an AUTO INCREMENT column and either the SQL function LAST INSERT ID or the C API function mysql insert id See section 445 19 4 28 mysql insert id At TcX we have never had any need for row level locking because we have always been able to code around it Some cases really need row locking but they are very few If you want row level locking you can use a flag column in the table and do something like this UPDATE tbl name SET row flag 1 WHERE id ID MySQL returns 1 for the number of affected rows if the row was found and row flag wasn t already 1 in the original row You can think of it as MySQL changed the above query to UPDATE tbl name SET row flag 1 WHERE id ID and row flag 1 446 6 The MySQL access privilege system MySQL has an advanced but non standard security privilege system This section describes how it works 447 6 1 What the privilege system does The primary function of the MySQL privilege system is to authenticate a user connecting from a given host and to associate that user with select insert update and delete privileges on a database Additional functionality includes the ability to have an anonymous user and to grant privileges for MySQL specific functions such as LOAD DATA INFILE and administrative operations 448 6 2 MySQL user names and passwords There are several distinctions between the way user names and passwords are used by MySQL and the way they are used by Unix or Windows User names as used by MySQL for authentication purposes have nothing to do with Unix user names login names or Windows user names Most MySQL clients by default try to log in using the current Unix user name as the MySQL user name but that is for convenience only Client programs allow a different name to be specified with the u or user options This means that you can t make a database secure in any way unless all MySQL user names have passwords Anyone may attempt to connect to the server using any name and they will succeed if they specify any name that doesn t have a password MySQL user names can be up to 16 characters long Unix user names typically are limited to 8 characters MySQL passwords have nothing to do with Unix passwords There is no necessary connection between the password you use to log in to a Unix machine and the password you use to access a database on that machine MySQL encrypts passwords using a different algorithm than the one used during the Unix login process See the descriptions of the PASSWORD and ENCRYPT functions in section 449 7 3 12 Miscellaneous functions 450 6 3 Connecting to the MySQL server MySQL client programs generally require that you specify connection parameters when you want to access a MySQL server the host you want to connect to your user name and your password For example the mysql client can be started like this optional arguments are enclosed between and shell mysql h host name u user name pyour pass Alternate forms of the h u and p options are host host name user user name and password your pass Note that there is no space between p or password and the password following it Note Specifing a password on the command line is not secure Any user on your system may then find out your password by typing a command like ps auxww See section 451 4 15 4 Option files mysql uses default values for connection parameters that are missing from the command line The default hostname is localhost The default user name is your Unix login name No password is supplied if p is missing Thus for a Unix user joe the following commands are equivalent shell mysql h localhost u joe shell mysql h localhost shell mysql u joe shell mysql Other MySQL clients behave similarly On Unix systems you can specify different default values to be used when you make a connection so that you need not enter them on the command line each time you invoke a client program This can be done in a couple of ways You can specify connection parameters in the client section of the my cnf configuration file in your home directory The relevant section of the file might look like this client host host name user user name password your pass See section 452 4 15 4 Option files You can specify connection parameters using environment values The host can be specified using MYSQL HOST The MySQL user name can be specified using USER LOGNAME or LOGIN although these variables might already be set to your Unix login name and it may be unwise to change them The password can be specified using MYSQL PWD but this is insecure see next section If connection parameters are specified in multiple ways values specified on the command line take precedence over values specified in configuration files and environment variables and values in configuration files take precedence over values in environment variables 453 6 4 Keeping your password secure It is inadvisable to specify your password in a way that exposes it to discovery by other users The methods you can use to specify your password when you run client programs are listed below along with an assessment of the risks of each method Use a pyour pass or password your pass option on the command line This is convenient but insecure since your password becomes visible to system status programs such as ps that may be invoked by other users to display command lines MySQL clients typically overwrite the command line argument with zeroes during their initialization sequence but there is still a brief interval during which the value is visible Use a p or password option with no your pass value specified In this case the client program solicits the password from the terminal shell mysql u user name p Enter password The client echoes characters to the terminal as you enter your password so that onlookers cannot see it It is more secure to enter your password this way than to specify it on the command line because it is not visible to other users However this method of entering a password is suitable only for programs that you run interactively If you want to invoke a client from a script that runs non interactively there is no opportunity to enter the password from the terminal Store your password in a configuration file For example you can list your password in the client section of the my cnf file in your home directory client password your pass If you store your password in my cnf the file should not be group or world readable or writable Make sure the file s access mode is 400 or 600 See section 454 4 15 4 Option files You can store your password in the MYSQL PWD environment variable but this method must be considered extremely insecure and should not be used Some versions of ps include an option to display the environment of running processes your password will be in plain sight for all to see if you set MYSQL PWD Even on systems without such a version of ps it is unwise to assume there is no other method to observe process environments All in all the safest methods are to have the client program prompt for the password or to specify the password in a properly protected my cnf file 455 6 5 Privileges provided by MySQL Privilege information is stored in the user db host tables priv and columns priv tables in the mysql database that is in the database named mysql The MySQL server reads the contents of these tables when it starts up and under the circumstances indicated in section 456 6 9 When privilege changes take effect The names used in this manual to refer to the privileges provided by MySQL are shown below along with the table column name associated with each privilege in the grant tables and the context in which the privilege applies Privilege Column Context select Select priv tables insert Insert priv tables update Update priv tables delete Delete priv tables index Index priv tables alter Alter priv tables create Create priv databases tables or indexes drop Drop priv databases or tables grant Grant priv databases or tables reload Reload priv server administration shutdown Shutdown priv server administration process Process priv server administration file File priv file access on server The select insert update and delete privileges allow you to perform operations on rows in existing tables in a database SELECT statements require the select privilege only if they actually retrieve rows from a table You can execute certain SELECT statements even without permission to access any of the databases on the server For example you could use the mysql client as a simple calculator mysql SELECT 1 1 mysql SELECT PI 2 The index privilege allows you to create or drop remove indexes The alter privilege allows you to use ALTER TABLE The create and drop privileges allow you to create new databases and tables or to drop remove existing databases and tables Note that if you grant the drop privilege for the mysql database to a user that user can drop the database in which the MySQL access privileges are stored The grant privilege allows you to give to other users those privileges you yourself possess The file privilege gives you permission to read and write files on the server using the LOAD DATA INFILE and SELECT INTO OUTFILE statements Any user to whom this privilege is granted can read or write any file that the MySQL server can read or write The remaining privileges are used for administrative operations which are performed using the mysqladmin program The table below shows which mysqladmin commands each administrative privilege allows you to execute Privilege Commands permitted to privilege holders reload reload refresh flush privileges flush hosts flush logs flush tables shutdown shutdown process processlist kill The reload command tells the server to reread the grant tables The refresh command flushes all tables and opens and closes the log files flush privileges is a synonym for reload The other flush commands perform functions similar to refresh but are more limited in scope and may be preferable in some instances For example if you want to flush just the log files flush logs is a better choice than refresh The shutdown command shuts down the server The processlist command displays information about the threads executing within the server The kill command kills server threads You can always display or kill your own threads but you need the process privilege to display or kill threads initiated by other users It is a good idea in general to grant privileges only to those users who need them but you should exercise particular caution in granting certain privileges The grant privilege allows users to give away their privileges to other users Two users with different privileges and with the grant privilege are able to combine privileges The alter privilege may be used to subvert the privilege system by renaming tables The file privilege can be abused to read any world readable file on the server into a database table the contents of which can then be accessed using SELECT The shutdown privilege can be abused to deny service to other users entirely by terminating the server The process privilege can be used to view the plain text of currently executing queries including queries that set or change passwords Privileges on the mysql database can be used to change passwords and other access privilege information Passwords are stored encrypted so a malicious user cannot simply read them However with sufficient privileges that same user can replace a password with a different one There are some things that you cannot do with the MySQL privilege system You cannot explicitly specify that a given user should be denied access That is you cannot explicitly match a user and then refuse the connection You cannot specify that a user has privileges to create or drop tables in a database but not to create or drop the database itself 457 6 6 How the privilege system works The MySQL privilege system ensures that all users may do exactly the things that they are supposed to be allowed to do When you connect to a MySQL server your identity is determined by the host from which you connect and the user name you specify The system grants privileges according to your identity and what you want to do MySQL considers both your hostname and user name in identifying you because there is little reason to assume that a given user name belongs to the same person everywhere on the Internet For example the user bill who connects from whitehouse gov need not be the same person as the user bill who connects from microsoft com MySQL handles this by allowing you to distinguish users on different hosts that happen to have the same name you can grant bill one set of privileges for connections from whitehouse gov and a different set of privileges for connections from microsoft com MySQL access control involves two stages Stage 1 The server checks whether or not you are even allowed to connect Stage 2 Assuming you can connect the server checks each request you issue to see whether or not you have sufficient privileges to perform it For example if you try to select rows from a table in a database or drop a table from the database the server makes sure you have the select privilege for the table or the drop privilege for the database The server uses the user db and host tables in the mysql database at both stages of access control The fields in these grant tables are shown below Table name user db host Scope fields Host Host Host User Db Db Password User Privilege fields Select priv Select priv Select priv Insert priv Insert priv Insert priv Update priv Update priv Update priv Delete priv Delete priv Delete priv Index priv Index priv Index priv Alter priv Alter priv Alter priv Create priv Create priv Create priv Drop priv Drop priv Drop priv Grant priv Grant priv Grant priv Reload priv Shutdown priv Process priv File priv For the second stage of access control request verification the server may if the request involves tables additionally consult the tables priv and columns priv tables The fields in these tables are shown below Table name tables priv columns priv Scope fields Host Host Db Db User User Table name Table name Column name Privilege fields Table priv Column priv Column priv Other fields Timestamp Timestamp Grantor Each grant table contains scope fields and privilege fields Scope fields determine the scope of each entry in the tables i e the context in which the entry applies For example a user table entry with Host and User values of thomas loc gov and bob would be used for authenticating connections made to the server by bob from the host thomas loc gov Similarly a db table entry with Host User and Db fields of thomas loc gov bob and reports would be used when bob connects from the host thomas loc gov to access the reports database The tables priv and columns priv tables contain scope fields indicating tables or table column combinations to which each entry applies For access checking purposes comparisons of Host values are case insensitive User Password Db and Table name values are case sensitive Column name values are case insensitive in MySQL 3 22 12 or later Privilege fields indicate the privileges granted by a table entry that is what operations can be performed The server combines the information in the various grant tables to form a complete description of a user s privileges The rules used to do this are described in section 458 6 8 Access control stage 2 Request verification Scope fields are strings declared as shown below the default value for each is the empty string Field name Type Host CHAR 60 User CHAR 16 Password CHAR 16 Db CHAR 64 CHAR 60 for the tables priv and columns priv tables In the user db and host tables all privilege fields are declared as ENUM N Y each can have a value of N or Y and the default value is N In the tables priv and columns priv tables the privilege fields are declared as SET fields Table name Field name Possible set elements tables priv Table priv Select Insert Update Delete Create Drop Grant References Index Alter tables priv Column priv Select Insert Update References columns priv Column priv Select Insert Update References Briefly the server uses the grant tables like this The user table scope fields determine whether to allow or reject incoming connections For allowed connections the privilege fields indicate the user s global superuser privileges The db and host tables are used together The db table scope fields determine which users can access which databases from which hosts The privilege fields determine which operations are allowed The host table is used as an extension of the db table when you want a given db table entry to apply to several hosts For example if you want a user to be able to use a database from several hosts in your network leave the Host value empty in the user s db table entry then populate the host table with an entry for each of those hosts This mechanism is described more detail in section 459 6 8 Access control stage 2 Request verification The tables priv and columns priv tables are similar to the db table but are more fine grained they apply at the table and column level rather than at the database level Note that administrative privileges reload shutdown etc are specified only in the user table This is because administrative operations are operations on the server itself and are not database specific so there is no reason to list such privileges in the other grant tables In fact only the user table need be consulted to determine whether or not you can perform an administrative operation The file privilege is specified only in the user table too It is not an administrative privilege as such but your ability to read or write files on the server host is independent of the database you are accessing The mysqld server reads the contents of the grant tables once when it starts up Changes to the grant tables take effect as indicated in section 460 6 9 When privilege changes take effect When you modify the contents of the grant tables it is a good idea to make sure that your changes set up privileges the way you want For help in diagnosing problems see section 461 6 13 Causes of Access denied errors For advice on security issues section 462 6 14 How to make MySQL secure against crackers A useful diagnostic tool is the mysqlaccess script which Yves Carlier has provided for the MySQL distribution Invoke mysqlaccess with the help option to find out how it works Note that mysqlaccess checks access using only the user db and host tables It does not check table or column level privileges 463 6 7 Access control stage 1 Connection verification When you attempt to connect to a MySQL server the server accepts or rejects the connection based on your identity and whether or not you can verify your identity by supplying the correct password If not the server denies access to you completely Otherwise the server accepts the connection then enters stage 2 and waits for requests Your identity is based on two pieces of information The host from which you connect Your MySQL user name Identity checking is performed using the three user table scope fields Host User and Password The server accepts the connection only if a user table entry matches your hostname and user name and you supply the correct password Values in the user table scope fields may be specified as follows A Host value may be a hostname or an IP number or localhost to indicate the local host You can use the wildcard characters and in the Host field A Host value of matches any hostname A blank Host value is equivalent to Note that these values match any host that can create a connection to your server Wildcard characters are not allowed in the User field but you can specify a blank value which matches any name If the user table entry that matches an incoming connection has a blank user name the user is considered to be the anonymous user the user with no name rather than the name that the client actually specified This means that a blank user name is used for all further access checking for the duration of the connection that is during stage 2 The Password field can be blank This does not mean that any password matches it means the user must connect without specifying a password Non blank Password values represent encrypted passwords MySQL does not store passwords in plaintext form for anyone to see Rather the password supplied by a user who is attempting to connect is encrypted using the PASSWORD function and compared to the already encrypted version stored in the user table If they match the password is correct The examples below show how various combinations of Host and User values in user table entries apply to incoming connections Host value User value Connections matched by entry thomas loc gov fred fred connecting from thomas loc gov thomas loc gov Any user connecting from thomas loc gov fred fred connecting from any host Any user connecting from any host loc gov fred fred connecting from any host in the loc gov domain x y fred fred connecting from x y net x y com x y edu etc this is probably not useful 144 155 166 177 fred fred connecting from the host with IP address 144 155 166 177 144 155 166 fred fred connecting from any host in the 144 155 166 class C subnet Since you can use IP wildcard values in the Host field e g 144 155 166 to match every host on a subnet there is the possibility that someone might try to exploit this capability by naming a host 144 155 166 somewhere com To foil such attempts MySQL disallows matching on hostnames that start with digits and a dot Thus if you have a host named something like 1 2 foo com its name will never match the Host column of the grant tables Only an IP number can match an IP wildcard value An incoming connection may be matched by more than one entry in the user table For example a connection from thomas loc gov by fred would be matched by several of the entries just shown above How does the server choose which entry to use if more than one matches The server resolves this question by sorting the user table after reading it at startup time then looking through the entries in sorted order when a user attempts to connect The first matching entry is the one that is used user table sorting works as follows Suppose the user table looks like this Host User root jeffrey localhost root localhost When the server reads in the table it orders the entries with the most specific Host values first in the Host column means any host and is least specific Entries with the same Host value are ordered with the most specific User values first a blank User value means any user and is least specific The resulting sorted user table looks like this Host User localhost root localhost jeffrey root When a connection is attempted the server looks through the sorted entries and uses the first match found For a connection from localhost by jeffrey the entries with localhost in the Host column match first Of those the entry with the blank user name matches both the connecting hostname and user name The jeffrey entry would have matched too but it is not the first match in the table Here is another example Suppose the user table looks like this Host User jeffrey thomas loc gov The sorted table looks like this Host User thomas loc gov jeffrey A connection from thomas loc gov by jeffrey is matched by the first entry whereas a connection from whitehouse gov by jeffrey is matched by the second A common misconception is to think that for a given user name all entries that explicitly name that user will be used first when the server attempts to find a match for the connection This is simply not true The previous example illustrates this where a connection from thomas loc gov by jeffrey is first matched not by the entry containing jeffrey as the User field value but by the entry with no user name If you have problems connecting to the server print out the user table and sort it by hand to see where the first match is being made 464 6 8 Access control stage 2 Request verification Once you establish a connection the server enters stage 2 For each request that comes in on the connection the server checks whether you have sufficient privileges to perform it based on the type of operation you wish to perform This is where the privilege fields in the grant tables come into play These privileges can come from any of the user db host tables priv or columns priv tables The grant tables are manipulated with GRANT and REVOKE commands See section 465 7 25 GRANT and REVOKE syntax You may find it helpful to refer to section 466 6 6 How the privilege system works which lists the fields present in each of the grant tables The user table grants privileges that are assigned to you on a global basis and that apply no matter what the current database is For example if the user table grants you the delete privilege you can delete rows from any database on the server host In other words user table privileges are superuser privileges It is wise to grant privileges in the user table only to superusers such as server or database administrators For other users you should leave the privileges in the user table set to N and grant privileges on a database specific basis only using the db and host tables The db and host tables grant database specific privileges Values in the scope fields may be specified as follows The wildcard characters and can be used in the Host and Db fields of either table A Host value in the db table means any host A blank Host value in the db table means consult the host table for further information A or blank Host value in the host table means any host A or blank Db value in either table means any database A blank User value in either table matches the anonymous user The db and host tables are read in and sorted when the server starts up at the same time that it reads the user table The db table is sorted on the Host Db and User scope fields and the host table is sorted on the Host and Db scope fields As with the user table sorting puts the most specific values first and least specific values last and when the server looks for matching entries it uses the first match that it finds The tables priv and columns priv tables grant table and column specific privileges Values in the scope fields may be specified as follows The wildcard characters and can be used in the Host field of either table A or blank Host value in either table means any host The Db Table name and Column name fields cannot contain wildcards or be blank in either table The tables priv and columns priv tables are sorted on the Host Db and User fields This is similar to db table sorting although since only the Host field may contain wildcards the sorting is simpler The request verification process is described below If you are familiar with the access checking source code you will notice that the description here differs slightly from the algorithm used in the code The description is equivalent to what the code actually does it differs only to make the explanation simpler For administrative requests shutdown reload etc the server checks only the user table entry since that is the only table that specifies administrative privileges Access is granted if the entry allows the requested operation and denied otherwise For example if you want to execute mysqladmin shutdown but your user table entry doesn t grant the shutdown privilege to you access is denied without even checking the db or host tables Since they contain no Shutdown priv column there is no need to do so For database related requests insert update etc the server first checks the user s global superuser privileges by looking in the user table entry If the entry allows the requested operation access is granted If the global privileges in the user table are insufficient the server determines the user s database specific privileges by checking the db and host tables 1 The server looks in the db table for a match on the Host Db and User fields Host and User are matched to the connecting user s hostname and MySQL user name The Db field is matched to the database the user wants to access If there is no entry for the Host and User access is denied 2 If there is a matching db table entry and its Host field is not blank that entry defines the user s database specific privileges 3 If the matching db table entry s Host field is blank it signifies that the host table enumerates which hosts should be allowed access to the database In this case a further lookup is done in the host table to find a match on the Host and Db fields If no host table entry matches access is denied If there is a match the user s database specific privileges are computed as the intersection not the union of the privileges in the db and host table entries i e the privileges that are Y in both entries This way you can grant general privileges in the db table entry and then selectively restrict them on a host by host basis using the host table entries After determining the database specific privileges granted by the db and host table entries the server adds them to the global privileges granted by the user table If the result allows the requested operation access is granted Otherwise the server checks the user s table and column privileges in the tables priv and columns priv tables and adds those to the user s privileges Access is allowed or denied based on the result Expressed in boolean terms the preceding description of how a user s privileges are calculated may be summarized like this global privileges OR database privileges AND host privileges OR table privileges OR column privileges It may not be apparent why if the global user entry privileges are initially found to be insufficient for the requested operation the server adds those privileges to the database table and column specific privileges later The reason is that a request might require more than one type of privilege For example if you execute an INSERT SELECT statement you need both insert and select privileges Your privileges might be such that the user table entry grants one privilege and the db table entry grants the other In this case you have the necessary privileges to perform the request but the server cannot tell that from either table by itself the privileges granted by both entries must be combined The host table can be used to maintain a list of secure servers At TcX the host table contains a list of all machines on the local network These are granted all privileges You can also use the host table to indicate hosts that are not secure Suppose you have a machine public your domain that is located in a public area that you do not consider secure You can allow access to all hosts on your network except that machine by using host table entries like this Host Db public your domain all privileges set to N your domain all privileges set to Y Naturally you should always test your entries in the grant tables e g using mysqlaccess to make sure your access privileges are actually set up the way you think they are 467 6 9 When privilege changes take effect When mysqld starts all grant table contents are read into memory and become effective at that point Modifications to the grant tables that you perform using GRANT REVOKE or SET PASSWORD are noticed by the server immediately If you modify the grant tables manually using INSERT UPDATE etc you should execute a FLUSH PRIVILEGES statement or run mysqladmin flush privileges to tell the server to reload the grant tables Otherwise your changes will have no effect until you restart the server When the server notices that the grant tables have been changed existing client connections are affected as follows Table and column privilege changes take effect with the client s next request Database privilege changes take effect at the next USE db name command Global privilege changes and password changes take effect the next time the client connects 468 6 10 Setting up the initial MySQL privileges After installing MySQL you set up the initial access privileges by running scripts mysql install db See section 469 4 7 1 Quick installation overview The scripts mysql install db script starts up the mysqld server then initializes the grant tables to contain the following set of privileges The MySQL root user is created as a superuser who can do anything Connections must be made from the local host Note The initial root password is empty so anyone can connect as root without a password and be granted all privileges An anonymous user is created that can do anything with databases that have a name of test or starting with test Connections must be made from the local host This means any local user can connect and be treated as the anonymous user Other privileges are denied For example normal users can t use mysqladmin shutdown or mysqladmin processlist Note The default privileges are different for Win32 See section 470 4 12 4 Running MySQL on Win32 Since your installation is initially wide open one of the first things you should do is specify a password for the MySQL root user You can do this as follows note that you specify the password using the PASSWORD function shell mysql u root mysql mysql UPDATE user SET Password PASSWORD new password WHERE user root mysql FLUSH PRIVILEGES You can also use the SET PASSWORD statement shell mysql u root mysql mysql SET PASSWORD FOR root PASSWORD new password Another way to set the password is by using the mysqladmin command shell mysqladmin u root password new password Note that if you update the password in the user table directly using the first method you must tell the server to reread the grant tables with FLUSH PRIVILEGES since the change will go unnoticed otherwise Once the root password has been set thereafter you must supply that password when you connect to the server as root You may wish to leave the root password blank so that you don t need to specify it while you perform additional setup or testing but be sure to set it before using your installation for any real production work See the scripts mysql install db script to see how it sets up the default privileges You can use this as a basis to see how to add other users If you want the initial privileges to be different than those just described above you can modify mysql install db before you run it To recreate the grant tables completely remove all the frm ISM and ISD files in the directory containing the mysql database This is the directory named mysql under the database directory which is listed when you run mysqld help Then run the mysql install db script possibly after editing it first to have the privileges you want NOTE For MySQL versions before 3 22 10 you should NOT delete the frm files If you accidentally do this you should copy them back from your MySQL distribution before running mysql install db 471 6 11 Adding new user privileges to MySQL You can add users two different ways by using GRANT statements or by manipulating the MySQL grant tables directly The preferred method is to use GRANT statements because they are more concise and less error prone The examples below show how to use the mysql client to set up new users These examples assume that privileges are set up according to the defaults described in the previous section This means that to make changes you must be on the same machine where mysqld is running you must connect as the MySQL root user and the root user must have the insert privilege for the mysql database and the reload administrative privilege Also if you have changed the root user password you must specify it for the mysql commands below You can add new users by issuing GRANT statements shell mysql user root mysql mysql GRANT ALL PRIVILEGES ON TO monty localhost IDENTIFIED BY something WITH GRANT OPTION mysql GRANT ALL PRIVILEGES ON TO monty IDENTIFIED BY something WITH GRANT OPTION mysql GRANT RELOAD PROCESS ON TO admin localhost mysql GRANT USAGE ON TO dummy localhost These GRANT statements set up three new users monty A full superuser who can connect to the server from anywhere but who must use a password something to do so Note that we must issue GRANT statements for both monty localhost and monty If we don t add the entry with localhost the anonymous user entry for localhost that is created by mysql install db will take precedence when we connect from the local host because it has a more specific Host field value and thuse comes earlier in the user table sort order admin A user who can connect from localhost without a password and who is granted the reload and process administrative privileges This allows the user to execute the mysqladmin reload mysqladmin refresh and mysqladmin flush commands as well as mysqladmin processlist No database related privileges are granted They can be granted later by issuing additional GRANT statements dummy A user who can connect without a password but only from the local host The global privileges are all set to N the USAGE privilege type allows you to set up a user with no privileges It is assumed that you will grant database specific privileges later You can also add the same user access information directly by issuing INSERT statements and then telling the server to reload the grant tables shell mysql user root mysql mysql INSERT INTO user VALUES localhost monty PASSWORD something Y Y Y Y Y Y Y Y Y Y Y Y Y Y mysql INSERT INTO user VALUES monty PASSWORD something Y Y Y Y Y Y Y Y Y Y Y Y Y Y mysql INSERT INTO user SET Host localhost User admin Reload priv Y Process priv Y mysql INSERT INTO user Host User Password VALUES localhost dummy mysql FLUSH PRIVILEGES Depending on your MySQL version you may have to use a different number of Y values above versions prior to 3 22 11 had fewer privilege columns For the admin user the more readable extended INSERT syntax that is available starting with 3 22 11 is used Note that to set up a superuser you need only create a user table entry with the privilege fields set to Y No db or host table entries are necessary The privilege columns in the user table were not set explicitly in the last INSERT statement for the dummy user so those columns are assigned the default value of N This is the same thing that GRANT USAGE does The following example adds a user custom who can connect from hosts localhost server domain and whitehouse gov He wants to access the bankaccount database only from localhost the expenses database only from whitehouse gov and the customer database from all three hosts He wants to use the password stupid from all three hosts To set up this user s privileges using GRANT statements run these commands shell mysql user root mysql mysql GRANT SELECT INSERT UPDATE DELETE CREATE DROP ON bankaccount TO custom localhost IDENTIFIED BY stupid mysql GRANT SELECT INSERT UPDATE DELETE CREATE DROP ON expenses TO custom whitehouse gov IDENTIFIED BY stupid mysql GRANT SELECT INSERT UPDATE DELETE CREATE DROP ON customer TO custom IDENTIFIED BY stupid To set up the user s privileges by modifying the grant tables directly run these commands note the FLUSH PRIVILEGES at the end shell mysql user root mysql mysql INSERT INTO user Host User Password VALUES localhost custom PASSWORD stupid mysql INSERT INTO user Host User Password VALUES server domain custom PASSWORD stupid mysql INSERT INTO user Host User Password VALUES whitehouse gov custom PASSWORD stupid mysql INSERT INTO db Host Db User Select priv Insert priv Update priv Delete priv Create priv Drop priv VALUES localhost bankaccount custom Y Y Y Y Y Y mysql INSERT INTO db Host Db User Select priv Insert priv Update priv Delete priv Create priv Drop priv VALUES whitehouse gov expenses custom Y Y Y Y Y Y mysql INSERT INTO db Host Db User Select priv Insert priv Update priv Delete priv Create priv Drop priv VALUES customer custom Y Y Y Y Y Y mysql FLUSH PRIVILEGES The first three INSERT statements add user table entries that allow user custom to connect from the various hosts with the given password but grant no permissions to him all privileges are set to the default value of N The next three INSERT statements add db table entries that grant privileges to custom for the bankaccount expenses and customer databases but only when accessed from the proper hosts As usual when the grant tables are modified directly the server must be told to reload them with FLUSH PRIVILEGES so that the privilege changes take effect If you want to give a specific user access from any machine in a given domain you can issue a GRANT statement like the following mysql GRANT ON TO myusername mydomainname com IDENTIFIED BY mypassword To do the same thing by modifying the grant tables directly do this mysql INSERT INTO user VALUES mydomainname com myusername PASSWORD mypassword mysql FLUSH PRIVILEGES You can also use xmysqladmin mysql webadmin and even xmysql to insert change and update values in the grant tables You can find these utilities at the MySQL 472 Contrib directory 473 6 12 How to set up passwords The examples in the preceding sections illustrate an important principle when you store a non empty password using INSERT or UPDATE statements you must use the PASSWORD function to encrypt it This is because the user table stores passwords in encrypted form not as plaintext If you forget that fact you are likely to attempt to set passwords like this shell mysql u root mysql mysql INSERT INTO user Host User Password VALUES jeffrey biscuit mysql FLUSH PRIVILEGES The result is that the plaintext value biscuit is stored as the password in the user table When the user jeffrey attempts to connect to the server using this password the mysql client encrypts it with PASSWORD and sends the result to the server The server compares the value in the user table which is the plaintext value biscuit to the encrypted password which is not biscuit The comparison fails and the server rejects the connection shell mysql u jeffrey pbiscuit test Access denied Since passwords must be encrypted when they are inserted in the user table the INSERT statement should have been specified like this instead mysql INSERT INTO user Host User Password VALUES jeffrey PASSWORD biscuit You must also use the PASSWORD function when you use SET PASSWORD statements mysql SET PASSWORD FOR jeffrey PASSWORD biscuit If you set passwords using the GRANT IDENTIFIED BY statement or the mysqladmin password command the PASSWORD function is unnecessary They both take care of encrypting the password for you so you would specify a password of biscuit like this mysql GRANT USAGE ON TO jeffrey IDENTIFIED BY biscuit or shell mysqladmin u jeffrey password biscuit Note PASSWORD does not perform password encryption in the same way that Unix passwords are encrypted You should not assume that if your Unix password and your MySQL password are the same PASSWORD will result in the same encrypted value as is stored in the Unix password file See section 474 6 2 MySQL user names and passwords 475 6 13 Causes of Access denied errors If you encounter Access denied errors when you try to connect to the MySQL server the list below indicates some courses of action you can take to correct the problem Did you run the mysql install db script after installing MySQL to set up the initial grant table contents If not do so See section 476 6 10 Setting up the initial MySQL privileges Test the initial privileges by executing this command shell mysql u root test The server should let you connect without error You should also make sure you have a file user ISD in the MySQL database directory Ordinarily this is PATH var mysql user ISD where PATH is the pathname to the MySQL installation root After a fresh installation you should connect to the server and set up your users and their access permissions shell mysql u root mysql The server should let you connect because the MySQL root user has no password initially Since that is also a security risk setting the root password is something you should do while you re setting up your other MySQL users If you try to connect as root and get this error Access denied for user unknown to database mysql this means that you don t have an entry in the user table with a User column value of root and that mysqld cannot resolve the hostname for your client In this case you must restart the server with the skip grant tables option and edit your etc hosts or windows hosts file to add a entry for your host If you updated an existing MySQL installation from a pre 3 22 11 version to 3 22 11 or later did you run the mysql fix privilege tables script If not do so The structure of the grant tables changed with MySQL 3 22 11 when the GRANT statement became functional If you make changes to the grant tables directly using INSERT or UPDATE statement and your changes seem to be ignored remember that you must issue a FLUSH PRIVILEGES statement or execute a mysqladmin flush privileges command to cause the server to reread the tables Otherwise your changes have no effect until the next time the server is restarted Remember that after you set the root password you won t need to specify it until after you flush the privileges because the server still won t know you ve changed the password yet If your privileges seem to have changed in the middle of a session it may be that a superuser has changed them Reloading the grant tables affects new client connections but it also affects existing connections as indicated in section 477 6 9 When privilege changes take effect For testing start the mysqld daemon with the skip grant tables option Then you can change the MySQL grant tables and use the mysqlaccess script to check whether or not your modifications have the desired effect When you are satisfied with your changes execute mysqladmin flush privileges to tell the mysqld server to start using the new grant tables Note Reloading the grant tables overrides the skip grant tables option This allows you to tell the server to begin using the grant tables again without bringing it down and restarting it If you have access problems with a Perl Python or ODBC program try to connect to the server with mysql u user name db name or mysql u user name pyour pass db name If you are able to connect using the mysql client there is a problem with your program and not with the access privileges Notice that there is no space between p and the password you can also use the password your pass syntax to specify the password If you can t get your password to work remember that you must use the PASSWORD function if you set the password with the INSERT UPDATE or SET PASSWORD statements The PASSWORD function is unnecessary if you specify the password using the GRANT INDENTIFIED BY statement or the mysqladmin password command See section 478 6 12 How to set up passwords localhost is a synonym for your local hostname and is also the default host to which clients try to connect if you specify no host explicitly However connections to localhost do not work if you are running on a system that uses MIT pthreads localhost connections are made using Unix sockets which are not supported by MIT pthreads To avoid this problem on such systems you should use the host option to name the server host explicitly This will make a TCP IP connection to the mysqld server In this case you must have your real hostname in user table entries on the server host This is true even if you are running a client program on the same host as the server If you get an Access denied error when trying to connect to the database with mysql u user name db name you may have a problem with the user table Check this by executing mysql u root mysql and issuing this SQL statement mysql SELECT FROM user The result should include an entry with the Host and User columns matching your computer s hostname and your MySQL user name The Access denied error message will tell you who you are trying to log in as the host from which you are trying to connect and whether or not you were using a password Normally you should have one entry in the user table that exactly matches the hostname and user name that were given in the error message If you get the following error when you try to connect from a different host than the one on which the MySQL server is running then there is no row in the user table that matches that host Host is not allowed to connect to this MySQL server You can fix this by using the command line tool mysql on the server host to add a row to the user table for the user hostname combination from which you are trying to connect If you are not running MySQL 3 22 and you don t know the IP number or hostname of the machine from which you are connecting you should put an entry with as the Host column value in the user table and restart mysqld with the log option on the server machine After trying to connect from the client machine the information in the MySQL log will indicate how you really did connect Then replace the in the user table entry with the actual hostname that shows up in the log Otherwise you ll have a system that is insecure If mysql u root test works but mysql h your hostname u root test results in Access denied then you may not have the correct name for your host in the user table A common problem here is that the Host value in the user table entry specifies an unqualified hostname but your system s name resolution routines return a fully qualified domain name or vice versa For example if you have an entry with host tcx in the user table but your DNS tells MySQL that your hostname is tcx subnet se the entry will not work Try adding an entry to the user table that contains the IP number of your host as the Host column value Alternatively you could add an entry to the user table with a Host value that contains a wildcard for example tcx However use of hostnames ending with is insecure and is not recommended If mysql u user name test works but mysql u user name other db name doesn t work you don t have an entry for other db name listed in the db table If mysql u user name db name works when executed on the server machine but mysql u host name u user name db name doesn t work when executed on another client machine you don t have the client machine listed in the user table or the db table If you can t figure out why you get Access denied remove from the user table all entries that have Host values containing wildcards entries that contain or A very common error is to insert a new entry with Host and User some user thinking that this will allow you to specify localhost to connect from the same machine The reason that this doesn t work is that the default privileges include an entry with Host localhost and User Since that entry has a Host value localhost that is more specific than it is used in preference to the new entry when connecting from localhost The correct procedure is to insert a second entry with Host localhost and User some user or to remove the entry with with Host localhost and User If you get the following error you may have a problem with the db or host table Access to database denied If the entry selected from the db table has an empty value in the Host column make sure there are one or more corresponding entries in the host table specifying which hosts the db table entry applies to If you get the error when using the SQL commands SELECT INTO OUTFILE or LOAD DATA INFILE your entry in the user table probably doesn t have the file privilege enabled Remember that client programs will use connection parameters specified in configuration files or environment variables If a client seems to be sending the wrong default connection parameters when you don t specify them on the command line check your environment and the my cnf file in your home directory You might also check the system wide MySQL configuration files though it is far less likely that client connection parameters will be specified there See section 479 4 15 4 Option files If you get Access denied when you run a client without any options make sure you haven t specified an old password in any of your option files See section 480 4 15 4 Option files If everything else fails start the mysqld daemon with a debugging option for example debug d general query This will print host and user information about attempted connections as well as information about each command issued See section 481 G 1 Debugging a MySQL server If you have any other problems with the MySQL grant tables and feel you must post the problem to the mailing list always provide a dump of the MySQL grant tables You can dump the tables with the mysqldump mysql command As always post your problem using the mysqlbug script In some cases you may restart mysqld with skip grant tables to be able to run mysqldump 482 6 14 How to make MySQL secure against crackers When you connect to a MySQL server you should normally use a password The password is not transmitted in clear text over the connection All other information is transferred as text that can be read by anyone that is able to watch the connection If you are concerned about this you can use the compressed protocol in MySQL 3 22 and above to make things much harder To make things even more secure you should install ssh see 483 http www cs hut fi ssh With this you can get an encrypted TCP IP connection between a MySQL server and a MySQL client To make a MySQL system secure you should strongly consider the following suggestions Use passwords for all MySQL users Remember that anyone can log in as any other person as simply as mysql u other user db name if other user has no password It is common behavior with client server applications that the client may specify any user name You can change the password of all users by editing the mysql install db script before you run it or only the password for the MySQL root user like this shell mysql u root mysql mysql UPDATE user SET Password PASSWORD new password WHERE user root mysql FLUSH PRIVILEGES Don t run the MySQL daemon as the Unix root user mysqld can be run as any user You can also create a new Unix user mysql to make everything even more secure If you run mysqld as another Unix user you don t need to change the root user name in the user table because MySQL user names have nothing to do with Unix user names You can edit the mysql server script to start mysqld as another Unix user Normally this is done with the su command For more details see section 484 17 8 How to run MySQL as a normal user If you put a password for the Unix root user in the mysql server script make sure this script is readable only by root Check that the Unix user that mysqld runs as is the only user with read write privileges in the database directories Don t give the process privilege to all users The output of mysqladmin processlist shows the text of the currently executing queries so any user who is allowed to execute that command might be able to see if another user issues an UPDATE user SET password PASSWORD not secure query mysqld saves an extra connection for users who have the process privilege so that a MySQL root user can log in and check things even if all normal connections are in use Don t give the file privilege to all users Any user that has this privilege can write a file anywhere in the file system with the privileges of the mysqld daemon To make this a bit safer all files generated with SELECT INTO OUTFILE are readable to everyone and you can t overwrite existing files The file privilege may also be used to read any file accessible to the Unix user that the server runs as This could be abused for example by using LOAD DATA to load etc passwd into a table which can then be read with SELECT If you don t trust your DNS you should use IP numbers instead of hostnames in the grant tables In principle the secure option to mysqld should make hostnames safe In any case you should be very careful about using hostname values that contain wildcards The following mysqld options affect security secure IP numbers returned by the gethostbyname system call are checked to make sure they resolve back to the original hostname This makes it harder for someone on the outside to get access by simulating another host This option also adds some sanity checks of hostnames The option is turned off by default in MySQL 3 21 since it sometimes takes a long time to perform backward resolutions MySQL 3 22 caches hostnames and has this option enabled by default skip grant tables This option causes the server not to use the privilege system at all This gives everyone full access to all databases You can tell a running server to start using the grant tables again by executing mysqladmin reload skip name resolve Hostnames are not resolved All Host column values in the grant tables must be IP numbers or localhost skip networking Don t allow TCP IP connections over the network All connections to mysqld must be made via Unix sockets This option is unsuitable for systems that use MIT pthreads because the MIT pthreads package doesn t support Unix sockets 485 7 MySQL language reference 486 7 1 Literals how to write strings and numbers 487 7 1 1 Strings A string is a sequence of characters surrounded by either single quote or double quote characters Examples a string another string Within a string certain sequences have special meaning Each of these sequences begins with a backslash known as the escape character MySQL recognizes the following escape sequences 0 An ASCII 0 NUL character n A newline character t A tab character r A carriage return character b A backspace character A single quote character A double quote character A backslash character A character This is used to search for literal instances of in contexts where would otherwise be interpreted as a wildcard character A character This is used to search for literal instances of in contexts where would otherwise be interpreted as a wildcard character There are several ways to include quotes within a string A inside a string quoted with may be written as A inside a string quoted with may be written as You can precede the quote character with an escape character A inside a string quoted with needs no special treatment and need not be doubled or escaped In the same way inside a string quoted with needs no special treatment The SELECT statements shown below demonstrate how quoting and escaping work mysql SELECT hello hello hello hel lo hello hello hello hello hel lo hello mysql SELECT hello hello hello hel lo hello hello hello hello hel lo hello mysql SELECT This nIs nFour nlines This Is Four lines If you want to insert binary data into a BLOB column the following characters must be represented by escape sequences NUL ASCII 0 You should represent this by 0 a backslash and an ASCII 0 character ASCII 92 backslash Represent this by ASCII 39 single quote Represent this by ASCII 34 double quote Represent this by If you write C code you can use the C API function mysql escape string to escape characters for the INSERT statement See section 488 19 3 C API function overview In Perl you can use the quote method of the DBI package to convert special characters to the proper escape sequences See section 489 19 5 2 The DBI interface You should use an escape function on any string that might contain any of the special characters listed above 490 7 1 2 Numbers Integers are represented as a sequence of digits Floats use as a decimal separator Either type of number may be preceded by to indicate a negative value Examples of valid integers 1221 0 32 Examples of valid floating point numbers 294 42 32032 6809e 10 148 00 An integer may be used in a floating point context it is interpreted as the equivalent floating point number 491 7 1 3 NULL values The NULL value means no data and is different from values such as 0 for numeric types or the empty string for string types See section 492 17 14 Problems with NULL values NULL may be represented by N when using the text file import or export formats LOAD DATA INFILE SELECT INTO OUTFILE See section 493 7 15 LOAD DATA INFILE syntax 494 7 1 4 Database table index column and alias names Database table index column and alias names all follow the same rules in MySQL A name may consist of alphanumeric characters from the current character set and also and The default character set is ISO 8859 1 Latin1 this may be changed by recompiling MySQL See section 495 9 1 1 The character set used for data and sorting A database table index or column name can be up to 64 characters long An alias name can be up to 256 characters long A name may start with any character that is legal in a name In particular a name may start with a number this differs from many other database systems However a name cannot consist only of numbers It is recommended that you do not use names like 1e because an expression like 1e 1 is ambiguous It may be interpreted as the expression 1e 1 or as the number 1e 1 You cannot use the character in names because it is used to extend the format by which you can refer to columns see immediately below In MySQL you can refer to a column using any of the following forms Column reference Meaning col name Column col name from whichever table used in the query contains a column of that name tbl name col name Column col name from table tbl name of the current database db name tbl name col name Column col name from table tbl name of the database db name This form is available in MySQL 3 22 or later You need not specify a tbl name or db name tbl name prefix for a column reference in a statement unless the reference would be ambiguous For example suppose tables t1 and t2 each contain a column c and you retrieve c in a SELECT statement that uses both t1 and t2 In this case c is ambiguous because it is not unique among the tables used in the statement so you must indicate which table you mean by writing t1 c or t2 c Similarly if you are retrieving from a table t in database db1 and from a table t in database db2 you must refer to columns in those tables as db1 t col name and db2 t col name The syntax tbl name means the table tbl name in the current database This syntax is accepted for ODBC compatibility because some ODBC programs prefix table names with a character 496 7 1 4 1 Case sensitivity in names In MySQL databases and tables correspond to directories and files within those directories Consequently the case sensitivity of the underlying operating system determines the case sensitivity of database and table names This means database and table names are case sensitive in Unix and case insensitive in Win32 Note Although database and table names are case insensitive for Win32 you should not refer to a given database or table using different cases within the same query The following query would not work because it refers to a table both as my table and as MY TABLE SELECT FROM my table WHERE MY TABLE col 1 Column names are case insensitive in all cases Aliases on tables are case sensitive The following query would not work because it refers to the alias both as a and as A mysql SELECT col name FROM tbl name AS a WHERE a col name 1 OR A col name 2 Aliases on columns are case insensitive 497 7 2 Column types MySQL supports a number of column types which may be grouped into three categories numeric types date and time types and string character types This section first gives an overview of the types available and summarizes the storage requirements for each column type then provides a more detailed description of the properties of the types in each category The overview is intentionally brief The more detailed descriptions should be consulted for additional information about particular column types such as the allowable formats in which you can specify values The column types supported by MySQL are listed below The following code letters are used in the descriptions M Indicates the maximum display size The maximum legal display size is 255 D Applies to floating point types and indicates the number of digits following the decimal point Square brackets and indicate parts of type specifiers that are optional Note that if you specify ZEROFILL for a column MySQL will automatically add the UNSIGNED attribute to the column TINYINT M UNSIGNED ZEROFILL A very small integer The signed range is 128 to 127 The unsigned range is 0 to 255 SMALLINT M UNSIGNED ZEROFILL A small integer The signed range is 32768 to 32767 The unsigned range is 0 to 65535 MEDIUMINT M UNSIGNED ZEROFILL A medium size integer The signed range is 8388608 to 8388607 The unsigned range is 0 to 16777215 INT M UNSIGNED ZEROFILL A normal size integer The signed range is 2147483648 to 2147483647 The unsigned range is 0 to 4294967295 INTEGER M UNSIGNED ZEROFILL This is a synonym for INT BIGINT M UNSIGNED ZEROFILL A large integer The signed range is 9223372036854775808 to 9223372036854775807 The unsigned range is 0 to 18446744073709551615 Note that all arithmetic is done using signed BIGINT or DOUBLE values so you shouldn t use unsigned big integers larger than 9223372036854775807 63 bits except with bit functions Note that and will use BIGINT arithmetic when both arguments are INTEGER values This means that if you multiply two big integers or results from functions that return integers you may get unexpected results if the result is larger than 9223372036854775807 FLOAT precision ZEROFILL A floating point number Cannot be unsigned precision can be 4 or 8 FLOAT 4 is a single precision number and FLOAT 8 is a double precision number These types are like the FLOAT and DOUBLE types described immediately below FLOAT 4 and FLOAT 8 have the same ranges as the corresponding FLOAT and DOUBLE types but their display size and number of decimals is undefined In MySQL 3 23 this is a true floating point value In earlier MySQL versions FLOAT precision always has 2 decimals This syntax is provided for ODBC compatibility FLOAT M D ZEROFILL A small single precision floating point number Cannot be unsigned Allowable values are 3 402823466E 38 to 1 175494351E 38 0 and 1 175494351E 38 to 3 402823466E 38 DOUBLE M D ZEROFILL A normal size double precision floating point number Cannot be unsigned Allowable values are 1 7976931348623157E 308 to 2 2250738585072014E 308 0 and 2 2250738585072014E 308 to 1 7976931348623157E 308 DOUBLE PRECISION M D ZEROFILL REAL M D ZEROFILL These are synonyms for DOUBLE DECIMAL M D ZEROFILL An unpacked floating point number Cannot be unsigned Behaves like a CHAR column unpacked means the number is stored as a string using one character for each digit of the value the decimal point and for negative numbers the sign If D is 0 values will have no decimal point or fractional part The maximum range of DECIMAL values is the same as for DOUBLE but the actual range for a given DECIMAL column may be constrained by the choice of M and D In MySQL 3 23 the M argument no longer includes the sign or the decimal point This is according to ANSI SQL NUMERIC M D ZEROFILL This is a synonym for DECIMAL DATE A date The supported range is 1000 01 01 to 9999 12 31 MySQL displays DATE values in YYYY MM DD format but allows you to assign values to DATE columns using either strings or numbers DATETIME A date and time combination The supported range is 1000 01 01 00 00 00 to 9999 12 31 23 59 59 MySQL displays DATETIME values in YYYY MM DD HH MM SS format but allows you to assign values to DATETIME columns using either strings or numbers TIMESTAMP M A timestamp The range is 1970 01 01 00 00 00 to sometime in the year 2037 MySQL displays TIMESTAMP values in YYYYMMDDHHMMSS YYMMDDHHMMSS YYYYMMDD or YYMMDD format depending on whether M is 14 or missing 12 8 or 6 but allows you to assign values to TIMESTAMP columns using either strings or numbers A TIMESTAMP column is useful for recording the date and time of an INSERT or UPDATE operation because it is automatically set to the date and time of the most recent operation if you don t give it a value yourself You can also set it to the current date and time by assigning it a NULL value See section 498 7 2 6 Date and time types TIME A time The range is 838 59 59 to 838 59 59 MySQL displays TIME values in HH MM SS format but allows you to assign values to TIME columns using either strings or numbers YEAR A year The allowable values are 1901 to 2155 and 0000 MySQL displays YEAR values in YYYY format but allows you to assign values to YEAR columns using either strings or numbers The YEAR type is new in MySQL 3 22 CHAR M BINARY A fixed length string that is always right padded with spaces to the specified length when stored The range of M is 1 to 255 characters Trailing spaces are removed when the value is retrieved CHAR values are sorted and compared in case insensitive fashion unless the BINARY keyword is given VARCHAR M BINARY A variable length string Note Trailing spaces are removed when the value is stored this differs from the ANSI SQL specification The range of M is 1 to 255 characters VARCHAR values are sorted and compared in case insensitive fashion unless the BINARY keyword is given See section 499 7 6 1 Silent column specification changes TINYBLOB TINYTEXT A BLOB or TEXT column with a maximum length of 255 2 8 1 characters See section 500 7 6 1 Silent column specification changes BLOB TEXT A BLOB or TEXT column with a maximum length of 65535 2 16 1 characters See section 501 7 6 1 Silent column specification changes MEDIUMBLOB MEDIUMTEXT A BLOB or TEXT column with a maximum length of 16777215 2 24 1 characters See section 502 7 6 1 Silent column specification changes LONGBLOB LONGTEXT A BLOB or TEXT column with a maximum length of 4294967295 2 32 1 characters See section 503 7 6 1 Silent column specification changes ENUM value1 value2 An enumeration A string object that can have only one value chosen from the list of values value1 value2 or NULL An ENUM can have a maximum of 65535 distinct values SET value1 value2 A set A string object that can have zero or more values each of which must be chosen from the list of values value1 value2 A SET can have a maximum of 64 members 504 7 2 1 Column type storage requirements The storage requirements for each of the column types supported by MySQL are listed below by category 7 2 2 Numeric types Column type Storage required TINYINT 1 byte SMALLINT 2 bytes MEDIUMINT 3 bytes INT 4 bytes INTEGER 4 bytes BIGINT 8 bytes FLOAT 4 4 bytes FLOAT 8 8 bytes FLOAT 4 bytes DOUBLE 8 bytes DOUBLE PRECISION 8 bytes REAL 8 bytes DECIMAL M D M bytes D 2 if M D NUMERIC M D M bytes D 2 if M D 7 2 3 Date and time types Column type Storage required DATETIME 8 bytes DATE 3 bytes TIMESTAMP 4 bytes TIME 3 bytes YEAR 1 byte 7 2 4 String types Column type Storage required CHAR M M bytes 1 M 255 VARCHAR M L 1 bytes where L M and 1 M 255 TINYBLOB TINYTEXT L 1 bytes where L 2 8 BLOB TEXT L 2 bytes where L 2 16 MEDIUMBLOB MEDIUMTEXT L 3 bytes where L 2 24 LONGBLOB LONGTEXT L 4 bytes where L 2 32 ENUM value1 value2 1 or 2 bytes depending on the number of enumeration values 65535 values maximum SET value1 value2 1 2 3 4 or 8 bytes depending on the number of set members 64 members maximum VARCHAR and the BLOB and TEXT types are variable length types for which the storage requirements depend on the actual length of column values represented by L in the preceding table rather than on the type s maximum possible size For example a VARCHAR 10 column can hold a string with a maximum length of 10 characters The actual storage required is the length of the string L plus 1 byte to record the length of the string For the string abcd L is 4 and the storage requirement is 5 bytes The BLOB and TEXT types require 1 2 3 or 4 bytes to record the length of the column value depending on the maximum possible length of the type If a table includes any variable length column types the record format will also be variable length Note that when a table is created MySQL may under certain conditions change a column from a variable length type to a fixed length type or vice versa See section 505 7 6 1 Silent column specification changes The size of an ENUM object is determined by the number of different enumeration values 1 byte is used for enumerations with up to 255 possible values 2 bytes are used for enumerations with up to 65535 values The size of a SET object is determined by the number of different set members If the set size is N the object occupies N 7 8 bytes rounded up to 1 2 3 4 or 8 bytes A SET can have a maximum of 64 members 506 7 2 5 Numeric types All integer types can have an optional attribute UNSIGNED Unsigned values can be used when you want to allow only positive numbers in a column and you need a little bigger numeric range for the column All numeric types can have an optional attribute ZEROFILL Values for ZEROFILL columns are left padded with zeroes up to the maximum display length when they are displayed For example for a column declared as INT 5 ZEROFILL a value of 4 is retrieved as 00004 When asked to store a value in a numeric column that is outside the column type s allowable range MySQL clips the value to the appropriate endpoint of the range and stores the resulting value instead For example the range of an INT column is 2147483648 to 2147483647 If you try to insert 9999999999 into an INT column the value is clipped to the lower endpoint of the range and 2147483648 is stored instead Similarly if you try to insert 9999999999 2147483647 is stored instead If the INT column is UNSIGNED the size of the column s range is the same but its endpoints shift up to 0 and 4294967295 If you try to store 9999999999 and 9999999999 the values stored in the column become 0 and 4294967296 Conversions that occur due to clipping are reported as warnings for ALTER TABLE LOAD DATA INFILE UPDATE and multi row INSERT statements The maximum display size M and number of decimals D are used for formatting and calculation of maximum column width MySQL will store any value that fits a column s storage type even if the value exceeds the display size For example an INT 4 column has a display size of 4 Suppose you insert a value which has more than 4 digits into the column such as 12345 The display size is exceeded but the allowable range of the INT type is not so MySQL stores the actual value 12345 When retrieving the value from the column MySQL returns the actual value stored in the column The DECIMAL type is considered a numeric type as is its synonym NUMERIC but such values are stored as strings One character is used for each digit of the value the decimal point if D 0 and the sign for negative numbers If D is 0 DECIMAL and NUMERIC values contain no decimal point or fractional part The maximum range of DECIMAL values is the same as for DOUBLE but the actual range for a given DECIMAL column may be constrained by the choice of M and D For example a type specification such as DECIMAL 4 2 indicates a maximum length of four characters with two digits after the decimal point Due to the way the DECIMAL type is stored this specification results in an allowable range of 99 to 9 99 much less than the range of a DOUBLE To avoid some rounding problems MySQL always rounds everything that it stores in any floating point column to the number of decimals indicated by the column specification Suppose you have a column type of FLOAT 8 2 The number of decimals is 2 so a value such as 2 333 is rounded to two decimals and stored as 2 33 507 7 2 6 Date and time types The date and time types are DATETIME DATE TIMESTAMP TIME and YEAR Each of these has a range of legal values as well as a zero value that is used when you specify an illegal value Here are some general considerations to keep in mind when working with date and time types MySQL retrieves values for a given date or time type in a standard format but it attempts to interpret a variety of formats for values that you supply e g when you specify a value to be assigned to or compared to a date or time type Nevertheless only the formats described in the following sections are supported It is expected that you will supply legal values and unpredictable results may occur if you use values in other formats Although MySQL tries to interpret values in several formats it always expects the year part of date values to be leftmost Dates must be given in year month day order e g 98 09 04 rather than in the month day year or day month year orders commonly used elsewhere e g 09 04 98 04 09 98 MySQL automatically converts a date or time type value to a number if the value is used in a numeric context and vice versa When MySQL encounters a value for a date or time type that is out of range or otherwise illegal for the type it converts the value to the zero value for that type The exception is that out of range TIME values are clipped to the appropriate endpoint of the TIME range The table below shows the format of the zero value for each type Column type Zero value DATETIME 0000 00 00 00 00 00 DATE 0000 00 00 TIMESTAMP 00000000000000 length depends on display size TIME 00 00 00 YEAR 0000 The zero values are special but you can store or refer to them explicitly using the values shown in the table You can also do this using the values 0 or 0 which are easier to write Zero date or time values used through MyODBC are converted automatically to NULL in MyODBC 2 50 12 and above because ODBC can t handle such values 508 7 2 6 1 Y2K issues and date types MySQL itself is Y2K safe see section 509 1 6 Year 2000 compliance but input values presented to MySQL may not be Any input containing 2 digit year values is ambiguous since the century is unknown Such values must be interpreted into 4 digit form since MySQL stores years internally using four digits For DATETIME DATE TIMESTAMP and YEAR types MySQL interprets dates with ambiguous year values using the following rules Year values in the range 00 69 are converted to 2000 2069 Year values in the range 70 99 are converted to 1970 1999 Remember that these rules provide only reasonable guesses as to what your data mean If the heuristics used by MySQL don t produce the correct values you should provide unambiguous input containing 4 digit year values 510 7 2 6 2 The DATETIME DATE and TIMESTAMP types The DATETIME DATE and TIMESTAMP types are related This section describes their characteristics how they are similar and how they differ The DATETIME type is used when you need values that contain both date and time information MySQL retrieves and displays DATETIME values in YYYY MM DD HH MM SS format The supported range is 1000 01 01 00 00 00 to 9999 12 31 23 59 59 Supported means that although earlier values might work there is no guarantee that they will The DATE type is used when you need only a date value without a time part MySQL retrieves and displays DATE values in YYYY MM DD format The supported range is 1000 01 01 to 9999 12 31 The TIMESTAMP column type provides a type that you can use to automatically mark INSERT or UPDATE operations with the current date and time If you have multiple TIMESTAMP columns only the first one is updated automatically Automatic updating of the first TIMESTAMP column occurs under any of the following conditions The column is not specified explicitly in an INSERT or LOAD DATA INFILE statement The column is not specified explicitly in an UPDATE statement and some other column changes value Note that an UPDATE that sets a column to the value it already has will not cause the TIMESTAMP column to be updated because if you set a column to its current value MySQL ignores the update for efficiency You explicitly set the TIMESTAMP column to NULL TIMESTAMP columns other than the first may also be set to the current date and time Just set the column to NULL or to NOW You can set any TIMESTAMP column to a value different than the current date and time by setting it explicitly to the desired value This is true even for the first TIMESTAMP column You can use this property if for example you want a TIMESTAMP to be set to the current date and time when you create a row but not to be changed whenever the row is updated later Let MySQL set the column when the row is created This will initialize it to the current date and time When you perform subsequent updates to other columns in the row set the TIMESTAMP column explicitly to its current value On the other hand you may find it just as easy to use a DATETIME column that you initialize to NOW when the row is created and leave alone for subsequent updates TIMESTAMP values may range from the beginning of 1970 to sometime in the year 2037 with a resolution of one second Values are displayed as numbers The format in which MySQL retrieves and displays TIMESTAMP values depends on the display size as illustrated by the table below The full TIMESTAMP format is 14 digits but TIMESTAMP columns may be created with shorter display sizes Column type Display format TIMESTAMP 14 YYYYMMDDHHMMSS TIMESTAMP 12 YYMMDDHHMMSS TIMESTAMP 10 YYMMDDHHMM TIMESTAMP 8 YYYYMMDD TIMESTAMP 6 YYMMDD TIMESTAMP 4 YYMM TIMESTAMP 2 YY All TIMESTAMP columns have the same storage size regardless of display size The most common display sizes are 6 8 12 and 14 You can specify an arbitrary display size at table creation time but values of 0 or greater than 14 are coerced to 14 Odd valued sizes in the range from 1 to 13 are coerced to the next higher even number You can specify DATETIME DATE and TIMESTAMP values using any of a common set of formats As a string in either YYYY MM DD HH MM SS or YY MM DD HH MM SS format A relaxed syntax is allowed any non numeric character may be used as the delimiter between date parts or time parts For example 98 12 31 11 30 45 98 12 31 11 30 45 98 12 31 11 30 45 and 98 12 31 11 30 45 are equivalent As a string in either YYYY MM DD or YY MM DD format A relaxed syntax is allowed here too For example 98 12 31 98 12 31 98 12 31 and 98 12 31 are equivalent As a string with no delimiters in either YYYYMMDDHHMMSS or YYMMDDHHMMSS format provided that the string makes sense as a date For example 19970523091528 and 970523091528 are interpreted as 1997 05 23 09 15 28 but 971122459015 is illegal it has a nonsensical minute part and becomes 0000 00 00 00 00 00 As a string with no delimiters in either YYYYMMDD or YYMMDD format provided that the string makes sense as a date For example 19970523 and 970523 are interpreted as 1997 05 23 but 971332 is illegal it has nonsensical month and day parts and becomes 0000 00 00 As a number in either YYYYMMDDHHMMSS or YYMMDDHHMMSS format provided that the number makes sense as a date For example 19830905132800 and 830905132800 are interpreted as 1983 09 05 13 28 00 As a number in either YYYYMMDD or YYMMDD format provided that the number makes sense as a date For example 19830905 and 830905 are interpreted as 1983 09 05 As the result of a function that returns a value that is acceptable in a DATETIME DATE or TIMESTAMP context such as NOW or CURRENT DATE Illegal DATETIME DATE or TIMESTAMP values are converted to the zero value of the appropriate type 0000 00 00 00 00 00 0000 00 00 or 00000000000000 For values specified as strings that include date part delimiters it is not necessary to specify two digits for month or day values that are less than 10 1979 6 9 is the same as 1979 06 09 Similarly for values specified as strings that include time part delimiters it is not necessary to specify two digits for hour month or second values that are less than 10 1979 10 30 1 2 3 is the same as 1979 10 30 01 02 03 Values specified as numbers should be 6 8 12 or 14 digits long If the number is 8 or 14 digits long it is assumed to be in YYYYMMDD or YYYYMMDDHHMMSS format and that the year is given by the first 4 digits If the number is 6 or 12 digits long it is assumed to be in YYMMDD or YYMMDDHHMMSS format and that the year is given by the first 2 digits Numbers that are not one of these lengths are interpreted as though padded with leading zeros to the closest length Values specified as non delimited strings are interpreted using their length as given If the string is 8 or 14 characters long the year is assumed to be given by the first 4 characters Otherwise the year is assumed to be given by the first 2 characters The string is interpreted from left to right to find year month day hour minute and second values for as many parts as are present in the string This means you should not use strings that have fewer than 6 characters For example if you specify 9903 thinking that will represent March 1999 you will find that MySQL inserts a zero date into your table This is because the year and month values are 99 and 03 but the day part is missing zero so the value is not a legal date TIMESTAMP columns store legal values using the full precision with which the value was specified regardless of the display size This has several implications Always specify year month and day even if your column types are TIMESTAMP 4 or TIMESTAMP 2 Otherwise the value will not be a legal date and 0 will be stored If you use ALTER TABLE to widen a narrow TIMESTAMP column information will be displayed that previously was hidden Similarly narrowing a TIMESTAMP column does not cause information to be lost except in the sense that less information is shown when the values are displayed Although TIMESTAMP values are stored to full precision the only function that operates directly on the underlying stored value is UNIX TIMESTAMP Other functions operate on the formatted retrieved value This means you cannot use functions such as HOUR or SECOND unless the relevant part of the TIMESTAMP value is included in the formatted value For example the HH part of a TIMESTAMP column is not displayed unless the display size is at least 10 so trying to use HOUR on shorter TIMESTAMP values produces a meaningless result You can to some extent assign values of one date type to an object of a different date type However there may be some alteration of the value or loss of information If you assign a DATE value to a DATETIME or TIMESTAMP object the time part of the resulting value is set to 00 00 00 because the DATE value contains no time information If you assign a DATETIME or TIMESTAMP value to a DATE object the time part of the resulting value is deleted because the DATE type stores no time information Remember that although DATETIME DATE and TIMESTAMP values all can be specified using the same set of formats the types do not all have the same range of values For example TIMESTAMP values cannot be earlier than 1970 or later than 2037 This means that a date such as 1968 01 01 while legal as a DATETIME or DATE value is not a valid TIMESTAMP value and will be converted to 0 if assigned to such an object Be aware of certain pitfalls when specifying date values The relaxed format allowed for values specified as strings can be deceiving For example a value such as 10 11 12 might look like a time value because of the delimiter but if used in a date context will be interpreted as the year 2010 11 12 The value 10 45 15 will be converted to 0000 00 00 because 45 is not a legal month Year values specified as two digits are ambiguous since the century is unknown MySQL interprets 2 digit year values using the following rules Year values in the range 00 69 are converted to 2000 2069 Year values in the range 70 99 are converted to 1970 1999 511 7 2 6 3 The TIME type MySQL retrieves and displays TIME values in HH MM SS format or HHH MM SS format for large hours values TIME values may range from 838 59 59 to 838 59 59 The reason the hours part may be so large is that the TIME type may be used not only to represent a time of day which must be less than 24 hours but also elapsed time or a time interval between two events which may be much greater than 24 hours or even negative You can specify TIME values in a variety of formats As a string in HH MM SS format A relaxed syntax is allowed any non numeric character may be used as the delimiter between time parts For example 10 11 12 and 10 11 12 are equivalent As a string with no delimiters in HHMMSS format provided that it makes sense as a time For example 101112 is understood as 10 11 12 but 109712 is illegal it has a nonsensical minute part and becomes 00 00 00 As a number in HHMMSS format provided that it makes sense as a time For example 101112 is understood as 10 11 12 As the result of a function that returns a value that is acceptable in a TIME context such as CURRENT TIME For TIME values specified as strings that include a time part delimiter it is not necessary to specify two digits for hours minutes or seconds values that are less than 10 8 3 2 is the same as 08 03 02 Be careful about assigning short TIME values to a TIME column MySQL interprets values using the assumption that the rightmost digits represent seconds MySQL interprets TIME values as elapsed time rather than as time of day For example you might think of 11 12 1112 and 1112 as meaning 11 12 00 12 minutes after 11 o clock but MySQL interprets them as 00 11 12 11 minutes 12 seconds Similarly 12 and 12 are interpreted as 00 00 12 Values that lie outside the TIME range but are otherwise legal are clipped to the appropriate endpoint of the range For example 850 00 00 and 850 00 00 are converted to 838 59 59 and 838 59 59 Illegal TIME values are converted to 00 00 00 Note that since 00 00 00 is itself a legal TIME value there is no way to tell from a value of 00 00 00 stored in a table whether the original value was specified as 00 00 00 or whether it was illegal 512 7 2 6 4 The YEAR type The YEAR type is a 1 byte type used for representing years MySQL retrieves and displays YEAR values in YYYY format The range is 1901 to 2155 You can specify YEAR values in a variety of formats As a four digit string in the range 1901 to 2155 As a four digit number in the range 1901 to 2155 As a two digit string in the range 00 to 99 Values in the ranges 00 to 69 and 70 to 99 are converted to YEAR values in the ranges 2000 to 2069 and 1970 to 1999 As a two digit number in the range 1 to 99 Values in the ranges 1 to 69 and 70 to 99 are converted to YEAR values in the ranges 2001 to 2069 and 1970 to 1999 Note that the range for two digit numbers is slightly different than the range for two digit strings since you cannot specify zero directly as a number and have it be interpreted as 2000 You must specify it as a string 0 or 00 or it will be interpreted as 0000 As the result of a function that returns a value that is acceptable in a YEAR context such as NOW Illegal YEAR values are converted to 0000 513 7 2 7 String types The string types are CHAR VARCHAR BLOB TEXT ENUM and SET 514 7 2 7 1 The CHAR and VARCHAR types The CHAR and VARCHAR types are similar but differ in the way they are stored and retrieved The length of a CHAR column is fixed to the length that you declare when you create the table The length can be any value between 1 and 255 When CHAR values are stored they are right padded with spaces to the specified length When CHAR values are retrieved trailing spaces are removed Values in VARCHAR columns are variable length strings You can declare a VARCHAR column to be any length between 1 and 255 just as for CHAR columns However in contrast to CHAR VARCHAR values are stored using only as many characters as are needed plus one byte to record the length Values are not padded instead trailing spaces are removed when values are stored This space removal differs from the ANSI SQL specification If you assign a value to a CHAR or VARCHAR column that exceeds the column s maximum length the value is truncated to fit The table below illustrates the differences between the two types of columns by showing the result of storing various string values into CHAR 4 and VARCHAR 4 columns Value CHAR 4 Storage required VARCHAR 4 Storage required 4 bytes 1 byte ab ab 4 bytes ab 3 bytes abcd abcd 4 bytes abcd 5 bytes abcdefgh abcd 4 bytes abcd 5 bytes The values retrieved from the CHAR 4 and VARCHAR 4 columns will be the same in each case because trailing spaces are removed from CHAR columns upon retrieval Values in CHAR and VARCHAR columns are sorted and compared in case insensitive fashion unless the BINARY attribute was specified when the table was created The BINARY attribute means that column values are sorted and compared in case sensitive fashion according to the ASCII order of the machine where the MySQL server is running The BINARY attribute is sticky This means that if a column marked BINARY is used in an expression the whole expression is compared as a BINARY value MySQL may silently change the type of a CHAR or VARCHAR column at table creation time See section 515 7 6 1 Silent column specification changes 516 7 2 7 2 The BLOB and TEXT types A BLOB is a binary large object that can hold a variable amount of data The four BLOB types TINYBLOB BLOB MEDIUMBLOB and LONGBLOB differ only in the maximum length of the values they can hold See section 517 7 2 1 Column type storage requirements The four TEXT types TINYTEXT TEXT MEDIUMTEXT and LONGTEXT correspond to the four BLOB types and have the same maximum lengths and storage requirements The only difference between BLOB and TEXT types is that sorting and comparison is performed in case sensitive fashion for BLOB values and case insensitive fashion for TEXT values In other words a TEXT is a case insensitive BLOB If you assign a value to a BLOB or TEXT column that exceeds the column type s maximum length the value is truncated to fit In most respects you can regard a TEXT column as a VARCHAR column that can be as big as you like Similarly you can regard a BLOB column as a VARCHAR BINARY column The differences are BLOB and TEXT columns cannot be indexed unlike all other MySQL column types This will be fixed in MySQL 3 23 1 There is no trailing space removal for BLOB and TEXT columns when values are stored as there is for VARCHAR columns BLOB and TEXT columns cannot have DEFAULT values MyODBC defines BLOB values as LONGVARBINARY and TEXT values as LONGVARCHAR Because BLOB and TEXT values may be extremely long you may run up against some constraints when using them If you want to use GROUP BY or ORDER BY on a BLOB or TEXT column you must convert the column value into a fixed length object The standard way to do this is with the SUBSTRING function For example mysql select comment from tbl name ORDER BY substring comment 20 If you don t do this only the first max sort length bytes of the column are used when sorting The default value of max sort length is 1024 this value can be changed using the O option when starting the mysqld server You can group on an expression involving BLOB or TEXT values by specifying the column position or by using an alias mysql select id substring blob col 1 100 from tbl name GROUP BY 2 mysql select id substring blob col 1 100 as b from tbl name GROUP BY b The maximum size of a BLOB or TEXT object is determined by its type but the largest value you can actually transmit between the client and server is determined by the amount of available memory and the size of the communications buffers You can change the message buffer size but you must do so on both the server and client ends See section 518 10 1 Tuning server parameters Note that each BLOB or TEXT value is represented internally by a separately allocated object This is in contrast to all other column types for which storage is allocated once per column when the table is opened 519 7 2 7 3 The ENUM type An ENUM is a string object whose value normally is chosen from a list of allowed values that are enumerated explicitly in the column specification at table creation time The value may also be the empty string or NULL under certain circumstances If you insert an invalid value into an ENUM that is a string not present in the list of allowed values the empty string is inserted instead as a special error value If an ENUM is declared NULL NULL is also a legal value for the column and the default value is NULL If an ENUM is declared NOT NULL the default value is the first element of the list of allowed values Each enumeration value has an index Values from the list of allowable elements in the column specification are numbered beginning with 1 The index value of the empty string error value is 0 This means that you can use the following SELECT statement to find rows into which invalid ENUM values were assigned mysql SELECT FROM tbl name WHERE enum col 0 The index of the NULL value is NULL For example a column specified as ENUM one two three can have any of the values shown below The index of each value is also shown Value Index NULL NULL 0 one 1 two 2 three 3 An enumeration can have a maximum of 65535 elements Lettercase is irrelevant when you assign values to an ENUM column However values retrieved from the column later have lettercase matching the values that were used to specify the allowable values at table creation time If you retrieve an ENUM in a numeric context the column value s index is returned If you store a number into an ENUM the number is treated as an index and the the value stored is the enumeration member with that index ENUM values are sorted according to the order in which the enumeration members were listed in the column specification In other words ENUM values are sorted according to their index numbers For example a sorts before b for ENUM a b but b sorts before a for ENUM b a The empty string sorts before non empty strings and NULL values sort before all other enumeration values If you want to get all possible values for an ENUM column you should use SHOW COLUMNS FROM table name LIKE enum column name and parse the ENUM definition in the second column 520 7 2 7 4 The SET type A SET is a string object that can have zero or more values each of which must be chosen from a list of allowed values specified when the table is created SET column values that consist of multiple set members are specified with members separated by commas A consequence of this is that SET member values cannot themselves contain commas For example a column specified as SET one two NOT NULL can have any of these values one two one two A SET can have a maximum of 64 different members MySQL stores SET values numerically with the low order bit of the stored value corresponding to the first set member If you retrieve a SET value in a numeric context the value retrieved has bits set corresponding to the set members that make up the column value If a number is stored into a SET column the bits that are set in the binary representation of the number determine the set members in the column value Suppose a column is specified as SET a b c d Then the members have the following bit values SET member Decimal value Binary value a 1 0001 b 2 0010 c 4 0100 d 8 1000 If you assign a value of 9 to this column that is 1001 in binary so the first and fourth SET value members a and d are selected and the resulting value is a d For a value containing more than one SET element it does not matter what order the elements are listed in when you insert the value It also doesn t not matter how many times a given element is listed in the value When the value is retrieved later each element in the value will appear once with elements listed according to the order in which they were specified at table creation time For example if a column is specified as SET a b c d then a d d a and d a a d d will all appear as a d when retrieved SET values are sorted numerically NULL values sort before non NULL SET values Normally you perform a SELECT on a SET column using the LIKE operator or the FIND IN SET function mysql SELECT FROM tbl name WHERE set col LIKE value mysql SELECT FROM tbl name WHERE FIND IN SET value set col 0 But the following will also work mysql SELECT FROM tbl name WHERE set col val1 val2 mysql SELECT FROM tbl name WHERE set col 1 The first of these statements looks for an exact match The second looks for values containing the first set member If you want to get all possible values for an SET column you should use SHOW COLUMNS FROM table name LIKE set column name and parse the SET definition in the second column 521 7 2 8 Choosing the right type for a column For the most efficient use of storage try to use the most precise type in all cases For example if an integer column will be used for values in the range between 1 and 99999 MEDIUMINT UNSIGNED is the best type Accurate representation of monetary values is a common problem In MySQL you should use the DECIMAL type This is stored as a string so no loss of accuracy should occur If accuracy is not too important the DOUBLE type may also be good enough For high precision you can always convert to a fixed point type stored in a BIGINT This allows you to do all calculations with integers and convert results back to floating point values only when necessary See section 522 10 16 What are the different row formats Or when should VARCHAR CHAR be used 523 7 2 9 Column indexes All MySQL column types can be indexed except BLOB and TEXT types Use of indexes on the relevant columns is the best way to improve the performance of SELECT operations A table may have up to 16 indexes The maximum index length is 256 bytes although this may be changed when compiling MySQL You cannot index a column that may contain NULL values so indexed columns must be declared NOT NULL For CHAR and VARCHAR columns you can index a prefix of a column This is much faster and requires less disk space than indexing the whole column The syntax to use in the CREATE TABLE statement to index a column prefix looks like this KEY index name col name length The example below creates an index for the first 10 characters of the name column mysql CREATE TABLE test name CHAR 200 NOT NULL KEY index name name 10 524 7 2 10 Multiple column indexes MySQL can create indexes on multiple columns An index may consist of up to 15 columns On CHAR and VARCHAR columns you can also use a prefix of the column as a part of an index A multiple column index can be considered a sorted array containing values that are created by concatenating the values of the indexed columns MySQL uses multiple column indexes in such a way that queries are fast when you specify a known quantity for the first column of the index in a WHERE clause even if you don t specify values for the other columns Suppose a table is created using the following specification mysql CREATE TABLE test id INT NOT NULL last name CHAR 30 NOT NULL first name CHAR 30 NOT NULL PRIMARY KEY id INDEX name last name first name Then the index name is an index over last name and first name The index will be used for queries that specify values in a known range for last name or for both last name and first name Therefore the name index will be used in the following queries mysql SELECT FROM test WHERE last name Widenius mysql SELECT FROM test WHERE last name Widenius AND first name Michael mysql SELECT FROM test WHERE last name Widenius AND first name Michael OR first name Monty mysql SELECT FROM test WHERE last name Widenius AND first name M AND first name N However the name index will NOT be used in the following queries mysql SELECT FROM test WHERE first name Michael mysql SELECT FROM test WHERE last name Widenius OR first name Michael For more information on the manner in which MySQL uses indexes to improve query performance see section 525 10 4 How MySQL uses indexes 526 7 2 11 Using column types from other database engines To make it easier to use code written for SQL implementations from other vendors MySQL maps column types as shown in the table below These mappings make it easier to move table definitions from other database engines to MySQL Other vendor type MySQL type BINARY NUM CHAR NUM BINARY CHAR VARYING NUM VARCHAR NUM FLOAT4 FLOAT FLOAT8 DOUBLE INT1 TINYINT INT2 SMALLINT INT3 MEDIUMINT INT4 INT INT8 BIGINT LONG VARBINARY MEDIUMBLOB LONG VARCHAR MEDIUMTEXT MIDDLEINT MEDIUMINT VARBINARY NUM VARCHAR NUM BINARY Column type mapping occurs at table creation time If you create a table with types used by other vendors and then issue a DESCRIBE tbl name statement MySQL reports the table structure using the equivalent MySQL types 527 7 3 Functions for use in SELECT and WHERE clauses A select expression or where definition in a SQL statement can consist of any expression using the functions described below An expression that contains NULL always produces a NULL value unless otherwise indicated in the documentation for the operators and functions involved in the expression Note There must be no whitespace between a function name and the parenthesis following it This helps the MySQL parser distinguish between function calls and references to tables or columns that happen to have the same name as a function Spaces around arguments are permitted though For the sake of brevity examples display the output from the mysql program in abbreviated form So this mysql select MOD 29 9 1 rows in set 0 00 sec mod 29 9 2 Is displayed like this mysql select MOD 29 9 2 528 7 3 1 Grouping functions Parentheses Use these to force the order of evaluation in an expression mysql select 1 2 3 7 mysql select 1 2 3 9 529 7 3 2 Normal arithmetic operations The usual arithmetic operators are available Note that in the case of and the result is calculated with BIGINT 64 bit precision if both arguments are integers Addition mysql select 3 5 8 Subtraction mysql select 3 5 2 Multiplication mysql select 3 5 15 mysql select 18014398509481984 18014398509481984 0 324518553658426726783156020576256 0 mysql select 18014398509481984 18014398509481984 0 The result of the last expression is incorrect because the result of the integer multiplication exceeds the 64 bit range of BIGINT calculations Division mysql select 3 5 0 60 Division by zero produces a NULL result mysql select 102 1 1 NULL A division will be calculated with BIGINT arithmetic only if performed in a context where its result is converted to an integer 530 7 3 3 Bit functions MySQL uses BIGINT 64 bit arithmetic for bit operations so these operators have a maximum range of 64 bits Bitwise OR mysql select 29 15 31 Bitwise AND mysql select 29 15 13 Shifts a longlong BIGINT number to the left mysql select 1 2 4 Shifts a longlong BIGINT number to the right mysql select 4 2 1 BIT COUNT N Returns the number of bits that are set in the argument N mysql select BIT COUNT 29 4 531 7 3 4 Logical operations All logical functions return 1 TRUE or 0 FALSE NOT Logical NOT Returns 1 if the argument is 0 otherwise returns 0 Exception NOT NULL returns NULL mysql select NOT 1 0 mysql select NOT NULL NULL mysql select 1 1 0 mysql select 1 1 1 The last example returns 1 because the expression evaluates the same way as 1 1 OR Logical OR Returns 1 if either argument is not 0 and not NULL mysql select 1 0 1 mysql select 0 0 0 mysql select 1 NULL 1 AND Logical AND Returns 0 if either argument is 0 or NULL otherwise returns 1 mysql select 1 NULL 0 mysql select 1 0 0 532 7 3 5 Comparison operators Comparison operations result in a value of 1 TRUE 0 FALSE or NULL These functions work for both numbers and strings Strings are automatically converted to numbers and numbers to strings as needed as in Perl MySQL performs comparisons using the following rules If one or both arguments are NULL the result of the comparison is NULL If both arguments in a comparison operation are strings they are compared as strings If both arguments are integers they are compared as integers If one of the arguments is a TIMESTAMP or DATETIME column and the other argument is a constant the constant is converted to a timestamp before the comparison is performed This is done to be more ODBC friendly In all other cases the arguments are compared as floating point real numbers By default string comparisons are done in case independent fashion using the current character set ISO 8859 1 Latin1 by default which also works excellently for English The examples below illustrate conversion of strings to numbers for comparison operations mysql SELECT 1 6x 0 mysql SELECT 7 6x 1 mysql SELECT 0 x6 0 mysql SELECT 0 x6 1 Equal mysql select 1 0 0 mysql select 0 0 1 mysql select 0 0 0 1 mysql select 0 01 0 0 mysql select 01 0 01 1 Not equal mysql select 01 0 01 1 mysql select 01 0 01 0 mysql select zapp zappp 1 Less than or equal mysql select 0 1 2 1 Less than mysql select 2 2 1 Greater than or equal mysql select 2 2 1 Greater than mysql select 2 2 0 Null safe equal mysql select 1 1 NULL NULL 1 NULL 1 1 0 ISNULL expr If expr is NULL ISNULL returns 1 otherwise it returns 0 mysql select ISNULL 1 1 0 mysql select ISNULL 1 0 1 Note that a comparison of NULL values using will always be false expr BETWEEN min AND max If expr is greater than or equal to min and expr is less than or equal to max BETWEEN returns 1 otherwise it returns 0 This is equivalent to the expression min expr AND expr max if all the arguments are of the same type The first argument expr determines how the comparison is performed If expr is a string expression a case insensitive string comparison is done If expr is a binary string a case sensitive string comparison is done If expr is an integer expression an integer comparison is done Otherwise a floating point real comparison is done mysql select 1 BETWEEN 2 AND 3 0 mysql select b BETWEEN a AND c 1 mysql select 2 BETWEEN 2 AND 3 1 mysql select 2 BETWEEN 2 AND x 3 0 expr IN value Returns 1 if expr is any of the values in the IN list else returns 0 If all values are constants then all values are evaluated according to the type of expr and sorted The search for the item is then done using a binary search This means IN is very quick if the IN value list consists entirely of constants If expr is a case sensitive string expression the string comparison is performed in case sensitive fashion mysql select 2 IN 0 3 5 wefwf 0 mysql select wefwf IN 0 3 5 wefwf 1 expr NOT IN value Same as NOT expr IN value INTERVAL N N1 N2 N3 Returns 0 if N N1 1 if N N2 and so on All arguments are treated as numbers It is required that N1 N2 N3 Nn for this function to work correctly This is because a binary search is used very fast mysql select INTERVAL 23 1 15 17 30 44 200 3 mysql select INTERVAL 10 1 10 100 1000 2 mysql select INTERVAL 22 23 30 44 200 0 533 7 3 6 String comparison functions Normally if any expression in a string comparison is case sensitive the comparison is performed in case sensitive fashion expr1 LIKE expr2 ESCAPE escape char SQL simple regular expression comparison Returns 1 TRUE or 0 FALSE With LIKE you can use the following two wildcard characters Matches any number of characters even zero characters Matches exactly one character mysql select David LIKE David 1 mysql select David LIKE D v 1 To test for literal instances of a wildcard character precede the character with the escape character If you don t specify the ESCAPE character is assumed Matches one character Matches one character mysql select David LIKE David 0 mysql select David LIKE David 1 To specify a different escape character use the ESCAPE clause mysql select David LIKE David ESCAPE 1 LIKE is allowed on numeric expressions This is a MySQL extension to the ANSI SQL LIKE mysql select 10 LIKE 1 1 Note Because MySQL uses the C escape syntax in strings e g n you must double any that you use in your LIKE strings For example to search for n specify it as n To search for specify it as the backslashes are stripped once by the parser and another time when the pattern match is done leaving a single backslash to be matched expr1 NOT LIKE expr2 ESCAPE escape char Same as NOT expr1 LIKE expr2 ESCAPE escape char expr REGEXP pat expr RLIKE pat Performs a pattern match of a string expression expr against a pattern pat The pattern can be an extended regular expression See section 534 H Description of MySQL regular expression syntax Returns 1 if expr matches pat otherwise returns 0 RLIKE is a synonym for REGEXP provided for mSQL compatibility Note Because MySQL uses the C escape syntax in strings e g n you must double any that you use in your REGEXP strings mysql select Monty REGEXP m y 0 mysql select Monty REGEXP 1 mysql select new n line REGEXP new line 1 REGEXP and RLIKE use the current character set ISO 8859 1 Latin1 by default when deciding the type of a character expr NOT REGEXP expr Same as NOT expr REGEXP expr STRCMP expr1 expr2 STRCMP returns 0 if the strings are the same 1 if the first argument is smaller than the second according to the current sort order and 1 otherwise mysql select STRCMP text text2 1 mysql select STRCMP text2 text 1 mysql select STRCMP text text 0 535 7 3 7 Cast operators BINARY The BINARY operator casts the string following it to a binary string This is an easy way to force a column comparison to be case independent even if the column isn t defined as BINARY or BLOB mysql select a A 1 mysql select BINARY a A 0 BINARY was introduced in MySQL 3 23 0 536 7 3 8 Control flow functions IFNULL expr1 expr2 If expr1 is not NULL IFNULL returns expr1 else it returns expr2 IFNULL returns a numeric or string value depending on the context in which it is used mysql select IFNULL 1 0 1 mysql select IFNULL 0 10 0 mysql select IFNULL 1 0 10 10 mysql select IFNULL 1 0 yes yes IF expr1 expr2 expr3 If expr1 is TRUE expr1 0 and expr1 NULL then IF returns expr2 else it returns expr3 IFNULL returns a numeric or string value depending on the context in which it is used mysql select IF 1 2 2 3 3 mysql select IF 1 2 yes no yes mysql select IF strcmp test test1 yes no no expr1 is evaluated as an integer value which means that if you are testing floating point or string values you should do so using a comparison operation mysql select IF 0 1 1 0 0 mysql select IF 0 1 0 1 0 1 In the first case above IF 0 1 returns 0 because 0 1 is converted to an integer value resulting in a test of IF 0 This may not be what you expect In the second case the comparison tests the original floating point value to see whether it is non zero The result of the comparison is used as an integer 537 7 3 9 Mathematical functions All mathematical functions return NULL in case of an error Unary minus Changes the sign of the argument mysql select 2 2 Note that if this operator is used with a BIGINT the return value is a BIGINT This means that you should avoid using on integers that may have the value of 2 63 ABS X Returns the absolute value of X mysql select ABS 2 2 mysql select ABS 32 32 This function is safe to use with BIGINT values SIGN X Returns the sign of the argument as 1 0 or 1 depending on whether X is negative zero or positive mysql select SIGN 32 1 mysql select SIGN 0 0 mysql select SIGN 234 1 MOD N M Modulo like the operator in C Returns the remainder of N divided by M mysql select MOD 234 10 4 mysql select 253 7 1 mysql select MOD 29 9 2 This function is safe to use with BIGINT values FLOOR X Returns the largest integer value not greater than X mysql select FLOOR 1 23 1 mysql select FLOOR 1 23 2 Note that the return value is converted to a BIGINT CEILING X Returns the smallest integer value not less than X mysql select CEILING 1 23 2 mysql select CEILING 1 23 1 Note that the return value is converted to a BIGINT ROUND X Returns the argument X rounded to an integer mysql select ROUND 1 23 1 mysql select ROUND 1 58 2 mysql select ROUND 1 58 2 Note that the return value is converted to a BIGINT ROUND X D Returns the argument X rounded to a number with D decimals If D is 0 the result will have no decimal point or fractional part mysql select ROUND 1 298 1 1 3 mysql select ROUND 1 298 0 1 Note that the return value is converted to a BIGINT EXP X Returns the value of e the base of natural logarithms raised to the power of X mysql select EXP 2 7 389056 mysql select EXP 2 0 135335 LOG X Returns the natural logarithm of X mysql select LOG 2 0 693147 mysql select LOG 2 NULL If you want the log of a number X to some arbitary base B use the formula LOG X LOG B LOG10 X Returns the base 10 logarithm of X mysql select LOG10 2 0 301030 mysql select LOG10 100 2 000000 mysql select LOG10 100 NULL POW X Y POWER X Y Returns the value of X raised to the power of Y mysql select POW 2 2 4 000000 mysql select POW 2 2 0 250000 SQRT X Returns the non negative square root of X mysql select SQRT 4 2 000000 mysql select SQRT 20 4 472136 PI Returns the value of PI mysql select PI 3 141593 COS X Returns the cosine of X where X is given in radians mysql select COS PI 1 000000 SIN X Returns the sine of X where X is given in radians mysql select SIN PI 0 000000 TAN X Returns the tangent of X where X is given in radians mysql select TAN PI 1 1 557408 ACOS X Returns the arc cosine of X that is the value whose cosine is X Returns NULL if X is not in the range 1 to 1 mysql select ACOS 1 0 000000 mysql select ACOS 1 0001 NULL mysql select ACOS 0 1 570796 ASIN X Returns the arc sine of X that is the value whose sine is X Returns NULL if X is not in the range 1 to 1 mysql select ASIN 0 2 0 201358 mysql select ASIN foo 0 000000 ATAN X Returns the arc tangent of X that is the value whose tangent is X mysql select ATAN 2 1 107149 mysql select ATAN 2 1 107149 ATAN2 X Y Returns the arc tangent of the two variables X and Y It is similar to calculating the arc tangent of Y X except that the signs of both arguments are used to determine the quadrant of the result mysql select ATAN 2 2 0 785398 mysql select ATAN PI 0 1 570796 COT X Returns the cotangent of X mysql select COT 12 1 57267341 mysql select COT 0 NULL RAND RAND N Returns a random floating point value in the range 0 to 1 0 If an integer argument N is specified it is used as the seed value mysql select RAND 0 5925 mysql select RAND 20 0 1811 mysql select RAND 20 0 1811 mysql select RAND 0 2079 mysql select RAND 0 7888 You can t use a column with RAND values in an ORDER BY clause because ORDER BY would evaluate the column multiple times LEAST X Y With two or more arguments returns the smallest minimum valued argument The arguments are compared using the following rules If the return value is used in an INTEGER context or all arguments are integer valued they are compared as integers If the return value is used in a REAL context or all arguments are real valued they are compared as reals If any argument is a case sensitive string the arguments are compared as case sensitive strings In other cases the arguments are compared as case insensitive strings mysql select LEAST 2 0 0 mysql select LEAST 34 0 3 0 5 0 767 0 3 0 mysql select LEAST B A C A In MySQL versions prior to 3 22 5 you can use MIN instead of LEAST GREATEST X Y Returns the largest maximum valued argument The arguments are compared using the same rules as for LEAST mysql select GREATEST 2 0 2 mysql select GREATEST 34 0 3 0 5 0 767 0 767 0 mysql select GREATEST B A C C In MySQL versions prior to 3 22 5 you can use MAX instead of GREATEST DEGREES X Returns the argument X converted from radians to degrees mysql select DEGREES PI 180 000000 RADIANS X Returns the argument X converted from degrees to radians mysql select RADIANS 90 1 570796 TRUNCATE X D Returns the number X truncated to D decimals mysql select TRUNCATE 1 223 1 1 2 mysql select TRUNCATE 1 999 1 1 9 mysql select TRUNCATE 1 999 0 1 538 7 3 10 String functions String valued functions return NULL if the length of the result would be greater than the max allowed packet server parameter See section 539 10 1 Tuning server parameters For functions that operate on string positions the first position is numbered 1 ASCII str Returns the ASCII code value of the leftmost character of the string str Returns 0 if str is the empty string Returns NULL if str is NULL mysql select ASCII 2 50 mysql select ASCII 2 50 mysql select ASCII dx 100 CONV N from base to base Converts numbers between different number bases Returns a string representation of the number N converted from base from base to base to base Returns NULL if any argument is NULL The argument N is interpreted as an integer but may be specified as an integer or a string The minimum base is 2 and the maximum base is 36 If to base is a negative number N is regarded as a signed number Otherwise N is treated as unsigned CONV works with 64 bit precision mysql select CONV a 16 2 1010 mysql select CONV 6E 18 8 172 mysql select CONV 17 10 18 H mysql select CONV 10 10 10 0xa 10 10 40 BIN N Returns a string representation of the binary value of N where N is a longlong BIGINT number This is equivalent to CONV N 10 2 Returns NULL if N is NULL mysql select BIN 12 1100 OCT N Returns a string representation of the octal value of N where N is a longlong number This is equivalent to CONV N 10 8 Returns NULL if N is NULL mysql select OCT 12 14 HEX N Returns a string representation of the hexadecimal value of N where N is a longlong BIGINT number This is equivalent to CONV N 10 16 Returns NULL if N is NULL mysql select HEX 255 FF CHAR N CHAR interprets the arguments as integers and returns a string consisting of the characters given by the ASCII code values of those integers NULL values are skipped mysql select CHAR 77 121 83 81 76 MySQL mysql select CHAR 77 77 3 77 3 MMM CONCAT X Y Returns the string that results from concatenating the arguments Returns NULL if any argument is NULL May have more than 2 arguments mysql select CONCAT My S QL MySQL mysql select CONCAT My NULL QL NULL LENGTH str OCTET LENGTH str CHAR LENGTH str CHARACTER LENGTH str Returns the length of the string str mysql select LENGTH text 4 mysql select OCTET LENGTH text 4 LOCATE substr str POSITION substr IN str Returns the position of the first occurrence of substring substr in string str Returns 0 if substr is not in str mysql select LOCATE bar foobarbar 4 mysql select LOCATE xbar foobar 0 LOCATE substr str pos Returns the position of the first occurrence of substring substr in string str starting at position pos Returns 0 if substr is not in str mysql select LOCATE bar foobarbar 5 7 INSTR str substr Returns the position of the first occurrence of substring substr in string str This is the same as the two argument form of LOCATE except that the arguments are swapped mysql select INSTR foobarbar bar 4 mysql select INSTR xbar foobar 0 LPAD str len padstr Returns the string str left padded with the string padstr until str is len characters long mysql select LPAD hi 4 hi RPAD str len padstr Returns the string str right padded with the string padstr until str is len characters long mysql select RPAD hi 5 hi LEFT str len Returns the leftmost len characters from the string str mysql select LEFT foobarbar 5 fooba RIGHT str len SUBSTRING str FROM len Returns the rightmost len characters from the string str mysql select RIGHT foobarbar 4 rbar mysql select SUBSTRING foobarbar FROM 4 rbar SUBSTRING str pos len SUBSTRING str FROM pos FOR len MID str pos len Returns a substring len characters long from string str starting at position pos The variant form that uses FROM is ANSI SQL92 syntax mysql select SUBSTRING Quadratically 5 6 ratica SUBSTRING str pos Returns a substring from string str starting at position pos mysql select SUBSTRING Quadratically 5 ratically SUBSTRING INDEX str delim count Returns the substring from string str after count occurrences of the delimiter delim If count is positive everything to the left of the final delimiter counting from the left is returned If count is negative everything to the right of the final delimiter counting from the right is returned mysql select SUBSTRING INDEX www mysql com 2 www mysql mysql select SUBSTRING INDEX www mysql com 2 mysql com LTRIM str Returns the string str with leading space characters removed mysql select LTRIM barbar barbar RTRIM str Returns the string str with trailing space characters removed mysql select RTRIM barbar barbar TRIM BOTH LEADING TRAILING remstr FROM str Returns the string str with all remstr prefixes and or suffixes removed If none of the specifiers BOTH LEADING or TRAILING are given BOTH is assumed If remstr is not specified spaces are removed mysql select TRIM bar bar mysql select TRIM LEADING x FROM xxxbarxxx barxxx mysql select TRIM BOTH x FROM xxxbarxxx bar mysql select TRIM TRAILING xyz FROM barxxyz barx SOUNDEX str Returns a soundex string from str Two strings that sound about the same should have identical soundex strings A standard soundex string is 4 characters long but the SOUNDEX function returns an arbitrarily long string You can use SUBSTRING on the result to get a standard soundex string All non alphanumeric characters are ignored in the given string All international alpha characters outside the A Z range are treated as vowels mysql select SOUNDEX Hello H400 mysql select SOUNDEX Quadratically Q36324 SPACE N Returns a string consisting of N space characters mysql select SPACE 6 REPLACE str from str to str Returns the string str with all all occurrences of the string from str replaced by the string to str mysql select REPLACE www mysql com w Ww WwWwww mysql com REPEAT str count Returns a string consisting of the string str repeated count times If count 0 returns an empty string Returns NULL if str or count are NULL mysql select REPEAT MySQL 3 MySQLMySQLMySQL REVERSE str Returns the string str with the order of the characters reversed mysql select REVERSE abc cba INSERT str pos len newstr Returns the string str with the substring beginning at position pos and len characters long replaced by the string newstr mysql select INSERT Quadratic 3 4 What QuWhattic ELT N str1 str2 str3 Returns str1 if N 1 str2 if N 2 and so on Returns NULL if N is less than 1 or greater than the number of arguments ELT is the complement of FIELD mysql select ELT 1 ej Heja hej foo ej mysql select ELT 4 ej Heja hej foo foo FIELD str str1 str2 str3 Returns the index of str in the str1 str2 str3 list Returns 0 if str is not found FIELD is the complement of ELT mysql select FIELD ej Hej ej Heja hej foo 2 mysql select FIELD fo Hej ej Heja hej foo 0 FIND IN SET str strlist Returns a value 1 to N if the string str is in the list strlist consisting of N substrings A string list is a string composed of substrings separated by characters If the first argument is a constant string and the second is a column of type SET the FIND IN SET function is optimized to use bit arithmetic Returns 0 if str is not in strlist or if strlist is the empty string Returns NULL if either argument is NULL This function will not work properly if the first argument contains a mysql SELECT FIND IN SET b a b c d 2 MAKE SET bits str1 str2 Returns a set a string containing substrings separated by characters consisting of the strings that have the corresponding bit in bits set str1 corresponds to bit 0 str2 to bit 1 etc NULL strings in str1 str2 are not appended to the result mysql SELECT MAKE SET 1 a b c a mysql SELECT MAKE SET 1 4 hello nice world hello world mysql SELECT MAKE SET 0 a b c LCASE str LOWER str Returns the string str with all characters changed to lowercase according to the current character set mapping the default is ISO 8859 1 Latin1 mysql select LCASE QUADRATICALLY quadratically UCASE str UPPER str Returns the string str with all characters changed to uppercase according to the current character set mapping the default is ISO 8859 1 Latin1 mysql select UCASE Hej HEJ LOAD FILE file name Reads the file and returns the file contents as a string The file must be on the server and you must specify the full pathname to the file The file must be readable by all and be smaller than max allowed packet If the file doesn t exist or can t be read due to one of the above reasons the function returns NULL mysql UPDATE table name SET blob column LOAD FILE tmp picture WHERE id 1 There is no string function to convert a number to a char There is no need for one because MySQL automatically converts numbers to strings as necessary and vice versa mysql SELECT 1 1 2 mysql SELECT CONCAT 2 test 2 test If a string function is given a binary string as an argument the resulting string is also a binary string A number converted to a string is treated as a binary string This only affects comparisons 540 7 3 11 Date and time functions See section 541 7 2 6 Date and time types for a description of the range of values each type has and the valid formats in which date and time values may be specified Here is an example that uses date functions The query below selects all records with a date col value from within the last 30 days mysql SELECT something FROM table WHERE TO DAYS NOW TO DAYS date col 30 DAYOFWEEK date Returns the weekday index for date 1 Sunday 2 Monday 7 Saturday These index values correspond to the ODBC standard mysql select DAYOFWEEK 1998 02 03 3 WEEKDAY date Returns the weekday index for date 0 Monday 1 Tuesday 6 Sunday mysql select WEEKDAY 1997 10 04 22 23 00 5 mysql select WEEKDAY 1997 11 05 2 DAYOFMONTH date Returns the day of the month for date in the range 1 to 31 mysql select DAYOFMONTH 1998 02 03 3 DAYOFYEAR date Returns the day of the year for date in the range 1 to 366 mysql select DAYOFYEAR 1998 02 03 34 MONTH date Returns the month for date in the range 1 to 12 mysql select MONTH 1998 02 03 2 DAYNAME date Returns the name of the weekday for date mysql select DAYNAME 1998 02 05 Thursday MONTHNAME date Returns the name of the month for date mysql select MONTHNAME 1998 02 05 February QUARTER date Returns the quarter of the year for date in the range 1 to 4 mysql select QUARTER 98 04 01 2 WEEK date WEEK date first With a single argument returns the week for date in the range 0 to 52 for locations where Sunday is the first day of the week The two argument form of WEEK allows you to specify whether the week starts on Sunday or Monday The week starts on Sunday if the second argument is 0 on Monday if the second argument is 1 mysql select WEEK 1998 02 20 7 mysql select WEEK 1998 02 20 0 7 mysql select WEEK 1998 02 20 1 8 YEAR date Returns the year for date in the range 1000 to 9999 mysql select YEAR 98 02 03 1998 HOUR time Returns the hour for time in the range 0 to 23 mysql select HOUR 10 05 03 10 MINUTE time Returns the minute for time in the range 0 to 59 mysql select MINUTE 98 02 03 10 05 03 5 SECOND time Returns the second for time in the range 0 to 59 mysql select SECOND 10 05 03 3 PERIOD ADD P N Adds N months to period P in the format YYMM or YYYYMM Returns a value in the format YYYYMM Note that the period argument P is not a date value mysql select PERIOD ADD 9801 2 199803 PERIOD DIFF P1 P2 Returns the number of months between periods P1 and P2 P1 and P2 should be in the format YYMM or YYYYMM Note that the period arguments P1 and P2 are not date values mysql select PERIOD DIFF 9802 199703 11 DATE ADD date INTERVAL expr type DATE SUB date INTERVAL expr type ADDDATE date INTERVAL expr type SUBDATE date INTERVAL expr type These functions perform date arithmetic They are new for MySQL 3 22 ADDDATE and SUBDATE are synonyms for DATE ADD and DATE SUB date is a DATETIME or DATE value specifying the starting date expr is an expression specifying the interval value to be added or substracted from the starting date expr is a string it may start with a for negative intervals type is a keyword indicating how the expression should be interpreted The following table shows how the type and expr arguments are related type value Meaning Expected expr format SECOND Seconds SECONDS MINUTE Minutes MINUTES HOUR Hours HOURS DAY Days DAYS MONTH Months MONTHS YEAR Years YEARS MINUTE SECOND Minutes and seconds MINUTES SECONDS HOUR MINUTE Hours and minutes HOURS MINUTES DAY HOUR Days and hours DAYS HOURS YEAR MONTH Years and months YEARS MONTHS HOUR SECOND Hours minutes HOURS MINUTES SECONDS DAY MINUTE Days hours minutes DAYS HOURS MINUTES DAY SECOND Days hours minutes seconds DAYS HOURS MINUTES SECONDS MySQL allows any non numeric delimiter in the expr format The ones shown in the table are the suggested delimiters If the date argument is a DATE value and your calculations involve only YEAR MONTH and DAY parts that is no time parts the result is a DATE value Otherwise the result is a DATETIME value mysql select DATE ADD 1997 12 31 23 59 59 INTERVAL 1 SECOND 1998 01 01 00 00 00 mysql select DATE ADD 1997 12 31 23 59 59 INTERVAL 1 DAY 1998 01 01 23 59 59 mysql select DATE ADD 1997 12 31 23 59 59 INTERVAL 1 1 MINUTE SECOND 1998 01 01 00 01 00 mysql select DATE SUB 1998 01 01 00 00 00 INTERVAL 1 1 1 1 DAY SECOND 1997 12 30 22 58 59 mysql select DATE ADD 1998 01 01 00 00 00 INTERVAL 1 10 DAY HOUR 1997 12 30 14 00 00 mysql select DATE SUB 1998 01 02 INTERVAL 31 DAY 1997 12 02 If you specify an interval value that is too short does not include all the interval parts that would be expected from the type keyword MySQL assumes you have left out the leftmost parts of the interval value For example if you specify a type of DAY SECOND the value of expr is expected to have days hours minutes and seconds parts If you specify a value like 1 10 MySQL assumes that the days and hours parts are missing and the value represents minutes and seconds In other words 1 10 DAY SECOND is interpreted in such a way that it is equivalent to 1 10 MINUTE SECOND This is analogous to the way that MySQL interprets TIME values as representing elapsed time rather than as time of day If you use incorrect dates the result is NULL If you add MONTH YEAR MONTH or YEAR and the resulting date has a day that is larger than the maximum day for the new month the day is adjusted to the maximum days in the new month mysql select DATE ADD 1998 01 30 Interval 1 month 1998 02 28 Note from the preceding example that the word INTERVAL and the type keyword are not case sensitive TO DAYS date Given a date date returns a daynumber the number of days since year 0 mysql select TO DAYS 950501 728779 mysql select TO DAYS 1997 10 07 729669 TO DAYS is not intended for use with values that precede the advent of the Gregorian calendar 1582 FROM DAYS N Given a daynumber N returns a DATE value mysql select FROM DAYS 729669 1997 10 07 FROM DAYS is not intended for use with values that precede the advent of the Gregorian calendar 1582 DATE FORMAT date format Formats the date value according to the format string The following specifiers may be used in the format string M Month name January December W Weekday name Sunday Saturday D Day of the month with english suffix 1st 2nd 3rd etc Y Year numeric 4 digits y Year numeric 2 digits a Abbreviated weekday name Sun Sat d Day of the month numeric 00 31 e Day of the month numeric 0 31 m Month numeric 01 12 c Month numeric 1 12 b Abbreviated month name Jan Dec j Day of year 001 366 H Hour 00 23 k Hour 0 23 h Hour 01 12 I Hour 01 12 l Hour 1 12 i Minutes numeric 00 59 r Time 12 hour hh mm ss AP M T Time 24 hour hh mm ss S Seconds 00 59 s Seconds 00 59 p AM or PM w Day of the week 0 Sunday 6 Saturday U Week 0 52 where Sunday is the first day of the week u Week 0 52 where Monday is the first day of the week Use to produce a literal All other characters are just copied to the result without interpretation mysql select DATE FORMAT 1997 10 04 22 23 00 W M Y Saturday October 1997 mysql select DATE FORMAT 1997 10 04 22 23 00 H i s 22 23 00 mysql select DATE FORMAT 1997 10 04 22 23 00 D y a d m b j 4th 97 Sat 04 10 Oct 277 mysql select DATE FORMAT 1997 10 04 22 23 00 H k I r T S w 22 22 10 10 23 00 PM 22 23 00 00 6 As of MySQL 3 23 the is required before a format specifier characters In earlier versions of MySQL was optional TIME FORMAT time format This is used like the DATE FORMAT function above but the format string may contain only those format specifiers that handle hours minutes and seconds Other specifiers produce a NULL value or 0 CURDATE CURRENT DATE Returns today s date as a value in YYYY MM DD or YYYYMMDD format depending on whether the function is used in a string or numeric context mysql select CURDATE 1997 12 15 mysql select CURDATE 0 19971215 CURTIME CURRENT TIME Returns the current time as a value in HH MM SS or HHMMSS format depending on whether the function is used in a string or numeric context mysql select CURTIME 23 50 26 mysql select CURTIME 0 235026 NOW SYSDATE CURRENT TIMESTAMP Returns the current date and time as a value in YYYY MM DD HH MM SS or YYYYMMDDHHMMSS format depending on whether the function is used in a string or numeric context mysql select NOW 1997 12 15 23 50 26 mysql select NOW 0 19971215235026 UNIX TIMESTAMP UNIX TIMESTAMP date If called with no argument returns a Unix timestamp seconds since 1970 01 01 00 00 00 GMT If UNIX TIMESTAMP is called with a date argument it returns the value of the argument as seconds since 1970 01 01 00 00 00 GMT date may be a DATE string a DATETIME string a TIMESTAMP or a number in the format YYMMDD or YYYYMMDD in local time mysql select UNIX TIMESTAMP 882226357 mysql select UNIX TIMESTAMP 1997 10 04 22 23 00 875996580 When UNIX TIMESTAMP is used on a TIMESTAMP column the function will receive the value directly with no implicit string to unix timestamp conversion FROM UNIXTIME unix timestamp Returns a representation of the unix timestamp argument as a value in YYYY MM DD HH MM SS or YYYYMMDDHHMMSS format depending on whether the function is used in a string or numeric context mysql select FROM UNIXTIME 875996580 1997 10 04 22 23 00 mysql select FROM UNIXTIME 875996580 0 19971004222300 FROM UNIXTIME unix timestamp format Returns a string representation of the Unix timestamp formatted according to the format string format may contain the same specifiers as those listed in the entry for the DATE FORMAT function mysql select FROM UNIXTIME UNIX TIMESTAMP Y D M h i s x 1997 23rd December 03 43 30 x SEC TO TIME seconds Returns the seconds argument converted to hours minutes and seconds as a value in HH MM SS or HHMMSS format depending on whether the function is used in a string or numeric context mysql select SEC TO TIME 2378 00 39 38 mysql select SEC TO TIME 2378 0 3938 TIME TO SEC time Returns the time argument converted to seconds mysql select TIME TO SEC 22 23 00 80580 mysql select TIME TO SEC 00 39 38 2378 542 7 3 12 Miscellaneous functions DATABASE Returns the current database name mysql select DATABASE test If there is no current database DATABASE returns the empty string USER SYSTEM USER SESSION USER Returns the current MySQL user name mysql select USER davida localhost In MySQL 3 22 11 or later this includes the client hostname as well as the username You can extract just the username part like this mysql select left USER instr USER 1 davida PASSWORD str Calculates a password string from the plaintext password str This is the function that is used for encrypting MySQL passwords for storage in the Password column of the user grant table mysql select PASSWORD badpwd 7f84554057dd964b PASSWORD encryption is non reversible PASSWORD does not perform password encryption in the same way that Unix passwords are encrypted You should not assume that if your Unix password and your MySQL password are the same PASSWORD will result in the same encrypted value as is stored in the Unix password file See ENCRYPT ENCRYPT str salt Encrypt str using the Unix crypt system call The salt argument should be a string with 2 characters mysql select ENCRYPT hello VxuFAJXVARROc If crypt is not available on your system ENCRYPT always returns NULL ENCRYPT ignores all but the first 8 characters of str at least on some systems This will be determined by the behavior of the underlying crypt system call ENCODE str pass str Encrypt str using pass str as the password To decrypt the result use DECODE The results is a binary string If you want to save it in a column use a BLOB column type DECODE crypt str pass str Descrypts the encrypted string crypt str using pass str as the password crypt str should be a string returned from ENCODE LAST INSERT ID expr Returns the last automatically generated value that was inserted into an AUTO INCREMENT column See section 543 19 4 28 mysql insert id mysql select LAST INSERT ID 195 The last ID that was generated is maintained in the server on a per connection basis It will not be changed by another client It will not even be changed if you update another AUTO INCREMENT column with a non magic value that is a value that is not NULL and not 0 If expr is given as an argument to LAST INSERT ID in an UPDATE clause then the value of the argument is returned as a LAST INSERT ID value This can be used to simulate sequences First create the table mysql create table sequence id int not null mysql insert into sequence values 0 Then the table can be used to generate sequence numbers like this mysql update sequence set id LAST INSERT ID id 1 You can generate sequences without calling LAST INSERT ID but the utility of using the function this way is that the ID value is maintained in the server as the last automatically generated value You can retrieve the new ID as you would read any normal AUTO INCREMENT value in MySQL For example LAST INSERT ID without an argument will return the new ID The C API function mysql insert id can also be used to get the value FORMAT X D Formats the number X to a format like with D decimals If D is 0 the result will have no decimal point or fractional part mysql select FORMAT 12332 1234 2 12 332 12 mysql select FORMAT 12332 1 4 12 332 1000 mysql select FORMAT 12332 2 0 12 332 VERSION Returns a string indicating the MySQL server version mysql select VERSION 3 22 19b log GET LOCK str timeout Tries to obtain a lock with a name given by the string str with a timeout of timeout seconds Returns 1 if the lock was obtained successfully 0 if the attempt timed out or NULL if an error occurred such as running out of memory or the thread was killed with mysqladmin kill A lock is released when you execute RELEASE LOCK execute a new GET LOCK or the thread terminates This function can be used to implement application locks or to simulate record locks mysql select GET LOCK lock1 10 1 mysql select GET LOCK lock2 10 1 mysql select RELEASE LOCK lock2 1 mysql select RELEASE LOCK lock1 NULL Note that the second RELEASE LOCK call returns NULL because the lock lock1 was automatically released by the second GET LOCK call RELEASE LOCK str Releases the lock named by the string str that was obtained with GET LOCK Returns 1 if the lock was released 0 if the lock wasn t locked by this thread in which case the lock is not released and NULL if the named lock didn t exist The lock will not exist if it was never obtained by a call to GET LOCK or if it already has been released BENCHMARK count expr The BENCHMARK function executes the expression expr repeatedly count times It may be used to time how fast MySQL processes the expression The result value is always 0 The intended use is in the mysql client which reports query execution times mysql select BENCHMARK 1000000 encode hello goodbye BENCHMARK 1000000 encode hello goodbye 0 1 row in set 4 74 sec The time reported is elapsed time on the client end not CPU time on the server end It may be advisable to execute BENCHMARK several times and interpret the result with regard to how heavily loaded the server machine is 544 7 3 13 Functions for use with GROUP BY clauses If you use a group function in a statement containing no GROUP BY clause it is equivalent to grouping on all rows COUNT expr Returns a count of the number of non NULL rows retrieved by a SELECT statement mysql select student student name COUNT from student course where student student id course student id GROUP BY student name COUNT is optimized to return very quickly if the SELECT retrieves from one table no other columns are retrieved and there is no WHERE clause For example mysql select COUNT from student AVG expr Returns the average value of expr mysql select student name AVG test score from student GROUP BY student name MIN expr MAX expr Returns the minimum or maximum value of expr MIN and MAX may take a string argument in such cases they return the minimum or maximum string value mysql select student name MIN test score MAX test score from student GROUP BY student name SUM expr Returns the sum of expr STD expr STDDEV expr Returns the standard deviation of expr This is an extension to ANSI SQL The STDDEV form of this function is provided for Oracle compatability BIT OR expr Returns the bitwise OR of all bits in expr The calculation is performed with 64 bit BIGINT precision BIT AND expr Returns the bitwise AND of all bits in expr The calculation is performed with 64 bit BIGINT precision MySQL has extended the use of GROUP BY You can use columns or calculations in the SELECT expressions which don t appear in the GROUP BY part This stands for any possible value for this group You can use this to get better performance by avoiding sorting and grouping on unnecessary items For example you don t need to group on customer name in the following query mysql select order custid customer name max payments from order customer where order custid customer custid GROUP BY order custid In ANSI SQL you would have to add customer name to the GROUP BY clause In MySQL the name is redundant Don t use this feature if the columns you omit from the GROUP BY part aren t unique in the group In some cases you can use MIN and MAX to obtain a specific column value even if it isn t unique The following gives the value of column from the row containing the smallest value in the sort column substr MIN concat sort space 6 length sort column 7 length column Note that you can t yet use expressions in GROUP BY or ORDER BY clauses You can work around this limitation by using an alias for the expression mysql select id floor value 100 as val from tbl name GROUP BY id val ORDER BY val 545 7 4 CREATE DATABASE syntax CREATE DATABASE db name CREATE DATABASE creates a database with the given name Rules for allowable database names are given in section 546 7 1 4 Database table index column and alias names An error occurs if the database already exists Databases in MySQL are implemented as directories containing files that correspond to tables in the database Since there are no tables in a database when it is initially created the CREATE DATABASE statement only creates a directory under the MySQL data directory You can also create databases with mysqladmin See section 547 12 1 Overview of the different MySQL programs 548 7 5 DROP DATABASE syntax DROP DATABASE IF EXISTS db name DROP DATABASE drops all tables in the database and deletes the database Be VERY careful with this command DROP DATABASE returns the number of files that were removed from the database directory Normally this is three times the number of tables since each table corresponds to a ISD file a ISM file and a frm file In MySQL 3 22 or later you can use the keywords IF EXISTS to prevent an error from occurring if the database doesn t exist You can also drop databases with mysqladmin See section 549 12 1 Overview of the different MySQL programs 550 7 6 CREATE TABLE syntax CREATE TABLE IF NOT EXISTS tbl name create definition table options select statement create definition col name type NOT NULL NULL DEFAULT default value AUTO INCREMENT PRIMARY KEY reference definition or PRIMARY KEY index col name or KEY index name KEY index col name or INDEX index name index col name or UNIQUE INDEX index name index col name or CONSTRAINT symbol FOREIGN KEY index name index col name reference definition or CHECK expr type TINYINT length UNSIGNED ZEROFILL or SMALLINT length UNSIGNED ZEROFILL or MEDIUMINT length UNSIGNED ZEROFILL or INT length UNSIGNED ZEROFILL or INTEGER length UNSIGNED ZEROFILL or BIGINT length UNSIGNED ZEROFILL or REAL length decimals UNSIGNED ZEROFILL or DOUBLE length decimals UNSIGNED ZEROFILL or FLOAT length decimals UNSIGNED ZEROFILL or DECIMAL length decimals UNSIGNED ZEROFILL or NUMERIC length decimals UNSIGNED ZEROFILL or CHAR length BINARY or VARCHAR length BINARY or DATE or TIME or TIMESTAMP or DATETIME or TINYBLOB or BLOB or MEDIUMBLOB or LONGBLOB or TINYTEXT or TEXT or MEDIUMTEXT or LONGTEXT or ENUM value1 value2 value3 or SET value1 value2 value3 index col name col name length reference definition REFERENCES tbl name index col name MATCH FULL MATCH PARTIAL ON DELETE reference option ON UPDATE reference option reference option RESTRICT CASCADE SET NULL NO ACTION SET DEFAULT table options type ISAM MYISAM HEAP or auto increment or avg row length or checksum 0 1 or comment string or max rows or min rows or pack keys 0 1 or password string select statement IGNORE REPLACE SELECT Some legal select statement CREATE TABLE creates a table with the given name in the current database Rules for allowable table names are given in section 551 7 1 4 Database table index column and alias names An error occurs if there is no current database or if the table already exists In MySQL 3 22 or later the table name can be specified as db name tbl name This works whether or not there is a current database In MySQL 3 23 or later you can use the keywords IF NOT EXISTS so that an error does not occur if the table already exits Note that there is no verification that the table structures are identical Each table tbl name is represented by three files in the database directory File Purpose tbl name frm Table definition form file tbl name ISD Data file tbl name ISM Index file For more information on the properties of the various column types see section 552 7 2 Column types If neither NULL nor NOT NULL is specified the column is treated as though NULL had been specified An integer column may have the additional attribute AUTO INCREMENT When you insert a value of NULL recommended or 0 into an AUTO INCREMENT column the column is set to value 1 where value is the largest value for the column currently in the table AUTO INCREMENT sequences begin with 1 See section 553 19 4 28 mysql insert id If you delete the row containing the maximum value for an AUTO INCREMENT column the value will be reused If you delete all rows in the table the sequence starts over Note There can be only one AUTO INCREMENT column per table and it must be indexed To make MySQL compatible with some ODBC applications you can find the last inserted row with the following query SELECT FROM tbl name WHERE auto col IS NULL NULL values are handled differently for TIMESTAMP columns than for other column types You cannot store a literal NULL in a TIMESTAMP column setting the column to NULL sets it to the current date and time Because TIMESTAMP columns behave this way the NULL and NOT NULL attributes do not apply in the normal way and are ignored if you specify them On the other hand to make it easier for MySQL clients to use TIMESTAMP columns the server reports that such columns may be assigned NULL values which is true even though TIMESTAMP never actually will contain a NULL value You can see this when you use DESCRIBE tbl name to get a description of your table Note that setting a TIMESTAMP column to 0 is not the same as setting it to NULL because 0 is a valid TIMESTAMP value If no DEFAULT value is specified for a column MySQL automatically assigns one If the column may take NULL as a value the default value is NULL If the column is declared as NOT NULL the default value depends on the column type For numeric types other than those declared with the AUTO INCREMENT attribute the default is 0 For an AUTO INCREMENT column the default value is the next value in the sequence For date and time types other than TIMESTAMP the default is the appropriate zero value for the type For the first TIMESTAMP column in a table the default value is the current date and time See section 554 7 2 6 Date and time types For string types other than ENUM the default is the empty string For ENUM the default is the first enumeration value KEY is a synonym for INDEX In MySQL a UNIQUE key can have only distinct values An error occurs if you try to add a new row with a key that matches an existing row In MySQL a PRIMARY KEY is the same thing as a unique KEY that is named PRIMARY A table can have only one PRIMARY KEY If you don t have a PRIMARY KEY and some applications ask for the PRIMARY KEY in your tables MySQL will return the first UNIQUE key as the PRIMARY KEY A PRIMARY KEY can be a multiple column index However you cannot create a multiple column index using the PRIMARY KEY key attibute in a column specification Doing so will mark only that single column as primary You must use the PRIMARY KEY index col name syntax If you don t assign a name to an index the index will be assigned the same name as the first index col name with an optional suffix 2 3 to make it unique You can see index names for a table using SHOW INDEX FROM tbl name See section 555 7 20 SHOW syntax Get information about tables columns Columns that are indexed cannot have NULL values You must declare such columns NOT NULL or an error results BLOB and TEXT columns cannot be indexed With col name length syntax you can specify an index which uses only a part of a CHAR or VARCHAR column This can make the index file much smaller See section 556 7 2 9 Column indexes When you use ORDER BY or GROUP BY with a TEXT or BLOB column only the first max sort length bytes are used See section 557 7 2 7 2 The BLOB and TEXT types The FOREIGN KEY CHECK and REFERENCES clauses don t actually do anything The syntax for them is provided only for compatibility to make it easier to port code from other SQL servers and to run applications that create tables with references See section 558 5 3 Functionality missing from MySQL Each NULL column takes one bit extra rounded up to the nearest byte The maximum record length in bytes can be calculated as follows row length 1 sum of column lengths number of NULL columns 7 8 number of variable length columns The table options and SELECT options is only implemented in MySQL 3 23 and above The different table types are ISAM The original table handler MyISAM The new binary portable table handler HEAP The data for this table is only stored in memory See section 559 10 17 MySQL table types The other table options are used to optimize the behavior of the table In most cases you don t have to specify any of them The options work for all table types if not otherwise indicated auto increment The next auto increment value you want to set for your table MyISAM avg row length An approximation of the average row length for your table checksum Set this to 1 if you want MySQL to maintain a checksum for all rows makes the table a little slower to update but makes it easier to find corrupted tables MyISAM comment tab A 60 character comment for your table max rows Max number of rows you plan to store in the table min rows Minimum number of rows you plan to store in the table pack keys Set this to 1 if you want to have smaller index This usually makes updates slower and reads faster MyISAM ISAM password Encrypt the frm file with password This option doesn t do anything in the standard MySQL version When you use a MyISAM table MySQL uses the product of max rows avg row length to decide how big the resulting table will be If you don t specify any of the above options the maximum size for a table will be 4G or 2G if your operating systems only supports 2G tables If you specify a SELECT after the CREATE STATEMENT MySQL will create new fields for all elements in the SELECT For example mysql CREATE TABLE test a int not null auto increment primary key a key b TYPE HEAP SELECT b c from test2 This will create a HEAP table with 3 columns Note that the table will automatically be deleted if any errors occur while copying data into the table 560 7 6 1 Silent column specification changes In some cases MySQL silently changes a column specification from that given in a CREATE TABLE statement This may also occur with ALTER TABLE VARCHAR columns with a length less than four are changed to CHAR If any column in a table has a variable length the entire row is variable length as a result Therefore if a table contains any variable length columns VARCHAR TEXT or BLOB all CHAR columns longer than three characters are changed to VARCHAR columnss This doesn t affect how you use the columns in any way in MySQL VARCHAR is just a different way to store characters MySQL performs this conversion because it saves space and makes table operations faster See section 561 10 16 What are the different row formats Or when should VARCHAR CHAR be used TIMESTAMP display sizes must be even and in the range from 2 to 14 If you specify a display size of 0 or greater than 14 the size is coerced to 14 Odd valued sizes in the range from 1 to 13 are coerced to the next higher even number You cannot store a literal NULL in a TIMESTAMP column setting it to NULL sets it to the current date and time Because TIMESTAMP columns behave this way the NULL and NOT NULL attributes do not apply in the normal way and are ignored if you specify them DESCRIBE tbl name always reports that a TIMESTAMP column may be assigned NULL values MySQL maps certain column types used by other SQL database vendors to MySQL types See section 562 7 2 11 Using column types from other database engines If you want to see whether or not MySQL used a column type other than the one you specified issue a DESCRIBE tbl name statement after creating or altering your table Certain other column type changes may occur if you compress a table using pack isam See section 563 10 16 What are the different row formats Or when should VARCHAR CHAR be used 564 7 7 ALTER TABLE syntax ALTER IGNORE TABLE tbl name alter spec alter spec alter specification ADD COLUMN create definition FIRST AFTER column name or ADD INDEX index name index col name or ADD PRIMARY KEY index col name or ADD UNIQUE index name index col name or ALTER COLUMN col name SET DEFAULT literal DROP DEFAULT or CHANGE COLUMN old col name create definition or MODIFY COLUMN create definition or DROP COLUMN col name or DROP PRIMARY KEY or DROP INDEX key name or RENAME AS new tbl name or table option ALTER TABLE allows you to change the structure of an existing table For example you can add or delete columns create or destroy indexes change the type of existing columns or rename columns or the table itself You can also change the comment for the table and type of the table See section 565 7 6 CREATE TABLE syntax If you use ALTER TABLE to change a column specification but DESCRIBE tbl name indicates that your column was not changed it is possible that MySQL ignored your modification for one of the reasons described in section 566 7 6 1 Silent column specification changes For example if you try to change a VARCHAR column to CHAR MySQL will still use VARCHAR if the table contains other variable length columns ALTER TABLE works by making a temporary copy of the original table The alteration is performed on the copy then the original table is deleted and the new one is renamed This is done in such a way that all updates are automatically redirected to the new table without any failed updates While ALTER TABLE is executing the original table is readable by other clients Updates and writes to the table are stalled until the new table is ready To use ALTER TABLE you need select insert delete update create and drop privileges on the table IGNORE is a MySQL extension to ANSI SQL92 It controls how ALTER TABLE works if there are duplicates on unique keys in the new table If IGNORE isn t specified the copy is aborted and rolled back If IGNORE is specified then for rows with duplicates on a unique key only the first row is used the others are deleted You can issue multiple ADD ALTER DROP and CHANGE clauses in a single ALTER TABLE statement This is a MySQL extension to ANSI SQL92 which allows only one of each clause per ALTER TABLE statement CHANGE col name DROP col name and DROP INDEX are MySQL extensions to ANSI SQL92 MODIFY is an Oracle extension to ALTER TABLE The optional word COLUMN is a pure noise word and can be omitted If you use ALTER TABLE tbl name RENAME AS new name without any other options MySQL simply renames the files that correspond to the table tbl name There is no need to create the temporary table create definition clauses use the same syntax for ADD and CHANGE as for CREATE TABLE Note that this syntax includes the column name not just the column type See section 567 7 6 CREATE TABLE syntax You can rename a column using a CHANGE old col name create definition clause To do so specify the old and new column names and the type that the column currently has For example to rename an INTEGER column from a to b you can do this mysql ALTER TABLE t1 CHANGE a b INTEGER If you want to change a column s type but not the name CHANGE syntax still requires two column names even if they are the same For example mysql ALTER TABLE t1 CHANGE b b BIGINT NOT NULL However as of MySQL 3 22 16a you can also use MODIFY to change a column s type without renaming it mysql ALTER TABLE t1 MODIFY b BIGINT NOT NULL If you use CHANGE or MODIFY to shorten a column for which an index exists on part of the column for instance if you have an index on the first 10 characters of a VARCHAR column you cannot make the column shorter than the number of characters that are indexed When you change a column type using CHANGE or MODIFY MySQL tries to convert data to the new type as well as possible In MySQL 3 22 or later you can use FIRST or ADD AFTER col name to add a column at a specific position within a table row The default is to add the column last ALTER COLUMN specifies a new default value for a column or removes the old default value If the old default is removed and the column can be NULL the new default is NULL If the column cannot be NULL MySQL assigns a default value Default value assignment is described in section 568 7 6 CREATE TABLE syntax DROP INDEX removes an index This is a MySQL extension to ANSI SQL92 If columns are dropped from a table the columns are also removed from any index of which they are a part If all columns that make up an index are dropped the index is dropped as well DROP PRIMARY KEY drops the primary index If no such index exists it drops the first UNIQUE index in the table MySQL marks the first UNIQUE key as the PRIMARY KEY if no PRIMARY KEY was specified explicitly With the C API function mysql info you can find out how many records were copied and when IGNORE is used how many records were deleted due to duplication of unique key values The FOREIGN KEY CHECK and REFERENCES clauses don t actually do anything The syntax for them is provided only for compatibility to make it easier to port code from other SQL servers and to run applications that create tables with references See section 569 5 3 Functionality missing from MySQL Here is an example that shows some of the uses of ALTER TABLE We begin with a table t1 that is created as shown below mysql CREATE TABLE t1 a INTEGER b CHAR 10 To rename the table from t1 to t2 mysql ALTER TABLE t1 RENAME t2 To change column a from INTEGER to TINYINT NOT NULL leaving the name the same and to change column b from CHAR 10 to CHAR 20 as well as renaming it from b to c mysql ALTER TABLE t2 MODIFY a TINYINT NOT NULL CHANGE b c CHAR 20 To add a new TIMESTAMP column named d mysql ALTER TABLE t2 ADD d TIMESTAMP To add an index on column d and make column a the primary key mysql ALTER TABLE t2 ADD INDEX d ADD PRIMARY KEY a To remove column c mysql ALTER TABLE t2 DROP COLUMN c To add a new AUTO INCREMENT integer column named c mysql ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO INCREMENT ADD INDEX c Note that we indexed c because AUTO INCREMENT columns must be indexed and also that we declare c as NOT NULL because indexed columns cannot be NULL 570 7 8 OPTIMIZE TABLE syntax OPTIMIZE TABLE tbl name OPTIMZE TABLE should be used if you have deleted a large part of a table or if you have made many changes to a table with variable length rows tables that have VARCHAR BLOB or TEXT columns Deleted records are maintained in a linked list and subsequent INSERT operations reuse old record positions You can use OPTIMIZE TABLE to reclaim the unused space OPTIMIZE TABLE works by making a temporary copy of the original table The old table is copied to the new table without the unused rows then the original table is deleted and the new one is renamed This is done in such a way that all updates are automatically redirected to the new table without any failed updates While OPTIMIZE TABLE is executing the original table is readable by other clients Updates and writes to the table are stalled until the new table is ready 571 7 9 DROP TABLE syntax DROP TABLE IF EXISTS tbl name tbl name DROP TABLE removes one or more tables All table data and the table definition are removed so be careful with this command In MySQL 3 22 or later you can use the keywords IF EXISTS to prevent an error from occurring for tables that don t exist 572 7 10 DELETE syntax DELETE LOW PRIORITY FROM tbl name WHERE where definition LIMIT rows DELETE deletes rows from tbl name that satisfy the condition given by where definition and returns the number of records deleted If you issue a DELETE with no WHERE clause all rows are deleted MySQL does this by recreating the table as an empty table which is much faster than deleting each row In this case DELETE returns zero as the number of affected records MySQL can t return the number of rows that were actually deleted since the recreate is done without opening the data files As long as the table definition file tbl name frm is valid the table can be recreated this way even if the data or index files have become corrupted If you really want to know how many records are deleted when you are deleting all rows and are willing to suffer a speed penalty you can use a DELETE statement of this form mysql DELETE FROM tbl name WHERE 1 0 Note that this is MUCH slower than DELETE FROM tbl name with no WHERE clause because it deletes rows one at a time If you specify the keyword LOW PRIORITY execution of the DELETE is delayed until no other clients are reading from the table Deleted records are maintained in a linked list and subsequent INSERT operations reuse old record positions To reclaim unused space and reduce file sizes use the OPTIMIZE TABLE statement or the isamchk utility to reorganize tables OPTIMIZE TABLE is easier but isamchk is faster See section 573 7 8 OPTIMIZE TABLE syntax and section 574 13 4 3 Table optimization The MySQL specific LIMIT rows option to DELETE tells the server the maximum number of rows to be deleted before control is returned to the client This can be used to ensure that a specific DELETE command doesn t take too much time You can simply repeat the DELETE command until the number of affected rows is less than the LIMIT value 575 7 11 SELECT syntax SELECT STRAIGHT JOIN SQL SMALL RESULT DISTINCT DISTINCTROW ALL select expression INTO OUTFILE file name export options FROM table references WHERE where definition GROUP BY col name HAVING where definition ORDER BY unsigned integer col name ASC DESC LIMIT offset rows PROCEDURE procedure name SELECT is used to retrieve rows selected from one or more tables select expression indicates the columns you want to retrieve SELECT may also be used to retrieve rows computed without reference to any table For example mysql SELECT 1 1 2 All keywords used must be given in exactly the order shown above For example a HAVING clause must come after any GROUP BY clause and before any ORDER BY clause A SELECT expression may be given an alias using AS The alias is used as the expression s column name and can be used with ORDER BY or HAVING clauses For example mysql select concat last name first name AS full name from mytable ORDER BY full name The FROM table references clause indicates the tables from which to retrieve rows If you name more than one table you are performing a join For information on join syntax see section 576 7 12 JOIN syntax You can refer to a column as col name tbl name col name or db name tbl name col name You need not specify a tbl name or db name tbl name prefix for a column reference in a SELECT statement unless the reference would be ambiguous See section 577 7 1 4 Database table index column and alias names for examples of ambiguity that require the more explicit column reference forms A table reference may be aliased using tbl name AS alias name mysql select t1 name t2 salary from employee AS t1 info AS t2 where t1 name t2 name mysql select t1 name t2 salary from employee t1 info t2 where t1 name t2 name Columns selected for output may be referred to in ORDER BY and GROUP BY clauses using column names column aliases or column positions Column positions begin with 1 mysql select college region seed from tournament ORDER BY region seed mysql select college region AS r seed AS s from tournament ORDER BY r s mysql select college region seed from tournament ORDER BY 2 3 To sort in reverse order add the DESC descending keyword to the name of the column in the ORDER BY clause that you are sorting by The default is ascending order this may be specified explicitly using the ASC keyword The HAVING clause can refer to any column or alias named in the select expression It is applied last just before items are sent to the client with no optimization Don t use HAVING for items that should be in the WHERE clause For example do not write this mysql select col name from tbl name HAVING col name 0 Write this instead mysql select col name from tbl name WHERE col name 0 In MySQL 3 22 5 or later you can also write queries like this mysql select user max salary from users group by user HAVING max salary 10 In older MySQL versions you can write this instead mysql select user max salary AS sum from users group by user HAVING sum 10 STRAIGHT JOIN forces the optimizer to join the tables in the order in which they are listed in the FROM clause You can use this to speed up a query if the optimizer joins the tables in non optimal order See section 578 7 21 EXPLAIN syntax Get information about a SELECT SQL SMALL RESULT can be used with GROUP BY or DISTINCT to tell the optimizer that the result set will be small In this case MySQL will use fast temporary tables to store the resulting table instead of using sorting SQL SMALL RESULT is a MySQL extension to ANSI SQL92 The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement LIMIT takes one or two numeric arguments If two arguments are given the first specifies the offset of the first row to return the second specifies the maximum number of rows to return The offset of the initial row is 0 not 1 mysql select from table LIMIT 5 10 Retrieve rows 6 15 If one argument is given it indicates the maximum number of rows to return mysql select from table LIMIT 5 Retrieve first 5 rows In other words LIMIT n is equivalent to LIMIT 0 n The SELECT INTO OUTFILE file name form of SELECT writes the selected rows to a file The file is created on the server host and cannot already exist among other things this prevents database tables and files such as etc passwd from being destroyed You must have the file privilege on the server host to use this form of SELECT SELECT INTO OUTFILE is the complement of LOAD DATA INFILE the syntax for the export options part of the statement consists of the same FIELDS and LINES clauses that are used with the LOAD DATA INFILE statement See section 579 7 15 LOAD DATA INFILE syntax In the resulting text file only the following characters are escaped by the ESCAPED BY character The ESCAPED BY character The first character in FIELDS TERMINATED BY The first character in LINES TERMINATED BY Additionally ASCII 0 is converted to ESCAPED BY followed by 0 ASCII 48 The reason for the above is that you MUST escape any FIELDS TERMINATED BY ESCAPED BY or LINES TERMINATED BY characters to reliably be able to read the file back ASCII 0 is escaped to make it easier to view with some pagers As the resulting file doesn t have to conform to the SQL syntax nothing else need be escaped 580 7 12 JOIN syntax MySQL supports the following JOIN syntaxes for use in SELECT statements table reference table reference table reference CROSS JOIN table reference table reference STRAIGHT JOIN table reference table reference LEFT OUTER JOIN table reference ON conditional expr table reference LEFT OUTER JOIN table reference USING column list table reference NATURAL LEFT OUTER JOIN table reference oj table reference LEFT OUTER JOIN table reference ON conditional expr The last LEFT OUTER JOIN syntax shown above exists only for compatibility with ODBC A table reference may be aliased using tbl name AS alias name or tbl name alias name mysql select t1 name t2 salary from employee AS t1 info AS t2 where t1 name t2 name JOIN and comma are semantically equivalent Both do a full join between the tables used Normally you specify how the tables should be linked in the WHERE condition The ON conditional is any conditional of the form that may be used in a WHERE clause If there is no matching record for the right table in a LEFT JOIN a row with all columns set to NULL is used for the right table You can use this fact to find records in a table that have no counterpart in another table mysql select table1 from table1 LEFT JOIN table2 ON table1 id table2 id where table2 id is NULL This example finds all rows in table1 with an id value that is not present in table2 i e all rows in table1 with no corresponding row in table2 This assumes that table2 id is declared NOT NULL of course The USING column list clause names a list of columns that must exist in both tables A USING clause such as A LEFT JOIN B USING C1 C2 C3 is defined to be semantically identical to an ON expression like this A C1 B C1 AND A C2 B C2 AND A C3 B C3 The NATURAL LEFT JOIN of two tables is defined to be semantically equivalent to a LEFT JOIN with a USING clause that names all columns that exist in both tables STRAIGHT JOIN is identical to JOIN except that the left table is always read before the right table This can be used for those few cases where the join optimizer puts the tables in the wrong order Some examples mysql select from table1 table2 where table1 id table2 id mysql select from table1 LEFT JOIN table2 ON table1 id table2 id mysql select from table1 LEFT JOIN table2 USING id mysql select from table1 LEFT JOIN table2 ON table1 id table2 id LEFT JOIN table3 ON table2 id table3 id See section 581 10 6 How MySQL optimizes LEFT JOIN 582 7 13 INSERT syntax INSERT LOW PRIORITY DELAYED IGNORE INTO tbl name col name VALUES expression or INSERT LOW PRIORITY DELAYED IGNORE INTO tbl name col name SELECT or INSERT LOW PRIORITY DELAYED IGNORE INTO tbl name SET col name expression col name expression INSERT inserts new rows into an existing table The INSERT VALUES form of the statement inserts rows based on explicitly specified values The INSERT SELECT form inserts rows selected from another table or tables The INSERT VALUES form with multiple value lists is supported in MySQL 3 22 5 or later The col name expression syntax is supported in MySQL 3 22 10 or later tbl name is the table into which rows should be inserted The column name list or the SET clause indicates which columns the statement specifies values for If you specify no column list for INSERT VALUES or INSERT SELECT values for all columns must be provided in the VALUES list or by the SELECT If you don t know the order of the columns in the table use DESCRIBE tbl name to find out Any column not explicitly given a value is set to its default value For example if you specify a column list that doesn t name all the columns in the table unnamed columns are set to their default values Default value assignment is described in section 583 7 6 CREATE TABLE syntax An expression may refer to any column that was set earlier in a value list For example you can say this mysql INSERT INTO tbl name col1 col2 VALUES 15 col1 2 But not this mysql INSERT INTO tbl name col1 col2 VALUES col2 2 15 If you specify the keyword LOW PRIORITY execution of the INSERT is delayed until no other clients are reading from the table If you specify the keyword IGNORE in an INSERT with many value rows any rows which duplicate an existing PRIMARY or UNIQUE key in the table are ignored and are not inserted If you do not specify IGNORE the insert is aborted if there is any row that duplicates an existing key value You can check with the mysql info how many rows were inserted into the table If MySQL was configured using the DONT USE DEFAULT FIELDS option INSERT statements generate an error unless you explicitly specify values for all columns that require a non NULL value See section 584 4 7 3 Typical configure options The following conditions hold for a INSERT INTO SELECT statement The query cannot contain an ORDER BY clause The target table of the INSERT statement cannot appear in the FROM clause of the SELECT part of the query because it s forbidden in ANSI SQL to SELECT from the same table into which you are INSERTing The problem is that the SELECT possibly would find records that were inserted earlier during the same run When using sub select clauses the situation could easily be very confusing AUTO INCREMENT columns work as usual If you use INSERT SELECT or a INSERT VALUES statement with multiple value lists you can use the C API function mysql info to get information about the query The format of the information string is shown below Records 100 Duplicates 0 Warnings 0 Duplicates indicates the number of rows that couldn t be inserted because they would duplicate some existing unique index value Warnings indicates the number of attempts to insert column values that were problematic in some way Warnings can occur under any of the following conditions Inserting NULL into a column that has been declared NOT NULL The column is set to its default value Setting a numeric column to a value that lies outside the column s range The value is clipped to the appropriate endpoint of the range Setting a numeric column to a value such as 10 34 a The trailing garbage is stripped and the remaining numeric part is inserted If the value doesn t make sense as a number at all the column is set to 0 Inserting a string into a CHAR VARCHAR TEXT or BLOB column that exceeds the column s maximum length The value is truncated to the column s maximum length Inserting a value into a date or time column that is illegal for the column type The column is set to the appropriate zero value for the type The DELAYED option for the INSERT statement is a MySQL specific option that is very useful if you have clients that can t wait for the INSERT to complete This is common when you use MySQL for logging and you also periodically run SELECT statements that take a long time to complete DELAYED was introduced in MySQL 3 22 15 It is a MySQL extension to ANSI SQL92 Another major benefit of using INSERT DELAYED is that inserts from many clients are bundled together and written in one block This is much faster than doing many separate inserts Note that currently the queued rows are only stored in memory until they are inserted into the table This means that if you kill mysqld the hard way kill 9 or if mysqld dies unexpectedly any queued rows that weren t written to disk are lost The following happens when you use the DELAYED option to INSERT or REPLACE In this description the thread is the thread that received an INSERT DELAYED command and handler is the thread that handles all INSERT DELAYED statements for a particular table When a thread executes a DELAYED statement for a table a handler thread is created to handle all DELAYED statements for the table if no such handler already exists The thread checks whether or not the handler has acquired a DELAYED lock already if not it tells the handler thread to do so The DELAYED lock can be obtained even if other threads have a READ or WRITE lock on the table However the handler will wait for all ALTER TABLE locks or FLUSH TABLES to ensure that the table structure is up to date The thread executes the INSERT statement but instead of writing the row to the table it puts a copy of the final row into a queue that is managed by the handler thread Any syntax errors are noticed by the thread and reported the client program The client can t report the number of duplicates or the AUTO INCREMENT value for the resulting row it can t obtain them from the server because the INSERT returns before the insert operation has been completed If you use the C API the mysql info function doesn t return anything meaningful for the same reason The update log is updated by the handler thread when the row is inserted into the table In case of multiple row inserts the update log is updated when the first row is inserted After every delayed insert limit rows are written the handler checks whether or not any SELECT statements are still pending If so it allows these to execute before continuing When the handler has no more rows in its queue the table is unlocked If no new INSERT DELAYED commands are received within delayed insert timeout seconds the handler terminates If more than delayed queue size rows are pending already in a specific handler queue the thread waits until there is room in the queue This is useful to ensure that the mysqld server doesn t use all memory for the delayed memory queue The handler thread will show up in the MySQL process list with delayed insert in the Command column It will be killed if you execute a FLUSH TABLES command or kill it with KILL thread id However it will first store all queued rows into the table before exiting During this time it will not accept any new INSERT commands from another thread If you execute an INSERT DELAYED command after this a new handler thread will be created Note that the above means that INSERT DELAYED commands have higher priority than normal INSERT commands if there is an INSERT DELAYED handler already running Other update commands will have to wait until the INSERT DELAY queue is empty someone kills the handler thread with KILL thread id or someone executes FLUSH TABLES The following status variables provide information about INSERT DELAYED commands Delayed insert threads Number of handler threads Delayed writes Number of rows written with INSERT DELAYED Not flushed delayed rows Number of rows waiting to be written You can view these variables by issuing a SHOW STATUS statement or by executing a mysqladmin extended status command 585 7 14 REPLACE syntax REPLACE LOW PRIORITY DELAYED INTO tbl name col name VALUES expression or REPLACE LOW PRIORITY DELAYED INTO tbl name col name SELECT or REPLACE LOW PRIORITY DELAYED INTO tbl name SET col name expression col name expression REPLACE works exactly like INSERT except that if an old record in the table has the same value as a new record on a unique index the old record is deleted before the new record is inserted See section 586 7 13 INSERT syntax 587 7 15 LOAD DATA INFILE syntax LOAD DATA LOCAL INFILE file name txt REPLACE IGNORE INTO TABLE tbl name FIELDS TERMINATED BY t OPTIONALLY ENCLOSED BY ESCAPED BY LINES TERMINATED BY n IGNORE number LINES col name The LOAD DATA INFILE statement reads rows from a text file into a table at a very high speed If the LOCAL keyword is specified the file is read from the client host If LOCAL is not specified the file must be located on the server LOCAL is available in MySQL 3 22 6 or later For security reasons when reading text files located on the server the files must either reside in the database directory or be readable by all Also to use LOAD DATA INFILE on server files you must have the file privilege on the server host See section 588 6 6 How the privilege system works Using LOCAL will be a bit slower than letting the server access the files directly since the contents of the file must travel from the client host to the server host On the other hand you do not need the file privilege to load local files You can also load data files by using the mysqlimport utility it operates by sending a LOAD DATA INFILE command to the server The local option causes mysqlimport to read data files from the client host You can specify the compress option to get better performance over slow networks if the client and server support the compressed protocol When locating files on the server host the server uses the following rules If an absolute pathname is given the server uses the pathname as is If a relative pathname with one or more leading components is given the server searches for the file relative to the server s data directory If a filename with no leading components is given the server looks for the file in the database directory of the current database Note that these rules mean a file given as myfile txt is read from the server s data directory whereas a file given as myfile txt is read from the database directory of the current database Note also that for statements such as those below the file is read from the database directory for db1 not db2 mysql USE db1 mysql LOAD DATA INFILE data txt INTO TABLE db2 my table The REPLACE and IGNORE keywords control handling of input records that duplicate existing records on unique key values If you specify REPLACE new rows replace existing rows that have the same unique key value If you specify IGNORE input rows that duplicate an existing row on a unique key value are skipped If you don t specify either option an error occurs when a duplicate key value is found and the rest of the text file is ignored If you load data from a local file using the LOCAL keyword the server has no way to stop transmission of the file in the middle of the operation so the default bahavior is the same as if IGNORE is specified LOAD DATA INFILE is the complement of SELECT INTO OUTFILE See section 589 7 11 SELECT syntax To write data from a database to a file use SELECT INTO OUTFILE To read the file back into the database use LOAD DATA INFILE The syntax of the FIELDS and LINES clauses is the same for both commands Both clauses are optional but FIELDS must precede LINES if both are specified If you specify a FIELDS clause each of its subclauses TERMINATED BY OPTIONALLY ENCLOSED BY and ESCAPED BY is also optional except that you must specify at least one of them If you don t specify a FIELDS clause the defaults are the same as if you had written this FIELDS TERMINATED BY t ENCLOSED BY ESCAPED BY If you don t specify a LINES clause the default is the same as if you had written this LINES TERMINATED BY n In other words the defaults cause LOAD DATA INFILE to act as follows when reading input Look for line boundaries at newlines Break lines into fields at tabs Do not expect fields to be enclosed within any quoting characters Interpret occurrences of tab newline or preceded by as literal characters that are part of field values Conversely the defaults cause SELECT INTO OUTFILE to act as follows when writing output Write tabs between fields Do not enclose fields within any quoting characters Use to escape instances of tab newline or that occur within field values Write newlines at the ends of lines Note that to write FIELDS ESCAPED BY you must specify two backslashes for the value to be read as a single backslash The IGNORE number LINES option can be used to ignore a header of column names at the start of the file mysql LOAD DATA INFILE tmp file name into table test IGNORE 1 LINES When you use SELECT INTO OUTFILE in tandem with LOAD DATA INFILE to write data from a database into a file and then read the file back into the database later the field and line handling options for both commands must match Otherwise LOAD DATA INFILE will not interpret the contents of the file properly Suppose you use SELECT INTO OUTFILE to write a file with fields delimited by commas mysql SELECT FROM table1 INTO OUTFILE data txt FIELDS TERMINATED BY FROM To read the comma delimited file back in the correct statement would be mysql LOAD DATA INFILE data txt INTO TABLE table2 FIELDS TERMINATED BY If instead you tried to read in the file with the statement shown below it wouldn t work because it instructs LOAD DATA INFILE to look for tabs between fields mysql LOAD DATA INFILE data txt INTO TABLE table2 FIELDS TERMINATED BY t The likely result is that each input line would be interpreted as a single field LOAD DATA INFILE can be used to read files obtained from external sources too For example a file in dBASE format will have fields separated by commas and enclosed in double quotes If lines in the file are terminated by newlines the command shown below illustrates the field and line handling options you would use to load the file mysql LOAD DATA INFILE data txt INTO TABLE tbl name FIELDS TERMINATED BY ENCLOSED BY LINES TERMINATED BY n Any of the field or line handling options may specify an empty string If not empty the FIELDS OPTIONALLY ENCLOSED BY and FIELDS ESCAPED BY values must be a single character The FIELDS TERMINATED BY and LINES TERMINATED BY values may be more than one character For example to write lines that are terminated by carriage return linefeed pairs or to read a file containing such lines specify a LINES TERMINATED BY r n clause FIELDS OPTIONALLY ENCLOSED BY controls quoting of fields For output SELECT INTO OUTFILE if you omit the word OPTIONALLY all fields are enclosed by the ENCLOSED BY character An example of such output using a comma as the field delimiter is shown below 1 a string 100 20 2 a string containing a comma 102 20 3 a string containing a quote 102 20 4 a string containing a quote and comma 102 20 If you specify OPTIONALLY the ENCLOSED BY character is used only to enclose CHAR and VARCHAR fields 1 a string 100 20 2 a string containing a comma 102 20 3 a string containing a quote 102 20 4 a string containing a quote and comma 102 20 Note that occurrences of the ENCLOSED BY character within a field value are escaped by prefixing them with the ESCAPED BY character Also note that if you specify an empty ESCAPED BY value it is possible to generate output that cannot be read properly by LOAD DATA INFILE For example the output just shown above would appear as shown below if the escape character is empty Observe that the second field in the fourth line contains a comma following the quote which erroneously appears to terminate the field 1 a string 100 20 2 a string containing a comma 102 20 3 a string containing a quote 102 20 4 a string containing a quote and comma 102 20 For input the ENCLOSED BY character if present is stripped from the ends of field values This is true whether or not OPTIONALLY is specified OPTIONALLY has no effect on input interpretation Occurrences of the ENCLOSED BY character preceded by the ESCAPED BY character are interpreted as part of the current field value In addition duplicated ENCLOSED BY characters occurring within fields are interpreted as single ENCLOSED BY characters if the field itself starts with that character For example if ENCLOSED BY is specified quotes are handled as shown below The BIG boss The BIG boss The BIG boss The BIG boss The BIG boss The BIG boss FIELDS ESCAPED BY controls how to write or read special characters If the FIELDS ESCAPED BY character is not empty it is used to prefix the following characters on output The FIELDS ESCAPED BY character The FIELDS OPTIONALLY ENCLOSED BY character The first character of the FIELDS TERMINATED BY and LINES TERMINATED BY values ASCII 0 what is actually written following the escape character is ASCII 0 not a zero valued byte If the FIELDS ESCAPED BY character is empty no characters are escaped It is probably not a good idea to specify an empty escape character particularly if field values in your data contain any of the characters in the list just given For input if the FIELDS ESCAPED BY character is not empty occurrences of that character are stripped and the following character is taken literally as part of a field value The exceptions are an escaped 0 or N e g 0 or N if the escape character is These sequences are interpreted as ASCII 0 a zero valued byte and NULL See below for the rules on NULL handling For more information about escape syntax see section 590 7 1 Literals how to write strings and numbers In certain cases field and line handling options interact If LINES TERMINATED BY is an empty string and FIELDS TERMINATED BY is non empty lines are also terminated with FIELDS TERMINATED BY If the FIELDS TERMINATED BY and FIELDS ENCLOSED BY values are both empty a fixed row non delimited format is used With fixed row format no delimiters are used between fields Instead column values are written and read using the display widths of the columns For example if a column is declared as INT 7 values for the column are written using 7 character fields On input values for the column are obtained by reading 7 characters Fixed row format also affects handling of NULL values see below Handling of NULL values varies depending on the FIELDS and LINES options you use For the default FIELDS and LINES values NULL is written as N for output and N is read as NULL for input assuming the ESCAPED BY character is If FIELDS ENCLOSED BY is not empty a field containing the literal word NULL as its value is read as a NULL value this differs from the word NULL enclosed within FIELDS ENCLOSED BY characters which is read as the string NULL If FIELDS ESCAPED BY is empty NULL is written as the word NULL With fixed row format which happens when FIELDS TERMINATED BY and FIELDS ENCLOSED BY are both empty NULL is written as an empty string Note that this causes both NULL values and empty strings in the table to be indistinguishable when written to the file since they are both written as empty strings If you need to be able to tell the two apart when reading the file back in you should not use fixed row format Some cases are not supported by LOAD DATA INFILE Fixed size rows FIELDS TERMINATED BY and FIELDS ENCLOSED BY both empty and BLOB or TEXT columns If you specify one separator that is the same as or a prefix of another LOAD DATA INFILE won t be able to interpret the input properly For example the following FIELDS clause would cause problems FIELDS TERMINATED BY ENCLOSED BY If FIELDS ESCAPED BY is empty a field value that contains an occurrence of FIELDS ENCLOSED BY or LINES TERMINATED BY followed by the FIELDS TERMINATED BY value will cause LOAD DATA INFILE to stop reading a field or line too early This happens because LOAD DATA INFILE cannot properly determine where the field or line value ends The following example loads all columns of the persondata table mysql LOAD DATA INFILE persondata txt INTO TABLE persondata No field list is specified so LOAD DATA INFILE expects input rows to contain a field for each table column The default FIELDS and LINES values are used If you wish to load only some of a table s columns specify a field list mysql LOAD DATA INFILE persondata txt INTO TABLE persondata col1 col2 You must also specify a field list if the order of the fields in the input file differs from the order of the columns in the table Otherwise MySQL cannot tell how to match up input fields with table columns If a row has too few fields the columns for which no input field is present are set to default values Default value assignment is described in section 591 7 6 CREATE TABLE syntax An empty field value is interpreted differently than if the field value is missing For string types the column is set to the empty string For numeric types the column is set to 0 For date and time types the column is set to the appropriate zero value for the type See section 592 7 2 6 Date and time types TIMESTAMP columns are only set to the current date and time if there is a NULL value for the column or for the first TIMESTAMP column only if the TIMESTAMP column is left out from the field list when a field list is specified If an input row has too many fields the extra fields are ignored and the number of warnings is incremented LOAD DATA INFILE regards all input as strings so you can t use numeric values for ENUM or SET columns the way you can with INSERT statements All ENUM and SET values must be specified as strings If you are using the C API you can get information about the query by calling the API function mysql info when the LOAD DATA INFILE query finishes The format of the information string is shown below Records 1 Deleted 0 Skipped 0 Warnings 0 Warnings occur under the same circumstances as when values are inserted via the INSERT statement see section 593 7 13 INSERT syntax except that LOAD DATA INFILE also generates warnings when there are too few or too many fields in the input row The warnings are not stored anywhere the number of warnings can only be used as an indication if everything went well If you get warnings and want to know exactly why you got them one way to do this is to use SELECT INTO OUTFILE into another file and compare this to your original input file For more information about the efficiency of INSERT versus LOAD DATA INFILE and speeding up LOAD DATA INFILE see section 594 10 11 How to arrange a table to be as fast small as possible 595 7 16 UPDATE syntax UPDATE LOW PRIORITY tbl name SET col name1 expr1 col name2 expr2 WHERE where definition UPDATE updates columns in existing table rows with new values The SET clause indicates which columns to modify and the values they should be given The WHERE clause if given specifies which rows should be updated Otherwise all rows are updated If you specify the keyword LOW PRIORITY execution of the UPDATE is delayed until no other clients are reading from the table If you access a column from tbl name in an expression UPDATE uses the current value of the column For example the following statement sets the age column to one more than its current value mysql UPDATE persondata SET age age 1 UPDATE assignments are evaluated from left to right For example the following statement doubles the age column then increments it mysql UPDATE persondata SET age age 2 age age 1 If you set a column to the value it currently has MySQL notices this and doesn t update it UPDATE returns the number of rows that were actually changed In MySQL 3 22 or later the C API function mysql info returns the number of rows that were matched and updated and the number of warnings that occurred during the UPDATE 596 7 17 USE syntax USE db name The USE db name statement tells MySQL to use the db name database as the default database for subsequent queries The database remains current until the end of the session or until another USE statement is issued mysql USE db1 mysql SELECT count FROM mytable selects from db1 mytable mysql USE db2 mysql SELECT count FROM mytable selects from db2 mytable Making a particular database current by means of the USE statement does not preclude you from accessing tables in other databases The example below accesses the author table from the db1 database and the editor table from the db2 database mysql USE db1 mysql SELECT author name editor name FROM author db2 editor WHERE author editor id db2 editor editor id The USE statement is provided for Sybase compatibility 597 7 18 FLUSH syntax clearing caches FLUSH flush option flush option You should use the FLUSH command if you want to clear some of the internal caches MySQL uses To execute FLUSH you must have the reload privilege flush option can be any of the following HOSTS Empties the host cache tables You should flush the host tables if some of your hosts change IP number or if you get the error message Host is blocked When more than max connect errors errors occur in a row for a given host while connection to the MySQL server MySQL assumes something is wrong and blocks the host from further connection requests Flushing the host tables allows the host to attempt to connect again See section 598 17 2 3 Host is blocked error You can start mysqld with O max connection errors 999999999 to avoid this error message LOGS Closes and reopens the standard and update log files If you have specified the update log file without an extension the extension number of the new update log file will be incremented by one relative to the previous file PRIVILEGES Reloads the privileges from the grant tables in the mysql database TABLES Closes all open tables STATUS Resets most status variables to zero You can also access each of the commands shown above with the mysqladmin utility using the flush hosts flush logs reload or flush tables commands 599 7 19 KILL syntax KILL thread id Each connection to mysqld runs in a separate thread You can see which threads are running with the SHOW PROCESSLIST command and kill a thread with the KILL thread id command If you have the process privilege you can see and kill all threads Otherwise you can see and kill only your own threads You can also use the mysqladmin processlist and mysqladmin kill commands to examine and kill threads 600 7 20 SHOW syntax Get information about tables columns SHOW DATABASES LIKE wild or SHOW TABLES FROM db name LIKE wild or SHOW COLUMNS FROM tbl name FROM db name LIKE wild or SHOW INDEX FROM tbl name FROM db name or SHOW STATUS or SHOW VARIABLES LIKE wild or SHOW PROCESSLIST or SHOW TABLE STATUS FROM db name LIKE wild SHOW provides information about databases tables columns or the server If the LIKE wild part is used the wild string can be a string that uses the SQL and wildcard characters You can use db name tbl name as an alternative to the tbl name FROM db name syntax These two statements are equivalent mysql SHOW INDEX FROM mytable FROM mydb mysql SHOW INDEX FROM mydb mytable SHOW DATABASES lists the databases on the MySQL server host You can also get this list using the mysqlshow command SHOW TABLES lists the tables in a given database You can also get this list using the mysqlshow db name command Note If a user doesn t have any privileges for a table the table will not show up in the output from SHOW TABLES or mysqlshow db name SHOW COLUMNS lists the columns in a given table If the column types are different than you expect them to be based on a CREATE TABLE statement note that MySQL sometimes changes column types See section 601 7 6 1 Silent column specification changes The DESCRIBE statement provides information similar to SHOW COLUMNS See section 602 7 22 DESCRIBE syntax Get information about columns SHOW TABLE STATUS new in 3 23 works likes SHOW STATUS but provides a lot of information about each table You can also get this list using the mysqlshow status db name command The following columns are returned Name Name of the table Type Type of table NISAM MyISAM or HEAP Rows Number of rows Avg row length Average row length Data length Length of the data file Max data length Max length of the data file Index length Length of the index file Data free Number of allocated but not used bytes Auto increment Next autoincrement value Create time When the table was created Update time When the data file was last updated Check time When one last run a check on the table Create min rows The min rows option used when creating the table Create max rows The max rows option used when creating the table Create avg row length The avg row length option used when creating the table Comment The comment used when creating the table or some information why MySQL couldn t access the table information SHOW FIELDS is a synonym for SHOW COLUMNS and SHOW KEYS is a synonym for SHOW INDEX You can also list a table s columns or indexes with mysqlshow db name tbl name or mysqlshow k db name tbl name SHOW INDEX returns the index information in a format that closely resembles the SQLStatistics call in ODBC The following columns are returned Table Name of the table Non unique 0 if the index can t contain duplicates Key name Name of the index Seq in index Column sequence number in index starting with 1 Column name Column name Collation How the column is sorted in the index In MySQL this can have values A Ascending or NULL Not sorted Cardinality Number of unique values in the index This is updated by running isamchk a Sub part Number of indexed characters if the column is only partly indexed NULL if the entire key is indexed SHOW STATUS provides server status information like mysqladmin extended status The output resembles that shown below though the format and numbers may differ somewhat Variable name Value Aborted clients 0 Aborted connects 0 Created tmp tables 0 Delayed insert threads 0 Delayed writes 0 Delayed errors 0 Flush commands 2 Handler delete 2 Handler read first 0 Handler read key 1 Handler read next 0 Handler read rnd 35 Handler update 0 Handler write 2 Key blocks used 0 Key read requests 0 Key reads 0 Key write requests 0 Key writes 0 Max used connections 1 Not flushed key blocks 0 Not flushed delayed rows 0 Open tables 1 Open files 2 Open streams 0 Opened tables 11 Questions 14 Running threads 1 Slow queries 0 Uptime 149111 The status variables listed above have the following meaning Aborted clients Number of connections that has been aborted because the client has died without closing the connection properly Aborted connects Number of tries to connect to the MySQL server that has failed Created tmp tables Number of implicit temporary tables that has been created while executing statements Delayed insert threads Number of delayed insert handler threads in use Delayed writes Number of rows written with INSERT DELAYED Delayed errors Number of rows written with INSERT DELAYED for which some error occurred probably duplicate key Flush commands Number of executed FLUSH commands Handler delete Number of requests to delete a row from a table Handler read first Number of request to read first the row in a table Handler read key Number of request to read a row based on a key Handler read next Number of request to read next row in key order Handler read rnd Number of request to read a row based on a fixed position Handler update Number of requests to update a row in a table Handler write Number of requests to insert a row in a table Key blocks used The number of used blocks in the key cache Key read requests The number of request to read a key block from the cache Key reads The number of physical reads of a key block from disk Key write requests The number of request to write a key block to the cache Key writes The number of physical writes of a key block to disk Max used connections The maximum number of connections that has been in use simultaneously Not flushed key blocks Keys blocks in the key cache that has changed but hasn t yet been flushed to disk Not flushed delayed rows Number of rows waiting to be written in INSERT DELAY queues Open tables Number of tables that are open Open files Number of files that are open Open streams Number of streams that are open used mainly for logging Opened tables Number of tables that has been opened Questions Number of questions asked from to the server Running threads Number of currently open connections Slow queries Number of queries that has taken more than long query time Uptime How many seconds the server has been up Some comments about the above If Opened tables is big then your table cache variable is probably too small If key reads is big then your key cache is probably too small The cache hit rate can be calculated with key reads key read requests If Handler read rnd is big then you have a probably a lot of queries that requires MySQL to scan whole tables or you have joins that doesn t use keys properly SHOW VARIABLES shows the values of the some of MySQL system variables You can also get this information using the mysqladmin variables command If the default values are unsuitable you can set most of these variables using command line options when mysqld starts up The output resembles that shown below though the format and numbers may differ somewhat Variable name Value back log 5 connect timeout 5 basedir my monty datadir my monty data delayed insert limit 100 delayed insert timeout 300 delayed queue size 1000 join buffer size 131072 flush time 0 key buffer size 1048540 language my monty share english log OFF log update OFF long query time 10 low priority updates OFF max allowed packet 1048576 max connections 100 max connect errors 10 max delayed threads 20 max heap table size 16777216 max join size 4294967295 max sort length 1024 max tmp tables 32 net buffer length 16384 port 3306 protocol version 10 record buffer 131072 skip locking ON socket tmp mysql sock sort buffer 2097116 table cache 64 thread stack 131072 tmp table size 1048576 tmpdir machine tmp version 3 23 0 alpha debug wait timeout 28800 See section 603 10 1 Tuning server parameters SHOW PROCESSLIST shows you which threads are running You can also get this information using the mysqladmin processlist command If you have the process privilege you can see all threads Otherwise you can see only your own threads See section 604 7 19 KILL syntax 605 7 21 EXPLAIN syntax Get information about a SELECT EXPLAIN SELECT select options When you precede a SELECT statement with the keyword EXPLAIN MySQL explains how it would process the SELECT providing information about how tables are joined and in which order With the help of EXPLAIN you can see when you must add indexes to tables to get a faster SELECT that uses indexes to find the records You can also see if the optimizer joins the tables in an optimal order To force the optimizer to use a specific join order for a SELECT statement add a STRAIGHT JOIN clause For non simple joins EXPLAIN returns a row of information for each table used in the SELECT statement The tables are listed in the order they would be read MySQL resolves all joins using a single sweep multi join method This means that MySQL reads a row from the first table then finds a matching row in the second table then in the third table and so on When all tables are processed it outputs the selected columns and backtracks through the table list until a table is found for which there are more matching rows The next row is read from this table and the process continues with the next table Output from EXPLAIN includes the following columns table The table to which the row of output refers type The join type Information about the various types is given below possible keys The possible keys column indicates which indexes MySQL could use to find the rows in the table If this column is empty there are no relevant indexes In this case you may be able to improve the performance of your query by examining the WHERE clause to see if it refers to some column or columns that would be suitable for indexing If so create an appropriate index and check the query with EXPLAIN again To see what indexes a table has use SHOW INDEX FROM tbl name key The key column indicates the key that MySQL actually decided to use The key is NULL if no index was chosen key len The key len column indicates the length of the key that MySQL decided to use The length is NULL if the key is NULL ref The ref column shows which columns or constants are used with the key to select rows from the table rows The rows column indicates the number of rows MySQL must examine to execute the query Extra If the Extra column includes the text Only index this means that information is retrieved from the table using only information in the index tree Normally this is much faster than scanning the entire table If the Extra column includes the text where used it means that a WHERE clause will be used to restrict which rows will be matched against the next table or sent to the client The different join types are listed below ordered from best to worst type system The table has only one row system table This is a special case of the const join type const The table has at most one matching row which will be read at the start of the query Since there is only one row values from the column in this row can be regarded as constants by the rest of the optimizer const tables are very fast as they are read only once eq ref One row will be read from this table for each combination of rows from the previous tables This the best possible join type other than the const types It is used when all parts of an index are used by the join and the index is UNIQUE or a PRIMARY KEY ref All rows with matching index values will be read from this table for each combination of rows from the previous tables ref is used if the join uses only a leftmost prefix of the key or if the key is not UNIQUE or a PRIMARY KEY in other words if the join cannot select a single row based on the key value If the key that is used matches only a few rows this join type is good range Only rows that are in a given range will be retrieved using an index to select the rows The ref column indicates which index is used index This is the same as ALL except that only the index tree is scanned This is usually faster than ALL as the index file is usually smaller than the data file ALL A full table scan will be done for each combination of rows from the previous tables This is normally not good if the table is the first table not marked const and usually very bad in all other cases You normally can avoid ALL by adding more indexes so that the row can be retrieved based on constant values or column values from earlier tables You can get a good indication of how good a join is by multiplying all values in the rows column of the EXPLAIN output This should tell you roughly how many rows MySQL must examine to execute the query This number is also used when you restrict queries with the max join size variable See section 606 10 1 Tuning server parameters The following example shows how a JOIN can be optimized progressively using the information provided by EXPLAIN Suppose you have the SELECT statement shown below that you examine using EXPLAIN EXPLAIN SELECT tt TicketNumber tt TimeIn tt ProjectReference tt EstimatedShipDate tt ActualShipDate tt ClientID tt ServiceCodes tt RepetitiveID tt CurrentProcess tt CurrentDPPerson tt RecordVolume tt DPPrinted et COUNTRY et 1 COUNTRY do CUSTNAME FROM tt et et AS et 1 do WHERE tt SubmitTime IS NULL AND tt ActualPC et EMPLOYID AND tt AssignedPC et 1 EMPLOYID AND tt ClientID do CUSTNMBR For this example assume that The columns being compared have been declared as follows Table Column Column type tt ActualPC CHAR 10 tt AssignedPC CHAR 10 tt ClientID CHAR 10 et EMPLOYID CHAR 15 do CUSTNMBR CHAR 15 The tables have the indexes shown below Table Index tt ActualPC tt AssignedPC tt ClientID et EMPLOYID primary key do CUSTNMBR primary key The tt ActualPC values aren t evenly distributed Initially before any optimizations have been performed the EXPLAIN statement produces the following information table type possible keys key key len ref rows Extra et ALL PRIMARY NULL NULL NULL 74 do ALL PRIMARY NULL NULL NULL 2135 et 1 ALL PRIMARY NULL NULL NULL 74 tt ALL AssignedPC ClientID ActualPC NULL NULL NULL 3872 range checked for each record key map 35 Since type is ALL for each table this output indicates that MySQL is doing a full join for all tables This will take quite a long time as the product of the number of rows in each table must be examined For the case at hand this is 74 2135 74 3872 45 268 558 720 rows If the tables were bigger you can only imagine how long it would take One problem here is that MySQL can t yet use indexes on columns efficiently if they are declared differently In this context VARCHAR and CHAR are the same unless they are declared as different lengths Since tt ActualPC is declared as CHAR 10 and et EMPLOYID is declared as CHAR 15 there is a length mismatch To fix this disparity between column lengths use ALTER TABLE to lengthen ActualPC from 10 characters to 15 characters mysql ALTER TABLE tt MODIFY ActualPC VARCHAR 15 Now tt ActualPC and et EMPLOYID are both VARCHAR 15 Executing the EXPLAIN statement again produces this result table type possible keys key key len ref rows Extra tt ALL AssignedPC ClientID ActualPC NULL NULL NULL 3872 where used do ALL PRIMARY NULL NULL NULL 2135 range checked for each record key map 1 et 1 ALL PRIMARY NULL NULL NULL 74 range checked for each record key map 1 et eq ref PRIMARY PRIMARY 15 tt ActualPC 1 This is not perfect but is much better the product of the rows values is now less by a factor of 74 This version is executed in a couple of seconds A second alteration can be made to eliminate the column length mismatches for the tt AssignedPC et 1 EMPLOYID and tt ClientID do CUSTNMBR comparisons mysql ALTER TABLE tt MODIFY AssignedPC VARCHAR 15 MODIFY ClientID VARCHAR 15 Now EXPLAIN produces the output shown below table type possible keys key key len ref rows Extra et ALL PRIMARY NULL NULL NULL 74 tt ref AssignedPC ClientID ActualPC ActualPC 15 et EMPLOYID 52 where used et 1 eq ref PRIMARY PRIMARY 15 tt AssignedPC 1 do eq ref PRIMARY PRIMARY 15 tt ClientID 1 This is almost as good as it can get The remaining problem is that by default MySQL assumes that values in the tt ActualPC column are evenly distributed and that isn t the case for the tt table Fortunately it is easy to tell MySQL about this shell isamchk analyze PATH TO MYSQL DATABASE tt shell mysqladmin refresh Now the join is perfect and EXPLAIN produces this result table type possible keys key key len ref rows Extra tt ALL AssignedPC ClientID ActualPC NULL NULL NULL 3872 where used et eq ref PRIMARY PRIMARY 15 tt ActualPC 1 et 1 eq ref PRIMARY PRIMARY 15 tt AssignedPC 1 do eq ref PRIMARY PRIMARY 15 tt ClientID 1 Note that the rows column in the output from EXPLAIN is an educated guess from the MySQL join optimizer To optimize a query you should check if the numbers are even close to the truth If not you may get better performance by using STRAIGHT JOIN in your SELECT statement and trying to list the tables in a different order in the FROM clause 607 7 22 DESCRIBE syntax Get information about columns DESCRIBE DESC tbl name col name wild DESCRIBE provides information about a table s columns col name may be a column name or a string containing the SQL and wildcard characters If the column types are different than you expect them to be based on a CREATE TABLE statement note that MySQL sometimes changes column types See section 608 7 6 1 Silent column specification changes This statement is provided for Oracle compatibility The SHOW statement provides similar information See section 609 7 20 SHOW syntax Get information about tables columns 610 7 23 LOCK TABLES UNLOCK TABLES syntax LOCK TABLES tbl name AS alias READ LOW PRIORITY WRITE tbl name READ LOW PRIORITY WRITE UNLOCK TABLES LOCK TABLES locks tables for the current thread UNLOCK TABLES releases any locks held by the current thread All tables that are locked by the current thread are automatically unlocked when the thread issues another LOCK TABLES or when the connection to the server is closed If a thread obtains a READ lock on a table that thread and all other threads can only read from the table If a thread obtains a WRITE lock on a table then only the thread holding the lock can READ from or WRITE to the table Other threads are blocked Each thread waits without timing out until it obtains all the locks it has requested WRITE locks normally have higher priority than READ locks to ensure that updates are processed as soon as possible This means that if one thread obtains a READ lock and then another thread requests a WRITE lock subsequent READ lock requests will wait until the WRITE thread has gotten the lock and released it You can use LOW PRIORITY WRITE locks to allow other threads to obtain READ locks while the thread is waiting for the WRITE lock You should only use LOW PRIORITY WRITE locks if you are sure that there will eventually be a time when no threads will have a READ lock When you use LOCK TABLES you must lock all tables that you are going to use If you are using a table multiple times in a query with aliases you must get a lock for each alias This policy ensures that table locking is deadlock free Note that you should NOT lock any tables that you are using with INSERT DELAYED This is because that in this case the INSERT is done by a separate thread Normally you don t have to lock tables as all single UPDATE statements are atomic no other thread can interfere with any other currently executing SQL statement There are a few cases when you would like to lock tables anyway If you are going to run many operations on a bunch of tables it s much faster to lock the tables you are going to use The downside is of course that no other thread can update a READ locked table and no other thread can read a WRITE locked table MySQL doesn t support a transaction environment so you must use LOCK TABLES if you want to ensure that no other thread comes between a SELECT and an UPDATE The example shown below requires LOCK TABLES in order to execute safely mysql LOCK TABLES trans READ customer WRITE mysql select sum value from trans where customer id some id mysql update customer set total value sum from previous statement where customer id some id mysql UNLOCK TABLES Without LOCK TABLES there is a chance that another thread might insert a new row in the trans table between execution of the SELECT and UPDATE statements By using incremental updates UPDATE customer SET value value new value or the LAST INSERT ID function you can avoid using LOCK TABLES in many cases You can also solve some cases by using the user level lock functions GET LOCK and RELEASE LOCK These locks are saved in a hash table in the server and implemented with pthread mutex lock and pthread mutex unlock for high speed See section 611 7 3 12 Miscellaneous functions See section 612 10 10 How MySQL locks tables for more information on locking policy 613 7 24 SET OPTION syntax SET OPTION SQL VALUE OPTION value SET OPTION sets various options that affect the operation of the server or your client Any option you set remains in effect until the current session ends or until you set the option to a different value CHARACTER SET character set name DEFAULT This maps all strings from and to the client with the given mapping Currently the only option for character set name is cp1251 koi8 but you can easily add new mappings by editing the sql convert cc file in the MySQL source distribution The default mapping can be restored by using a character set name value of DEFAULT Note that the syntax for setting the CHARACTER SET option differs from the syntax for setting the other options PASSWORD PASSWORD some password Set the password for the current user Any non anonymous user can change his own password PASSWORD FOR user PASSWORD some password Set the password for a specific user on the current server host Only a user with access to the mysql database can do this The user should be given in user hostname format where user and hostname are exactly as they are listed in the User and Host columns of the mysql user table entry For example if you had an entry with User and Host fields of bob and loc gov you would write mysql SET PASSWORD FOR bob loc gov PASSWORD newpass SQL BIG TABLES 0 1 If set to 1 all temporary tables are stored on disk rather than in memory This will be a little slower but you will not get the error The table tbl name is full for big SELECT operations that require a large temporary table The default value for a new connection is 0 i e use in memory temporary tables SQL BIG SELECTS 0 1 If set to 1 MySQL will abort if a SELECT is attempted that probably will take a very long time This is useful when an inadvisable WHERE statement has been issued A big query is defined as a SELECT that probably will have to examine more than max join size rows The default value for a new connection is 0 which will allow all SELECT statements SQL LOW PRIORITY UPDATES 0 1 If set to 1 all INSERT UPDATE and DELETE statements wait until there is no pending SELECT on the affected table SQL SELECT LIMIT value DEFAULT The maximum number of records to return from SELECT statements If a SELECT has a LIMIT clause the LIMIT takes precedence over the value of SQL SELECT LIMIT The default value for a new connection is unlimited If you have changed the limit the default value can be restored by using a SQL SELECT LIMIT value of DEFAULT SQL LOG OFF 0 1 If set to 1 no logging will be done to the standard log for this client if the client has the process privilege This does not affect the update log SQL LOG UPDATE 0 1 If set to 0 no logging will be done to the update log for the client if the client has the process privilege This does not affect the standard log TIMESTAMP timestamp value DEFAULT Set the time for this client This is used to get the original timestamp if you use the update log to restore rows LAST INSERT ID Set the value to be returned from LAST INSERT ID This is stored in the update log when you use LAST INSERT ID in a command that updates a table INSERT ID Set the value to be used by the following INSERT command when inserting an AUTO INCREMENT value This is mainly used with the update log 614 7 25 GRANT and REVOKE syntax GRANT priv type column list priv type column list ON tbl name db name TO user name IDENTIFIED BY password user name IDENTIFIED BY password WITH GRANT OPTION REVOKE priv type column list priv type column list ON tbl name db name FROM user name user name GRANT is implemented in MySQL 3 22 11 or later For earlier MySQL versions the GRANT statement does nothing The GRANT and REVOKE commands allow system administrators to grant and revoke rights to MySQL users at four privilege levels Global level Global privileges apply to all databases on a given server These privileges are stored in the mysql user table Database level Database privileges apply to all tables in a given database These privileges are stored in the mysql db and mysql host tables Table level Table privileges apply to all columns in a given table These privileges are stored in the mysql tables priv table Column level Column privileges apply to single columns in a given table These privileges are stored in the mysql columns priv table For examples of how GRANT works see section 615 6 11 Adding new user privileges to MySQL For the GRANT and REVOKE statements priv type may be specified as any of the following ALL PRIVILEGES FILE RELOAD ALTER INDEX SELECT CREATE INSERT SHUTDOWN DELETE PROCESS UPDATE DROP REFERENCES USAGE ALL is a synonym for ALL PRIVILEGES REFERENCES is not yet implemented USAGE is currently a synonym for no privileges It can be used when you want to create a user that has no privileges To revoke the grant privilege from a user use a priv type value of GRANT OPTION REVOKE GRANT OPTION ON FROM The only priv type values you can specify for a table are SELECT INSERT UPDATE DELETE CREATE DROP GRANT INDEX and ALTER The only priv type values you can specify for a column that is when you use a column list clause are SELECT INSERT and UPDATE You can set global privileges by using ON syntax You can set database privileges by using ON db name syntax If you specify ON and you have a current database you will set the privileges for that database Warning If you specify ON and you don t have a current database you will affect the global privileges In order to accommodate granting rights to users from arbitrary hosts MySQL supports specifying the user name value in the form user host If you want to specify a user string containing special characters such as or a host string containing special characters or wildcard characters such as you can quote the user or host name e g test user test hostname You can specify wildcards in the hostname For example user loc gov applies to user for any host in the loc gov domain and user 144 155 166 applies to user for any host in the 144 155 166 class C subnet The simple form user is a synonym for user Note If you allow anonymous users to connect to the MySQL server which is the default you should also add all local users as user localhost because otherwise the anonymous user entry for the local host in the mysql user table will be used when the user tries to log into the MySQL server from the local machine Anonymous users are defined by inserting entries with User into the mysql user table You can verify if this applies to you by executing this query mysql SELECT Host User FROM mysql user WHERE User For the moment GRANT only supports host table database and column names up to 60 characters long A user name can be up to 16 characters The privileges for a table or column are formed from the logical OR of the privileges at each of the four privilege levels For example if the mysql user table specifies that a user has a global select privilege this can t be denied by an entry at the database table or column level The privileges for a column can be calculated as follows global privileges OR database privileges AND host privileges OR table privileges OR column privileges In most cases you grant rights to a user at only one of the privilege levels so life isn t normally as complicated as above The details of the privilege checking procedure are presented in section 616 6 The MySQL access privilege system If you grant privileges for a user hostname combination that does not exist in the mysql user table an entry is added and remains there until deleted with a DELETE command In other words GRANT may create user table entries but REVOKE will not remove them you must do that explicitly using DELETE In MySQL 3 22 12 or later if a new user is created or if you have global grant privileges the user s password will be set to the password specified by the IDENTIFIED BY clause if one is given If the user already had a password it is replaced by the new one Warning If you create a new user but do not specify an IDENTIFIED BY clause the user has no password This is insecure Passwords can also be set with the SET PASSWORD command See section 617 7 24 SET OPTION syntax If you grant privileges for a database an entry in the mysql db table is created if needed When all privileges for the database have been removed with REVOKE this entry is deleted If a user doesn t have any privileges on a table the table is not displayed when the user requests a list of tables e g with a SHOW TABLES statement The WITH GRANT OPTION clause gives the user the ability to give to other users any privileges the user has at the specified privilege level You should be careful to whom you give the grant privilege as two users with different privileges may be able to join privileges You cannot grant another user a privilege you don t have yourself the grant privilege allows you to give away only those privileges you possess Be aware that when you grant a user the grant privilege at a particular privilege level any privileges the user already possesses or is given in the future at that level are also grantable by that user Suppose you grant a user the insert privilege on a database If you then grant the select privilege on the database and specify WITH GRANT OPTION the user can give away not only the select privilege but also insert If you then grant the update privilege to the user on the database the user can give away the insert select and update You should not grant alter privileges to a normal user If you do that the user can try to subvert the privilege system by renaming tables Note that if you are using table or column privileges for even one user the server examines table and column privileges for all users and this will slow down MySQL a bit When mysqld starts all privileges are read into memory Database table and column privileges take effect at once and user level privileges take effect the next time the user connects Modifications to the grant tables that you perform using GRANT or REVOKE are noticed by the server immediately If you modify the grant tables manually using INSERT UPDATE etc you should execute a FLUSH PRIVILEGES statement or run mysqladmin flush privileges to tell the server to reload the grant tables See section 618 6 9 When privilege changes take effect The biggest differences between the ANSI SQL and MySQL versions of GRANT are ANSI SQL doesn t have global or database level privileges and ANSI SQL doesn t support all privilege types that MySQL supports When you drop a table in ANSI SQL all privileges for the table are revoked If you revoke a privilege in ANSI SQL all privileges that were granted based on this privilege are also revoked In MySQL privileges can be dropped only with explicit REVOKE commands or by manipulating the MySQL grant tables 619 7 26 CREATE INDEX syntax CREATE UNIQUE INDEX index name ON tbl name col name length The CREATE INDEX statement doesn t do anything in MySQL prior to version 3 22 In 3 22 or later CREATE INDEX is mapped to an ALTER TABLE statement to create indexes See section 620 7 7 ALTER TABLE syntax Normally you create all indexes on a table at the time the table itself is created with CREATE TABLE See section 621 7 6 CREATE TABLE syntax CREATE INDEX allows you to add indexes to existing tables A column list of the form col1 col2 creates a multiple column index Index values are formed by concatenating the values of the given columns For CHAR and VARCHAR columns indexes can be created that use only part of a column using col name length syntax The statement shown below creates an index using the first 10 characters of the name column mysql CREATE INDEX part of name ON customer name 10 Since most names usually differ in the first 10 characters this index should not be much slower than an index created from the entire name column Also using partial columns for indexes can make the index file much smaller which could save a lot of disk space and might also speed up INSERT operations For more information about how MySQL uses indexes see section 622 10 4 How MySQL uses indexes 623 7 27 DROP INDEX syntax DROP INDEX index name DROP INDEX doesn t do anything in MySQL prior to version 3 22 In 3 22 or later DROP INDEX is mapped to an ALTER TABLE statement to drop the index See section 624 7 7 ALTER TABLE syntax 625 7 28 Comment syntax The MySQL server supports the to end of line and in line or multiple line comment styles mysql select 1 1 This comment continues to the end of line mysql select 1 this is an in line comment 1 mysql select 1 this is a multiple line comment 1 Although the server understands the comment syntax just described there are some limitations on the way that the mysql client parses comments Single quote and double quote characters are taken to indicate the beginning of a quoted string even within a comment If the quote is not matched by a second quote within the comment the parser doesn t realize the comment has ended If you are running mysql interactively you can tell that it has gotten confused like this because the prompt changes from mysql to or A semicolon is taken to indicate the end of the current SQL statement and anything following it to indicate the beginning of the next statement These limitations apply both when you run mysql interactively and when you put commands in a file and tell mysql to read its input from that file with mysql some file MySQL doesn t support the ANSI SQL comment style See section 626 5 3 7 as the start of a comment 627 7 29 CREATE FUNCTION DROP FUNCTION syntax CREATE FUNCTION function name RETURNS STRING REAL INTEGER SONAME shared library name DROP FUNCTION function name A user definable function UDF is a way to extend MySQL with a new function that works like native built in MySQL functions such as ABS and CONCAT CREATE FUNCTION saves the function s name type and shared library name in the mysql func system table You must have the insert and delete privileges for the mysql database to create and drop functions All active functions are reloaded each time the server starts unless you start mysqld with the skip grant tables option In this case UDF initialization is skipped and UDFs are unavailable An active function is one that has been loaded with CREATE FUNCTION and not removed with DROP FUNCTION For instructions on writing user definable functions see section 628 14 Adding new functions to MySQL For the UDF mechanism to work functions must be written in C or C and your operating system must support dynamic loading 629 7 30 Is MySQL picky about reserved words A common problem stems from trying to create a table with column names that use the names of datatypes or functions built into MySQL such as TIMESTAMP or GROUP You re allowed to do it for example ABS is an allowed column name but whitespace is not allowed between a function name and the when using functions whose names are also column names The following words are explicitly reserved in MySQL Most of them are forbidden by ANSI SQL92 as column and or table names for example group A few are reserved because MySQL needs them and is currently using a yacc parser action add all alter after and as asc auto increment between bigint bit binary blob bool both by cascade char character change check column columns constraint create cross current date current time current timestamp data database databases date datetime day day hour day minute day second dayofmonth dayofweek dayofyear dec decimal default delete desc describe distinct distinctrow double drop escaped enclosed enum explain exists fields first float float4 float8 foreign from for full function grant group having hour hour minute hour second ignore in index infile insert int integer interval int1 int2 int3 int4 int8 into if is join key keys last insert id leading left like lines limit load lock long longblob longtext low priority match mediumblob mediumtext mediumint middleint minute minute second month monthname natural numeric no not null on option optionally or order outer outfile partial password precision primary procedure processlist privileges quarter read real references rename regexp reverse repeat replace restrict returns rlike second select set show smallint soname sql big tables sql big selects sql select limit sql low priority updates sql log off sql log update straight join starting status string table tables terminated text time timestamp tinyblob tinytext tinyint trailing to use using unique unlock unsigned update usage values varchar variables varying varbinary with write where year year month zerofill The following symbols from the table above are disallowed by ANSI SQL but allowed by MySQL as column table names This is because some of these names are very natural names and a lot of people have already used them ACTION BIT DATE ENUM NO TEXT TIME TIMESTAMP 630 8 MySQL Tutorial This chapter provides a tutorial introduction to MySQL by showing how to use the mysql client program to create and use a simple database mysql sometimes referred to as the terminal monitor or just monitor is an interactive program that allows you to connect to a MySQL server run queries and view the results mysql may also be used in batch mode you place your queries in a file beforehand then tell mysql to execute the contents of the file Both ways of using mysql are covered here To see a list of options provided by mysql invoke it with the help option shell mysql help This chapter assumes that mysql is installed on your machine and that a MySQL server is available to which you can connect If this is not true contact your MySQL administrator If you are the administrator you will need to consult other sections of this manual The chapter describes the entire process of setting up and using a database If you are interested only in accessing an already existing database you may want to skip over the sections that describe how to create the database and the tables it contains Since this chapter is tutorial in nature many details are necessarily left out Consult the relevant sections of the manual for more information on the topics covered here 631 8 1 Connecting to and disconnecting from the server To connect to the server you ll usually need to provide a MySQL user name when you invoke mysql and most likely a password If the server runs on a machine other than the one where you log in you ll also need to specify a hostname Contact your administrator to find out what connection parameters you should use to connect i e what host user name and password to use Once you know the proper parameters you should be able to connect like this shell mysql h host u user p Enter password The represents your password enter it when mysql displays the Enter password prompt If that works you should see some introductory information followed by a mysql prompt shell mysql h host u user p Enter password Welcome to the MySQL monitor Commands end with or g Your MySQL connection id is 459 to server version 3 22 20a log Type help for help mysql The prompt tells you that mysql is ready for you to enter commands Some MySQL installations allow users to connect as the anonymous unnamed user to the server running on the local host If this is the case on your machine you should be able to connect to that server by invoking mysql without any options shell mysql After you have connected successfully you can disconnect any time by typing QUIT at the mysql prompt mysql QUIT Bye You can also disconnect by typing control D Most examples in the following sections assume you are connected to the server They indicate this by the mysql prompt 632 8 2 Entering queries Make sure you are connected to the server as discussed in the previous section Doing so will not in itself select any database to work with but that s okay At this point it s more important to find out a little about how to issue queries than to jump right in creating tables loading data into them and retrieving data from them This section describes the basic principles of entering commands using several queries you can try out to familiarize yourself with how mysql works Here s a simple command that asks the server to tell you its version number and the current date Type it in as shown below following the mysql prompt and hit the RETURN key mysql SELECT VERSION CURRENT DATE version CURRENT DATE 3 22 20a log 1999 03 19 1 row in set 0 01 sec mysql This query illustrates several things about mysql A command normally consists of a SQL statement followed by a semicolon There are some exceptions where a semicolon is not needed QUIT mentioned earlier is one of them We ll get to others later When you issue a command mysql sends it to the server for execution and displays the results then prints another mysql to indicate that it is ready for another command mysql displays query output as a table rows and columns The first row contains labels for the columns The rows following are the query results Normally column labels are the names of the columns you fetch from database tables If you re retrieving the value of an expression rather than a table column as in the example just shown mysql labels the column using the expression itself mysql shows how many rows were returned and how long the query took to execute which gives you a rough idea of server performance These values are imprecise because they represent wall clock time not CPU or machine time and because they are affected by factors such as server load and network latency For brevity the rows in set line is not shown in the remaining examples in this chapter Keywords may be entered in any lettercase The following queries are equivalent mysql SELECT VERSION CURRENT DATE mysql select version current date mysql SeLeCt vErSiOn current DATE Here s another query It demonstrates that you can use mysql as a simple calculator mysql SELECT SIN PI 4 4 1 5 SIN PI 4 4 1 5 0 707107 25 The commands shown thus far have been relatively short single line statements You can even enter multiple statements on a single line Just end each one with a semicolon mysql SELECT VERSION SELECT NOW version 3 22 20a log NOW 1999 03 19 00 15 33 A command need not be given all on a single line so lengthy commands that require several lines are not a problem mysql determines where your statement ends by looking for the terminating semicolon not by looking for the end of the input line In other words mysql accepts free format input it collects input lines but does not execute them until it sees the semicolon Here s a simple multiple line statement mysql SELECT USER CURRENT DATE USER CURRENT DATE joesmith localhost 1999 03 18 In this example notice how the prompt changes from mysql to after you enter the first line of a multiple line query This is how mysql indicates that it hasn t seen a complete statement and is waiting for the rest The prompt is your friend because it provides valuable feedback If you use that feedback you will always be aware of what mysql is waiting for If you decide you don t want to execute a command that you are in the process of entering cancel it by typing c mysql SELECT USER c mysql Here too notice the prompt It switches back to mysql after you type c providing feedback to indicate that mysql is ready for a new command The following table shows each of the prompts you may see and summarizes what they mean about the state that mysql is in Prompt Meaning mysql Ready for new command Waiting for next line of multiple line command Waiting for next line collecting a string that begins with a single quote Waiting for next line collecting a string that begins with a double quote Multiple line statements commonly occur by accident when you intend to issue a command on a single line but forget the terminating semicolon In this case mysql waits for more input mysql SELECT USER If this happens to you you think you ve entered a statement but the only response is a prompt most likely mysql is waiting for the semicolon If you don t notice what the prompt is telling you you might sit there for a while before realizing what you need to do Enter a semicolon to complete the statement and mysql will execute it mysql SELECT USER USER joesmith localhost The and prompts occur during string collection In MySQL you can write strings surrounded by either or characters for example hello or goodbye and mysql lets you enter strings that span multiple lines When you see a or prompt it means that you ve entered a line containing a string that begins with a or quote character but have not yet entered the matching quote that terminates the string That s fine if you really are entering a multiple line string but how likely is that Not very More often the and prompts indicate that you ve inadvertantly left out a quote character For example mysql SELECT FROM my table WHERE name Smith AND age 30 If you enter this SELECT statement then hit RETURN and wait for the result nothing will happen Instead of wondering why does this query take so long notice the clue provided by the prompt It tells you that mysql expects to see the rest of an unterminated string Do you see the error in the statement The string Smith is missing the second quote At this point what do you do The simplest thing is to cancel the command However you cannot just type c in this case because mysql interprets it as part of the string that it is collecting Instead enter the closing quote character so mysql knows you ve finished the string then type c mysql SELECT FROM my table WHERE name Smith AND age 30 c mysql The prompt changes back to mysql indicating that mysql is ready for a new command It s important to know what the and prompts signify because if you mistakenly enter an unterminated string any further lines you type will appear to be ignored by mysql including a line containing QUIT This can be quite confusing especially if you don t know that you need to supply the terminating quote before you can cancel the current command 633 8 3 Creating and using a database Now that you know how to enter commands it s time to access a database Suppose you have several pets in your home your menagerie and you d like to keep track of various types of information about them You can do so by creating tables to hold your data and loading them with the desired information Then you can answer different sorts of questions about your animals by retrieving data from the tables This section shows how to do all that How to create a database How to create a table How to load data into the table How to retrieve data from the table in various ways How to use multiple tables The menagerie database will be simple deliberately but it is not difficult to think of real world situations in which a similar type of database might be used For example a database like this could be used by a farmer to keep track of livestock or by a veterinarian to keep track of patient records Use the SHOW statement to find out what databases currently exist on the server mysql SHOW DATABASES Database mysql test tmp The list of databases is probably different on your machine but the mysql and test databases are likely to be among them The mysql database is required because it describes user access privileges The test database is often provided as a workspace for users to try things out If the test database exists try to access it mysql USE test Database changed Note that USE like QUIT does not require a semicolon You can terminate such statements with a semicolon if you like it does no harm The USE statement is special in another way too it must be given on a single line You can use the test database if you have access to it for the examples that follow but anything you create in that database can be removed by anyone else with access to it For this reason you should probably ask your MySQL administrator for permission to use a database of your own Suppose you want to call yours menagerie The administrator needs to execute a command like this mysql GRANT ALL ON menagerie TO your mysql name where your mysql name is the MySQL user name assigned to you 634 8 3 1 Creating and selecting a database If the administrator creates your database for you when setting up your permissions you can begin using it Otherwise you need to create it yourself mysql CREATE DATABASE menagerie Under Unix database names are case sensitive unlike SQL keywords so you must always refer to your database as menagerie not as Menagerie MENAGERIE or some other variant This is also true for table names Under Windows this restriction does not apply although you must refer to databases and tables using the same lettercase throughout a given query Creating a database does not select it for use you must do that explicitly To make menagerie the current database use this command mysql USE menagerie Database changed Your database needs to be created only once but you must select it for use each time you begin a mysql session You can do this by issuing a USE statement as shown above Alternatively you can select the database on the command line when you invoke mysql Just specify its name after any connection parameters that you might need to provide For example shell mysql h host u user p menagerie Enter password Note that menagerie is not your password on the command just shown If you want to supply your password on the command line after the p option you must do so with no intervening space e g as pmypassword not as p mypassword However putting your password on the command line is not recommended because doing so exposes it to snooping by other users logged in on your machine 635 8 3 2 Creating a table Creating the database is the easy part but at this point it s empty as SHOW TABLES will tell you mysql SHOW TABLES Empty set 0 00 sec The harder part is deciding what the structure of your database should be what tables you will need and what columns will be in each of them You ll want a table that contains a record for each of your pets This can be called the pet table and it should contain as a bare minimum each animal s name Since the name by itself is not very interesting the table should contain other information For example if more than one person in your family keeps pets you might want to list each animal s owner You might also want to record some basic descriptive information such as species and sex How about age That might be of interest but it s not a good thing to store in a database Age changes as time passes which means you d have to update your records often Instead it s better to store a fixed value such as date of birth Then whenever you need age you can calculate it as the difference between the current date and the birth date MySQL provides functions for doing date arithmetic so this is not difficult Storing birth date rather than age has other advantages too You can use the database for tasks such as generating reminders for upcoming pet birthdays If you think this type of query is somewhat silly note that it is the same question you might ask in the context of a business database to identify clients to whom you ll soon need to send out birthday greetings for that computer assisted personal touch You can calculate age in relation to dates other than the current date For example if you store death date in the database you can easily calculate how old a pet was when it died You can probably think of other types of information that would be useful in the pet table but the ones identified so far are sufficient for now name owner species sex birth and death Use a CREATE TABLE statement to specify the layout of your table mysql CREATE TABLE pet name VARCHAR 20 owner VARCHAR 20 species VARCHAR 20 sex CHAR 1 birth DATE death DATE VARCHAR is a good choice for the name owner and species columns since the column values will vary in length The lengths of those columns need not all be the same and need not be 20 You can pick any length from 1 to 255 whatever seems most reasonable to you If you make a poor choice and it turns out later that you need a longer field MySQL provides an ALTER TABLE statement Animal sex can be represented in a variety of ways for example m and f or perhaps male and female It s simplest to use the single characters m and f The use of the DATE data type for the birth and death columns is a fairly obvious choice Now that you have created a table SHOW TABLES should produce some output mysql SHOW TABLES Tables in menagerie pet To verify that your table was created the way you expected use a DESCRIBE statement mysql DESCRIBE pet Field Type Null Key Default Extra name varchar 20 YES NULL owner varchar 20 YES NULL species varchar 20 YES NULL sex char 1 YES NULL birth date YES NULL death date YES NULL You can use DESCRIBE any time for example if you forget the names of the columns in your table or what types they are 636 8 3 3 Loading data into a table After creating your table you need to populate it The LOAD DATA and INSERT statements are useful for this Suppose your pet records can be described as shown below Observe that MySQL expects dates in YYYY MM DD format this may be different than what you are used to name owner species sex birth death Fluffy Harold cat f 1993 02 04 Claws Gwen cat m 1994 03 17 Buffy Harold dog f 1989 05 13 Fang Benny dog m 1990 08 27 Bowser Diane dog m 1998 08 31 1995 07 29 Chirpy Gwen bird f 1998 09 11 Whistler Gwen bird 1997 12 09 Slim Benny snake m 1996 04 29 Since you are beginning with an empty table an easy way to populate it is to create a text file containing a row for each of your animals then load the contents of the file into the table with a single statement You could create a text file pet txt containing one record per line with values separated by tabs and given in the order in which the columns were listed in the CREATE TABLE statement For missing values such as unknown sexes or death dates for animals that are still living you can use NULL values To represent these in your text file use N For example the record for Whistler the bird would look like this where the whitespace between values is a single tab character Whistler Gwen bird N 1997 12 09 N To load the text file pet txt into the pet table use this command mysql LOAD DATA LOCAL INFILE pet txt INTO TABLE pet You can specify the column value separator and end of line marker explicitly in the LOAD DATA statement if you wish but the defaults are tab and linefeed These are sufficient for the statement to read the file pet txt properly When you want to add new records one at a time the INSERT statement is useful In its simplest form you supply values for each column in the order in which the columns were listed in the CREATE TABLE statement Suppose Diane gets a new hamster named Puffball You could add a new record using an INSERT statement like this mysql INSERT INTO pet VALUES Puffball Diane hamster f 1999 03 30 NULL Note that string and date values are specified as quoted strings here Also with INSERT you can insert NULL directly to represent a missing value You do not use N like you do with LOAD DATA From this example you should be able to see that there would be a lot more typing involved to load your records initially using several INSERT statements rather than a single LOAD DATA statement 637 8 3 4 Retrieving information from a table The SELECT statement is used to pull information from a table The general form of the statement is SELECT what to select FROM which table WHERE conditions to satisfy what to select indicates what you want to see This can be a list of columns or to to indicate all columns which table indicates the table from which you want to retrieve data The WHERE clause is optional If it s present conditions to satisfy specifies conditions that rows must satisfy to qualify for retrieval 638 8 3 4 1 Selecting all data The simplest form of SELECT retrieves everything from a table mysql SELECT FROM pet name owner species sex birth death Fluffy Harold cat f 1993 02 04 NULL Claws Gwen cat m 1994 03 17 NULL Buffy Harold dog f 1989 05 13 NULL Fang Benny dog m 1990 08 27 NULL Bowser Diane dog m 1998 08 31 1995 07 29 Chirpy Gwen bird f 1998 09 11 NULL Whistler Gwen bird NULL 1997 12 09 NULL Slim Benny snake m 1996 04 29 NULL Puffball Diane hamster f 1999 03 30 NULL This form of SELECT is useful if you want to review your entire table for instance after you ve just loaded it with your initial dataset As it happens the output just shown reveals an error in your data file Bowser appears to have been born after he died Consulting your original pedigree papers you find that the correct birth year is 1989 not 1998 There are are least a couple of ways to fix this Edit the file pet txt to correct the error then empty the table and reload it using DELETE and LOAD DATA mysql DELETE FROM pet mysql LOAD DATA LOCAL INFILE pet txt INTO TABLE pet However if you do this you must also re enter the record for Puffball Fix only the erroneous record with an UPDATE statement mysql UPDATE pet SET birth 1989 08 31 WHERE name Bowser As shown above it is easy to retrieve an entire table But typically you don t want to do that particularly when the table becomes large Instead you re usually more interested in answering a particular question in which case you specify some constraints on the information you want Let s look at some selection queries in terms of questions about your pets that they answer 639 8 3 4 2 Selecting particular rows You can select only particular rows from your table For example if you want to verify the change that you made to Bowser s birth date select Bowser s record like this mysql SELECT FROM pet WHERE name Bowser name owner species sex birth death Bowser Diane dog m 1989 08 31 1995 07 29 The output confirms that the year is correctly recorded now as 1989 not 1998 String comparisons are normally case insensitive so you can specify the name as bowser BOWSER etc The query result will be the same You can specify conditions on any column not just name For example if you want to know which animals were born after 1998 test the birth column mysql SELECT FROM pet WHERE birth 1998 1 1 name owner species sex birth death Chirpy Gwen bird f 1998 09 11 NULL Puffball Diane hamster f 1999 03 30 NULL You can combine conditions for example to locate female dogs mysql SELECT FROM pet WHERE species dog AND sex f name owner species sex birth death Buffy Harold dog f 1989 05 13 NULL The preceding query uses the AND logical operator There is also an OR operator mysql SELECT FROM pet WHERE species snake OR species bird name owner species sex birth death Chirpy Gwen bird f 1998 09 11 NULL Whistler Gwen bird NULL 1997 12 09 NULL Slim Benny snake m 1996 04 29 NULL AND and OR may be intermixed If you do that it s a good idea to use parentheses to indicate how conditions should be grouped mysql SELECT FROM pet WHERE species cat AND sex m OR species dog AND sex f name owner species sex birth death Claws Gwen cat m 1994 03 17 NULL Buffy Harold dog f 1989 05 13 NULL 640 8 3 4 3 Selecting particular columns If you don t want to see entire rows from your table just name the columns in which you re interested separated by commas For example if you want to know when your animals were born select the name and birth columns mysql SELECT name birth FROM pet name birth Fluffy 1993 02 04 Claws 1994 03 17 Buffy 1989 05 13 Fang 1990 08 27 Bowser 1989 08 31 Chirpy 1998 09 11 Whistler 1997 12 09 Slim 1996 04 29 Puffball 1999 03 30 To find out who owns pets use this query mysql SELECT owner FROM pet owner Harold Gwen Harold Benny Diane Gwen Gwen Benny Diane However notice that the query simply retrieves the owner field from each record and some of them appear more than once To minimize the output retrieve each unique output record just once by adding the keyword DISTINCT mysql SELECT DISTINCT owner FROM pet owner Benny Diane Gwen Harold You can use a WHERE clause to combine row selection with column selection For example to get birth dates for dogs and cats only use this query mysql SELECT name species birth FROM pet WHERE species dog OR species cat name species birth Fluffy cat 1993 02 04 Claws cat 1994 03 17 Buffy dog 1989 05 13 Fang dog 1990 08 27 Bowser dog 1989 08 31 641 8 3 4 4 Sorting rows You may have noticed in the preceding examples that the result rows are displayed in no particular order However it s often easier to examine query output when the rows are sorted in some meaningful way To sort a result use an ORDER BY clause Here are animal birthdays sorted by date mysql SELECT name birth FROM pet ORDER BY birth name birth Buffy 1989 05 13 Bowser 1989 08 31 Fang 1990 08 27 Fluffy 1993 02 04 Claws 1994 03 17 Slim 1996 04 29 Whistler 1997 12 09 Chirpy 1998 09 11 Puffball 1999 03 30 To sort in reverse order add the DESC descending keyword to the name of the column you are sorting by mysql SELECT name birth FROM pet ORDER BY birth DESC name birth Puffball 1999 03 30 Chirpy 1998 09 11 Whistler 1997 12 09 Slim 1996 04 29 Claws 1994 03 17 Fluffy 1993 02 04 Fang 1990 08 27 Bowser 1989 08 31 Buffy 1989 05 13 You can sort on multiple columns For example to sort by type of animal then by birth date within animal type with youngest animals first use the following query mysql SELECT name species birth FROM pet ORDER BY species birth DESC name species birth Chirpy bird 1998 09 11 Whistler bird 1997 12 09 Claws cat 1994 03 17 Fluffy cat 1993 02 04 Fang dog 1990 08 27 Bowser dog 1989 08 31 Buffy dog 1989 05 13 Puffball hamster 1999 03 30 Slim snake 1996 04 29 Note that the DESC keyword applies only to the column name immediately preceding it birth species values are still sorted in ascending order 642 8 3 4 5 Date calculations MySQL provides several functions that you can use to perform calculations on dates for example to calculate ages or extract parts of dates To determine how many years old each of your pets is compute age as the difference between the birth date and the current date Do this by converting the two dates to days take the difference and divide by 365 the number of days in a year mysql SELECT name TO DAYS NOW TO DAYS birth 365 FROM pet name TO DAYS NOW TO DAYS birth 365 Fluffy 6 15 Claws 5 04 Buffy 9 88 Fang 8 59 Bowser 9 58 Chirpy 0 55 Whistler 1 30 Slim 2 92 Puffball 0 00 Although the query works there are some things about it that could be improved First the result could be scanned more easily if the rows were presented in some order Second the heading for the age column isn t very meaningful The first problem can be handled by adding an ORDER BY name clause to sort the output by name To deal with the column heading provide a name for the column so that a different label appears in the output this is called a column alias mysql SELECT name TO DAYS NOW TO DAYS birth 365 AS age FROM pet ORDER BY name name age Bowser 9 58 Buffy 9 88 Chirpy 0 55 Claws 5 04 Fang 8 59 Fluffy 6 15 Puffball 0 00 Slim 2 92 Whistler 1 30 To sort the output by age rather than name just use a different ORDER BY clause mysql SELECT name TO DAYS NOW TO DAYS birth 365 AS age FROM pet ORDER BY age name age Puffball 0 00 Chirpy 0 55 Whistler 1 30 Slim 2 92 Claws 5 04 Fluffy 6 15 Fang 8 59 Bowser 9 58 Buffy 9 88 A similar query can be used to determine age at death for animals that have died You determine which animals these are by checking whether or not the death value is NULL Then for those with non NULL values compute the difference between the death and birth values mysql SELECT name birth death TO DAYS death TO DAYS birth 365 AS age FROM pet WHERE death IS NOT NULL ORDER BY age name birth death age Bowser 1989 08 31 1995 07 29 5 91 The query uses death IS NOT NULL rather than death NULL because NULL is a special value This is explained later See section 643 8 3 4 6 Working with NULL values What if you want to know which animals have birthdays next month For this type of calculation year and day are irrelevant you simply want to extract the month part of the birth column MySQL provides several date part extraction functions such as YEAR MONTH and DAY MONTH is the appropriate function here To see how it works run a simple query that displays the value of both birth and MONTH birth mysql SELECT name birth MONTH birth FROM pet name birth MONTH birth Fluffy 1993 02 04 2 Claws 1994 03 17 3 Buffy 1989 05 13 5 Fang 1990 08 27 8 Bowser 1989 08 31 8 Chirpy 1998 09 11 9 Whistler 1997 12 09 12 Slim 1996 04 29 4 Puffball 1999 03 30 3 Finding animals with birthdays in the upcoming month is easy too Suppose the current month is April Then the month value is 4 and you look for animals born in May month 5 like this mysql SELECT name birth FROM pet WHERE MONTH birth 5 name birth Buffy 1989 05 13 There is a small complication if the current month is December of course You don t just add one to the month number 12 and look for animals born in month 13 because there is no such month Instead you look for animals born in January month 1 You can even write the query so that it works no matter what the current month is That way you don t have to use a particular month number in the query DATE ADD allows you to add a time interval to a given date If you add a month to the value of NOW then extract the month part with MONTH the result produces the month in which to look for birthdays mysql SELECT name birth FROM pet WHERE MONTH birth MONTH DATE ADD NOW INTERVAL 1 MONTH A different way to accomplish the same task is to add 1 to get the next month after the current one after using the modulo function MOD to wrap around the month value to 0 if it is currently 12 mysql SELECT name birth FROM pet WHERE MONTH birth MOD MONTH NOW 12 1 644 8 3 4 6 Working with NULL values The NULL value can be surprising until you get used to it Conceptually NULL means missing value or unknown value and it is treated somewhat differently than other values To test for NULL you cannot use the arithmetic comparison operators such as or To demonstrate this for yourself try the following query mysql SELECT 1 NULL 1 NULL 1 NULL 1 NULL 1 NULL 1 NULL 1 NULL 1 NULL NULL NULL NULL NULL Clearly you get no meaningful results from these comparisons Use the IS NULL and IS NOT NULL operators instead mysql SELECT 1 IS NULL 1 IS NOT NULL 1 IS NULL 1 IS NOT NULL 0 1 In MySQL 0 means false and 1 means true This special treatment of NULL is why in the previous section it was necessary to determine which animals are no longer alive using death IS NOT NULL instead of death NULL 645 8 3 4 7 Pattern matching MySQL provides standard SQL pattern matching as well as a form of pattern matching based on extended regular expressions similar to those used by Unix utilities such as vi grep and sed SQL pattern matching allows you to use to match any single character and to match an arbitrary number of characters including zero characters SQL patterns are case insensitive Some examples are shown below Note that you do not use or when you use SQL patterns use the LIKE or NOT LIKE comparison operators instead To find names beginning with b mysql SELECT FROM pet WHERE name LIKE b name owner species sex birth death Buffy Harold dog f 1989 05 13 NULL Bowser Diane dog m 1989 08 31 1995 07 29 To find names ending with fy mysql SELECT FROM pet WHERE name LIKE fy name owner species sex birth death Fluffy Harold cat f 1993 02 04 NULL Buffy Harold dog f 1989 05 13 NULL To find names containing a w mysql SELECT FROM pet WHERE name LIKE w name owner species sex birth death Claws Gwen cat m 1994 03 17 NULL Bowser Diane dog m 1989 08 31 1995 07 29 Whistler Gwen bird NULL 1997 12 09 NULL To find names containing exactly five characters use the pattern character mysql SELECT FROM pet WHERE name LIKE name owner species sex birth death Claws Gwen cat m 1994 03 17 NULL Buffy Harold dog f 1989 05 13 NULL The other type of pattern matching provided by MySQL uses extended regular expressions When you test for a match for this type of pattern use the REGEXP and NOT REGEXP operators or RLIKE and NOT RLIKE which are synonyms Some characteristics of extended regular expressions are matches any single character A character class matches any character within the brackets For example abc matches a b or c To name a range of characters use a dash a z matches any lowercase letter whereas 0 9 matches any digit matches zero or more instances of the thing preceding it For example x matches any number of x characters 0 9 matches any number of digits and matches any number of anything Regular expressions are case sensitive but you can use a character class to match both lettercases if you wish For example aA matches lowercase or uppercase a and a zA Z matches any letter in either case The pattern matches if it occurs anywhere in the value being tested SQL patterns match only if they match the entire value To anchor a pattern so that it must match the beginning or end of the value being tested use at the beginning or at the end of the pattern To demonstrate how extended regular expressions work the LIKE queries shown above are rewritten below to use REGEXP To find names beginning with b use to match the beginning of the name and bB to match either lowercase or uppercase b mysql SELECT FROM pet WHERE name REGEXP bB name owner species sex birth death Buffy Harold dog f 1989 05 13 NULL Bowser Diane dog m 1989 08 31 1995 07 29 To find names ending with fy use to match the end of the name mysql SELECT FROM pet WHERE name REGEXP fy name owner species sex birth death Fluffy Harold cat f 1993 02 04 NULL Buffy Harold dog f 1989 05 13 NULL To find names containing a w use wW to match either lowercase or uppercase w mysql SELECT FROM pet WHERE name REGEXP wW name owner species sex birth death Claws Gwen cat m 1994 03 17 NULL Bowser Diane dog m 1989 08 31 1995 07 29 Whistler Gwen bird NULL 1997 12 09 NULL Since a regular expression pattern matches if it occurs anywhere in the value it is not necessary in the previous query to put a wildcard on either side of the pattern to get it to match the entire value like it would be if you used an SQL pattern To find names containing exactly five characters use and to match the beginning and end of the name and five instances of in between mysql SELECT FROM pet WHERE name REGEXP name owner species sex birth death Claws Gwen cat m 1994 03 17 NULL Buffy Harold dog f 1989 05 13 NULL You could also write the previous query using the n repeat n times operator mysql SELECT FROM pet WHERE name REGEXP 5 name owner species sex birth death Claws Gwen cat m 1994 03 17 NULL Buffy Harold dog f 1989 05 13 NULL 646 8 3 4 8 Counting rows Databases are often used to answer the question how often does a certain type of data occur in a table For example you might want to know how many pets you have or how many pets each owner has or you might want to perform various kinds of censuses on your animals Counting the total number of animals you have is the same question as how many rows are in the pet table since there is one record per pet The COUNT function counts the number of non NULL results so the query to count your animals looks like this mysql SELECT COUNT FROM pet COUNT 9 Earlier you retrieved the names of the people who owned pets You can use COUNT if you want to find out how many pets each owner has mysql SELECT owner COUNT FROM pet GROUP BY owner owner COUNT Benny 2 Diane 2 Gwen 3 Harold 2 Note the use of GROUP BY to group together all records for each owner Without it all you get is an error message mysql SELECT owner COUNT owner FROM pet ERROR 1140 at line 1 Mixing of GROUP columns MIN MAX COUNT with no GROUP columns is illegal if there is no GROUP BY clause COUNT and GROUP BY are useful for characterizing your data in various ways The following examples show different ways to perform animal census operations Number of animals per species mysql SELECT species COUNT FROM pet GROUP BY species species COUNT bird 2 cat 2 dog 3 hamster 1 snake 1 Number of animals per sex mysql SELECT sex COUNT FROM pet GROUP BY sex sex COUNT NULL 1 f 4 m 4 In this output NULL indicates sex unknown Number of animals per combination of species and sex mysql SELECT species sex COUNT FROM pet GROUP BY species sex species sex COUNT bird NULL 1 bird f 1 cat f 1 cat m 1 dog f 1 dog m 2 hamster f 1 snake m 1 You need not retrieve an entire table when you use COUNT For example the previous query when performed just on dogs and cats looks like this mysql SELECT species sex COUNT FROM pet WHERE species dog OR species cat GROUP BY species sex species sex COUNT cat f 1 cat m 1 dog f 1 dog m 2 Or if you wanted the number of animals per sex only for known sex animals mysql SELECT species sex COUNT FROM pet WHERE sex IS NOT NULL GROUP BY species sex species sex COUNT bird f 1 cat f 1 cat m 1 dog f 1 dog m 2 hamster f 1 snake m 1 647 8 3 5 Using more than one table The pet table keeps track of which pets you have If you want to record other information about them such as events in their lives like visits to the vet or when litters are born you need another table What should this table look like It needs to contain the pet name so you know which animal each event pertains to It needs a date so you know when the event occurred It needs a field to describe the event If you want to be able to categorize events it would be useful to have an event type field Given these considerations the CREATE TABLE statement for the event table might look like this mysql CREATE TABLE event name VARCHAR 20 date DATE type VARCHAR 15 remark VARCHAR 255 As with the pet table it s easiest to load the initial records by creating a tab delimited text file containing the information Fluffy 1995 05 15 litter 4 kittens 3 female 1 male Buffy 1993 06 23 litter 5 puppies 2 female 3 male Buffy 1994 06 19 litter 3 puppies 3 female Chirpy 1999 03 21 vet needed beak straightened Slim 1997 08 03 vet broken rib Bowser 1991 10 12 kennel Fang 1991 10 12 kennel Fang 1998 08 28 birthday Gave him a new chew toy Claws 1998 03 17 birthday Gave him a new flea collar Whistler 1998 12 09 birthday First birthday Load the records like this mysql LOAD DATA LOCAL INFILE event txt INTO TABLE event Based on what you ve learned from the queries you ve run on the pet table you should be able to perform retrievals on the records in the event table the principles are the same But when is the event table by itself insufficient to answer questions you might ask Suppose you want to find out the ages of each pet when they had their litters The event table indicates when this occurred but to calculate age of the mother you need her birth date Since that is stored in the pet table you need both tables for the query mysql SELECT pet name TO DAYS date TO DAYS birth 365 AS age remark FROM pet event WHERE pet name event name AND type litter name age remark Fluffy 2 27 4 kittens 3 female 1 male Buffy 4 12 5 puppies 2 female 3 male Buffy 5 10 3 puppies 3 female There are several things to note about this query The FROM clause lists two tables since the query needs to pull information from both of them When combining information from multiple tables you need to specify how records in one table can be matched to records in the other This is easy since they both have a name column The query uses WHERE clause to match up records in the two tables based on the name values Since the name column occurs in both tables you must be specific about which table you mean when referring to the column This is done by prepending the table name to the column name You need not have two different tables to perform a join Sometimes it is useful to join a table to itself if you want to compare records in a table to other records in that same table For example to find breeding pairs among your pets you can join the pet table with itself to pair up males and females of like species mysql SELECT p1 name p1 sex p2 name p2 sex p1 species FROM pet AS p1 pet AS p2 WHERE p1 species p2 species AND p1 sex f AND p2 sex m name sex name sex species Fluffy f Claws m cat Buffy f Fang m dog Buffy f Bowser m dog In this query we specify aliases for the table name in order to be able to refer to the columns and keep straight which instance of the table each column reference is associated with 648 8 4 Getting information about databases and tables What if you forget the name of a database or table or what the structure of a given table is e g what its columns are called MySQL addresses this problem through several statements that provide information about the databases and tables it supports You have already seen SHOW DATABASES which lists the databases managed by the server To find out which database is currently selected use the DATABASE function mysql SELECT DATABASE DATABASE menagerie If you haven t selected any database yet the result is blank To find out what tables the current database contains for example when you re not sure about the name of a table use this command mysql SHOW TABLES Tables in menagerie event pet If you want to find out about the structure of a table the DESCRIBE command is useful it displays information about each of a table s columns mysql DESCRIBE pet Field Type Null Key Default Extra name varchar 20 YES NULL owner varchar 20 YES NULL species varchar 20 YES NULL sex char 1 YES NULL birth date YES NULL death date YES NULL Field indicates the column name Type is the data type for the column Null indicates whether or not the column can contain NULL values Key indicates whether or not the column is indexed and Default specifies the column s default value If you have indexes on a table SHOW INDEX FROM tbl name produces information about them 649 8 5 Using mysql in batch mode In the previous sections you used mysql interactively to enter queries and view the results You can also run mysql in batch mode To do this put the commands you want to run in a file then tell mysql to read its input from the file shell mysql batch file If you need to specify connection parameters on the command line the command might look like this shell mysql h host u user p batch file Enter password When you use mysql this way you are creating a script file then executing the script Why use a script Here are a few reasons If you run a query repeatedly say every day or every week making it a script allows you to avoid retyping it each time you execute it You can generate new queries from existing ones that are similar by copying and editing script files Batch mode can also be useful while you re developing a query particularly for multiple line commands or multiple statement sequences of commands If you make a mistake you don t have to retype everything Just edit your script to correct the error then tell mysql to execute it again If you have a query that produces a lot of output you can run the output through a pager rather than watching it scroll off the top of your screen shell mysql batch file more You can catch the output in a file for further processing shell mysql batch file mysql out You can distribute your script to other people so they can run the commands too Some situations do not allow for interactive use for example when you run a query from a cron job In this case you must use batch mode The default output format is different more concise when you run mysql in batch mode than when you use it interactively For example the output of SELECT DISTINCT species FROM pet looks like this when run interactively species bird cat dog hamster snake But like this when run in batch mode species bird cat dog hamster snake If you want to get the interactive output format in batch mode use mysql t To echo to the output the commands that are executed use mysql vvv 650 8 6 Queries from twin project At Analytikerna and Lentus we have been doing the systems and field work for a big research project This project is a collaboration between the Institute of Environmental Medicine at Karolinska Institutet Stockholm and the Section on Clinical Research in Aging and Psychology at the University of Southern California The project involves a screening part where all twins in Sweden older than 65 years are interviewed by telephone Twins who meet certain criteria are passed on to the next stage In this latter stage twins who want to participate are visited by a doctor nurse team Some of the examinations include physical and neuropsychological examination laboratory testing neuroimaging psychological status assessment and family history collection In addition data are collected on medical and environmental risk factors More information about Twin studies can be found at http www imm ki se TWIN TWINUKW HTM The latter part of the project is administered with a web interface written using Perl and MySQL Each night all data from the interviews are moved into a MySQL database 651 8 6 1 Find all non distributed twins The following query is used to determine who goes into the second part of the project select concat p1 id p1 tvab 0 as tvid concat p1 christian name p1 surname as Name p1 postal code as Code p1 city as City pg abrev as Area if td participation Aborted A as A p1 dead as dead1 l event as event1 td suspect as tsuspect1 id suspect as isuspect1 td severe as tsevere1 id severe as isevere1 p2 dead as dead2 l2 event as event2 h2 nurse as nurse2 h2 doctor as doctor2 td2 suspect as tsuspect2 id2 suspect as isuspect2 td2 severe as tsevere2 id2 severe as isevere2 l finish date from twin project as tp For Twin 1 left join twin data as td on tp id td id and tp tvab td tvab left join informant data as id on tp id id id and tp tvab id tvab left join harmony as h on tp id h id and tp tvab h tvab left join lentus as l on tp id l id and tp tvab l tvab For Twin 2 left join twin data as td2 on p2 id td2 id and p2 tvab td2 tvab left join informant data as id2 on p2 id id2 id and p2 tvab id2 tva b left join harmony as h2 on p2 id h2 id and p2 tvab h2 tvab left join lentus as l2 on p2 id l2 id and p2 tvab l2 tvab person data as p1 person data as p2 postal groups as pg where p1 gets main twin and p2 gets his her twin ptvab is a field inverted from tvab p1 id tp id and p1 tvab tp tvab and p2 id p1 id and p2 ptvab p1 tvab and Just the sceening survey tp survey no 5 and Skip if partner died before 65 but allow emigration dead 9 p2 dead 0 or p2 dead 9 or p2 dead 1 and p2 death date 0 or to days p2 death date to days p2 birthday 365 65 and Twin is suspect td future contact Yes and td suspect 2 or Twin is suspect Informant is Blessed td future contact Yes and td suspect 1 and id suspect 1 or No twin Informant is Blessed ISNULL td suspect and id suspect 1 and id future contact Yes o r Twin broken off Informant is Blessed td participation Aborted and id suspect 1 and id future contact Yes or Twin broken off No inform Have partner td participation Aborted and ISNULL id suspect and p2 dead 0 and l event Finished Get at area code and substring p1 postal code 1 2 pg code Not already distributed and h nurse is NULL or h nurse 00 or h doctor 00 Has not refused or been aborted and not h status Refused or h status Aborted or h status Died or h status Other order by tvid Some explanations concat p1 id p1 tvab 0 as tvid We want to sort on the concatenated id and tvab in numerical order Adding 0 to the result causes MySQL to treat the result as a number column id This identifies a pair of twins It is a key in all tables column tvab This identifies a twin in a pair It has a value of 1 or 2 column ptvab This is an inverse of tvab When tvab is 1 this is 2 and vice versa It exists to save typing and to make it easier for MySQL to optimize the query This query demonstrates among other things how to do lookups on a table from the same table with a join p1 and p2 In the example this is used to check whether a twin s partner died before the age of 65 If so the row is not returned All of the above exist in all tables with twin related information We have a key on both id tvab all tables and id ptvab person data to make queries faster On our production machine A 200MHz UltraSPARC this query returns about 150 200 rows and takes less than one second The current number of records in the tables used above Table Rows person data 71074 lentus 5291 twin project 5286 twin data 2012 informant data 663 harmony 381 postal groups 100 652 8 6 2 Show a table on twin pair status Each interview ends with a status code called event The query shown below is used to display a table over all twin pairs combined by event This indicates in how many pairs both twins are finished in how many pairs one twin is finished and the other refused and so on select t1 event t2 event count from lentus as t1 lentus as t2 twin project as tp where We are looking at one pair at a time t1 id tp id and t1 tvab tp tvab and t1 id t2 id Just the sceening survey and tp survey no 5 This makes each pair only appear once and t1 tvab 1 and t2 tvab 2 group by t1 event t2 event 653 9 MySQL Server functions 654 9 1 What languages are supported by MySQL mysqld can issue error messages in the following languages Czech Dutch English the default Estonia French German Hungarian Italian Norwegian Norwegian ny Polish Portuguese Spanish and Swedish To start mysqld with a particular language use either the language lang or L lang options For example shell mysqld language swedish or shell mysqld language usr local share swedish Note that all language names are specified in lowercase The language files are located by default in mysql base dir share LANGUAGE To update the error message file you should edit the errmsg txt file and execute the following command to generate the errmsg sys file shell comp err errmsg txt errmsg sys If you upgrade to a newer version of MySQL remember to repeat your changes with the new errmsg txt file 655 9 1 1 The character set used for data and sorting By default MySQL uses the ISO 8859 1 Latin1 character set This is the character set used in the USA and western Europe The character set determines what characters are allowed in names and how things are sorted by the ORDER BY and GROUP BY clauses of the SELECT statement You can change the character set at compile time by using the with charset charset option to configure See section 656 4 7 1 Quick installation overview To add another character set to MySQL use the following procedure 657 9 1 2 Adding a new character set 1 Choose a name for the character set denoted MYSET below 2 Create the file strings ctype MYSET c in the MySQL source distribution 3 Look at one of the existing ctype c files to see what needs to be defined Note that the arrays in your file must have names like ctype MYSET to lower MYSET and so on to lower and to upper are simple arrays that hold the lowercase and uppercase characters corresponding to each member of the character set For example to lower A should contain a to upper a should contain A sort order is a map indicating how characters should be ordered for comparison and sorting purposes For many character sets this is the same as to upper which means sorting will be case insensitive MySQL will sort characters based on the value of sort order character ctype is an array of bit values with one element for one character Note that to lower to upper and sort order are indexed by character value but ctype is indexed by character value 1 This is an old legacy to be able to handle EOF You can find the following bitmask definitions in m ctype h define U 01 Upper case define L 02 Lower case define N 04 Numeral digit define S 010 Spacing character define P 020 Punctuation define C 040 Control character define B 0100 Blank define X 0200 heXadecimal digit The ctype entry for each character should be the union of the applicable bitmask values that describe the character For example A is an uppercase character U as well as a hexidecimal digit X so ctype A 1 should contain the value U X 01 0200 0201 4 Add a unique number for your character set to include m ctype h in 5 Add the character set name to the CHARSETS AVAILABLE list in configure in 6 Reconfigure recompile and test 658 9 1 3 Multi byte character support If you are creating a multi byte character set you can use the MB macros In include m ctype h in add define MY CHARSET MYSET X if MY CHARSET CURRENT MY CHARSET MYSET define USE MB define USE MB IDENT define ismbchar p end define ismbhead c define mbcharlen c define MBMAXLEN N endif Where MY CHARSET MYSET A unique character set value USE MB This character set has multi byte characters handled by ismbhead and mbcharlen USE MB IDENT optional If defined you can use table and column names that use multi byte characters ismbchar p e return 0 if p is not a multi byte character string or the size of the character in bytes if it is p and e point to the beginning and end of the string Check from char p to char e 1 ismbhead c True if c is the first character of a multi byte character string mbcharlen c Size of a multi byte character string if c is the first character of such a string MBMAXLEN Size in bytes of the largest character in the set 659 9 2 The update log When started with the log update file name option mysqld writes a log file containing all SQL commands that update data The file is written in the data directory and has a name of file name where is a number that is incremented each time you execute mysqladmin refresh or mysqladmin flush logs the FLUSH LOGS statement or restart the server If you use the log or l options the filename is hostname log and restarts and refreshes do not cause a new log file to be generated By default the mysql server script starts the MySQL server with the l option If you need better performance when you start using MySQL in a production environment you can remove the l option from mysql server Update logging is smart since it logs only statements that really update data So an UPDATE or a DELETE with a WHERE that finds no rows is not written to the log It even skips UPDATE statements that set a column to the value it already has If you want to update a database from update log files you could do the following assuming your log files have names of the form file name shell ls 1 t r file name 0 9 xargs cat mysql ls is used to get all the log files in the right order This can be useful if you have to revert to backup files after a crash and you want to redo the updates that occurred between the time of the backup and the crash You can also use the update logs when you have a mirrored database on another host and you want to replicate the changes that have been made to the master database 660 9 3 How big MySQL tables can be MySQL itself has a 4G limit on table size and operating systems have their own file size limits On Linux the current limit is 2G on Solaris 2 5 1 the limit is 4G on Solaris 2 6 the limit is going to be 1000G Currently table sizes are limited to either 4G the MySQL limit or the operating system limit whichever is smaller To get more than 4G requires some changes to MySQL that are on the TODO See section 661 F List of things we want to add to MySQL in the future The TODO If your big table is going to be read only you could use pack isam to merge and compress many tables to one pack isam usually compresses a table by at least 50 so you can have in effect much bigger tables See section 662 12 5 The MySQL compressed read only table generator Another solution can be the included MERGE library which allows you to handle a collection of identical tables as one Identical in this case means that all tables are created with identical column information Currently MERGE can only be used to scan a collection of tables because it doesn t support indexes We will add indexes to this in the near future 663 10 Getting maximum performance from MySQL 664 10 1 Tuning server parameters You can get the default buffer sizes used by the mysqld server with this command shell mysqld help This command produces a list of all mysqld options and configurable variables The output includes the default values and looks something like this Possible variables for option set variable O are back log current value 5 connect timeout current value 5 delayed insert timeout current value 300 delayed insert limit current value 100 delayed queue size current value 1000 flush time current value 0 join buffer size current value 131072 key buffer size current value 1048540 long query time current value 10 max allowed packet current value 1048576 max connections current value 100 max connect errors current value 10 max delayed threads current value 20 max heap table size current value 16777216 max join size current value 4294967295 max sort length current value 1024 max tmp tables current value 32 net buffer length current value 16384 record buffer current value 131072 sort buffer current value 2097116 table cache current value 64 tmp table size current value 1048576 thread stack current value 131072 wait timeout current value 28800 If there is a mysqld server currently running you can see what values it actually is using for the variables by executing this command shell mysqladmin variables Each option is described below Values for buffer sizes lengths and stack sizes are given in bytes You can specify values with a suffix of K or M to indicate kilobytes or megabytes For example 16M indicates 16 megabytes Case of suffix letters does not matter 16M and 16m are equivalent back log The number of outstanding connection requests MySQL can have This comes into play when the main MySQL thread gets VERY many connection requests in a very short time It then takes some time although very little for the main thread to check the connection and start a new thread The back log value indicates how many requests can be stacked during this short time before MySQL momentarily stops answering new requests You need to increase this only if you expect a large number of connections in a short period of time In other words this value is the size of the listen queue for incoming TCP IP connections Your operating system has its own limit on the size of this queue The manual page for the Unix listen 2 system call should have more details Check your OS documentation for the maximum value for this variable Attempting to set back log higher than this maximum will be ineffective connect timeout The number of seconds the mysqld server is waiting for a connect packet before responding with Bad handshake delayed insert timeout How long a INSERT DELAYED thread should wait for INSERT statements before terminating delayed insert limit After inserting delayed insert limit rows the INSERT DELAYED handler will check if there are any SELECT statements pending If so it allows these to execute before continuing delayed queue size How big a queue in rows should be allocated for handling INSERT DELAYED If the queue becomes full any client that does INSERT DELAYED will wait until there is room in the queue again flush time If this is set then every flush time seconds all tables will be closed to free up resources and sync things to disk join buffer The size of the buffer that is used for full joins joins that do not use indexes The buffer is allocated one time for each full join between two tables Increase this value to get a faster full join when adding indexes is not possible Normally the best way to get fast joins is to add indexes key buffer Index blocks are buffered and are shared by all threads key buffer is the size of the buffer used for index blocks You might want to increase this value when doing many DELETE or INSERT operations on a table with lots of indexes To get even more speed use LOCK TABLES See section 665 7 23 LOCK TABLES UNLOCK TABLES syntax long query time If a query takes longer than this in seconds the slow queries counter will be incremented max allowed packet The maximum size of one packet The message buffer is initialized to net buffer length bytes but can grow up to max allowed packet bytes when needed This value by default is small to catch big possibly wrong packets You must increase this value if you are using big BLOB columns It should be as big as the biggest BLOB you want to use max connections The number of simultaneous clients allowed Increasing this value increases the number of file descriptors that mysqld requires See below for comments on file descriptor limits max connect errors If there is more than this number of interrupted connections from a host this host will be blocked for further connections You can unblock a host with the command FLUSH HOSTS max delayed threads Don t start more than this number of threads to handle INSERT DELAYED If you try to insert data in a new table after all INSERT DELAYED threads are in use the row will be inserted as if the DELAYED attribute wasn t specified max join size Joins that are probably going to read more than max join size records return an error Set this value if your users tend to perform joins without a WHERE clause that take a long time and return millions of rows max sort length The number of bytes to use when sorting BLOB or TEXT values only the first max sort length bytes of each value are used the rest are ignored max tmp tables This option doesn t yet do anything Maximum number of temporary tables a client can keep open at the same time net buffer length The communication buffer is reset to this size between queries This should not normally be changed but if you have very little memory you can set it to the expected size of a query That is the expected length of SQL statements sent by clients If statements exceed this length the buffer is automatically enlarged up to max allowed packet bytes record buffer Each thread that does a sequential scan allocates a buffer of this size for each table it scans If you do many sequential scans you may want to increase this value sort buffer Each thread that needs to do a sort allocates a buffer of this size Increase this value for faster ORDER BY or GROUP BY operations See section 666 17 5 Where MySQL stores temporary files table cache The number of open tables for all threads Increasing this value increases the number of file descriptors that mysqld requires MySQL needs two file descriptors for each unique open table See below for comments on file descriptor limits For information about how the table cache works see section 667 10 7 How MySQL opens and closes tables tmp table size If a temporary table exceeds this size MySQL generates an error of the form The table tbl name is full Increase the value of tmp table size if you do many advanced GROUP BY queries thread stack The stack size for each thread Many of the limits detected by the crash me test are dependent on this value The default is normally large enough See section 668 11 The MySQL benchmark suite wait timeout The number of seconds the server waits for activity on a connection before closing it table cache max connections and max tmp tables affect the maximum number of files the server keeps open If you increase one or both of these values you may run up against a limit imposed by your operating system on the per process number of open file descriptors However you can increase the limit on many systems Consult your OS documentation to find out how to do this because the method for changing the limit varies widely from system to system table cache is related to max connections For example for 200 open connections you should have a table cache of at least 200 n where n is the maximum number of tables in a join MySQL uses algorithms that are very scalable so you can usually run with very little memory or give MySQL more memory to get better performance If you have much memory and many tables and want maximum performance with a moderate number of clients you should use something like this shell safe mysqld O key buffer 16M O table cache 128 O sort buffer 4M O record buffer 1M If you have little memory and lots of connections use something like this shell safe mysqld O key buffer 512k O sort buffer 100k O record buffer 100k or even shell safe mysqld O key buffer 512k O sort buffer 16k O table cache 32 O record buffer 8k O net buffer 1K If there are very many connections swapping problems may occur unless mysqld has been configured to use very little memory for each connection mysqld performs better if you have enough memory for all connections of course Note that if you change an option to mysqld it remains in effect only for that instance of the server To see the effects of a parameter change do something like this shell mysqld O key buffer 32m help Make sure that the help option is last otherwise the effect of any options listed after it on the command line will not be reflected in the output 669 10 2 How MySQL uses memory The list below indicates some of the ways that the mysqld server uses memory Where applicable the name of the server variable relevant to the memory use is given The key buffer variable key buffer is shared by all threads Other buffers used by the server are allocated as needed Each connection uses some thread specific space A stack 64K variable thread stack a connection buffer variable net buffer length and a result buffer variable net buffer length The connection buffer and result buffer are dynamicly enlarged up to max allowed packet when needed When a query is running a copy of the current query string is also alloced All threads share the same base memory Nothing is memory mapped yet except compressed tables but that s another story This is because the 32 bit memory space of 4GB is not large enough for most large tables When we get a system with a 64 bit address space we may add general support for memory mapping Each request doing a sequential scan over a table allocates a read buffer variable record buffer All joins are done in one pass and most joins can be done without even using a temporary table Most temporary tables are memory based HEAP tables Temporary tables with a big record length calculated as the sum of all column lengths or that contain BLOB columns are stored on disk One current problem is that if a HEAP table exceeds the size of tmp table size you get the error The table tbl name is full In the future we will fix this by automatically changing the in memory HEAP table to a disk based NISAM table as necessary To work around this problem you can increase the temporary table size by setting the tmp table size option to mysqld or by setting the SQL option SQL BIG TABLES in the client program See section 670 7 24 SET OPTION syntax In MySQL 3 20 the maximum size of the temporary table was record buffer 16 so if you are using this version you have to increase the value of record buffer You can also start mysqld with the big tables option to always store temporary tables on disk however this will affect the speed of all complicated queries Most requests doing a sort allocate a sort buffer and one or two temporary files See section 671 17 5 Where MySQL stores temporary files Almost all parsing and calculating is done in a local memory store No memory overhead is needed for small items and the normal slow memory allocation and freeing is avoided Memory is allocated only for unexpectedly large strings this is done with malloc and free Each index file is opened once and the data file is opened once for each concurrently running thread For each concurrent thread a table structure column structures for each column and a buffer of size 3 n is allocated where n is the maximum row length not counting BLOB columns A BLOB uses 5 to 8 bytes plus the length of the BLOB data For each table having BLOB columns a buffer is enlarged dynamically to read in larger BLOB values If you scan a table a buffer as large as the largest BLOB value is allocated Table handlers for all in use tables are saved in a cache and managed as a FIFO Normally the cache has 64 entries If a table has been used by two running threads at the same time the cache contains two entries for the table See section 672 10 7 How MySQL opens and closes tables A mysqladmin flush tables command closes all tables that are not in use and marks all in use tables to be closed when the currently executing thread finishes This will effectively free most in use memory ps and other system status programs may report that mysqld uses a lot of memory This may be caused by thread stacks on different memory addresses For example the Solaris version of ps counts the unused memory between stacks as used memory You can verify this by checking available swap with swap s We have tested mysqld with commercial memory leakage detectors so there should be no memory leaks 673 10 3 How compiling and linking affects the speed of MySQL Most of the following tests are done on Linux and with the MySQL benchmarks but they should give some indication for other operating systems You get the fastest executable when you link with static Using Unix sockets rather than TCP IP to connect to a database also gives better performance On Linux you will get the fastest code when compiling with pgcc and O6 To compile sql yacc cc with these options you need 180M memory because gcc pgcc needs a lot of memory to make all functions inline You should also set CXX gcc when configuring MySQL to avoid inclusion of the libstdc library If you use pgcc and compile everything with O6 the mysqld server is 11 faster than with gcc If you link dynamically without static the result is 13 slower If you connect using TCP IP rather than Unix sockets the result is 7 5 slower On a Sun SPARCstation 10 gcc 2 7 3 is 13 faster than Sun Pro C 4 2 On Solaris 2 5 1 MIT pthreads is 8 12 slower than Solaris native threads The MySQL Linux distribution provided by TcX is compiled with pgcc and linked statically 674 10 4 How MySQL uses indexes All indexes PRIMARY UNIQUE and INDEX are stored in B trees Strings are automatically prefix and end space compressed See section 675 7 26 CREATE INDEX syntax Indexes are used to Quickly find the rows that match a WHERE clause Retrieve rows from other tables when performing joins Find the MAX or MIN value for a specific key Sort or group a table if the sorting or grouping is done on a leftmost prefix of a usable key e g ORDER BY key part 1 key part 2 The key is read in reverse order if all key parts are followed by DESC Retrieve values without consulting the data file in some cases If all used columns for some table are numeric and form a leftmost prefix for some key the values may be retrieved from the index tree for greater speed Suppose you issue the following SELECT statement mysql SELECT FROM tbl name WHERE col1 val1 AND col2 val2 If a multiple column index exists on col1 and col2 the appropriate rows can be fetched directly If separate single column indexes exist on col1 and col2 the optimizer decides which index will find fewer rows and uses that index to fetch the rows If the table has a multiple column index any leftmost prefix of the index can be used by the optimizer to find rows For example if you have a three column index on col1 col2 col3 you have indexed search capabilities on col1 col1 col2 and col1 col2 col3 MySQL can t use a partial index if the columns don t form a leftmost prefix of the index Suppose you have the SELECT statements shown below mysql SELECT FROM tbl name WHERE col1 val1 mysql SELECT FROM tbl name WHERE col2 val2 mysql SELECT FROM tbl name WHERE col2 val2 AND col3 val3 If an index exists on col1 col2 col3 only the first query shown above uses the index The second and third queries do involve indexed columns but col2 and col2 col3 are not leftmost prefixes of col1 col2 col3 MySQL also uses indexes for LIKE comparisons if the argument to LIKE is a constant string that doesn t start with a wildcard character For example the following SELECT statements use indexes mysql select from tbl name where key col LIKE Patrick mysql select from tbl name where key col LIKE Pat ck In the first statement only rows with Patrick key col Patricl are considered In the second statement only rows with Pat key col Pau are considered The following SELECT statements will not use indexes mysql select from tbl name where key col LIKE Patrick mysql select from tbl name where key col LIKE other col In the first statement the LIKE value begins with a wildcard character In the second statement the LIKE value is not a constant MySQL normally uses the index that finds least number of rows An index is used for columns that you compare with the following operators BETWEEN and a LIKE with a non wildcard prefix like something Any index that doesn t span all AND levels in the WHERE clause is not used to optimize the query The following WHERE clauses use indexes WHERE index part1 1 AND index part2 2 WHERE index 1 OR A 10 AND index 2 index 1 OR index 2 WHERE index part1 hello AND index part 3 5 optimized like index part1 hello These WHERE clauses do NOT use indexes WHERE index part2 1 AND index part3 2 index part 1 is not used WHERE index 1 OR A 10 No index WHERE index part1 1 OR index part2 10 No index spans all rows 676 10 5 How MySQL optimizes WHERE clauses This section is incomplete MySQL does many optimizations In general when you want to make a slow SELECT WHERE faster the first thing to check is whether or not you can add an index All references between different tables should usually be done with indexes You can use the EXPLAIN command to determine which indexes are used for a SELECT See section 677 7 21 EXPLAIN syntax Get information about a SELECT Some of the optimizations performed by MySQL are listed below Removal of unnecessary parentheses a AND b AND c OR a AND b AND c AND d a AND b AND c OR a AND b AND c AND d Constant folding a b AND b c AND a 5 b 5 AND b c AND a 5 Constant condition removal needed because of constant folding B 5 AND B 5 OR B 6 AND 5 5 OR B 7 AND 5 6 B 5 OR B 6 Constant expressions used by indexes are evaluated only once COUNT on a single table without a WHERE is retrieved directly from the table information This is also done for any NOT NULL expression when used with only one table Early detection of invalid constant expressions MySQL quickly detects that some SELECT statements are impossible and returns no rows HAVING is merged with WHERE if you don t use GROUP BY or group functions COUNT MIN For each sub join a simpler WHERE is constructed to get a fast WHERE evaluation for each sub join and also to skip records as soon as possible All constant tables are read first before any other tables in the query A constant table is An empty table or a table with 1 row A table that is used with a WHERE clause on a UNIQUE index or a PRIMARY KEY where all index parts are used with constant expressions All the following tables are used as constant tables mysql SELECT FROM t WHERE primary key 1 mysql SELECT FROM t1 t2 WHERE t1 primary key 1 AND t2 primary key t1 id The best join combination to join the tables is found by trying all possibilities If all columns in ORDER BY and in GROUP BY come from the same table then this table is preferred first when joining If there is an ORDER BY clause and a different GROUP BY clause or if the ORDER BY or GROUP BY contains columns from tables other than the first table in the join queue a temporary table is created If you use SQL SMALL RESULT MySQL will use an in memory temporary table As DISTINCT is converted to a GROUP BY on all columns DISTINCT combined with ORDER BY will in many cases also need a temporary table Each table index is queried and the best index that spans less than 30 of the rows is used If no such index can be found a quick table scan is used In some cases MySQL can read rows from the index without even consulting the data file If all columns used from the index are numeric then only the index tree is used to resolve the query Before each record is output those that do not match the HAVING clause are skipped Some examples of queries that are very fast mysql SELECT COUNT FROM tbl name mysql SELECT MIN key part1 MAX key part1 FROM tbl name mysql SELECT MAX key part2 FROM tbl name WHERE key part 1 constant mysql SELECT FROM tbl name ORDER BY key part1 key part2 LIMIT 10 mysql SELECT FROM tbl name ORDER BY key part1 DESC key part2 DESC LIMIT 10 The following queries are resolved using only the index tree assuming the indexed columns are numeric mysql SELECT key part1 key part2 FROM tbl name WHERE key part1 val mysql SELECT COUNT FROM tbl name WHERE key part1 val1 AND key part2 val2 mysql SELECT key part2 FROM tbl name GROUP BY key part1 The following queries use indexing to retrieve the rows in sorted order without a separate sorting pass mysql SELECT FROM tbl name ORDER BY key part1 key part2 mysql SELECT FROM tbl name ORDER BY key part1 DESC key part2 DESC 678 10 6 How MySQL optimizes LEFT JOIN A LEFT JOIN B is in MySQL implemented as follows The table B is set to be dependent on table A The table A is set to be dependent on all tables except B that are used in the LEFT JOIN condition All LEFT JOIN conditions are moved to the WHERE clause All standard join optimizations are done with the exception that a table is always read after all tables it is dependent on If there is a circular dependence then MySQL will issue an error All standard WHERE optimzations are done If there is a row in A that matches the WHERE clause but there wasn t any row in B that matched the LEFT JOIN condition then an extra B row is generated with all columns set to NULL 679 10 7 How MySQL opens and closes tables The cache of open tables can grow to a maximum of table cache default 64 this can be changed with with the O table cache option to mysqld A table is never closed except when the cache is full and another thread tries to open a table or if you use mysqladmin refresh or mysqladmin flush tables When the table cache fills up the server uses the following procedure to locate a cache entry to use Tables that are not currently in use are released in least recently used order If the cache is full and no tables can be released but a new table needs to be opened the cache is temporarily extended as necessary If the cache is in a temporarily extended state and a table goes from in use to not in use state it is closed and released from the cache A table is opened for each concurrent access This means that if you have two threads accessing the same table or access the table twice in the same query with AS the table needs to be opened twice The first open of any table takes two file descriptors each additional use of the table takes only one file descriptor The extra descriptor for the first open is used for the index file this descriptor is shared among all threads 680 10 7 1 Drawbacks of creating large numbers of tables in a database If you have many files in a directory open close and create operations will be slow If you execute SELECT statements on many different tables there will be a little overhead when the table cache is full because for every table that has to be opened another must be closed You can reduce this overhead by making the table cache larger 681 10 8 Why so many open tables When you run mysqladmin status you ll see something like this Uptime 426 Running threads 1 Questions 11082 Reloads 1 Open tables 12 This can be somewhat perplexing if you only have 6 tables MySQL is multithreaded so it may have many queries on the same table simultaneously To minimize the problem with two threads having different states on the same file the table is opened independently by each concurrent thread This takes some memory and one extra file descriptor for the data file The index file descriptor is shared between all threads 682 10 9 Using symbolic links for databases and tables You can move tables and databases from the database directory to other locations and replace them with symbolic links to the new locations You might want to do this for example to move a database to a file system with more free space If MySQL notices that a table is a symbolically linked it will resolve the symlink and use the table it points to instead This works on all systems that support the realpath call at least Linux and Solaris support realpath On systems that don t support realpath you should not access the table through the real path and through the symlink at the same time If you do the table will be inconsistent after any update MySQL doesn t support linking of databases by default Things will work fine as long as you don t make a symbolic link between databases Suppose you have a database db1 under the MySQL data directory and then make a symlink db2 that points to db1 shell cd path to datadir shell ln s db1 db2 Now for any table tbl a in db1 there also appears to be a table tbl a in db2 If one thread updates db1 tbl a and another thread updates db2 tbl a there will be problems If you really need this you must change the following code in mysys mf format c if lstat to stat buff Check if it s a symbolic link if S ISLNK stat buff st mode realpath to buff Change the code to this if realpath to buff 683 10 10 How MySQL locks tables All locking in MySQL is deadlock free This is managed by always requesting all needed locks at once at the beginning of a query and always locking the tables in the same order The locking method MySQL uses for WRITE locks works as follows If there are no locks on the table put a write lock on it Otherwise put the lock request in the write lock queue The locking method MySQL uses for READ locks works as follows If there are no write locks on the table put a read lock on it Otherwise put the lock request in the read lock queue When a lock is released the lock is made available to the threads in the write lock queue then to the threads in the read lock queue This means that if you have many updates on a table SELECT statements will wait until there are no more updates To work around this for the case where you want to do many INSERT and SELECT operations on a table you can insert rows in a temporary table and update the real table with the records from the temporary table once in a while This can be done with the following code mysql LOCK TABLES real table WRITE insert table WRITE mysql insert into real table select from insert table mysql delete from insert table mysql UNLOCK TABLES You can use the LOW PRIORITY or HIGH PRIORITY options with INSERT if you want to prioritize retrieval in some specific cases See section 684 7 13 INSERT syntax You could also change the locking code in mysys thr lock c to use a single queue In this case write locks and read locks would have the same priority which might help some applications 685 10 11 How to arrange a table to be as fast small as possible You can get better performance on a table and minimize storage space using the techniques listed below Declare columns to be NOT NULL if possible It makes everything faster and you save one bit per column Take advantage of the fact that all columns have default values Insert values explicitly only when the value to be inserted differs from the default You don t have to insert a value into the first TIMESTAMP column or into an AUTO INCREMENT column in an INSERT statement See section 686 19 4 28 mysql insert id Use the smaller integer types if possible to get smaller tables For example MEDIUMINT is often better than INT If you don t have any variable length columns VARCHAR TEXT or BLOB columns a fixed size record format is used This is much faster but unfortunately may waste some space See section 687 10 16 What are the different row formats Or when should VARCHAR CHAR be used To help MySQL optimize queries better run isamchk analyze on a table after it has been loaded with relevant data This updates a value for each index that indicates the average number of rows that have the same value For unique indexes this is always 1 of course To sort an index and data according to an index use isamchk sort index sort records 1 if you want to sort on index 1 If you have a unique index from which you want to read all records in order according to that index this is a good way to make that faster Note however that this sorting isn t written optimally and will take a long time for a large table For INSERT statements use multiple value lists if possible This is much faster than using separate INSERT statements When loading a table with data use LOAD DATA INFILE This is usually 20 times faster than using a lot of INSERT statements See section 688 7 15 LOAD DATA INFILE syntax You can even get more speed when loading data into a table with many indexes using the following procedure 1 Create the table in mysql or Perl with CREATE TABLE 2 Execute mysqladmin flush tables 3 Use isamchk keys used 0 rq path to db tbl name This will remove all usage of all indexes from the table 4 Insert data into the table with LOAD DATA INFILE 5 If you have pack isam and want to compress the table run pack isam on it 6 Recreate the indexes with isamchk r q path to db tbl name 7 Execute mysqladmin flush tables To get some more speed for both LOAD DATA INFILE and INSERT enlarge the key buffer This can be done with the O key buffer option to mysqld or safe mysqld For example 16M should be a good value if you have much RAM When dumping data as text files for use by other programs use SELECT INTO OUTFILE See section 689 7 15 LOAD DATA INFILE syntax When doing many successive inserts or updates you can get more speed by locking your tables using LOCK TABLES LOAD DATA INFILE and SELECT INTO OUTFILE are atomic so you don t have to use LOCK TABLES when using them See section 690 7 23 LOCK TABLES UNLOCK TABLES syntax To check how fragmented your tables are run isamchk evi on the ISM file See section 691 13 Maintaining a MySQL installation 692 10 12 Table locking issues The table locking code in MySQL is deadlock free MySQL uses table locking instead of row locking or column locking to achieve a very high lock speed For large tables table locking is MUCH better than row locking but there are of course some pitfalls Table locking enables many threads to read from a table at the same time but if a thread wants to write to a table it must first get exclusive access During the update all others threads that want to access this particular table will wait until the update is ready As updates of databases normally are considered to be more important than SELECT all statements that update a table have higher priority than statements that retrieve information from a table This should ensure that updates are not starved because one issues a lot of heavy queries against a specific table One main problem with this is the following A client issues a SELECT that takes a long time to run Another client then issues an INSERT on a used table This client will wait until the SELECT is finished Another client issues another SELECT statement on the same table As INSERT has higher priority than SELECT this SELECT will wait for the INSERT to finish It will also wait for the first SELECT to finish Some possible solutions to this problem are Try to get the SELECT statements to run faster You may have to create some summary tables to do this Start mysqld with low priority inserts This will give all statements that update a table lower priority than a SELECT statement In this case the last SELECT statement in the previous scenario would execute before the INSERT statement You can give a specific INSERT UPDATE or DELETE statement lower priority with the LOW PRIORITY attribute You can specify that all updates from a specific thread should be done with low priority by using the SQL command SET SQL LOW PRIORITY UPDATES 1 See section 693 7 24 SET OPTION syntax You can specify that a specific SELECT is very important with the HIGH PRIORITY attribute See section 694 7 11 SELECT syntax If you mainly mix INSERT and SELECT statements the DELAYED attribute to INSERT will probably solve your problems See section 695 7 13 INSERT syntax If you have problems with SELECT and DELETE the LIMIT option to DELETE may help See section 696 7 10 DELETE syntax 697 10 13 Factors affecting the speed of INSERT statements The time to insert a record consists of Connect 3 Sending query to server 2 Parsing query 2 Inserting record 1 x size of record Inserting indexes 1 x indexes Close 1 Where number is proportional time This does not take into consideration the initial overhead to open tables which is done once for each concurrently running query The size of the table slows down the insertion of indexes by N log N B trees You can speed up insertions by locking your table and or using multiple value lists with INSERT statements Using multiple value lists can be up to 5 times faster than using separate inserts mysql LOCK TABLES a WRITE mysql INSERT INTO a VALUES 1 23 2 34 4 33 mysql INSERT INTO a VALUES 8 26 6 29 mysql UNLOCK TABLES The main speed difference is that the index buffer is flushed to disk only once after all INSERT statements have completed Normally there would be as many index buffer flushes as there are different INSERT statements Locking is not needed if you can insert all rows with a single statement Locking will also lower the total time of multi connection tests but the maximum wait time for some threads will go up because they wait for locks For example thread 1 does 1000 inserts thread 2 3 and 4 does 1 insert thread 5 does 1000 inserts If you don t use locking 2 3 and 4 will finish before 1 and 5 If you use locking 2 3 and 4 probably will not finish before 1 or 5 but the total time should be about 40 faster As INSERT UPDATE and DELETE operations are very fast in MySQL you will obtain better overall performance by adding locks around everything that does more than about 5 inserts or updates in a row If you do very many inserts in a row you could do a LOCK TABLES followed by a UNLOCK TABLES once in a while about each 1000 rows to allow other threads access to the table This would still result in a nice performance gain Of course LOAD DATA INFILE is much faster still If you are inserting a lot of rows from different clients you can get higher speed by using the INSERT DELAYED statement See section 698 7 13 INSERT syntax 699 10 14 Factors affecting the speed of DELETE statements The time to delete a record is exactly proportional to the number of indexes To delete records more quickly you can increase the size of the index cache The default index cache is 1M to get faster deletes it should be increased by several factors try 16M if you have enough memory 700 10 15 How do I get MySQL to run at full speed Start by benchmarking your problem You can take any program from the MySQL benchmark suite normally found in the sql bench directory and modify it for your needs By doing this you can try different solutions to your problem and test which is really the fastest solution for you Start mysqld with the correct options More memory gives more speed if you have it See section 701 10 1 Tuning server parameters Create indexes to make your SELECT statements faster See section 702 10 4 How MySQL uses indexes Optimize your column types to be as efficient as possible For example declere columns to be NOT NULL if possible See section 703 10 11 How to arrange a table to be as fast small as possible MySQL has two different levels of locks Internal locks and external locks The internal locks ensures that all update retrieve operations are atomic run without conflicts from other clients The external locks allows multiple MySQL servers to run on the same data and allows you to use isamchk to check tables without taking down mysqld The skip locking option disables external locking file locking between SQL requests This gives greater speed but has the following consequences You MUST flush all tables with mysqladmin flush tables before you try to check or repair tables with isamchk isamchk d tbl name is always allowed since that simply displays table information You can t run two MySQL servers on the same data files if both are going to update the same tables The skip locking option is on by default when compiling with MIT pthreads because flock isn t fully supported by MIT pthreads on all platforms The only case when you can t use skip locking is if you run multiple MySQL SERVERS not clients on the same data or run isamchk on the table without first flushing the mysqld server tables first You can still use LOCK TABLES UNLOCK TABLES even if you are using skip locking If updates are a problem you can delay updates and then do many updates in a row later Doing many updates in a row is much quicker than doing one at a time On FreeBSD systems if the problem is with MIT pthreads upgrading to FreeBSD 3 0 or higher should help This makes it possible to use Unix sockets with FreeBSD this is quicker than connecting using TCP IP with MIT pthreads and the threads package is much more integrated GRANT checking on the table or column level will decrease performance If your problem is with some explicit MySQL function you can always time this in the MySQL client mysql select benchmark 1000000 1 1 benchmark 1000000 1 1 0 1 row in set 0 32 sec The above shows that MySQL can execute 1 000 000 expressions in 0 32 seconds on a simple PentiumII 400MHz All MySQL functions should be very optimized but there may be some exceptions and the benchmark loop count expression is a great tool to find if this is a problem with your query 704 10 16 What are the different row formats Or when should VARCHAR CHAR be used MySQL dosen t have true SQL VARCHAR types Instead MySQL has three different ways to store records and uses these to emulate VARCHAR If a table doesn t have any VARCHAR BLOB or TEXT columns a fixed row size is used Otherwise a dynamic row size is used CHAR and VARCHAR columns are treated identically from the application s point of view both have trailing spaces removed when the columns are retrieved You can check the format used in a table with isamchk d d means describe the table MySQL has three different table formats fixed length dynamic and compressed These are compared below Fixed length tables This is the default format It s used when the table contains no VARCHAR BLOB or TEXT columns All CHAR NUMERIC and DECIMAL columns are space padded to the column width Very quick Easy to cache Easy to reconstruct after a crash because records are located in fixed positions Doesn t have to be reorganized with isamchk unless a huge number of records are deleted and you want to return free disk space to the operating system Usually requires more disk space than dynamic tables Dynamic tables This format is used if the table contains any VARCHAR BLOB or TEXT columns All string columns are dynamic except those with a length less than 4 Each record is preceded by a bitmap indicating which columns are empty for string columns or zero for numeric columns this isn t the same as columns containing NULL values If a string column has a length of zero after removal of trailing spaces or a numeric column has a value of zero it is marked in the bit map and not saved to disk Non empty strings are saved as a length byte plus the string contents Usually takes much less disk space than fixed length tables Each record uses only as much space as is required If a record becomes larger it is split into as many pieces as required This results in record fragmentation If you update a row with information that extends the row length the row will be fragmented In this case you may have to run isamchk r from time to time to get better performance Use isamchk ei tbl name for some statistics Not as easy to reconstruct after a crash because a record may be fragmented into many pieces and a link fragment may be missing The expected row length for dynamic sized records is 3 number of columns 7 8 number of char columns packed size of numeric columns length of strings number of NULL columns 7 8 There is a penalty of 6 bytes for each link A dynamic record is linked whenever an update causes an enlargement of the record Each new link will be at least 20 bytes so the next enlargement will probably go in the same link If not there will be another link You may check how many links there are with isamchk ed All links may be removed with isamchk r Compressed tables A read only table made with the pack isam utility All customers with extended MySQL email support are entitled to a copy of pack isam for their internal usage The uncompress code exists in all MySQL distributions so that even customers who don t have pack isam can read tables that were compressed with pack isam as long as the table was compressed on the same platform Takes very little disk space Minimises disk usage Each record is compressed separately very little access overhead The header for a record is fixed 1 3 bytes depending on the biggest record in the table Each column is compressed differently Some of the compression types are There is usually a different Huffman table for each column Suffix space compression Prefix space compression Numbers with value 0 are stored using 1 bit If values in an integer column have a small range the column is stored using the smallest possible type For example a BIGINT column 8 bytes may be stored as a TINYINT column 1 byte if all values are in the range 0 to 255 If a column has only a small set of possible values the column type is converted to ENUM A column may use a combination of the above compressions Can handle fixed or dynamic length records but not BLOB or TEXT columns Can be uncompressed with isamchk MySQL can support different index types but the normal type is NISAM This is a B tree index and you can roughly calculate the size for the index file as key length 4 0 67 summed over all keys This is for the worst case when all keys are inserted in sorted order String indexes are space compressed If the first index part is a string it will also be prefix compressed Space compression makes the index file smaller if the string column has a lot of trailing space or is a VARCHAR column that is not always used to the full length Prefix compression helps if there are many strings with an identical prefix 705 10 17 MySQL table types Table types are introduced in MySQL 3 23 When you create a new table you can tell MySQL which table type it should use for the table MySQL will always create a frm file to hold the table and column definitions Depending on the table type the index and data will be stored in other files You can convert tables between different types with the ALTER TABLE statement See section 706 7 7 ALTER TABLE syntax ISAM This is the original MySQL table type This uses a B tree index The index is stored in a file with the ISM extension and the data is stored in file with the ISD extension You can check repair ISAM tables with the isamchk utility See section 707 13 4 Using isamchk for crash recovery ISAM tables are not binary portable across OS Platforms ISAM has the following features properties Compressed and fixed length keys Fixed and dynamic record length 16 keys with 16 key parts key Max key length 256 default Data is stored in machine format Fast but is machine OS dependent MyISAM MyISAM is the default table type in MySQL 3 23 It s based on the ISAM code and has a lot of useful extensions The index is stored in a file with the MYI extension and the data is stored in file with the MYD extension You can check repair ISAM tables with the myisamchk utility See section 708 13 4 Using isamchk for crash recovery The following is new in MyISAM Supports for big files 63 bit on OSes that support big files All data are stored with low byte first This makes the data machine and OS independent All number keys are stored with high byte first to give better compression Internal handling of one AUTO INCREMENT column MyISAM will automatically update this on INSERT UPDATE The AUTO INCREMENT value can be reset with myisamchk This will make AUTO INCREMENT columns faster and old numbers will not be reused Maximum key length is now 500 by default In cases of keys longer than 250 a bigger key block size than the default of 1024 bytes is used for this key Maximum number of keys table enlarged to 32 as default This can be enlarged to 64 without having to recompile myisamchk There is a flag in the MyISAM file that indicates whether or not the table was closed correctly This will soon be used for automatic repair in the MySQL server myisamchk will now mark tables as checked myisamchk fast will only check those tables that don t have this mark myisamchk a stores statistics for key parts and not only for whole keys as in NISAM Dynamic size rows will now be much less fragmented when mixing deletes with updates and inserts This is done by automatically combining adjacent deleted blocks and by extending blocks if the next block is deleted myisampack called pack isam in NISAM can pack BLOB and VARCHARcolumns MyISAM also supports the following things which MySQL will be able to use in the near future BLOB and TEXT columns can be indexed Support for a true VARCHAR type A VARCHAR column starts with a length stored in 2 bytes Tables with VARCHAR may have fixed or dynamic record length VARCHAR and CHAR may be up to 64K All key segments have their own language definition This will enable MySQL to have different language definitions per column NULL values are allowed in indexed columns This takes 0 1 bytes key A hashed computed index can be used for UNIQUE This will allow you to have UNIQUE on any combination of columns in a table You can t search on a UNIQUE computed index however HEAP HEAP tables use a hashed index and are stored in memory This makes them very fast but if MySQL crashes you will lose all data stored in them HEAP is very usable as temporary tables CREATE TABLE test TYPE HEAP SELECT ip SUM downloads as down FROM log table GRO UP BY ip SELECT COUNT ip AVG down from test drop table test Here are some things you should consider when you use HEAP tables You should always use specify MAX ROWS in the CREATE statement to ensure that you accidently do not use all memory Indexes will only be used with and but are VERY fast HEAP tables uses a fixed record length format HEAP doesn t support BLOB TEXT columns HEAP doesn t support AUTO INCREMENT columns HEAP doesn t support an index on a NULL column You can have non unique keys in a HEAP table not that normal with hashed tables HEAP tables are shared between all clients just like any other table Data for HEAP tables are allocated in small blocks The tables are 100 dynamic on inserting No overflow areas and no extra key space is needed Deleted rows are put in a linked list and will be reused when you insert new data into the table To free memory you should execute DELETE FROM heap table or DROP TABLE heap table To ensure that you accidentally don t do anything stupid you can t create HEAP tables bigger than max heap table size 709 11 The MySQL benchmark suite This should contain a technical description of the MySQL benchmark suite and crash me but that description is not written yet Currently you should look at the code and results in the bench directory in the distribution and of course on the web page at 710 http www mysql com crash me choose htmy It is meant to be a benchmark that will tell any user what things a given SQL implementation performs well or poorly at crash me tries to determine what features a database supports and what its capabilities and limitations are by actually running queries For example it determines What column types are supported How many indexes are supported What functions are supported How big a query can be How big a VARCHAR column can be 711 12 MySQL Utilites 712 12 1 Overview of the different MySQL programs All MySQL clients that communicate with the server using the mysqlclient library use the following environment variables Name Description MYSQL UNIX PORT The default socket used for connections to localhost MYSQL TCP PORT The default TCP IP port MYSQL PWD The default password MYSQL DEBUG Debug trace options when debugging TMPDIR The directory where temporary tables files are created Use of MYSQL PWD is insecure See section 713 6 3 Connecting to the MySQL server The mysql client uses the file named in the MYSQL HISTFILE environment variable to save the command line history The default value for the history file is HOME mysql history where HOME is the value of the HOME environment variable All MySQL programs take many different options However every MySQL program provides a help option that you can use to get a full description of the program s different options For example try mysql help You can override default options for all standard client programs with an option file section 714 4 15 4 Option files The list below briefly describes the MySQL programs isamchk Utility to describe check optimize and repair MySQL tables Because isamchk has many functions it is described in its own chapter See section 715 13 Maintaining a MySQL installation make binary release Makes a binary release of a compiled MySQL This could be sent by FTP to pub mysql Incoming on ftp tcx se for the convenience of other MySQL users msql2mysql A shell script that converts mSQL programs to MySQL It doesn t handle all cases but it gives a good start when converting mysql mysql is a simple SQL shell with GNU readline capabilities It supports interactive and non interactive use When used interactively query results are presented in an ASCII table format When used non interactively e g as a filter the result is presented in tab separated format The output format can be changed using command line options You can run scripts simply like this shell mysql database script sql output tab If you have problems due to insufficient memory in the client use the quick option This forces mysql to use mysql use result rather than mysql store result to retrieve the result set mysqlaccess A script that checks the access privileges for a host user and database combination mysqladmin Utility for performing administrative operations such as creating or dropping databases reloading the grant tables flushing tables to disk and reopening log files mysqladmin can also be used to retrieve version process and status information from the server See section 716 12 2 Administering a MySQL server mysqlbug The MySQL bug report script This script should always be used when filing a bug report to the MySQL list mysqld The SQL daemon This should always be running mysqldump Dumps a MySQL database into a file as SQL statements or as tab separated text files Enhanced freeware originally by Igor Romanenko See section 717 12 3 Dumping the structure and data from MySQL databases and tables mysqlimport Imports text files into their respective tables using LOAD DATA INFILE See section 718 12 4 Importing data from text files mysqlshow Displays information about databases tables columns and indexes mysql install db Creates the MySQL grant tables with default privileges This is usually executed only once when first installing MySQL on a system replace A utility program that is used by msql2mysql but that has more general applicability as well replace changes strings in place in files or on the standard input Uses a finite state machine to match longer strings first Can be used to swap strings For example this command swaps a and b in the given files shell replace a b b a file1 file2 safe mysqld A script that starts the mysqld daemon with some safety features such as restarting the server when an error occurs and logging runtime information to a log file 719 12 2 Administering a MySQL server Utility for performing administrative operations The syntax is shell mysqladmin OPTIONS command command option command You can get a list of the options your version of mysqladmin supports by executing mysqladmin help The current mysqladmin supports the following commands create databasename Create a new database drop databasename Delete a database and all its tables extended status Gives an extended status message from the server flush hosts Flush all cached hosts flush logs Flush all logs flush tables Flush all tables flush privileges Reload grant tables same as reload kill id id Kill mysql threads password new password Change old password to new password ping Check if mysqld is alive processlist Show list of active threads in server reload Reload grant tables refresh Flush all tables and close and open logfiles shutdown Take server down status Gives a short status message from the server variables Prints variables available version Get version info from server All commands can be shortened to their unique prefix For example shell mysqladmin proc stat Id User Host db Command Time State Info 6 monty localhost Processlist 0 Uptime 10077 Threads 1 Questions 9 Slow queries 0 Opens 6 Flush table s 1 Open tables 2 Memory in use 1092K Max memory used 1116K The mysqladmin status command result has the following columns Uptime Number of seconds the MySQL server have been up Threads Number of active threads clients Questions Number of questions from clients since mysqld was started Slow queries Queries that has taken more than long query time seconds Opens How many tables mysqld has opened Flush tables Number of flush refresh and reload commands Open tables Number of tables that are open now Memory in use Memory allocated directly by the mysqld code only available when MySQL is compiled with with debug Max memory used Maximum memory allocated directly by the mysqld code only available when MySQL is compiled with with debug 720 12 3 Dumping the structure and data from MySQL databases and tables Utility to dump a database or a collection of database for backup or for transferring the data to another SQL server The dump will contain SQL statements to create the table and or populate the table shell mysqldump OPTIONS database tables If you don t give any tables the whole database will be dumped You can get a list of the options your version of mysqldump supports by executing mysqldump help Note that if you run mysqldump without quick or opt mysqldump will load the whole result set into memory before dumping the result This will probably be a problem if you are dumping a big database mysqldump supports the following options add locks Add LOCK TABLES before and UNLOCK TABLE after each table dump To get faster inserts into MySQL add drop table Add a drop table before each create statement allow keywords Allow creation of column names that are keywords This works by prefixing each column name with the table name c complete insert Use complete insert statements with column names C compress Compress all information between the client and the server if both support compression delayed Insert rows with the INSERT DELAYED command e extended insert Use the new multiline INSERT syntax Gives more compact and faster inserts statements debug option string Trace usage of the program for debugging help Display a help message and exit fields terminated by fields enclosed by fields optionally enclosed by fields escaped by fields terminated by These options are used with the T option and have the same meaning as the corresponding clauses for LOAD DATA INFILE See section 721 7 15 LOAD DATA INFILE syntax F flush logs Flush logs file in the MySQL server before starting the dump f force Continue even if we get an SQL error during a table dump h host Dump data from the MySQL server on the named host The default host is localhost l lock tables Lock all tables for starting the dump t no create info Don t write table creation info The CREATE TABLE statment d no data Don t write any row information for the table This is very useful if you just want to get a dump of the structure for a table opt Same as quick add drop table add locks extended insert use locks Should give you the fastest possible dump for reading into a MySQL server pyour pass password your pass The password to use when connecting to the server If you specify no your pass part mysqldump solicits the password from the terminal P port num port port num The TCP IP port number to use for connecting to a host This is used for connections to hosts other than localhost for which Unix sockets are used q quick Don t buffer query dump directly to stdout Uses mysql use result to do this S path to socket socket path to socket The socket file to use when connecting to localhost which is the default host T tab path to some directory Creates a table name sql file that conntains the SQL CREATE commands and a table name txt file that contains the data for each give table NOTE This only works if mysqldump is run on the same machine as the mysqld daemon The format of the txt file is made according to the fields xxx and lines xxx options u user name user user name The MySQL user name to use when connecting to the server The default value is your Unix login name O var option set variable var option Set the value of a variable The possible variables are listed below v verbose Verbose mode Print out more information what the program does V version Print version information and exit w where where condition Dump only selected records Note that QUOTES are mandatory where user jimf wuserid 1 wuserid 1 The most normal use of mysqldump is probably for making a backup of whole database mysqldump opt database backup file sql But it s also very useful to populate another MySQL server with information from a databas mysqldump opt database mysql host remote host C database 722 12 4 Importing data from text files mysqlimport provides a command line interface to the LOAD DATA INFILE SQL statement Most options to mysqlimport correspond directly to the same options to LOAD DATA INFILE See section 723 7 15 LOAD DATA INFILE syntax mysqlimport is invoked like this shell mysqlimport options filename For each text file named on the command line mysqlimport strips any extension from the filename and uses the result to determine which table to import the file s contents into For example files named patient txt patient text and patient would all be imported into a table named patient mysqlimport supports the following options C compress Compress all information between the client and the server if both support compression debug option string Trace usage of the program for debugging d delete Empty the table before importing the text file fields terminated by fields enclosed by fields optionally enclosed by fields escaped by fields terminated by These options have the same meaning as the corresponding clauses for LOAD DATA INFILE See section 724 7 15 LOAD DATA INFILE syntax f force Ignore errors For example if a table for a text file doesn t exist continue processing any remaining files Without force mysqlimport exits if a table doesn t exist help Display a help message and exit h host name host host name Import data to the MySQL server on the named host The default host is localhost i ignore See the description for the replace option l lock tables Lock ALL tables for writing before processing any text files This ensures that all tables are synchronized on the server L local Read input files from the client By default text files are assumed to be on the server if you connect to localhost which is the default host pyour pass password your pass The password to use when connecting to the server If you specify no your pass part mysqlimport solicits the password from the terminal P port num port port num The TCP IP port number to use for connecting to a host This is used for connections to hosts other than localhost for which Unix sockets are used r replace The replace and ignore options control handling of input records that duplicate existing records on unique key values If you specify replace new rows replace existing rows that have the same unique key value If you specify ignore input rows that duplicate an existing row on a unique key value are skipped If you don t specify either option an error occurs when a duplicate key value is found and the rest of the text file is ignored s silent Silent mode Write output only when errors occur S path to socket socket path to socket The socket file to use when connecting to localhost which is the default host u user name user user name The MySQL user name to use when connecting to the server The default value is your Unix login name v verbose Verbose mode Print out more information what the program does V version Print version information and exit 725 12 5 The MySQL compressed read only table generator pack isam is an extra utility that you get when you order more than 10 licenses or extended support Since pack isam is distributed only in binary form pack isam is available only on some platforms Of course all future updates to pack isam are included in the price pack isam may at some time be included as standard when we get some kind of turnover for MySQL pack isam works by compressing each column in the table separately The information needed to decompress columns is read into memory when the table is opened This results in much better performance when accessing individual records since you only have to uncompress exactly one record not a much larger disk block like when using Stacker on MS DOS Usually pack isam packs the data file 40 70 MySQL uses memory mapping mmap on compressed tables and falls back to normal read write file usage if mmap doesn t work There are currently two limitations with pack isam After packing the table is read only It can t pack BLOB columns yet Fixing these limitations is on our TODO list but with low priority pack isam is invoked like this shell pack isam options filename Each filename should be the name of an index ISM file If you are not in the database directory you should specify the pathname to the file It is permissible to omit the ISM extension pack isam supports the following options b backup Make a backup of the table as tbl name OLD debug debug options Output debug log The debug options string often is d t o filename f force Force packing of the table even if it becomes bigger or if the temporary file exists pack isam creates a temporary file named tbl name TMD while it compresses the table If you kill pack isam the TMD file may not be deleted Normally pack isam exits with an error if it finds that tbl name TMD exists With force pack isam packs the table anyway help Display a help message and exit j big tbl name join big tbl name Join all tables named on the command line into a single table big tbl name All tables that are to be combined MUST be identical same column names and types same indexes etc p packlength Specify the record length storage size in bytes The value should be 1 2 or 3 pack isam stores all rows with length pointers of 1 2 or 3 bytes In most normal cases pack isam can determine the right length value before it begins packing the file but it may notice during the packing process that it could have used a shorter length In this case pack isam will print a note that the next time you pack the same file you could use a shorter record length s silent Silent mode Write output only when errors occur t test Don t pack table only test packing it T dir name tmp dir dir name Use the named directory as the location in which to write the temporary table v verbose Verbose mode Write info about progress and packing result V version Display version information and exit w wait Wait and retry if table is in use If the mysqld server was invoked with the skip locking option it is not a good idea to invoke pack isam if the table might be updated during the packing process The sequence of commands shown below illustrates a typical table compression session shell ls l station rw rw r 1 monty my 994128 Apr 17 19 00 station ISD rw rw r 1 monty my 53248 Apr 17 19 00 station ISM rw rw r 1 monty my 5767 Apr 17 19 00 station frm shell isamchk dvv station ISAM file station Isam version 2 Creation time 1996 03 13 10 08 58 Recover time 1997 02 02 3 06 43 Data records 1192 Deleted blocks 0 Datafile Parts 1192 Deleted data 0 Datafile pointer bytes 2 Keyfile pointer bytes 2 Max datafile length 54657023 Max keyfile length 33554431 Recordlength 834 Record format Fixed length table description Key Start Len Index Type Root Blocksize Rec key 1 2 4 unique unsigned long 1024 1024 1 2 32 30 multip text 10240 1024 1 Field Start Length Type 1 1 1 2 2 4 3 6 4 4 10 1 5 11 20 6 31 1 7 32 30 8 62 35 9 97 35 10 132 35 11 167 4 12 171 16 13 187 35 14 222 4 15 226 16 16 242 20 17 262 20 18 282 20 19 302 30 20 332 4 21 336 4 22 340 1 23 341 8 24 349 8 25 357 8 26 365 2 27 367 2 28 369 4 29 373 4 30 377 1 31 378 2 32 380 8 33 388 4 34 392 4 35 396 4 36 400 4 37 404 1 38 405 4 39 409 4 40 413 4 41 417 4 42 421 4 43 425 4 44 429 20 45 449 30 46 479 1 47 480 1 48 481 79 49 560 79 50 639 79 51 718 79 52 797 8 53 805 1 54 806 1 55 807 20 56 827 4 57 831 4 shell pack isam station ISM Compressing station ISM 1192 records Calculating statistics normal 20 empty space 16 empty zero 12 empty fill 11 pre space 0 end space 12 table lookups 5 zero 7 Original trees 57 After join 17 Compressing file 87 14 shell ls l station rw rw r 1 monty my 127874 Apr 17 19 00 station ISD rw rw r 1 monty my 55296 Apr 17 19 04 station ISM rw rw r 1 monty my 5767 Apr 17 19 00 station frm shell isamchk dvv station ISAM file station Isam version 2 Creation time 1996 03 13 10 08 58 Recover time 1997 04 17 19 04 26 Data records 1192 Deleted blocks 0 Datafile Parts 1192 Deleted data 0 Datafilepointer bytes 3 Keyfile pointer bytes 1 Max datafile length 16777215 Max keyfile length 131071 Recordlength 834 Record format Compressed table description Key Start Len Index Type Root Blocksize Rec key 1 2 4 unique unsigned long 10240 1024 1 2 32 30 multip text 54272 1024 1 Field Start Length Type Huff tree Bits 1 1 1 constant 1 0 2 2 4 zerofill 1 2 9 3 6 4 no zeros zerofill 1 2 9 4 10 1 3 9 5 11 20 table lookup 4 0 6 31 1 3 9 7 32 30 no endspace not always 5 9 8 62 35 no endspace not always no empty 6 9 9 97 35 no empty 7 9 10 132 35 no endspace not always no empty 6 9 11 167 4 zerofill 1 2 9 12 171 16 no endspace not always no empty 5 9 13 187 35 no endspace not always no empty 6 9 14 222 4 zerofill 1 2 9 15 226 16 no endspace not always no empty 5 9 16 242 20 no endspace not always 8 9 17 262 20 no endspace no empty 8 9 18 282 20 no endspace no empty 5 9 19 302 30 no endspace no empty 6 9 20 332 4 always zero 2 9 21 336 4 always zero 2 9 22 340 1 3 9 23 341 8 table lookup 9 0 24 349 8 table lookup 10 0 25 357 8 always zero 2 9 26 365 2 2 9 27 367 2 no zeros zerofill 1 2 9 28 369 4 no zeros zerofill 1 2 9 29 373 4 table lookup 11 0 30 377 1 3 9 31 378 2 no zeros zerofill 1 2 9 32 380 8 no zeros 2 9 33 388 4 always zero 2 9 34 392 4 table lookup 12 0 35 396 4 no zeros zerofill 1 13 9 36 400 4 no zeros zerofill 1 2 9 37 404 1 2 9 38 405 4 no zeros 2 9 39 409 4 always zero 2 9 40 413 4 no zeros 2 9 41 417 4 always zero 2 9 42 421 4 no zeros 2 9 43 425 4 always zero 2 9 44 429 20 no empty 3 9 45 449 30 no empty 3 9 46 479 1 14 4 47 480 1 14 4 48 481 79 no endspace no empty 15 9 49 560 79 no empty 2 9 50 639 79 no empty 2 9 51 718 79 no endspace 16 9 52 797 8 no empty 2 9 53 805 1 17 1 54 806 1 3 9 55 807 20 no empty 3 9 56 827 4 no zeros zerofill 2 2 9 57 831 4 no zeros zerofill 1 2 9 The information printed by pack isam is described below normal The number of columns for which no extra packing is used empty space The number of columns containing values that are only spaces these will occupy 1 bit empty zero The number of columns containing values that are only binary 0 s these will occupy 1 bit empty fill The number of integer columns that don t occupy the full byte range of their type these are changed to a smaller type for example an INTEGER column may be changed to MEDIUMINT pre space The number of decimal columns that are stored with leading space In this case each value will contain a count for the number of leading spaces end space The number of columns that have a lot of trailing space In this case each value will contain a count for the number of trailing spaces table lookup The column had only a small number of different values and that were converted to an ENUM before Huffman compression zero The number of columns for which all values are zero Original trees The initial number of Huffman trees After join The number of distinct Huffman trees left after joining trees to save some header space After a table has been compressed isamchk dvv prints additional information about each field Type The field type may contain the following descriptors constant All rows have the same value no endspace Don t store endspace no endspace not always Don t store endspace and don t do end space compression for all values no endspace no empty Don t store endspace Don t store empty values table lookup The column was converted to an ENUM zerofill n The most significant n bytes in the value are always 0 and are not stored no zeros Don t store zeros always zero 0 values are stored in 1 bit Huff tree The Huffman tree associated with the field Bits The number of bits used in the Huffman tree 726 13 Maintaining a MySQL installation 727 13 1 Using isamchk for table maintenance and crash recovery To check repair ISAM tables ISM and ISD you should use the isamchk utility To check repair MyISAM tables MYI and MYD you should use the myisamchk utility See section 728 10 17 MySQL table types In the following text we will talk about isamchk but everything also applies to myisamchk You can use the isamchk utility to get information about your database tables check and repair them or optimize them The following sections describe how to invoke isamchk including a description of its options how to set up a table maintenance schedule and how to use isamchk to perform its various functions If you run mysqld with skip locking which is the default on some systems like Linux you can t reliably use isamchk to check a table when mysqld is using the same table If you can be sure that no one is accessing the tables through mysqld while you run isamchk you only have to do mysqladmin flush tables before you start checking the tables If you can t guarantee the above then you must take down mysqld while you check the tables If you run isamchk while mysqld is updating the tables you may get a warning that a table is corrupt even if it isn t If you are not using skip locking you can use isamchk to check tables at any time While you do this all clients that try to update the table will wait until isamchk is ready before continuing If you use isamchk to repair or optimize tables you MUST always ensure that the mysqld server is not using the table this also applies if you are using skip locking If you don t take down mysqld you should at least do a mysqladmin flush tables before you run isamchk You can in most cases also use the command OPTIMIZE TABLES to optimize and repair tables but this is not as fast or reliable in case of real fatal errors as isamchk On the other hand OPTIMIZE TABLE is easier to use and you don t have to worry about flushing tables See section 729 7 8 OPTIMIZE TABLE syntax 730 13 1 1 isamchk invocation syntax isamchk is invoked like this shell isamchk options tbl name The options specify what you want isamchk to do They are described below You can also get a list of options by invoking isamchk help With no options isamchk simply checks your table To get more information or to tell isamchk to take corrective action specify options as described below and in the following sections tbl name is the database table you want to check If you run isamchk somewhere other than in the database directory you must specify the path to the file since isamchk has no idea where your database is located Actually isamchk doesn t care whether or not the files you are working on are located in a database directory you can copy the files that correspond to a database table into another location and perform recovery operations on them there You can name several tables on the isamchk command line if you wish You can also specify a name as an index file name with the ISM suffix which allows you to specify all tables in a directory by using the pattern ISM For example if you are in a database directory you can check all the tables in the directory like this shell isamchk ISM If you are not in the database directory you can check all the tables there by specifying the path to the directory shell isamchk path to database dir ISM You can even check all tables in all databases by specifying a wildcard with the path to the MySQL data directory shell isamchk path to datadir ISM isamchk supports the following options a analyze Analyze the distribution of keys This improves join performance by enabling the join optimizer to better choose in which order it should join the tables and which keys it should how use debug debug options Output debug log The debug options string often is d t o filename d description Prints some information about the table e extend check Check the table VERY thoroughly This is necessary only in extreme cases Normally isamchk should find all errors even without this option f force Overwrite old temporary files If you use f when checking tables running isamchk without r isamchk will automatically restart with r on any table for which an error occurs during checking help Display a help message and exit i information Print informational statistics about the table that is checked k keys used Used with r Tell the NISAM table handler to update only the first indexes Higher numbered indexes are deactivated This can be used to get faster inserts Deactivated indexes can be reactivated by using isamchk r l no symlinks Do not follow symbolic links when repairing Normally isamchk repairs the table a symlink points at q quick Used with r to get a faster repair Normally the original data file isn t touched you can specify a second q to force the original data file to be used r recover Recovery mode Can fix almost anything except unique keys that aren t unique o safe recover Recovery mode Uses an old recovery method this is slower than r but can handle a couple of cases that r cannot handle O var option set variable var option Set the value of a variable The possible variables are listed below s silent Silent mode Write output only when errors occur You can use s twice ss to make isamchk very silent S sort index Sort the index tree blocks in high low order This will optimize seeks and will make table scanning by key faster R index num sort records index num Sorts records according to an index This makes your data much more localized and may speed up ranged SELECT and ORDER BY operations on this index It may be VERY slow to do a sort the first time To find out a table s index numbers use SHOW INDEX which shows a table s indexes in the same order that isamchk sees them Indexes are numbered beginning with 1 u unpack Unpack a table that was packed with pack isam v verbose Verbose mode Print more information This can be used with d and e Use v multiple times vv vvv for more verbosity V version Print the isamchk version and exit w wait Wait if the table is locked Possible variables for the set variable O option are key buffer size current value 16776192 read buffer size current value 262136 write buffer size current value 262136 sort buffer size current value 2097144 sort key blocks current value 16 decode bits current value 9 731 13 1 2 isamchk memory usage Memory allocation is important when you run isamchk isamchk uses no more memory than you specify with the O options If you are going to use isamchk on very large files you should first decide how much memory you want it to use The default is to use only about 3M to fix things By using larger values you can get isamchk to operate faster For example if you have more than 32M RAM you could use options such as these in addition to any other options you might specify shell isamchk O sort 16M O key 16M O read 1M O write 1M Using O sort 16M should probably be enough for most cases Be aware that isamchk uses temporary files in TMPDIR If TMPDIR points to a memory file system you may easily get out of memory errors If this happens set TMPDIR to point at some directory with more space and restart isamchk 732 13 2 Setting up a table maintenance regime It is a good idea to perform table checks on a regular basis rather than waiting for problems to occur For maintenance purposes you can use isamchk s to check tables The s option causes isamchk to run in silent mode printing messages only when errors occur It s a good idea to check tables when the server starts up For example whenever the machine has done a reboot in the middle of an update you usually need to check all the tables that could have been affected This is an expected crashed table You could add a test to safe mysqld that runs isamchk to check all tables that have been modified during the last 24 hours if there is an old pid process ID file left after a reboot The pid file is created by mysqld when it starts up and removed when it terminates normally The presence of a pid file at system startup time indicates that mysqld terminated abnormally An even better test would be to check any table whose last modified time is more recent than that of the pid file You should also check your tables regularly during normal system operation At TcX we run a cron job to check all our important tables once a week using a line like this in a crontab file 35 0 0 path to isamchk s path to datadir ISM This prints out information about crashed tables so we can examine and repair them when needed As we haven t had any unexpectedly crashed tables tables that become corrupted for reasons other than hardware trouble for a couple of years now this is really true once a week is more than enough for us We recommend that to start with you execute isamchk s each night on all tables that have been updated during the last 24 hours until you come to trust MySQL as much as we do 733 13 3 Getting information about a table To get a description of a table or statistics about it use the commands shown below We explain some of the information in more detail later isamchk d tbl name Runs isamchk in describe mode to produce a description of your table If you start the MySQL server using the skip locking option isamchk may report an error for a table that is updated while it runs However since isamchk doesn t change the table in describe mode there isn t any risk of destroying data isamchk d v tbl name To produce more information about what isamchk is doing add v to tell it to run in verbose mode isamchk eis tbl name Shows only the most important information from a table It is slow since it must read the whole table isamchk eiv tbl name This is like eis but tells you what is being done Example of isamchk d output ISAM file company ISM Data records 1403698 Deleted blocks 0 Recordlength 226 Record format Fixed length table description Key Start Len Index Type 1 2 8 unique double 2 15 10 multip text packed stripped 3 219 8 multip double 4 63 10 multip text packed stripped 5 167 2 multip unsigned short 6 177 4 multip unsigned long 7 155 4 multip text 8 138 4 multip unsigned long 9 177 4 multip unsigned long 193 1 text Example of isamchk d v output ISAM file company ISM Isam version 2 Creation time 1996 08 28 11 44 22 Recover time 1997 01 12 18 35 29 Data records 1403698 Deleted blocks 0 Datafile Parts 1403698 Deleted data 0 Datafilepointer bytes 3 Keyfile pointer bytes 3 Max datafile length 3791650815 Max keyfile length 4294967294 Recordlength 226 Record format Fixed length table description Key Start Len Index Type Root Blocksize Rec key 1 2 8 unique double 15845376 1024 1 2 15 10 multip text packed stripped 25062400 1024 2 3 219 8 multip double 40907776 1024 73 4 63 10 multip text packed stripped 48097280 1024 5 5 167 2 multip unsigned short 55200768 1024 4840 6 177 4 multip unsigned long 65145856 1024 1346 7 155 4 multip text 75090944 1024 4995 8 138 4 multip unsigned long 85036032 1024 87 9 177 4 multip unsigned long 96481280 1024 178 193 1 text Example of isamchk eis output Checking ISAM file company ISM Key 1 Keyblocks used 97 Packed 0 Max levels 4 Key 2 Keyblocks used 98 Packed 50 Max levels 4 Key 3 Keyblocks used 97 Packed 0 Max levels 4 Key 4 Keyblocks used 99 Packed 60 Max levels 3 Key 5 Keyblocks used 99 Packed 0 Max levels 3 Key 6 Keyblocks used 99 Packed 0 Max levels 3 Key 7 Keyblocks used 99 Packed 0 Max levels 3 Key 8 Keyblocks used 99 Packed 0 Max levels 3 Key 9 Keyblocks used 98 Packed 0 Max levels 4 Total Keyblocks used 98 Packed 17 Records 1403698 M recordlength 226 Packed 0 Recordspace used 100 Empty space 0 Blocks Record 1 00 Recordblocks 1403698 Deleteblocks 0 Recorddata 317235748 Deleted data 0 Lost space 0 Linkdata 0 User time 1626 51 System time 232 36 Maximum resident set size 0 Integral resident set size 0 Non physical pagefaults 0 Physical pagefaults 627 Swaps 0 Blocks in 0 out 0 Messages in 0 out 0 Signals 0 Voluntary context switches 639 Involuntary context switches 28966 Example of isamchk eiv output Checking ISAM file company ISM Data records 1403698 Deleted blocks 0 check file size check delete chain index 1 index 2 index 3 index 4 index 5 index 6 index 7 index 8 index 9 No recordlinks check index reference check data record references index 1 Key 1 Keyblocks used 97 Packed 0 Max levels 4 check data record references index 2 Key 2 Keyblocks used 98 Packed 50 Max levels 4 check data record references index 3 Key 3 Keyblocks used 97 Packed 0 Max levels 4 check data record references index 4 Key 4 Keyblocks used 99 Packed 60 Max levels 3 check data record references index 5 Key 5 Keyblocks used 99 Packed 0 Max levels 3 check data record references index 6 Key 6 Keyblocks used 99 Packed 0 Max levels 3 check data record references index 7 Key 7 Keyblocks used 99 Packed 0 Max levels 3 check data record references index 8 Key 8 Keyblocks used 99 Packed 0 Max levels 3 check data record references index 9 Key 9 Keyblocks used 98 Packed 0 Max levels 4 Total Keyblocks used 9 Packed 17 check records and index references LOTS OF ROW NUMBERS DELETED Records 1403698 M recordlength 226 Packed 0 Recordspace used 100 Empty space 0 Blocks Record 1 00 Recordblocks 1403698 Deleteblocks 0 Recorddata 317235748 Deleted data 0 Lost space 0 Linkdata 0 User time 1639 63 System time 251 61 Maximum resident set size 0 Integral resident set size 0 Non physical pagefaults 0 Physical pagefaults 10580 Swaps 0 Blocks in 4 out 0 Messages in 0 out 0 Signals 0 Voluntary context switches 10604 Involuntary context switches 122798 Here are the sizes of the data and index files for the table used in the preceding examples rw rw r 1 monty tcx 317235748 Jan 12 17 30 company ISD rw rw r 1 davida tcx 96482304 Jan 12 18 35 company ISM Explanations for the types of information isamchk produces are given below The keyfile is the index file Record and row are synonymous ISAM file Name of the ISAM index file Isam version Version of ISAM format Currently always 2 Creation time When the data file was created Recover time When the index data file was last reconstructed Data records How many records are in the table Deleted blocks How many deleted blocks still have reserved space You can optimize your table to minimize this space See section 734 13 4 3 Table optimization Datafile Parts For dynamic record format this indicates how many data blocks there are For an optimized table without fragmented records this is the same as Data records Deleted data How many bytes of non reclaimed deleted data there are You can optimize your table to minimize this space See section 735 13 4 3 Table optimization Datafile pointer The size of the data file pointer in bytes It is usually 2 3 4 or 5 bytes Most tables manage with 2 bytes but this cannot be controlled from MySQL yet For fixed tables this is a record address For dynamic tables this is a byte address Keyfile pointer The size of the index file pointer in bytes It is usually 1 2 or 3 bytes Most tables manage with 2 bytes but this is calculated automatically by MySQL It is always a block address Max datafile length How long the table s data file ISD file can become in bytes Max keyfile length How long the table s key file ISM file can become in bytes Recordlength How much space each record takes in bytes Record format The format used to store table rows The examples shown above use Fixed length Other possible values are Compressed and Packed table description A list of all keys in the table For each key some low level information is presented Key This key s number Start Where in the record this index part starts Len How long this index part is For packed numbers this should always be the full length of the column For strings it may be shorter than the full length of the indexed column because you can index a prefix of a string column Index unique or multip multiple Indicates whether or not one value can exist multiple times in this index Type What data type this index part has This is an NISAM data type with the options packed stripped or empty Root Address of the root index block Blocksize The size of each index block By default this is 1024 but the value may be changed at compile time Rec key This is a statistical value used by the optimizer It tells how many records there are per value for this key A unique key always has a value of 1 This may be updated after a table is loaded or greatly changed with isamchk a If this is not updated at all a default value of 30 is given In the first example above the 9th key is a multi part key with two parts Keyblocks used What percentage of the keyblocks are used Since the table used in the examples had just been reorganized with isamchk the values are very high very near the theoretical maximum Packed MySQL tries to pack keys with a common suffix This can only be used for CHAR VARCHAR DECIMAL keys For long strings like names this can significantly reduce the space used In the third example above the 4th key is 10 characters long and a 60 reduction in space is achieved Max levels How deep the B tree for this key is Large tables with long keys get high values Records How many rows are in the table M recordlength The average record length For tables with fixed length records this is the exact record length Packed MySQL strips spaces from the end of strings The Packed value indicates the percentage savings achieved by doing this Recordspace used What percentage of the data file is used Empty space What percentage of the data file is unused Blocks Record Average number of blocks per record i e how many links a fragmented record is composed of This is always 1 for fixed format tables This value should stay as close to 1 0 as possible If it gets too big you can reorganize the table with isamchk See section 736 13 4 3 Table optimization Recordblocks How many blocks links are used For fixed format this is the same as the number of records Deleteblocks How many blocks links are deleted Recorddata How many bytes in the data file are used Deleted data How many bytes in the data file are deleted unused Lost space If a record is updated to a shorter length some space is lost This is the sum of all such losses in bytes Linkdata When the dynamic table format is used record fragments are linked with pointers 4 to 7 bytes each Linkdata is the sum of the amount of storage used by all such pointers If a table has been compressed with pack isam isamchk d prints additional information about each table column See section 737 12 5 The MySQL compressed read only table generator for an example of this information and a description of what it means 738 13 4 Using isamchk for crash recovery The file format that MySQL uses to store data has been extensively tested but there are always external circumstances that may cause database tables to become corrupted The mysqld process being killed in the middle of a write Unexpected shutdown of the computer for example if the computer is turned off A hardware error This chapter describes how to check for and deal with data corruption in MySQL databases If your tables get corrupted a lot you should try to find the reason for this See section 739 G 1 Debugging a MySQL server When performing crash recovery it is important to understand that each table tbl name in a database corresponds to three files in the database directory File Purpose tbl name frm Table definition form file tbl name ISD Data file tbl name ISM Index file Each of these three file types is subject to corruption in various ways but problems occur most often in data files and index files isamchk works by creating a copy of the ISD data file row by row It ends the repair stage by removing the old ISD file and renaming the new file to the original file name If you use quick isamchk does not create a temporary ISD file but instead assumes that the ISD file is correct and only generates a new index file without touching the ISD file This is safe because isamchk automatically detects if the ISD file is corrupt and aborts the repair in this case You can also give two quick options to isamchk In this case isamchk does not abort on some errors like duplicate key but instead tries to resolve them by modifying the ISD file Normally the use of two quick options is useful only if you have too little free disk space to perform a normal repair In this case you should at least make a backup before running isamchk 740 13 4 1 How to check tables for errors To check a table use the following commands isamchk tbl name This finds 99 99 of all errors What it can t find is corruption that involves ONLY the data file which is very unusual If you want to check a table you should normally run isamchk without options or with either the s or silent option isamchk e tbl name This does a complete and thorough check of all data e means extended check It does a check read of every key for each row to verify that they indeed point to the correct row This may take a LONG time on a big table with many keys isamchk will normally stop after the first error it finds If you want to obtain more information you can add the verbose v option This causes isamchk to keep going up through a maximum of 20 errors In normal usage a simple isamchk with no arguments other than the table name is sufficient isamchk e i tbl name Like the previous command but the i option tells isamchk to print some informational statistics too 741 13 4 2 How to repair tables The symptoms of a corrupted table are usually that queries abort unexpectedly and that you observe errors such as these tbl name frm is locked against change Can t find file tbl name ISM Errcode Got error from table handler Error 135 is an exception in this case Unexpected end of file Record file is crashed In these cases you must repair your tables isamchk can usually detect and fix most things that go wrong The repair process involves up to four stages described below Before you begin you should cd to the database directory and check the permissions of the table files Make sure they are readable by the Unix user that mysqld runs as and to you since you need to access the files you are checking If it turns out you need to modify files they must also be writable by you Stage 1 Checking your tables Run isamchk ISM or isamchk e ISM if you have more time Use the s silent option to suppress unnecessary information You have to repair only those tables for which isamchk announces an error For such tables proceed to Stage 2 If you get weird errors when checking such as out of memory errors or if isamchk crashes go to Stage 3 Stage 2 Easy safe repair First try isamchk r q tbl name r q means quick recovery mode This will attempt to repair the index file without touching the data file If the data file contains everything that it should and the delete links point at the correct locations within the data file this should work and the table is fixed Start repairing the next table Otherwise use the following procedure 1 Make a backup of the data file before continuing 2 Use isamchk r tbl name r means recovery mode This will remove incorrect records and deleted records from the data file and reconstruct the index file 3 If the preceding step fails use isamchk safe recover tbl name Safe recovery mode uses an old recovery method that handles a few cases that regular recovery mode doesn t but is slower If you get weird errors when repairing such as out of memory errors or if isamchk crashes go to Stage 3 Stage 3 Difficult repair You should only reach this stage if the first 16K block in the index file is destroyed or contains incorrect information or if the index file is missing In this case it s necessary to create a new index file Do so as follows 1 Move the data file to some safe place 2 Use the table description file to create new empty data and index files shell mysql db name mysql DELETE FROM tbl name mysql quit 3 Copy the old data file back onto the newly created data file Don t just move the old file back onto the new file you want to retain a copy in case something goes wrong Go back to Stage 2 isamchk r q should work now This shouldn t be an endless loop Stage 4 Very difficult repair You should reach this stage only if the description file has also crashed That should never happen because the description file isn t changed after the table is created 1 Restore the description file from a backup and go back to Stage 3 You can also restore the index file and go back to Stage 2 In the latter case you should start with isamchk r 2 If you don t have a backup but know exactly how the table was created create a copy of the table in another database Remove the new data file then move the description and index files from the other database to your crashed database This gives you new description and index files but leaves the data file alone Go back to Stage 2 and attempt to reconstruct the index file 742 13 4 3 Table optimization To coalesce fragmented records and eliminate wasted space resulting from deleting or updating records run isamchk in recovery mode shell isamchk r tbl name You can optimize a table in the same way using the SQL OPTIMIZE TABLE statement OPTIMIZE TABLE is easier but isamchk is faster isamchk also has a number of other options you can use to improve the performance of a table S sort index R index num sort records index num a analyze For a full description of the option see section 743 13 1 1 isamchk invocation syntax 744 13 5 Log file maintenance When using MySQL with log files you will from time to time want to remove backup old log files and tell MySQL to start logging on new files See section 745 9 2 The update log One a Linux Redhat installation you can use the mysql log rotate script for this If you installed MySQL from an RPM distribution the script should have been installed automatically On other systems you must install a short script yourself that you start from cron to handle log files You can force MySQL to start using new log files by using mysqladmin flush logs or by using the SQL command FLUSH LOGS If you are using MySQL 3 21 you must use mysqladmin refresh The above command does the following If standard logging log is used closes and reopens the log file mysql log as default If update logging log update is used closes the update log and opens a new log file with a higher sequence number If you are using only an update log you only have to flush the logs and then move away the old update log files to a backup If you are using the normal logging you can do something like shell cd mysql data directory shell mv mysql log mysql old shell mysqladmin flush tables and then take a backup and remove mysql old 746 14 Adding new functions to MySQL There are two ways to add new functions to MySQL You can add the function through the user definable function UDF interface User definable functions are added and removed dynamically using the CREATE FUNCTION and DROP FUNCTION statements See section 747 7 29 CREATE FUNCTION DROP FUNCTION syntax You can add the function as a native built in MySQL function Native functions are compiled into the mysqld server and become available on a permanent basis Each method has advantages and disadvantages If you write a user definable function you must install the object file in addition to the server itself If you compile your function into the server you don t need to do that You can add UDFs to a binary MySQL distribution Native functions require you to modify a source distribution If you upgrade your MySQL distribution you can continue to use your previously installed UDFs For native functions you must repeat your modifications each time you upgrade Whichever method you use to add new functions they may be used just like native functions such as ABS or SOUNDEX 748 14 1 Adding a new user definable function For the UDF mechanism to work functions must be written in C or C and your operating system must support dynamic loading The MySQL source distribution includes a file sql udf example cc that defines 5 new functions Consult this file to see how UDF calling conventions work For each function that you want to use in SQL statements you should define corresponding C or C functions In the discussion below the name xxx is used for an example function name To distinquish between SQL and C C usage XXX uppercase indicates a SQL function call and xxx lowercase indicates a C C function call The C C functions that you write to implement the inferface for XXX are xxx required The main function This is where the function result is computed The correspondence between the SQL type and return type of your C C function is shown below SQL type C C type STRING char INTEGER long long REAL double xxx init optional The initialization function for xxx It can be used to Check the number of arguments to XXX Check that the arguments are of a required type or alternatively tell MySQL to coerce arguments to the types you want when the main function is called Allocate any memory required by the main function Specify the maximum length of the result Specify for REAL functions the maximum number of decimals Specify whether or not the result can be NULL xxx deinit optional The deinitialization function for xxx It should deallocate any memory allocated by the initialization function When a SQL statement invokes XXX MySQL calls the initialization function xxx init to let it perform any required setup such as argument checking or memory allocation If xxx init returns an error the SQL statement is aborted with an error message and the main and deinitialization functions are not called Otherwise the main function xxx is called once for each row After all rows have been processed the deinitialization function xxx deinit is called so it can perform any required cleanup All functions must be thread safe not just the main function but the initialization and deinitialization functions as well This means that you are not allowed to allocate any global or static variables that change If you need memory you should allocate it in xxx init and free it in xxx deinit 749 14 1 1 UDF calling sequences The main function should be declared as shown below Note that the return type and parameters differ depending on whether you will declare the SQL function XXX to return STRING INTEGER or REAL in the CREATE FUNCTION statement For STRING functions char xxx UDF INIT initid UDF ARGS args char result unsigned long length char is null char error For INTEGER functions long long xxx UDF INIT initid UDF ARGS args char is null char error For REAL functions double xxx UDF INIT initid UDF ARGS args char is null char error The initialization and deinitialization functions are declared like this my bool xxx init UDF INIT initid UDF ARGS args char message void xxx deinit UDF INIT initid The initid parameter is passed to all three functions It points to a UDF INIT structure that is used to communicate information between functions The UDF INIT structure members are listed below The initialization function should fill in any members that it wishes to change To use the default for a member leave it unchanged my bool maybe null xxx init should set maybe null to 1 if xxx can return NULL The default value is 1 if any of the arguments are declared maybe null unsigned int decimals Number of decimals The default value is the maximum number of decimals in the arguments passed to the main function For example if the function is passed 1 34 1 345 and 1 3 the default would be 3 since 1 345 has 3 decimals unsigned int max length The maximum length of the string result The default value differs depending on the result type of the function For string functions the default is the length of the longest argument For integer functions the default is 21 digits For real functions the default is 13 plus the number of decimals indicated by initid decimals For numeric functions the length includes any sign or decimal point characters char ptr A pointer that the function can use for its own purposes For example functions can use initid ptr to communicate allocated memory between functions In xxx init allocate the memory and assign it to this pointer initid ptr allocated memory In xxx and xxx deinit refer to initid ptr to use or deallocate the memory 750 14 1 2 Argument processing The args parameter points to a UDF ARGS structure which has the members listed below unsigned int arg count The number of arguments Check this value in the initialization function if you want your function to be called with a particular number of arguments For example if args arg count 2 strcpy message XXX requires two arguments return 1 enum Item result arg type The types for each argument The possible type values are STRING RESULT INT RESULT and REAL RESULT To make sure that arguments are of a given type and return an error if they are not check the arg type array in the initialization function For example if args arg type 0 STRING RESULT args arg type 1 INT RESULT strcpy message XXX requires a string and an integer return 1 As an alternative to requiring your function s arguments to be of particular types you can use the initialization function to set the arg type elements to the types you want This causes MySQL to coerce arguments to those types for each call to xxx For example to specify coercion of the first two arguments to string and integer do this in xxx init args arg type 0 STRING RESULT args arg type 1 INT RESULT char args args args communicates information to the initialization function about the general nature of the arguments your function was called with For a constant argument i args args i points to the argument value See below for instructions on how to access the value properly For a non constant argument args args i is 0 A constant argument is an expression that uses only constants such as 3 or 4 7 2 or SIN 3 14 A non constant argument is an expression that refers to values that may change from row to row such as column names or functions that are called with non constant arguments For each invocation of the main function args args contains the actual arguments that are passed for the row currently being processed Functions can refer to an argument i as follows An argument of type STRING RESULT is given as a string pointer plus a length to allow handling of binary data or data of arbitrary length The string contents are available as args args i and the string length is args lengths i You should not assume that strings are null terminated For an argument of type INT RESULT you must cast args args i to a long long value long long int val int val long long args args i For an argument of type REAL RESULT you must cast args args i to a double value double real val real val double args args i unsigned long lengths For the initialization function the lengths array indicates the maximum string length for each argument For each invocation of the main function lengths contains the actual lengths of any string arguments that are passed for the row currently being processed For arguments of types INT RESULT or REAL RESULT lengths still contains the maximum length of the argument as for the initialization function 751 14 1 3 Return values and error handling The initialization function should return 0 if no error occurred and 1 otherwise If an error occurs xxx init should store a null terminated error message in the message parameter The message will be returned to the client The message buffer is MYSQL ERRMSG SIZE characters long but you should try to keep the message to less than 80 characters so that it fits the width of a standard terminal screen The return value of the main function xxx is the function value for long long and double functions For string functions the string is returned in the result and length arguments result is a buffer at least 255 bytes long Set these to the contents and length of the return value For example memcpy result result string 13 length 13 The string function return value normally also points to the result To indicate a return value of NULL in the main function set is null to 1 is null 1 To indicate an error return in the main function set the error parameter to 1 error 1 If xxx sets error to 1 for any row the function value is NULL for the current row and for any subsequent rows processed by the statement in which XXX was invoked xxx will not even be called for subsequent rows Note In MySQL versions prior to 3 22 10 you should set both error and is null error 1 is null 1 752 14 1 4 Compiling and installing user definable functions Files implementing UDFs must be compiled and installed on the host where the server runs This process is described below for the example UDF file udf example cc that is included in the MySQL source distribution This file contains the following functions metaphon returns a metaphon string of the string argument This is something like a soundex string but it s more tuned for English myfunc double returns the sum of the ASCII values of the characters in its arguments divided by the sum of the length of its arguments myfunc int returns the sum of the length of its arguments lookup returns the IP number for a hostname reverse lookup returns the hostname for an IP number The function may be called with a string xxx xxx xxx xxx or four numbers A dynamically loadable file should be compiled as a sharable object file using a command something like this shell gcc shared o udf example so myfunc cc You can easily find out the correct compiler options for your system by running this command in the sql directory of your MySQL source tree shell make udf example o You should run a compile command similar to the one that make displays except that you should remove the c option near the end of the line and add o udf example so to the end of the line On some systems you may need to leave the c on the command Once you compile a shared object containing UDFs you must install it and tell MySQL about it Compiling a shared object from udf example cc produces a file named something like udf example so the exact name may vary from platform to platform Copy this file to some directory searched by ld such as usr lib On many systems you can set the LD LIBRARY or LD LIBRARY PATH environment variable to point at the directory where you have your UDF function files The dopen manual page tells you which variable you should use on your system You should set this in mysql server or safe mysqld and restart mysqld After the library is installed notify mysqld about the new functions with these commands mysql CREATE FUNCTION metaphon RETURNS STRING SONAME udf example so mysql CREATE FUNCTION myfunc double RETURNS REAL SONAME udf example so mysql CREATE FUNCTION myfunc int RETURNS INTEGER SONAME udf example so mysql CREATE FUNCTION lookup RETURNS STRING SONAME udf example so mysql CREATE FUNCTION reverse lookup RETURNS STRING SONAME udf example so Functions can be deleted using DROP FUNCTION mysql DROP FUNCTION metaphon mysql DROP FUNCTION myfunc double mysql DROP FUNCTION myfunc int mysql DROP FUNCTION lookup mysql DROP FUNCTION reverse lookup The CREATE FUNCTION and DROP FUNCTION statements update the system table func in the mysql database The function s name type and shared library name are saved in the table You must have the insert and delete privileges for the mysql database to create and drop functions You should not use CREATE FUNCTION to add a function that has already been created If you need to reinstall a function you should remove it with DROP FUNCTION and then reinstall it with CREATE FUNCTION You would need to do this for example if you recompile a new version of your function so that mysqld gets the new version Otherwise the server will continue to use the old version Active functions are reloaded each time the server starts unless you start mysqld with the skip grant tables option In this case UDF initialization is skipped and UDFs are unavailable An active function is one that has been loaded with CREATE FUNCTION and not removed with DROP FUNCTION 753 14 2 Adding a new native function The procedure for adding a new native function is described below Note that you cannot add native functions to a binary distribution since the procedure involves modifying MySQL source code You must compile MySQL yourself from a source distribution Also note that if you migrate to another version of MySQL e g when a new version is released you will need to repeat the procedure with the new version To add a new native MySQL function follow these steps 1 Add one line to lex h that defines the function name in the sql functions array 2 Add two lines to sql yacc yy One indicates the preprocessor symbol that yacc should define this should be added at the beginning of the file Then define the function parameters and add an item with these parameters to the simple expr parsing rule For an example check all occurrences of SOUNDEX in sql yacc yy to see how this is done 3 In item func h declare a class inheriting from Item num func or Item str func depending on whether your function returns a number or a string 4 In item func cc add one of the following declarations depending on whether you are defining a numeric or string function double Item func newname val longlong Item func newname val int String Item func newname Str String str 5 You should probably also define the following function void Item func newname fix length and dec This function should at least calculate max length based on the given arguments max length is the maximum number of characters the function may return This function should also set maybe null 0 if the main function can t return a NULL value The function can check if any of the function arguments can return NULL by checking the arguments maybe null variable All functions must be thread safe For string functions there are some additional considerations to be aware of The String str argument provides a string buffer that may be used to hold the result The function should return the string that holds the result All current string functions try to avoid allocating any memory unless absolutely necessary 754 15 Adding new procedures to MySQL In MySQL you can define a procedure in C that can access and modify the data in a query before sending it to a client The modification can be done on row by row or GROUP BY level We have in MySQL 3 23 created an example procedure to show you what can be done 755 15 1 Procedure analyse analyse max elements max memory This procedure is defined in the sql sql analyse cc This examines the result from your query and returns an analysis of the results max elements default 256 is the maximum number of distinct values analyse will notice per column This is used by analyse to check if the optimal column type should be of type ENUM max memory default 8192 is the maximum memory analyse should allocate per column while trying to find all distinct values SELECT FROM WHERE PROCEDURE ANALYSE max elements max memory 756 15 2 Writing a procedure For the moment the only documentation for this is the source You can find all information about procedures by examining the following files sql sql analyse cc sql procedure h sql procedure cc sql sql select cc 757 16 MySQL ODBC Support MySQL provides support for ODBC by means of the MyODBC program 758 16 1 Operating systems supported by MyODBC MyODBC is a 32 bit ODBC 2 50 level 0 driver for Windows95 and Windows NT We hope somebody will port it to Windows 3 x 759 16 2 How to report problems with MyODBC MyODBC has been tested with Access Admndemo exe C Builder Centura Team Developer formerly Gupta SQL Windows ColdFusion on Solaris Crystal Reports DataJunction Delphi Excel iHTML FileMaker Pro FoxPro Notes 4 5 4 6 SBSS Perl DBD ODBC Paradox Powerbuilder VC and Visual Basic If you know of any other application that works with MyODBC please mail 760 myodbc lists mysql com about this If you encounter difficulties we would like to have the log file from the ODBC manager the log you get when requesting logs from ODBCADMIN and a MyODBC log This will help shed some light on any problems To get a MyODBC log please tag the Trace MyODBC option flag in the MyODBC connect configure screen The log will be written to file C myodbc log Note that you must use MYSQL DLL and not MYSQL2 DLL for this option to work 761 16 3 Programs known to work with MyODBC Most programs should work with MyODBC but for each of those listed below we have tested it ourselves or gotten confirmation from some user that it works Program Comment Access To make Access work You should have a primary key in the table You should have a timestamp in all tables you want to be able to update Only use double float fields Access fails when comparing with single floats Set the Return matching rows option field when connecting to MySQL Access on NT will report BLOB columns as OLE OBJECTS If you want to have MEMO columns instead you should change the column to TEXT with ALTER TABLE Access can t always handle DATE columns properly If you have a problem with these change the columns to DATETIME In some cases Access may generate illegal SQL queries that MySQL can t understand You can fix this by selecting Query SQLSpecific Pass Through from the Access menu DataJunction You have to change it to output VARCHAR rather than ENUM as it exports the latter in a manner that causes MySQL grief Excel Works Some tips If you have problems with dates try to select them as strings using the CONCAT function For example select CONCAT rise time CONCAT set time from sunrise sunset Values retrieved as strings this way should be correctly recognized as time values by Excel97 The purpose of CONCAT in this example is to fool ODBC into thinking the column is of string type Without the CONCAT ODBC knows the column is of time type and Excel does not understand that Note that this is a bug in Excel because it automatically converts a string to a time This would be great if the source was a text file but is plain stupid when the source is an ODBC connection that reports exact types for each column odbcadmin Test program for ODBC Delphi You must use DBE 3 2 or newer Set the Don t optimize column width option field when connecting to MySQL Also here is some potentially useful delphi code that sets up both an ODBC entry and a BDE entry for MyODBC the BDE entry requires a BDE Alias Editor which may be had for free at a Delphi Super Page near you Thanks to Bryan Brunton 762 bryan flesherfab com for this fReg TRegistry Create fReg OpenKey Software ODBC ODBC INI DocumentsFab True fReg WriteString Database Documents fReg WriteString Description fReg WriteString Driver C WINNT System32 myodbc dll fReg WriteString Flag 1 fReg WriteString Password fReg WriteString Port fReg WriteString Server xmark fReg WriteString User winuser fReg OpenKey Software ODBC ODBC INI ODBC Data Sources True fReg WriteString DocumentsFab MySQL fReg CloseKey fReg Free Memo1 Lines Add DATABASE NAME Memo1 Lines Add USER NAME Memo1 Lines Add ODBC DSN DocumentsFab Memo1 Lines Add OPEN MODE READ WRITE Memo1 Lines Add BATCH COUNT 200 Memo1 Lines Add LANGDRIVER Memo1 Lines Add MAX ROWS 1 Memo1 Lines Add SCHEMA CACHE DIR Memo1 Lines Add SCHEMA CACHE SIZE 8 Memo1 Lines Add SCHEMA CACHE TIME 1 Memo1 Lines Add SQLPASSTHRU MODE SHARED AUTOCOMMIT Memo1 Lines Add SQLQRYMODE Memo1 Lines Add ENABLE SCHEMA CACHE FALSE Memo1 Lines Add ENABLE BCD FALSE Memo1 Lines Add ROWSET SIZE 20 Memo1 Lines Add BLOBS TO CACHE 64 Memo1 Lines Add BLOB SIZE 32 AliasEditor Add DocumentsFab MySQL Memo1 Lines C Builder Tested with BDE 3 0 The only known problem is that when the table schema changes query fields are not updated BDE however does not seem to recognize primary keys only the index PRIMARY though this has not been a problem Visual basic To be able to update a table you must define a primary key for the table 763 16 4 How to fill in the various fields in the ODBC administrator program There are three possibilities for specifying the server name on Windows95 Use the IP address of the server Add a file lmhosts with the following info ip hostname For example 194 216 84 21 my Configure the PC to use DNS Example of how to fill in the ODBC setup Windows DSN name test Description This is my test database MySql Database test Server 194 216 84 21 User monty Password my password Port The value for the Windows DSN name field is any name that is unique in your windows ODBC setup You don t have to specify values for the Server User Password or Port fields in the ODBC setup screen However if you do the values will be used as the defaults later when you attempt to make a connection You have the option of changing the values at that time If the port number is not given the default port 3306 is used If you specify the option Read options from C my cnf the groups client and odbc will be read from the C my cnf file You can use all options that are usable by mysql options See section 764 19 4 36 mysql options 765 16 5 How to get the value of an AUTO INCREMENT column in ODBC A common problem is how to get the value of an automatically generated ID from an INSERT With ODBC you can do something like this assuming that auto is an AUTO INCREMENT field INSERT INTO foo auto text VALUES NULL text SELECT LAST INSERT ID Or if you are just going to insert the ID into another table you can do this INSERT INTO foo auto text VALUES NULL text INSERT INTO foo2 id text VALUES LAST INSERT ID text For the benefit of some ODBC applications at least Delphi and Access the following query can be used to find a newly inserted row SELECT FROM tbl name WHERE auto IS NULL 766 17 Problems and common errors 767 17 1 What to do if MySQL keeps crashing All MySQL versions are tested on many platforms before they are released This doesn t mean that there isn t any bugs in MySQL but that if there are bugs they are very few and can be hard to find If you have a problem it will always help if you try to find out exactly what crashes your system as you will have a much better chance of getting this fixed quickly First you should try to find out whether the problem is that the mysqld daemon dies or whether your problem has to do with your client You can check how long your mysqld server has been up by executing mysqladmin version If mysqld has died you may find the reason for this in the file mysql data directory hostname err Since it is very difficult to know why something is crashing first try to check whether or not things that work for others crash for you Please try the following things Take down the mysqld daemon with mysqladmin shutdown run isamchk silent force ISM on all tables and restart the mysqld daemon This will ensure that you are running from a clean state See section 768 13 Maintaining a MySQL installation Use mysqld log and try to determine from the information in the log whether or not some specific query kills the server 95 of all bugs are related to a particular query Normally this is one of the last queries in the log file just before MySQL restarted You may be able to verify this using the following procedure Take down the MySQL daemon with mysqladmin shutdown Make a backup of files in the MySQL database directory Check the tables with isamchk s ISM to verify that all tables are correct If any table is corrupted repair it with isamchk r path to table ISM Remove or move away any old log files from the MySQL data directory Start the server with safe mysql log If mysqld now dies you can test if the problem is a specific query by restoring the backup and executing mysql mysql log file You can of course do the last test in some other directory than the standard MySQL database directory by starting another MySQL server with safe mysqld data path to backup directory Have you tried the benchmarks They should test MySQL rather well You can also add code that simulates your application The benchmarks can be found in the bench directory in the source distribution or for a binary distribution in the sql bench directory under your MySQL installation directory Try fork test pl and fork2 test pl Check the file mysql data directory hostname err for any errors If you configure MySQL for debugging it will be much easier to gather information about possible errors if something goes wrong Reconfigure MySQL with the with debug option to configure and then recompile See section 769 G 1 Debugging a MySQL server Configuring MySQL for debugging causes a safe memory allocator to be included that can find some errors It also provides a lot of output about what is happening Have you applied the latest patches for your operating system Use the skip locking option to mysqld On some systems the lockd lock manager does not work properly the skip locking option tells mysqld not to use external locking This means that you cannot run 2 mysqld servers on the same data and that you must be careful if you use isamchk but it may be instructive to try the option as a test Have you tried mysqladmin u root processlist when mysqld appears to be running but not responding Sometimes mysqld is not comatose even though you might think so The problem may be that all connections are in use or there may be some internal lock problem mysqladmin processlist will usually be able to make a connection even in these cases and can provide useful information about the current number of connections and their status Run the command mysqladmin i 5 status in a separate window to produce statistics while you run your other queries Try the following 1 Start mysqld from gdb or another debugger 2 Run your test scripts 3 Do back or the backtrace command in your debugger when mysqld core dumps Try to simulate your application with a Perl script to force MySQL to crash or misbehave Or send a normal bug report See section 770 2 3 How to report bugs or problems But be even more detailed than usual Since MySQL works for many people it may be that the crash results from something that exists only on your computer for example an error that is related to your particular system libraries If you have a problem with table with dynamic length rows and you are not using BLOB TEXT columns but only VARCHAR columns you can try to change all VARCHAR to CHAR with ALTER TABLE This will force MySQL to use fixed size rows Fixed size rows take a little extra place but are much more tolerant for corruption The current dynamic row code has been in use at TCX for at least 3 years without any problems but by nature dynamic length rows are more prone to errors so it may be a good idea to try if the above helps 771 17 2 Some common errors when using MySQL 772 17 2 1 MySQL server has gone away error The most common reason for the MySQL server has gone away error is that the server timed out and closed the connection By default the server closes the connection after 8 hours if nothing has happened You can check that the MySQL hasn t died by executing mysqladmin version and examining the uptime If you have a script you just have to issue the query again for the client to do an automatic reconnection You normally can get the following error codes in this case which one you get is OS dependent CR SERVER GONE ERROR The client couldn t send a question to the server CR SERVER LOST The client didn t get an error when writing to the server but it didn t get a full answer or any answer to the question You can also get these errors if you send a query to the server that is incorrect or too large If mysqld gets a packet that is too large or out of order it assumes that something has gone wrong with the client and closes the connection If you need big queries for example if you are working with big BLOB columns you can increase the query limit by starting mysqld with the O max allowed packet option default 1M The extra memory is allocated on demand so mysqld will use more memory only when you issue a big query or when mysqld must return a big result row 773 17 2 2 Can t connect to local MySQL server error A MySQL client can connect to the mysqld server in two different ways Unix sockets which connect through a file in the file system default tmp mysqld sock or TCP IP which connects through a port number Unix sockets are faster than TCP IP but can only be used when connecting to a server on the same computer Unix sockets are used if you don t specify a hostname or if you specify the special hostname localhost The error Can t connect to normally means that there isn t a MySQL server running on the system or that you are using a wrong socket file or TCP IP port when trying to connect to the mysqld server Start by check using ps that there is a process running named mysqld on your server If there isn t any mysqld process you should start one See section 774 4 15 2 Problems starting the MySQL server If a mysqld process is running you can check the server by trying these different connections the port number and socket pathname might be different in your setup of course shell mysqladmin version shell mysqladmin h hostname version shell mysqladmin h hostname port 3306 version shell mysqladmin h ip for your host version shell mysqladmin socket tmp mysql sock version Note the use of backquotes rather than forward quotes with the hostname command these cause the output of hostname i e the current hostname to be substituted into the mysqladmin command Here are some reasons the Can t connect to local MySQL server error might occur mysqld is not running You are running on a system that uses MIT pthreads If you are running on a system that doesn t have native threads mysqld uses the MIT pthreads package See section 775 4 2 Operating systems supported by MySQL However MIT pthreads doesn t support Unix sockets so on such a system you must always specify the hostname explicitly when connecting to the server Try using this command to check the connection to the server shell mysqladmin h hostname version Someone has removed the Unix socket that mysqld uses default tmp mysqld sock You might have a cron job that removes the MySQL socket e g a job that removes old files from the tmp directory You can always run mysqladmin version and check that the socket mysqladmin is trying to use really exists The fix in this case is to change the cron job to not remove mysqld sock or to place the socket somewhere else You can specify a different socket location at MySQL configuration time with this command shell configure with unix socket path path to socket You can also start safe mysqld with the socket path to socket option and set the environment variable MYSQL UNIX PORT to the socket pathname before starting your MySQL clients item You have started the mysqld server with the socket path to socket option If you change the socket pathname for the server you must also notify the MySQL clients about the new path You can do this by setting the environment variable MYSQL UNIX PORT to the socket pathname or by providing the socket path as an argument to the clients You can test the socket with this command shell mysqladmin socket path to socket version You are using Linux and one thread has died core dumped In this case you must kill the other mysqld threads for example with the mysql zap script before you can start a new MySQL server See section 776 17 1 What to do if MySQL keeps crashing If you get the error message Can t connect to MySQL server on some hostname you can try the following things to find out what is the problem Check if the server up by doing telnet your host name tcp ip port number and press RETURN a couple of times If there is a MySQL server running on this port you should get a responses that includes the version number of the running MySQL server If you get an error like telnet Unable to connect to remote host Connection refused then there is no server running on the used port Try connecting to the mysqld daemon on the local machine and check the TCP IP port that mysqld it s configured to use variable port with mysqladmin variables Check that your mysqld server is not started with the skip networking option 777 17 2 3 Host is blocked error If you get a error like this Host hostname is blocked because of many connection errors Unblock with mysqladmin flush hosts This means that mysqld has gotten a lot max connect errors of connect requests from the host hostname that have been interrupted in the middle After max connect errors failed requests mysqld assumes that something is wrong like a attack from a cracker and blocks the site from further connections until someone executes the command mysqladmin flush hosts By default mysqld blocks a host after 10 connection errors You can easily adjust this by starting the server like this shell safe mysqld O max connect errors 10000 Note that if you get this error message for a given host you should first check that there isn t anything wrong with TCP IP connections from that host If your TCP IP connections aren t working it won t do you any good to increase the value of the max connect errors variable 778 17 2 4 Out of memory error If you issue a query and get something like the following error mysql Out of memory at line 42 malloc c mysql needed 8136 byte 8k memory in use 12481367 bytes 12189k ERROR 2008 MySQL client ran out of memory Note that the error refers to the MySQL client mysql The reason for this error is simply that the client does not have enough memory to store the whole result To remedy the problem first check that your query is correct Is it reasonable that it should return so many rows If so you can use mysql quick which uses mysql use result to retrieve the result set This places less of a load on the client but more on the server 779 17 2 5 Packet too large error When a MySQL client or the mysqld server gets a packet bigger than max allowed packet bytes it issues a Packet too large error and closes the connection If you are using the mysql client you may specify a bigger buffer by starting the client with mysql set variable max allowed packet 8M If you are using other clients that do not allow you to specify the maximum packet size such as DBI you need to set the packet size when you start the server You cau use a command line option to mysqld to set max allowed packet to a larger size For example if you are expecting to store the full length of a BLOB into a table you ll need to start the server with the set variable max allowed packet 24M option 780 17 2 6 The table is full error This error occurs when an in memory temporary table becomes larger than tmp table size bytes To avoid this problem you can use the O tmp table size option to mysqld to increase the temporary table size or use the SQL option SQL BIG TABLES before you issue the problematic query See section 781 7 24 SET OPTION syntax You can also start mysqld with the big tables option This is exactly the same as using SQL BIG TABLES for all queries 782 17 2 7 Commands out of sync error in client If you get Commands out of sync You can t run this command now in your client code you are calling client functions in the wrong order This can happen for example if you are using mysql use result and try to execute a new query before you have called mysql free result It can also happen if you try to execute two queries that return data without a mysql use result or mysql store result in between 783 17 2 8 Ignoring user error If you get the following error Found wrong password for user some user some host Ignoring user This means that when mysqld was started or when it reloaded the permissions tables it found an entry in the user table with an invalid password As a result the entry is simply ignored by the permission system Possible causes of and fixes for this problem You may be running a new version of mysqld with an old user table You can check this by executing mysqlshow mysql user to see if the password field is shorter than 16 characters If so you can correct this condition by running the scripts add long password script The user has an old password 8 chararacters long and you didn t start mysqld with the old protocol option Update the user in the user table with a new password or restart mysqld with old protocol You have specified a password in the user table without using the PASSWORD function Use mysql to update the user in the user table with a new password Make sure to use the PASSWORD function mysql update user set password PASSWORD your password where user XXX 784 17 2 9 Table xxx doesn t exist error If you get the error Table xxx doesn t exist or Can t find file xxx errno 2 this means that no table exists in the current database with the name xxx Note that as MySQL uses directories and files to store databases and tables the database and table names are case sensitive On Win32 the databases and tables names are not case sensitive but all references to a given table within a query must use the same case You can check which tables you have in the current database with SHOW TABLES See section 785 7 20 SHOW syntax Get information about tables columns 786 17 3 How MySQL handles a full disk When a disk full condition occurs MySQL does the following It checks once every minute to see whether or not there is enough space to write the current row If there is enough space it continues as if nothing had happened Every 6 minutes it writes an entry to the log file warning about the disk full condition To alleviate the problem you can take the following actions To continue you only have to free enough disk space to insert all records To abort the thread you must send a mysqladmin kill to the thread The thread will be aborted the next time it checks the disk in 1 minute Note that other threads may be waiting for the table that caused the disk full condition If you have several locked threads killing the one thread that is waiting on the disk full condition will allow the other threads to continue 787 17 4 How to run SQL commands from a text file The mysql client typically is used interactively like this shell mysql database However it s also possible to put your SQL commands in a file and tell mysql to read its input from that file To do so create a text file text file that contains the commands you wish to execute Then invoke mysql as shown below shell mysql database text file You can also start your text file with a USE db name statement In this case it is unnecessary to specify the database name on the command line shell mysql text file See section 788 12 1 Overview of the different MySQL programs 789 17 5 Where MySQL stores temporary files MySQL uses the value of the TMPDIR environment variable as the pathname of the directory in which to store temporary files If you don t have TMPDIR set MySQL uses the system default which is normally tmp or usr tmp If the file system containing your temporary file directory is too small you should edit safe mysqld to set TMPDIR to point to a directory in a file system where you have enough space You can also set the temporary directory using the tmpdir option to mysqld MySQL creates all temporary files as hidden files This ensures that the temporary files will be removed if mysqld is terminated The disadvantage of using hidden files is that you will not see a big temporary file that fills up the file system in which the temporary file directory is located When sorting ORDER BY or GROUP BY MySQL normally uses one or two temporary files The maximum disk space needed is length of what is sorted sizeof database pointer number of matched rows 2 sizeof database pointer is usually 4 but may grow in the future for really big tables For some SELECT queries MySQL also creates temporary SQL tables These are not hidden and have names of the form SQL ALTER TABLE and OPTIMIZE TABLE create a temporary table in the same directory as the original table 790 17 6 How to protect tmp mysql sock from being deleted If you have problems with the fact that anyone can delete the MySQL communication socket tmp mysql sock you can on most versions of Unix protect your tmp file system by setting the sticky bit on it Log in as root and do the following shell chmod s tmp This will protect your tmp file system so that files can be deleted only by their owners or the superuser root You can check if the sticky bit is set by executing ls ld tmp If the last permission bit is t the bit is set 791 17 7 Access denied error See section 792 6 6 How the privilege system works And especially see section 793 6 13 Causes of Access denied errors 794 17 8 How to run MySQL as a normal user The MySQL server mysqld can be started and run by any user In order to change mysqld to run as Unix user user name you must do the following 1 Stop the server if it s running use mysqladmin shutdown 2 Change the database directories and files so that user name has privileges to read and write files in them you may need to do this as the Unix root user shell chown R user name path to mysql datadir If directories or files within the MySQL data directory are symlinks you ll also need to follow those links and change the directories and files they point to chown R may not follow symlinks for you 3 Start the server as user user name or if you are using MySQL 3 22 or later start mysqld as the Unix root user and use the user user name option mysqld will switch to run as Unix user user name before accepting any connections 4 If you are using the mysql server script to start mysqld when the system is rebooted you should edit mysql server to use su to run mysqld as user user name or to invoke mysqld with the user option No changes to safe mysqld are necessary At this point your mysqld process should be running fine and dandy as the Unix user user name One thing hasn t changed though the contents of the permissions tables By default right after running the permissions table install script mysql install db the MySQL user root is the only user with permission to access the mysql database or to create or drop databases Unless you have changed those permissions they still hold This shouldn t stop you from accessing MySQL as the MySQL root user when you re logged in as a Unix user other than root just specify the u root option to the client program Note that accessing MySQL as root by supplying u root on the command line has nothing to do with MySQL running as the Unix root user or indeed as other Unix user The access permissions and user names of MySQL are completely separate from Unix user names The only connection with Unix user names is that if you don t provide a u option when you invoke a client program the client will try to connect using your Unix login name as your MySQL user name If your Unix box itself isn t secured you should probably at least put a password on the MySQL root users in the access tables Otherwise any user with an account on that machine can run mysql u root db name and do whatever he likes 795 17 9 Problems with file permissions If you have problems with file permissions for example if mysql issues the following error message when you create a table ERROR Can t find file path with filename frm Errcode 13 Then the environment variable UMASK might be set incorrectly when mysqld starts up The default umask value is 0660 You can change this behavior by starting safe mysqld as follows shell UMASK 384 600 in octal shell export UMASK shell path to safe mysqld 796 17 10 File not found If you get ERROR not found errno 23 Can t open file errno 24 or any other error with errno 23 or errno 24 from MySQL it means that you haven t allocated enough file descriptors for MySQL You can use the perror utility to get a description of what the error number means shell perror 23 File table overflow shell perror 24 Too many open files The problem here is that mysqld is trying to keep open too many files simultaneously You can either tell mysqld not to open so many files at once or increase the number of file descriptors available to mysqld To tell mysqld to keep open fewer files at a time you can make the table cache smaller by using the O table cache 32 option to safe mysqld the default value is 64 Reducing the value of max connections will also reduce the number of open files the default value is 90 To change the number of file descriptors available to mysqld modify the safe mysqld script There is a commented out line ulimit n 256 in the script You can remove the character to uncomment this line and change the number 256 to change the number of file descriptors available to mysqld ulimit can increase the number of file descriptors but only up to the limit imposed by the operating system If you need to increase the OS limit on the number of file descriptors available to each process consult the documentation for your operating system Note that if you run the tcsh shell ulimit will not work tcsh will also report incorrect values when you ask for the current limits In this case you should start safe mysqld with sh 797 17 11 Problems using DATE columns The format of a DATE value is YYYY MM DD According to ANSI SQL no other format is allowed You should use this format in UPDATE expressions and in the WHERE clause of SELECT statements For example mysql SELECT FROM tbl name WHERE date 1997 05 05 As a convenience MySQL automatically converts a date to a number if the date is used in a numeric context and vice versa It is also smart enough to allow a relaxed string form when updating and in a WHERE clause that compares a date to a TIMESTAMP DATE or a DATETIME column Relaxed form means that any non numeric character may be used as the separator between parts For example 1998 08 15 and 1998 08 15 are equivalent MySQL can also convert a string containing no separators such as 19980815 provided it makes sense as a date The special date 0000 00 00 can be stored and retrieved as 0000 00 00 When using a 0000 00 00 date through MyODBC it will automatically be converted to NULL in MyODBC 2 50 12 and above because ODBC can t handle this kind of date Since MySQL performs the conversions described above the following statements work mysql INSERT INTO tbl name idate VALUES 19970505 mysql INSERT INTO tbl name idate VALUES 19970505 mysql INSERT INTO tbl name idate VALUES 97 05 05 mysql INSERT INTO tbl name idate VALUES 1997 05 05 mysql INSERT INTO tbl name idate VALUES 1997 05 05 mysql INSERT INTO tbl name idate VALUES 0000 00 00 mysql SELECT idate FROM tbl name WHERE idate 1997 05 05 mysql SELECT idate FROM tbl name WHERE idate 19970505 mysql SELECT mod idate 100 FROM tbl name WHERE idate 19970505 mysql SELECT idate FROM tbl name WHERE idate 19970505 However the following will not work mysql SELECT idate FROM tbl name WHERE STRCMP idate 19970505 0 STRCMP is a string function so it converts idate to a string and performs a string comparison It does not convert 19970505 to a date and perform a date comparison Note that MySQL does no checking whether or not the date is correct If you store an incorrect date such as 1998 2 31 the wrong date will be stored If the date cannot be converted to any reasonable value a 0 is stored in the DATE field This is mainly a speed issue and we think it is up to the application to check the dates and not the server 798 17 12 Timezone problems If you have a problem with SELECT NOW returning values in GMT and not your local time you have to set the TZ environment variable to your current timezone This should be done for the environment in which the server runs for example in safe mysqld or mysql server 799 17 13 Case sensitivity in searches By default MySQL searches are case insensitive although there are some character sets that are never case insensitive such as czech That means that if you search with col name LIKE a you will get all column values that start with A or a If you want to make this search case sensitive use something like INDEX col name A 0 to check a prefix Or use STRCMP col name A 0 if the column value must be exactly A Simple comparison operations sorting and grouping are based on each character s sort value Characters with the same sort value like E e and e are treated as the same character LIKE comparisons are done on the uppercase value of each character E e but E e If you want a column always to be treated in case sensitive fashion declare it as BINARY See section 800 7 6 CREATE TABLE syntax If you are using Chinese data in the so called big5 encoding you want to make all character columns BINARY This works because the sorting order of big5 encoding characters is based on the order of ASCII codes 801 17 14 Problems with NULL values The concept of the NULL value is a common source of confusion for newcomers to SQL who often think that NULL is the same thing as an empty string This is not the case For example the following statements are completely different mysql INSERT INTO my table phone VALUES NULL mysql INSERT INTO my table phone VALUES Both statements insert a value into the phone column but the first inserts a NULL value and the second inserts an empty string The meaning of the first can be regarded as phone number is not known and the meaning of the second can be regarded as she has no phone In SQL the NULL value is always false in comparison to any other value even NULL An expression that contains NULL always produces a NULL value unless otherwise indicated in the documentation for the operators and functions involved in the expression All columns in the following example return NULL mysql SELECT NULL 1 NULL CONCAT Invisible NULL If you want to search for column values that are NULL you cannot use the NULL test The following statement returns no rows because expr NULL is FALSE for any expression mysql SELECT FROM my table WHERE phone NULL To look for NULL values you must use the IS NULL test The following shows how to find the NULL phone number and the empty phone number mysql SELECT FROM my table WHERE phone IS NULL mysql SELECT FROM my table WHERE phone In MySQL as in many other SQL servers you can t index columns that can have NULL values You must declare such columns NOT NULL Conversely you cannot insert NULL into an indexed column When reading data with LOAD DATA INFILE empty columns are updated with If you want a NULL value in a column you should use N in the text file The literal word NULL may also be used under some circumstances See section 802 7 15 LOAD DATA INFILE syntax When using ORDER BY NULL values are presented first If you sort in descending order using DESC NULL values are presented last When using GROUP BY all NULL values are regarded as equal To help with NULL handling you can use the IS NULL and IS NOT NULL operators and the IFNULL function For some column types NULL values are handled specially If you insert NULL into the first TIMESTAMP column of a table the current date and time is inserted If you insert NULL into an AUTO INCREMENT column the next number in the sequence is inserted 803 17 15 Problems with alias You can use alias to refer to a column in the GROUP BY ORDER BY or in the HAVING part Aliases can also be used to give columns more better names SELECT SQRT a b as rt FROM table name GROUP BY rt HAVING rt 0 SELECT id COUNT AS cnt FROM table name GROUP BY id HAVING cnt 0 SELECT id AS Customer identity FROM table name Note that you ANSI SQL doesn t allow you to refer to an alias in a WHERE clause This is because that when the WHERE code is executed the column value may not yet be determinated For example the following query is illegal SELECT id COUNT AS cnt FROM table name WHERE cnt 0 GROUP BY id The WHERE statement is executed to determinate which rows should be included in the GROUP BY part while HAVING is used to decide which rows from the result set should be used 804 17 16 Deleting rows from related tables As MySQL doesn t support sub selects or use of more than one table in the DELETE statement you should use the following approach to delete rows from 2 related tables 1 SELECT the rows based on some WHERE condition in the main table 2 DELETE the rows in the main table based on the same condition 3 DELETE FROM related table WHERE related column IN selected rows If the total number of characters in the query with related column is more than 1 048 576 the default value of max allowed packet you should split it into smaller parts and execute multiple DELETE statements You will probably get the fastest DELETE by only deleting 100 1000 related column id s per time if the related column is an index If the related column isn t an index the speed is independent of the number of arguments in the IN clause 805 17 17 Solving problems with no matching rows If you have a complicated query with many tables that doesn t return any rows you should use the following procedure to find out what is wrong with your query 1 Test the query with EXPLAIN and check if you can find something that is obviously wrong See section 806 7 21 EXPLAIN syntax Get information about a SELECT 2 Select only those fields that are used in the WHERE clause 3 Remove one table at a time from the query until it returns some rows If the tables are big it s a good idea to use LIMIT 10 with the query 4 Do a SELECT for the column that should have matched a row against the table that was last removed from the query 5 If you are comparing FLOAT or DOUBLE columns with numbers that have decimals you can t use This problem is common in most computer languages because floating point values are not exact values mysql SELECT FROM table name WHERE float column 3 5 mysql SELECT FROM table name WHERE float column between 3 45 and 3 55 In most cases changing the FLOAT to a DOUBLE will fix this 6 If you still can t find out what s wrong create a minimal test that can be run with mysql test query sql that shows your problems You can create a test file with mysqldump quick database tables query sql Take the file up in a editor remove some insert lines if there are too many of these and add your select statement last in the file Test that you still have your problem by doing shell mysqladmin create test2 shell mysql test2 query sql Post the test file using mysqlbug to 807 mysql lists mysql com 808 17 18 Problems with ALTER TABLE If ALTER TABLE dies with an error like this Error on rename of database name frm to database B a frm Errcode 17 The problem may be that MySQL has crashed in a previous ALTER TABLE and there is an old table named A something or B something lying around In this case go to the MySQL data directory and delete all files that have names starting with A or B You may want to move them elsewhere instead of deleting them ALTER TABLE works the following way Create a new table named A xxx with the requested changes All rows from the old table are copied to A xxx The old table is renamed B xxx A xxx is renamed to your old table name B xxx is deleted If something goes wrong with the renaming operation MySQL tries to undo the changes If something goes seriously wrong this shouldn t happen of course MySQL may leave the old table as B xxx but a simple rename should get your data back 809 17 19 How to change the order of columns in a table The whole point of SQL is to abstract the application from the data storage format You should always specify the order in wish you wish to retrieve your data For example SELECT col name1 col name2 col name3 FROM tbl name will return columns in the order col name1 col name2 col name3 whereas SELECT col name1 col name3 col name2 FROM tbl name will return columns in the order col name1 col name3 col name2 You should NEVER in an application use SELECT and retrieve the columns based on their position because the order in which columns are returned CANNOT be guaranteed over time A simple change to your database may cause your application to fail rather dramatically If you want to change the order of columns anyway you can do it as follows 1 Create a new table with the columns in the right order 2 Execute INSERT INTO new table SELECT fields in new table order FROM old table 3 Drop or rename old table 4 ALTER TABLE new table RENAME old table 810 18 Solving some common problems with MySQL 811 18 1 Database replication The most general way to replicate a database is to use the update log See section 812 9 2 The update log This requires one database that acts as a master to which data changes are made and one or more other databases that act as slaves To update a slave just run mysql update log Supply host user and password options that are appropriate for the slave database and use the update log from the master database as input If you never delete anything from a table you can use a TIMESTAMP column to find out which rows have been inserted or changed in the table since the last replication by comparing to the time when you did the replication last time and only copy these rows to the mirror It is possible to make a two way updating system using both the update log for deletes and timestamps on both sides But in that case you must be able to handle conflicts when the same data have been changed in both ends You probably want to keep the old version to help with deciding what has been updated Because replication in this case is done with SQL statements you should not use the following functions in statements that update the database they may not return the same value as in the original database DATABASE GET LOCK and RELEASE LOCK RAND USER SYSTEM USER or SESSION USER VERSION All time functions are safe to use as the timestamp is sent to the mirror if needed LAST INSERT ID is also safe to use 813 18 2 Database backups Since MySQL tables are stored as files it is easy to do a backup To get a consistent backup do a LOCK TABLES on the relevant tables See section 814 7 23 LOCK TABLES UNLOCK TABLES syntax You only need a read lock this allows other threads to continue to query the tables while you are making a copy of the files in the database directory If you want to make a SQL level backup you can use SELECT INTO OUTFILE Another way to backup a database is to use the mysqldump program 1 Do a full backup of your databases shell mysqldump tab path to some dir lock tables opt You can also simply copy all table files frm ISD and ISM files as long as the server isn t updating anything 2 Stop mysqld if it s running then start it with the log update option You will get log files with names of the form hostname n where n is a number that is incremented each time you execute mysqladmin refresh or mysqladmin flush logs the FLUSH LOGS statement or restart the server These log files provide you with the information you need to replicate changes to the database that are made subsequent to the point at which you executed mysqldump If you have to restore something try to recover your tables using isamchk r first That should work in 99 9 of all cases If isamchk fails try the following procedure 1 Restore the original mysqldump backup 2 Execute the following command to re run the updates in the update logs shell ls 1 t r hostname 0 9 xargs cat mysql ls is used to get all the log files in the right order You can also do selective backups with SELECT INTO OUTFILE file name FROM tbl name and restore with LOAD DATA INFILE file name REPLACE To avoid duplicate records you need a PRIMARY KEY or a UNIQUE key in the table The REPLACE keyword causes old records to be replaced with new ones when a new record duplicates an old record on a unique key value 815 18 3 Running multiple MySQL servers on the same machine There are circumstances when you might want to run multiple servers on the same machine For example you might want to test a new MySQL release while leaving your existing production setup undisturbed Or you might be an Internet service provider that wants to provide independent MySQL installations for different customers If you want to run multiple servers the easiest way is to compile the servers with different TCP IP ports and socket files so they are not both listening to the same TCP IP port or socket file Assume an existing server is configured for the default port number and socket file Then configure the new server with a configure command something like this shell configure with tcp port port number with unix socket file name prefix usr local mysql 3 22 9 Here port number and file name should be different than the default port number and socket file pathname and the prefix value should specify an installation directory different than the one under which the existing MySQL installation is located You can check the socket and port used by any currently executing MySQL server with this command shell mysqladmin h hostname port port number variables If you have a MySQL server running on the port you used you will get a list of some of the most important configurable variables in MySQL including the socket name You should also edit the initialization script for your machine probably mysql server to start and kill multiple mysqld servers You don t have to recompile a new MySQL server just to start with a different port and socket You can change the port and socket to be used by specifying them at runtime as options to safe mysqld shell path to safe mysqld socket file name port port number If you run the new server on the same database directory as another server with logging enabled you should also specify the name of the log files to safe mysqld with log and log update Otherwise both servers may be trying to write to the same log file Warning Normally you should never have two servers that update data in the same database If your OS doesn t support fault free system locking this may lead to unpleasant surprises If you want to use another database directory for the second server you can use the datadir path option to safe mysqld When you want to connect to a MySQL server that is running with a different port than the port that is compiled into your client you can use one of the following methods Start the client with host hostname port port numer or host localhost socket file name In your C or Perl programs you can give the port and socket arguments when connecting to the MySQL server Set the MYSQL UNIX PORT and MYSQL TCP PORT environment variables to point to the Unix socket and TCP IP port before you start your clients If you normally use a specific socket or port you should place commands to set these environment variables in your login file See section 816 12 1 Overview of the different MySQL programs Specify the default socket and TCP IP port in the my cnf file in your home directory See section 817 4 15 4 Option files 818 19 MySQL client tools and APIs 819 19 1 MySQL C API The C API code is distributed with MySQL It is included in the mysqlclient library and allows C programs to access a database Many of the clients in the MySQL source distribution are written in C If you are looking for examples that demonstrate how to use the C API take a look at these clients Most of the other client APIs all except Java use the mysqlclient library to communicate with the MySQL server This means that for example you can take advantage of many of the same environment variables that are used by other client programs because they are referenced from the library See section 820 12 1 Overview of the different MySQL programs for a list of these variables The client has a maximum communication buffer size The size of the buffer that is allocated initially 16K bytes is automatically increased up to the maximum size the default maximum is 24M Since buffer sizes are increased only as demand warrants simply increasing the default maximum limit does not in inself cause more resources to be used This size check is mostly a check for erroneous queries and communication packets The communication buffer must be large enough to contain a single SQL statement for client to server traffic and one row of returned data for server to client traffic Each thread s communication buffer is dynamically enlarged to handle any query or row up to the maximum limit For example if you have BLOB values that contain up to 16M of data you must have a communication buffer limit of at least 16M in both server and client The client s default maximum is 24M but the default maximum in the server is 1M You can increase this by changing the value of the max allowed packet parameter when the server is started See section 821 10 1 Tuning server parameters The MySQL server shrinks each communication buffer to net buffer length bytes after each query For clients the size of the buffer associated with a connection is not decreased until the connection is closed at which time client memory is reclaimed 822 19 2 C API datatypes MYSQL This structure represents a handle to one database connection It is used for almost all MySQL functions MYSQL RES This structure represents the result of a query that returns rows SELECT SHOW DESCRIBE EXPLAIN The information returned from a query is called the result set in the remainder of this section MYSQL ROW This is a type safe representation of one row of data It is currently implemented as an array of counted byte strings You cannot treat these as null terminated strings if field values may contain binary data because such values may contain null bytes internally Rows are obtained by calling mysql fetch row MYSQL FIELD This structure contains information about a field such as the field s name type and size Its members are described in more detail below You may obtain the MYSQL FIELD structures for each field by calling mysql fetch field repeatedly Field values are not part of this structure they are contained in a MYSQL ROW structure MYSQL FIELD OFFSET This is a type safe representation of an offset into a MySQL field list Used by mysql field seek Offsets are field numbers within a row beginning at zero my ulonglong The type used for the number of rows and for mysql affected rows mysql num rows and mysql insert id This type provides a range of 0 to 1 84e19 On some systems attempting to print a value of type my ulonglong will not work To print such a value convert it to unsigned long and use a lu print format Example printf Number of rows lu n unsigned long mysql num rows result The MYSQL FIELD structure contains the members listed below char name The name of the field char table The name of the table containing this field if it isn t a calculated field For calculated fields the table value is a NULL pointer char def The default value of this field set only if you use mysql list fields enum enum field types type The type of the field The type value may be one of the following Type value Type meaning FIELD TYPE TINY TINYINT field FIELD TYPE SHORT SMALLINT field FIELD TYPE LONG INTEGER field FIELD TYPE INT24 MEDIUMINT field FIELD TYPE LONGLONG BIGINT field FIELD TYPE DECIMAL DECIMAL or NUMERIC field FIELD TYPE FLOAT FLOAT field FIELD TYPE DOUBLE DOUBLE or REAL field FIELD TYPE TIMESTAMP TIMESTAMP field FIELD TYPE DATE DATE field FIELD TYPE TIME TIME field FIELD TYPE DATETIME DATETIME field FIELD TYPE YEAR YEAR field FIELD TYPE STRING String CHAR or VARCHAR field FIELD TYPE BLOB BLOB or TEXT field use max length to determine the maximum length FIELD TYPE SET SET field FIELD TYPE ENUM ENUM field FIELD TYPE NULL NULL type field FIELD TYPE CHAR Deprecated use FIELD TYPE TINY instead You can use the IS NUM macro to test whether or not a field has a numeric type Pass the type value to IS NUM and it will evaluate to TRUE if the field is numeric if IS NUM field type printf Field is numeric n unsigned int length The width of the field unsigned int max length The maximum width of the field for the result set If you used mysql list fields this contains the maximum length for the field unsigned int flags Different bit flags for the field The flags value may have zero or more of the following bits set Flag value Flag meaning NOT NULL FLAG Field can t be NULL PRI KEY FLAG Field is part of a primary key UNIQUE KEY FLAG Field is part of a unique key MULTIPLE KEY FLAG Field is part of a key UNSIGNED FLAG Field has the UNSIGNED attribute ZEROFILL FLAG Field has the ZEROFILL attribute BINARY FLAG Field has the BINARY attribute AUTO INCREMENT FLAG Field has the AUTO INCREMENT attribute ENUM FLAG Field is an ENUM deprecated BLOB FLAG Field is a BLOB or TEXT deprecated TIMESTAMP FLAG Field is a TIMESTAMP deprecated Use of the BLOB FLAG ENUM FLAG and TIMESTAMP FLAG flags is deprecated because they indicate the type of a field rather than an attribute of its type It is preferable to test field type against FIELD TYPE BLOB FIELD TYPE ENUM or FIELD TYPE TIMESTAMP instead The example below illustrates a typical use of the flags value if field flags NOT NULL FLAG printf Field can t be null n You may use the following convenience macros to determine the boolean status of the flags value IS NOT NULL flags True if this field is defined as NOT NULL IS PRI KEY flags True if this field is a primary key IS BLOB flags True if this field is a BLOB or TEXT deprecated test field type instead unsigned int decimals The number of decimals for numeric fields 823 19 3 C API function overview The functions available in the C API are listed below and are described in greater detail in the next section See section 824 19 4 C API function descriptions mysql affected rows Returns the number of rows affected by the last UPDATE DELETE or INSERT query mysql close Closes a server connection mysql connect Connects to a MySQL server This function is deprecated use mysql real connect instead mysql create db Creates a database This function is deprecated use the SQL command CREATE DATABASE instead mysql data seek Seeks to an arbitrary row in a query result set mysql debug Does a DBUG PUSH with the given string mysql drop db Drops a database This function is deprecated use the SQL command DROP DATABASE instead mysql dump debug info Makes the server write debug information to the log mysql eof Determines whether or not the last row of a result set has been read This function is deprecated mysql errno or mysql error may be used instead mysql errno Returns the error number for the most recently invoked MySQL function mysql error Returns the error message for the most recently invoked MySQL function mysql escape string Escapes special characters in a string for use in a SQL statement mysql fetch field Returns the type of the next table field mysql fetch field direct Returns the type of a table field given a field number mysql fetch fields Returns an array of all field structures mysql fetch lengths Returns the lengths of all columns in the current row mysql fetch row Fetches the next row from the result set mysql field seek Puts the column cursor on a specified column mysql field count Returns the number of result columns for the most recent query mysql field tell Returns the position of the field cursor used for the last mysql fetch field mysql free result Frees memory used by a result set mysql get client info Returns client version information mysql get host info Returns a string describing the connection mysql get proto info Returns the protocol version used by the connection mysql get server info Returns the server version number mysql info Returns information about the most recently executed query mysql init Gets or initializes a MYSQL structure mysql insert id Returns the ID generated for an AUTO INCREMENT column by the previous query mysql kill Kill a given thread mysql list dbs Returns database names matching a simple regular expression mysql list fields Returns field names matching a simple regular expression mysql list processes Returns a list of the current server threads mysql list tables Returns table names matching a simple regular expression mysql num fields Returns the number of columns in a result set mysql num rows Returns the number of rows in a result set mysql options Set connect options for mysql connect mysql ping Checks whether or not the connection to the server is working reconnecting as necessary mysql query Executes a SQL query specified as a null terminated string mysql real connect Connects to a MySQL server mysql real query Executes a SQL query specified as a counted string mysql reload Tells the server to reload the grant tables mysql row seek Seeks to a row in a result set using value returned from mysql row tell mysql row tell Returns the row cursor position mysql select db Connects to a database mysql shutdown Shuts down the database server mysql stat Returns the server status as a string mysql store result Retrieves a complete result set to the client mysql thread id Returns the current thread ID mysql use result Initiates a row by row result set retrieval To connect to the server call mysql init to initialize a connection handler then call mysql real connect with that handler along with other information such as the hostname user name and password When you are done with the connection call mysql close to terminate it While a connection is active the client may send SQL queries to the server using mysql query or mysql real query The difference between the two is that mysql query expects the query to be specified as a null terminated string whereas mysql real query expects a counted string If the string contains binary data which may include null bytes you must use mysql real query For each non SELECT query e g INSERT UPDATE DELETE you can found out how many rows were affected changed by calling mysql affected rows For SELECT queries you retrieve the selected rows as a result set Note that some statements are SELECT like in that they return rows These include SHOW DESCRIBE and EXPLAIN They should be treated the same way as SELECT statements There are two ways for a client to process result sets One way is to retrieve the entire result set all at once by calling mysql store result This function acquires from the server all the rows returned by the query and stores them in the client The second way is for the client to initiate a row by row result set retrieval by calling mysql use result This function initializes the retrieval but does not actually get any rows from the server In both cases you access rows by calling mysql fetch row With mysql store result mysql fetch row accesses rows that have already been fetched from the server With mysql use result mysql fetch row actually retrieves the row from the server Information about as the size of the data values in each row is available by calling mysql fetch lengths After you are done with a result set call mysql free result to free the memory used for it The two retrieval mechanisms are complementary Client programs should choose the approach that is most appropriate for their requirements In practice clients tend to use mysql store result more commonly An advantage of mysql store result is that since the rows have all been fetched to the client you not only can access rows sequentially you can move back and forth in the result set using mysql data seek or mysql row seek to change the current row position within the result set You can also find out how many rows there are by calling mysql num rows On the other hand the memory requirements for mysql store result may be very high for large result sets and you are more likely to encounter out of memory conditions An advantage of mysql use result is that the client requires less memory for the result set since it maintains only one row at a time and since there is less allocation overhead mysql use result can be faster Disadvantages are that you must process each row quickly to avoid tying up the server you don t have random access to rows within the result set you can only access rows sequentially and you don t know how many rows are in the result set until you have retrieved them all Furthermore you must retrieve all the rows even if you determine in mid retrieval that you ve found the information you were looking for The API makes it possible for clients to respond appropriately to queries retrieving rows only as necessary without knowing whether or not the query is a SELECT You can do this by calling mysql store result after each mysql query or mysql real query If the result set call succeeds the query was a SELECT and you can read the rows If the result set call fails call mysql field count to determine whether or not a result was actually to be expected If mysql field count returns zero the query returned no data indicating that it was an INSERT UPDATE DELETE etc and thus not expected to return rows If mysql field count is non zero the query should have returned rows but didn t This indicates that the query was a SELECT that failed See the description for mysql field count for an example of how this can be done Both mysql store result and mysql use result allow you to obtain information about the fields that make up the result set the number of fields their names and types etc You can access field information sequentially within the row by calling mysql fetch field repeatedly or by field number within the row by calling mysql fetch field direct The current field cursor position may be changed by calling mysql field seek Setting the field cursor affects subsequent calls to mysql fetch field You can also get information for fields all at once by calling mysql fetch fields For detecting and reporting errors MySQL provides access to error information by means of the mysql errno and mysql error functions These return the error code or error message for the most recently invoked function that can succeed or fail allowing you to determine when an error occurred and what it was 825 19 4 C API function descriptions In the descriptions below a parameter or return value of NULL means NULL in the sense of the C programming language not a MySQL NULL value Functions that return a value generally return a pointer or an integer Unless specified otherwise functions returning a pointer return a non NULL value to indicate success or a NULL value to indicate an error and functions returning an integer return zero to indicate success or non zero to indicate an error Note that non zero means just that Unless the function description says otherwise do not test against a value other than zero if result correct error if result 0 incorrect error if result 1 incorrect error When a function returns an error the Errors subsection of the function description lists the possible types of errors You can find out which of these occurred by calling mysql errno A string representation of the error may be obtained by calling mysql error 826 19 4 1 mysql affected rows my ulonglong mysql affected rows MYSQL mysql 19 4 1 1 Description Returns the number of rows affected changed by the last UPDATE DELETE or INSERT query May be called immediately after mysql query for UPDATE DELETE or INSERT statements For SELECT statements mysql affected rows works like mysql num rows mysql affected rows is currently implemented as a macro 19 4 1 2 Return values An integer greater than zero indicates the number of rows affected or retrieved Zero indicates that no records matched the WHERE clause in the query or that no query has yet been executed 1 indicates that the query returned an error or that for a SELECT query mysql affected rows was called prior to calling mysql store result 19 4 1 3 Errors None 19 4 1 4 Example mysql query mysql UPDATE products SET cost cost 1 25 WHERE group 10 printf d products updated mysql affected rows mysql 827 19 4 2 mysql close void mysql close MYSQL mysql 19 4 2 1 Description Closes a previously opened connection mysql close also deallocates the connection handle pointed to by mysql if the handle was allocated automatically by mysql init or mysql real connect 19 4 2 2 Return values None 19 4 2 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 828 19 4 3 mysql connect MYSQL mysql connect MYSQL mysql const char host const char user const char passwd 19 4 3 1 Description This function is deprecated It is preferable to use mysql real connect instead mysql connect attempts to establish a connection to a MySQL database engine running on host mysql connect must complete successfully before you can execute any of the other API functions with the exception of mysql get client info The meanings of the parameters are the same as for the corresponding parameters for mysql real connect See the description of that function for more information 19 4 3 2 Return values Same as for mysql real connect 19 4 3 3 Errors Same as for mysql real connect 829 19 4 4 mysql create db int mysql create db MYSQL mysql const char db 19 4 4 1 Description Creates the database named by the db parameter This function is deprecated It is preferable to use mysql query to issue a SQL CREATE DATABASE statement instead 19 4 4 2 Return values Zero if the database was created successfully Non zero if an error occurred 19 4 4 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 19 4 4 4 Example if mysql create db mysql my database fprintf stderr Failed to create new database Error s n mysql error mysql 830 19 4 5 mysql data seek void mysql data seek MYSQL RES result unsigned int offset 19 4 5 1 Description Seeks to an arbitrary row in a query result set This requires that the result set structure contains the entire result of the query so mysql data seek may be used in conjunction only with mysql store result not with mysql use result The offset should be a value in the range from 0 to mysql num rows result 1 19 4 5 2 Return values None 19 4 5 3 Errors None 831 19 4 6 mysql debug void mysql debug char debug 19 4 6 1 Description Does a DBUG PUSH with the given string mysql debug uses the Fred Fish debug library To use this function you must compile the client library to support debugging See section 832 G 1 Debugging a MySQL server See section 833 G 2 Debugging a MySQL client 19 4 6 2 Return values None 19 4 6 3 Errors None 19 4 6 4 Example The call shown below causes the client library to generate a trace file in tmp client trace on the client machine mysql debug d t O tmp client trace 834 19 4 7 mysql drop db int mysql drop db MYSQL mysql const char db 19 4 7 1 Description Drops the database named by the db parameter This function is deprecated It is preferable to use mysql query to issue a SQL DROP DATABASE statement instead 19 4 7 2 Return values Zero if the database was dropped successfully Non zero if an error occurred 19 4 7 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 19 4 7 4 Example if mysql drop db mysql my database fprintf stderr Failed to drop the database Error s n mysql error mysql 835 19 4 8 mysql dump debug info int mysql dump debug info MYSQL mysql 19 4 8 1 Description Instructs the server to write some debug information to the log The connected user must have the process privilege for this to work 19 4 8 2 Return values Zero if the command was successful Non zero if an error occurred 19 4 8 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 836 19 4 9 mysql eof my bool mysql eof MYSQL RES result 19 4 9 1 Description This function is deprecated mysql errno or mysql error may be used instead mysql eof determines whether or not the last row of a result set has been read If you acquire a result set from a successful call to mysql store result the client receives the entire set in one operation In this case a NULL return from mysql fetch row always means the end of the result set has been reached and it is unnecessary to call mysql eof On the other hand if you use mysql use result to initiate a result set retrieval the rows of the set are obtained from the server one by one as you call mysql fetch row repeatedly Because an error may occur on the connection during this process a NULL return value from mysql fetch row does not necessarily mean the end of the result set was reached normally In this case you can use mysql eof to determine what happened mysql eof returns a non zero value if the end of the result set was reached and zero if an error occurred Historically mysql eof predates the standard MySQL error functions mysql errno and mysql error Since those error functions provide the same information their use is preferred over mysql eof which is now deprecated In fact they provide more information since mysql eof returns only a boolean value whereas the error functions indicate a reason for the error when one occurs 19 4 9 2 Return values Zero if an error occurred Non zero if the end of the result set has been reached 19 4 9 3 Errors None 19 4 9 4 Example The following example shows how you might use mysql eof mysql query mysql SELECT FROM some table result mysql use result mysql while row mysql fetch row result do something with data if mysql eof result mysql fetch row failed due to an error fprintf stderr Error s n mysql error mysql However you can achieve the same effect with the standard MySQL error functions mysql query mysql SELECT FROM some table result mysql use result mysql while row mysql fetch row result do something with data if mysql errno mysql mysql fetch row failed due to an error fprintf stderr Error s n mysql error mysql 837 19 4 10 mysql errno unsigned int mysql errno MYSQL mysql 19 4 10 1 Description For the connection specified by mysql mysql errno returns the error code for the most recently invoked API function that can succeed or fail A return value of zero means that no error occurred Client error message numbers are listed in the MySQL errmsg h header file Server error message numbers are listed in mysqld error h 19 4 10 2 Return values An error code value Zero if no error occurred 19 4 10 3 Errors None 838 19 4 11 mysql error char mysql error MYSQL mysql 19 4 11 1 Description For the connection specified by mysql mysql error returns the error message for the most recently invoked API function that can succeed or fail An empty string is returned if no error occurred This means the following two tests are equivalent if mysql errno mysql an error occurred if mysql error mysql 0 0 an error occurred The language of the client error messages may be changed by recompiling the MySQL client library Currently you can choose error messages in several different languages See section 839 9 1 What languages are supported by MySQL 19 4 11 2 Return values A character string that describes the error An empty string if no error occurred 19 4 11 3 Errors None 840 19 4 12 mysql escape string unsigned int mysql escape string char to const char from unsigned int length 19 4 12 1 Description Encodes the string in from to an escaped SQL string that can be sent to the server in a SQL statement and places the result in to Characters encoded are NUL ASCII 0 n r and see section 841 7 1 Literals how to write strings and numbers The string pointed to by from must be length bytes long not including the terminating null byte You must allocate the to buffer to be at least length 2 1 bytes long When mysql escape string returns the contents of to will be a null terminated string The return value is the length of the encoded string not including the terminating null character 19 4 12 2 Example char query 1000 end end strmov query INSERT INTO test table values end end mysql escape string end What s this 11 end end end end mysql escape string end binary data 0 r n 16 end end if mysql real query mysql query unsigned int end query fprintf stderr Failed to insert row Error s n mysql error mysql The strmov function used in the example is included in the mysqlclient library and works like strcpy but returns a pointer to the terminating null of the first parameter 19 4 12 3 Return values The length of the value placed into to not including the terminating null character 19 4 12 4 Errors None 842 19 4 13 mysql fetch field MYSQL FIELD mysql fetch field MYSQL RES result 19 4 13 1 Description Returns the definition of one column of a result set as a MYSQL FIELD structure Call this function repeatedly to retrieve information about all columns in the result set mysql fetch field returns NULL when no more fields are left mysql fetch field is reset to return information about the first field each time you execute a new SELECT query The field returned by mysql fetch field is also affected by calls to mysql field seek If you ve called mysql query to perform a SELECT on a table but have not called mysql store result MySQL returns the default blob length 8K bytes if you call mysql fetch field to ask for the length of a BLOB field The 8K size is chosen because MySQL doesn t know the maximum length for the BLOB This should be made configurable sometime Once you ve retrieved the result set field max length contains the length of the largest value for this column in the specific query 19 4 13 2 Return values The MYSQL FIELD structure for the current column NULL if no columns are left 19 4 13 3 Errors None 19 4 13 4 Example MYSQL FIELD field while field mysql fetch field result printf field name s n field name 843 19 4 14 mysql fetch fields MYSQL FIELD mysql fetch fields MYSQL RES result 19 4 14 1 Description Returns an array of all MYSQL FIELD structures for a result set Each structure provides the field definition for one column of the result set 19 4 14 2 Return values An array of MYSQL FIELD structures for all columns of a result set 19 4 14 3 Errors None 19 4 14 4 Example unsigned int num fields unsigned int i MYSQL FIELD fields num fields mysql num fields result fields mysql fetch fields result for i 0 i num fields i printf Field u is s n i fields i name 844 19 4 15 mysql fetch field direct MYSQL FIELD mysql fetch field direct MYSQL RES result unsigned int fieldnr 19 4 15 1 Description Given a field number fieldnr for a column within a result set returns that column s field definition as a MYSQL FIELD structure You may use this function to retrieve the definition for an arbitrary column The value of fieldnr should be in the range from 0 to mysql num fields result 1 19 4 15 2 Return values The MYSQL FIELD structure for the specified column 19 4 15 3 Errors None 19 4 15 4 Example unsigned int num fields unsigned int i MYSQL FIELD field num fields mysql num fields result for i 0 i num fields i field mysql fetch field direct result i printf Field u is s n i field name 845 19 4 16 mysql fetch lengths unsigned long mysql fetch lengths MYSQL RES result 19 4 16 1 Description Returns the lengths of the columns of the current row within a result set If you plan to copy field values this length information is also useful for optimization because you can avoid calling strlen In addition if the result set contains binary data you must use this function to determine the size of the data because strlen returns incorrect results for any field containing null characters The length for empty columns and for columns containing NULL values is zero To see how to distinguish these two cases see the description for mysql fetch row 19 4 16 2 Return values An array of unsigned long integers representing the size of each column not including any terminating null characters NULL if an error occurred 19 4 16 3 Errors mysql fetch lengths is valid only for the current row of the result set It returns NULL if you call it before calling mysql fetch row or after retrieving all rows in the result 19 4 16 4 Example MYSQL ROW row unsigned long lengths unsigned int num fields unsigned int i row mysql fetch row result if row num fields mysql num fields result lengths mysql fetch lengths result for i 0 i num fields i printf Column u is lu bytes in length n i lengths i 846 19 4 17 mysql fetch row MYSQL ROW mysql fetch row MYSQL RES result 19 4 17 1 Description Retrieves the next row of a result set When used after mysql store result mysql fetch row returns NULL when there are no more rows to retrieve When used after mysql use result mysql fetch row returns NULL when there are no more rows to retrieve or if an error occurred The number of values in the row is given by mysql num fields result If row holds the return value from a call to mysql fetch row pointers to the values are accessed as row 0 to row mysql num fields result 1 NULL values in the row are indicated by NULL pointers The lengths of the field values in the row may be obtained by calling mysql fetch lengths Empty fields and fields containing NULL both have length 0 you can distinguish these by checking the pointer for the field value If the pointer is NULL the field is NULL otherwise the field is empty 19 4 17 2 Return values A MYSQL ROW structure for the next row NULL if there are no more rows to retrieve or if an error occurred 19 4 17 3 Errors CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 19 4 17 4 Example MYSQL ROW row unsigned int num fields unsigned int i num fields mysql num fields result while row mysql fetch row result unsigned long lengths lengths mysql fetch lengths result for i 0 i num fields i printf s int lengths i row i row i NULL printf n 847 19 4 18 mysql field count unsigned int mysql field count MYSQL mysql If you are using a version of MySQL earlier than 3 22 24 you should use unsigned int mysql num fields MYSQL mysql instead 19 4 18 1 Description Returns the number of columns for the most recent query on the connection The normal use of this function is when mysql store result returned NULL and thus you have no result set pointer In this case you can call mysql field count to determine whether or not mysql store result should have produced a non empty result This allows the client program to take proper action without knowing whether or not the query was a SELECT or SELECT like statement The example shown below illustrates how this may be done See section 848 19 4 50 Why is it that after mysql query returns success mysql store result sometimes returns NULL 19 4 18 2 Return values An unsigned integer representing the number of fields in a result set 19 4 18 3 Errors None 19 4 18 4 Example MYSQL RES result unsigned int num fields unsigned int num rows if mysql query mysql query string error else query succeeded process any data returned by it result mysql store result mysql if result there are rows num fields mysql num fields result retrieve rows then call mysql free result result else mysql store result returned nothing should it have if mysql field count mysql 0 query does not return data it was not a SELECT num rows mysql affected rows mysql else mysql store result should have returned data fprintf stderr Error s n mysql error mysql An alternative is to replace the mysql field count mysql call with mysql errno mysql In this case you are checking directly for an error from mysql store result rather than inferring from the value of mysql field count whether or not the statement was a SELECT 849 19 4 19 mysql field seek MYSQL FIELD OFFSET mysql field seek MYSQL RES result MYSQL FIELD OFFSET offset 19 4 19 1 Description Sets the field cursor to the given offset The next call to mysql fetch field will retrieve the field definition of the column associated with that offset To seek to the beginning of a row pass an offset value of zero 19 4 19 2 Return values The previous value of the field cursor 19 4 19 3 Errors None 850 19 4 20 mysql field tell MYSQL FIELD OFFSET mysql field tell MYSQL RES result 19 4 20 1 Description Returns the position of the field cursor used for the last mysql fetch field This value can be used as an argument to mysql field seek 19 4 20 2 Return values The current offset of the field cursor 19 4 20 3 Errors None 851 19 4 21 mysql free result void mysql free result MYSQL RES result 19 4 21 1 Description Frees the memory allocated for a result set by mysql store result mysql use result mysql list dbs etc When you are done with a result set you must free the memory it uses by calling mysql free result 19 4 21 2 Return values None 19 4 21 3 Errors None 852 19 4 22 mysql get client info char mysql get client info void 19 4 22 1 Description Returns a string that represents the client library version 19 4 22 2 Return values A character string that represents the MySQL client library version 19 4 22 3 Errors None 853 19 4 23 mysql get host info char mysql get host info MYSQL mysql 19 4 23 1 Description Returns a string describing the type of connection in use including the server host name 19 4 23 2 Return values A character string representing the server host name and the connection type 19 4 23 3 Errors None 854 19 4 24 mysql get proto info unsigned int mysql get proto info MYSQL mysql 19 4 24 1 Description Returns the protocol version used by current connection 19 4 24 2 Return values An unsigned integer representing the protocol version used by the current connection 19 4 24 3 Errors None 855 19 4 25 mysql get server info char mysql get server info MYSQL mysql 19 4 25 1 Description Returns a string that represents the server version number 19 4 25 2 Return values A character string that represents the server version number 19 4 25 3 Errors None 856 19 4 26 mysql info char mysql info MYSQL mysql 19 4 26 1 Description Retrieves a string providing information about the most recently executed query but only for the statements listed below For other statements mysql info returns NULL The format of the string varies depending on the type of query as described below The numbers are illustrative only the string will contain values appropriate for the query INSERT INTO SELECT String format Records 100 Duplicates 0 Warnings 0 INSERT INTO VALUES String format Records 3 Duplicates 0 Warnings 0 LOAD DATA INFILE String format Records 1 Deleted 0 Skipped 0 Warnings 0 ALTER TABLE String format Records 3 Duplicates 0 Warnings 0 Note that mysql info returns a non NULL value for the INSERT VALUES statement only if multiple value lists are specified in the statement 19 4 26 2 Return values A character string representing additional information about the most recently executed query NULL if no information is available for the query 19 4 26 3 Errors None 857 19 4 27 mysql init MYSQL mysql init MYSQL mysql 19 4 27 1 Description Allocates or initializes a MYSQL object suitable for mysql real connect If mysql is a NULL pointer the function allocates initializes and returns a new object Otherwise the object is initialized and the address of the object is returned If mysql init allocates a new object it will be freed when mysql close is called to close the connection 19 4 27 2 Return values An initialized MYSQL handle NULL if there was insufficient memory to allocate a new object 19 4 27 3 Errors In case of insufficient memory NULL is returned 858 19 4 28 mysql insert id my ulonglong mysql insert id MYSQL mysql 19 4 28 1 Description Returns the ID generated for an AUTO INCREMENT column by the previous query Use this function after you have performed an INSERT query into a table that contains an AUTO INCREMENT field Note that mysql insert id returns 0 if the previous query does not generate an AUTO INCREMENT value If you need to save the value for later be sure to call mysql insert id immediately after the query that generates the value Also note that the value of the SQL LAST INSERT ID function always contains the most recently generated AUTO INCREMENT value and is not reset between queries since the value of that function is maintained in the server 19 4 28 2 Return values The value of the AUTO INCREMENT field that was updated by the previous query Returns zero if there was no previous query on the connection or if the query did not update an AUTO INCREMENT value 19 4 28 3 Errors None 859 19 4 29 mysql kill int mysql kill MYSQL mysql unsigned long pid 19 4 29 1 Description Asks the server to kill the thread specified by pid 19 4 29 2 Return values Zero for success Non zero if an error occurred 19 4 29 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 860 19 4 30 mysql list dbs MYSQL RES mysql list dbs MYSQL mysql const char wild 19 4 30 1 Description Returns a result set consisting of database names on the server that match the simple regular expression specified by the wild parameter wild may contain the wildcard characters or or may be a NULL pointer to match all databases Calling mysql list dbs is similar to executing the query SHOW databases LIKE wild You must free the result set with mysql free result 19 4 30 2 Return values A MYSQL RES result set for success NULL if an error occurred 19 4 30 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR OUT OF MEMORY Out of memory CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 861 19 4 31 mysql list fields MYSQL RES mysql list fields MYSQL mysql const char table const char wild 19 4 31 1 Description Returns a result set consisting of field names in the given table that match the simple regular expression specified by the wild parameter wild may contain the wildcard characters or or may be a NULL pointer to match all fields Calling mysql list fields is similar to executing the query SHOW COLUMNS FROM tbl name LIKE wild Note that it s recommended that you use SHOW COLUMNS FROM tbl name instead of mysql list fields You must free the result set with mysql free result 19 4 31 2 Return values A MYSQL RES result set for success NULL if an error occurred 19 4 31 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 862 19 4 32 mysql list processes MYSQL RES mysql list processes MYSQL mysql 19 4 32 1 Description Returns a result set describing the current server threads This is the same kind of information as that reported by mysqladmin processlist You must free the result set with mysql free result 19 4 32 2 Return values A MYSQL RES result set for success NULL if an error occurred 19 4 32 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 863 19 4 33 mysql list tables MYSQL RES mysql list tables MYSQL mysql const char wild 19 4 33 1 Description Returns a result set consisting of table names in the current database that match the simple regular expression specified by the wild parameter wild may contain the wildcard characters or or may be a NULL pointer to match all tables Calling mysql list tables is similar to executing the query SHOW tables LIKE wild You must free the result set with mysql free result 19 4 33 2 Return values A MYSQL RES result set for success NULL if an error occurred 19 4 33 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 864 19 4 34 mysql num fields unsigned int mysql num fields MYSQL RES result or unsigned int mysql num fields MYSQL mysql The last function doesn t work on MySQL 3 23 or newer To pass a MYSQL argument you must use unsigned int mysql field count MYSQL mysql instead 19 4 34 1 Description Returns the number of columns in a result set Note that you can call mysql num fields with either a pointer to a result set or to a connection handle You would use the connection handle if mysql store result returned NULL and thus you have no result set pointer In this case you can call mysql num fields to determine whether or not mysql store result should have produced a non empty result This allows the client program to take proper action without knowing whether or not the query was a SELECT or SELECT like statement The example shown below illustrates how this may be done See section 865 19 4 50 Why is it that after mysql query returns success mysql store result sometimes returns NULL 19 4 34 2 Return values An unsigned integer representing the number of fields in a result set 19 4 34 3 Errors None 19 4 34 4 Example MYSQL RES result unsigned int num fields unsigned int num rows if mysql query mysql query string error else query succeeded process any data returned by it result mysql store result mysql if result there are rows num fields mysql num fields result retrieve rows then call mysql free result result else mysql store result returned nothing should it have if mysql num fields mysql 0 query does not return data it was not a SELECT num rows mysql affected rows mysql else mysql store result should have returned data fprintf stderr Error s n mysql error mysql An alternative is to replace the mysql num fields mysql call with mysql errno mysql In this case you are checking directly for an error from mysql store result rather than inferring from the value of mysql num fields whether or not the statement was a SELECT 866 19 4 35 mysql num rows my ulonglong mysql num rows MYSQL RES result 19 4 35 1 Description Returns the number of rows in the result set The use of mysql num rows depends on whether you use mysql store result or mysql use result to return the result set If you use mysql store result mysql num rows may be called immediately If you use mysql use result mysql num rows will not return the correct value until all the rows in the result set have been retrieved 19 4 35 2 Return values The number of rows in the result set 19 4 35 3 Errors None 867 19 4 36 mysql options int mysql options MYSQL mysql enum mysql option option const char arg 19 4 36 1 Description Can be used to set extra connect options and affect behavior for a connection Should be called after mysql init and before mysql connect or mysql real connect The option argument is the option that you want to set The arg argument is the value for the option If the option is an integer then arg should point to the value of the integer Possible options values Option Argument type Function MYSQL OPT CONNECT TIMEOUT unsigned int Connect timeout in seconds MYSQL OPT COMPRESS Not used Use the compressed client server protocol MYSQL OPT NAMED PIPE Not used Use named pipes to connect to a MySQL server on NT MYSQL INIT COMMAND char Command to execute when connecting to MySQL server Will automatically be re executed when reconnecting MYSQL READ DEFAULT FILE char Read options from the named option file instead of from my cnf MYSQL READ DEFAULT GROUP char Read options from the named group from my cnf or the file specified with MYSQL READ DEFAULT FILE Note that the group client is always read if you use MYSQL READ DEFAULT FILE or MYSQL READ DEFAULT GROUP The specified group in the option file may contain the following options compress Use the compressed client server protocol database Connect to this database if there was no database in the connect command debug Debug options host Default host name init command Command to execute when connecting to MySQL server Will automatically be re executed when reconnecting password Default password pipe Use named pipes to connect to a MySQL server on NT port Default port number return found rows Tell mysql info to return found rows instead of updated rows when using UPDATE socket Default socket number timeout Connect timeout in seconds user Default user For more information about option files see section 868 4 15 4 Option files 19 4 36 2 Return values Zero for success Non zero if you used an unknown option 19 4 36 3 Example MYSQL mysql mysql init mysql mysql options mysql MYSQL OPT COMPRESS 0 mysql options mysql MYSQL READ DEFAULT GROUP odbc if mysql real connect mysql host user passwd database 0 NULL 0 fprintf stderr Failed to connect to database Error s n mysql error mysql The above requests the client to use the compressed client server protocol and read the additional options from the odbc section in the my cnf file 869 19 4 37 mysql ping int mysql ping MYSQL mysql 19 4 37 1 Description Checks whether or not the connection to the server is working If it has gone down an automatic reconnection is attempted This function can be used by clients that remain idle for a long while to check whether or not the server has closed the connection and reconnect if necessary 19 4 37 2 Return values Zero if the server is alive Non zero if an error occurred 19 4 37 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR UNKNOWN ERROR An unknown error occurred 870 19 4 38 mysql query int mysql query MYSQL mysql const char query 19 4 38 1 Description Executes the SQL query pointed to by the null terminated string query The query must consist of a single SQL statement You should not add a terminating semicolon or g to the statement mysql query cannot be used for queries that contain binary data you should use mysql real query instead Binary data may contain the 0 character which mysql query interprets as the end of the query string 19 4 38 2 Return values Zero if the query was successful Non zero if an error occurred 19 4 38 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 871 19 4 39 mysql real connect MYSQL mysql real connect MYSQL mysql const char host const char user const char passwd const char db unsigned int port const char unix socket unsigned int client flag 19 4 39 1 Description mysql real connect attempts to establish a connection to a MySQL database engine running on host mysql real connect must complete successfully before you can execute any of the other API functions with the exception of mysql get client info The parameters are specified as follows mysql is a pointer to a MYSQL connection structure or NULL If mysql is NULL the C API allocates memory for the connection structure automatically and frees it when you call mysql close The disadvantage of this approach is that you can t retrieve an error message if the connection fails To get error information from mysql errno or mysql error you must provide a valid MYSQL pointer If the first parameter is not NULL it should be the address of an existing MYSQL structure In this case before calling mysql real connect you must call mysql init to initialize the MYSQL structure See the example below The value of host may be either a hostname or an IP address If host is NULL or the string localhost a connection to the local host is assumed If the OS supports sockets Unix or named pipes Win32 they are used instead of TCP IP to connect to the server The user parameter contains the user s MySQL login ID If user is NULL the current user is assumed Under Unix this is the current login name Under Windows ODBC the current user name must be specified explicitly See section 872 16 4 How to fill in the various fields in the ODBC administrator program The passwd parameter contains the password for user If passwd is NULL only entries in the user table for the user that have a blank password field will be checked for a match This allows the database administrator to set up the MySQL privilege system in such a way that users get different privileges depending on whether or not they have specified a password Note Do not attempt to encrypt the password before calling mysql real connect password encryption is handled automatically by the client API db is the database name If db is not NULL the connection will set the default database to this value If port is not 0 the value will be used as the port number for the TCP IP connection Note that the host parameter determines the type of the connection If unix socket is not NULL the string specifies the socket or named pipe that should be used Note that the host parameter determines the type of the connection The value of client flag is usually 0 but can be set to a combination of the following flags in very special circumstances Flag name Flag meaning CLIENT FOUND ROWS Return the number of found rows not the number of affected rows CLIENT NO SCHEMA Don t allow the db name tbl name col name syntax This is for ODBC it causes the parser to generate an error if you use that syntax which is is useful for trapping bugs in some ODBC programs CLIENT COMPRESS Use compression protocol CLIENT ODBC The client is an ODBC client This changes mysqld to be more ODBC friendly 19 4 39 2 Return values A MYSQL connection handle if the connection was successful NULL if the connection was unsuccessful For a successful connection the return value is the same as the value of the first parameter unless you pass NULL for that parameter 19 4 39 3 Errors CR CONN HOST ERROR Failed to connect to the MySQL server CR CONNECTION ERROR Failed to connect to the local MySQL server CR IPSOCK ERROR Failed to create an IP socket CR OUT OF MEMORY Out of memory CR SOCKET CREATE ERROR Failed to create a Unix socket CR UNKNOWN HOST Failed to find the IP address for the hostname CR VERSION ERROR A protocol mismatch resulted from attempting to connect to a server with a client library that uses a different protocol version This can happen if you use a very old client library to connect to a new server that wasn t started with the old protocol option CR NAMEDPIPEOPEN ERROR Failed to create a named pipe on Win32 CR NAMEDPIPEWAIT ERROR Failed to wait for a named pipe on Win32 CR NAMEDPIPESETSTATE ERROR Failed to get a pipe handler on Win32 19 4 39 4 Example MYSQL mysql mysql init mysql if mysql real connect mysql host user passwd database 0 NULL 0 fprintf stderr Failed to connect to database Error s n mysql error mysql 873 19 4 40 mysql real query int mysql real query MYSQL mysql const char query unsigned int length 19 4 40 1 Description Executes the SQL query pointed to by query which should be a string length bytes long The query must consist of a single SQL statement You should not add a terminating semicolon or g to the statement You must use mysql real query rather than mysql query for queries that contain binary data since binary data may contain the 0 character In addition mysql real query is faster than mysql query since it does not call strlen on the query string 19 4 40 2 Return values Zero if the query was successful Non zero if an error occurred 19 4 40 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 874 19 4 41 mysql reload int mysql reload MYSQL mysql 19 4 41 1 Description Asks the MySQL server to reload the grant tables The connected user must have the reload privilege This function is deprecated It is preferable to use mysql query to issue a SQL FLUSH PRIVILEGES statement instead 19 4 41 2 Return values Zero for success Non zero if an error occurred 19 4 41 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 875 19 4 42 mysql row seek MYSQL ROW OFFSET mysql row seek MYSQL RES result MYSQL ROW OFFSET offset 19 4 42 1 Description Sets the row cursor to an arbitrary row in a query result set This requires that the result set structure contains the entire result of the query so mysql row seek may be used in conjunction only with mysql store result not with mysql use result The offset should be a value returned from a call to mysql row tell or to mysql row seek This value is not simply a row number if you want to seek to a row within a result set using a row number use mysql data seek instead 19 4 42 2 Return values The previous value of the row cursor This value may be passed to a subsequent call to mysql row seek 19 4 42 3 Errors None 876 19 4 43 mysql row tell MYSQL ROW OFFSET mysql row tell MYSQL RES result 19 4 43 1 Description Returns the current position of the row cursor for the last mysql fetch row This value can be used as an argument to mysql row seek You should use mysql row tell only after mysql store result not after mysql use result 19 4 43 2 Return values The current offset of the row cursor 19 4 43 3 Errors None 877 19 4 44 mysql select db int mysql select db MYSQL mysql const char db 19 4 44 1 Description Causes the database specified by db to become the default current database on the connection specified by mysql In subsequent queries this database is the default for table references that do not include an explicit database specifier mysql select db fails unless the connected user can be authenticated as having permission to use the database 19 4 44 2 Return values Zero for success Non zero if an error occurred 19 4 44 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 878 19 4 45 mysql shutdown int mysql shutdown MYSQL mysql 19 4 45 1 Description Asks the database server to shutdown The connected user must have shutdown privileges 19 4 45 2 Return values Zero for success Non zero if an error occurred 19 4 45 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 879 19 4 46 mysql stat char mysql stat MYSQL mysql 19 4 46 1 Description Returns a character string containing information similar to that provided by the mysqladmin status command This includes uptime in seconds and the number of running threads questions reloads and open tables 19 4 46 2 Return values A character string describing the server status NULL if an error occurred 19 4 46 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 880 19 4 47 mysql store result MYSQL RES mysql store result MYSQL mysql 19 4 47 1 Description You must call mysql store result or mysql use result for every query which successfully retrieves data SELECT SHOW DESCRIBE EXPLAIN mysql store result reads the entire result of a query to the client allocates a MYSQL RES structure and places the result into this structure An empty result set is returned if there are no rows returned An empty result set differs from a NULL return value Once you have called mysql store result you may call mysql num rows to find out how many rows are in the result set You can call mysql fetch row to fetch rows from the result set or mysql row seek and mysql row tell to obtain or set the current row position within the result set You must call mysql free result once you are done with the result set See section 881 19 4 50 Why is it that after mysql query returns success mysql store result sometimes returns NULL 19 4 47 2 Return values A MYSQL RES result structure with the results NULL if an error occurred 19 4 47 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR OUT OF MEMORY Out of memory CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 882 19 4 48 mysql thread id unsigned long mysql thread id MYSQL mysql 19 4 48 1 Description Returns the thread ID of the current connection This value can be used as an argument to mysql kill to kill the thread If the connection is lost and you reconnect with mysql ping the thread ID will change This means you should not get the thread ID and store it for later you should get it when you need it 19 4 48 2 Return values The thread ID of the current connection 19 4 48 3 Errors None 883 19 4 49 mysql use result MYSQL RES mysql use result MYSQL mysql 19 4 49 1 Description You must call mysql store result or mysql use result for every query which successfully retrieves data SELECT SHOW DESCRIBE EXPLAIN mysql use result initiates a result set retrieval but does not actually read the result set into the client like mysql store result does Instead each row must be retrieved individually by making calls to mysql fetch row This reads the result of a query directly from the server without storing it in a temporary table or local buffer which is somewhat faster and uses much less memory than mysql store result The client will only allocate memory for the current row and a communication buffer that may grow up to max allowed packet bytes On the other hand you shouldn t use mysql use result if you are doing a lot of processing for each row on the client side or if the output is sent to a screen on which the user may type a S stop scroll This will tie up the server and prevent other threads from updating any tables from which the data are fetched When using mysql use result you must execute mysql fetch row until a NULL value is returned otherwise the unfetched rows will be returned as part of the result set for your next query The C API will give the error Commands out of sync You can t run this command now if you forget to do this You may not use mysql data seek mysql row seek mysql row tell mysql num rows or mysql affected rows with a result returned from mysql use result nor may you issue other queries until the mysql use result has finished However after you have fetched all the rows mysql num rows will accurately return the number of rows fetched You must call mysql free result once you are done with the result set 19 4 49 2 Return values A MYSQL RES result structure NULL if an error occurred 19 4 49 3 Errors CR COMMANDS OUT OF SYNC Commands were executed in an improper order CR OUT OF MEMORY Out of memory CR SERVER GONE ERROR The MySQL server has gone away CR SERVER LOST The connection to the server was lost during the query CR UNKNOWN ERROR An unknown error occurred 884 19 4 50 Why is it that after mysql query returns success mysql store result sometimes returns NULL It is possible for mysql store result to return NULL following a successful call to mysql query When this happens it means one of the following conditions occurred There was a malloc failure for example if the result set was too large The data couldn t be read an error occurred on the connection The query returned no data e g it was an INSERT UPDATE or DELETE You can always check whether or not the statement should have produced a non empty result by calling mysql num fields If mysql num fields returns zero the result is empty and the last query was a statement that does not return values for example an INSERT or a DELETE If mysql num fields returns a non zero value the statement should have produced a non empty result See the description of the mysql num fields function for an example You can also test for an error by calling mysql error or mysql errno 885 19 4 51 What results can I get from a query In addition to the result set returned by a query you can also get the following information mysql affected rows returns the number of rows affected by the last query when doing an INSERT UPDATE or DELETE An exception is that if DELETE is used without a WHERE clause the table is truncated which is much faster In this case mysql affected rows returns zero for the number of records affected mysql num rows returns the number of rows in a result set With mysql store result mysql num rows may be called as soon as mysql store result returns With mysql use result mysql num rows may be called only after you have fetched all the rows with mysql fetch row mysql insert id returns the ID generated by the last query that inserted a row into a table with an AUTO INCREMENT index See section 886 19 4 28 mysql insert id Some queries LOAD DATA INFILE INSERT INTO SELECT UPDATE return additional info The result is returned by mysql info See the description for mysql info for the format of the string that it returns mysql info returns a NULL pointer if there is no additional information 887 19 4 52 How can I get the unique ID for the last inserted row If you insert a record in a table containing a column that has the AUTO INCREMENT attribute you can get the most recently generated ID by calling the mysql insert id function You can also retrieve the ID by using the LAST INSERT ID function in a query string that you pass to mysql query You can check if an AUTO INCREMENT index is used by executing the following code This also checks if the query was an INSERT with an AUTO INCREMENT index if mysql error mysql 0 0 mysql num fields result 0 mysql insert id mysql 0 used id mysql insert id mysql The most recently generated ID is maintained in the server on a per connection basis It will not be changed by another client It will not even be changed if you update another AUTO INCREMENT column with a non magic value that is a value that is not NULL and not 0 If you want to use the ID that was generated for one table and insert it into a second table you can use SQL statements like this INSERT INTO foo auto text VALUES NULL text generate ID by inserting NULL INSERT INTO foo2 id text VALUES LAST INSERT ID text use ID in second table 888 19 4 53 Problems linking with the C API When linking with the C API the following errors may occur on some systems gcc g o client test o L usr local lib mysql lmysqlclient lsocket lnsl Undefined first referenced symbol in file floor usr local lib mysql libmysqlclient a password o ld fatal Symbol referencing errors No output written to client If this happens on your system you must include the math library by adding lm to the end of the compile link line 889 19 4 54 How to make a thread safe client The client is almost thread safe The biggest problem is that the subroutines in net c that read from sockets are not interrupt safe This was done with the thought that you might want to have your own alarm that can break a long read to a server The standard client libraries are not compiled with the thread options To get a thread safe client use the lmysys lstring and ldbug libraries and net serv o that the server uses When using a threaded client you can make great use of the routines in the thr alarm c file If you are using routines from the mysys library the only thing you must remember is to call my init first All functions except mysql real connect are currently thread safe The following notes describe how to compile a thread safe client library and use it in a thread safe manner The notes below for mysql real connect actually apply to mysql connect as well but since mysql connect is deprecated you should be using mysql real connect anyway To make mysql real connect thread safe you must recompile the client library with this command shell CPPFLAGS DTHREAD SAFE CLIENT configure You may get some errors because of undefined symbols when linking the standard client because the pthread libraries are not included by default The resulting libmysqlclient a library is now thread safe What this means is that client code is thread safe as long as two threads don t query the same connection handle returned by mysql real connect at the same time the client server protocol allows only one request at a time on a given connection If you want to use multiple threads on the same connection you must have a mutex lock around your mysql query and mysql store result call combination Once mysql store result is ready the lock can be released and other threads may query the same connection In other words different threads can use different MYSQL RES pointers that were created with mysql store result as long as they use the proper locking protocol If you program with POSIX threads you can use pthread mutex lock and pthread mutex unlock to establish and release a mutex lock If you used mysql use result rather than mysql store result the lock would need to surround mysql use result and the calls to mysql fetch row However it really is best for threaded clients not to use mysql use result 890 19 5 MySQL Perl API This section documents the Perl DBI interface The former interface was called mysqlperl Since DBI DBD now is the recommended Perl interface mysqlperl is obsolete and is not documented here 891 19 5 1 DBI with DBD mysql DBI is a generic interface for many databases That means that you can write a script that works with many different database engines without change You need a DataBase Driver DBD defined for each database type For MySQL this driver is called DBD mysql For more information on the Perl5 DBI please visit the DBI web page and read the documentation 892 http www symbolstone org technology perl DBI index html For more information on Object Oriented Programming OOP as defined in Perl5 see the Perl OOP page 893 http language perl com info documentation html Installation instructions for MySQL Perl support are given in section 894 4 10 Perl installation comments 895 19 5 2 The DBI interface Portable DBI methods connect Establishes a connection to a database server disconnect Disconnects from the database server prepare Prepares a SQL statement for execution execute Executes prepared statements do Prepares and executes a SQL statement quote Quotes string or BLOB values to be inserted fetchrow array Fetches the next row as an array of fields fetchrow arrayref Fetches next row as a reference array of fields fetchrow hashref Fetches next row as a reference to a hashtable fetchall arrayref Fetches all data as an array of arrays finish Finishes a statement and let the system free resources rows Returns the number of rows affected data sources Returns an array of databases available on localhost ChopBlanks Controls whether fetchrow methods trim spaces NUM OF PARAMS The number of placeholders in the prepared statement NULLABLE Which columns can be NULL trace Perform tracing for debugging MySQL specific methods insertid The latest AUTO INCREMENT value is blob Which column are BLOB values is key Which columns are keys is num Which columns are numeric is pri key Which columns are primary keys is not null Which columns CANNOT be NULL See NULLABLE length Maximum possible column sizes max length Maximum column sizes actually present in result NAME Column names NUM OF FIELDS Number of fields returned table Table names in returned set type All column types The Perl methods are described in more detail in the following sections Variables used for method return values have these meanings dbh Database handle sth Statement handle rc Return code often a status rv Return value often a row count Portable DBI methods connect data source username password Use the connect method to make a database connection to the data source The data source value should begin with DBI driver name Example uses of connect with the DBD mysql driver dbh DBI connect DBI mysql database user password dbh DBI connect DBI mysql database hostname user password dbh DBI connect DBI mysql database hostname port user password If the user name and or password are undefined DBI uses the values of the DBI USER and DBI PASS environment variables respectively If you don t specify a hostname it defaults to localhost If you don t specify a port number it defaults to the default MySQL port 3306 As of Msql Mysql modules version 1 2009 the data source value allows certain modifiers mysql read default file file name Read filename as an option file For information on option files see section 896 4 15 4 Option files mysql read default group group name The default group when reading an option file is normally the client group By specifying the mysql read default group option the default group becomes the group name group mysql compression 1 Use compressed communication between the client and server MySQL 3 22 3 or later mysql socket path to socket Specify the pathname of the Unix socket that is used to connect to the server MySQL 3 21 15 or later Multiple modifiers may be given each must be preceded by a semicolon For example if you want to avoid hardcoding the user name and password into a DBI script you can take them from the user s my cnf option file instead by writing your connect call like this dbh DBI connect DBI mysql database mysql read default file ENV HOME my cnf user password This call will read options defined for the client group in the option file If you wanted to do the same thing but use options specified for the perl group instead you could use this dbh DBI connect DBI mysql database mysql read default file ENV HOME my cnf mysql read default group perl user password disconnect The disconnect method disconnects the database handle from the database This is typically called right before you exit from the program Example rc dbh disconnect prepare statement Prepares a SQL statement for execution by the database engine and returns a statement handle sth which you can use to invoke the execute method Typically you handle SELECT statements and SELECT like statements such as SHOW DESCRIBE and EXPLAIN by means of prepare and execute Example sth dbh prepare statement or die Can t prepare statement dbh errstr n execute The execute method executes a prepared statement For non SELECT statements execute returns the number of rows affected If no rows are affected execute returns 0E0 which Perl treats as zero but regards as true For SELECT statements execute only starts the SQL query in the database you need to use one of the fetch methods described below to retrieve the data Example rv sth execute or die can t execute the query sth errstr do statement The do method prepares and executes a SQL statement and returns the number of rows affected If no rows are affected do returns 0E0 which Perl treats as zero but regards as true This method is generally used for non SELECT statements which cannot be prepared in advance due to driver limitations or which do not need to executed more than once inserts deletes etc Example rv dbh do statement or die Can t execute statement dbh errstr n quote string The quote method is used to escape any special characters contained in the string and to add the required outer quotation marks Example sql dbh quote string fetchrow array This method fetches the next row of data and returns it as an array of field values Example while row sth fetchrow array print qw row 0 t row 1 t row 2 n fetchrow arrayref This method fetches the next row of data and returns it as a reference to an array of field values Example while row ref sth fetchrow arrayref print qw row ref 0 t row ref 1 t row ref 2 n fetchrow hashref This method fetches a row of data and returns a reference to a hash table containing field name value pairs This method is not nearly as efficient as using array references as demonstrated above Example while hash ref sth fetchrow hashref print qw hash ref firstname t hash ref lastname t hash ref title n fetchall arrayref This method is used to get all the data rows to be returned from the SQL statement It returns a reference to an array of arrays of references to each row You access or print the data by using a nested loop Example my table sth fetchall arrayref or die sth errstr n my i j for i 0 table for j 0 table i print table i j t print n finish Indicates that no more data will be fetched from this statement handle You call this method to free up the statement handle and any system resources it may be holding Example rc sth finish rows Returns the number of rows changed updated deleted etc by the last command This is usually used after a non SELECT execute statement Example rv sth rows NULLABLE Returns a reference to an array of boolean values for each element of the array a value of TRUE indicates that this column may contain NULL values Example null possible sth NULLABLE NUM OF FIELDS This attribute indicates the number of fields returned by a SELECT or SHOW FIELDS statement You may use this for checking whether a statement returned a result A zero value indicates a non SELECT statement like INSERT DELETE or UPDATE Example nr of fields sth NUM OF FIELDS data sources driver name This method returns an array containing names of databases available to the MySQL server on the host localhost Example dbs DBI data sources mysql ChopBlanks This attribute determines whether the fetchrow methods will chop leading and trailing blanks from the returned values Example sth ChopBlanks 1 trace trace level trace trace level trace filename The trace method enables or disables tracing When invoked as a DBI class method it affects tracing for all handles When invoked as a database or statement handle method it affects tracing for the given handle and any future children of the handle Setting trace level to 2 provides detailed trace information Setting trace level to 0 disables tracing Trace output goes to the standard error output by default If trace filename is specified the file is opened in append mode and output for all traced handles is written to that file Example DBI trace 2 trace everything DBI trace 2 tmp dbi out trace everything to tmp dbi out dth trace 2 trace this database handle sth trace 2 trace this statement handle You can also enable DBI tracing by setting the DBI TRACE environment variable Setting it to a numeric value is equivalent to calling DBI value Setting it to a pathname is equivalent to calling DBI 2 value MySQL specific methods The methods shown below are MySQL specific and not part of the DBI standard Several of them are now deprecated is blob is key is num is pri key is not null length max length and table Where DBI standard alternatives exist they are noted below insertid If you use the AUTO INCREMENT feature of MySQL the new auto incremented values will be stored here Example new id sth insertid As an alternative you can use dbh mysql insertid is blob Returns a reference to an array of boolean values for each element of the array a value of TRUE indicates that the respective column is a BLOB Example keys sth is blob is key Returns a reference to an array of boolean values for each element of the array a value of TRUE indicates that the respective column is a key Example keys sth is key is num Returns a reference to an array of boolean values for each element of the array a value of TRUE indicates that the respective column contains numeric values Example nums sth is num is pri key Returns a reference to an array of boolean values for each element of the array a value of TRUE indicates that the respective column is a primary key Example pri keys sth is pri key is not null Returns a reference to an array of boolean values for each element of the array a value of FALSE indicates that this column may contain NULL values Example not nulls sth is not null is not null is deprecated it is preferable to use the NULLABLE attribute described above since that is a DBI standard length max length Each of these methods returns a reference to an array of column sizes The length array indicates the maximum possible sizes that each column may be as declared in the table description The max length array indicates the maximum sizes actually present in the result table Example lengths sth length max lengths sth max length NAME Returns a reference to an array of column names Example names sth NAME table Returns a reference to an array of table names Example tables sth table type Returns a reference to an array of column types Example types sth type 897 19 5 3 More DBI DBD information You can use the perldoc command to get more information about DBI perldoc DBI perldoc DBI FAQ perldoc DBD mysql You can also use the pod2man pod2html etc tools to translate to other formats And of course you can find the latest DBI information at the DBI web page 898 http www symbolstone org technology perl DBI index html 899 19 6 MySQL Eiffel wrapper The MySQL 900 Contrib directory contains a Eiffel wrapper written by Michael Ravits You can also find this at http www netpedia net hosting newplayer 901 19 7 MySQL Java connectivity JDBC There are 2 supported JDBC drivers for MySQL the twz and mm driver You can find a copy of these at 902 http www mysql com Contrib For documentation consult any JDBC documentation and the drivers own documentation for MySQL specific features 903 19 8 MySQL PHP API PHP is a server side HTML embedded scripting language that may be used to create dynamic web pages It contains support for accessing several databases including MySQL PHP may be run as a separate program or compiled as a module for use with the Apache web server The distribution and documentation are available at the 904 PHP website 905 19 9 MySQL C APIs Two API s are available in the MySQL 906 Contrib directory 907 19 10 MySQL Python APIs The MySQL 908 Contrib directory contains a Python interface written by Joseph Skinner You can also use the Python interface to iODBC to access a MySQL server 909 mxODBC 910 19 11 MySQL TCL APIs 911 TCL at binevolve The 912 Contrib directory contains a TCL interface that is based on msqltcl 1 50 913 20 How MySQL compares to other databases 914 20 1 How MySQL compares to mSQL This section has been written by the MySQL developers so it should be read with that in mind But there are NO factual errors that we know of For a list of all supported limits functions and types see the 915 crash me web page Performance For a true comparison of speed consult the growing MySQL benchmark suite See section 916 11 The MySQL benchmark suite Because there is no thread creation overhead a small parser few features and simple security mSQL should be quicker at Tests that perform repeated connects and disconnects running a very simple query during each connection INSERT operations into very simple tables with few columns and keys CREATE TABLE and DROP TABLE SELECT on something that isn t an index A table scan is very easy Since these operations are so simple it is hard to be better at them when you have a higher startup overhead After the connection is established MySQL should perform much better On the other hand MySQL is much faster than mSQL and most other SQL implementions on the following Complex SELECT operations Retrieving large results MySQL has a better faster and safer protocol Tables with variable length strings since MySQL has more efficent handling and can have indexes on VARCHAR columns Handling tables with many columns Handling tables with large record lengths SELECT with many expressions SELECT on large tables Handling many connections at the same time MySQL is fully multi threaded Each connection has its own thread which means that no thread has to wait for another unless a thread is modifying a table another thread wants to access In mSQL once one connection is established all others must wait until the first has finished regardless of whether the connection is running a query that is short or long When the first connection terminates the next can be served while all the others wait again etc Joins mSQL can become pathologically slow if you change the order of tables in a SELECT In the benchmark suite a time more than 15000 times slower than MySQL was seen This is due to mSQL s lack of a join optimizer to order tables in the optimal order However if you put the tables in exactly the right order in mSQL2 and the WHERE is simple and uses index columns the join will be relatively fast See section 917 11 The MySQL benchmark suite ORDER BY and GROUP BY DISTINCT Using TEXT or BLOB columns SQL Features GROUP BY and HAVING mSQL does not support GROUP BY at all MySQL supports a full GROUP BY with both HAVING and the following functions COUNT AVG MIN MAX SUM and STD COUNT is optimized to return very quickly if the SELECT retrieves from one table no other columns are retrieved and there is no WHERE clause MIN and MAX may take string arguments INSERT and UPDATE with calculations MySQL can do calculations in an INSERT or UPDATE For example mysql UPDATE SET x x 10 y WHERE x 20 Aliasing MySQL has column aliasing Qualifying column names In MySQL if a column name is unique among the tables used in a query you do not have to use the full qualifier SELECT with functions MySQL has many functions too many to list here see section 918 7 3 Functions for use in SELECT and WHERE clauses Disk space efficiency That is how small can you make your tables MySQL has very precise types so you can create tables that take very little space An example of a useful MySQL datatype is the MEDIUMINT that is 3 bytes long If you have 100 000 000 records saving even one byte per record is very important mSQL2 has a more limited set of column types so it is more difficult to get small tables Stability This is harder to judge objectively For a discussion of MySQL stability see section 919 1 5 How stable is MySQL We have no experience with mSQL stability so we cannot say anything about that Price Another important issue is the license MySQL has a more flexible license than mSQL and is also less expensive than mSQL Whichever product you choose to use remember to at least consider paying for a license or email support You are required to get a license if you include MySQL with a product that you sell of course Perl interfaces MySQL has basically the same interfaces to Perl as mSQL with some added features JDBC Java MySQL currently has 4 JDBC drivers The gwe driver A Java interface by GWE technologies not supported anymore The jms driver An improved gwe driver by Xiaokun Kelvin ZHU The twz driver A type 4 JDBC driver by Terrence W Zellers and educational use The mm driver A type 4 JDBC driver by Mark Matthews The recommended drivers are the twz or mm driver Both are reported to work excellently We know that mSQL has a JDBC driver but we have too little experience with it to compare Rate of development MySQL has a very small team of developers but we are quite used to coding C and C very rapidly Since threads functions GROUP BY and so on are still not implemented in mSQL it has a lot of catching up to do To get some perspective on this you can view the mSQL HISTORY file for the last year and compare it with the News section of the MySQL Reference Manual see section 920 D MySQL change history It should be pretty obvious which one has developed most rapidly Utility programs Both mSQL and MySQL have many interesting third party tools Since it is very easy to port upward from mSQL to MySQL almost all the interesting applications that are available for mSQL are also available for MySQL MySQL comes with a simple msql2mysql program that fixes differences in spelling between mSQL and MySQL for the most used C API functions For example it changes instances of msqlConnect to mysql connect Converting a client program from mSQL to MySQL usually takes a couple of minutes 921 20 1 1 How to convert mSQL tools for MySQL According to our experience it would just take a few hours to convert tools such as msql tcl and msqljava that use the mSQL C API so that they work with the MySQL C API The conversion procedure is 1 Run the shell script msql2mysql on the source This requires the replace program which is distributed with MySQL 2 Compile 3 Fix all compiler errors Differences between the mSQL C API and the MySQL C API are MySQL uses a MYSQL structure as a connection type mSQL uses an int mysql connect takes a pointer to a MYSQL structure as a parameter It is easy to define one globally or to use malloc to get one mysql connect also takes 2 parameters for specifying the user and password You may set these to NULL NULL for default use mysql error takes the MYSQL structure as a parameter Just add the parameter to your old msql error code if you are porting old code MySQL returns an error number and a text error message for all errors mSQL returns only a text error message Some incompatibilities exist as a result of MySQL supporting multiple connections to the server from the same process 922 20 1 2 How mSQL and MySQL client server communications protocols differ There are enough differences that it is impossible or at least not easy to support both The most significant ways in which the MySQL protocol differs from the mSQL protocol are listed below A message buffer may contain many result rows The message buffers are dynamically enlarged if the query or the result is bigger than the current buffer up to a configurable server and client limit All packets are numbered to catch duplicated or missing packets All column values are sent in ASCII The lengths of columns and rows are sent in packed binary coding 1 2 or 3 bytes MySQL can read in the result unbuffered without having to store the full set in the client If a single write read takes more than 30 seconds the server closes the connection If a connection is idle for 8 hours the server closes the connection 923 20 1 3 How mSQL 2 0 SQL syntax differs from MySQL Column types MySQL Has the following additional types among others see see section 924 7 6 CREATE TABLE syntax ENUM type for one of a set of strings SET type for many of a set of strings BIGINT type for 64 bit integers MySQL also supports the following additional type attributes UNSIGNED option for integer columns ZEROFILL option for integer columns AUTO INCREMENT option for integer columns that are a PRIMARY KEY See section 925 19 4 28 mysql insert id DEFAULT value for all columns mSQL2 mSQL column types correspond to the MySQL types shown below mSQL type Corresponding MySQL type CHAR len CHAR len TEXT len TEXT len len is the maximal length And LIKE works INT INT With many more options REAL REAL Or FLOAT Both 4 and 8 byte versions are available UINT INT UNSIGNED DATE DATE Uses ANSI SQL format rather than mSQL s own TIME TIME MONEY DECIMAL 12 2 A fixed point value with two decimals Index creation MySQL Indexes may be specified at table creation time with the CREATE TABLE statement mSQL Indexes must be created after the table has been created with separate CREATE INDEX statements To insert a unique identifier into a table MySQL Use AUTO INCREMENT as a column type specifier See section 926 19 4 28 mysql insert id mSQL Create a SEQUENCE on a table and select the seq column To obtain a unique identifier for a row MySQL Add a PRIMARY KEY or UNIQUE key to the table mSQL Use the rowid column Observe that rowid may change over time depending on many factors To get the time a column was last modified MySQL Add a TIMESTAMP column to the table This column is automatically set to the current date and time for INSERT or UPDATE statements if you don t give the column a value or if you give it a NULL value mSQL Use the timestamp column NULL value comparisons MySQL MySQL follows ANSI SQL and a comparison with NULL is always NULL mSQL In mSQL NULL NULL is TRUE You must change NULL to IS NULL and NULL to IS NOT NULL when porting old code from mSQL to MySQL String comparisons MySQL Normally string comparisons are performed in case independent fashion with the sort order determined by the current character set ISO 8859 1 Latin1 by default If you don t like this declare your columns with the BINARY attribute which causes comparisons to be done according to the ASCII order used on the MySQL server host mSQL All string comparisons are performed in case sensitive fashion with sorting in ASCII order Case insensitive searching MySQL LIKE is a case insensitive or case sensitive operator depending on the columns involved If possible MySQL uses indexes if the LIKE argument doesn t start with a wildcard character mSQL Use CLIKE Handling of trailing spaces MySQL Strips all spaces at the end of CHAR and VARCHAR columns Use a TEXT column if this behavior is not desired mSQL Retains trailing space WHERE clauses MySQL MySQL correctly prioritizes everything AND is evaluated before OR To get mSQL behavior in MySQL use parentheses as shown below mSQL Evaluates everything from left to right This means that some logical calculations with more than three arguments cannot be expressed in any way It also means you must change some queries when you upgrade to MySQL You do this easily by adding parentheses Suppose you have the following mSQL query mysql SELECT FROM table WHERE a 1 AND b 2 OR a 3 AND b 4 To make MySQL evaluate this the way that mSQL would you must add parentheses mysql SELECT FROM table WHERE a 1 AND b 2 OR a 3 AND b 4 Access control MySQL Has tables to store grant permission options per user host and database See section 927 6 6 How the privilege system works mSQL Has a file mSQL acl in which you can grant read write privileges for users 928 20 2 How MySQL compares to PostgreSQL PostgreSQL has some more advanced features like user defined types triggers rules and some transaction support However PostgreSQL lacks many of the standard types and functions from ANSI SQL and ODBC See the 929 crash me web page for a complete list of limits and which types and functions are supported or unsupported Normally PostgreSQL is a magnitude slower than MySQL See section 930 11 The MySQL benchmark suite This is due largely to their transactions system If you really need transactions or the rich type system PostgreSQL offers and you can afford the speed penalty you should take a look at PostgreSQL 931 A Some MySQL users 932 A 1 Some Web search engines 933 AAA Matilda Web Search 934 What s New 935 Aladin 936 Columbus Finder 937 Spider 938 Blitzsuche 939 Indoseek Indonesia 940 Yaboo Yet Another BOOkmarker 941 Yahoosuck 942 A 2 Some Information search engines concentrated on some area 943 Jobvertise Post and search for jobs 944 The Music Database 945 Fotball Soccer search page 946 TAKEDOWN wrestling 947 The International Lyrics Network 948 Musicians looking for other musicians Free Service 949 AddALL books searching and price comparison 950 Harvard s Gray Herbarium Index of Plant Names 951 Research Publications at Monash University in Australia 952 The Game Development Search Engine 953 My Recipe com Cookbook at i run com 954 A 3 Some Domain Internet Web and related services 955 Registry of Web providers that support MySQL 956 Dynamic DNS Services 957 dynamic domain name service 958 Free 3rd level domains 959 Online Database 960 BigBiz Internet Services 961 The Virt Gazette 962 Global InfoNet Inc 963 WebHosters A Guide to WWW Providers 964 Internet information server 965 A pro Linux tech news and comment discussion site 966 A technology news site 967 WorldNet Communications An Internet Services Provider 968 Netizen Australian based web consultancy 969 Search site for training courses in the UK 970 Gannon Chat GPL Written in Perl and Javascript 971 A general links directory 972 A web based bookmark management service 973 Walnut Creek CDROM 974 WWWThreads Interactive discussion Forums 975 In Italian Storage data from meteo station 976 Online Person To Person Auction 977 Tips on web development 978 Mailfriends com is a FREE service for everybody who wants to find friends over the internet 979 A 4 Web sites that use PHP and MySQL 980 Jgaa s Internet Official Support Site running via apache 981 Ionline online publication MySQL PHP Java Web programming DB development 982 BaBoo Browse and bookmark Free web based bookmark manager and Calendar 983 Course Schedule System at Pensacola Junior College 984 A beginners tutoral of how to start using MySQL 985 32bit com An extensive shareware freeware archive 986 Jokes 2000 987 Burken NU Burken is a webhotel that provides scripts among other things for remote users like counters guestbooks etc 988 tips pair com Contains tips on html javascript 2d 3d graphics and PHP3 MySQL All pages are generated from a database 989 A 5 Uncategorized pages 990 AZC COM s Feature Showcase 991 Course Search 992 Northerbys Online Auctions 993 Amsterdam Airport Schiphol 994 CD database 995 Used Audio Gear Database 996 Musical note sheets 997 Bagism A John Lennon fan page 998 US Folk art broker 999 Mail reading on the web 1000 Free home pages on www somecoolname mypage org 1001 Der Server f ur Schulen im Web In German 1002 Auldhaefen Online Services 1003 CaryNET Information Center 1004 Dataden Computer Systems 1005 Andr emuseet In Swedish 1006 HOMESITE Internet Marketing 1007 Jade V Network Services 1008 Weather World 2010 Technical Credits 1009 About The Gimp plugin registry 1010 Java tool Archiver technical detail Slightly optimistic about MySQL ANSI 92 compliance 1011 Games Domain Cheats Database 1012 The Powered By Page Kcilink 1013 Netcasting 1014 NBL Australian National Basketball League tipping 1015 CGI shop 1016 Whirlycott Website Design 1017 Museum Tusculanum Press 1018 Centro Siciliano di Documentazione 1019 Quake statistics database 1020 Astroforum Astrologie and related things in German 1021 OpenDebate Interactive Polls Open Discussion 1022 Online chemical dissertation server 1023 FreSch The Free Scholarship Search Service 1024 Stockholm Pinball Locator 1025 HEK A construction company 1026 Elsevier Bussines Information 1027 Medical Links Using Coldfusion and MySQL 1028 Search for jobs people at JobLink USA 1029 Daily news about Linux in German language 1030 Competition Formation Skydiving 1031 E commerce and internal accounting 1032 Denmark s leading business daily newspaper B o rsen 1033 The Internet NES Database 1034 Travel agency in Prague in 3 languages 1035 Linkstation 1036 Searchable online database at Peoplestaff 1037 A searchable database system for horse classified ads for sale and at stud 1038 The Poot site 1039 Playin in the LAN a network monitoring suite 1040 U S Army Publishing Agency 1041 Realestate handling in Yugoslavia 1042 PIMS a Patient Information Management System 1043 Pilkington Software Inc 1044 Betazine The Ultimate Online Beta Tester s Magazine 1045 A Vietnam Veteran s Memorial The Wall database 1046 Gamer s Union specializes inauctions of used out of print gaming material 1047 A daily bulletin at Monterey High school 1048 Computer Currents Magazine 1049 Community owned site serving Lake Washington s Eastside residents and businesses 1050 French bowling site 1051 A 6 Some MySQL consultants 1052 Ayni AG 1053 Online Database 1054 DataGuard Uses MySQL and PHP 1055 WWITS Uses MySQL and PHP 1056 WCN The World Community Network 1057 Chip Castle Dot Com Inc 1058 Cybersource Pty Ltd 1059 A 7 Programming 1060 The Perl CPAN Testers results page Send any additions to this list to 1061 webmaster mysql com 1062 B Contributed programs Many users of MySQL have contributed very useful support tools and addons A list of what is available at 1063 http www mysql com Contrib or any mirror is shown below If you want to build MySQL support for the Perl DBI DBD interface you should fetch the Data Dumper DBI and Msql Mysql modules files and install them See section 1064 4 10 Perl installation comments 1065 00 README This listing 1066 B 1 API s Perl modules 1067 Data Dumper 2 09 tar gz Perl Data Dumper module Useful with DBI DBD support 1068 DBI 1 08 tar gz Perl DBI module 1069 KAMXbase1 0 tar gz Convert between dbf files and MySQL tables Perl module written by Pratap Pereira 1070 pereira ee eng ohio state edu extened by Kevin A McGrail 1071 kmcgrail digital1 peregrinehw com This converter can handle MEMO fields 1072 Msql Mysql modules 1 2018 tar gz Perl DBD module to access mSQL and MySQL databases 1073 Data ShowTable 3 3 tar gz Perl Data ShowTable module Useful with DBI DBD support JDBC 1074 mm mysql jdbc 1 0 t ar gz New java JDBC driver for MySQL This is a production release and is actively developed By Mark Matthews 1075 mmatthew ecn purdue edu This driver has a LGPL license You can always find the newest driver at 1076 http www worldserver com mmatthew mysql 1077 twz1jdbcForMysql 1 0 4 GA tar gz The twz driver A type 4 JDBC driver by Terrence W Zellers and educational use You can always find the latest driver at 1078 http www voicenet com zellert tjFM 1079 mysql c 0 02 tar gz MySQL C wrapper library By Roland Haenel 1080 mysql 64 1 1 b tar gz MySQL C API More than just a wrapper library Originally by 1081 delphi interface g z Delphi interface to libmysql dll by Blestan Tabakov 1082 DelphiMySQL2 zip Delphi interface to libmysql dll by 1083 bsilva umesd k12 or us 1084 JdmMysqlDriver 0 1 0 tar gz A VisualWorks 3 0 Smalltalk driver for MySQL By 1085 Db py Python module with caching By 1086 gandalf rosmail com 1087 MySQLmodule 1 4 tar gz Python interface for the MySQL By Joseph Skinner 1088 joe earthlight co nz Modified by Joerg Senekowitsch 1089 senekow ibm net 1090 mysql mex tar gz An interface program for the Matlab program by MathWorks 1091 mysqltcl 1 53 tar gz Tcl interface for MySQL Based on msqltcl 1 50 tar gz Updated by Tobias Ritzau 1092 tobri ida liu se 1093 MyC zip A Visual Basic like API by Ed Carp 1094 sqlscreens 1 0 1 tar gz TCL TK code to generate database screens By Jean Francois Dockes 1095 Vdb dflts 2 1 tar gz This is a new version of a set of library utilities intended to provide a generic interface to SQL database engines such that your application becomes a 3 tiered application The advantage is that you can easily switch between and move to other database engines by implementing one file for the new backend without needing to make any changes to your applications By 1096 damian cablenet net 1097 DbFramework 1 10 tar gz DbFramework is a collection of classes for manipulating MySQL databases The classes are loosely based on the CDIF Data Model Subject Area By Paul Sharpe 1098 paul miraclefish com 1099 pike mysql 1 4 tar gz MySQL module for pike For use with the Roxen web server 1100 squile tar gz Module for guile that allows guile to interact with SQL databases By Hal Roberts 1101 stk mysql tar gz Interface for Stk Stk is the Tk widgets with Scheme underneath instead of Tcl By Terry Jones 1102 eiffel wrapper 1 0 tar gz Eiffel wrapper by Michael Ravits 1103 B 2 Clients Graphical clients 1104 kmysqladmin 0 1 tar gz An administration tool for the MySQL server using QT KDE Tested only on Linux 1105 Java client with Swing By Fredy Fischer 1106 se afs dial eunet ch 1107 mysqlwinadmn zip Win32 GUI binary only to administrate a database by David B Mansel 1108 xmysqladmin 1 0 tar gz A front end to the MySQL database engine It allows reloads status check process control isamchk grant revoke privileges creating databases dropping databases create alter browse and drop tables Originally by Gilbert Therrien 1109 gilbert ican net but now in public domain and supported by TcX 1110 xmysql 1 9 tar gz 1111 xmysql home page A front end to the MySQL database engine It allows for simple queries and table maintenance as well as batch queries By Rick Mehalick 1112 dblhack wt net Requires 1113 xforms 0 88 to work Web clients 1114 mysqladmin atif 1 0 tar gz WWW MySQL administrator for the user db and host tables By Tim Sailer modified by Atif Ghaffar 1115 mysql webadmin 1 0a8 rz tar gz A tool written in PHP FI to administrate MySQL databases remotely over the web within a Web Browser By Peter Kuppelwieser Not maintained anymore 1116 mysqladm tar gz MySQL Web Database Administration written in Perl By Tim Sailer 1117 mysqladm 2 tar gz Updated version of mysqladm tar gz by High Tide 1118 myadmin 0 4 tar gz 1119 MyAdmin home page A web based mysql administrator by Mike Machado 1120 phpMyAdmin 2 0 1 tar gz A set of PHP3 scripts to adminstrate MySQL over the WWW 1121 phpMyAdmin home page A PHP3 tool in the spirit of mysql webadmin by Tobias Ratschiller tobias dnet it 1122 useradm tar gz MySQL administrator in PHP By Ofni Thomas 1123 B 3 Web tools 1124 http www odbsoft com cook sources htm This package has various functions for generating html code from an SQL table structure and for generating SQL statements Select Insert Update Delete from an html form You can build a complete forms interface to an SQL database query add update delete without any programming By Marc Beneteau 1125 marc odbsoft com 1126 sqlhtml tar gz SQL HTML is an HTML database manager for MySQL using DBI 1 06 1127 UdmSearch 2 0 tar gz 1128 UdmSearch 2 1 tar gz A MySQL and PHP based search engine over http By Alexander I Barkov 1129 bar izhcom ru 1130 wmtcl doc 1131 wmtcl lex With this you can write HTML files with inclusions of TCL code By 1132 www sql 0 5 7 lsm 1133 www sql 0 5 3 md5 1134 www sql 0 5 7 tar gz A CGI program that parses an HTML file containing special tags parses them and inserts data from a MySQL database 1135 genquery zip Perl SQL database interface package for html 1136 cgi 0 2 tar gz A CGI wrapper by Sasha Pachev 1137 WebBoard 1 0 EU Industries Internet Message Board 1138 B 4 Authentication tools 1139 ascend radius mysql 0 4 3 patch gz This is authentication and logging patch using MySQL for Ascend Radius By 1140 takeshi SoftAgency co jp 1141 checkpassword 0 76 mysql 0 3 2 patch gz MySQL authentication patch for QMAIL and checkpassword These are useful for management user mail pop account by MySQL By 1142 takeshi SoftAgency co jp 1143 jradius diff gz MySQL support for Livingston s Radius 2 01 Authentication and Accounting By Jose de Leon 1144 jdl thevision net 1145 mod auth mysql 2 20 tar gz Apache authentication module for MySQL By Zeev Suraski Please register this module at http bourbon netvision net il mysql mod auth mysql register html The registering information is only used for statistical purposes and will encourage further development of this module 1146 mod log mysql 1 05 tar gz MySQL logging module for Apache By Zeev Suraski 1147 mypasswd 2 0 tar gz Extra for mod auth mysql This is a little tool that allows you to add change user records storing group and or password entries in MySQL tables By Harry Brueckner 1148 brueckner respublica de 1149 mysql passwd README 1150 mysql passwd 1 2 tar gz Extra for mod auth mysql This is a two part system for use with mod auth mysql 1151 pam mysql tar gz This module authenticates users via pam using MySQL 1152 nsapi auth mysql tar Netscape Web Server API NSAPI functions to authenticate BASIC users against MySQL tables By Yuan John Jiang 1153 qmail 1 03 mysql 0 3 2 patch gz Patch for qmail to authenticate users from a MySQL table 1154 pwcheck mysql 0 1 tar gz An authentication module for the Cyrus IMAP server By Aaron Newsome 1155 B 5 Converters 1156 dbf2mysql 1 10d tar gz Convert between dbf files and MySQL tables By Maarten Boekhold 1157 boekhold cindy et tudelft nl and Michael Widenius This converter can t handle MEMO fields 1158 dbf2mysql zip Convert between FoxPro dbf files and MySQL tables on Win32 By Alexander Eltsyn 1159 ae nica ru or 1160 ae usa net 1161 dump2h 1 20 gz Convert from mysqldump output to a C header file By Harry Brueckner 1162 exportsql txt A script that is similar to access to mysql txt except that this one is fully configurable has better type conversion including detection of TIMESTAMP fields provides warnings and suggestions while converting quotes all special characters in text and binary data and so on It will also convert to mSQL v1 and v2 and is free of charge for anyone See 1163 http www cynergi net prod exportsql for latest version By Pedro Freire 1164 support cynergi net Note Doesn t work with Access2 1165 access to mysql txt Paste this function into an Access module of a database which has the tables you want to export See also exportsql By Brian Andrews Note Doesn t work with Access2 1166 importsql txt A script that does the exact reverse of exportsql txt That is it imports data from MySQL into an Access database via ODBC This is very handy when combined with exportSQL since it lets you use Access for all DB design and administration and synchronize with your actual MySQL server either way Free of charge See 1167 http www netdive com freebies importsql for any updates Created by Laurent Bossavit of NetDIVE Note Doesn t work with Access2 1168 msql2mysqlWrapper 1 0 A C wrapper from mSQL to MySQL By 1169 alfred sb net 1170 sqlconv pl A simple script that can be used to copy fields from one MySQL table to another in bulk Basically you can run mysqldump and pipe it to the sqlconv pl script and the script will parse through the mysqldump output and will rearrange the fields so they can be inserted into a new table An example is when you want to create a new table for a different site you are working on but the table is just a bit different ie fields in different order etc By Steve Shreeve 1171 B 6 Using MySQL with other products 1172 emacs sql mode tar gz Raw port of a SQL mode for XEmacs Supports completion Original by Peter D Pezaris 1173 pez atlantic2 sbi com and partial MySQL port by David Axmark 1174 MyAccess mda MyAccess is an AddIn for Access 97 and handles a lot of maintanance work for MySQL databases 1175 MyAccess readme By Hubertus Hiden 1176 radius 0 3 tar gz Patches for radiusd to make it support MySQL By Wim Bonis 1177 B 7 Useful tools 1178 mysql watchdog pl Monitor the MySQL daemon for possible lockups By Yermo Lamers 1179 mysqltop tar gz Shows and updates the process list in a fixed time interleave By Thomas Wana 1180 mysqlsync A perl script to keep remote copies of a MySQL database in sync with a central master copy By Mark Jeftovic 1181 markjr easydns com 1182 MySQLTutor MySQLTutor A tutor of MySQL for beginners 1183 B 8 Uncategorized 1184 findres pl Find reserved words in tables By Nem W Schlecht 1185 handicap tar gz Performance handicapping system for yachts Uses PHP By 1186 hylalog 1 0 tar gz Store hylafax outgoing faxes in a MySQL database By Sinisa Milivojevic 1187 sinisa coresinc com 1188 mrtg mysql 1 0 tar gz MySQL status plotting with MRTG by Luuk de Boer 1189 luuk wxs nl 1190 wuftpd 2 4 2 18 mysql support 2 tar gz Patches to add logging to MySQL for WU ftpd By Zeev Suraski 1191 Old Versions Previous versions of things found here that you probably won t be interested in 1192 C Contributors to MySQL Contributors to the MySQL distribution are listed below in somewhat random order Michael Monty Widenius Has written the following parts of MySQL All the main code in mysqld New functions for the string library Most of the mysys library The NISAM and MyISAM libraries B tree index file handlers with index compression and different record formats The heap library A memory table system with our superior full dynamic hashing In use since 1981 and published around 1984 The replace program look into it it s COOL MyODBC the ODBC driver for Windows95 Fixing bugs in MIT pthreads to get it to work for MySQL And also Unireg a curses based application tool with many utilities Porting of mSQL tools like msqlperl DBD DBI and DB2mysql Most parts of crash me and the MySQL benchmarks David Axmark Coordinator and main writer for the Reference Manual including enhancements to texi2html Also automatic website updating from this manual Autoconf Automake and libtool support The licensing stuff Parts of all the text files Nowadays only the README is left The rest ended up in the manual Our Mail master Lots of testing of new features Our in house free software lawyer Mailing list maintainer who never has the time to do it right Our original portability code more than 10 years old now Nowadays only some parts of mysys are left Someone for Monty to call in the middle of the night when he just got that new feature to work Paul DuBois Help with making the Reference Manual correct and understandable Gianmassimo Vigazzola 1193 qwerg mbox vol it or 1194 qwerg tin it The initial port to Win32 NT Kim Aldale Rewriting Monty s and David s attempts at English into English Allan Larsson The BOSS at TcX For all the time he has allowed Monty to spend on this maybe useful tool MySQL Dedicated user and bug finder of Unireg MySQL Per Eric Olsson For more or less constructive criticism and real testing of the dynamic record format Irena Pancirov 1195 irena mail yacc it Win32 port with Borland compiler David J Hughes For the effort to make a shareware SQL database We at TcX started with mSQL but found that it couldn t satisfy our purposes so instead we wrote a SQL interface to our application builder Unireg mysqladmin and mysql are programs that were largely influenced by their mSQL counterparts We have put a lot of effort into making the MySQL syntax a superset of mSQL Many of the APIs ideas are borrowed from mSQL to make it easy to port free mSQL programs to MySQL MySQL doesn t contain any code from mSQL Two files in the distribution client insert test c and client select test c are based on the corresponding non copyrighted files in the mSQL distribution but are modified as examples showing the changes necessary to convert code from mSQL to MySQL mSQL is copyrighted David J Hughes Fred Fish For his excellent C debugging and trace library Monty has made a number of smaller improvements to the library speed and additional options Richard A O Keefe For his public domain string library Henry Spencer For his regex library used in WHERE column REGEXP regexp Free Software Foundation From whom we got an excellent compiler gcc the libc library from which we have borrowed strto c to get some code working in Linux and the readline library for the mysql client Free Software Foundation The XEmacs development team For a really great editor environment used by almost everybody at TcX detron Igor Romanenko 1196 igor frog kiev ua mysqldump previously msqldump but ported and enhanced by Monty Tim Bunce Alligator Descartes For the DBD Perl interface Andreas Koenig 1197 a koenig mind de For the Perl interface to MySQL Eugene Chan 1198 eugene acenet com sg For porting PHP to MySQL Michael J Miller Jr 1199 mke terrapin turbolift com For the growing MySQL user manual And a lot of spelling language fixes for the FAQ Giovanni Maruzzelli 1200 maruzz matrice it For porting iODBC Unix ODBC Chris Provenzano Portable user level pthreads From the copyright This product includes software developed by Chris Provenzano the University of California Berkeley and contributors We are currently using version 1 60 beta6 patched by Monty see mit pthreads Changes mysql Xavier Leroy 1201 Xavier Leroy inria fr The author of LinuxThreads used by MySQL on Linux Zarko Mocnik 1202 zarko mocnik dem si Sorting for Slovenian language and the cset tar gz module that makes it easier to add other character sets TAMITO 1203 tommy valley ne jp The MB character set macros and the ujis and sjis character sets Yves Carlier 1204 Yves Carlier rug ac be mysqlaccess a program to show the access rights for a user Rhys Jones 1205 rhys wales com And GWE Technologies Limited For the JDBC a module to extract data from MySQL with a Java client Dr Xiaokun Kelvin ZHU 1206 X Zhu brad ac uk Further development of the JDBC driver and other MySQL related Java tools James Cooper 1207 pixel organic com For setting up a searchable mailing list archive at his site Rick Mehalick 1208 Rick Mehalick i o com For xmysql a graphical X client for MySQL Doug Sisk 1209 sisk wix com For providing RPM packages of MySQL for RedHat Linux Diemand Alexander V 1210 axeld vial ethz ch For providing RPM packages of MySQL for RedHat Linux Alpha Antoni Pamies Olive 1211 toni readysoft es For providing RPM versions of a lot of MySQL clients for Intel and SPARC Jay Bloodworth 1212 jay pathways sde state sc us For providing RPM versions for MySQL 3 21 versions Jochen Wiedmann 1213 wiedmann neckar alb de For maintaining the Perl DBD mysql module Therrien Gilbert 1214 gilbert ican net Jean Marc Pouyot 1215 jmp scalaire fr French error messages Petr snajdr 1216 snajdr pvt net Czech error messages Jaroslaw Lewandowski 1217 jotel itnet com pl Polish error messages Miguel Angel Fernandez Roiz Spanish error messages Roy Magne Mo 1218 rmo www hivolda no Norwegian error messages and testing of 3 21 Timur I Bakeyev 1219 root timur tatarstan ru Russian error messages brenno dewinter com Italian error messages Dirk Munzinger 1220 dirk trinity saar de German error messages Billik Stefan 1221 billik sun uniag sk Slovak error messages David Sacerdote 1222 davids secnet com Ideas for secure checking of DNS hostnames Wei Jou Chen 1223 jou nematic ieo nctu edu tw Some support for Chinese BIG5 characters Zeev Suraski 1224 bourbon netvision net il FROM UNIXTIME time formatting ENCRYPT functions and bison adviser Active mailing list member Luuk de Boer 1225 luuk wxs nl Ported and extended the benchmark suite to DBI DBD Have been of great help with crash me and running benchmarks Some new date functions The mysql setpermissions script Jay Flaherty 1226 fty utk edu Big parts of the Perl DBI DBD section in the manual Paul Southworth 1227 pauls etext org Ray Loyzaga 1228 yar cs su oz au Proof reading of the Reference Manual Alexis Mikhailov 1229 root medinf chuvashia su User definable functions UDFs CREATE FUNCTION and DROP FUNCTION Andreas F Bobak 1230 bobak relog ch The AGGREGATE extension to UDF functions Ross Wakelin 1231 R Wakelin march co uk Help to set up InstallShield for MySQL Win32 Jethro Wright III 1232 jetman li net The libmysql dll library James Pereria 1233 jpereira iafrica com Mysqlmanager a Win32 GUI tool for administrating MySQL Curt Sampson 1234 cjs portal ca Porting of MIT pthreads to NetBSD Alpha and NetBSD 1 3 i386 Sinisa Milivojevic 1235 sinisa coresinc com Compression with zlib to the client server protocol Perfect hashing for the lexical analyzer phase Antony T Curtis 1236 antony curtis olcs net Porting of MySQL to OS 2 Other contributors bugfinders and testers James H Thompson Maurizio Menghini Wojciech Tryc Luca Berra Zarko Mocnik Wim Bonis Elmar Haneke 1237 jehamby lightside 1238 psmith BayNetworks COM Mike Simons Jaakko Hyv atti And lots of bug report patches from the folks on the mailing list And a big tribute to those that help us answer questions on the mysql lists mysql com mailing list Daniel Koch 1239 dkoch amcity com Irix setup Luuk de Boer 1240 luuk wxs nl Benchmark questions Tim Sailer 1241 tps users buoy com DBD mysql questions Boyd Lynn Gerber 1242 gerberb zenez com SCO related questions Richard Mehalick 1243 RM186061 shellus com xmysql releated questions and basic installation questions Zeev Suraski 1244 bourbon netvision net il Apache module configuration questions log auth PHP related questions SQL syntax related questions and other general questions Francesc Guasch 1245 frankie citel upc es General questions Jonathan J Smith 1246 jsmith wtp net Questions pertaining to OS specifics with Linux SQL syntax and other things that might be needing some work David Sklar 1247 sklar student net Using MySQL from PHP and Perl Alistair MacDonald 1248 A MacDonald uel ac uk Not yet specified but is flexible and can handle Linux and maybe HP UX Will try to get user to use mysqlbug John Lyon 1249 jlyon imag net Questions about installing MySQL on Linux systems using either rpm files or compiling from source Lorvid Ltd 1250 lorvid WOLFENET com Simple billing license support copyright issues Patrick Sherrill 1251 patrick coconet com ODBC and VisualC interface questions Randy Harmon 1252 rjharmon uptimecomputers com DBD Linux some SQL syntax questions 1253 D MySQL change history Note that we tend to update the manual at the same time we implement new things to MySQL If you find a version listed below that you can t find on the 1254 MySQL download page this means that the version has not yet been released 1255 D 1 Changes in release 3 23 x Not released yet The major difference between release 3 23 and releases 3 22 and 3 21 is that 3 23 contains a new ISAM library MyISAM which is more tuned for SQL than the old ISAM was The 3 23 release is under development and things will be added at a fast pace to it For the moment we recommend this version only for users that desperately need a new feature that is found only in this release like big file support and machine independent tables Note that all new functionality in MySQL 3 23 is extensively tested but as this release involves much new code it s difficult to test everything This version should start to stabilise as soon as we get subselects included in it 1256 D 1 1 Changes in release 3 23 0 A new table handler library MyISAM with a lot of new features See section 1257 10 17 MySQL table types You can create in memory HEAP tables which are extremely fast for lookups Support for big files 63 bit on OSes that support big files New function LOAD FILE filename to get the contents of a file as a string value New operator which will act as but will return TRUE if both arguments are NULL This is useful for comparing changes between tables Added the ODBC 3 0 EXTRACT interval FROM datetime function Columns defined as FLOAT 4 or FLOAT 8 are not rounded on storage and may be in scientific notation 1 0 E 10 when retrieved REPLACE is now faster than before Changed LIKE character comparison to behave as This means that e LIKE is now true SHOW TABLE STATUS returns a lot of information about the tables Added LIKE to the SHOW STATUS command Added privilege column to SHOW COLUMNS Added columns packed and comment to SHOW INDEX Added comments to tables with CREATE TABLE COMMENT xxx Added UNIQUE as in CREATE TABLE table name col int not null UNIQUE New create syntax CREATE TABLE SELECT New create syntax CREATE TABLE IF NOT EXISTS Allow creation of CHAR 0 columns DATE FORMAT now requires before any format character DELAYED is now a reserved word sorry about that An example procedure is added analyse file sql analyse c This will describe the data in your query Try the following SELECT FROM WHERE PROCEDURE ANALYSE max elements max memory This procedure is extremely useful when you want to check the data in your table BINARY cast to force a string to be compared case sensitively Added option skip show databases to mysqld Check if a row has changed in an UPDATE now also works with BLOB TEXT columns Added the INNER join syntax NOTE This made INNER an reserved word Added support for netmasks to the hostname in the MySQL tables You can specify a netmask using the IP NETMASK syntax If you compare a NOT NULL DATE DATETIME column with IS NULL this is changed to a compare against 0 to satisfy some ODBC applications By 1258 shreeve uci edu NULL IN now returns NULL instead of 0 This will ensure that null column NOT IN doesn t match NULL values Fix storage of floating point values in TIME columns Changed parsing of TIME strings to be more strict Now the fractional second part is detected and currently skipped The following formats are supported DAYS H H MM SS fraction H H H H MM SS fraction Detect and ignore second fraction part from DATETIME Added the LOW PRIORITY attribute to LOAD DATA INFILE The default index name now uses the same case as the used column name Changed default number of connections to 100 Use bigger buffers when using LOAD DATA INFILE DECIMAL x y now works according to ANSI SQL Added aggregate UDF functions Thanks to Andreas F Bobak LAST INSERT ID is now updated for INSERT INTO SELECT Some small changes to the join table optimizer to make some joins faster SELECT DISTINCT is much faster It uses the new UNIQUE functionality in MyISAM One difference compared to MySQL 3 22 is that the output of DISTINCT is not sorted anymore Temporary in memory HEAP tables are automatically converted to MyISAM disk based tables when needed This means that you should no longer get the TABLE is FULL error All C client API macros are now functions to make shared libraries more reliable Because of this you can no longer call mysql num fields on a MYSQL object you must use mysql field count instead Added use of LIBEWRAP Patch by Henning P Schmiedehausen Don t allow AUTO INCREMENT for other than numerical columns Using AUTO INCREMENT will now automatically make the column NOT NULL Show NULL as the default value for AUTO INCREMENT columns Added SQL BIG RESULT SQL SMALL RESULT is now default Added a shared library RPM This enchancement was contributed by David Fox dsfox cogsci ucsd edu Added a enable large files disable large files switch to configure See configure in for some systems where this is automatically turned off because of broken implementations Upgraded readline to 4 0 New CREATE TABLE options PACK KEYS and CHECKSUM Added mysqld option default table type 1259 D 2 Changes in release 3 22 x The 3 22 version has faster and safer connect code and a lot of new nice enhancements The reason for not including these changes in the 3 21 version is mainly that we are trying to avoid big changes to 3 21 to keep it as stable as possible As there aren t really any MAJOR changes upgrading to 3 22 should be very easy and painless See section 1260 4 16 2 Upgrading from a 3 21 version to 3 22 3 22 should also be used with the new DBD mysql 1 20xx driver that can use the new connect protocol 1261 D 2 1 Changes in release 3 22 25 Fixed some small problems with the installation 1262 D 2 2 Changes in release 3 22 24 DATA is not a reserved word anymore Fixed optimizer bug with tables with only one row Fixed bug when using LOCK TABLES table name READ FLUSH TABLES Applied some patches for HPUX isamchk should now work on Win32 Changed configure to not use big file handling on Linux as this crashes some RedHat 6 0 systems 1263 D 2 3 Changes in release 3 22 23 Upgraded to use Autoconf 2 13 Automake 1 4 and libtool 1 3 2 Better support for SCO in configure Added option defaults file to option file handling to force use of only one specific option file Extended CREATE syntax to ignore MySQL 3 23 keywords Fixed deadlock problem when using INSERT DELAYED on a table locked with LOCK TABLES Fixed deadlock problem when using DROP TABLE on a table that was locked by another thread Add logging of GRANT REVOKE commands in the update log Fixed isamchk to detect a new error condition Fixed bug in NATURAL LEFT JOIN 1264 D 2 4 Changes in release 3 22 22 Fixed problem in the C API when you called mysql close directly after mysql init Better client error message when you can t open socket Fixed delayed insert thread counting when you couldn t create a new delayed insert thread Fixed bug in CONCAT with many arguments Added patches for DEC 3 2 and SCO Fixed path bug when installing MySQL as a service on NT The MySQL win32 version is now compiled with VC 6 0 instead of with VC 5 0 New installation setup for MySQL Win32 1265 D 2 5 Changes in release 3 22 21 Fixed problem with DELETE FROM TABLE when table was locked by another thread Fixed bug in LEFT JOIN involving empty tables Changed the mysql db column from char 32 to char 60 MODIFY and DELAYED are not reserved words anymore Fixed a bug when storing days in a TIME column Fixed a problem with Host is not allowed to connect to this MySQL server after one had inserted a new MySQL user with a GRANT command Changed to use TCP NODELAY also on Linux Should give faster TCP IP connections 1266 D 2 6 Changes in release 3 22 20 Fixed STD for big tables when result should be 0 The update log didn t have newlines on some operating systems INSERT DELAYED had some garbage at end in the update log 1267 D 2 7 Changes in release 3 22 19 Fixed bug in mysql install db from 3 22 17 Changed default key cache size to 8M Fixed problem with queries that needed temporary tables with BLOB columns 1268 D 2 8 Changes in release 3 22 18 Fixes a fatal problem in 3 22 17 on Linux After shutdown all threads didn t die properly Added option O flush time to mysqld This is mostly useful on Win32 and tells how often MySQL should close all unused tables and flush all updated tables to disk Fixed problem that a VARCHAR column compared with CHAR column didn t use keys efficiently 1269 D 2 9 Changes in release 3 22 17 Fixed a core dump problem when using log update and connecting without a default database Fixed some configure and portability problems Using LEFT JOIN on tables that had circular dependencies caused mysqld to hang forever 1270 D 2 10 Changes in release 3 22 16 mysqladmin processlist could kill the server if a new user logged in DELETE FROM tbl name WHERE key column col name didn t find any matching rows Fixed DATE ADD column didn t work INSERT DELAYED could deadlock with status upgrading lock Extended ENCRYPT to take longer salt strings than 2 characters longlong2str is now much faster than before For Intel x86 platforms this function is written in optimized assembler Added the MODIFY keyword to ALTER TABLE 1271 D 2 11 Changes in release 3 22 15 GRANT used with IDENTIFIED BY didn t take effect until privileges were flushed Name change of some variables in SHOW STATUS Fixed problem with ORDER BY with only index optimzation when there were multiple key definitions for a used column DATE and DATETIME columns are now up to 5 times faster than before INSERT DELAYED can be used to let the client do other things while the server inserts rows into a table LEFT JOIN USING col1 col2 didn t work if one used it with tables from 2 different databases LOAD DATA LOCAL INFILE didn t work in the Unix version because of a missing file Fixed problems with VARCHAR BLOB on very short rows 4 bytes error 127 could occur when deleting rows Updating BLOB TEXT through formulas didn t work for short 256 char strings When you did a GRANT on a new host mysqld could die on the first connect from this host Fixed bug when one used ORDER BY on column name that was the same name as an alias Added BENCHMARK loop count expression function to time expressions 1272 D 2 12 Changes in release 3 22 14 Allow empty arguments to mysqld to make it easier to start from shell scripts Setting a TIMESTAMP column to NULL didn t record the timestamp value in the update log Fixed lock handler bug when one did INSERT INTO TABLE SELECT GROUP BY Added a patch for localtime r on Win32 so that it will not crash anymore if your date is 2039 but instead will return a time of all zero Names for user defined functions are no longer case sensitive Added escape of Z ASCII 26 to Z as Z doesn t work with pipes on Win32 mysql fix privileges adds a new column to the mysql func to support aggregate UDF functions in future MySQL releases 1273 D 2 13 Changes in release 3 22 13 Saving NOW CURDATE or CURTIME directly in a column didn t work SELECT COUNT LEFT JOIN didn t work with no WHERE part Updated config guess to allow MySQL to configure on UnixWare 7 0 x Changed the implementation of pthread cond on the Win32 version get lock now correctly times out on Win32 1274 D 2 14 Changes in release 3 22 12 Fixed problem when using DATE ADD and DATE SUB in a WHERE clause You can now set the password for a user with the GRANT TO user IDENTIFIED BY password syntax Fixed bug in GRANT checking with SELECT on many tables Added missing file mysql fix privilege tables to the RPM distribution This is not run by default since it relies on the client package Added option SQL SMALL RESULT to SELECT to force use of fast temporary tables when you know that the result set will be small Allow use of negative real numbers without a decimal point Day number is now adjusted to max days in month if the resulting month after DATE ADD DATE SUB doesn t have enough days Fix that GRANT compares columns in case insensitive fashion Fixed a bug in sql list h that made ALTER TABLE dump core in some contexts The hostname in user hostname can now include and without quotes in the context of the GRANT REVOKE and SET PASSWORD FOR statements Fix for isamchk for tables which need big temporary files 1275 D 2 15 Changes in release 3 22 11 IMPORTANT You must run the mysql fix privilege tables script when you upgrade to this version This is needed because of the new GRANT system If you don t do this you will get Access denied when you try to use ALTER TABLE CREATE INDEX or DROP INDEX GRANT to allow deny users table and column access Changed USER to return user host Changed the syntax for how to set PASSWORD for another user New command FLUSH STATUS that sets most status variables to zero New status variables aborted threads aborted connects New option variable connection timeout Added support for Thai sorting by Pruet Boonma Slovak and japanese error messages Configuration and portability fixes Added option SET SQL WARNINGS 1 to get a warning count also for simple inserts MySQL now uses SIGTERM instead of SIGQUIT with shutdown to work better on FreeBSD Added option G print vertically to mysql SELECT HIGH PRIORITY killed mysqld IS NULL on a AUTO INCREMENT column in a LEFT JOIN didn t work as expected New function MAKE SET 1276 D 2 16 Changes in release 3 22 10 mysql install db no longer starts the MySQL server You should start mysqld with safe mysqld after installing it The MySQL RPM will however start the server as before Added bootstrap option to mysqld and recoded mysql install db to use it This will make it easier to install MySQL with RPMs Changed sign and minus ABS and MOD to be BIGINT aware 64 bit safe Fixed a bug in ALTER TABLE that caused mysqld to crash MySQL now always reports the conflicting key values when a duplicate key entry occurs Before this was only reported for INSERT New syntax INSERT INTO tbl name SET col name value col name value Most errors in the err log are now prefixed with a time stamp Added option MYSQL INIT COMMAND to mysql options to make a query on connect or reconnect Added option MYSQL READ DEFAULT FILE and MYSQL READ DEFAULT GROUP to mysql options to read the following parameters from the MySQL option files port socket compress password pipe timeout user init command host and database Added maybe null to the UDF structure Added option IGNORE to INSERT statemants with many rows Fixed some problems with sorting of the koi8 character sets Users of koi8 MUST run isamchk rq on each table that has an index on a CHAR or VARCHAR column New script mysql setpermission by Luuk de Boer allows one to easily create new users with permissions for specific databases Allow use of hexadecimal strings 0x when specifying a constant string like in the column separators with LOAD DATA INFILE Ported to OS 2 thanks to Antony T Curtis 1277 antony curtis olcs net Added more variables to SHOW STATUS and changed format of output to be like SHOW VARIABLES Added extended status command to mysqladmin which will show the new status variables 1278 D 2 17 Changes in release 3 22 9 SET SQL LOG UPDATE 0 caused a lockup of the server New SQL command FLUSH TABLES HOSTS LOGS PRIVILEGES New SQL command KILL thread id Added casts and changed include files to make MySQL easier to compile on AIX and DEC OSF1 4 x Fixed conversion problem when using ALTER TABLE from a INT to a short CHAR column Added SELECT HIGH PRIORITY This will get a lock for the SELECT even if there is a thread waiting for another SELECT to get a WRITE LOCK Moved wild compare to string class to be able to use LIKE on BLOB TEXT columns with 0 Added ESCAPE option to LIKE Added a lot more output to mysqladmin debug You can now start mysqld on Win32 with the flush option This will flush all tables to disk after each update This makes things much safer on NT Win98 but also MUCH slower 1279 D 2 18 Changes in release 3 22 8 Czech character sets should now work much better You must also install 1280 ftp www mysql com pub mysql Downloads Patches czech 3 22 8 patch This patch should also be installed if you are using a character set with uses my strcoll The patch should always be safe to install for any system but as this patch changes ISAM internals it s not yet in the default distribution DATE ADD and DATE SUB didn t work with group functions mysql will now also try to reconnect on USE DATABASE commands Fix problem with ORDER BY and LEFT JOIN and const tables Fixed problem with ORDER BY if the first ORDER BY column was a key and the rest of the ORDER BY columns wasn t part of the key Fixed a big problem with OPTIMIZE TABLE MySQL clients on NT will now by default first try to connect with named pipes and after this with TCP IP Fixed a problem with DROP TABLE and mysqladmin shutdown on Win32 a fatal bug from 3 22 6 Fixed problems with TIME columns and negative strings Added an extra thread signal loop on shutdown to avoid some error messages from the client MySQL now uses the next available number as extension for the update log file Added patches for UNIXWARE 7 1281 D 2 19 Changes in release 3 22 7 Added LIMIT clause for the DELETE statement You can now use the syntax to hide MySQL specific keywords when you write portable code MySQL will parse the code inside the comments as if the surrounding and comment characters didn t exist OPTIMIZE TABLE tbl name can now be used to reclaim disk space after many deletes Currently this uses ALTER TABLE to re generate the table but in the future it will use an integrated isamchk for more speed Upgraded libtool to get the configure more portable Fixed slow UPDATE and DELETE operations when using DATETIME or DATE keys Changed optimizer to make it better at deciding when to do a full join and when using keys You can now use mysqladmin proc to display information about your own threads Only users with the Process priv privilege can get information about all threads Added handling of formats YYMMDD YYYYMMDD YYMMDDHHMMSS for numbers when using DATETIME and TIMESTAMP types Formerly these formats only worked with strings Added connect option CLIENT IGNORE SPACE to allow use of spaces after function names and before Powerbuilder requires this This will make all function names reserved words Added the log long format option to mysqld to enable timestamps and INSERT ID s in the update log Added where option to mysqldump patch by Jim Faucette The lexical analyzer now uses perfect hashing for faster parsing of SQL statements 1282 D 2 20 Changes in release 3 22 6 Faster mysqldump For the LOAD DATA INFILE statement you can now use the new LOCAL keyword to read the file from the client mysqlimport will automatically use LOCAL when importing with the TCP IP protocol Fixed small optimize problem when updating keys Changed makefiles to support shared libraries MySQL NT can now use named pipes which means that you can now use MySQL NT without having to install TCP IP 1283 D 2 21 Changes in release 3 22 5 All table lock handing is changed to avoid some very subtle deadlocks when using DROP TABLE ALTER TABLE DELETE FROM TABLE and mysqladmin flush tables under heavy usage Changed locking code to get better handling of locks of different types Updated DBI to 1 00 and DBD to 1 2 0 Added a check that the error message file contains error messages suitable for the current version of mysqld To avoid errors if you accidentally try to use an old error message file All count structures in the client affected rows insert id are now of type BIGINT to allow 64 bit values to be used This required a minor change in the MySQL protocol which should affect only old clients when using tables with AUTO INCREMENT values 24M The return type of mysql fetch lengths has changed from uint to ulong This may give a warning for old clients but should work on most machines Change mysys and dbug libraries to allocate all thread variables in one struct This makes it easier to make a threaded libmysql dll library Use the result from gethostname instead of uname when constructing pid file names New better compressed server client protocol COUNT STD and AVG are extended to handle more than 4G rows You can now store values in the range 838 59 59 x 838 59 59 in a TIME column WARNING INCOMPATIBLE CHANGE If you set a TIME column to too short a value MySQL now assumes the value is given as D HH MM SS instead of HH MM SS TIME TO SEC and SEC TO TIME can now handle negative times and hours up to 32767 Added new option SET OPTION SQL LOG UPDATE 0 1 to allow users with the process privilege to bypass the update log Modified patch from Sergey A Mukhin 1284 violet rosnet net Fixed fatal bug in LPAD Initialize line buffer in mysql cc to make BLOB reading from pipes safer Added O max connect errors option to mysqld Connect errors are now reset for each correct connection Increased the default value of max allowed packet to 1M in mysqld Added low priority updates option to mysqld to give UPDATE operations lower priority than retrievals You can now use INSERT REPLACE UPDATE DELETE LOW PRIORITY You can also use SET OPTION LOW PRIORITY UPDATES 0 1 to change the priority for one thread One side effect is that LOW PRIORITY is now a reserved word Add support for INSERT INTO table VALUES to allow inserting multiple rows with a single statement INSERT INTO tbl name is now also cached when used with LOCK TABLES Previously only INSERT SELECT and LOAD DATA INFILE were cached Allow GROUP BY functions with HAVING mysql SELECT col FROM table GROUP BY col HAVING COUNT 0 mysqld will now ignore trailing characters in queries This is to make it easier to migrate from some other SQL servers that require the trailing Fix for corrupted fixed format output generated by SELECT INTO OUTFILE WARNING INCOMPATIBLE CHANGE Added Oracle GREATEST and LEAST functions You must now use these instead of the MAX and MIN functions to get the largest smallest value from a list of values These can now handle REAL BIGINT and string CHAR or VARCHAR values WARNING INCOMPATIBLE CHANGE DAYOFWEEK had offset 0 for Sunday Changed the offset to 1 Give an error for queries that mix GROUP BY columns and fields when there is no GROUP BY specification Added vertical option to mysql for printing results in vertical mode Index only optimization some queries are now resolved using only indexes Until MySQL 4 0 this works only for numeric columns See section 1285 10 4 How MySQL uses indexes Lots of new benchmarks A new C API chapter and lots of other improvements in the manual 1286 D 2 22 Changes in release 3 22 4 Added tmpdir option to mysqld for specifying the location of the temporary file directory MySQL now automatically changes a query from an ODBC client SELECT FROM table WHERE auto increment column IS NULL to SELECT FROM table WHERE auto increment column LAST INSERT ID This allows some ODBC programs Delphi Access to retrieve the newly inserted row to fetch the AUTO INCREMENT id DROP TABLE now waits for all users to free a table before deleting it Fixed small memory leak in the new connect protocol New functions BIN HEX and CONV for converting between different number bases Added function SUBSTRING with 2 arguments If you created a table with a record length smaller than 5 you couldn t delete rows from the table Added optimization to remove const reference tables from ORDER BY and GROUP BY mysqld now automatically disables system locking on Linux and Win32 and for systems that use MIT pthreads You can force the use of locking with the enable locking option Added console option to mysqld to force a console window for error messages when using Win32 Fixed table locks for Win32 Allow in identifiers Changed name of user specific configuration file from my cnf to my cnf Unix only Added DATE ADD and DATE SUB functions 1287 D 2 23 Changes in release 3 22 3 Fixed a lock problem bug in MySQL 3 22 1 when closing temporary tables Added missing mysql ping to the client library Added compress option to all MySQL clients Changed byte to char in mysql h and mysql com h 1288 D 2 24 Changes in release 3 22 2 Searching on multiple constant keys that matched more than 30 of the rows didn t always use the best possible key New functions RPAD and LPAD You can now save default options like passwords in a configuration file my cnf Lots of small changes to get ORDER BY to work when no records are found when using fields that are not in GROUP BY MySQL extension Added chroot option to mysqld to start mysqld in a chroot environment by Nikki Chumakov 1289 nikkic cityline ru Trailing spaces are now ignored when comparing case sensitive strings this should fix some problems with ODBC and flag 512 Fixed a core dump bug in the range optimizer Added one thread option to mysqld for debugging with LinuxThreads or glibc This replaces the T32 flag Added DROP TABLE IF EXISTS to prevent an error from occurring if the table doesn t exist IF and EXISTS are now reserved words they would have to be sooner or later Added lots of new options to mysqldump Server error messages are now in mysqld error h The server client protocol now supports compression All bug fixes from MySQL 3 21 32 1290 D 2 25 Changes in release 3 22 1 Added new C API function mysql ping Added new API functions mysql init and mysql options You now MUST call mysql init before you call mysql real connect You don t have to call mysql init if you only use mysql connect Added mysql options MYSQL OPT CONNECT TIMEOUT so you can set a timeout for connecting to a server Added timeout option to mysqladmin as a test of mysql options Added AFTER column and FIRST options to ALTER TABLE ADD columns This makes it possible to add a new column at some specific location within a row in an existing table WEEK now takes an optional argument to allow handling of weeks when the week starts on Monday some European countries By default WEEK assumes the week starts on Sunday TIME columns weren t stored properly bug in MySQL 3 22 0 UPDATE now returns information about how many rows were matched and updated and how many warnings occurred when doing the update Fixed incorrect result from FORMAT 100 2 ENUM and SET columns were compared in binary case sensitive fashion changed to be case insensitive 1291 D 2 26 Changes in release 3 22 0 New backward compatible connect protocol that allows you to specify the database to use when connecting to get much faster connections to a specific database The mysql real connect call is changed to mysql real connect MYSQL mysql const char host const char user const char passwd const char db uint port const char unix socket uint client flag Each connection is handled by its own thread rather than by the master accept thread This fixes permanently the telnet bug that was a topic on the mail list some time ago All TCP IP connections are now checked with backward resolution of the hostname to get better security mysqld now has a local hostname resolver cache so connections should actually be faster than before even with this feature A site automatically will be blocked from future connections if someone repeatedly connects with an improper header like when one uses telnet You can now refer to tables in different databases with references of the form tbl name db name or db name tbl name This makes it possible to give a user read access to some tables and write access to others simply by keeping them in different databases Added user option to mysqld to allow it to run as another Unix user if it is started as the Unix root user Added caching of users and access rights for faster access rights checking Normal users not anonymous ones can change their password with mysqladmin password new password This uses encrypted passwords that are not logged in the normal MySQL log All important string functions are now coded in assembler for x86 Linux machines This gives a speedup of 10 in many cases For tables that have many columns the column names are now hashed for much faster column name lookup this will speed up some benchmark tests a lot Some benchmarks are changed to get better individual timing Some loops were so short that a specific test took 2 seconds The loops have been changed to take about 20 seconds to make it easier to compare different databases A test that took 1 2 seconds before now takes 11 24 seconds which is much better Re arranged SELECT code to handle some very specific queries involving group functions like COUNT without a GROUP BY but with HAVING The following now works mysql SELECT count as C FROM table HAVING C 1 Changed the protocol for field functions to be faster and avoid some calls to malloc Added T32 option to mysqld for running all queries under the main thread This makes it possible to debug mysqld under Linux with gdb Added optimization of not null column IS NULL needed for some Access queries Allow STRAIGHT JOIN to be used between two tables to force the optimizer to join them in a specific order String functions now return VARCHAR rather than CHAR and the column type is now VARCHAR for fields saved as VARCHAR This should make the MyODBC driver better but may break some old MySQL clients that don t handle FIELD TYPE VARCHAR the same way as FIELD TYPE CHAR CREATE INDEX and DROP INDEX are now implemented through ALTER TABLE CREATE TABLE is still the recommended fast way to create indexes Added set variable option wait timeout to mysqld Added time column to mysqladmin processlist to show how long a query has taken or how long a thread has slept Added lots of new variables to show variables and some new to show status Added new type YEAR YEAR is stored in 1 byte with allowable values of 0 and 1901 to 2155 Added new DATE type that is stored in 3 bytes rather than 4 bytes All new tables are created with the new date type if you don t use the old protocol option to mysqld Fixed bug in record caches for some queries you could get Error from table handler on some operating systems Added enable assembler option to configure for x86 machines tested on Linux gcc This will enable assembler functions for the most important string functions for more speed 1292 D 3 Changes in release 3 21 x 1293 D 3 1 Changes in release 3 21 33 Fixed problem when sending SIGHUP to mysqld mysqld core dumped when starting from boot on some systems Fixed problem with losing a little memory for some connections DELETE FROM tbl name without a WHERE condition is now done the long way when you use LOCK TABLES or if the table is in use to avoid race conditions INSERT INTO TABLE timestamp column VALUES NULL didn t set timestamp 1294 D 3 2 Changes in release 3 21 32 Fixed some possible race conditions when doing many reopen close on the same tables under heavy load This can happen if you execute mysqladmin refresh often This could in some very rare cases corrupt the header of the index file and cause error 126 or 138 Fixed fatal bug in refresh when running with the skip locking option There was a very small time gap after a mysqladmin refresh when a table could be corrupted if one thread updated a table while another thread did mysqladmin refresh and another thread started a new update ont the same table before the first thread had finished A refresh or flush tables will now not return until all used tables are closed SELECT DISTINCT with a WHERE clause that didn t match any rows returned a row in some contexts bug only in 3 21 31 GROUP BY ORDER BY returned one empty row when no rows where found Fixed a bug in the range optimizer that wrote Use count Wrong count for in the error log file 1295 D 3 3 Changes in release 3 21 31 Fixed a sign extension problem for the TINYINT type on Irix Fixed problem with LEFT constant string function Fixed problem with FIND IN SET LEFT JOIN core dumped if the second table is used with a constant WHERE ON expression that uniquely identifies one record Fixed problems with DATE FORMAT and incorrect dates DATE FORMAT now ignores to make it possible to extend it more easily in the future 1296 D 3 4 Changes in release 3 21 30 mysql now returns an exit code 0 if the query returned an error Saving of command line history to file in mysql client By Tommy Larsen 1297 tommy mix hive no Fixed problem with empty lines that were ignored in mysql cc Save the pid of the signal handler thread in the pid file instead of the pid of the main thread Added patch by 1298 tommy valley ne jp to support Japanese characters SJIS and UJIS Changed safe mysqld to redirect startup messages to hostname err instead of hostname log to reclaim file space on mysqladmin refresh ENUM always had the first entry as default value ALTER TABLE wrote two entries to the update log sql acc now closes the mysql grant tables after a reload to save table space and memory Changed LOAD DATA to use less memory with tables and BLOB columns Sorting on a function which made a division 0 produced a wrong set in some cases Fixed SELECT problem with LEFT when using the czech character set Fixed problem in isamchk it couldn t repair a packed table in a very unusual case SELECT statements with or bit functions failed on columns with NULL values When comparing a field field where one of the fields was a part key only the length of the part key was compared 1299 D 3 5 Changes in release 3 21 29 LOCK TABLES DELETE from tbl name never removed locks properly Fixed problem when grouping on an OR function Fixed permission problem with umask and creating new databases Fixed permission problem on result file with SELECT INTO OUTFILE Fixed problem in range optimizer core dump for a very complex query Fixed problem when using MIN integer or MAX integer in GROUP BY Fixed bug on Alpha when using integer keys Other keys worked on Alpha Fixed bug in WEEK XXXX xx 01 1300 D 3 6 Changes in release 3 21 28 Fixed socket permission clients couldn t connect to Unix socket on Linux Fixed bug in record caches for some queries you could get Error from table handler on some operating systems 1301 D 3 7 Changes in release 3 21 27 Added user level lock functions GET LOCK string timeout RELEASE LOCK string Added opened tables to show status Changed connect timeout to 3 seconds to make it somewhat harder for crackers to kill mysqld through telnet TCP IP Fixed bug in range optimizer when using WHERE key part 1 something AND key part 2 something else Changed configure for detection of FreeBSD 3 0 9803xx and above WHERE with string column key constant string didn t always find all rows if the column had many values differing only with characters of the same sort value like e and e Strings keys looked up with ref were not compared in case sensitive fashion Added umask to make log files non readable for normal users Ignore users with old 8 byte password on startup if not using old protocol option to mysqld SELECT which matched all key fields returned the values in the case of the matched values not of the found values Minor problem 1302 D 3 8 Changes in release 3 21 26 FROM DAYS 0 now returns 0000 00 00 In DATE FORMAT PM and AM were swapped for hours 00 and 12 Extended the default maximum key size to 256 Fixed bug when using BLOB TEXT in GROUP BY with many tables An ENUM field that is not declared NOT NULL has NULL as the default value Previously the default value was the first enumeration value Fixed bug in the join optimizer code when using many part keys on the same key INDEX Organization Surname 35 Initials 35 Added some tests to the table order optimizer to get some cases with SELECT FROM many tables much faster Added a retry loop around accept to possibly fix some problems on some Linux machines 1303 D 3 9 Changes in release 3 21 25 Changed typedef string to typedef my string for better portability You can now kill threads that are waiting on a disk full condition Fixed some problems with UDF functions Added long options to isamchk Try isamchk help Fixed a bug when using 8 bytes long alpha filesort didn t work Affects DISTINCT ORDER BY and GROUP BY on 64 bit processors 1304 D 3 10 Changes in release 3 21 24 Dynamic loadable functions Based on source from Alexis Mikhailov You couldn t delete from a table if no one had done a SELECT on the table Fixed problem with range optimizer with many OR operators on key parts inside each other Recoded MIN and MAX to work properly with strings and HAVING Changed default umask value for new files from 0664 to 0660 Fixed problem with LEFT JOIN and constant expressions in the ON part Added Italian error messages from 1305 brenno 3cord philips nl configure now works better on OSF1 tested on 4 0D Added hooks to allow LIKE optimization with international character support Upgraded DBI to 0 93 1306 D 3 11 Changes in release 3 21 23 The following symbols are now reserved words TIME DATE TIMESTAMP TEXT BIT ENUM NO ACTION CHECK YEAR MONTH DAY HOUR MINUTE SECOND STATUS VARIABLES Setting a TIMESTAMP to NULL in LOAD DATA INFILE didn t set the current time for the TIMESTAMP Fix BETWEEN to recognize binary strings Now BETWEEN is case sensitive Added skip thread priority option to mysqld for systems where mysqld s thread scheduling doesn t work properly BSDI 3 1 Added ODBC functions DAYNAME and MONTHNAME Added function TIME FORMAT This works like DATE FORMAT but takes a time string HH MM DD as argument Fixed unlikely key optimizer bug when using ORs of key parts inside ANDs Added command variables to mysqladmin A lot of small changes to the binary releases Fixed a bug in the new protocol from MySQL 3 21 20 Changed ALTER TABLE to work with Win32 Win32 can t rename open files Also fixed a couple of small bugs in the Win32 version All standard MySQL clients are now ported to MySQL Win32 MySQL can now be started as a service on NT 1307 D 3 12 Changes in release 3 21 22 Starting with this version all MySQL distributions will be configured compiled and tested with crash me and the benchmarks on the following platforms SunOS 5 6 sun4u SunOS 5 5 1 sun4u SunOS 4 14 sun4c SunOS 5 6 i86pc Irix 6 3 mips5k HP UX 10 20 hppa AIX 4 2 1 ppc OSF1 V4 0 alpha FreeBSD 2 2 2 i86pc and BSDI 3 1 i386 Fix COUNT problems when the WHERE clause didn t match any records Bug from 3 21 17 Removed that NULL NULL is true Now you must use IS NULL or IS NOT NULL to test whether or not a value is NULL This is according to ANSI SQL but may break old applications that are ported from mSQL You can get the old behavior by compiling with DmSQL COMPLIANT Fixed bug that core dumped when using many LEFT OUTER JOIN clauses Fixed bug in ORDER BY on string formula with possible NULL values Fixed problem in range optimizer when using on sub index Added functions DAYOFYEAR DAYOFMONTH MONTH YEAR WEEK QUARTER HOUR MINUTE SECOND and FIND IN SET Added command SHOW VARIABLES Added support of long constant strings from ANSI SQL mysql SELECT first second first second Upgraded mSQL Mysql modules to 1 1825 Upgraded mysqlaccess to 2 02 Fixed problem with Russian character set and LIKE Ported to OpenBSD 2 1 New Dutch error messages 1308 D 3 13 Changes in release 3 21 21a Configure changes for some operating systems 1309 D 3 14 Changes in release 3 21 21 Fixed optimizer bug when using WHERE data field date field2 AND date field2 constant Added command SHOW STATUS Removed manual ps from the source distribution to make it smaller 1310 D 3 15 Changes in release 3 21 20 Changed the maximum table name and column name lengths from 32 to 64 Aliases can now be of any length Fixed mysqladmin stat to return the right number of queries Changed protocol downward compatible to mark if a column has the AUTO INCREMENT attribute or is a TIMESTAMP This is needed for the new Java driver Added Hebrew sorting order by Zeev Suraski Solaris 2 6 Fixed configure bugs and increased maximum table size from 2G to 4G 1311 D 3 16 Changes in release 3 21 19 Upgraded DBD to 1823 This version implements mysql use result in DBD Mysql Benchmarks updated for empress by Luuk Fixed a case of slow range searching Configure fixes Docs directory Added function REVERSE by Zeev Suraski 1312 D 3 17 Changes in release 3 21 18 Issue error message if client C functions are called in wrong order Added automatic reconnect to the libmysql c library If a write command fails an automatic reconnect is done Small sort sets no longer use temporary files Upgraded DBI to 0 91 Fixed a couple of problems with LEFT OUTER JOIN Added CROSS JOIN syntax CROSS is now a reserved word Recoded yacc bison stack allocation to be even safer and to allow MySQL to handle even bigger expressions Fixed a couple of problems with the update log ORDER BY was slow when used with key ranges 1313 D 3 18 Changes in release 3 21 17 Changed documentation string of with unix socket path to avoid confusion Added ODBC and ANSI SQL style LEFT OUTER JOIN The following are new reserved words LEFT NATURAL USING The client library now uses the value of the environment variable MYSQL HOST as the default host if it s defined SELECT column SUM expr now returns NULL for column when there are matching rows Fixed problem with comparing binary strings and BLOBs with ASCII characters over 127 Fixed lock problem when freeing a read lock on a table with multiple read locks a thread waiting for a write lock would have been given the lock This shouldn t affect data integrity but could possibly make mysqld restart if one thread was reading data that another thread modified LIMIT offset count didn t work in INSERT SELECT Optimized key block caching This will be quicker than the old algorithm when using bigger key caches 1314 D 3 19 Changes in release 3 21 16 Added ODBC 2 0 3 0 functions POWER SPACE COT DEGREES RADIANS ROUND 2 arg and TRUNCATE WARNING INCOMPATIBLE CHANGE LOCATE parameters were swapped according to ODBC standard Fixed Added function TIME TO SEC In some cases default values were not used for NOT NULL fields Timestamp wasn t always updated properly in UPDATE SET statements Allow empty strings as default values for BLOB and TEXT to be compatible with mysqldump 1315 D 3 20 Changes in release 3 21 15 WARNING INCOMPATIBLE CHANGE mysqlperl is now from Msql Mysql modules This means that connect now takes host database user password arguments The old version took host database password user Allow DATE 1997 01 01 TIME 12 10 10 and TIMESTAMP 1997 01 01 12 10 10 formats required by ANSI SQL WARNING INCOMPATIBLE CHANGE This has the unfortunate side effect that you no longer can have columns named DATE TIME or TIMESTAMP Old columns can still be accessed through tablename columnname Changed Makefiles to hopefully work better with BSD systems Also manual dvi is now included in the distribution to avoid having stupid make programs trying to rebuild it readline library upgraded to version 2 1 A new sortorder german 1 That is a normal ISO Latin1 with a german sort order Perl DBI DBD is now included in the distribution DBI is now the recommended way to connect to MySQL from Perl New portable benchmark suite with DBD with test results from mSQL 2 0 3 MySQL PostgreSQL 6 2 1 and Solid server 2 2 crash me is now included with the benchmarks This is a Perl program designed to find as many limits as possible in a SQL server Tested with mSQL PostgreSQL Solid and MySQL Fixed bug in range optimizer that crashed MySQL on some queries Table and column name completion for mysql command line tool by Zeev Suraski and Andi Gutmans Added new command REPLACE that works like INSERT but replaces conflicting records with the new record REPLACE INTO TABLE SELECT works also Added new commands CREATE DATABASE db name and DROP DATABASE db name Added RENAME option to ALTER TABLE ALTER TABLE name RENAME AS new name make binary distribution now includes libgcc a in libmysqlclient a This should make linking work for people who don t have gcc Changed net write to my net write because of a name conflict with Sybase New function DAYOFWEEK compatible with ODBC Stack checking and bison memory overrun checking to make MySQL safer with weird queries 1316 D 3 21 Changes in release 3 21 14b Fixed a couple of small configure problems on some platforms 1317 D 3 22 Changes in release 3 21 14a Ported to SCO Openserver 5 0 4 with FSU Pthreads HP UX 10 20 should work Added new function DATE FORMAT Added NOT IN Added automatic removal of ODBC function conversions fn now Handle ODBC 2 50 3 option flags Fixed comparison of DATE and TIME values with NULL Changed language name from germany to german to be consistent with the other language names Fixed sorting problem on functions returning a FLOAT Previously the values were converted to INTs before sorting Fixed slow sorting when sorting on key field when using key column constant Sorting on calculated DOUBLE values sorted on integer results instead mysql no longer needs a database argument Changed the place where HAVING should be According to ANSI it should be after GROUP BY but before ORDER BY MySQL 3 20 incorrectly had it last Added Sybase command USE DATABASE to start using another database Added automatic adjusting of number of connections and table cache size if the maximum number of files that can be opened is less than needed This should fix that mysqld doesn t crash even if you haven t done a ulimit n 256 before starting mysqld Added lots of limit checks to make it safer when running with too little memory or when doing weird queries 1318 D 3 23 Changes in release 3 21 13 Added retry of interrupted reads and clearing of errno This makes Linux systems much safer Fixed locking bug when using many aliases on the same table in the same SELECT Fixed bug with LIKE on number key New error message so you can check whether the connection was lost while the command was running or whether the connection was down from the start Added table option to mysql to print in table format Moved time and row information after query result Added automatic reconnect of lost connections Added as a synonym for Added function VERSION to make easier logs New multi user test tests fork test pl to put some strain on the thread library 1319 D 3 24 Changes in release 3 21 12 Fixed ftruncate call in MIT pthreads This made isamchk destroy the ISM files on Free BSD 2 x systems Fixed broken P patch in MIT pthreads Many memory overrun checks All string functions now return NULL if the returned string should be longer than max allowed packet bytes Changed the name of the INTERVAL type to ENUM because INTERVAL is used in ANSI SQL In some cases doing a JOIN GROUP INTO OUTFILE the result wasn t grouped LIKE with as last character didn t work Fixed Added extended ANSI SQL TRIM function Added CURTIME Added ENCRYPT function by Zeev Suraski Fixed better FOREIGN KEY syntax skipping New reserved words MATCH FULL PARTIAL mysqld now allows IP number and hostname to the bind address option Added SET OPTION CHARACTER SET cp1251 koi8 to enable conversions of data to from cp1251 koi8 Lots of changes for Win95 port In theory this version should now be easily portable to Win95 Changed the CREATE COLUMN syntax of NOT NULL columns to be after the DEFAULT value as specified in the ANSI SQL standard This will make mysqldump with NOT NULL and default values incompatible with MySQL 3 20 Added many function name aliases so the functions can be used with ODBC or ANSI SQL92 syntax Fixed syntax of ALTER TABLE tbl name ALTER COLUMN col name SET DEFAULT NULL Added CHAR and BIT as synonyms for CHAR 1 Fixed core dump when updating as a user who has only select privilege INSERT SELECT GROUP BY didn t work in some cases An Invalid use of group function error occurred When using LIMIT SELECT now always uses keys instead of record scan This will give better performance on SELECT and a WHERE that matches many rows Added Russian error messages 1320 D 3 25 Changes in release 3 21 11 Configure changes MySQL now works with the new thread library on BSD OS 3 0 Added new group functions BIT OR and BIT AND Added compatibility functions CHECK and REFERENCES CHECK is now a reserved word Added ALL option to GRANT for better compatibility GRANT is still a dummy function Added partly translated dutch messages Fixed bug in ORDER BY and GROUP BY with NULL columns Added function last insert id to retrieve last AUTO INCREMENT value This is intended for clients to ODBC that can t use the mysql insert id API function but can be used by any client Added flush logs option to mysqladmin Added command STATUS to mysql Fixed problem with ORDER BY GROUP BY because of bug in gcc Fixed problem with INSERT SELECT GROUP BY 1321 D 3 26 Changes in release 3 21 10 New mysqlaccess CREATE now supports all ODBC types and the mSQL TEXT type All ODBC 2 5 functions are also supported added REPEAT This provides better portability Added text types TINYTEXT TEXT MEDIUMTEXT and LONGTEXT These are actually BLOBtypes but all searching is done in case insensitive fashion All old BLOB fields are now TEXT fields This only changes that all searching on strings is done in case sensitive fashion You must do an ALTER TABLE and change the field type to BLOB if you want to have tests done in case sensitive fashion Fixed some configure issues Made the locking code a bit safer Fixed very unlikely deadlock situation Fixed a couple of bugs in the range optimizer Now the new range benchmark test select works 1322 D 3 27 Changes in release 3 21 9 Added enable unix socket pathname option to configure Fixed a couple of portability problems with include files Fixed bug in range calculation that could return empty set when searching on multiple key with only one entry very rare Most things ported to FSU Pthreads which should allow MySQL to run on SCO See section 1323 4 11 11 SCO notes 1324 D 3 28 Changes in release 3 21 8 Works now in Solaris 2 6 Added handling of calculation of SUM functions For example you can now use SUM column COUNT column Added handling of trigometric functions PI ACOS ASIN ATAN COS SIN and TAN New languages norwegian norwegian ny and portuguese Fixed parameter bug in net print in procedure cc Fixed a couple of memory leaks Now allow also the old SELECT INTO OUTFILE syntax Fixed bug with GROUP BY and SELECT on key with many values mysql fetch lengths sometimes returned incorrect lengths when you used mysql use result This affected at least some cases of mysqldump quick Fixed bug in optimization of WHERE const op field Fixed problem when sorting on NULL fields Fixed a couple of 64 bit Alpha problems Added pid file option to mysqld Added date formatting to FROM UNIXTIME originally by Zeev Suraski Fixed bug in BETWEEN in range optimizer Did only test of the first argument Added machine dependent files for MIT pthreads i386 SCO There is probably more to do to get this to work on SCO 3 5 1325 D 3 29 Changes in release 3 21 7 Changed Makefile am to take advantage of Automake 1 2 Added the beginnings of a benchmark suite Added more secure password handling Added new client function mysql errno to get the error number of the error message This makes error checking in the client much easier This makes the new server incompatible with the 3 20 x server when running without old protocol The client code is backward compatible More information can be found in the README file Fixed some problems when using very long illegal names 1326 D 3 30 Changes in release 3 21 6 Fixed more portability issues incorrect sigwait and sigset defines configure should now be able to detect the last argument to accept 1327 D 3 31 Changes in release 3 21 5 Should now work with FreeBSD 3 0 if used with FreeBSD 3 0 libc r 1 0 diff which can be found at 1328 http www mysql com Download Patches Added new option O tmp table size to mysqld New function FROM UNIXTIME timestamp which returns a date string in YYYY MM DD HH MM DD format New function SEC TO TIME seconds which returns a string in HH MM SS format New function SUBSTRING INDEX originally by Zeev Suraski 1329 D 3 32 Changes in release 3 21 4 Should now configure and compile on OSF1 4 0 with the DEC compiler Configuration and compilation on BSD OS 3 0 works but due to some bugs in BSD OS 3 0 mysqld doesn t work on it yet Configuration and compilation on FreeBSD 3 0 works but I couldn t get pthread create to work 1330 D 3 33 Changes in release 3 21 3 Added reverse check lookup of hostnames to get better security Fixed some possible buffer overflows if filenames that are too long are used mysqld doesn t accept hostnames that start with digits followed by a because the hostname may look like an IP number Added skip networking option to mysqld to only allow socket connections This will not work with MIT pthreads Added check of too long table names for alias Added check if database name is okay Added check if too long table names Removed incorrect free that killed the server on CREATE DATABASE or DROP DATABASE Changed some mysqld O options to better names Added O join cache size option to mysqld Added O max join size option to mysqld to be able to set a limit how big queries in this case big slow one should be able to handle without specifying SET OPTION SQL BIG SELECTS 1 A is about 10 examined records The default is unlimited When comparing a TIME DATE DATETIME or TIMESTAMP column to a constant the constant is converted to a time value before performing the comparison This will make it easier to get ODBC particularly Access97 to work with the above types It should also make dates easier to use and the comparisons should be quicker than before Applied patch from Jochen Wiedmann that allows query in mysqlperl to take a query with 0 in it Storing a timestamp with a 2 digit year YYMMDD didn t work Fix that timestamp wasn t automatically updated if set in an UPDATE clause Now the automatic timestamp field is the FIRST timestamp field SELECT INTO OUTFILE which didn t correctly if the outfile already existed mysql now shows the thread ID when starting or doing a reconnect Changed the default sort buffer size from 2M to 1M 1331 D 3 34 Changes in release 3 21 2 The range optimizer is coded but only 85 tested It can be enabled with new but it crashes core a lot yet More portable Should compile on AIX and alpha digital At least the isam library should be relatively 64 bit clean New isamchk which can detect and fix more problems New options for isamlog Using new version of Automake Many small portability changes from the AIX and alpha digital port Better checking of pthread s library czech error messages by 1332 snajdr pvt net Decreased size of some buffers to get fewer problems on systems with little memory Also added more checks to handle out of memory problems mysqladmin you can now do mysqladmin kill 5 6 7 8 to kill multiple threads When the maximum connection limit is reached one extra connection by a user with the PROCESS ACL privilege is granted Added O backlog option to mysqld Increased maximum packet size from 512K to 1024K for client Almost all of the function code is now tested in the internal test suite ALTER TABLE now returns warnings from field conversions Port changed to 3306 got it reserved from ISI Added a fix for Visual FoxBase so that any schema name from a table specification is automatically removed New function ASCII Removed function BETWEEN a b c Use the standard ANSI synax instead expr BETWEEN expr AND expr MySQL no longer has to use an extra temporary table when sorting on functions or SUM functions Fixed bug that you couldn t use tbl name field name in UPDATE Fixed SELECT DISTINCT when using hidden group For example mysql SELECT DISTINCT MOD some field 10 FROM test GROUP BY some field Note some field is normally in the SELECT part ANSI SQL should require it 1333 D 3 35 Changes in release 3 21 0 New keywords used INTERVAL EXPLAIN READ WRITE BINARY Added ODBC function CHAR num New operator IN This uses a binary search to find a match New command LOCK TABLES tbl name AS alias READ WRITE Added log update option to mysqld to get a log suitable for incremental updates New command EXPLAIN SELECT to get information about how the optimizer will do the join For easier client code the client should no longer use FIELD TYPE TINY BLOB FIELD TYPE MEDIUM BLOB FIELD TYPE LONG BLOB or FIELD TYPE VAR STRING as previously returned by mysql list fields You should instead only use FIELD TYPE BLOB or FIELD TYPE STRING If you want exact types you should use the command SHOW FIELDS Added varbinary syntax 0x which can be used as a string default or a number FIELD TYPE CHAR is renamed to FIELD TYPE TINY Changed all fields to C classes Removed FORM struct Fields with DEFAULT values no longer need to be NOT NULL New field types ENUM A string which can take only a couple of defined values The value is stored as a 1 3 byte number that is mapped automatically to a string This is sorted according to string positions SET A string which may have one or many string values separated with The string is stored as a 1 2 3 4 or 8 byte number where each bit stands for a specific set member This is sorted according to the unsigned value of the stored packed number Now all function calculation is done with double or long long This will provide the full 64 bit range with bit functions and fix some conversions that previously could result in precision losses One should avoid using unsigned long long columns with full 64 bit range numbers bigger than 9223372036854775807 because calculations are done with signed long long ORDER BY will now put NULL field values first GROUP BY will also work with NULL values Full WHERE with expressions New range optimizer that can resolve ranges when some keypart prefix is constant Example mysql SELECT FROM tbl name WHERE key part 1 customer AND key part 2 10 AND key part 2 10 1334 20 3 Changes in release 3 20 x Changes from 3 20 18 to 3 20 32b are not documented here since the 3 21 release branched here And the relevant changes are also documented as changes to the 3 21 version 1335 D 3 36 Changes in release 3 20 18 Added p remove directories from path to isamlog All files are written with a relative path from the database directory Now mysqld shouldn t crash on shutdown when using the log isam option New mysqlperl version It is now compatible with msqlperl 0 63 New DBD module available at 1336 http www mysql com Contrib site Added group function STD standard deviation The mysqld server is now compiled by default without debugging information This will make the daemon smaller and faster Now one usually only has to specify the basedir option to mysqld All other paths are relative in a normal installation BLOB columns sometimes contained garbage when used with a SELECT on more than one table and ORDER BY Fixed that calculations that are not in GROUP BY work as expected ANSI SQL extension Example mysql SELECT id id 1 FROM table GROUP BY id The test of using MYSQL PWD was reversed Now MYSQL PWD is enabled as default in the default release Fixed conversion bug which caused mysqld to core dump with Arithmetic error on Sparc 386 Added unbuffered option to mysql for new mysqlaccess When using overlapping unnecessary keys and join over many tables the optimizer could get confused and return 0 records 1337 D 3 37 Changes in release 3 20 17 You can now use BLOB columns and the functions IS NULL and IS NOT NULL in the WHERE clause All communication packets and row buffers are now allocated dynamically on demand The default value of max allowed packet is now 64K for the server and 512K for the client This is mainly used to catch incorrect packets that could trash all memory The server limit may be changed when it is started Changed stack usage to use less memory Changed safe mysqld to check for running daemon The ELT function is renamed to FIELD The new ELT function returns a value based on an index FIELD is the inverse of ELT Example ELT 2 A B C returns B FIELD B A B C returns 2 COUNT field where field could have a NULL value now works A couple of bugs fixed in SELECT GROUP BY Fixed memory overrun bug in WHERE with many unoptimizable brace levels Fixed some small bugs in the grant code If hostname isn t found by get hostname only the IP is checked Previously you got Access denied Inserts of timestamps with values didn t always work INSERT INTO SELECT WHERE could give the error Duplicated field Added some tests to safe mysqld to make it safer LIKE was case sensitive in some places and case insensitive in others Now LIKE is always case insensitive mysql cc Allow anywhere on the line New command SET OPTION SQL SELECT LIMIT See the FAQ for more details New version of the mysqlaccess script Change FROM DAYS and WEEKDAY to also take a full TIMESTAMP or DATETIME as argument Before they only took a number of type YYYYMMDD or YYMMDD Added new function UNIX TIMESTAMP timestamp column 1338 D 3 38 Changes in release 3 20 16 More changes in MIT pthreads to get them safer Fixed also some link bugs at least in SunOS Changed mysqld to work around a bug in MIT pthreads This makes multiple small SELECT operations 20 times faster Now lock test pl should work Added mysql FetchHash handle to mysqlperl The mysqlbug script is now distributed built to allow for reporting bugs that appear during the build with it Changed libmysql c to prefer getpwuid instead of cuserid Fixed bug in SELECT optimizer when using many tables with the same column used as key to different tables Added new latin2 and Russian KOI8 character tables Added support for a dummy GRANT command to satisfy Powerbuilder 1339 D 3 39 Changes in release 3 20 15 Fixed fatal bug packets out of order when using MIT pthreads Removed possible loop when a thread waits for command from client and fcntl fails Thanks to Mike Bretz for finding this bug Changed alarm loop in mysqld cc because shutdown didn t always succeed in Linux Removed use of termbits from mysql cc This conflicted with glibc 2 0 Fixed some syntax errors for at least BSD and Linux Fixed bug when doing a SELECT as superuser without a database Fixed bug when doing SELECT with group calculation to outfile 1340 D 3 40 Changes in release 3 20 14 If one gives p or password option to mysql without an argument the user is solicited for the password from the tty Added default password from MYSQL PWD by Elmar Haneke Added command kill to mysqladmin to kill a specific MySQL thread Sometimes when doing a reconnect on a down connection this succeeded first on second try Fixed adding an AUTO INCREMENT key with ALTER TABLE AVG gave too small value on some SELECTs with GROUP BY and ORDER BY Added new DATETIME type by Giovanni Maruzzelli Fixed that define DONT USE DEFAULT FIELDS works Changed to use a thread to handle alarms instead of signals on Solaris to avoid race conditions Fixed default length of signed numbers George Harvey Allow anything for CREATE INDEX Add prezeros when packing numbers to DATE TIME and TIMESTAMP Fixed a bug in OR of multiple tables gave empty set Added many patches to MIT pthreads This fixes at least one lookup bug 1341 D 3 41 Changes in release 3 20 13 Added ANSI SQL94 DATE and TIME types Fixed bug in SELECT with AND OR levels Added support for Slovenian characters The Contrib directory contains source and instructions for adding other character sets Fixed bug with LIMIT and ORDER BY Allow ORDER BY and GROUP BY on items that aren t in the SELECT list Thanks to Wim Bonis 1342 bonis kiss de for pointing this out Allow setting of timestamp values in INSERT Fixed bug with SELECT WHERE NULL Added changes for glibc 2 0 To get glibc to work you should add the gibc 2 0 sigwait patch before compiling glibc Fixed bug in ALTER TABLE when changing a NOT NULL field to allow NULL values Added some ANSI92 synonyms as field types to CREATE TABLE CREATE TABLE now allows FLOAT 4 and FLOAT 8 to mean FLOAT and DOUBLE New utility program mysqlaccess by 1343 Yves Carlier rug ac be This program shows the access rights for a specific user and the grant rows that determine this grant Added WHERE const op field by 1344 bonis kiss de 1345 D 3 42 Changes in release 3 20 11 When using SELECT INTO OUTFILE all temporary tables are ISAM instead of HEAP to allow big dumps Changed date functions to be string functions This fixed some funny side effects when sorting on dates Extended ALTER TABLE according to SQL92 Some minor compability changes Added port and socket options to all utility programs and mysqld Fixed MIT pthreads readdir r Now mysqladmin create database and mysqladmin drop database should work Changed MIT pthreads to use our tempnam This should fix the sort aborted bug Added sync of records count in sql update This fixed slow updates on first connection Thanks to Vaclav Bittner for the test 1346 D 3 43 Changes in release 3 20 10 New insert type INSERT INTO SELECT MEDIUMBLOB fixed Fixed bug in ALTER TABLE and BLOBs SELECT INTO OUTFILE now creates the file in the current database directory DROP TABLE now can take a list of tables Oracle synonym DESCRIBE DESC Changes to make binary distribution Added some comments to installation instructions about configure s C link test Added without perl option to configure Lots of small portability changes 1347 D 3 44 Changes in release 3 20 9 ALTER TABLE didn t copy null bit As a result fields that were allowed to have NULL values were always NULL CREATE didn t take numbers as DEFAULT Some compatibility changes for SunOS Removed config cache from old distribution 1348 D 3 45 Changes in release 3 20 8 Fixed bug with ALTER TABLE and multi part keys 1349 D 3 46 Changes in release 3 20 7 New commands ALTER TABLE SELECT INTO OUTFILE and LOAD DATA INFILE New function NOW Added new field file priv to mysql user table New script add file priv which adds the new field file priv to the user table This script must be executed if you want to use the new SELECT INTO and LOAD DATA INFILE commands with a version of MySQL earlier than 3 20 7 Fixed bug in locking code which made lock test pl test fail New files NEW and BUGS Changed select test c and insert test c to include config h Added command status to mysqladmin for short logging Increased maximum number of keys to 16 and maximum number of key parts to 15 Use of sub keys A key may now be a prefix of a string field Added k option to mysqlshow to get key information for a table Added long options to mysqldump 1350 D 3 47 Changes in release 3 20 6 Portable to more systems because of MIT pthreads which will be used automatically if configure cannot find a lpthreads library Added GNU style long options to almost all programs Test with program help Some shared library support for Linux The FAQ is now in texi format and is available in html txt and ps formats Added new SQL function RAND init Changed sql lex to handle 0 unquoted but the client can t send the query through the C API because it takes a str pointer You must use mysql real query to send the query Added API function mysql get client info mysqld now uses the N MAX KEY LENGTH from nisam h as the maximum allowed key length The following now works mysql SELECT filter nr filter nr FROM filter ORDER BY filter nr Previously this resulted in the error Column filter nr in order clause is ambiguous mysql now outputs 0 t n and when encountering ASCII 0 tab newline or while writing tab separated output This is to allow printing of binary data in a portable format To get the old behavior use r or raw Added german error messages 60 of 80 error messages translated Added new API function mysql fetch lengths MYSQL RES which returns an array of of column lengths of type uint Fixed bug with IS NULL in WHERE clause Changed the optimizer a little to get better results when searching on a key part Added SELECT option STRAIGHT JOIN to tell the optimizer that it should join tables in the given order Added support for comments starting with in mysql cc Postgres syntax You can have SELECT expressions and table columns in a SELECT which are not used in the group part This makes it efficient to implement lookups The column that is used should be a constant for each group because the value is calculated only once for the first row that is found for a group mysql SELECT id lookup text sum FROM test lookup WHERE test id lookup id GROUP BY id Fixed bug in SUM function could cause a core dump Changed AUTO INCREMENT placement in the SQL query INSERT into table auto field values 0 inserted 0 but it should insert an AUTO INCREMENT value mysqlshow c Added number of records in table Had to change the client code a little to fix this mysql now allows doubled or within strings for embedded or New math functions EXP LOG SQRT ROUND CEILING 1351 D 3 48 Changes in release 3 20 3 The configure source now compiles a thread free client library lmysqlclient This is the only library that needs to be linked with client applications When using the binary releases you must link with lmysql lmysys ldbug lstrings as before New readline library from bash 2 0 LOTS of small changes to configure and makefiles and related source It should now be possible to compile in another directory using VPATH Tested with GNU Make 3 75 safe mysqld and mysql server changed to be more compatible between the source and the binary releases LIMIT now takes one or two numeric arguments If one argument is given it indicates the maximum number of rows in a result If two arguments are given the first argument indicates the offset of the first row to return the second is the maximum number of rows With this it s easy to do a poor man s next page previous page WWW application Changed name of SQL function FIELDS to ELT Changed SQL function INTERVALL to INTERVAL Made SHOW COLUMNS a synonym for SHOW FIELDS Added compatibility syntax FRIEND KEY to CREATE TABLE In MySQL this creates a non unique key on the given columns Added CREATE INDEX and DROP INDEX as compatibility functions In MySQL CREATE INDEX only checks if the index exists and issues an error if it doesn t exist DROP INDEX always succeeds mysqladmin c added client version to version information Fixed core dump bug in sql acl core on new connection Removed host user and db tables from database test in the distribution FIELD TYPE CHAR can now be signed 128 127 or unsigned 0 255 Previously it was always unsigned Bug fixes in CONCAT and WEEKDAY Changed a lot of source to get mysqld to be compiled with SunPro compiler SQL functions must now have a immediately after the function name no intervening space For example user is regarded as beginning a function call and user is regarded as an identifier user followed by a not as a function call 1352 D 3 49 Changes in release 3 20 0 The source distribution is done with configure and Automake It will make porting much easier The readline library is included in the distribution Separate client compilation the client code should be very easy to compile on systems which don t have threads The old Perl interface code is automatically compiled and installed Automatic compiling of DBD will follow when the new DBD code is ported Dynamic language support mysqld can now be started with Swedish or English default error messages New functions INSERT RTRIM LTRIM and FORMAT mysqldump now works correctly for all field types even AUTO INCREMENT The format for SHOW FIELDS FROM tbl name is changed so the Type column contains information suitable for CREATE TABLE In previous releases some CREATE TABLE information had to be patched when recreating tables Some parser bugs from 3 19 5 BLOB and TIMESTAMP are corrected TIMESTAMP now returns different date information depending on its create length Changed parser to allow a database table or field name to start with a number or All old C code from Unireg changed to C and cleaned up This makes the daemon a little smaller and easier to understand A lot of small bug fixes done New INSTALL files not final version and some info regarding porting 1353 D 4 Changes in release 3 19 x 1354 D 4 1 Changes in release 3 19 5 Some new functions some more optimization on joins Should now compile clean on Linux 2 0 x Added functions DATABASE USER POW LOG10 needed for ODBC In a WHERE with an ORDER BY on fields from only one table the table is now preferred as first table in a multi join HAVING and IS NULL or IS NOT NULL now works A group on one column and a sort on a group function SUM AVG didn t work together Fixed mysqldump Didn t send password to server 1355 D 4 2 Changes in release 3 19 4 Fixed horrible locking bug when inserting in one thread and reading in another thread Fixed one off decimal bug 1 00 was output as 1 0 Added attribute Locked to process list as info if a query is locked by another query Fixed full magic timestamp Timestamp length may now be 14 12 10 8 6 4 or 2 bytes Sort on some numeric functions could sort incorrectly on last number IF arg syntax error syntax error crashed Added functions CEILING ROUND EXP LOG and SQRT Enhanced BETWEEN to handle strings 1356 D 4 3 Changes in release 3 19 3 Fixed SELECT with grouping on BLOB columns not to return incorrect BLOB info Grouping sorting and distinct on BLOB columns will not yet work as expected probably it will group sort by the first 7 characters in the BLOB Grouping on formulas with a fixed string size use MID on a BLOB should work When doing a full join no direct keys on multiple tables with BLOB fields the BLOB was garbage on output Fixed DISTINCT with calculated columns 1357 E Known errors and design deficiencies in MySQL You cannot build in another directory when using MIT pthreads Since this requires changes to MIT pthreads we are not likely to fix this BLOB values can t reliably be used in GROUP BY or ORDER BY or DISTINCT Only the first max sort length bytes default 1024 are used when comparing BLOBbs in these cases This can be changed with the O max sort length option to mysqld A workaround for most cases is to use a substring SELECT DISTINCT LEFT blob 2048 FROM tbl name Calculation is done with BIGINT or DOUBLE both are normally 64 bits long It depends on the function which precision one gets The general rule is that bit functions are done with BIGINT precision IF and ELT with BIGINT or DOUBLE precision and the rest with DOUBLE precision One should try to avoid using bigger unsigned long long values than 63 bits 9223372036854775807 for anything else than bit fields All numeric types are treated as fixed point fields That means you must specify how many decimals a floating point field shall have All results will be returned with the correct number of decimals MySQL 3 23 supports floating point columns All string columns except BLOB and TEXT columns automatically have all trailing spaces removed when retrieved For CHAR types this is okay and may be regarded as a feature according to ANSI SQL92 The bug is that in MySQL VARCHAR columns are treated the same way You can only have up to 255 ENUM and SET columns in one table An UPDATE that updates a key with a WHERE on the same key may fail because the key is used to search for records and will be found multiple times UPDATE tbl name SET KEY KEY 1 WHERE KEY 100 This will be fixed in newer MySQL versions by not using keys that contain fields that are going to be updated Until this fixed you can use the current workaround mysql UPDATE tbl name SET KEY KEY 1 WHERE KEY 0 100 This will work because MySQL will not use index on expressions in the WHERE clause safe mysqld re directs all messages from mysqld to the mysqld log One problem with this is that if you execute mysqladmin refresh to close and reopen the log stdout and stderr are still redirected to the old log If you use log extensively you should edit safe mysqld to log to hostname err instead of hostname log so you can easily reclaim the space for the old log by deleting the old one and executing mysqladmin refresh In the UPDATE statement columns are updated from left to right If you refer to a updated column you will get the updated value instead of the original value For example mysql UPDATE tbl name SET KEY KEY 1 KEY KEY 1 will update KEY with 2 instead of with 1 For platform specific bugs see the sections about compiling and porting 1358 F List of things we want to add to MySQL in the future The TODO Everything in this list is in the order it will be done If you want to affect the priority order please register a license or support us and tell us what you want to have done more quickly See section 1359 3 MySQL licensing and support 1360 F 1 Things that must done in the real near future Binary compatible ISAM tables Subqueries select id from t where grp in select grp from g where u 100 If you perform an ALTER TABLE on a table that is symlinked to another disk create temporary tables on this disk FreeBSD and MIT pthreads Do sleeping threads take CPU Allow join on key parts optimization issue Automatically convert temporary HEAP tables to NISAM if they get too big At the moment you get error 135 or Table xxx is full if you execute a query which has to use a big temporary table Binary portable data tables a new version of ISAM Add DISTINCT qualifier to COUNT SUM Change conv blob to handle BLOB as a TEXT field Entry for DECRYPT Remember FOREIGN key definitions in the frm file Server side cursors Allow users to change startup options Add ansi option to MySQL to change CONCAT Don t add automatic DEFAULT values to columns Give an error when using an INSERT that doesn t contain a column that doesn t have a DEFAULT Caching of queries and results This should be done as a separated module that examines each query and if this is query is in the cache the cached result should be returned When one updates a table one should remove as few queries as possible from the cache This should give a big speed bost on machines with much RAM where queries are often repeated like WWW applications One idea would be to only cache queries of type SELECT CACHED Fix libmysql c to allow two mysql query commands in a row without reading results or give a nice error message when one does this Optimize BIT type to take 1 bit now BIT takes 1 char Check why MIT pthreads ctime doesn t work on some FreeBSD systems Check if locked threads take any CPU Add ORDER BY to update This would be handy with functions like generate id start step Add an IMAGE option to LOAD DATA INFILE to not update TIMESTAMP and AUTO INCREMENT fields Make LOAD DATA INFILE understand a syntax like LOAD DATA INFILE file name txt INTO TABLE tbl name TEXT FIELDS text field1 text field2 text field3 SET table field1 concatenate text field1 text field2 table field3 23 IGNORE text field3 Allow strings with MIN MAX not group functions These should be synonyms for LEAST GREATEST Demo procedure analyze Automatic output from mysql to netscape LOCK DATABASES with various options NATURAL JOIN Change sort to allocate memory in hunks to get better memory utilization DECIMAL and NUMERIC types can t read exponential numbers Field decimal store const char from uint len must be recoded to fix this Fix mysql cc to do fewer malloc calls when hashing field names Add functions EXPORT SET set column Y N separator number of set values where separator is by default and number of set values is taken from the set column or is 64 if set column is an expression For example EXPORT SET 9 Y N 5 Y N N Y N Functions ADD TO SET value set and REMOVE FROM SET value set Add use of t1 JOIN t2 ON and t1 JOIN t2 USING Currently you can only use this syntax with LEFT JOIN Add full support for unsigned long long type Function CASE Many more variables for show status Counts for INSERT DELETE UPDATE statements Records reads and updated Selects on 1 table and selects with joins Mean number of tables in select Key buffer read write hits logical and real ORDER BY GROUP BY temporary tables created If you abort mysql in the middle of a query you should open another connection and kill the old running query Alternatively an attempt should be made to detect this in the server Add optimization to make LEFT JOIN WHERE not null field IS NULL much faster This is often used to find rows that don t match Add a handler interface for table information so you can use it as a system table This would be a bit slow if you requested information about all tables but very flexible SHOW INFO FROM tbl name for basic table information should be implemented Allow mysqld to support many character sets at the same time Add support for UNICODE NATURAL JOIN Oracle like CONNECT BY PRIOR to search hierarchy structures RENAME DATABASE mysqladmin copy database new database Processlist should show number of queries thread IGNORE option to the UPDATE statement this will delete all rows that gets a dupplicate key error while updating select distinct a from foo order by b should not return duplicate rows if there are different pairs of a b Change the format of DATETIME to store fractions of seconds Add all missing ANSI92 and ODBC 3 0 types Change table names from empty strings to NULL for calculated columns 1361 F 2 Things that have to be done sometime Implement a table optimizer by an analyze procedure call that returns a table like show fields with min and max value and the best MySQL type for that expression Implement function get changed tables timeout table1 table2 Implement function LAST UPDATED tbl name Atomic updates This includes a language that one can even use for a set of stored procedures update items month set items price month price where items id month id Change reading through tables to use memmap when possible Now only compressed tables use memmap Make a SQL standard GRANT command with MySQL extensions Add a new privilege Show priv for SHOW commands Make the automatic timestamp code nicer Add timestamps to the update log with SET TIMESTAMP Optimize the autoincrement code Use read write mutex in some places to get more speed Full foreign key support One probably wants to implement a procedural language first Simple views first on one table later on any expression Automatically close some tables if a table temporary table or temporary files gets error 23 not enough open files When one finds a field change all occurrences of field to Now this is only done for some simple cases Change all const expressions with calculated expressions if possible Optimize key expression At the moment only key field or key constant are optimized Join some of the copy functions for nicer code Change sql yacc yy to an inline parser to reduce its size and get better error messages 5 days Change the parser to use only one rule per different number of arguments in function Use of full calculation names in the order part For ACCESS97 UNION MINUS INTERSECT and FULL OUTER JOIN Currently only LEFT OUTER JOIN is supported Allow UNIQUE on fields that can be NULL SQL OPTION MAX SELECT TIME to put a time limit on a query Make the update log to a database Negative LIMIT to retrieve data from the end Alarm around client connect read write functions Make a mysqld version which isn t multithreaded 3 5 days Please note the changes to safe mysqld according to FSSTND which Debian tries to follow PID files should go into var run progname pid and log files into var log It would be nice if you could put the DATADIR in the first declaration of pidfile and log so the placement of these files can be changed with a single statement Better dynamic record layout to avoid fragmentation UPDATE SET blob read blob from file my gif where id 1 Allow sorting on RAND SELECT email RAND AS ran FROM info ORDER BY ran Allow a client to request logging Add use of zlib for gzip ed files to LOAD DATA INFILE Fix sorting and grouping of BLOB columns partly solved now Stored procedures This is currently not regarded to be very important as stored procedures are not very standardized yet Another problem is that true stored procedures make it much harder for the optimizer and in many cases the result is slower than before We will on the other hand add a simple atomic update language that can be used to write loops and such in the MySQL server Change to use semaphores when counting threads One should first implement a semaphore library to MIT pthreads Don t assign a new AUTO INCREMENT value when one sets a column to 0 Use NULL instead Add full support for JOIN with parentheses Reuse threads for system with a lot of connections Time is given according to amount of work not real time TcX s main business is the use of MySQL not the development of it But since TcX is a very flexible company we have put a lot of resources into the development of MySQL 1362 F 3 Some things we don t have any plans to do Transactions with rollback we mainly do SELECTs and because we don t do transactions we can be much quicker on everything else We will support some kind of atomic operations on multiple tables though Currently atomic operations can be done with LOCK TABLES UNLOCK TABLES but we will make this more automatic in the future 1363 G Comments on porting to other systems A working Posix thread library is needed for the server On Solaris 2 5 we use SUN PThreads the native thread support in 2 4 and earlier versions are not good enough and on Linux we use LinuxThreads by Xavier Leroy 1364 Xavier Leroy inria fr The hard part of porting to a new Unix variant without good native thread support is probably to port MIT pthreads See mit pthreads README and 1365 Programming POSIX Threads The MySQL distribution includes a patched version of Provenzano s Pthreads from MIT see 1366 MIT Pthreads web page This can be used for some operating systems that do not have POSIX threads It is also possible to use another user level thread package named FSU Pthreads see 1367 FSU Pthreads home page This implementation is being used for the SCO port See the thr lock c and thr alarm c programs in the mysys directory for some tests examples of these problems Both the server and the client need a working C compiler we use gcc and have tried SparcWorks Another compiler that is known to work is the Irix cc To compile only the client use configure without server There is currently no support for only compiling the server Nor is it likly to be added unless someone has a good reason for it If you want need to change any Makefile or the configure script you must get Automake and Autoconf We have used the automake 1 2 and autoconf 2 12 distributions All steps needed to remake everything from the most basic files bin rm deps P bin rm f config cache aclocal autoheader aclocal automake autoconf configure with debug prefix your installation directory The makefiles generated above need GNU make 3 75 or newer called gmake below gmake clean all install init db If you run into problems with a new port you may have to do some debugging of MySQL See section 1368 G 1 Debugging a MySQL server Note Before you start debugging mysqld first get the test programs mysys thr alarm and mysys thr lock to work This will ensure that your thread installation has even a remote chance to work 1369 G 1 Debugging a MySQL server If you are using some functionality that is very new in MySQL you can try to run mysqld with the skip new which will disable all new potentially unsafe functionality or with safe mode which disables a lot of optimization that may cause problems See section 1370 17 1 What to do if MySQL keeps crashing If mysqld doesn t want to start you should check that you don t have any my cnf file that interferes with your setup You can check your my cnf arguments with mysqld print defaults and avoid using them by starting with mysqld no defaults If you have some very specific problem you can always try to debug MySQL To do this you must configure MySQL with the option with debug You can check whether or not MySQL was compiled with debugging by doing mysqld help If the debug flag is listed with the options then you have debugging enabled mysqladmin ver also lists the mysqld version as mysql debug in this case If you are using gcc or egcs the recommended configure line is CC gcc CFLAGS O6 CXX gcc CXXFLAGS O6 felide constructors fno exceptions fno rtti configure prefix usr local mysql with debug This will avoid problems with the libstdc library and with C exceptions If you can cause the mysqld server to crash quickly you can try to create a trace file of this Start the mysqld server with a trace log in tmp mysql trace The log file will get very BIG mysqld debug log or you can start it with mysqld debug d info error query general where O tmp mysql trace which only prints information with the most interesting tags When you configure MySQL for debugging you automatically enable a lot of extra safety check functions that monitor the health of mysqld If they find something unexpected an entry will be written to stderr which safe mysqld directs to the error log This also means that if you are having some unexpected problems with MySQL and are using a source distribution the first thing you should do is to configure MySQL for debugging The second thing of course is to send mail to 1371 mysql lists mysql com and ask for help Please use the mysqlbug script for all bug reports or questions regarding the MySQL version you are using On most system you can also start mysqld from gdb to get more information if mysqld crashes With some gdb versions on Linux you must use run one thread if you want to be able to debug mysqld threads In this case you can only have one thread active at a time If you are using gdb 4 17 x on Linux you should install a gdb file with the following information in your current directory set print sevenbit off handle SIGUSR1 nostop noprint handle SIGUSR2 nostop noprint handle SIGWAITING nostop noprint handle SIGLWP nostop noprint handle SIGPIPE nostop handle SIGALRM nostop handle SIGHUP nostop handle SIGTERM nostop noprint Here follows an example how to debug mysqld shell gdb usr local libexec mysqld gdb run back Do this when mysqld crashes info locals up info locals up until you get some information about local variables quit Include the above output in a mail generated with mysqlbug and mail this to mysql lists mysql com If mysqld hangs you can try to use some system tools like strace or usr proc bin pstack to examine where mysqld has hanged If mysqld starts to eat up CPU or memory or if it hangs you can use mysqladmin processlist status to find out if someone is executing some query that takes a long time It may be a good idea to run mysqladmin i10 processlist status in some window if you are experiencing performance problems or problems when new clients can t connect If mysqld dies or hangs you should start mysqld with log When mysqld dies again you can check in the log file for the query that killed mysqld Note that before starting mysqld with log you should check all your tables with isamchk See section 1372 13 Maintaining a MySQL installation If you are using a log file mysqld log you should check the hostname log files that you can find in the database directory for any queries that could cause a problem Try the command EXPLAIN on all SELECT statements that takes a long time to ensure that mysqld are using indexes properly See section 1373 7 21 EXPLAIN syntax Get information about a SELECT You should also test complicated queries that didn t complete within the mysql command line tool If you find the text mysqld restarted in the error log file normally named hostname err you have probably found a query that causes mysqld to fail If this happens you should check all your tables with isamchk see section 1374 13 Maintaining a MySQL installation and test the queries in the MySQL log files if someone doesn t work If you find such a query try first upgrading to the newest MySQL version If this doesn t help and you can t find anything in the mysql mail archive you should report the bug to 1375 mysql lists mysql com Links to mail archives are available at the online 1376 MySQL documentation page If you get corrupted tables or if mysqld always fails after some update commands you can test if this bug is reproducible by doing the following Stop the mysqld daemon with mysqladmin shutdown Check all tables with isamchk s database ISM Repair any wrong tables with isamchk r database table ISM Start mysqld with log update When you have got a crashed table stop the mysqld server Restore the backup Restart the mysqld server without log update Re execute the commands with mysql update log The update log is saved in the MySQL database directory with the name your hostname If the tables are now again corrupted you have found reproducible bug in the ISAM code ftp the tables the update log to 1377 ftp www mysql com pub mysql secret and we will fix this as soon as possible The command mysqladmin debug will dump some information about locks in use used memory and query usage to the mysql log file This may help solve some problems This command also provides some useful information even if you haven t compiled MySQL for debugging If the problem is that some tables are getting slower and slower you should try to repair the tables with isamchk to optimize the table layout You should also check the slow queries with EXPLAIN See section 1378 13 Maintaining a MySQL installation You should also read the OS specific section in this manual for problems that may be unique to your environment See section 1379 4 11 System specific issues If you are using the Perl DBI interface you can turn on debugging information by using the trace method or by setting the DBI TRACE environment variable See section 1380 19 5 2 The DBI interface 1381 G 2 Debugging a MySQL client To be able to debug a MySQL client with the integrated debug package you should configure MySQL with with debug See section 1382 4 7 3 Typical configure options Before running a client you should set the MYSQL DEBUG environment variable shell MYSQL DEBUG d t O tmp client trace shell export MYSQL DEBUG This causes clients to generate a trace file in tmp client trace If you have problems with your own client code you should attempt to connect to the server and run your query using a client that is known to work Do this by running mysql in debugging mode assuming you have compiled MySQL with debugging on shell mysql debug d t O tmp client trace This will provide useful information in case you mail a bug report See section 1383 2 3 How to report bugs or problems If your client crashes at some legal looking code you should check that your mysql h include file matches your mysql library file A very common mistake is to use an old mysql h file from an old MySQL installation with new MySQL library 1384 G 3 Comments about RTS threads I have tried to use the RTS thread packages with MySQL but stumbled on the following problems They use old version of a lot of POSIX calls and it is very tedious to make wrappers for all functions I am inclined to think that it would be easier to change the thread libraries to the newest POSIX specification Some wrappers are already written See mysys my pthread c for more info At least the following should be changed pthread get specific should use one argument sigwait should take two arguments A lot of functions at least pthread cond wait pthread cond timedwait should return the error code on error Now they return 1 and set errno Another problem is that user level threads use the ALRM signal and this aborts a lot of functions read write open MySQL should do a retry on interrupt on all of these but it is not that easy to verify it The biggest unsolved problem is the following To get thread level alarms I changed mysys thr alarm c to wait between alarms with pthread cond timedwait but this aborts with error EINTR I tried to debug the thread library as to why this happens but couldn t find any easy solution If someone wants to try MySQL with RTS threads I suggest the following Change functions MySQL uses from the thread library to POSIX This shouldn t take that long Compile all libraries with the DHAVE rts threads Compile thr alarm If there are some small differences in the implementation they may be fixed by changing my pthread h and my pthread c Run thr alarm If it runs without any warning error or aborted messages you are on the right track Here follows a successful run on Solaris Main thread 1 Tread 0 5 started Thread 5 Waiting process alarm Tread 1 6 started Thread 6 Waiting process alarm process alarm thread alarm Thread 6 Slept for 1 1 sec Thread 6 Waiting process alarm process alarm thread alarm Thread 6 Slept for 2 2 sec Thread 6 Simulation of no alarm needed Thread 6 Slept for 0 3 sec Thread 6 Waiting process alarm process alarm thread alarm Thread 6 Slept for 4 4 sec Thread 6 Waiting process alarm thread alarm Thread 5 Slept for 10 10 sec Thread 5 Waiting process alarm process alarm thread alarm Thread 6 Slept for 5 5 sec Thread 6 Waiting process alarm process alarm thread alarm Thread 5 Slept for 0 1 sec end 1385 G 4 Differences between different thread packages MySQL is very dependent on the thread package used So when choosing a good platform for MySQL the thread package is very important There are at least three types of thread packages User threads in a single process Thread switching is managed with alarms and the threads library manages all non thread safe functions with locks Read write and select operations are usually managed with a thread specific select that switches to another thread if the running threads have to wait for data If the user thread packages are integrated in the standard libs FreeBSD and BSDI threads the thread package requires less overhead than thread packages that have to map all unsafe calls MIT pthreads FSU Pthreads and RTS threads In some environments for example SCO all system calls are thread safe so the mapping can be done very easily FSU Pthreads on SCO Downside All mapped calls take a little time and it s quite tricky to be able to handle all situations There are usually also some system calls that are not handled by the thread package like MIT pthreads and sockets Thread scheduling isn t always optimal User threads in separate processes Thread switching is done by the kernel and all data are shared between threads The thread package manages the standard thread calls to allow sharing data between threads LinuxThreads is using this method Downside Lots of processes Thread creating is slow If one thread dies the rest are usually left hanging and you must kill them all before restarting Thread switching is somewhat expensive Kernel threads Thread switching is handled by the thread library or the kernel and is very fast Everything is done in one process but on some systems ps may show the different threads If one thread aborts the whole process aborts Most system calls are thread safe and should require very little overhead Solaris HP UX AIX and OSF1 have kernel threads In some systems kernel threads are managed by integrating user level threads in the system libraries In such cases the thread switching can only be done by the thread library and the kernel isn t really thread aware 1386 H Description of MySQL regular expression syntax A regular expression regex is a powerful way of specifying a complex search MySQL uses regular Henry Spencer s inplementation of regular expressions And that is aimed to conform to POSIX 1003 2 MySQL uses the extended version This is a simplistic reference that skips the details To get more exact information see Henry Spencer s regex 7 manual page that is included in the source distribution See section 1387 C Contributors to MySQL A regular expression describes a set of strings The simplest regexp is one that has no special characters in it For example the regexp hello matches hello and nothing else Nontrivial regular expressions use certain special constructs so that they can match more than one string For example the regexp hello word matches either the string hello or the string word As a more complex example the regexp B an s matches any of the strings Bananas Baaaaas Bs and any other string starting with a B ending with an s and containing any number of a or n characters in between A regular expression may use any of the following special characters constructs Match the beginning of a string mysql select fo nfo REGEXP fo 0 mysql select fofo REGEXP fo 1 Match the end of a string mysql select fo no REGEXP fo no 1 mysql select fo no REGEXP fo 0 Match any character including newline mysql select fofo REGEXP f 1 mysql select fo nfo REGEXP f 1 a Match any sequence of zero or more a characters mysql select Ban REGEXP Ba n 1 mysql select Baaan REGEXP Ba n 1 mysql select Bn REGEXP Ba n 1 a Match any sequence of one or more a characters mysql select Ban REGEXP Ba n 1 mysql select Bn REGEXP Ba n 0 a Match either zero or one a character mysql select Bn REGEXP Ba n 1 mysql select Ban REGEXP Ba n 1 mysql select Baan REGEXP Ba n 0 de abc Match either of the sequences de or abc mysql select pi REGEXP pi apa 1 mysql select axe REGEXP pi apa 0 mysql select apa REGEXP pi apa 1 mysql select apa REGEXP pi apa 1 mysql select pi REGEXP pi apa 1 mysql select pix REGEXP pi apa 0 abc Match zero or more instances of the sequence abc mysql select pi REGEXP pi 1 mysql select pip REGEXP pi 0 mysql select pipi REGEXP pi 1 1 2 3 The is a more general way of writing regexps that match many occurrences of the previous atom a Can be written as a 0 a Can be written as a 1 a Can be written as a 0 1 To be more precise an atom followed by a bound containing one integer i and no comma matches a sequence of exactly i matches of the atom An atom followed by a bound containing one integer i and a comma matches a sequence of i or more matches of the atom An atom followed by a bound containing two integers i and j matches a sequence of i through j inclusive matches of the atom Both arguments must 0 value RE DUP MAX default 255 If there are two arguments the second must be greater than or equal to the first a dX a dX Matches any character which is or is not if is used either a b c d or X To include a literal character it must immediately follow the opening bracket To include a literal character it must be written first or last So 0 9 matches any decimal digit Any character that does not have a defined meaning inside a pair has no special meaning and matches only itself mysql select aXbc REGEXP a dXYZ 1 mysql select aXbc REGEXP a dXYZ 0 mysql select aXbc REGEXP a dXYZ 1 mysql select aXbc REGEXP a dXYZ 0 mysql select gheis REGEXP a dXYZ 1 mysql select gheisa REGEXP a dXYZ 0 characters The sequence of characters of that collating element The sequence is a single element of the bracket expression s list A bracket expression containing a multi character collating element can thus match more than one character e g if the collating sequence includes a ch collating element then the regular expression ch c matches the first five characters of chchcc character class An equivalence class standing for the sequences of characters of all collating elements equivalent to that one including itself For example if o and are the members of an equivalence class then o and o are all synonymous An equivalence class may not be an endpoint of a range character class Within a bracket expression the name of a character class enclosed in and stands for the list of all characters belonging to that class Standard character class names are alnum digit punct alpha graph space blank lower upper cntrl print xdigit These stand for the character classes defined in the ctype 3 manual page A locale may provide others A character class may not be used as an endpoint of a range mysql select justalnums REGEXP alnum 1 mysql select REGEXP alnum 0 These match the null string at the beginning and end of a word respectively A word is defined as a sequence of word characters which is neither preceded nor followed by word characters A word character is an alnum character as defined by ctype 3 or an underscore mysql select a word a REGEXP word 1 mysql select a xword a REGEXP word 0 mysql select weeknights REGEXP wee week knights nights 1 1388 I What is Unireg Unireg is our tty interface builder but it uses a low level connection to our NISAM which is used by MySQL and because of this it is very quick It has existed since 1979 on Unix in C since 1986 Unireg has the following components One table viewer with updates browsing Multi table viewer with one scrolling region Table creator With lots of column tags you can t create with MySQL This is WYSIWYG for a tty You design a screen and Unireg prompts for the column specification Report generator A lot of utilities quick export import of tables to from text files analysis of table contents Powerful multi table updates which we use a lot with a BASIC like language with LOTS of functions Dynamic languages at present in Swedish and Finnish If somebody wants an English version there are a few files that would have to be translated The ability to run updates interactively or in a batch Emacs like key definitions with keyboard macros All this in a binary of 800K The convform utility Converts frm and text files between different character sets The pack isam utility Packs a NISAM table makes it 50 80 smaller The table can be read by MySQL like an ordinary table Only one record has to be decompressed per access Cannot handle BLOB or TEXT columns or updates yet We update most of our production databases with the Unireg interface and serve web pages through MySQL and in some extreme cases the Unireg report generator Unireg takes about 3M of disk space and works on at least the following platforms SunOS 4 x Solaris Linux HP UX ICL Unix DNIX SCO and MS DOS Unireg is currently only available in Swedish and Finnish The price tag for Unireg is 10 000 Swedish kr about 1500 US but this includes support Unireg is distributed as a binary But all the ISAM sources can be found in MySQL Usually we compile the binary for the customer at their site All new development is concentrated to MySQL 1389 J The MySQL server license for non Microsoft operating systems MySQL FREE PUBLIC LICENSE Version 4 March 5 1995 Copyright C 1995 1996 TcX AB Monty Program KB Detron HB Stockholm SWEDEN Helsingfors FINLAND and Uppsala SWEDEN All rights reserved NOTE This license is not the same as any of the GNU Licenses published by the Free Software Foundation Its terms are substantially different from those of the GNU Licenses If you are familiar with the GNU Licenses please read this license with extra care This License applies to the computer program known as MySQL The Program below refers to such program and a work based on the Program means either the Program or any derivative work of the Program as defined in the United States Copyright Act of 1976 such as a translation or a modification The Program is a copyrighted work whose copyright is held by TcX Datakonsult AB and Monty Program KB and Detron HB This License does not apply when running MySQL on any Microsoft operating system Microsoft operating systems include all versions of Microsoft Windows NT and Microsoft Windows BY MODIFYING OR DISTRIBUTING THE PROGRAM OR ANY WORK BASED ON THE PROGRAM YOU INDICATE YOUR ACCEPTANCE OF THIS LICENSE TO DO SO AND ALL ITS TERMS AND CONDITIONS FOR COPYING DISTRIBUTING OR MODIFYING THE PROGRAM OR WORKS BASED ON IT NOTHING OTHER THAN THIS LICENSE GRANTS YOU PERMISSION TO MODIFY OR DISTRIBUTE THE PROGRAM OR ITS DERIVATIVE WORKS THESE ACTIONS ARE PROHIBITED BY LAW IF YOU DO NOT ACCEPT THESE TERMS AND CONDITIONS DO NOT MODIFY OR DISTRIBUTE THE PROGRAM 1 Licenses Licensor hereby grants you the following rights provided that you comply with all of the restrictions set forth in this License and provided further that you distribute an unmodified copy of this License with the Program 1 You may copy and distribute literal i e verbatim copies of the Program s source code as you receive it throughout the world in any medium 2 You may modify the Program create works based on the Program and distribute copies of such throughout the world in any medium 2 Restrictions This license is subject to the following restrictions 1 Distribution of the Program or any work based on the Program by a commercial organization to any third party is prohibited if any payment is made in connection with such distribution whether directly as in payment for a copy of the Program or indirectly as in payment for some service related to the Program or payment for some product or service that includes a copy of the Program without charge these are only examples and not an exhaustive enumeration of prohibited activities However the following methods of distribution involving payment shall not in and of themselves be a violation of this restriction 1 Posting the Program on a public access information storage and retrieval service for which a fee is received for retrieving information such as an on line service provided that the fee is not content dependent i e the fee would be the same for retrieving the same volume of information consisting of random data 2 Distributing the Program on a CD ROM provided that the files containing the Program are reproduced entirely and verbatim on such CD ROM and provided further that all information on such CD ROM be redistributable for non commercial purposes without charge 2 Activities other than copying distribution and modification of the Program are not subject to this License and they are outside its scope Functional use running of the Program is not restricted and any output produced through the use of the Program is subject to this license only if its contents constitute a work based on the Program independent of having been made by running the Program 3 You must meet all of the following conditions with respect to the distribution of any work based on the Program 1 If you have modified the Program you must cause your work to carry prominent notices stating that you have modified the Program s files and the date of any change 2 You must cause any work that you distribute or publish that in whole or in part contains or is derived from the Program or any part thereof to be licensed as a whole and at no charge to all third parties under the terms of this License 3 If the modified program normally reads commands interactively when run you must cause it at each time the modified program commences operation to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty or else saying that you provide a warranty Such notice must also state that users may redistribute the Program only under the conditions of this License and tell the user how to view the copy of this License included with the Program Exception if the Program itself is interactive but does not normally print such an announcement your work based on the Program is not required to print an announcement 4 You must accompany any such work based on the Program with the complete corresponding machine readable source code delivered on a medium customarily used for software interchange The source code for a work means the preferred form of the work for making modifications to it For an executable work complete source code means all the source code for all modules it contains plus any associated interface definition files plus the scripts used to control compilation and installation of the executable code However the source code distributed need not include anything that is normally distributed in either source or binary form with the major components compiler kernel and so on of the operating system on which the executable runs unless that component itself accompanies the executable code 5 If you distribute any written or printed material at all with the Program or any work based on the Program such material must include either a written copy of this License or a prominent written indication that the Program or the work based on the Program is covered by this License and written instructions for printing and or displaying the copy of the License on the distribution medium 6 You may not impose any further restrictions on the recipient s exercise of the rights granted herein If distribution of executable or object code is made by offering the equivalent ability to copy from a designated place then offering equivalent ability to copy the source code from the same place counts as distribution of the source code even though third parties are not compelled to copy the source code along with the object code 3 Reservation of Rights No rights are granted to the Program except as expressly set forth herein You may not copy modify sublicense or distribute the Program except as expressly provided under this License Any attempt otherwise to copy modify sublicense or distribute the Program is void and will automatically terminate your rights under this License However parties who have received copies or rights from you under this License will not have their licenses terminated so long as such parties remain in full compliance 4 Other Restrictions If the distribution and or use of the Program is restricted in certain countries for any reason Licensor may add an explicit geographical distribution limitation excluding those countries so that distribution is permitted only in or among countries not thus excluded In such case this License incorporates the limitation as if written in the body of this License 5 Limitations THE PROGRAM IS PROVIDED TO YOU AS IS WITHOUT WARRANTY THERE IS NO WARRANTY FOR THE PROGRAM EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFECTIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR OR CORRECTION IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL LICENSOR OR ANY OTHER PARTY WHO MAY MODIFY AND OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE BE LIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES 1390 K The MySQL license for Microsoft operating systems MySQL shareware license for Microsoft operating systems Version 1 September 4 1998 Copyright C 1998 TcX AB Monty Program KB Detron HB Stockholm SWEDEN Helsingfors FINLAND and Uppsala SWEDEN All rights reserved This License applies to the computer program known as MySQL This License applies when running MySQL on any Microsoft operating system Microsoft operating systems include all versions of Microsoft Windows NT and Microsoft Windows YOU SHOULD CAREFULLY READ THE FOLLOWING TERMS AND CONDITIONS BEFORE USING COPYING OR DISTRIBUTING MySQL BY USING COPYING AND DISTRIBUTING MySQL YOU INDICATE YOUR ACCEPTANCE OF THIS LICENSE TO DO SO AND ALL ITS TERMS AND CONDITIONS FOR USING COPYING AND DISTRIBUTING MySQL OR WORKS BASED ON IT NOTHING OTHER THAN THIS LICENSE GRANTS YOU PERMISSION TO USE COPY OR DISTRIBUTE MySQL OR ITS DERIVATIVE WORKS THESE ACTIONS ARE PROHIBITED BY LAW IF YOU DO NOT ACCEPT THESE TERMS AND CONDITIONS DO NOT USE COPY OR DISTRIBUTE MySQL 1 Evaluation and License Registration This is an evaluation version of MySQL for Win32 Subject to the terms below you are hereby licensed to use MySQL for evaluation purposes without charge for a period of 30 days If you use MySQL after the 30 day evaluation period the registration and purchase of a MySQL license is required The price for a MySQL license is currently 200 US dollars and email support starts from 200 US dollars year Quantity discounts are available If you pay by credit card the currency is EURO The European Unions common currency so the prices will differ slightly The easiest way to register or find options about how to pay for MySQL is to use the license form at TcX s secure server at 1391 https www tcx se license htmy This can be used also when paying with credit card over the Internet Other applicable methods for paying are SWIFT payments cheques and credit cards Payment should be made to Postgirot Bank AB 105 06 STOCKHOLM SWEDEN TCX DataKonsult AB BOX 6434 11382 STOCKHOLM SWEDEN SWIFT address PGSI SESS Account number 96 77 06 3 Specify license and or support and your name and email address In Europe and Japan EuroGiro that should be cheaper can be used to the same account If you want to pay by cheque make it payable to Monty Program KB and mail it to the address below TCX DataKonsult AB BOX 6434 11382 STOCKHOLM SWEDEN For more information about commercial licensing please contact David Axmark Kungsgatan 65 B 753 21 UPPSALA SWEDEN Voice Phone 46 18 10 22 80 Swedish and English spoken Fax 46 8 729 69 05 Email much preferred E Mail mysql licensing mysql com For more about the license prices and commercial support like email support please refer to the MySQL manual See section 1392 3 5 MySQL licensing and support costs See section 1393 3 6 Types of commercial support The use of MySQL or any work based on MySQL after the 30 day evaluation period is in violation of international copyright laws 2 Registered version of MySQL After you have purchased a MySQL license we will send you a receipt by paper mail You are allowed to use MySQL or any work based on MySQL after the 30 days evaluation period The use of MySQL is however restricted to one physical computer but there are no restrictions on concurrent uses of MySQL or the number of MySQL servers run on the computer We will also email you an address and password for a password protected WWW page that always has the newest MySQL Win32 version Our current policy is that a user with the MySQL license can get free upgrades The best way to ensure that you get the best possible support is to purchase commercial support 3 Registration for use in education and university or government sponsored research You may obtain a MySQL license for the use in education and university or government sponsored research for free In that case send a detailed application for licensing MySQL for such use to the email address The following information is required in the application the name of the school or institute a short description of the school or institute and of the type of education resarch or other functions it provides a detailed report of the use of MySQL in the institution In this case you will be provided with a license that entitles you to use MySQL in a specified manner 4 Distribution Provided that you verify that you are distributing an evaluation or educational research version of MySQL you are hereby licensed to make as many literal i e verbatim copies of the evaluation version of MySQL and documentation as you wish 5 Restrictions The client code of MySQL is in the Public Domain or under the GPL for example the code for readline license You are not allowed to modify recompile translate or create derivative works based upon any part of the server code of MySQL 6 Reservation of Rights No rights are granted to MySQL except as expressly set forth herein You may not copy or distribute MySQL except as expressly provided under this License Any attempt otherwise to copy or distribute MySQL is void and will automatically terminate your rights under this License However parties who have received copies or rights from you under this License will not have their licenses terminated so long as such parties remain in full compliance 7 Other Restrictions If the distribution and or use of MySQL is restricted in certain countries for any reason the Licensor may add an explicit geographical distribution limitation excluding those countries so that distribution is permitted only in or among countries not thus excluded In such case this License incorporates the limitation as if written in the body of this License 8 Limitations MySQL IS PROVIDED TO YOU AS IS WITHOUT WARRANTY THERE IS NO WARRANTY FOR MySQL EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF MySQL IS WITH YOU SHOULD MySQL PROVE DEFECTIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR OR CORRECTION IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL THE LICENSOR OR ANY OTHER PARTY WHO MAY MODIFY AND OR REDISTRIBUTE MySQL AS PERMITTED ABOVE BE LIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE MySQL INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF MySQL TO OPERATE WITH ANY OTHER PROGRAMS EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES 1394 SQL command type and function index 1395 logical NOT 1396 not equal 1397 modulo 1398 wildcard character 1399 bitwise AND 1400 logical AND 1401 parentheses 1402 multiplication 1403 addition 1404 subtraction 1405 unary minus 1406 my cnf file 1407 my cnf file 1408 my cnf file 1409 my cnf file 1410 my cnf file 1411 my cnf file 1412 my cnf file 1413 mysql history file 1414 pid process ID file 1415 division 1416 etc passwd 1417 etc passwd 1418 less than 1419 left shift 1420 less than or equal 1421 Equal to 1422 not equal 1423 equal 1424 greater than 1425 greater than or equal 1426 right shift 1427 double quote 1428 single quote 1429 0 ASCII 0 1430 escape 1431 b backspace 1432 n newline 1433 r carriage return 1434 t tab 1435 wildcard character A 1436 ABS 1437 ACOS 1438 ADDDATE 1439 addition 1440 alias 1441 ALTER TABLE 1442 AND bitwise 1443 AND logical 1444 Arithmetic functions 1445 ASCII 1446 ASIN 1447 ATAN 1448 ATAN2 1449 AUTO INCREMENT using with DBI 1450 AVG B 1451 backspace b 1452 BENCHMARK 1453 BETWEEN AND 1454 BIGINT 1455 BIN 1456 BINARY 1457 Bit functions 1458 BIT AND 1459 BIT COUNT 1460 BIT OR 1461 BLOB 1462 BLOB C 1463 carriage return r 1464 Casts 1465 CC environment variable 1466 CC environment variable 1467 CEILING 1468 CFLAGS environment variable 1469 CHAR 1470 CHAR 1471 CHAR 1472 CHAR LENGTH 1473 CHARACTER LENGTH 1474 ChopBlanks DBI method 1475 Comment syntax 1476 Comparison operators 1477 CONCAT 1478 connect DBI method 1479 Control flow functions 1480 CONV 1481 COS 1482 COT 1483 COUNT 1484 CREATE DATABASE 1485 CREATE FUNCTION 1486 CREATE INDEX 1487 CREATE TABLE 1488 CROSS JOIN 1489 CURDATE 1490 CURRENT DATE 1491 CURRENT TIME 1492 CURRENT TIMESTAMP 1493 CURTIME 1494 CXX environment variable 1495 CXX environment variable 1496 CXX environment variable 1497 CXX environment variable 1498 CXXFLAGS environment variable 1499 CXXFLAGS environment variable D 1500 data sources DBI method 1501 DATABASE 1502 DATE 1503 DATE 1504 Date and time functions 1505 DATE ADD 1506 DATE FORMAT 1507 DATE SUB 1508 DATETIME 1509 DATETIME 1510 DAYNAME 1511 DAYOFMONTH 1512 DAYOFWEEK 1513 DAYOFYEAR 1514 DBI connect 1515 DBI data sources 1516 DBI disconnect 1517 DBI do 1518 DBI execute 1519 DBI fetchall arrayref 1520 DBI fetchrow array 1521 DBI fetchrow arrayref 1522 DBI fetchrow hashref 1523 DBI finish 1524 DBI prepare 1525 DBI quote 1526 DBI quote 1527 DBI rows 1528 DBI trace 1529 DBI trace 1530 DBI ChopBlanks 1531 DBI insertid 1532 DBI is blob 1533 DBI is key 1534 DBI is not null 1535 DBI is num 1536 DBI is pri key 1537 DBI length 1538 DBI max length 1539 DBI NAME 1540 DBI NULLABLE 1541 DBI NUM OF FIELDS 1542 DBI table 1543 DBI type 1544 DBI TRACE environment variable 1545 DBI TRACE environment variable 1546 DECIMAL 1547 DECODE 1548 DEGREES 1549 DELAYED 1550 DELETE 1551 DESC 1552 DESCRIBE 1553 disconnect DBI method 1554 division 1555 do DBI method 1556 DOUBLE 1557 DOUBLE PRECISION 1558 double quote 1559 DROP DATABASE 1560 DROP FUNCTION 1561 DROP INDEX 1562 DROP TABLE E 1563 ELT 1564 ENCODE 1565 ENCRYPT 1566 ENUM 1567 ENUM 1568 Environment variable CC 1569 Environment variable CC 1570 Environment variable CFLAGS 1571 Environment variable CXX 1572 Environment variable CXX 1573 Environment variable CXX 1574 Environment variable CXXFLAGS 1575 Environment variable CXXFLAGS 1576 Environment variable DBI TRACE 1577 Environment variable DBI TRACE 1578 Environment variable HOME 1579 Environment variable LD RUN PATH 1580 Environment variable LD RUN PATH 1581 Environment variable LD RUN PATH 1582 Environment variable LOGIN 1583 Environment variable LOGNAME 1584 Environment variable MYSQL DEBUG 1585 Environment variable MYSQL DEBUG 1586 Environment variable MYSQL HISTFILE 1587 Environment variable MYSQL HOST 1588 Environment variable MYSQL PWD 1589 Environment variable MYSQL PWD 1590 Environment variable MYSQL TCP PORT 1591 Environment variable MYSQL TCP PORT 1592 Environment variable MYSQL TCP PORT 1593 Environment variable MYSQL UNIX PORT 1594 Environment variable MYSQL UNIX PORT 1595 Environment variable MYSQL UNIX PORT 1596 Environment variable MYSQL UNIX PORT 1597 Environment variable PATH 1598 Environment variable TMPDIR 1599 Environment variable TZ 1600 Environment variable TZ 1601 Environment variable TZ 1602 Environment variable UMASK 1603 Environment variable USER 1604 Environment variables CXX 1605 equal 1606 escape 1607 execute DBI method 1608 EXP 1609 EXPLAIN F 1610 fetchall arrayref DBI method 1611 fetchrow array DBI method 1612 fetchrow arrayref DBI method 1613 fetchrow hashref DBI method 1614 FIELD 1615 FILE 1616 FIND IN SET 1617 finish DBI method 1618 FLOAT 1619 FLOAT 4 1620 FLOAT 8 1621 FLOAT M D 1622 FLOOR 1623 FLUSH 1624 FORMAT 1625 FROM DAYS 1626 FROM UNIXTIME 1627 FROM UNIXTIME 1628 Functions arithmetic 1629 Functions bit 1630 Functions control flow 1631 Functions date and time 1632 Functions GROUP BY 1633 Functions logical 1634 Functions mathematical 1635 Functions miscellaneous 1636 Functions string 1637 Functions string comparison 1638 Functions user defined G 1639 GET LOCK 1640 GRANT 1641 greater than 1642 greater than or equal 1643 GREATEST 1644 GROUP BY functions H 1645 HEX 1646 HOME environment variable 1647 host frm problems finding 1648 HOUR I 1649 IF 1650 IFNULL 1651 IN 1652 INSERT 1653 INSERT DELAYED 1654 INSERT 1655 insertid DBI method 1656 INSTR 1657 INT 1658 INTEGER 1659 INTERVAL 1660 is blob DBI method 1661 is key DBI method 1662 is not null DBI method 1663 is num DBI method 1664 is pri key DBI method 1665 ISNULL J 1666 JOIN K 1667 KILL L 1668 LAST INSERT ID 1669 LAST INSERT ID expr 1670 LCASE 1671 LD RUN PATH environment variable 1672 LD RUN PATH environment variable 1673 LD RUN PATH environment variable 1674 LEAST 1675 LEFT JOIN 1676 LEFT OUTER JOIN 1677 LEFT 1678 length DBI method 1679 LENGTH 1680 less than 1681 less than or equal 1682 LIKE 1683 LIKE and indexes 1684 LIKE and wildcards 1685 LOAD DATA INFILE 1686 LOAD DATA INFILE 1687 LOCATE 1688 LOCATE 1689 LOCK TABLES 1690 LOG 1691 LOG10 1692 Logical functions 1693 LOGIN environment variable 1694 LOGNAME environment variable 1695 LONGBLOB 1696 LONGTEXT 1697 LOWER 1698 LPAD 1699 LTRIM M 1700 MAKE SET 1701 Mathematical functions 1702 MAX 1703 max length DBI method 1704 MEDIUMBLOB 1705 MEDIUMINT 1706 MEDIUMTEXT 1707 MID 1708 MIN 1709 minus unary 1710 MINUTE 1711 Miscellaneous functions 1712 MOD 1713 modulo 1714 MONTH 1715 MONTHNAME 1716 multiplication 1717 my ulonglong C type 1718 my ulonglong values printing 1719 MYSQL C type 1720 mysql affected rows 1721 mysql close 1722 mysql connect 1723 mysql create db 1724 mysql data seek 1725 MYSQL DEBUG environment variable 1726 MYSQL DEBUG environment variable 1727 mysql debug 1728 mysql drop db 1729 mysql dump debug info 1730 mysql eof 1731 mysql errno 1732 mysql error 1733 mysql escape string 1734 mysql escape string 1735 mysql fetch field 1736 mysql fetch field direct 1737 mysql fetch fields 1738 mysql fetch lengths 1739 mysql fetch row 1740 MYSQL FIELD C type 1741 mysql field count 1742 MYSQL FIELD OFFSET C type 1743 mysql field seek 1744 mysql field tell 1745 mysql free result 1746 mysql get client info 1747 mysql get host info 1748 mysql get proto info 1749 mysql get server info 1750 MYSQL HISTFILE environment variable 1751 MYSQL HOST environment variable 1752 mysql info 1753 mysql info 1754 mysql info 1755 mysql info 1756 mysql info 1757 mysql init 1758 mysql insert id 1759 mysql insert id 1760 mysql kill 1761 mysql list dbs 1762 mysql list fields 1763 mysql list processes 1764 mysql list tables 1765 mysql num fields 1766 mysql num rows 1767 mysql options 1768 mysql ping 1769 MYSQL PWD environment variable 1770 MYSQL PWD environment variable 1771 mysql query 1772 mysql real connect 1773 mysql real query 1774 mysql reload 1775 MYSQL RES C type 1776 MYSQL ROW C type 1777 mysql row seek 1778 mysql row tell 1779 mysql select db 1780 mysql shutdown 1781 mysql stat 1782 mysql store result 1783 MYSQL TCP PORT environment variable 1784 MYSQL TCP PORT environment variable 1785 MYSQL TCP PORT environment variable 1786 mysql thread id 1787 MYSQL UNIX PORT environment variable 1788 MYSQL UNIX PORT environment variable 1789 MYSQL UNIX PORT environment variable 1790 MYSQL UNIX PORT environment variable 1791 mysql use result N 1792 NAME DBI method 1793 NATURAL LEFT JOIN 1794 NATURAL LEFT OUTER JOIN 1795 newline n 1796 not equal 1797 not equal 1798 NOT IN 1799 NOT LIKE 1800 NOT REGEXP 1801 NOT logical 1802 NOW 1803 NUL 1804 NULL 1805 NULL value 1806 NULLABLE DBI method 1807 NUM OF FIELDS DBI method 1808 NUMERIC O 1809 OCT 1810 OCTET LENGTH 1811 OPTIMIZE TABLE 1812 OR bitwise 1813 OR logical P 1814 parentheses and 1815 PASSWORD 1816 PASSWORD 1817 PASSWORD 1818 PASSWORD 1819 PATH environment variable 1820 PERIOD ADD 1821 PERIOD DIFF 1822 PI 1823 POSITION 1824 POW 1825 POWER 1826 prepare DBI method 1827 PROCESSLIST Q 1828 QUARTER 1829 quote DBI method R 1830 RADIANS 1831 RAND 1832 REAL 1833 REGEXP 1834 RELEASE LOCK 1835 REPEAT 1836 REPLACE 1837 REPLACE 1838 return r 1839 REVERSE 1840 REVOKE 1841 RIGHT 1842 RLIKE 1843 ROUND 1844 ROUND 1845 rows DBI method 1846 RPAD 1847 RTRIM S 1848 SEC TO TIME 1849 SECOND 1850 SELECT 1851 SELECT optimizing 1852 SESSION USER 1853 SET 1854 SET 1855 SET OPTION 1856 SHOW COLUMNS 1857 SHOW DATABASES 1858 SHOW FIELDS 1859 SHOW INDEX 1860 SHOW INDEX 1861 SHOW KEYS 1862 SHOW PROCESSLIST 1863 SHOW STATUS 1864 SHOW TABLE STATUS 1865 SHOW TABLES 1866 SHOW VARIABLES 1867 SIGN 1868 SIN 1869 single quote 1870 SMALLINT 1871 SOUNDEX 1872 SPACE 1873 SQRT 1874 STD 1875 STDDEV 1876 STRAIGHT JOIN 1877 STRCMP 1878 String comparison functions 1879 String functions 1880 SUBDATE 1881 SUBSTRING 1882 SUBSTRING 1883 SUBSTRING 1884 SUBSTRING INDEX 1885 subtraction 1886 SUM 1887 SYSDATE 1888 SYSTEM USER T 1889 tab t 1890 table DBI method 1891 table cache 1892 table cache 1893 TAN 1894 TEXT 1895 TEXT 1896 Threads 1897 TIME 1898 TIME 1899 TIME FORMAT 1900 TIME TO SEC 1901 TIMESTAMP 1902 TIMESTAMP 1903 TINYBLOB 1904 TINYINT 1905 TINYTEXT 1906 TMPDIR environment variable 1907 TO DAYS 1908 trace DBI method 1909 trace DBI method 1910 TRIM 1911 TRUNCATE 1912 type DBI method 1913 Types 1914 TZ environment variable 1915 TZ environment variable 1916 TZ environment variable U 1917 UCASE 1918 UDF functions 1919 ulimit 1920 UMASK environment variable 1921 unary minus 1922 UNIX TIMESTAMP 1923 UNLOCK TABLES 1924 UPDATE 1925 UPPER 1926 USE 1927 USER environment variable 1928 USER 1929 User defined functions V 1930 VARCHAR 1931 VARCHAR 1932 VERSION W 1933 WEEK 1934 WEEKDAY 1935 Wildcard character 1936 Wildcard character Y 1937 YEAR 1938 YEAR 1939 YEAR 1940 bitwise OR 1941 logical OR 1942 Concept Index A 1943 Adding native functions 1944 Adding user definable functions 1945 Alias names case sensitivity 1946 Aliases for expressions 1947 Aliases for tables 1948 Aliases in GROUP BY clauses 1949 Aliases in ORDER BY clauses 1950 Aliases on expressions 1951 Anonymous user 1952 Anonymous user 1953 Anonymous user 1954 ANSI SQL differences from 1955 Arithmetic expressions 1956 AUTO INCREMENT and NULL values B 1957 Backups 1958 Big5 Chinese character encoding 1959 BLOB columns default values 1960 BLOB columns indexing 1961 BLOB inserting binary data 1962 Bug reports C 1963 C compiler cannot create executables 1964 Case sensitivity in access checking 1965 Case sensitivity in searches 1966 Case sensitivity in string comparisons 1967 Case sensitivity of alias names 1968 Case sensitivity of column names 1969 Case sensitivity of database names 1970 Case sensitivity of database names 1971 Case sensitivity of table names 1972 Case sensitivity of table names 1973 Casts 1974 cc1plus problems 1975 Checking tables for errors 1976 Chinese 1977 Choosing types 1978 Choosing version 1979 Client programs building 1980 Column names case sensitivity 1981 Command line history 1982 Commands out of sync 1983 Compatibility between MySQL versions 1984 Compatibility between MySQL versions 1985 Compatibility with ANSI SQL 1986 Compatibility with mSQL 1987 Compatibility with ODBC 1988 Compatibility with ODBC 1989 Compatibility with ODBC 1990 Compatibility with ODBC 1991 Compatibility with ODBC 1992 Compatibility with ODBC 1993 Compatibility with Oracle 1994 Compatibility with Oracle 1995 Compatibility with Oracle 1996 Compatibility with PostgreSQL 1997 Compatibility with Sybase 1998 Configuration files 1999 configure running after prior invocation 2000 Constant table 2001 Constant table 2002 Contact information 2003 Copyright 2004 Costs licensing and support D 2005 Database mirroring 2006 Database names case sensitivity 2007 Database names case sensitivity 2008 Database replication 2009 Database replication 2010 Date and Time types 2011 db table sorting 2012 DBI Perl module 2013 Default options 2014 Default values BLOB and TEXT columns 2015 Disk full 2016 Downloading E 2017 Environment variables 2018 Environment variables 2019 Environment variables 2020 Environment variables 2021 Expression aliases 2022 Expressions aliases for F 2023 fatal signal 11 2024 Foreign keys 2025 FreeBSD troubleshooting 2026 Full disk 2027 Functions for SELECT and WHERE clauses 2028 Functions native adding 2029 Functions user definable adding G 2030 Getting MySQL 2031 Grant tables sorting 2032 Grant tables sorting 2033 GROUP BY aliases in 2034 Grouping of expressions H 2035 History file 2036 host table sorting 2037 How to pronounce MySQL I 2038 Indexes 2039 Indexes 2040 Indexes and BLOB columns 2041 Indexes and LIKE 2042 Indexes and NULL values 2043 Indexes and TEXT columns 2044 Indexes leftmost prefix of 2045 Indexes multi part 2046 Internal compiler errors 2047 isamchk 2048 isamchk K 2049 Keys 2050 Keywords L 2051 Language support 2052 Leftmost prefix of indexes 2053 Licensing costs 2054 Licensing policy 2055 Licensing terms 2056 Linking 2057 Log file names M 2058 make binary release 2059 Manual information 2060 Memory use 2061 Mirroring database 2062 mSQL compatibility 2063 msql2mysql 2064 Multi byte characters 2065 Multi part index 2066 Multiple servers 2067 MyODBC 2068 mysql 2069 MySQL binary distribution 2070 MySQL mailing lists 2071 MySQL source distribution 2072 MySQL version 2073 MySQL version 2074 MySQL how to pronounce 2075 MySQL what it is 2076 mysql fix privilege tables 2077 mysql install db 2078 mysqlaccess 2079 mysqladmin 2080 mysqladmin 2081 mysqladmin 2082 mysqladmin 2083 mysqladmin 2084 mysqladmin 2085 mysqlbug 2086 mysqld 2087 mysqldump 2088 mysqldump 2089 mysqlimport 2090 mysqlimport 2091 mysqlimport 2092 mysqlshow N 2093 Native functions adding 2094 Net etiquette 2095 Net etiquette 2096 NULL values vs empty values 2097 NULL values and indexes 2098 NULL values and AUTO INCREMENT columns 2099 NULL values and TIMESTAMP columns O 2100 ODBC 2101 ODBC compatibility 2102 ODBC compatibility 2103 ODBC compatibility 2104 ODBC compatibility 2105 ODBC compatibility 2106 ODBC compatibility 2107 Optimizations 2108 Option files 2109 Oracle compatibility 2110 Oracle compatibility 2111 Oracle compatibility 2112 ORDER BY aliases in P 2113 pack isam 2114 pack isam 2115 pack isam 2116 pack isam 2117 pack isam 2118 Password encryption reversibility of 2119 Passwords setting 2120 Passwords setting 2121 Passwords setting 2122 Passwords setting 2123 Payment information 2124 Performance 2125 PostgreSQL compatibility 2126 Protocol mismatch Q 2127 Quoting 2128 Quoting binary data 2129 Quoting strings R 2130 RedHat Package Manager 2131 RedHat Package Manager 2132 References 2133 Release numbers 2134 replace 2135 Replication 2136 Replication database 2137 Replication database 2138 Reporting bugs 2139 Reporting errors 2140 Reserved words 2141 Reserved words exceptions 2142 Row level locking 2143 RPM 2144 RPM 2145 Running configure after prior invocation S 2146 safe mysqld 2147 Scripts 2148 Server functions 2149 Size of tables 2150 Solaris troubleshooting 2151 Sorting grant tables 2152 Sorting grant tables 2153 sql yacc cc problems 2154 Stability 2155 Startup parameters 2156 Storage requirements 2157 String comparisons case sensitivity 2158 Strings 2159 Strings escaping characters 2160 Strings quoting 2161 Support costs 2162 Support terms 2163 Support types 2164 Sybase compatibility 2165 Symbolic links 2166 System table T 2167 Table aliases 2168 Table cache 2169 Table cache 2170 Table cache 2171 Table names case sensitivity 2172 Table names case sensitivity 2173 Table size 2174 Table constant 2175 Table constant 2176 Table system 2177 TEXT columns default values 2178 TEXT columns indexing 2179 The table is full 2180 The table is full 2181 TIMESTAMP and NULL values 2182 Timezone problems 2183 Timezone problems 2184 Timezone problems 2185 TODO 2186 Troubleshooting FreeBSD 2187 Troubleshooting Solaris 2188 Type conversions 2189 Type portability 2190 Types of support 2191 Types choosing 2192 Types Date and Time U 2193 Update log 2194 user table sorting 2195 User definable functions adding V 2196 Version choosing 2197 Version latest 2198 Virtual memory problems while compiling W 2199 Which languages MySQL supports 2200 Wildcards and LIKE 2201 Wildcards in mysql columns priv table 2202 Wildcards in mysql db table 2203 Wildcards in mysql host table 2204 Wildcards in mysql tables priv table 2205 Wildcards in mysql user table 2206 Windows Y 2207 Year 2000 compliance 2208 Year 2000 issues This document was generated on 8 July 1999 using the 2209 texi2html translator version 1 52 extended by davida detron se 1 Preface PHP Manual Stig Sæther Bakken Alexander Aulbach Egon Schmid Jim Winstead Lars Torben Wilson Rasmus Lerdorf Zeev Suraski Edited by Stig Sæther Bakken 2 Copyright 1997 1998 1999 by the PHP Documentation Group Dedication Date 1999 07 19 Table of Contents 3 Preface 4 About this Manual I 5 Getting Started 1 6 Introduction 2 7 Installation 3 8 Configuration 4 9 Security II 10 Language Reference 5 11 Basic syntax 6 12 Types 7 13 Variables 8 14 Constants 9 15 Expressions 10 16 Operators 11 17 Control Structures 12 18 Functions 13 19 Classes and Objects III 20 Features 14 21 Error handling 15 22 Creating GIF images 16 23 HTTP authentication with PHP 17 24 Cookies 18 25 Handling file uploads 19 26 Connection handling 20 27 Persistent database connections IV 28 Function Reference I 29 Adabas D functions II 30 Apache specific functions III 31 Array functions IV 32 Aspell functions V 33 Arbitrary precision mathematics functions VI 34 Calendar functions VII 35 ClibPDF functions VIII 36 Date and Time functions IX 37 Database dbm style abstraction layer functions X 38 dBase functions XI 39 dbm functions XII 40 Directory functions XIII 41 Dynamic Loading functions XIV 42 Program Execution functions XV 43 Forms Data Format functions XVI 44 filePro functions XVII 45 Filesystem functions XVIII 46 Functions related to HTTP XIX 47 Hyperwave functions XX 48 Image functions XXI 49 IMAP functions XXII 50 PHP options information XXIII 51 Informix functions XXIV 52 InterBase functions XXV 53 LDAP functions XXVI 54 Mail functions XXVII 55 Mathematical functions XXVIII 56 Encryption functions XXIX 57 Hash functions XXX 58 Miscellaneous functions XXXI 59 mSQL functions XXXII 60 Microsoft SQL Server functions XXXIII 61 MySQL functions XXXIV 62 Sybase functions XXXV 63 Network functions XXXVI 64 NIS functions XXXVII 65 ODBC functions XXXVIII 66 Oracle 8 functions XXXIX 67 Oracle functions XL 68 Perl compatible Regular Expression functions XLI 69 PDF functions XLII 70 PostgreSQL functions XLIII 71 Regular expression functions XLIV 72 Semaphore and shared memory functions XLV 73 Solid functions XLVI 74 SNMP functions XLVII 75 String functions XLVIII 76 URL functions XLIX 77 Variable functions L 78 Vmailmgr functions LI 79 WDDX functions LII 80 Compression functions LIII 81 XML parser functions V 82 Appendixes A 83 Migrating from PHP FI 2 0 to PHP 3 0 B 84 PHP development C 85 The PHP Debugger 86 Next Preface 1 PHP Manual 2 Preface PHP Manual Copyright This manual is Copyright 1997 1998 1999 the PHP Documentation Group The members of this group are listed 3 on the front page of this manual This manual can be redistributed under the terms of the GNU General Public License as published by the Free Software Foundation either version 2 of the License or at your option any later version 4 Home 1 PHP Manual 2 PHP Manual 3 Getting Started PHP Manual 4 Prev 5 Next Preface Table of Contents 6 About this Manual PHP is an HTML embedded scripting language Much of its syntax is borrowed from C Java and Perl with a couple of unique PHP specific features thrown in The goal of the language is to allow web developers to write dynamically generated pages quickly About this Manual This manual is written in SGML using the 7 DocBook DTD using 8 DSSSL Document Style and Semantics Specification Language for formatting The tools used for formatting HTML TeX and RTF versions are 9 Jade written by 10 James Clark and 11 The Modular DocBook Stylesheets written by 12 Norman Walsh PHP s documentation framework was assembled by 13 Stig Sæther Bakken 14 Prev 15 Home 16 Next PHP Manual Getting Started 1 PHP Manual 2 Preface 3 Introduction PHP Manual 4 Prev 5 Next I Getting Started Table of Contents 1 6 Introduction 2 7 Installation 3 8 Configuration 4 9 Security 10 Prev 11 Home 12 Next Preface Introduction 1 PHP Manual 2 Getting Started 3 Getting Started 4 What can PHP do PHP Manual 5 Prev 6 Next Chapter 1 Introduction Table of Contents 7 What is PHP 8 What can PHP do 9 A Brief History of PHP What is PHP PHP is a server side HTML embedded scripting language Simple answer but what does that mean An example Example 1 1 An introductory example html head title Example title body php echo Hi I m a PHP script body html Notice how this is different from a CGI script written in other languages like Perl or C instead of writing a program with lots of commands to output HTML you write an HTML script with a some embedded code to do something in this case output some text The PHP code is enclosed in special start and end tags that allow you to jump into and out of PHP mode What distinguishes PHP from something like client side Javascript is that the code is executed on the server If you were to have a script similar to the above on your server the client would receive the results of running that script with no way of determining what the underlying code may be You can even configure your web server to process all your HTML files with PHP and then there s really no way that users can tell what you have up your sleeve 10 Prev 11 Home 12 Next Getting Started 13 Up What can PHP do 1 PHP Manual 2 Introduction 3 Introduction 4 A Brief History of PHP PHP Manual 5 Prev Chapter 1 Introduction 6 Next What can PHP do At the most basic level PHP can do anything any other CGI program can do such as collect form data generate dynamic page content or send and receive cookies Perhaps the strongest and most significant feature in PHP is its support for a wide range of databases Writing a database enabled web page is incredibly simple The following databases are currently supported Adabas D InterBase Solid dBase mSQL Sybase Empress MySQL Velocis FilePro Oracle Unix dbm Informix PostgreSQL PHP also has support for talking to other services using protocols such as IMAP SNMP NNTP POP3 or even HTTP You can also open raw network sockets and interact using other protocols 7 Prev 8 Home 9 Next Introduction 10 Up A Brief History of PHP 1 PHP Manual 2 Introduction 3 What can PHP do 4 Installation PHP Manual 5 Prev Chapter 1 Introduction 6 Next A Brief History of PHP PHP was conceived sometime in the fall of 1994 by Rasmus Lerdorf Early non released versions were used on his home page to keep track of who was looking at his online resume The first version used by others was available sometime in early 1995 and was known as the Personal Home Page Tools It consisted of a very simplistic parser engine that only understood a few special macros and a number of utilities that were in common use on home pages back then A guestbook a counter and some other stuff The parser was rewritten in mid 1995 and named PHP FI Version 2 The FI came from another package Rasmus had written which interpreted html form data He combined the Personal Home Page tools scripts with the Form Interpreter and added mSQL support and PHP FI was born PHP FI grew at an amazing pace and people started contributing code to it It is hard to give any hard statistics but it is estimated that by late 1996 PHP FI was in use on at least 15 000 web sites around the world By mid 1997 this number had grown to over 50 000 Mid 1997 also saw a change in the development of PHP It changed from being Rasmus own pet project that a handful of people had contributed to to being a much more organized team effort The parser was rewritten from scratch by Zeev Suraski and Andi Gutmans and this new parser formed the basis for PHP Version 3 A lot of the utility code from PHP FI was ported over to PHP3 and a lot of it was completely rewritten Today mid 1999 either PHP FI or PHP3 ships with a number of commercial products such as C2 s StrongHold web server and RedHat Linux and a conservative estimate based on an extrapolation from numbers provided by NetCraft would be that PHP is in use on over 150 000 sites around the world To put that in perspective that is more sites than run Netscape s flagship Enterprise server on the Internet Also as of this writing work is underway on the next generation of PHP that will utilize the powerful Zend scripting engine to deliver higher performance and will also support running under webservers other than Apache as a native server module 7 Prev 8 Home 9 Next What can PHP do 10 Up Installation 1 PHP Manual 2 Getting Started 3 A Brief History of PHP 4 Installation on UNIX systems PHP Manual 5 Prev 6 Next Chapter 2 Installation Table of Contents 7 Downloading the latest version 8 Installation on UNIX systems 9 Installation on Windows 95 98 NT systems 10 Problems Downloading the latest version The source code and binary distributions for some platforms including Windows can be found at 11 http www php net 12 Prev 13 Home 14 Next A Brief History of PHP 15 Up Installation on UNIX systems 1 PHP Manual 2 Installation 3 Installation 4 Installation on Windows 95 98 NT systems PHP Manual 5 Prev Chapter 2 Installation 6 Next Installation on UNIX systems This section will guide you through the configuration and installation of PHP Prerequisite knowledge and software Basic UNIX skills being able to operate make and a C compiler An ANSI C compiler A web server Quick Installation Instructions Apache Module Version 1 gunzip apache 1 3 x tar gz 2 tar xvf apache 1 3 x tar 3 gunzip php 3 0 x tar gz 4 tar xvf php 3 0 x tar 5 cd apache 1 3 x 6 configure prefix www 7 cd php 3 0 x 8 configure with mysql with apache apache 1 3 x enable track vars 9 make 10 make install 11 cd apache 1 3 x 12 configure prefix www activate module src modules php3 libphp3 a 13 make 14 make install Instead of this step you may prefer to simply copy the httpd binary overtop of your existing binary Make sure you shut down your server first though 15 cd php 3 0 x 16 cp php3 ini dist usr local lib php3 ini You can edit usr local lib php3 ini file to set PHP options If you prefer this file in another location use with config file path path in step 8 17 Edit your httpd conf or srm conf file and add AddType application x httpd php3 php3 You can choose any extension you wish here php3 is simply the one we suggest 18 Use your normal procedure for starting the Apache server You must stop and restart the server not just cause the server to reload by use a HUP or USR1 signal Configuration There are two ways of configuring PHP Using the setup script that comes with PHP This script asks you a series of questions almost like the install script of PHP FI 2 0 and runs configure in the end To run this script type setup This script will also create a file called do conf this file will contain the options passed to configure You can edit this file to change just a few options without having to re run setup Then type do conf to run configure with the new options Running configure by hand To see what options you have type configure help Details about some of the different configuration options are listed below Apache module To build PHP as an Apache module answer yes to Build as an Apache module the 7 with apache DIR option to configure and specify the Apache distribution base directory If you have unpacked your Apache distribution in usr local www apache 1 2 4 this is your Apache distribution base directory The default directory is usr local etc httpd fhttpd module To build PHP as an fhttpd module answer yes to Build as an fhttpd module the 8 with fhttpd DIR option to configure and specify the fhttpd source base directory The default directory is usr local src fhttpd If you are running fhttpd building PHP as a module will give better performance more control and remote execution capability CGI version The default is to build PHP as a CGI program If you are running a web server PHP has module support for you should generally go for that solution for performance reasons However the CGI version enables Apache users to run different PHP enabled pages under different user ids Please make sure you read through the 9 Security chapter if you are going to run PHP as a CGI Database Support Options PHP has native support for a number of databases as well as ODBC Adabas D with adabas DIR Compiles with Adabas D support The parameter is the Adabas D install directory and defaults to usr local adabasd 10 Adabas home page dBase with dbase Enables the bundled DBase support No external libraries are required filePro with filepro Enables the bundled read only filePro support No external libraries are required mSQL with msql DIR Enables mSQL support The parameter to this option is the mSQL install directory and defaults to usr local Hughes This is the default directory of the mSQL 2 0 distribution configure automatically detects which mSQL version you are running and PHP supports both 1 0 and 2 0 but if you compile PHP with mSQL 1 0 you can only access mSQL 1 0 databases and vice versa See also 11 mSQL Configuration Directives in the 12 configuration file 13 mSQL home page MySQL with mysql DIR Enables MySQL support The parameter to this option is the MySQL install directory and defaults to usr local This is the default installation directory of the MySQL distribution See also 14 MySQL Configuration Directives in the 15 configuration file 16 MySQL home page iODBC with iodbc DIR Includes iODBC support This feature was first developed for iODBC Driver Manager a freely redistributable ODBC driver manager which runs under many flavors of UNIX The parameter to this option is the iODBC installation directory and defaults to usr local 17 FreeODBC home page OpenLink ODBC with openlink DIR Includes OpenLink ODBC support The parameter to this option is the OpenLink ODBC installation directory and defaults to usr local openlink 18 OpenLink Software s home page Oracle with oracle DIR Includes Oracle support Has been tested and should be working at least with Oracle versions 7 0 through 7 3 The parameter is the ORACLE HOME directory You do not have to specify this parameter if your Oracle environment has been set up 19 Oracle home page PostgreSQL with pgsql DIR Includes PostgreSQL support The parameter is the PostgreSQL base install directory and defaults to usr local pgsql See also 20 Postgres Configuration Directives in the 21 configuration file 22 PostgreSQL home page Solid with solid DIR Includes Solid support The parameter is the Solid install directory and defaults to usr local solid 23 Solid home page Sybase with sybase DIR Includes Sybase support The parameter is the Sybase install directory and defaults to home sybase See also 24 Sybase Configuration Directives in the 25 configuration file 26 Sybase home page Sybase CT with sybase ct DIR Includes Sybase CT support The parameter is the Sybase CT install directory and defaults to home sybase See also 27 Sybase CT Configuration Directives in the 28 configuration file Velocis with velocis DIR Includes Velocis support The parameter is the Velocis install directory and defaults to usr local velocis 29 Velocis home page A custom ODBC library with custom odbc DIR Includes support for an arbitrary custom ODBC library The parameter is the base directory and defaults to usr local This option implies that you have defined CUSTOM ODBC LIBS when you run the configure script You also must have a valid odbc h header somewhere in your include path If you don t have one create it and include your specific header from there Your header may also require some extra definitions particularly when it is multiplatform Define them in CFLAGS For example you can use Sybase SQL Anywhere on QNX as following CFLAGS DODBC QNX LDFLAGS lunix CUSTOM ODBC LIBS ldblib lodbc configure with custom odbc usr lib sqlany50 Unified ODBC disable unified odbc Disables the Unified ODBC module which is a common interface to all the databases with ODBC based interfaces such as Solid and Adabas D It also works for normal ODBC libraries Has been tested with iODBC Solid Adabas D and Sybase SQL Anywhere Requires that one and only one of these modules or the Velocis module is enabled or a custom ODBC library specified This option is only applicable if one of the following options is used 30 with iodbc 31 with solid 32 with adabas 33 with velocis or 34 with custom odbc See also 35 Unified ODBC Configuration Directives in the 36 configuration file LDAP with ldap DIR Includes LDAP Lightweight Directory Access Protocol support The parameter is the LDAP base install directory defaults to usr local ldap More information about LDAP can be found in 37 RFC1777 and 38 RFC1778 Other configure options with mcrypt DIR with mcrypt Include support for the mcrypt library See the 39 mcrypt documentation for more information If you use the optional DIR argument PHP will look for mcrypt h in DIR include enable sysvsem enable sysvsem Include support for Sys V semaphores supported by most Unix derivates See the 40 Semaphore and Shared Memory documentation for more information enable sysvshm enable sysvshm Include support for Sys V shared memory supported by most Unix derivates See the 41 Semaphore and Shared Memory documentation for more information with xml with xml Include support for a non validating XML parser using James Clark s 42 expat library See the 43 XML function reference for details enable maintainer mode enable maintainer mode Turns on extra dependencies and compiler warnings used by some of the PHP developers with system regex with system regex Uses the system s regular expression library rather than the bundled one If you are building PHP as a server module you must use the same library when building PHP as when linking the server Enable this if the system s library provides special features you need It is recommended that you use the bundled library if possible with config file path with config file path DIR The path used to look for 44 the php3 ini file when PHP starts up with exec dir with exec dir DIR Only allow running of executables in DIR when in safe mode Defaults to usr local bin This option only sets the default it may be changed with the 45 safe mode exec dir directive in the 46 configuration file later enable debug enable debug Enables extra debug information This makes it possible to gather more detailed information when there are problems with PHP Note that this doesn t have anything to do with debugging facilities or information available to PHP scripts enable safe mode enable safe mode Enables safe mode by default This imposes several restrictions on what PHP can do such as opening only files within the document root Read the 47 Security chapter for more more information CGI users should always enable secure mode This option only sets the default it may be enabled or disabled with the 48 safe mode directive in the 49 configuration file later enable track vars enable track vars Makes PHP keep track of where GET POST cookie variables come from in the arrays HTTP GET VARS HTTP POST VARS and HTTP COOKIE VARS This option only sets the default it may be enabled or disabled with the 50 track vars directive in the 51 configuration file later enable magic quotes enable magic quotes Enable magic quotes by default This option only sets the default it may be enabled or disabled with the 52 magic quotes runtime directive in the 53 configuration file later See also the 54 magic quotes gpc and the 55 magic quotes sybase directives enable debugger enable debugger Enables the internal PHP debugger support This feature is still in an experimental state See also the 56 Debugger Configuration directives in the 57 configuration file enable discard path enable discard path If this is enabled the PHP CGI binary can safely be placed outside of the web tree and people will not be able to circumvent htaccess security Read the 58 section in the security chapter about this option enable bcmath enable bcmath Enables bc style arbitrary precision math functions See also the 59 bcmath scale option in the 60 configuration file enable force cgi redirect enable force cgi redirect Enable the security check for internal server redirects You should use this if you are running the CGI version with Apache When using PHP as a CGI binary PHP by default always first checks that it is used by redirection for example under Apache by using Action directives This makes sure that the PHP binary cannot be used to bypass standard web server authentication procedures by calling it directly like http my host cgi bin php secret doc html This example accesses http my host secret doc html but does not honour any security settings enforced by httpd for directory secret Not enabling option disables the check and enables bypassing httpd security and authentication settings Do this only if your server software is unable to indicate that a safe redirection was done and all your files under your document root and user directories may be accessed by anyone Read the 61 section in the security chapter about this option disable short tags disable short tags Disables the short form PHP tags You must disable the short form if you want to use PHP with XML With short tags disabled the only PHP code tag is php This option only sets the default it may be enabled or disabled with the 62 short open tag directive in the 63 configuration file later enable url includes enable url includes Makes it possible to run code on other HTTP or FTP servers directly from PHP with 64 include See also the 65 include path option in the 66 configuration file disable syntax hl disable syntax hl Turns off syntax highlighting CPPFLAGS and LDFLAGS To make the PHP installation look for header or library files in different directories modify the CPPFLAGS and LDFLAGS environment variables respectively If you are using a sensible shell you should be able to do LDFLAGS L my lib dir CPPFLAGS I my include dir configure Building When PHP is configured you are ready to build the CGI executable or the PHP library The command make should take care of this If it fails and you can t figure out why see the 67 Problems section VPATH Testing If you have built PHP as a CGI program you may test your build by typing make test It is always a good idea to test your build This way you may catch a problem with PHP on your platform early instead of having to struggle with it later Benchmarking If you have built PHP as a CGI program you may benchmark your build by typing make bench Note that if safe mode is on by default the benchmark may not be able to finish if it takes longer then the 30 seconds allowed This is because the 68 set time limit can not be used in safe mode Use the 69 max execution time to control this time for you own scripts make bench ignores the 70 configuration file 71 Prev 72 Home 73 Next Installation 74 Up Installation on Windows 95 98 NT systems 1 PHP Manual 2 Installation 3 Installation on UNIX systems 4 Problems PHP Manual 5 Prev Chapter 2 Installation 6 Next Installation on Windows 95 98 NT systems This install guide will help you install and configure PHP on your Windows 9x NT webservers This guide was compiled by 7 Bob Silva The latest revision can be found at 8 http www umesd k12 or us php win32install html This guide provides installation support for Personal Web Server Newest version recommended Internet Information Server 3 or 4 Apache 1 3 x Omni HTTPd 2 0b1 Configuration Changes for PHP All modules are now prefixed with php3 You will need to change your 9 php3 ini file and or any scripts loading extensions with the 10 dl function or you could always remove the php3 prefix This will prevent confusion between php modules and their supporting libraries The 11 ChangeLog 12 FAQ and updated documentation can always be found at the offical PHP website or any of its mirrors General Installation Steps The following steps should be performed on all installations before the server specific instructions Extract the distribution file to a directory of your choice C PHP3 is a good start Copy the file php3 dist ini to your WINDOWS directory and rename it to php3 ini Your WINDOWS directory is typically c windows for Windows 95 98 c winnt or c winnt40 for NT servers Edit your php3 ini file You will need to change the extension dir setting to point to your php install dir or where you have placed your php3 dll files ex c php3 If you are using Omni Httpd do not follow the next step Set the doc root to point to your webservers document root ex c apache htdocs or c webroot Choose which modules you would like to load when PHP starts You can uncomment the extension php3 dll lines to load these modules Some modules require you to have additional libraries installed on your system for the module to work correctly The PHP 13 FAQ has more information on where to get supporting libraries You can also load a module dynamically in your script using dl php dll On PWS and IIS you can set the browscap ini to point to c windows system inetsrv browscap ini on Windows 95 98 and c winnt system32 inetsrv browscap ini on NT Server Additional information on using the browscap functionality in PHP can be found at this 14 mirror select the source button to see it in action Windows 95 98 NT and PWS IIS 3 The recommended method for configuring these servers is to use the INF file included with the distribution php iis reg inf You may want to edit this file and make sure the extensions and PHP install directories match your configuration Or you can follow the steps below to do it manually WARNING These steps involve working directly with the windows registry One error here can leave your system in an unstable state We highly recommend that you back up your registry first The PHP Development team will not be held responsible if you damage your registry Run Regedit Navigate to HKEY LOCAL MACHINE System CurrentControlSet Services W3Svc Parameters ScriptMap On the edit menu select New String Value Type in the extension you wish to use for your php scripts ex php3 Double click on the new string value and enter the path to php exe in the value data field ex c php3 php exe s s The s s is VERY important PHP will not work properly without it Repeat these steps for each extension you wish to associate with PHP scripts Now navigate to HKEY CLASSES ROOT On the edit menu select New Key Name the key to the extension you setup in the previous section ex php3 Highlight the new key and in the right side pane double click the default value and enter phpfile Repeat the last step for each extension you set up in the previous section Now create another New Key under HKEY CLASSES ROOT and name it phpfile Highlight the new key phpfile and in the right side pane double click the default value and enter PHP Script Right click on the phpfile key and select New Key name it Shell Right click on the Shell key and select New Key name it open Right click on the open key and select New Key name it command Highlight the new key command and in the right side pane double click the default value and enter the path to php exe ex c php3 php exe q 1 don t forget the 1 Exit Regedit PWS and IIS 3 users now have a fully operational system IIS 3 users can use a nifty 15 tool from Steven Genusa to configure their script maps Windows NT and IIS 4 To install PHP on an NT Server running IIS 4 follow these instructions In Internet Service Manager MMC select the Web site or the starting point directory of an application Open the directory s property sheets by right clicking and selecting properties and then click the Home Directory Virtual Directory or Directory tab Click the Configuration button and then click the App Mappings tab Click Add and in the Executable box type c path to php dir php exe s s You MUST have the s s on the end PHP will not function properly if you fail to do this In the Extension box type the file name extension you want associated with PHP scripts You must repeat step 5 and 6 for each extension you want accociated with PHP scripts php3 and phtml are common Set up the appropriate security This is done in Internet Service Manager and if your NT Server uses NTFS file system add execute rights for I USR to the directory that contains php exe Windows 9x NT and Apache 1 3 x You must edit your srm conf or httpd conf to configure Apache to work with the PHP CGI binary Although there can be a few variations of configuring PHP under Apache this one is simple enough to be used by the newcomer Please consult the Apache Docs for further configuration directives ScriptAlias php3 c path to php dir AddType application x httpd php3 php3 AddType application x httpd php3 phtml Action application x httpd php3 php3 php exe To use the source code highlighting feature simply create a PHP script file and stick this code in php show source original php script php3 Substitute original php script php3 with the name of the file you wish to show the source of this is only one way of doing it Note On Win Apache all back slashes in a path statement such as c directory file ext must be converted to forward slashes Omni HTTPd 2 0b1 for Windows This has got to be the easiest config there is Step 1 Install Omni server Step 2 Right click on the blue OmniHTTPd icon in the system tray and select Properties Step 3 Click on Web Server Global Settings Step 4 On the External tab enter virtual php3 actual c path to php dir php exe Step 5 On the Mime tab enter virtual wwwserver stdcgi actual php3 Step 6 Click OK Repeat steps 2 6 for each extension you want to associate with PHP PHP Modules Table 2 1 PHP Modules php3 calendar dll Calendar conversion functions php3 crypt dll Crypt functions php3 dbase dll DBase functions php3 dbm dll GDBM emulation via Berkely DB2 library php3 filepro dll READ ONLY access to filepro databases php3 gd dll GD Library functions for gif manipulation php3 hyperwave dll HyperWave functions php3 imap4r2 dll IMAP 4 functions php3 ldap dll LDAP functions php3 msql1 dll mSQL 1 client php3 msql2 dll mSQL 2 client php3 mssql dll MSSQL client requires MSSQL DB Libraries php3 mysql dll MySQL functions php3 nsmail dll Netscape mail functions php3 oci73 dll Oracle functions php3 snmp dll SNMP get and walk functions NT only php3 zlib dll ZLib functions 16 Prev 17 Home 18 Next Installation on UNIX systems 19 Up Problems 1 PHP Manual 2 Installation 3 Installation on Windows 95 98 NT systems 4 Configuration PHP Manual 5 Prev Chapter 2 Installation 6 Next Problems Read the FAQ Some problems are more common than others The most common ones are listed in the PHP FAQ found at 7 http www php net FAQ php3 Bug reports If you think you have found a bug in PHP please report it The PHP developers probably don t know about it and unless you report it chances are it won t be fixed You can report bugs using the bug tracking system at 8 http www php net bugs php3 Other problems If you are still stuck someone on the PHP mailing list may be able to help you You should check out the archive first in case someone already answered someone else who had the same problem as you The archives are available from the support page on 9 http www php net To subscribe to the PHP mailing list send an empty mail to 10 php3 subscribe lists php net The mailing list address is php3 lists php net If you want to get help on the mailing list please try to be precise and give the necessary details about your environment which operating system what PHP version what web server if you are running PHP as CGI or a server module etc and preferably enough code to make others able to reproduce and test your problem 11 Prev 12 Home 13 Next Installation on Windows 95 98 NT systems 14 Up Configuration 1 PHP Manual 2 Getting Started 3 Problems 4 Apache Module PHP Manual 5 Prev 6 Next Chapter 3 Configuration Table of Contents 7 The php3 ini file 8 Apache Module 9 CGI 10 Virtual hosts 11 Security The php3 ini file The php3 ini file is read when PHP s parser starts up For the server module versions of PHP this happens only once when the web server is started For the CGI version it happens on every invocation Just about every directive listed here has a corresponding Apache httpd conf directive Simply prepend php3 to the start of the directive names listed here You can view the settings of most of the configuration values in the output of 12 phpinfo General Configuration Directives auto append file string Specifies the name of a file that is automatically parsed after the main file The file is included as if it was called with the 13 include function so 14 include path is used The special value none disables auto appending Note If the script is terminated with 15 exit auto append will not occur auto prepend file string Specifies the name of a file that is automatically parsed before the main file The file is included as if it was called with the 16 include function so 17 include path is used The special value none disables auto prepending cgi ext string display errors boolean This determines whether errors should be printed to the screen as part of the HTML output or not doc root string PHP s root directory on the server Only used if non empty If PHP is configured with 18 safe mode no files outside this directory are served engine boolean This directive is really only useful in the Apache module version of PHP It is used by sites that would like to turn PHP parsing on and off on a per directory or per virtual server basis By putting php3 engine off in the appropriate places in the httpd conf file PHP can be enabled or disabled error log string Name of file where script errors should be logged If the special value syslog is used the errors are sent to the system logger instead On UNIX this means syslog 3 and on Windows NT it means the event log The system logger is not supported on Windows 95 error reporting integer Set the error reporting level The parameter is an integer representing a bit field Add the values of the error reporting levels you want Table 3 1 Error Reporting Levels bit value enabled reporting 1 normal errors 2 normal warnings 4 parser errors 8 non critical style related warnings The default value for this directive is 7 normal errors normal warnings and parser errors are shown open basedir string Limit the files that can be opened by PHP to the specified directory tree When a script tries to open a file with for example fopen or gzopen the location of the file is checked When the file is outside the specified directory tree PHP will refuse to open it All symbolic links are resolved so it s not possible to avoid this restriction with a symlink The special value indicates that the directory in which the script is stored will be used as base directory Under Windows separate the directories with a semicolon On all other systems separate the directories with a colon As an Apache module open basedir paths from parent directories are now automatically inherited Note Support for multiple directories was added in 3 0 7 The default is to allow all files to be opened gpc order string Set the order of GET POST COOKIE variable parsing The default setting of this directive is GPC Setting this to GP for example will cause PHP to completely ignore cookies and to overwrite any GET method variables with POST method variables of the same name ignore user abort string Off by default If changed to On scripts will run to completion even if the remote client disconnects in the middle See also 19 ignore user abort include path string Specifies a list of directories where the 20 require 21 include and fopen with path functions look for files The format is like the system s PATH environment variable a list of directories separated with a colon in UNIX or semicolon in Windows Example 3 1 UNIX include path include path home httpd php lib Example 3 2 Windows include path include path c www phplib The default value for this directive is only the current directory isapi ext string log errors boolean Tells whether script error messages should be logged to the server s error log This option is thus server specific magic quotes gpc boolean Sets the magic quotes state for GPC Get Post Cookie operations When magic quotes are on all single quote double quote backslash and NUL s are escaped with a backslash automatically If magic quotes sybase is also on a single quote is escaped with a single quote instead of a backslash magic quotes runtime boolean If magic quotes runtime is enabled most functions that return data from any sort of external source including databases and text files will have quotes escaped with a backslash If magic quotes sybase is also on a single quote is escaped with a single quote instead of a backslash magic quotes sybase boolean If magic quotes sybase is also on a single quote is escaped with a single quote instead of a backslash if magic quotes gpc or magic quotes runtime is enabled max execution time integer This sets the maximum time in seconds a script is allowed to take before it is terminated by the parser This helps prevent poorly written scripts from tieing up the server memory limit integer This sets the maximum amount of memory in bytes that a script is allowed to allocate This helps prevent poorly written scripts for eating up all available memory on a server nsapi ext string short open tag boolean Tells whether the short form of PHP s open tag should be allowed If you want to use PHP in combination with XML you have to disable this option If disabled you must use the long form of the open tag php sql safe mode boolean track errors boolean If enabled the last error message will always be present in the global variable php errormsg track vars boolean If enabled GET POST and cookie input can be found in the global associative arrays HTTP GET VARS HTTP POST VARS and HTTP COOKIE VARS respectively upload tmp dir string The temporary directory used for storing files when doing file upload Must be writable by whatever user PHP is running as user dir string The base name of the directory used on a user s home directory for PHP files for example public html warn plus overloading boolean If enabled this option makes PHP output a warning when the plus operator is used on strings This is to make it easier to find scripts that need to be rewritten to using the string concatenator instead Mail Configuration Directives SMTP string DNS name or IP address of the SMTP server PHP under Windows should use for mail sent with the 22 mail function sendmail from string Which From mail address should be used in mail sent from PHP under Windows sendmail path string Where the sendmail program can be found usually usr sbin sendmail or usr lib sendmail configure does an honest attempt of locating this one for you and set a default but if it fails you can set it here Systems not using sendmail should set this directive to the sendmail wrapper replacement their mail system offers if any For example 23 Qmail users can normally set it to var qmail bin sendmail Safe Mode Configuration Directives safe mode boolean Whether to enable PHP s safe mode Read the 24 Security chapter for more more information safe mode exec dir string If PHP is used in safe mode 25 system and the other functions executing system programs refuse to start programs that are not in this directory Debugger Configuration Directives debugger host string DNS name or IP address of host used by the debugger debugger port string Port number used by the debugger debugger enabled boolean Whether the debugger is enabled Extension Loading Directives enable dl boolean This directive is really only useful in the Apache module version of PHP You can turn dynamic loading of PHP extensions with 26 dl on and off per virtual server or per directory The main reason for turning dynamic loading off is security With dynamic loading it s possible to ignore all the safe mode and open basedir restrictions The default is to allow dynamic loading except when using safe mode In safe mode it s always imposible to use 27 dl extension dir string In what directory PHP should look for dynamically loadable extensions extension string Which dynamically loadable extensions to load when PHP starts up MySQL Configuration Directives mysql allow persistent boolean Whether to allow persistent MySQL connections mysql max persistent integer The maximum number of persistent MySQL connections per process mysql max links integer The maximum number of MySQL connections per process including persistent connections mSQL Configuration Directives msql allow persistent boolean Whether to allow persistent mSQL connections msql max persistent integer The maximum number of persistent mSQL connections per process msql max links integer The maximum number of mSQL connections per process including persistent connections Postgres Configuration Directives pgsql allow persistent boolean Whether to allow persistent Postgres connections pgsql max persistent integer The maximum number of persistent Postgres connections per process pgsql max links integer The maximum number of Postgres connections per process including persistent connections Sybase Configuration Directives sybase allow persistent boolean Whether to allow persistent Sybase connections sybase max persistent integer The maximum number of persistent Sybase connections per process sybase max links integer The maximum number of Sybase connections per process including persistent connections Sybase CT Configuration Directives sybct allow persistent boolean Whether to allow persistent Sybase CT connections The default is on sybct max persistent integer The maximum number of persistent Sybase CT connections per process The default is 1 meaning unlimited sybct max links integer The maximum number of Sybase CT connections per process including persistent connections The default is 1 meaning unlimited sybct min server severity integer Server messages with severity greater than or equal to sybct min server severity will be reported as warnings This value can also be set from a script by calling sybase min server severity The default is 10 which reports errors of information severity or greater sybct min client severity integer Client library messages with severity greater than or equal to sybct min client severity will be reported as warnings This value can also be set from a script by calling sybase min client severity The default is 10 which effectively disables reporting sybct login timeout integer The maximum time in seconds to wait for a connection attempt to succeed before returning failure Note that if max execution time has been exceeded when a connection attempt times out your script will be terminated before it can take action on failure The default is one minute sybct timeout integer The maximum time in seconds to wait for a select db or query operation to succeed before returning failure Note that if max execution time has been exceeded when am operation times out your script will be terminated before it can take action on failure The default is no limit sybct hostname string The name of the host you claim to be connecting from for display by sp who The default is none Informix Configuration Directives ifx allow persistent boolean Whether to allow persistent Informix connections ifx max persistent integer The maximum number of persistent Informix connections per process ifx max links integer The maximum number of Informix connections per process including persistent connections ifx default host string The default host to connect to when no host is specified in 28 ifx connect or 29 ifx pconnect ifx default user string The default user id to use when none is specified in 30 ifx connect or 31 ifx pconnect ifx default password string The default password to use when none is specified in 32 ifx connect or 33 ifx pconnect ifx blobinfile boolean Set to true if you want to return blob columns in a file false if you want them in memory You can override the setting at runtime with 34 ifx blobinfile mode ifx textasvarchar boolean Set to true if you want to return TEXT columns as normal strings in select statements false if you want to use blob id parameters You can override the setting at runtime with 35 ifx textasvarchar ifx byteasvarchar boolean Set to true if you want to return BYTE columns as normal strings in select queries false if you want to use blob id parameters You can override the setting at runtime with 36 ifx textasvarchar ifx charasvarchar boolean Set to true if you want to trim trailing spaces from CHAR columns when fetching them ifx nullformat boolean Set to true if you want to return NULL columns as the literal string NULL false if you want them returned as the empty string You can override this setting at runtime with 37 ifx nullformat BC Math Configuration Directives bcmath scale integer Number of decimal digits for all bcmath functions Browser Capability Configuration Directives browscap string Name of browser capabilities file Unified ODBC Configuration Directives uodbc default db string ODBC data source to use if none is specified in 38 odbc connect or 39 odbc pconnect uodbc default user string User name to use if none is specified in 40 odbc connect or 41 odbc pconnect uodbc default pw string Password to use if none is specified in 42 odbc connect or 43 odbc pconnect uodbc allow persistent boolean Whether to allow persistent ODBC connections uodbc max persistent integer The maximum number of persistent ODBC connections per process uodbc max links integer The maximum number of ODBC connections per process including persistent connections 44 Prev 45 Home 46 Next Problems 47 Up Apache Module 1 PHP Manual 2 Configuration 3 Configuration 4 CGI PHP Manual 5 Prev Chapter 3 Configuration 6 Next Apache Module Apache module configuration directives CGI redirection module action module 7 Prev 8 Home 9 Next Configuration 10 Up CGI 1 PHP Manual 2 Configuration 3 Apache Module 4 Virtual hosts PHP Manual 5 Prev Chapter 3 Configuration 6 Next CGI 7 Prev 8 Home 9 Next Apache Module 10 Up Virtual hosts 1 PHP Manual 2 Configuration 3 CGI 4 Security PHP Manual 5 Prev Chapter 3 Configuration 6 Next Virtual hosts 7 Prev 8 Home 9 Next CGI 10 Up Security 1 PHP Manual 2 Configuration 3 Virtual hosts 4 Security PHP Manual 5 Prev Chapter 3 Configuration 6 Next Security PHP is a powerful language and the interpreter whether included in a web server as a module or executed as a separate CGI binary is able to access files execute commands and open network connections on the server These properties make anything run on a web server insecure by default PHP is designed specifically to be a more secure language for writing CGI programs than Perl or C and with correct selection of compile time and runtime configuration options it gives you exactly the combination of freedom and security you need As there are many different ways of utilizing PHP there are many configuration options controlling its behaviour A large selection of options guarantees you can use PHP for a lot of purposes but it also means there are combinations of these options and server configurations that result in an insecure setup This chapter explains the different configuration option combinations and the situations they can be safely used CGI binary Possible attacks Using PHP as a CGI binary is an option for setups that for some reason do not wish to integrate PHP as a module into server software like Apache or will use PHP with different kinds of CGI wrappers to create safe chroot and setuid environments for scripts This setup usually involves installing executable PHP binary to the web server cgi bin directory CERT advisory 7 CA 96 11 recommends agains placing any interpreters into cgi bin Even if the PHP binary can be used as a standalone interpreter PHP is designed to prevent the attacks this setup makes possible Accessing system files http my host cgi bin php etc passwd The query information in an url after the question mark is passed as command line arguments to the interpreter by the CGI interface Usually interpreters open and execute the file specified as the first argument on the command line When invoked as a CGI binary PHP refuses to interpret the command line arguments Accessing any web document on server http my host cgi bin php secret doc html The path information part of the url after the PHP binary name secret doc html is conventionally used to specify the name of the file to be opened and interpreted by the CGI program Usually some web server configuration directives Apache Action are used to redirect requests to documents like http my host secret script php3 to the PHP interpreter With this setup the web server first checks the access permissions to the directory secret and after that creates the redirected request http my host cgi bin php secret script php3 Unfortunately if the request is originally given in this form no access checks are made by web server for file secret script php3 but only for the cgi bin php file This way any user able to access cgi bin php is able to access any protected document on the web server In PHP compile time configuration option 8 enable force cgi redirect and runtime configuration directives 9 doc root and 10 user dir can be used to prevent this attack if the server document tree has any directories with access restrictions See below for full explanation of different combinations Case 1 only public files served If your server does not have any content that is not restricted by password or ip based access control there is no need for these configuration options If your web server does not allow you to do redirects or the server does not have a way to communicate with the PHP binary that the request is a safely redirected request you can specify the option 11 disable force cgi redirect to the configure script You still have to make sure your PHP scripts do not rely on one or another way of calling the script neither by directly http my host cgi bin php dir script php3 nor by redirection http my host dir script php3 Redirection can be configured for example in apache by directives AddHandler and Action see below Case 2 using enable force cgi redirect This compile time option prevents anyone from calling PHP directly with a url like http my host cgi bin php secretdir script php3 Instead PHP will only parse in this mode if it has gone through a web server redirect rule Usually the redirection in the Apache configuration is done with the following directives Action php3 script cgi bin php AddHandler php3 script php3 This option has only been tested with the Apache web server and relies on Apache to set the non standard CGI environment variable REDIRECT STATUS on redirected requests If your web server does not support any way of telling if the request is direct or redirected you cannot use this option and you must use one of the other ways of running the CGI version documented here Case 3 setting doc root or user dir To include active content like scripts and executables in the web server document directories is sometimes consider an insecure practice If for some configuration mistake the scripts are not executed but displayed as usual HTML documents this may result in leakage of intellectual property or security information like passwords Therefore many sysadmins will prefer setting up another directory structure for scripts that is only accessible through the PHP CGI and therefore always interpreted and not displayed as such Also if the method for making sure the requests are not redirected as described in the previous section is not available it is necessary to set up a script doc root that is different from web document root You can set the PHP script document root by the configuration directive 12 doc root in the 13 php3 ini file or you can set the environment variable PHP DOCUMENT ROOT If it is set the CGI version of PHP will always construct the file name to open with this doc root and the path information in the request so you can be sure no script is executed outside this directory except for user dir below Another option usable here is 14 user dir When user dir is unset only thing controlling the opened file name is doc root Opening an url like http my host user doc php3 does not result in opening a file under users home directory but a file called user doc php3 under doc root yes a directory name starting with a tilde If user dir is set to for example public php a request like http my host user doc php3 will open a file called doc php3 under the directory named public php under the home directory of the user If the home of the user is home user the file executed is home user public php doc php3 user dir expansion happens regardless of the doc root setting so you can control the document root and user directory access separately Case 4 PHP parser outside of web tree A very secure option is to put the PHP parser binary somewhere outside of the web tree of files In usr local bin for example The only real downside to this option is that you will now have to put a line similar to usr local bin php as the first line of any file containing PHP tags You will also need to make the file executable That is treat it exactly as you would treat any other CGI script written in Perl or sh or any other common scripting language which uses the shell escape mechanism for launching itself To get PHP to handle PATH INFO and PATH TRANSLATED information correctly with this setup the php parser should be compiled with the 15 enable discard path configure option Apache module When PHP is used as an Apache module it inherits Apache s user permissions typically those of the nobody user 16 Prev 17 Home 18 Next Virtual hosts 19 Up Security 1 PHP Manual 2 Getting Started 3 Security 4 Apache module PHP Manual 5 Prev 6 Next Chapter 4 Security Table of Contents 7 CGI binary 8 Apache module PHP is a powerful language and the interpreter whether included in a web server as a module or executed as a separate CGI binary is able to access files execute commands and open network connections on the server These properties make anything run on a web server insecure by default PHP is designed specifically to be a more secure language for writing CGI programs than Perl or C and with correct selection of compile time and runtime configuration options it gives you exactly the combination of freedom and security you need As there are many different ways of utilizing PHP there are many configuration options controlling its behaviour A large selection of options guarantees you can use PHP for a lot of purposes but it also means there are combinations of these options and server configurations that result in an insecure setup This chapter explains the different configuration option combinations and the situations they can be safely used CGI binary Possible attacks Using PHP as a CGI binary is an option for setups that for some reason do not wish to integrate PHP as a module into server software like Apache or will use PHP with different kinds of CGI wrappers to create safe chroot and setuid environments for scripts This setup usually involves installing executable PHP binary to the web server cgi bin directory CERT advisory 9 CA 96 11 recommends agains placing any interpreters into cgi bin Even if the PHP binary can be used as a standalone interpreter PHP is designed to prevent the attacks this setup makes possible Accessing system files http my host cgi bin php etc passwd The query information in an url after the question mark is passed as command line arguments to the interpreter by the CGI interface Usually interpreters open and execute the file specified as the first argument on the command line When invoked as a CGI binary PHP refuses to interpret the command line arguments Accessing any web document on server http my host cgi bin php secret doc html The path information part of the url after the PHP binary name secret doc html is conventionally used to specify the name of the file to be opened and interpreted by the CGI program Usually some web server configuration directives Apache Action are used to redirect requests to documents like http my host secret script php3 to the PHP interpreter With this setup the web server first checks the access permissions to the directory secret and after that creates the redirected request http my host cgi bin php secret script php3 Unfortunately if the request is originally given in this form no access checks are made by web server for file secret script php3 but only for the cgi bin php file This way any user able to access cgi bin php is able to access any protected document on the web server In PHP compile time configuration option 10 enable force cgi redirect and runtime configuration directives 11 doc root and 12 user dir can be used to prevent this attack if the server document tree has any directories with access restrictions See below for full explanation of different combinations Case 1 only public files served If your server does not have any content that is not restricted by password or ip based access control there is no need for these configuration options If your web server does not allow you to do redirects or the server does not have a way to communicate with the PHP binary that the request is a safely redirected request you can specify the option 13 disable force cgi redirect to the configure script You still have to make sure your PHP scripts do not rely on one or another way of calling the script neither by directly http my host cgi bin php dir script php3 nor by redirection http my host dir script php3 Redirection can be configured in Apache by using AddHandler and Action directives see below Case 2 using enable force cgi redirect This compile time option prevents anyone from calling PHP directly with a url like http my host cgi bin php secretdir script php3 Instead PHP will only parse in this mode if it has gone through a web server redirect rule Usually the redirection in the Apache configuration is done with the following directives Action php3 script cgi bin php AddHandler php3 script php3 This option has only been tested with the Apache web server and relies on Apache to set the non standard CGI environment variable REDIRECT STATUS on redirected requests If your web server does not support any way of telling if the request is direct or redirected you cannot use this option and you must use one of the other ways of running the CGI version documented here Case 3 setting doc root or user dir To include active content like scripts and executables in the web server document directories is sometimes consider an insecure practice If for some configuration mistake the scripts are not executed but displayed as usual HTML documents this may result in leakage of intellectual property or security information like passwords Therefore many sysadmins will prefer setting up another directory structure for scripts that is only accessible through the PHP CGI and therefore always interpreted and not displayed as such Also if the method for making sure the requests are not redirected as described in the previous section is not available it is necessary to set up a script doc root that is different from web document root You can set the PHP script document root by the configuration directive 14 doc root in the 15 php3 ini file or you can set the environment variable PHP DOCUMENT ROOT If it is set the CGI version of PHP will always construct the file name to open with this doc root and the path information in the request so you can be sure no script is executed outside this directory except for user dir below Another option usable here is 16 user dir When user dir is unset only thing controlling the opened file name is doc root Opening an url like http my host user doc php3 does not result in opening a file under users home directory but a file called user doc php3 under doc root yes a directory name starting with a tilde If user dir is set to for example public php a request like http my host user doc php3 will open a file called doc php3 under the directory named public php under the home directory of the user If the home of the user is home user the file executed is home user public php doc php3 user dir expansion happens regardless of the doc root setting so you can control the document root and user directory access separately Case 4 PHP parser outside of web tree A very secure option is to put the PHP parser binary somewhere outside of the web tree of files In usr local bin for example The only real downside to this option is that you will now have to put a line similar to usr local bin php as the first line of any file containing PHP tags You will also need to make the file executable That is treat it exactly as you would treat any other CGI script written in Perl or sh or any other common scripting language which uses the shell escape mechanism for launching itself To get PHP to handle PATH INFO and PATH TRANSLATED information correctly with this setup the php parser should be compiled with the 17 enable discard path configure option 18 Prev 19 Home 20 Next Security 21 Up Apache module 1 PHP Manual 2 Security 3 Security 4 Language Reference PHP Manual 5 Prev Chapter 4 Security 6 Next Apache module When PHP is used as an Apache module it inherits Apache s user permissions typically those of the nobody user 7 Prev 8 Home 9 Next Security 10 Up Language Reference 1 PHP Manual 2 Apache module 3 Basic syntax PHP Manual 4 Prev 5 Next II Language Reference Table of Contents 5 6 Basic syntax 6 7 Types 7 8 Variables 8 9 Constants 9 10 Expressions 10 11 Operators 11 12 Control Structures 12 13 Functions 13 14 Classes and Objects 15 Prev 16 Home 17 Next Apache module Basic syntax 1 PHP Manual 2 Language Reference 3 Language Reference 4 Instruction separation PHP Manual 5 Prev 6 Next Chapter 5 Basic syntax Table of Contents 7 Escaping from HTML 8 Instruction separation 9 Comments Escaping from HTML There are four ways of escaping from HTML and entering PHP code mode Example 5 1 Ways of escaping from HTML 1 echo this is the simplest an SGML processing instruction n 2 php echo if you want to serve XML documents do like this n 3 script language php echo some editors like FrontPage don t like processing instructions script 4 echo You may optionally use ASP style tags variable This is a shortcut for echo The first way is only available if short tags have been enabled either by calling short tags they are configured on using the short tags run time configuration setting or they are enabled using the enable short tags compile time configuration setting The fourth way is only available if ASP style tags have been enabled using either the asp tags configuration setting or the enable asp tags compile time configuration setting Note Support for ASP style tags was added in 3 0 4 The closing bracket for the block will include the immediately trailing newline if one is present 10 Prev 11 Home 12 Next Language Reference 13 Up Instruction separation 1 PHP Manual 2 Basic syntax 3 Basic syntax 4 Comments PHP Manual 5 Prev Chapter 5 Basic syntax 6 Next Instruction separation Instructions are separated the same as in C or perl terminate each statement with a semicolon The closing tag also implies the end of the statement so the following are equivalent php echo This is a test php echo This is a test 7 Prev 8 Home 9 Next Basic syntax 10 Up Comments 1 PHP Manual 2 Basic syntax 3 Instruction separation 4 Types PHP Manual 5 Prev Chapter 5 Basic syntax 6 Next Comments PHP supports C C and Unix shell style comments For example php echo This is a test This is a one line c style comment This is a multi line comment yet another line of comment echo This is yet another test echo One Final Test This is shell style style comment The one line comment styles actually only comment to the end of the line or the current block of PHP code whichever comes first h1 This is an echo simple example h1 p The header above will say This is an example You should be careful not to nest C style comments which can happen when commenting out large blocks php echo This is a test This comment will cause a problem 7 Prev 8 Home 9 Next Instruction separation 10 Up Types 1 PHP Manual 2 Language Reference 3 Comments 4 Floating point numbers PHP Manual 5 Prev 6 Next Chapter 6 Types Table of Contents 7 Integers 8 Floating point numbers 9 Strings 10 Arrays 11 Objects 12 Type juggling PHP supports the following types 13 integer 14 floating point numbers 15 string 16 array 17 object The type of a variable is usually not set by the programmer rather it is decided at runtime by PHP depending on the context in which that variable is used If you would like to force a variable to be converted to a certain type you may either 18 cast the variable or use the 19 settype function on it Note that a variable may behave in different manners in certain situations depending on what type it is a the time For more information see the section on 20 Type Juggling Integers Integers can be specified using any of the following syntaxes a 1234 decimal number a 123 a negative number a 0123 octal number equivalent to 83 decimal a 0x12 hexadecimal number equivalent to 18 decimal 21 Prev 22 Home 23 Next Comments 24 Up Floating point numbers 1 PHP Manual 2 Types 3 Types 4 Strings PHP Manual 5 Prev Chapter 6 Types 6 Next Floating point numbers Floating point numbers doubles can be specified using any of the following syntaxes a 1 234 a 1 2e3 7 Prev 8 Home 9 Next Types 10 Up Strings 1 PHP Manual 2 Types 3 Floating point numbers 4 Arrays PHP Manual 5 Prev Chapter 6 Types 6 Next Strings Strings can be specified using one of two sets of delimiters If the string is enclosed in double quotes variables within the string will be expanded subject to some parsing limitations As in C and Perl the backslash character can be used in specifying special characters Table 6 1 Escaped characters sequence meaning n newline r carriage t horizontal tab backslash dollar sign double quote You can escape any other character but a warning will be issued at the highest warning level The second way to delimit a string uses the single quote character which does not do any variable expansion or backslash processing except for and so you can insert backslashes and single quotes in a singly quoted string String conversion When a string is evaluated as a numeric value the resulting value and type are determined as follows The string will evaluate as a double if it contains any of the characters e or E Otherwise it will evaluate as an integer The value is given by the initial portion of the string If the string starts with valid numeric data this will be the value used Otherwise the value will be 0 zero Valid numeric data is an optional sign followed by one or more digits optionally containing a decimal point followed by an optional exponent The exponent is an e or E followed by one or more digits When the first expression is a string the type of the variable will depend on the second expression foo 1 10 5 foo is double 11 5 foo 1 1 3e3 foo is double 1299 foo 1 bob 1 3e3 foo is integer 1 foo 1 bob3 foo is integer 1 foo 1 10 Small Pigs foo is integer 11 foo 1 10 Little Piggies foo is integer 11 foo 10 0 pigs 1 foo is integer 11 foo 10 0 pigs 1 0 foo is double 11 For more information on this conversion see the Unix manual page for strtod 3 7 Prev 8 Home 9 Next Floating point numbers 10 Up Arrays 1 PHP Manual 2 Types 3 Strings 4 Objects PHP Manual 5 Prev Chapter 6 Types 6 Next Arrays Arrays actually act like both hash tables associative arrays and indexed arrays vectors Single Dimension Arrays PHP supports both scalar and associative arrays In fact there is no difference between the two You can create an array using the 7 list or 8 array functions or you can explicitly set each array element value a 0 abc a 1 def b foo 13 You can also create an array by simply adding values to the array a hello a 2 hello a world a 3 world Arrays may be sorted using the 9 asort 10 arsort 11 ksort 12 rsort 13 sort 14 uasort 15 usort and 16 uksort functions depending on the type of sort you want You can count the number of items in an array using the 17 count function You can traverse an array using 18 next and 19 prev functions Another common way to traverse an array is to use the 20 each function Multi Dimensional Arrays Multi dimensional arrays are actually pretty simple For each dimension of the array you add another key value to the end a 1 f one dimensional examples a foo f a 1 0 f two dimensional a foo 2 f you can mix numeric and associative indices a 3 bar f you can mix numeric and associative indices a foo 4 bar 0 f four dimensional You can fill up multi dimensional arrays in many ways but the trickiest one to understand is how to use the 21 array command for associative arrays These two snippets of code fill up the one dimensional array in the same way Example 1 a color red a taste sweet a shape round a name apple a 3 4 Example 2 a array color red taste sweet shape round name apple 3 4 The 22 array function can be nested for multi dimensional arrays a array apple array color red taste sweet shape round orange array color orange taste sweet shape round banana array color yellow taste paste y shape banana shaped echo a apple taste will output sweet 23 Prev 24 Home 25 Next Strings 26 Up Objects 1 PHP Manual 2 Types 3 Arrays 4 Type juggling PHP Manual 5 Prev Chapter 6 Types 6 Next Objects Object Initialization To initialize an object you use the new statement to instantiate the object to a variable class foo function do foo echo Doing foo bar new foo bar do foo 7 Prev 8 Home 9 Next Arrays 10 Up Type juggling 1 PHP Manual 2 Types 3 Objects 4 Variables PHP Manual 5 Prev Chapter 6 Types 6 Next Type juggling PHP does not require or support explicit type definition in variable declaration a variable s type is determined by the context in which that variable is used That is to say if you assign a string value to variable var var becomes a string If you then assign an integer value to var it becomes an integer An example of PHP s automatic type conversion is the addition operator If any of the operands is a double then all operands are evaluated as doubles and the result will be a double Otherwise the operands will be interpreted as integers and the result will also be an integer Note that this does NOT change the types of the operands themselves the only change is in how the operands are evaluated foo 0 foo is string ASCII 48 foo foo is the string 1 ASCII 49 foo 1 foo is now an integer 2 foo foo 1 3 foo is now a double 3 3 foo 5 10 Little Piggies foo is integer 15 foo 5 10 Small Pigs foo is integer 15 If the last two examples above seem odd see 7 String conversion If you wish to force a variable to be evaluated as a certain type see the section on 8 Type casting If you wish to change the type of a variable see 9 settype Type casting Type casting in PHP works much as it does in C the name of the desired type is written in parentheses before the variable which is to be cast foo 10 foo is an integer bar double foo bar is a double The casts allowed are int integer cast to integer real double float cast to double string cast to string array cast to array object cast to object Note that tabs and spaces are allowed inside the parentheses so the following are functionally equivalent foo int bar foo int bar 10 Prev 11 Home 12 Next Objects 13 Up Variables 1 PHP Manual 2 Language Reference 3 Type juggling 4 Variable variables PHP Manual 5 Prev 6 Next Chapter 7 Variables Table of Contents 7 Variable scope 8 Variable variables 9 Variables from outside PHP Variable scope The scope of a variable is the context within which it is defined For the most part all PHP variables only have a single scope However within user defined functions a local function scope is introduced Any variable used inside a function is by default limited to the local function scope For example a 1 global scope Function Test echo a reference to local scope variable Test This script will not produce any output because the echo statement refers to a local version of the a variable and it has not been assigned a value within this scope You may notice that this is a little bit different from the C language in that global variables in C are automatically available to functions unless specifically overridden by a local definition This can cause some problems in that people may inadvertently change a global variable In PHP global variables must be declared global inside a function if they are going to be used in that function An example a 1 b 2 Function Sum global a b b a b Sum echo b The above script will output 3 By declaring a and b global within the function all references to either variable will refer to the global version There is no limit to the number of global variables that can be manipulated by a function A second way to access variables from the global scope is to use the special PHP defined GLOBALS array The previous example can be rewritten as a 1 b 2 Function Sum GLOBALS b GLOBALS a GLOBALS b Sum echo b The GLOBALS array is an associative array with the name of the global variable being the key and the contents of that variable being the value of the array element Another important feature of variable scoping is the static variable A static variable exists only in a local function scope but it does not lose its value when program execution leaves this scope Consider the following example Function Test a 0 echo a a This function is quite useless since every time it is called it sets a to 0 and prints 0 The a which increments the variable serves no purpose since as soon as the function exits the a variable disappears To make a useful counting function which will not lose track of the current count the a variable is declared static Function Test static a 0 echo a a Now every time the Test function is called it will print the value of a and increment it Static variables are also essential when functions are called recursively A recursive function is one which calls itself Care must be taken when writing a recursive function because it is possible to make it recurse indefinitely You must make sure you have an adequate way of terminating the recursion The following simple function recursively counts to 10 Function Test static count 0 count echo count if count 10 Test count 10 Prev 11 Home 12 Next Type juggling 13 Up Variable variables 1 PHP Manual 2 Variables 3 Variables 4 Variables from outside PHP PHP Manual 5 Prev Chapter 7 Variables 6 Next Variable variables Sometimes it is convenient to be able to have variable variable names That is a variable name which can be set and used dynamically A normal variable is set with a statement such as a hello A variable variable takes the value of a variable and treats that as the name of a variable In the above example hello can be used as the name of a variable by using two dollar signs ie a world At this point two variables have been defined and stored in the PHP symbol tree a with contents hello and hello with contents world Therefore this statement echo a a produces the exact same output as echo a hello ie they both produce hello world In order to use variable variables with arrays you have to resolve an ambiguity problem That is if you write a 1 then the parser needs to know if you meant to use a 1 as a variable or if you wanted a as the variable and then the 1 index from that variable The syntax for resolving this ambiguity is a 1 for the first case and a 1 for the second 7 Prev 8 Home 9 Next Variables 10 Up Variables from outside PHP 1 PHP Manual 2 Variables 3 Variable variables 4 Constants PHP Manual 5 Prev Chapter 7 Variables 6 Next Variables from outside PHP HTML Forms GET and POST When a form is submitted to a PHP script any variables from that form will be automatically made available to the script by PHP For instance consider the following form Example 7 1 Simple form variable form action foo php3 method post Name input type text name name br input type submit form When submitted PHP will create the variable name which will will contain whatever what entered into the Name field on the form PHP also understands arrays in the context of form variables but only in one dimension You may for example group related variables together or use this feature to retrieve values from a multiple select input Example 7 2 More complex form variables form action array php method post Name input type text name personal name br Email input type text name personal email br Beer br select multiple name beer option value warthog Warthog option value guinness Guinness select input type submit form If PHP s track vars feature is turned on either by the 7 track vars configuration setting or the php track vars directive then variables submitted via the POST or GET methods will also be found in the global associative arrays HTTP POST VARS and HTTP GET VARS as appropriate IMAGE SUBMIT variable names When submitting a form it is possible to use an image instead of the standard submit button with a tag like input type image src image gif name sub When the user clicks somewhere on the image the accompanying form will be transmitted to the server with two additional variables sub x and sub y These contain the coordinates of the user click within the image The experienced may note that the actual variable names sent by the browser contains a period rather than an underscore but PHP converts the period to an underscore automatically HTTP Cookies PHP transparently supports HTTP cookies as defined by 8 Netscape s Spec Cookies are a mechanism for storing data in the remote browser and thus tracking or identifying return users You can set cookies using the 9 SetCookie function Cookies are part of the HTTP header so the SetCookie function must be called before any output is sent to the browser This is the same restriction as for the 10 Header function Any cookies sent to you from the client will automatically be turned into a PHP variable just like GET and POST method data If you wish to assign multiple values to a single cookie just add to the cookie name For example SetCookie MyCookie Testing time 3600 Note that a cookie will replace a previous cookie by the same name in your browser unless the path or domain is different So for a shopping cart application you may want to keep a counter and pass this along i e Example 7 3 SetCookie Example Count SetCookie Count Count time 3600 SetCookie Cart Count item time 3600 Environment variables PHP automatically makes environment variables available as normal PHP variables echo HOME Shows the HOME environment variable if set Since information coming in via GET POST and Cookie mechanisms also automatically create PHP variables it is sometimes best to explicitly read a variable from the environment in order to make sure that you are getting the right version The 11 getenv function can be used for this You can also set an environment variable with the 12 putenv function Determining variable types Because PHP determines the types of variables and converts them generally as needed it is not always obvious what type a given variable is at any one time PHP includes several functions which find out what type a variable is They are 13 gettype 14 is long 15 is double 16 is string 17 is array and 18 is object 19 Prev 20 Home 21 Next Variable variables 22 Up Constants 1 PHP Manual 2 Language Reference 3 Variables from outside PHP 4 Expressions PHP Manual 5 Prev 6 Next Chapter 8 Constants PHP defines several constants and provides a mechanism for defining more at run time Constants are much like variables save for the two facts that constants must be defined using the define function and that they cannot later be redefined to another value The predefined constants always available are FILE The name of the script file presently being parsed If used within a file which has been included or required then the name of the included file is given and not the name of the parent file LINE The number of the line within the current script file which is being parsed If used within a file which has been included or required then the position within the included file is given PHP VERSION The string representation of the version of the PHP parser presently in use e g 3 0 8 dev PHP OS The name of the operating system on which the PHP parser is executing e g Linux TRUE A true value FALSE A false value E ERROR Denotes an error other than a parsing error from which recovery is not possible E WARNING Denotes a condition where PHP knows something is wrong but will continue anyway these can be caught by the script itself An example would be an invalid regexp in 7 ereg E PARSE The parser choked on invalid syntax in the script file Recovery is not possible E NOTICE Something happened which may or may not be an error Execution continues Examples include using an unquoted string as a hash index or accessing a variable which has not been set The E constants are typically used with the 8 error reporting function for setting the error reporting level You can define additional constants using the define function Note that these are constants not C style macros only valid scalar data may be represented by a constant Example 8 1 Defining Constants php define CONSTANT Hello world echo CONSTANT outputs Hello world Example 8 2 Using FILE and LINE php function report error file line message echo An error occured in file on line line message report error FILE LINE Something went wrong 9 Prev 10 Home 11 Next Variables from outside PHP 12 Up Expressions 1 PHP Manual 2 Language Reference 3 Constants 4 Operators PHP Manual 5 Prev 6 Next Chapter 9 Expressions Expressions are the most important building stones of PHP In PHP almost anything you write is an expression The simplest yet most accurate way to define an expression is anything that has a value The most basic forms of expressions are constants and variables When you type a 5 you re assigning 5 into a 5 obviously has the value 5 or in other words 5 is an expression with the value of 5 in this case 5 is an integer constant After this assignment you d expect a s value to be 5 as well so if you wrote b a you d expect it to behave just as if you wrote b 5 In other words a is an expression with the value of 5 as well If everything works right this is exactly what will happen Slightly more complex examples for expressions are functions For instance consider the following function function foo return 5 Assuming you re familiar with the concept of functions if you re not take a look at the chapter about functions you d assume that typing c foo is essentially just like writing c 5 and you re right Functions are expressions with the value of their return value Since foo returns 5 the value of the expression foo is 5 Usually functions don t just return a static value but compute something Of course values in PHP don t have to be integers and very often they aren t PHP supports three scalar value types integer values floating point values and string values scalar values are values that you can t break into smaller pieces unlike arrays for instance PHP also supports two composite non scalar types arrays and objects Each of these value types can be assigned into variables or returned from functions So far users of PHP FI 2 shouldn t feel any change However PHP takes expressions much further in the same way many other languages do PHP is an expression oriented language in the sense that almost everything is an expression Consider the example we ve already dealt with a 5 It s easy to see that there are two values involved here the value of the integer constant 5 and the value of a which is being updated to 5 as well But the truth is that there s one additional value involved here and that s the value of the assignment itself The assignment itself evaluates to the assigned value in this case 5 In practice it means that a 5 regardless of what it does is an expression with the value 5 Thus writing something like b a 5 is like writing a 5 b 5 a semicolon marks the end of a statement Since assignments are parsed in a right to left order you can also write b a 5 Another good example of expression orientation is pre and post increment and decrement Users of PHP FI 2 and many other languages may be familiar with the notation of variable and variable These are increment and decrement operators In PHP FI 2 the statement a has no value is not an expression and thus you can t assign it or use it in any way PHP enhances the increment decrement capabilities by making these expressions as well like in C In PHP like in C there are two types of increment pre increment and post increment Both pre increment and post increment essentially increment the variable and the effect on the variable is idential The difference is with the value of the increment expression Pre increment which is written variable evaluates to the incremented value PHP increments the variable before reading its value thus the name pre increment Post increment which is written variable evaluates to the original value of variable before it was incremented PHP increments the variable after reading its value thus the name post increment A very common type of expressions are comparison expressions These expressions evaluate to either 0 or 1 meaning FALSE or TRUE respectively PHP supports bigger than bigger than or equal to equal smaller than and smaller than or equal to These expressions are most commonly used inside conditional execution such as IF statements The last example of expressions we ll deal with here is combined operator assignment expressions You already know that if you want to increment a by 1 you can simply write a or a But what if you want to add more than one to it for instance 3 You could write a multiple times but this is obviously not a very efficient or comfortable way A much more common practice is to write a a 3 a 3 evaluates to the value of a plus 3 and is assigned back into a which results in incrementing a by 3 In PHP as in several other languages like C you can write this in a shorter way which with time would become clearer and quicker to understand as well Adding 3 to the current value of a can be written a 3 This means exactly take the value of a add 3 to it and assign it back into a In addition to being shorter and clearer this also results in faster execution The value of a 3 like the value of a regular assignment is the assigned value Notice that it is NOT 3 but the combined value of a plus 3 this is the value that s assigned into a Any two place operator can be used in this operator assignment mode for example a 5 subtract 5 from the value of a b 7 multiply the value of b by 7 etc There is one more expression that may seem odd if you haven t seen it in other languages the ternary conditional operator first second third If the value of the first subexpression is true non zero then it the second subexpression is evaluated and that is the result of the conditional expression Otherwise the third subexpression is evaluated and that is the value The following example should help you understand pre and post increment and expressions in general a bit better function double i return i 2 b a 5 assign the value five into the variable a and b c a post increment assign original value of a 5 to c e d b pre increment assign the incremented value of b 6 to d and e at this point both d and e are equal to 6 f double d assign twice the value of d before the increment 2 6 12 to f g double e assign twice the value of e after the increment 2 7 14 to g h g 10 first g is incremented by 10 and ends with the value of 24 the value of the assignment 24 is then assigned into h and h ends with the value of 24 as well In the beginning of the chapter we said that we ll be describing the various statement types and as promised expressions can be statements However not every expression is a statement In this case a statement has the form of expr that is an expression followed by a semicolon In b a 5 a 5 is a valid expression but it s not a statement by itself b a 5 however is a valid statement One last thing worth mentioning is the truth value of expressions In many events mainly in conditional execution and loops you re not interested in the specific value of the expression but only care about whether it means TRUE or FALSE PHP doesn t have a dedicated boolean type The truth value of expressions in PHP is calculated in a similar way to perl Any numeric non zero numeric value is TRUE zero is FALSE Be sure to note that negative values are non zero and are thus considered TRUE The empty string and the string 0 are FALSE all other strings are TRUE With non scalar values arrays and objects if the value contains no elements it s considered FALSE otherwise it s considered TRUE PHP provides a full and powerful implementation of expressions and documenting it entirely goes beyond the scope of this manual The above examples should give you a good idea about what expressions are and how you can construct useful expressions Throughout the rest of this manual we ll write expr to indicate any valid PHP expression 7 Prev 8 Home 9 Next Constants 10 Up Operators 1 PHP Manual 2 Language Reference 3 Expressions 4 String Operators PHP Manual 5 Prev 6 Next Chapter 10 Operators Table of Contents 7 Arithmetic Operators 8 String Operators 9 Assignment Operators 10 Bitwise Operators 11 Logical Operators 12 Comparison Operators 13 Operator Precedence Arithmetic Operators Remember basic arithmetic from school These work just like those Table 10 1 Arithmetic Operators example name result a b Addition Sum of a and b a b Subtraction Remainder of b subtracted from a a b Multiplication Product of a and b a b Division Dividend of a and b a b Modulus Remainder of a divided by b 14 Prev 15 Home 16 Next Expressions 17 Up String Operators 1 PHP Manual 2 Operators 3 Operators 4 Assignment Operators PHP Manual 5 Prev Chapter 10 Operators 6 Next String Operators There is only really one string operator the concatenation operator a Hello b a World now b Hello World 7 Prev 8 Home 9 Next Operators 10 Up Assignment Operators 1 PHP Manual 2 Operators 3 String Operators 4 Bitwise Operators PHP Manual 5 Prev Chapter 10 Operators 6 Next Assignment Operators The basic assignment operator is Your first inclination might be to think of this as equal to Don t It really means that the the left operand gets set to the value of the expression on the rights that is gets set to The value of an assignment expression is the value assigned That is the value of a 3 is 3 This allows you to do some tricky things a b 4 5 a is equal to 9 now and b has been set to 4 In addition to the basic assignment operator there are combined operators for all of the binary arithmetic and string operators that allow you to use a value in an expression and then set its value to the result of that expression For example a 3 a 5 sets a to 8 as if we had said a a 5 b Hello b There sets b to Hello There just like b b There 7 Prev 8 Home 9 Next String Operators 10 Up Bitwise Operators 1 PHP Manual 2 Operators 3 Assignment Operators 4 Logical Operators PHP Manual 5 Prev Chapter 10 Operators 6 Next Bitwise Operators Bitwise operators allow you to turn specific bits within an integer on or off Table 10 2 Bitwise Operators example name result a b And Bits that are set in both a and b are set a b Or Bits that are set in either a or b are set a Not Bits that are set in a are not set and vice versa a b Shift left Shift the bits of a b steps to the left each step means multiply by two a b Shift right Shift the bits of a b steps to the right each step means divide by two 7 Prev 8 Home 9 Next Assignment Operators 10 Up Logical Operators 1 PHP Manual 2 Operators 3 Bitwise Operators 4 Comparison Operators PHP Manual 5 Prev Chapter 10 Operators 6 Next Logical Operators Table 10 3 Logical Operators example name result a and b And True of both a and b are true a or b Or True if either a or b is true a xor b Or True if either a or b is true but not both a Not True if a is not true a b And True of both a and b are true a b Or True if either a or b is true The reason for the two different variations of and and or operators is that they operate at different precedences See below 7 Prev 8 Home 9 Next Bitwise Operators 10 Up Comparison Operators 1 PHP Manual 2 Operators 3 Logical Operators 4 Operator Precedence PHP Manual 5 Prev Chapter 10 Operators 6 Next Comparison Operators Comparison operators as their name imply allow you to compare two values Table 10 4 Comparson Operators example name result a b Equal True if a is equal to b a b Not equal True if a is not equal to b a b Less than True if a is strictly less than b a b Greater than True if a is strictly greater than b a b Less than or equal to True if a is less than or equal to b a b Greater than or equal to True if a is greater than or equal to b Another conditional operator is the or trinary operator which operates as in C and many other languages expr1 expr2 expr3 This expression returns to expr2 if expr1 evalutes to true and expr3 if expr1 evaluates to false 7 Prev 8 Home 9 Next Logical Operators 10 Up Operator Precedence 1 PHP Manual 2 Operators 3 Comparison Operators 4 Control Structures PHP Manual 5 Prev Chapter 10 Operators 6 Next Operator Precedence The precedence of an operator specifies how tightly it binds two expressions together For example in the expression 1 5 3 the answer is 16 and not 18 because the multiplication operator has a higher precedence than the addition operator The following table lists the precedence of operators with the lowest precedence operators listed first Table 10 5 Operator Precedence Associativity Operators left left or left xor left and right print left left left left left left left non associative non associative left left left right int double string array object right non associative new 7 Prev 8 Home 9 Next Comparison Operators 10 Up Control Structures 1 PHP Manual 2 Language Reference 3 Operator Precedence 4 else PHP Manual 5 Prev 6 Next Chapter 11 Control Structures Table of Contents 7 if 8 else 9 elseif 10 Alternative syntax for if structures if endif 11 while 12 do while 13 for 14 break 15 continue 16 switch 17 require 18 include Any PHP script is built out of a series of statements A statement can be an assignment a function call a loop a conditional statement of even a statement that does nothing an empty statement Statements usually end with a semicolon In addition statements can be grouped into a statement group by encapsulating a group of statements with curly braces A statement group is a statement by itself as well The various statement types are described in this chapter if The if construct is one of the most important features of many languages PHP included It allows for conditional execution of code fragments PHP features an if structure that is similar to that of C if expr statement As described in the section about expressions expr is evaluated to its truth value If expr evaluates to TRUE PHP will execute statement and if it evaluates to FALSE it ll ignore it The following example would display a is bigger than b if a is bigger than b if a b print a is bigger than b Often you d want to have more than one statement to be executed conditionally Of course there s no need to wrap each statement with an if clause Instead you can group several statements into a statement group For example this code would display a is bigger than b if a is bigger than b and would then assign the value of a into b if a b print a is bigger than b b a If statements can be nested indefinitely within other if statements which provides you with complete flexibility for conditional execution of the various parts of your program 19 Prev 20 Home 21 Next Operator Precedence 22 Up else 1 PHP Manual 2 Control Structures 3 Control Structures 4 elseif PHP Manual 5 Prev Chapter 11 Control Structures 6 Next else Often you d want to execute a statement if a certain condition is met and a different statement if the condition is not met This is what else is for else extends an if statement to execute a statement in case the expression in the if statement evaluates to FALSE For example the following code would display a is bigger than b if a is bigger than b and a is NOT bigger than b otherwise if a b print a is bigger than b else print a is NOT bigger than b The else statement is only executed if the if expression evaluated to FALSE and if there were any elseif expressions only if they evaluated to FALSE as well see below 7 Prev 8 Home 9 Next Control Structures 10 Up elseif 1 PHP Manual 2 Control Structures 3 else 4 Alternative syntax for if structures if endif PHP Manual 5 Prev Chapter 11 Control Structures 6 Next elseif elseif as its name suggests is a combination of if and else Like else it extends an if statement to execute a different statement in case the original if expression evaluates to FALSE However unlike else it will execute that alternative expression only if the elseif conditional expression evaluates to TRUE For example the following code would display a is bigger than b a equal to b or a is smaller than b if a b print a is bigger than b elseif a b print a is equal to b else print a is smaller than b There may be several elseifs within the same if statement The first elseif expression if any that evaluates to true would be executed In PHP you can also write else if in two words and the behavior would be identical to the one of elseif in a single word The syntactic meaning is slightly different if you re familiar with C this is the same behavior but the bottom line is that both would result in exactly the same behavior The elseif statement is only executed if the preceding if expression and any preceding elseif expressions evaluated to FALSE and the current elseif expression evaluated to TRUE 7 Prev 8 Home 9 Next else 10 Up Alternative syntax for if structures if endif 1 PHP Manual 2 Control Structures 3 elseif 4 while PHP Manual 5 Prev Chapter 11 Control Structures 6 Next Alternative syntax for if structures if endif PHP offers a different way to group statements within an if statement This is most commonly used when you nest HTML blocks inside if statements but can be used anywhere Instead of using curly braces if expr should be followed by a colon the list of one or more statements and end with endif Consider the following example php if a 5 A 5 php endif In the above example the HTML block A 5 is nested within an if statement written in the alternative syntax The HTML block would be displayed only if a is equal to 5 The alternative syntax applies to else and elseif as well The following is an if structure with elseif and else in the alternative format if a 5 print a equals 5 print elseif a 6 print a equals 6 print else print a is neither 5 nor 6 endif 7 Prev 8 Home 9 Next elseif 10 Up while 1 PHP Manual 2 Control Structures 3 Alternative syntax for if structures if endif 4 do while PHP Manual 5 Prev Chapter 11 Control Structures 6 Next while while loops are the simplest type of loop in PHP They behave just like their C counterparts The basic form of a while statement is while expr statement The meaning of a while statement is simple It tells PHP to execute the nested statement s repeatedly as long as the while expression evaluates to TRUE The value of the expression is checked each time at the beginning of the loop so even if this value changes during the execution of the nested statement s execution will not stop until the end of the iteration each time PHP runs the statements in the loop is one iteration Sometimes if the while expression evaluates to FALSE from the very beginning the nested statement s won t even be run once Like with the if statement you can group multiple statements within the same while loop by surrounding a group of statements with curly braces or by using the alternate syntax while expr statement endwhile The following examples are identical and both print numbers from 1 to 10 example 1 i 1 while i 10 print i the printed value would be i before the increment post increment example 2 i 1 while i 10 print i i endwhile 7 Prev 8 Home 9 Next Alternative syntax for if structures if endif 10 Up do while 1 PHP Manual 2 Control Structures 3 while 4 for PHP Manual 5 Prev Chapter 11 Control Structures 6 Next do while do while loops are very similar to while loops except the truth expression is checked at the end of each iteration instead of in the beginning The main difference from regular while loops is that the first iteration of a do while loop is guarenteed to run the truth expression is only checked at the end of the iteration whereas it s may not necessarily run with a regular while loop the truth expression is checked at the beginning of each iteration if it evaluates to FALSE right from the beginning the loop execution would end immediately There is just one syntax for do while loops i 0 do print i while i 0 The above loop would run one time exactly since after the first iteration when truth expression is checked it evaluates to FALSE i is not bigger than 0 and the loop execution ends Advanced C users may be familiar with a different usage of the do while loop to allow stopping execution in the middle of code blocks by encapsulating them with do while 0 and using the 7 break statement The following code fragment demonstrates this do if i 5 print i is not big enough break i factor if i minimum limit break print i is ok process i while 0 Don t worry if you don t understand this right away or at all You can code scripts and even powerful scripts without using this feature 8 Prev 9 Home 10 Next while 11 Up for 1 PHP Manual 2 Control Structures 3 do while 4 break PHP Manual 5 Prev Chapter 11 Control Structures 6 Next for for loops are the most complex loops in PHP They behave like their C counterparts The syntax of a for loop is for expr1 expr2 expr3 statement The first expression expr1 is evaluated executed once unconditionally at the beginning of the loop In the beginning of each iteration expr2 is evaluated If it evaluates to TRUE the loop continues and the nested statement s are executed If it evaluates to FALSE the execution of the loop ends At the end of each iteration expr3 is evaluated executed Each of the expressions can be empty expr2 being empty means the loop should be run indefinitely PHP implicitly considers it as TRUE like C This may not be as useless as you might think since often you d want to end the loop using a conditional 7 break statement instead of using the for truth expression Consider the following examples All of them display numbers from 1 to 10 example 1 for i 1 i 10 i print i example 2 for i 1 i if i 10 break print i example 3 i 1 for if i 10 break print i i example 4 for i 1 i 10 print i i Of course the first example appears to be the nicest one or perhaps the fourth but you may find that being able to use empty expressions in for loops comes in handy in many occasions PHP also supports the alternate colon syntax for for loops for expr1 expr2 expr3 statement endfor Other languages have a foreach statement to traverse an array or hash PHP uses the while statement and the 8 list and 9 each functions for this See the documentation for these functions for an example 10 Prev 11 Home 12 Next do while 13 Up break 1 PHP Manual 2 Control Structures 3 for 4 continue PHP Manual 5 Prev Chapter 11 Control Structures 6 Next break break breaks out of the current looping control structures i 0 while i 10 if arr i stop break i 7 Prev 8 Home 9 Next for 10 Up continue 1 PHP Manual 2 Control Structures 3 break 4 switch PHP Manual 5 Prev Chapter 11 Control Structures 6 Next continue continue is used within looping structures to skip the rest of the current loop iteration and continue execution at the beginning of the next iteration while list key value each arr if key 2 skip even members continue do something odd value 7 Prev 8 Home 9 Next break 10 Up switch 1 PHP Manual 2 Control Structures 3 continue 4 require PHP Manual 5 Prev Chapter 11 Control Structures 6 Next switch The switch statement is similar to a series of IF statements on the same expression In many occasions you may want to compare the same variable or expression with many different values and execute a different piece of code depending on which value it equals to This is exactly what the switch statement is for The following two examples are two different ways to write the same thing one using a series of if statements and the other using the switch statement example 1 if i 0 print i equals 0 if i 1 print i equals 1 if i 2 print i equals 2 example 2 switch i case 0 print i equals 0 break case 1 print i equals 1 break case 2 print i equals 2 break It is important to understand how the switch statement is executed in order to avoid messups The switch statement executes line by line actually statement by statement In the beginning no code is executed Only when a case statement is found with a value that matches the value of the switch expression PHP begins to execute the statements PHP continues to execute the statements until the end of the switch block or the first time it sees a break statement If you don t write a break statement at the end of a case s statement list PHP will go on executing the statements of the following case For example example 3 switch i case 0 print i equals 0 case 1 print i equals 1 case 2 print i equals 2 Here if i equals to 0 PHP would execute all of the print statements If i equals to 1 PHP would execute the last two print statements and only if i equals to 2 you d get the expected behavior and only i equals 2 would be displayed So it s important not to forget break statements even though you may want to avoid supplying them on purpose under certain circumstances A special case is the default case This case matches anything that wasn t matched by the other cases For example example 4 switch i case 0 print i equals 0 break case 1 print i equals 1 break case 2 print i equals 2 break default print i is not equal to 0 1 or 2 Another fact worth mentioning is that the case expression may be any expression that evaluates to a scalar type that is integer or floating point numbers and strings Arrays or objects are meaningless in that context 7 Prev 8 Home 9 Next continue 10 Up require 1 PHP Manual 2 Control Structures 3 switch 4 include PHP Manual 5 Prev Chapter 11 Control Structures 6 Next require The require statement replaces itself with the specified file much like the C preprocessor s include works This means that you can t put a require statement inside of a loop structure and expect it to include the contents of a different file on each iteration To do that use an include statement require header inc 7 Prev 8 Home 9 Next switch 10 Up include 1 PHP Manual 2 Control Structures 3 require 4 Functions PHP Manual 5 Prev Chapter 11 Control Structures 6 Next include The include statement includes and evaluates the specified file This happens each time the include statement is encountered so you can use an include statement within a looping structure to include a number of different file files array first inc second inc third inc for i 0 i count files i include files i 7 include differs from 8 require in that the include statement is re evaluated each time it is encountered and only when it is being executed whereas the 9 require statement is replaced by the required file when it is first encountered whether the contents of the file will be evaluated or not for example if it is inside an if statement whose condition evaluated to false Because 10 include is a special language construct you must enclose it within a statement block if it is inside a conditional block This is WRONG and will not work as desired if condition include file else include other This is CORRECT if condition include file else include other When the file is evaluated the parser begins in HTML mode which will output the contents of the file until the first PHP start tag is encountered See also 11 readfile 12 require 13 virtual 14 Prev 15 Home 16 Next require 17 Up Functions 1 PHP Manual 2 Language Reference 3 include 4 Returning values PHP Manual 5 Prev 6 Next Chapter 12 Functions Table of Contents 7 User defined functions 8 Returning values 9 Function arguments 10 old function User defined functions A function may be defined using syntax such as the following function foo arg 1 arg 2 arg n echo Example function n return retval Any valid PHP code may appear inside a function even other functions and 11 class definitions Functions must be defined before they are referenced 12 Prev 13 Home 14 Next include 15 Up Returning values 1 PHP Manual 2 Functions 3 Functions 4 Function arguments PHP Manual 5 Prev Chapter 12 Functions 6 Next Returning values Values are returned by using the optional return statement Any type may be returned including lists and objects function square num return num num echo square 4 outputs 16 You can t return multiple values from a function but similar results can be obtained by returning a list function small numbers return array 0 1 2 list zero one two small numbers 7 Prev 8 Home 9 Next Functions 10 Up Function arguments 1 PHP Manual 2 Functions 3 Returning values 4 old function PHP Manual 5 Prev Chapter 12 Functions 6 Next Function arguments Information may be passed to functions via the argument list which is a comma delimited list of variables and or constants PHP supports passing arguments by value the default 7 passing by reference and 8 default argument values Variable length argument lists are not supported but a similar effect may be obtained by passing arrays function takes array input echo input 0 input 1 input 0 input 1 Making arguments be passed by reference By default function arguments are passed by value so that if you change the value of the argument within the function it does not get changed outside of the function If you wish to allow a function to modify its arguments you must pass them by reference If you want an argument to a function to always be passed by reference you can prepend an ampersand to the argument name in the function definition function add some extra string string and something extra str This is a string add some extra str echo str outputs This is a string and something extra If you wish to pass a variable by reference to a function which does not do this by default you may prepend an ampersand to the argument name in the function call function foo bar bar and something extra str This is a string foo str echo str outputs This is a string foo str echo str outputs This is a string and something extra Default argument values A function may define C style default values for scalar arguments as follows function makecoffee type cappucino return Making a cup of type n echo makecoffee echo makecoffee espresso The output from the above snippet is Making a cup of cappucino Making a cup of espresso The default value must be a constant expression not for example a variable or class member In PHP 4 0 it s also possible to specify unset for default argument This means that the argument will not be set at all if a value is not supplied Note that when using default arguments any defaults should be on the right side of any non default arguments otherwise things will not work as expected Consider the following code snippet function makeyogurt type acidophilus flavour return Making a bowl of type flavour n echo makeyogurt raspberry won t work as expected The output of the above example is Warning Missing argument 2 in call to makeyogurt in usr local etc httpd htdocs php3test functest html on line 41 Making a bowl of raspberry Now compare the above with this function makeyogurt flavour type acidophilus return Making a bowl of type flavour n echo makeyogurt raspberry works as expected The output of this example is Making a bowl of acidophilus raspberry 9 Prev 10 Home 11 Next Returning values 12 Up old function 1 PHP Manual 2 Functions 3 Function arguments 4 Classes and Objects PHP Manual 5 Prev Chapter 12 Functions 6 Next old function The old function statement allows you to declare a function using a syntax identical to PHP FI2 except you must replace function with old function This is a deprecated feature and should only be used by the PHP FI2 PHP3 convertor Warning Functions declared as old function cannot be called from PHP s internal code Among other things this means you can t use them in functions such as 7 usort 8 array walk and 9 register shutdown function You can get around this limitation by writing a wrapper function in normal PHP3 form to call the old function 10 Prev 11 Home 12 Next Function arguments 13 Up Classes and Objects 1 PHP Manual 2 Language Reference 3 old function 4 Features PHP Manual 5 Prev 6 Next Chapter 13 Classes and Objects Table of Contents 7 class class A class is a collection of variables and functions working with these variables A class is defined using the following syntax php class Cart var items Items in our shopping cart Add num articles of artnr to the cart function add item artnr num this items artnr num Take num articles of artnr out of the cart function remove item artnr num if this items artnr num this items artnr num return true else return false This defines a class named Cart that consists of an associative array of articles in the cart and two functions to add and remove items from this cart Classes are types that is they are blueprints for actual variables You have to create a variables of the desired type with the new operator cart new Cart cart add item 10 1 This creates an object cart of the class Cart The function add item of that object is being called to add 1 item of article number 10 to the cart Classes can be extensions of other classes The extended or derived class has all variables and functions of the base class and what you add in the extended definition This is done using the extends keyword class Named Cart extends Cart var owner function set owner name this owner name This defines a class Named Cart that has all variables and functions of Cart plus an additional variable owner and an additional function set owner You create a named cart the usual way and can now set and get the carts owner You can still use normal cart functions on named carts ncart new Named Cart Create a named cart ncart set owner kris Name that cart print ncart owner print the cart owners name ncart add item 10 1 inherited functionality from cart Within functions of a class the variable this means this object You have to use this something to access any variable or function named something within your current object Constructors are functions in a class that are automatically called when you create a new instance of a class A function becomes a constructor when it has the same name as the class class Auto Cart extends Cart function Auto Cart this add item 10 1 This defines a class Auto Cart that is a Cart plus a constructor which initializes the cart with one item of article number 10 each time a new Auto Cart is being made with new Constructors can also take arguments and these arguments can be optional which makes them much more useful class Constructor Cart function Constructor Cart item 10 num 1 this add item item num Shop the same old boring stuff default cart new Constructor Cart Shop for real different cart new Constructor Cart 20 17 Caution For derived classes the constructor of the parent class is not automatically called when the derived class s constructor is called 8 Prev 9 Home 10 Next old function 11 Up Features 1 PHP Manual 2 Classes and Objects 3 Error handling PHP Manual 4 Prev 5 Next III Features Table of Contents 14 6 Error handling 15 7 Creating GIF images 16 8 HTTP authentication with PHP 17 9 Cookies 18 10 Handling file uploads 19 11 Connection handling 20 12 Persistent database connections 13 Prev 14 Home 15 Next Classes and Objects Error handling 1 PHP Manual 2 Features 3 Features 4 Creating GIF images PHP Manual 5 Prev 6 Next Chapter 14 Error handling There are 4 types of errors and warnings in PHP They are 1 Normal Function Errors 2 Normal Warnings 4 Parser Errors 8 Notices warnings you can ignore but which may imply a bug in your code The above 4 numbers are added up to define an error reporting level The default error reporting level is 7 which is 1 2 4 or everything except notices This level can be changed in the php3 ini file with the error reporting directive It can also be set in your Apache httpd conf file with the php3 error reporting directive or lastly it may be set at runtime within a script using the 7 error reporting function All 8 PHP expressions can also be called with the prefix which turns off error reporting for that particular expression If an error occurred during such an expression and the 9 track errors feature is enabled you can find the error message in the global variable php errormsg 10 Prev 11 Home 12 Next Features 13 Up Creating GIF images 1 PHP Manual 2 Features 3 Error handling 4 HTTP authentication with PHP PHP Manual 5 Prev 6 Next Chapter 15 Creating GIF images PHP is not limited to creating just HTML output It can also be used to create GIF image files or even more convenient GIF image streams You will need to compile PHP with the GD library of image functions for this to work Example 15 1 GIF creation with PHP php Header Content type image gif string implode argv im imagecreatefromgif images button1 gif orange ImageColorAllocate im 220 210 60 px imagesx im 7 5 strlen string 2 ImageString im 3 px 9 string orange ImageGif im ImageDestroy im This example would be called from a page with a tag like img src button php3 text The above button php3 script then takes this text string an overlays it on top of a base image which in this case is images button1 gif and outputs the resulting image This is a very convenient way to avoid having to draw new button images every time you want to change the text of a button With this method they are dynamically generated 7 Prev 8 Home 9 Next Error handling 10 Up HTTP authentication with PHP 1 PHP Manual 2 Features 3 Creating GIF images 4 Cookies PHP Manual 5 Prev 6 Next Chapter 16 HTTP authentication with PHP The HTTP Authentication hooks in PHP are only available when it is running as an Apache module and is hence not available in the CGI version In an Apache module PHP script it is possible to use the 7 Header function to send an Authentication Required message to the client browser causing it to pop up a Username Password input window Once the user has filled in a username and a password the URL containing the PHP script will be called again with the variables PHP AUTH USER PHP AUTH PW and PHP AUTH TYPE set to the user name password and authentication type respectively Only Basic authentication is supported at this point See the 8 Header function for more information An example script fragment which would force client authentication on a page would be the following Example 16 1 HTTP Authentication example php if isset PHP AUTH USER Header WWW Authenticate Basic realm My Realm Header HTTP 1 0 401 Unauthorized echo Text to send if user hits Cancel button n exit else echo Hello PHP AUTH USER P echo You entered PHP AUTH PW as your password P Instead of simply printing out the PHP AUTH USER and PHP AUTH PW you would probably want to check the username and password for validity Perhaps by sending a query to a database or by looking up the user in a dbm file Watch out for buggy Internet Explorer browsers out there They seem very picky about the order of the headers Sending the WWW Authenticate header before the HTTP 1 0 401 header seems to do the trick for now In order to prevent someone from writing a script which reveals the password for a page that was authenticated through a traditional external mechanism the PHP AUTH variables will not be set if external authentication is enabled for that particular page In this case the REMOTE USER variable can be used to identify the externally authenticated user Note however that the above does not prevent someone who controls a non authenticated URL from stealing passwords from authenticated URLs on the same server Both Netscape and Internet Explorer will clear the local browser window s authentication cache for the realm upon receiving a server response of 401 This can effectively log out a user forcing them to re enter their username and password Some people use this to time out logins or provide a log out button Example 16 2 HTTP Authentication example forcing a new name password php function authenticate Header WWW authenticate basic realm Test Authentication System Header HTTP 1 0 401 Unauthorized echo You must enter a valid login ID and password to access th is resource n exit if isset PHP AUTH USER SeenBefore 1 strcmp OldAuth PH P AUTH USER authenticate else echo Welcome PHP AUTH USER BR echo Old OldAuth echo FORM ACTION PHP SELF METHOD POST n echo INPUT TYPE HIDDEN NAME SeenBefore VALUE 1 n echo INPUT TYPE HIDDEN NAME OldAuth VALUE PHP AUTH USER n echo INPUT TYPE Submit VALUE Re Authenticate n echo FORM n This behavior is not required by the HTTP Basic authentication standard so you should never depend on this Testing with Lynx has shown that Lynx does not clear the authentication credentials with a 401 server response so pressing back and then forward again will open the resource as long as the credential requirements haven t changed Also note that this does not work using Microsoft s IIS server and the CGI version of PHP due to a limitation of IIS 9 Prev 10 Home 11 Next Creating GIF images 12 Up Cookies 1 PHP Manual 2 Features 3 HTTP authentication with PHP 4 Handling file uploads PHP Manual 5 Prev 6 Next Chapter 17 Cookies PHP transparently supports HTTP cookies Cookies are a mechanism for storing data in the remote browser and thus tracking or identifying return users You can set cookies using the 7 setcookie function Cookies are part of the HTTP header so 8 setcookie must be called before any output is sent to the browser This is the same limitation that 9 header has Any cookies sent to you from the client will automatically be turned into a PHP variable just like GET and POST method data If you wish to assign multiple values to a single cookie just add to the cookie name For more details see the 10 setcookie function 11 Prev 12 Home 13 Next HTTP authentication with PHP 14 Up Handling file uploads 1 PHP Manual 2 Features 3 Cookies 4 Common Pitfalls PHP Manual 5 Prev 6 Next Chapter 18 Handling file uploads Table of Contents 7 POST method uploads 8 Common Pitfalls 9 Uploading multiple files 10 PUT method support POST method uploads PHP is capable of receiving file uploads from any RFC 1867 compliant browser which includes Netscape Navigator 3 or later Microsoft Internet Explorer 3 with a patch from Microsoft or later without a patch This feature lets people upload both text and binary files With PHP s authentication and file manipulation functions you have full control over who is allowed to upload and what is to be done with the file once it has been uploaded Note that PHP also supports PUT method file uploads as used by Netscape Composer and W3C s Amaya clients See the 11 PUT Method Support for more details A file upload screen can be built by creating a special form which looks something like this Example 18 1 File Upload Form FORM ENCTYPE multipart form data ACTION URL METHOD POST INPUT TYPE hidden name MAX FILE SIZE value 1000 Send this file INPUT NAME userfile TYPE file INPUT TYPE submit VALUE Send File FORM The URL should point to a php html file The MAX FILE SIZE hidden field must precede the file input field and its value is the maximum filesize accepted The value is in bytes In this destination file the following variables will be defined upon a successful upload userfile The temporary filename in which the uploaded file was stored on the server machine userfile name The original name of the file on the sender s system userfile size The size of the uploaded file in bytes userfile type The mime type of the file if the browser provided this information An example would be image gif Note that the userfile part of the above variables is whatever the name of the INPUT field of TYPE file is in the upload form In the above upload form example we chose to call it userfile Files will by default be stored in the server s default temporary directory This can be changed by setting the environment variable TMPDIR in the environment in which PHP runs Setting it using 12 putenv from within a PHP script will not work The PHP script which receives the uploaded file should implement whatever logic is necessary for determining what should be done with the uploaded file You can for example use the file size variable to throw away any files that are either too small or too big You could use the file type variable to throw away any files that didn t match a certain type criteria Whatever the logic you should either delete the file from the temporary directory or move it elsewhere The file will be deleted from the temporary directory at the end of the request if it has not been moved away or renamed 13 Prev 14 Home 15 Next Cookies 16 Up Common Pitfalls 1 PHP Manual 2 Handling file uploads 3 Handling file uploads 4 Uploading multiple files PHP Manual 5 Prev Chapter 18 Handling file uploads 6 Next Common Pitfalls The MAX FILE SIZE item cannot specify a file size greater than the file size that has been set in the upload max filesize in the PHP3 ini file or the corresponding php3 upload max filesize Apache conf directive The default is 2 Megabytes Please note that the CERN httpd seems to strip off everything starting at the first whitespace in the content type mime header it gets from the client As long as this is the case CERN httpd will not support the file upload feature 7 Prev 8 Home 9 Next Handling file uploads 10 Up Uploading multiple files 1 PHP Manual 2 Handling file uploads 3 Common Pitfalls 4 PUT method support PHP Manual 5 Prev Chapter 18 Handling file uploads 6 Next Uploading multiple files It is possible to upload multiple files simultaneously and have the information organized automatically in arrays for you To do so you need to use the same array submission syntax in the HTML form as you do with multiple selects and checkboxes Note Support for multiple file uploads was added in version 3 0 10 Example 18 2 Uploading multiple forms form action file upload html method post enctype multipart form data Send these files br input name userfile type file br input name userfile type file br input type submit value Send files form When the above form is submitted the arrays userfile userfile name and userfile size will be formed in the global scope as well as in HTTP POST VARS Each of these will be a numerically indexed array of the appropriate values for the submitted files For instance assume that the filenames home test review html and home test xwp out are submitted In this case userfile name 0 would contain the value review html and userfile name 1 would contain the value xwp out Similarly userfile size 0 would contain review html s filesize and so forth 7 Prev 8 Home 9 Next Common Pitfalls 10 Up PUT method support 1 PHP Manual 2 Handling file uploads 3 Uploading multiple files 4 Connection handling PHP Manual 5 Prev Chapter 18 Handling file uploads 6 Next PUT method support PHP provides support for the HTTP PUT method used by clients such as Netscape Composer and W3C Amaya PUT requests are much simpler than a file upload and they look something like this PUT path filename html HTTP 1 1 This would normally mean that the remote client would like to save the content that follows as path filename html in your web tree It is obviously not a good idea for Apache or PHP to automatically let everybody overwrite any files in your web tree So to handle such a request you have to first tell your web server that you want a certain PHP script to handle the request In Apache you do this with the Script directive It can be placed almost anywhere in your Apache configuration file A common place is inside a Directory block or perhaps inside a Virtualhost block A line like this would do the trick Script PUT put php3 This tells Apache to send all PUT requests for URIs that match the context in which you put this line to the put php3 script This assumes of course that you have PHP enabled for the php3 extension and PHP is active Inside your put php3 file you would then do something like this copy PHP UPLOADED FILE NAME DOCUMENT ROOT REQUEST URI This would copy the file to the location requested by the remote client You would probably want to perform some checks and or authenticate the user before performing this file copy The only trick here is that when PHP sees a PUT method request it stores the uploaded file in a temporary file just like those handled bu the 7 POST method When the request ends this temporary file is deleted So your PUT handling PHP script has to copy that file somewhere The filename of this temporary file is in the PHP PUT FILENAME variable and you can see the suggested destination filename in the REQUEST URI may vary on non Apache web servers This destination filename is the one that the remote client specified You do not have to listen to this client You could for example copy all uploaded files to a special uploads directory 8 Prev 9 Home 10 Next Uploading multiple files 11 Up Connection handling 1 PHP Manual 2 Features 3 PUT method support 4 Persistent database connections PHP Manual 5 Prev 6 Next Chapter 19 Connection handling Note The following applies to 3 0 7 and later Internally in PHP a connection status is maintained There are 3 possible states 0 NORMAL 1 ABORTED 2 TIMEOUT When a PHP script is running normally the NORMAL state is active If the remote client disconnects the ABORTED state flag is turned on A remote client disconnect is usually caused by the user hitting his STOP button If the PHP imposed time limit see 7 set time limit is hit the TIMEOUT state flag is turned on You can decide whether or not you want a client disconnect to cause your script to be aborted Sometimes it is handy to always have your scripts run to completion even if there is no remote browser receiving the output The default behaviour is however for your script to be aborted when the remote client disconnects This behaviour can be set via the ignore user abort php3 ini directive as well as through the corresponding php3 ignore user abort Apache conf directive or with the 8 ignore user abort function If you do not tell PHP to ignore a user abort and the user aborts your script will terminate The one exception is if you have registered a shutdown function using 9 register shutdown function With a shutdown function when the remote user hits his STOP button the next time your script tries to output something PHP will detect that the connection has been aborted and the shutdown function is called This shutdown function will also get called at the end of your script terminating normally so to do something different in case of a client diconnect you can use the 10 connection aborted function This function will return true if the connection was aborted Your script can also be terminated by the built in script timer The default timeout is 30 seconds It can be changed using the max execution time php3 ini directive or the corresponding php3 max execution time Apache conf directive as well as with the 11 set time limit function When the timer expires the script will be aborted and as with the above client disconnect case if a shutdown function has been registered it will be called Within this shutdown function you can check to see if a timeout caused the shutdown function to be called by calling the 12 connection timeout function This function will return true if a timeout caused the shutdown function to be called One thing to note is that both the ABORTED and the TIMEOUT states can be active at the same time This is possible if you tell PHP to ignore user aborts PHP will still note the fact that a user may have broken the connection but the script will keep running If it then hits the time limit it will be aborted and your shutdown function if any will be called At this point you will find that 13 connection timeout and 14 connection aborted return true You can also check both states in a single call by using the 15 connection status This function returns a bitfield of the active states So if both states are active it would return 3 for example 16 Prev 17 Home 18 Next PUT method support 19 Up Persistent database connections 1 PHP Manual 2 Features 3 Connection handling 4 Function Reference PHP Manual 5 Prev 6 Next Chapter 20 Persistent database connections Persistent connections are SQL links that do not close when the execution of your script ends When a persistent connection is requested PHP checks if there s already an identical persistent connection that remained open from earlier and if it exists it uses it If it does not exist it creates the link An identical connection is a connection that was opened to the same host with the same username and the same password where applicable People who aren t thoroughly familiar with the way web servers work and distribute the load may mistake persistent connects for what they re not In particular they do not give you an ability to open user sessions on the same SQL link they do not give you an ability to build up a transaction efficently and they don t do a whole lot of other things In fact to be extremely clear about the subject persistent connections don t give you any functionality that wasn t possible with their non persistent brothers Why This has to do with the way web servers work There are three ways in which your web server can utilize PHP to generate web pages The first method is to use PHP as a CGI wrapper When run this way an instance of the PHP interpreter is created and destroyed for every page request for a PHP page to your web server Because it is destroyed after every request any resources that it acquires such as a link to an SQL database server are closed when it is destroyed In this case you do not gain anything from trying to use persistent connections they simply don t persist The second and most popular method is to run PHP as a module in a multiprocess web server which currently only includes Apache A multiprocess server typically has one process the parent which coordinates a set of processes its children who actually do the work of serving up web pages When each request comes in from a a client it is handed off to one of the children that is not already serving another client This means that when the same client makes a second request to the server it may be serviced by a different child process than the first time What a persistent connection does for you in this case it make it so each child process only needs to connect to your SQL server the first time that it serves a page that makes us of such a connection When another page then requires a connection to the SQL server it can reuse the connection that child established earlier The last method is to use PHP as a plug in for a multithreaded web server Currently this is only theoretical PHP does not yet work as a plug in for any multithreaded web servers Work is progressing on support for ISAPI WSAPI and NSAPI on Windows which will all allow PHP to be used as a plug in on multithreaded servers like Netscape FastTrack Microsoft s Internet Information Server IIS and O Reilly s WebSite Pro When this happens the behavior will be essentially the same as for the multiprocess model described before If persistent connections don t have any added functionality what are they good for The answer here is extremely simple efficiency Persistent connections are good if the overhead to create a link to your SQL server is high Whether or not this overhead is really high depends on many factors Like what kind of database it is whether or not it sits on the same computer on which your web server sits how loaded the machine the SQL server sits on is and so forth The bottom line is that if that connection overhead is high persistent connections help you considerably They cause the child process to simply connect only once for its entire lifespan instead of every time it processes a page that requires connecting to the SQL server This means that for every child that opened a persistent connection will have its own open persistent connection to the server For example if you had 20 different child processes that ran a script that made a persistent connection to your SQL server you d have 20 different connections to the SQL server one from each child An important summary Persistent connections were designed to have one to one mapping to regular connections That means that you should always be able to replace persistent connections with non persistent connections and it won t change the way your script behaves It may and probably will change the efficiency of the script but not its behavior 7 Prev 8 Home 9 Next Connection handling 10 Up Function Reference 1 PHP Manual 2 Persistent database connections 3 Adabas D functions PHP Manual 4 Prev 5 Next IV Function Reference Table of Contents I 6 Adabas D functions II 7 Apache specific functions III 8 Array functions IV 9 Aspell functions V 10 Arbitrary precision mathematics functions VI 11 Calendar functions VII 12 ClibPDF functions VIII 13 Date and Time functions IX 14 Database dbm style abstraction layer functions X 15 dBase functions XI 16 dbm functions XII 17 Directory functions XIII 18 Dynamic Loading functions XIV 19 Program Execution functions XV 20 Forms Data Format functions XVI 21 filePro functions XVII 22 Filesystem functions XVIII 23 Functions related to HTTP XIX 24 Hyperwave functions XX 25 Image functions XXI 26 IMAP functions XXII 27 PHP options information XXIII 28 Informix functions XXIV 29 InterBase functions XXV 30 LDAP functions XXVI 31 Mail functions XXVII 32 Mathematical functions XXVIII 33 Encryption functions XXIX 34 Hash functions XXX 35 Miscellaneous functions XXXI 36 mSQL functions XXXII 37 Microsoft SQL Server functions XXXIII 38 MySQL functions XXXIV 39 Sybase functions XXXV 40 Network functions XXXVI 41 NIS functions XXXVII 42 ODBC functions XXXVIII 43 Oracle 8 functions XXXIX 44 Oracle functions XL 45 Perl compatible Regular Expression functions XLI 46 PDF functions XLII 47 PostgreSQL functions XLIII 48 Regular expression functions XLIV 49 Semaphore and shared memory functions XLV 50 Solid functions XLVI 51 SNMP functions XLVII 52 String functions XLVIII 53 URL functions XLIX 54 Variable functions L 55 Vmailmgr functions LI 56 WDDX functions LII 57 Compression functions LIII 58 XML parser functions 59 Prev 60 Home 61 Next Persistent database connections Adabas D functions 1 PHP Manual 2 Function Reference 3 Function Reference 4 ada afetch PHP Manual 5 Prev 6 Next I Adabas D functions The Adabas D functions are deprecated you probably want to use the 7 Unified ODBC functions instead Table of Contents 8 ada afetch fetch a result row into an array 9 ada autocommit toggle autocommit behaviour 10 ada close close a connection to an Adabas D server 11 ada commit commit a transaction 12 ada connect connect to an Adabas D datasource 13 ada exec prepare and execute a SQL statement 14 ada fetchrow fetch a row from a result 15 ada fieldname get the columnname 16 ada fieldnum get column number 17 ada fieldtype get the datatype of a field 18 ada freeresult free resources associated with a result 19 ada numfields get the number of columns in a result 20 ada numrows number of rows in a result 21 ada result get data from results 22 ada resultall print result as HTML table 23 ada rollback rollback a transaction 24 Prev 25 Home 26 Next Function Reference 27 Up ada afetch 1 PHP Manual 2 Adabas D functions 3 Adabas D functions 4 ada autocommit PHP Manual 5 Prev 6 Next ada afetch ada afetch fetch a result row into an array Description See 7 odbc fetch into 8 Prev 9 Home 10 Next Adabas D functions 11 Up ada autocommit 1 PHP Manual 2 Adabas D functions 3 ada afetch 4 ada close PHP Manual 5 Prev 6 Next ada autocommit ada autocommit toggle autocommit behaviour Description See 7 odbc autocommit 8 Prev 9 Home 10 Next ada afetch 11 Up ada close 1 PHP Manual 2 Adabas D functions 3 ada autocommit 4 ada commit PHP Manual 5 Prev 6 Next ada close ada close close a connection to an Adabas D server Description See 7 odbc close 8 Prev 9 Home 10 Next ada autocommit 11 Up ada commit 1 PHP Manual 2 Adabas D functions 3 ada close 4 ada connect PHP Manual 5 Prev 6 Next ada commit ada commit commit a transaction Description See 7 odbc commit 8 Prev 9 Home 10 Next ada close 11 Up ada connect 1 PHP Manual 2 Adabas D functions 3 ada commit 4 ada exec PHP Manual 5 Prev 6 Next ada connect ada connect connect to an Adabas D datasource Description See 7 odbc connect 8 Prev 9 Home 10 Next ada commit 11 Up ada exec 1 PHP Manual 2 Adabas D functions 3 ada connect 4 ada fetchrow PHP Manual 5 Prev 6 Next ada exec ada exec prepare and execute a SQL statement Description See 7 odbc exec or 8 odbc do 9 Prev 10 Home 11 Next ada connect 12 Up ada fetchrow 1 PHP Manual 2 Adabas D functions 3 ada exec 4 ada fieldname PHP Manual 5 Prev 6 Next ada fetchrow ada fetchrow fetch a row from a result Description See 7 odbc fetch row 8 Prev 9 Home 10 Next ada exec 11 Up ada fieldname 1 PHP Manual 2 Adabas D functions 3 ada fetchrow 4 ada fieldnum PHP Manual 5 Prev 6 Next ada fieldname ada fieldname get the columnname Description See 7 odbc field name 8 Prev 9 Home 10 Next ada fetchrow 11 Up ada fieldnum 1 PHP Manual 2 Adabas D functions 3 ada fieldname 4 ada fieldtype PHP Manual 5 Prev 6 Next ada fieldnum ada fieldnum get column number Description See odbc field num 7 Prev 8 Home 9 Next ada fieldname 10 Up ada fieldtype 1 PHP Manual 2 Adabas D functions 3 ada fieldnum 4 ada freeresult PHP Manual 5 Prev 6 Next ada fieldtype ada fieldtype get the datatype of a field Description See 7 odbc field type 8 Prev 9 Home 10 Next ada fieldnum 11 Up ada freeresult 1 PHP Manual 2 Adabas D functions 3 ada fieldtype 4 ada numfields PHP Manual 5 Prev 6 Next ada freeresult ada freeresult free resources associated with a result Description See 7 odbc free result 8 Prev 9 Home 10 Next ada fieldtype 11 Up ada numfields 1 PHP Manual 2 Adabas D functions 3 ada freeresult 4 ada numrows PHP Manual 5 Prev 6 Next ada numfields ada numfields get the number of columns in a result Description See 7 odbc num fields 8 Prev 9 Home 10 Next ada freeresult 11 Up ada numrows 1 PHP Manual 2 Adabas D functions 3 ada numfields 4 ada result PHP Manual 5 Prev 6 Next ada numrows ada numrows number of rows in a result Description See 7 odbc num rows 8 Prev 9 Home 10 Next ada numfields 11 Up ada result 1 PHP Manual 2 Adabas D functions 3 ada numrows 4 ada resultall PHP Manual 5 Prev 6 Next ada result ada result get data from results Description See 7 odbc result 8 Prev 9 Home 10 Next ada numrows 11 Up ada resultall 1 PHP Manual 2 Adabas D functions 3 ada result 4 ada rollback PHP Manual 5 Prev 6 Next ada resultall ada resultall print result as HTML table Description See 7 odbc result all 8 Prev 9 Home 10 Next ada result 11 Up ada rollback 1 PHP Manual 2 Adabas D functions 3 ada resultall 4 Apache specific functions PHP Manual 5 Prev 6 Next ada rollback ada rollback rollback a transaction Description See 7 odbc rollback 8 Prev 9 Home 10 Next ada resultall 11 Up Apache specific functions 1 PHP Manual 2 Function Reference 3 ada rollback 4 apache lookup uri PHP Manual 5 Prev 6 Next II Apache specific functions Table of Contents 7 apache lookup uri Perform a partial request for the specified URI and return all info about it 8 apache note Get and set apache request notes 9 getallheaders Fetch all HTTP request headers 10 virtual Perform an Apache sub request 11 Prev 12 Home 13 Next ada rollback 14 Up apache lookup uri 1 PHP Manual 2 Apache specific functions 3 Apache specific functions 4 apache note PHP Manual 5 Prev 6 Next apache lookup uri apache lookup uri Perform a partial request for the specified URI and return all info about it Description class apache lookup uri string filename This performs a partial request for a URI It goes just far enough to obtain all the important information about the given resource and returns this information in a class The properties of the returned class are status the request status line method content type handler uri filename path info args boundary no cache no local copy allowed send bodyct bytes sent byterange clength unparsed uri mtime request time 7 Prev 8 Home 9 Next Apache specific functions 10 Up apache note 1 PHP Manual 2 Apache specific functions 3 apache lookup uri 4 getallheaders PHP Manual 5 Prev 6 Next apache note apache note Get and set apache request notes Description string apache note string note name string note value apache note is an Apache specific function which gets and sets values in a request s notes table If called with one argument it returns the current value of note note name If called with two arguments it sets the value of note note name to note value and returns the previous value of note note name 7 Prev 8 Home 9 Next apache lookup uri 10 Up getallheaders 1 PHP Manual 2 Apache specific functions 3 apache note 4 virtual PHP Manual 5 Prev 6 Next getallheaders getallheaders Fetch all HTTP request headers Description array getallheaders void This function returns an associative array of all the HTTP headers in the current request Note You can also get at the value of the common CGI variables by reading them from the environment which works whether or not you are using PHP as an Apache module Use 7 phpinfo to see a list of all of the environment variables defined this way Example 1 getallheaders Example headers getallheaders while list header value each headers echo header value br n This example will display all the request headers for the current request Note getallheaders is currently only supported when PHP runs as an Apache module 8 Prev 9 Home 10 Next apache note 11 Up virtual 1 PHP Manual 2 Apache specific functions 3 getallheaders 4 Array functions PHP Manual 5 Prev 6 Next virtual virtual Perform an Apache sub request Description int virtual string filename virtual is an Apache specific function which is equivalent to include virtual in mod include It performs an Apache sub request It is useful for including CGI scripts or shtml files or anything else that you would parse through Apache Note that for a CGI script the script must generate valid CGI headers At the minimum that means it must generate a Content type header For PHP files you should use 7 include or 8 require 9 Prev 10 Home 11 Next getallheaders 12 Up Array functions 1 PHP Manual 2 Function Reference 3 virtual 4 array PHP Manual 5 Prev 6 Next III Array functions Table of Contents 7 array Create an array 8 array push Push one or more elements onto the end of array 9 array pop Pop the element off the end of array 10 array unshift Push one or more elements onto the beginning of array 11 array shift Pop an element of the beginning of array 12 array slice Extract a slice of the array 13 array splice Remove a portion of the array and replace it with something else 14 array merge Merge two or more arrays 15 array keys Return all the keys of an array 16 array values Return all the values of an array 17 array walk Apply a user function to every member of an array 18 arsort Sort an array in reverse order and maintain index association 19 asort Sort an array and maintain index association 20 compact Create array containing variables and their values 21 count count elements in a variable 22 current Return the current element in an array 23 each Return the next key and value pair from an array 24 end Set the internal pointer of an array to its last element 25 extract Import variables into the symbol table from an array 26 in array Return true if a value exists in an array 27 key Fetch a key from an associative array 28 ksort Sort an array by key 29 list Assign variables as if they were an array 30 next Advance the internal array pointer of an array 31 pos Get the current element from an array 32 prev Rewind the internal array pointer 33 range Create an array containing a range of integers 34 reset Set the internal pointer of an array to its first element 35 rsort Sort an array in reverse order 36 shuffle Shuffle an array 37 sizeof Get the number of elements in an array 38 sort Sort an array 39 uasort Sort an array with a user defined comparison function and maintain index association 40 uksort Sort an array by keys using a user defined comparison function 41 usort Sort an array by values using a user defined comparison function 42 Prev 43 Home 44 Next virtual 45 Up array 1 PHP Manual 2 Array functions 3 Array functions 4 array push PHP Manual 5 Prev 6 Next array array Create an array Description array array Returns an array of the parameters The parameters can be given an index with the operator Note array is a language construct used to represent literal arrays and not a regular function The following example demonstrates how to create a two dimensional array how to specify keys for associative arrays and how to skip and continue numeric indices in normal arrays Example 1 array example fruits array fruits array a orange b banana c apple numbers array 1 2 3 4 5 6 holes array first 5 second third See also 7 list 8 Prev 9 Home 10 Next Array functions 11 Up array push 1 PHP Manual 2 Array functions 3 array 4 array pop PHP Manual 5 Prev 6 Next array push array push Push one or more elements onto the end of array Description int array push array array mixed var array push treats array as a stack and pushes the passed variables onto the end of array The length of array increases by the number of variables pushed Has the same effect as array var repeated for each var Returns the new number of elements in the array Example 1 array push example stack array 1 2 array push stack 3 This example would result in stack having 4 elements 1 2 and 3 See also 7 array pop 8 array shift and 9 array unshift Note This function was added in PHP 4 0 10 Prev 11 Home 12 Next array 13 Up array pop 1 PHP Manual 2 Array functions 3 array push 4 array unshift PHP Manual 5 Prev 6 Next array pop array pop Pop the element off the end of array Description mixed array pop array array array pop pops and returns the last value of the array shortening the array by one element Example 1 array pop example stack array orange apple raspberry fruit array pop stack After this stack has only 2 elements orange and apple and fruit has raspberry See also 7 array push 8 array shift and 9 array unshift Note This function was added in PHP 4 0 10 Prev 11 Home 12 Next array push 13 Up array unshift 1 PHP Manual 2 Array functions 3 array pop 4 array shift PHP Manual 5 Prev 6 Next array unshift array unshift Push one or more elements onto the beginning of array Description int array unshift array array mixed var array unshift prepends passed elements to the front of the array Note that the list of elements is prepended as a whole so that the prepended elements stay in the same order Returns the new number of elements in the array Example 1 array unshift example queue array p1 p3 array unshift queue p4 p5 p6 This would result in queue having 5 elements p4 p5 p6 p1 and p3 See also 7 array shift 8 array push and 9 array pop Note This function was added in PHP 4 0 10 Prev 11 Home 12 Next array pop 13 Up array shift 1 PHP Manual 2 Array functions 3 array unshift 4 array slice PHP Manual 5 Prev 6 Next array shift array shift Pop an element of the beginning of array Description mixed array shift array array array shift shifts the first value of the array off and returns it shortening the array by one element and moving everything down Example 1 array shift example args array v f opt array shift args This would result in args having one element f left and opt being v See also 7 array unshift 8 array push and 9 array pop Note This function was added in PHP 4 0 10 Prev 11 Home 12 Next array unshift 13 Up array slice 1 PHP Manual 2 Array functions 3 array shift 4 array splice PHP Manual 5 Prev 6 Next array slice array slice Extract a slice of the array Description array array slice array array int offset int length array slice returns a sequence of elements from the array specified by the offset and length parameters If offset is positive the sequence will start at that offset in the array If offset is negative the sequence will start that far from the end of the array If length is given and is positive then the sequence will have that many elements in it If length is given and is negative then the sequence will stop that many elements from the end of the array If it is omitted then the sequence will have everything from offset up until the end of the array Example 1 array slice examples input array a b c d e output array slice input 2 returns c d and e output array slice input 2 1 returns c d output array slice input 2 1 returns d output array slice input 0 3 returns a b and c See also 7 array splice Note This function was added in PHP 4 0 8 Prev 9 Home 10 Next array shift 11 Up array splice 1 PHP Manual 2 Array functions 3 array slice 4 array merge PHP Manual 5 Prev 6 Next array splice array splice Remove a portion of the array and replace it with something else Description array array splice array input int offset int length array replacement array splice removed the elements designated by offset and length from the input array and replaces them with the elements of the replacement array if supplied If offset is positive then the start of removed portion is at that offset from the beginning of the input array If offset is negative then it starts that far from the end of the input array If length is omitted removes everything from offset to the end of the array If length is specified and is positive then that many elements will be removed If length is specified and is negative then the end of the removed portion will be that many elements from the end of the array Tip to remove everything from offset to the end of the array when replacement is also specified use count input for length If replacement array is specified then the removed elements are replaced with elements from this array If offset and length are such that nothing is removed then the elements from the replacement array are inserted in the place specified by the offset Tip if the replacement is just one element it is not necessary to put array around it unless the element is an array itself The following equivalences hold array push input x y array splice input count input 0 array x y array pop input array splice input 1 array shift input array splice input 0 1 array unshift input x y array splice input 0 0 array x y a x y array splice input x 1 y Returns the array consisting of removed elements Example 1 array splice examples input array red green blue yellow array splice input 2 input is now array red green array splice input 1 1 input is now array red yellow array splice input 1 count input orange input is now array red orange array splice input 1 1 array black maroon input is now array red green blue black maroon See also 7 array slice Note This function was added in PHP 4 0 8 Prev 9 Home 10 Next array slice 11 Up array merge 1 PHP Manual 2 Array functions 3 array splice 4 array keys PHP Manual 5 Prev 6 Next array merge array merge Merge two or more arrays Description array array merge array array1 array array2 array merge merges the elements of two or more arrays together so that the values of one are appended to the end of the previous one It returns the resulting array If the input arrays had the same string keys then the later value for that key will overwrite previous one If however the arrays have the same numeric key this does not happen since the values are appended Example 1 array merge example array1 array color red 2 4 array2 array a b color green shape trapezoid array merge array1 array2 Resulting array will be array color green 2 4 a b shape trapezoid Note This function was added in PHP 4 0 7 Prev 8 Home 9 Next array splice 10 Up array keys 1 PHP Manual 2 Array functions 3 array merge 4 array values PHP Manual 5 Prev 6 Next array keys array keys Return all the keys of an array Description array array keys array input array keys returns all the keys numeric and string from the input array Example 1 array keys example array array 0 100 color red array keys array returns array 0 color See also 7 array values Note This function was added in PHP 4 0 8 Prev 9 Home 10 Next array merge 11 Up array values 1 PHP Manual 2 Array functions 3 array keys 4 array walk PHP Manual 5 Prev 6 Next array values array values Return all the values of an array Description array array values array input array values returns all the values from the input array Example 1 array values example array array size XL color gold array values array returns array XL gold Note This function was added in PHP 4 0 7 Prev 8 Home 9 Next array keys 10 Up array walk 1 PHP Manual 2 Array functions 3 array values 4 arsort PHP Manual 5 Prev 6 Next array walk array walk Apply a user function to every member of an array Description int array walk array arr string func Applies the function named by func to each element of arr The elements are passed as the first argument of func if func requires more than one argument a warning will be generated each time array walk calls func These warnings may be suppressed by prepending the sign to the array walk call or by using 7 error reporting Note func will actually be working with the elements of arr so any changes made to those elements will be made in the array itself Example 1 array walk example fruits array d lemon a orange b banana c apple function test alter item1 item1 bogus function test print item2 echo item2 br n array walk fruits test print array walk fruits test alter array walk fruits test print See also 8 each and 9 list 10 Prev 11 Home 12 Next array values 13 Up arsort 1 PHP Manual 2 Array functions 3 array walk 4 asort PHP Manual 5 Prev 6 Next arsort arsort Sort an array in reverse order and maintain index association Description void arsort array array This function sorts an array such that array indices maintain their correlation with the array elements they are associated with This is used mainly when sorting associative arrays where the actual element order is significant Example 1 arsort example fruits array d lemon a orange b banana c apple arsort fruits for reset fruits key key fruits next fruits echo fruits key fruits key n This example would display fruits a orange fruits d lemon fruits b banana fruits c apple The fruits have been sorted in reverse alphabetical order and the index associated with each element has been maintained See also 7 asort 8 rsort 9 ksort and 10 sort 11 Prev 12 Home 13 Next array walk 14 Up asort 1 PHP Manual 2 Array functions 3 arsort 4 compact PHP Manual 5 Prev 6 Next asort asort Sort an array and maintain index association Description void asort array array This function sorts an array such that array indices maintain their correlation with the array elements they are associated with This is used mainly when sorting associative arrays where the actual element order is significant Example 1 asort example fruits array d lemon a orange b banana c apple asort fruits for reset fruits key key fruits next fruits echo fruits key fruits key n This example would display fruits c apple fruits b banana fruits d lemon fruits a orange The fruits have been sorted in alphabetical order and the index associated with each element has been maintained See also 7 arsort 8 rsort 9 ksort and 10 sort 11 Prev 12 Home 13 Next arsort 14 Up compact 1 PHP Manual 2 Array functions 3 asort 4 count PHP Manual 5 Prev 6 Next compact compact Create array containing variables and their values Description array compact string varname array varnames compact takes a variable number of parameters Each parameter can be either a string containing the name of the variable or an array of variable names The array can contain other arrays of variable names inside it compact handles it recursively For each of these compact looks for a variable with that name in the current symbol table and adds it to the output array such that the variable name becomes the key and the contents of the variable become the value for that key In short it does the opposite of 7 extract It returns the output array with all the variables added to it Example 1 compact example city San Francisco state CA event SIGGRAPH location vars array city state result compact event location vars After this result will be array event SIGGRAPH city San Francisco state CA See also 8 extract Note This function was added in PHP 4 0 9 Prev 10 Home 11 Next asort 12 Up count 1 PHP Manual 2 Array functions 3 compact 4 current PHP Manual 5 Prev 6 Next count count count elements in a variable Description int count mixed var Returns the number of elements in var which is typically an array since anything else will have one element Returns 1 if the variable is not an array Returns 0 if the variable is not set Warning count may return 0 for a variable that isn t set but it may also return 0 for a variable that has been initialized with an empty array Use 7 isset to test if a variable is set See also 8 sizeof 9 isset and 10 is array 11 Prev 12 Home 13 Next compact 14 Up current 1 PHP Manual 2 Array functions 3 count 4 each PHP Manual 5 Prev 6 Next current current Return the current element in an array Description mixed current array array Every array has an internal pointer to its current element which is initialized to the first element inserted into the array The current function simply returns the array element that s currently being pointed by the internal pointer It does not move the pointer in any way If the internal pointer points beyond the end of the elements list current returns false Warning If the array contains empty elements 0 or the empty string then this function will return false for these elements as well This makes it impossible to determine if you are really at the end of the list in such an array using current To properly traverse an array that may contain empty elements use the 7 each function See also 8 end 9 next 10 prev and 11 reset 12 Prev 13 Home 14 Next count 15 Up each 1 PHP Manual 2 Array functions 3 current 4 end PHP Manual 5 Prev 6 Next each each Return the next key and value pair from an array Description array each array array Returns the current key and value pair from the array array and advances the array cursor This pair is returned in a four element array with the keys 0 1 key and value Elements 0 and key contain the key name of the array element and 1 and value contain the data If the internal pointer for the array points past the end of the array contents each returns false Example 1 each examples foo array bob fred jussi jouni bar each foo bar now contains the following key value pairs 0 0 1 bob key 0 value bob foo array Robert Bob Seppo Sepi bar each foo bar now contains the following key value pairs 0 Robert 1 Bob key Robert value Bob each is typically used in conjunction with 7 list to traverse an array for instance HTTP POST VARS Example 2 Traversing HTTP POST VARS with each echo Values submitted via POST method br while list key val each HTTP POST VARS echo key val br After each has executed the array cursor will be left on the next element of the array or on the last element if it hits the end of the array See also 8 key 9 list 10 current 11 reset 12 next and 13 prev 14 Prev 15 Home 16 Next current 17 Up end 1 PHP Manual 2 Array functions 3 each 4 extract PHP Manual 5 Prev 6 Next end end Set the internal pointer of an array to its last element Description end array array end advances array s internal pointer to the last element See also 7 current 8 each end 9 next and 10 reset 11 Prev 12 Home 13 Next each 14 Up extract 1 PHP Manual 2 Array functions 3 end 4 in array PHP Manual 5 Prev 6 Next extract extract Import variables into the symbol table from an array Description void extract array var array int extract type string prefix This function is used to import variables from an array into the current symbol table It takes associative array var array and treats keys as variable names and values as variable values For each key value pair it will create a variable in the current symbol table subject to extract type and prefix parameters extract checks for colissions with existing variables The way collisions are treated is determined by extract type It can be one of the following values EXTR OVERWRITE If there is a collision overwrite the existing variable EXTR SKIP If there is a collision don t overwrite the existing variable EXTR PREFIX SAME If there is a collision prefix the new variable with prefix EXTR PREFIX ALL Prefix all variables with prefix If extract type is not specified it is assumed to be EXTR OVERWRITE Note that prefix is only required if extract type is EXTR PREFIX SAME or EXTR PREFIX ALL extract checks each key to see if it constitues a valid variable name and if it does only then does it proceed to import it A possible use for extract is to import into symbol table variables contained in an associative array returned by 7 wddx deserialize Example 1 extract example Suppose that var array is an array returned from wddx deserialize size large var array array color blue size medium shape sphere extract var array EXTR PREFIX SAME wddx print color size shape wddx size n The above example will produce blue large sphere medium The size wasn t overwritten becaus we specified EXTR PREFIX SAME which resulted in wddx size being created If EXTR SKIP was specified then wddx size wouldn t even have been created EXTR OVERWRITE would have cause size to have value medium and EXTR PREFIX ALL would result in new variables being named wddx color wddx size and wddx shape 8 Prev 9 Home 10 Next end 11 Up in array 1 PHP Manual 2 Array functions 3 extract 4 key PHP Manual 5 Prev 6 Next in array in array Return true if a value exists in an array Description bool in array mixed needle array haystack Searches haystack for needle and returns true if it is found in the array false otherwise Example 1 in array example os array Mac NT Irix Linux if in array Irix os print Got Irix Note This function was added in PHP 4 0 7 Prev 8 Home 9 Next extract 10 Up key 1 PHP Manual 2 Array functions 3 in array 4 ksort PHP Manual 5 Prev 6 Next key key Fetch a key from an associative array Description mixed key array array key returns the index element of the current array position See also 7 current 8 next 9 Prev 10 Home 11 Next in array 12 Up ksort 1 PHP Manual 2 Array functions 3 key 4 list PHP Manual 5 Prev 6 Next ksort ksort Sort an array by key Description int ksort array array Sorts an array by key maintaining key to data correlations This is useful mainly for associative arrays Example 1 ksort example fruits array d lemon a orange b banana c apple ksort fruits for reset fruits key key fruits next fruits echo fruits key fruits key n This example would display fruits a orange fruits b banana fruits c apple fruits d lemon See also 7 asort 8 arsort 9 sort and 10 rsort 11 Prev 12 Home 13 Next key 14 Up list 1 PHP Manual 2 Array functions 3 ksort 4 next PHP Manual 5 Prev 6 Next list list Assign variables as if they were an array Description void list Like 7 array this is not really a function but a language construct list is used to assign a list of variables in one operation Example 1 list example table tr th Employee name th th Salary th tr php result mysql conn SELECT id name salary FROM employees while list id name salary mysql fetch row result print tr n td a href info php3 id id name a td n td salary td n tr n table See also 8 each 9 array 10 Prev 11 Home 12 Next ksort 13 Up next 1 PHP Manual 2 Array functions 3 list 4 pos PHP Manual 5 Prev 6 Next next next Advance the internal array pointer of an array Description mixed next array array Returns the array element in the next place that s pointed by the internal array pointer or false if there are no more elements next behaves like 7 current with one difference It advances the internal array pointer one place forward before returning the element That means it returns the next array element and advances the internal array pointer by one If advancing the internal array pointer results in going beyond the end of the element list next returns false Warning If the array contains empty elements then this function will return false for these elements as well To properly traverse an array which may contain empty elements see the 8 each function See also 9 current 10 end 11 prev and 12 reset 13 Prev 14 Home 15 Next list 16 Up pos 1 PHP Manual 2 Array functions 3 next 4 prev PHP Manual 5 Prev 6 Next pos pos Get the current element from an array Description mixed pos array array This is an alias for 7 current See also 8 end 9 next 10 prev and 11 reset 12 Prev 13 Home 14 Next next 15 Up prev 1 PHP Manual 2 Array functions 3 pos 4 range PHP Manual 5 Prev 6 Next prev prev Rewind the internal array pointer Description mixed prev array array Returns the array element in the previous place that s pointed by the internal array pointer or false if there are no more elements Warning If the array contains empty elements then this function will return false for these elements as well To properly traverse an array which may contain empty elements see the 7 each function prev behaves just like 8 next except it rewinds the internal array pointer one place instead of advancing it See also 9 current 10 end 11 next and 12 reset 13 Prev 14 Home 15 Next pos 16 Up range 1 PHP Manual 2 Array functions 3 prev 4 reset PHP Manual 5 Prev 6 Next range range Create an array containing a range of integers Description array range int low int high range returns an array of integers from low to high inclusive See 7 shuffle for an example of its use 8 Prev 9 Home 10 Next prev 11 Up reset 1 PHP Manual 2 Array functions 3 range 4 rsort PHP Manual 5 Prev 6 Next reset reset Set the internal pointer of an array to its first element Description mixed reset array array reset rewinds array s internal pointer to the first element reset returns the value of the first array element See also 7 current 8 each 9 next 10 prev and reset 11 Prev 12 Home 13 Next range 14 Up rsort 1 PHP Manual 2 Array functions 3 reset 4 shuffle PHP Manual 5 Prev 6 Next rsort rsort Sort an array in reverse order Description void rsort array array This function sorts an array in reverse order highest to lowest Example 1 rsort example fruits array lemon orange banana apple rsort fruits for reset fruits list key value each fruits echo fruits key value n This example would display fruits 0 orange fruits 1 lemon fruits 2 banana fruits 3 apple The fruits have been sorted in reverse alphabetical order See also 7 arsort 8 asort 9 ksort 10 sort and 11 usort 12 Prev 13 Home 14 Next reset 15 Up shuffle 1 PHP Manual 2 Array functions 3 rsort 4 sizeof PHP Manual 5 Prev 6 Next shuffle shuffle Shuffle an array Description void shuffle array array This function shuffles randomizes the order of the elements in an array Example 1 shuffle example numbers range 1 20 srand time shuffle numbers while list number each numbers echo number See also 7 arsort 8 asort 9 ksort 10 rsort 11 sort and 12 usort 13 Prev 14 Home 15 Next rsort 16 Up sizeof 1 PHP Manual 2 Array functions 3 shuffle 4 sort PHP Manual 5 Prev 6 Next sizeof sizeof Get the number of elements in an array Description int sizeof array array Returns the number of elements in the array See also 7 count 8 Prev 9 Home 10 Next shuffle 11 Up sort 1 PHP Manual 2 Array functions 3 sizeof 4 uasort PHP Manual 5 Prev 6 Next sort sort Sort an array Description void sort array array This function sorts an array Elements will be arranged from lowest to highest when this function has completed Example 1 sort example fruits array lemon orange banana apple sort fruits for reset fruits key key fruits next fruits echo fruits key fruits key n This example would display fruits 0 apple fruits 1 banana fruits 2 lemon fruits 3 orange The fruits have been sorted in alphabetical order See also 7 arsort 8 asort 9 ksort 10 rsort and 11 usort 12 Prev 13 Home 14 Next sizeof 15 Up uasort 1 PHP Manual 2 Array functions 3 sort 4 uksort PHP Manual 5 Prev 6 Next uasort uasort Sort an array with a user defined comparison function and maintain index association Description void uasort array array function cmp function This function sorts an array such that array indices maintain their correlation with the array elements they are associated with This is used mainly when sorting associative arrays where the actual element order is significant The comparison function is user defined 7 Prev 8 Home 9 Next sort 10 Up uksort 1 PHP Manual 2 Array functions 3 uasort 4 usort PHP Manual 5 Prev 6 Next uksort uksort Sort an array by keys using a user defined comparison function Description void uksort array array function cmp function This function will sort the keys of an array using a user supplied comparison function If the array you wish to sort needs to be sorted by some non trivial criteria you should use this function Example 1 uksort example function mycompare a b if a b return 0 return a b 1 1 a array 4 four 3 three 20 twenty 10 ten uksort a mycompare while list key value each a echo key value n This example would display 20 twenty 10 ten 4 four 3 three See also 7 arsort 8 asort 9 uasort 10 ksort 11 rsort and 12 sort 13 Prev 14 Home 15 Next uasort 16 Up usort 1 PHP Manual 2 Array functions 3 uksort 4 Aspell functions PHP Manual 5 Prev 6 Next usort usort Sort an array by values using a user defined comparison function Description void usort array array function cmp function This function will sort an array by its values using a user supplied comparison function If the array you wish to sort needs to be sorted by some non trivial criteria you should use this function The comparison function must return an integer less than equal to or greater than zero if the first argument is considered to be respectively less than equal to or greater than the second If two members compare as equal their order in the sorted array is undefined Example 1 usort example function cmp a b if a b return 0 return a b 1 1 a array 3 2 5 6 1 usort a cmp while list key value each a echo key value n This example would display 0 6 1 5 2 3 3 2 4 1 Note Obviously in this trivial case the 7 rsort function would be more appropriate Warning The underlying quicksort function in some C libraries such as on Solaris systems may cause PHP to crash if the comparison function does not return consistent values See also 8 arsort 9 asort 10 ksort 11 rsort and 12 sort 13 Prev 14 Home 15 Next uksort 16 Up Aspell functions 1 PHP Manual 2 Function Reference 3 usort 4 aspell new PHP Manual 5 Prev 6 Next IV Aspell functions The aspell functions allows you to check the spelling on a word and offer suggestions You need the aspell library available from 7 http metalab unc edu kevina aspell Table of Contents 8 aspell new load a new dictionary 9 aspell check check a word 10 aspell check raw check a word without changing its case or trying to trim it 11 aspell suggest suggest spellings of a word 12 Prev 13 Home 14 Next usort 15 Up aspell new 1 PHP Manual 2 Aspell functions 3 Aspell functions 4 aspell check PHP Manual 5 Prev 6 Next aspell new aspell new load a new dictionary Description int aspell new string master string personal aspell new opens up a new dictionary and returns the dictionary link identifier for use in other aspell functions Example 1 aspell new aspell link aspell new english 7 Prev 8 Home 9 Next Aspell functions 10 Up aspell check 1 PHP Manual 2 Aspell functions 3 aspell new 4 aspell check raw PHP Manual 5 Prev 6 Next aspell check aspell check check a word Description boolean aspell check int dictionary link string word aspell check checks the spelling of a word and returns true if the spelling is correct false if not Example 1 aspell check aspell link aspell new english if aspell check aspell link testt echo This is a valid spelling else echo Sorry wrong spelling 7 Prev 8 Home 9 Next aspell new 10 Up aspell check raw 1 PHP Manual 2 Aspell functions 3 aspell check 4 aspell suggest PHP Manual 5 Prev 6 Next aspell check raw aspell check raw check a word without changing its case or trying to trim it Description boolean aspell check raw int dictionary link string word 7 aspell check raw checks the spelling of a word without changing its case or trying to trim it in any way and returns true if the spelling is correct false if not Example 1 aspell check raw aspell link aspell new english if aspell check raw aspell link testt echo This is a valid spelling else echo Sorry wrong spelling 8 Prev 9 Home 10 Next aspell check 11 Up aspell suggest 1 PHP Manual 2 Aspell functions 3 aspell check raw 4 Arbitrary precision mathematics functions PHP Manual 5 Prev 6 Next aspell suggest aspell suggest suggest spellings of a word Description array aspell suggest int dictionary link string word aspell suggest returns an array of possible spellings for the given word Example 1 aspell suggest aspell link aspell new english if aspell check aspell link testt suggestions aspell suggest aspell link testt for i 0 i count suggestions i echo Possible spelling suggestions i br 7 Prev 8 Home 9 Next aspell check raw 10 Up Arbitrary precision mathematics functions 1 PHP Manual 2 Function Reference 3 aspell suggest 4 bcadd PHP Manual 5 Prev 6 Next V Arbitrary precision mathematics functions These functions are only available if PHP was configured with enable bcmath Table of Contents 7 bcadd Add two arbitrary precision numbers 8 bccomp Compare two arbitrary precision numbers 9 bcdiv Divide two arbitrary precision numbers 10 bcmod Get modulus of an arbitrary precision number 11 bcmul Multiply two arbitrary precision number 12 bcpow Raise an arbitrary precision number to another 13 bcscale Set default scale parameter for all bc math functions 14 bcsqrt Get the square root of an arbitray precision number 15 bcsub Subtract one arbitrary precision number from another 16 Prev 17 Home 18 Next aspell suggest 19 Up bcadd 1 PHP Manual 2 Arbitrary precision mathematics functions 3 Arbitrary precision mathematics functions 4 bccomp PHP Manual 5 Prev 6 Next bcadd bcadd Add two arbitrary precision numbers Description string bcadd string left operand string right operand int scale Adds the left operand to the right operand and returns the sum in a string The optional scale parameter is used to set the number of digits after the decimal place in the result See also 7 bcsub 8 Prev 9 Home 10 Next Arbitrary precision mathematics functions 11 Up bccomp 1 PHP Manual 2 Arbitrary precision mathematics functions 3 bcadd 4 bcdiv PHP Manual 5 Prev 6 Next bccomp bccomp Compare two arbitrary precision numbers Description int bccomp string left operand string right operand int scale Compares the left operand to the right operand and returns the result as an integer The optional scale parameter is used to set the number of digits after the decimal place which will be used in the comparion The return value is 0 if the two operands are equal If the left operand is larger than the right operand the return value is 1 and if the left operand is less than the right operand the return value is 1 7 Prev 8 Home 9 Next bcadd 10 Up bcdiv 1 PHP Manual 2 Arbitrary precision mathematics functions 3 bccomp 4 bcmod PHP Manual 5 Prev 6 Next bcdiv bcdiv Divide two arbitrary precision numbers Description string bcdiv string left operand string right operand int scale Divides the left operand by the right operand and returns the result The optional scale sets the number of digits after the decimal place in the result See also 7 bcmul 8 Prev 9 Home 10 Next bccomp 11 Up bcmod 1 PHP Manual 2 Arbitrary precision mathematics functions 3 bcdiv 4 bcmul PHP Manual 5 Prev 6 Next bcmod bcmod Get modulus of an arbitrary precision number Description string bcmod string left operand string modulus Get the modulus of the left operand using modulus See also 7 bcdiv 8 Prev 9 Home 10 Next bcdiv 11 Up bcmul 1 PHP Manual 2 Arbitrary precision mathematics functions 3 bcmod 4 bcpow PHP Manual 5 Prev 6 Next bcmul bcmul Multiply two arbitrary precision number Description string bcmul string left operand string right operand int scale Multiply the left operand by the right operand and returns the result The optional scale sets the number of digits after the decimal place in the result See also 7 bcdiv 8 Prev 9 Home 10 Next bcmod 11 Up bcpow 1 PHP Manual 2 Arbitrary precision mathematics functions 3 bcmul 4 bcscale PHP Manual 5 Prev 6 Next bcpow bcpow Raise an arbitrary precision number to another Description string bcpow string x string y int scale Raise x to the power y The scale can be used to set the number of digits after the decimal place in the result See also 7 bcsqrt 8 Prev 9 Home 10 Next bcmul 11 Up bcscale 1 PHP Manual 2 Arbitrary precision mathematics functions 3 bcpow 4 bcsqrt PHP Manual 5 Prev 6 Next bcscale bcscale Set default scale parameter for all bc math functions Description string bcscale int scale This function sets the default scale parameter for all subsequent bc math functions that do not explicitly specify a scale parameter 7 Prev 8 Home 9 Next bcpow 10 Up bcsqrt 1 PHP Manual 2 Arbitrary precision mathematics functions 3 bcscale 4 bcsub PHP Manual 5 Prev 6 Next bcsqrt bcsqrt Get the square root of an arbitray precision number Description string bcsqrt string operand int scale Return the square root of the operand The optional scale parameter sets the number of digits after the decimal place in the result See also 7 bcpow 8 Prev 9 Home 10 Next bcscale 11 Up bcsub 1 PHP Manual 2 Arbitrary precision mathematics functions 3 bcsqrt 4 Calendar functions PHP Manual 5 Prev 6 Next bcsub bcsub Subtract one arbitrary precision number from another Description string bcsub string left operand string right operand int scale Subtracts the right operand from the left operand and returns the result in a string The optional scale parameter is used to set the number of digits after the decimal place in the result See also 7 bcadd 8 Prev 9 Home 10 Next bcsqrt 11 Up Calendar functions 1 PHP Manual 2 Function Reference 3 bcsub 4 JDToGregorian PHP Manual 5 Prev 6 Next VI Calendar functions The calendar functions are only available if you have compiled the calendar extension in dl calendar Read dl README for instructions on using it The calendar extension presents a series of functions to simplify converting between different calendar formats The intermediary or standard it is based on is the Julian Day Count The Julian Day Count is a count of days starting way earlier than any date most people would need to track somewhere around 4000bc To convert between calendar systems you must first convert to Julian Day Count then to the calendar system of your choice Julian Day Count is very different from the Julian Calendar For more information on calendar systems visit 7 http genealogy org scottlee cal overview html Excerpts from this page are included in these instructions and are in quotes Table of Contents 8 JDToGregorian Converts Julian Day Count to Gregorian date 9 GregorianToJD Converts a Gregorian date to Julian Day Count 10 JDToJulian Converts a Julian Calendar date to Julian Day Count 11 JulianToJD Converts a Julian Calendar date to Julian Day Count 12 JDToJewish Converts a Julian Day Count to the Jewish Calendar 13 JewishToJD Converts a date in the Jewish Calendar to Julian Day Count 14 JDToFrench Converts a Julian Day Count to the French Republican Calendar 15 FrenchToJD Converts a date from the French Republican Calendar to a Julian Day Count 16 JDMonthName Returns a month name 17 JDDayOfWeek Returns the day of the week 18 easter date get UNIX timestamp for midnight on Easter of a given year 19 easter days get number of days after March 21 on which Easter falls for a given year 20 Prev 21 Home 22 Next bcsub 23 Up JDToGregorian 1 PHP Manual 2 Calendar functions 3 Calendar functions 4 GregorianToJD PHP Manual 5 Prev 6 Next JDToGregorian JDToGregorian Converts Julian Day Count to Gregorian date Description string jdtogregorian int julianday Converts Julian Day Count to a string containing the Gregorian date in the format of month day year 7 Prev 8 Home 9 Next Calendar functions 10 Up GregorianToJD 1 PHP Manual 2 Calendar functions 3 JDToGregorian 4 JDToJulian PHP Manual 5 Prev 6 Next GregorianToJD GregorianToJD Converts a Gregorian date to Julian Day Count Description int gregoriantojd int month int day int year Valid Range for Gregorian Calendar 4714 B C to 9999 A D Although this software can handle dates all the way back to 4714 B C such use may not be meaningful The Gregorian calendar was not instituted until October 15 1582 or October 5 1582 in the Julian calendar Some countries did not accept it until much later For example Britain converted in 1752 The USSR in 1918 and Greece in 1923 Most European countries used the Julian calendar prior to the Gregorian Example 1 Calendar functions php jd GregorianToJD 10 11 1970 echo jd n gregorian JDToGregorian jd echo gregorian n 7 Prev 8 Home 9 Next JDToGregorian 10 Up JDToJulian 1 PHP Manual 2 Calendar functions 3 GregorianToJD 4 JulianToJD PHP Manual 5 Prev 6 Next JDToJulian JDToJulian Converts a Julian Calendar date to Julian Day Count Description string jdtojulian int julianday Converts Julian Day Count to a string containing the Julian Calendar Date in the format of month day year 7 Prev 8 Home 9 Next GregorianToJD 10 Up JulianToJD 1 PHP Manual 2 Calendar functions 3 JDToJulian 4 JDToJewish PHP Manual 5 Prev 6 Next JulianToJD JulianToJD Converts a Julian Calendar date to Julian Day Count Description int juliantojd int month int day int year Valid Range for Julian Calendar 4713 B C to 9999 A D Although this software can handle dates all the way back to 4713 B C such use may not be meaningful The calendar was created in 46 B C but the details did not stabilize until at least 8 A D and perhaps as late at the 4th century Also the beginning of a year varied from one culture to another not all accepted January as the first month 7 Prev 8 Home 9 Next JDToJulian 10 Up JDToJewish 1 PHP Manual 2 Calendar functions 3 JulianToJD 4 JewishToJD PHP Manual 5 Prev 6 Next JDToJewish JDToJewish Converts a Julian Day Count to the Jewish Calendar Description string jdtojewish int julianday Converts a Julian Day Count the the Jewish Calendar 7 Prev 8 Home 9 Next JulianToJD 10 Up JewishToJD 1 PHP Manual 2 Calendar functions 3 JDToJewish 4 JDToFrench PHP Manual 5 Prev 6 Next JewishToJD JewishToJD Converts a date in the Jewish Calendar to Julian Day Count Description int jewishtojd int month int day int year Valid Range Although this software can handle dates all the way back to the year 1 3761 B C such use may not be meaningful The Jewish calendar has been in use for several thousand years but in the early days there was no formula to determine the start of a month A new month was started when the new moon was first observed 7 Prev 8 Home 9 Next JDToJewish 10 Up JDToFrench 1 PHP Manual 2 Calendar functions 3 JewishToJD 4 FrenchToJD PHP Manual 5 Prev 6 Next JDToFrench JDToFrench Converts a Julian Day Count to the French Republican Calendar Description string jdtofrench int month int day int year Converts a Julian Day Count to the French Republican Calendar 7 Prev 8 Home 9 Next JewishToJD 10 Up FrenchToJD 1 PHP Manual 2 Calendar functions 3 JDToFrench 4 JDMonthName PHP Manual 5 Prev 6 Next FrenchToJD FrenchToJD Converts a date from the French Republican Calendar to a Julian Day Count Description int frenchtojd int month int day int year Converts a date from the French Republican Calendar to a Julian Day Count These routines only convert dates in years 1 through 14 Gregorian dates 22 September 1792 through 22 September 1806 This more than covers the period when the calendar was in use 7 Prev 8 Home 9 Next JDToFrench 10 Up JDMonthName 1 PHP Manual 2 Calendar functions 3 FrenchToJD 4 JDDayOfWeek PHP Manual 5 Prev 6 Next JDMonthName JDMonthName Returns a month name Description string jdmonthname int julianday int mode Returns a string containing a month name mode tells this function which calendar to convert the Julian Day Count to and what type of month names are to be returned Table 1 Calendar modes Mode Meaning 0 Gregorian apreviated 1 Gregorian 2 Julian apreviated 3 Julian 4 Jewish 5 French Republican 7 Prev 8 Home 9 Next FrenchToJD 10 Up JDDayOfWeek 1 PHP Manual 2 Calendar functions 3 JDMonthName 4 easter date PHP Manual 5 Prev 6 Next JDDayOfWeek JDDayOfWeek Returns the day of the week Description mixed jddayofweek int julianday int mode Returns the day of the week Can return a string or an int depending on the mode Table 1 Calendar week modes Mode Meaning 0 returns the day number as an int 0 sunday 1 monday etc 1 returns string containing the day of week english gregorian 2 returns a string containing the abreviated day of week english gregorian 7 Prev 8 Home 9 Next JDMonthName 10 Up easter date 1 PHP Manual 2 Calendar functions 3 JDDayOfWeek 4 easter days PHP Manual 5 Prev 6 Next easter date easter date get UNIX timestamp for midnight on Easter of a given year Description int easter date int year Returns the UNIX timestamp corresponding to midnight on Easter of the given year If no year is specified the current year is assumed Warning This function will generate a warning if the year is outside of the range for UNIX timestamps i e before 1970 or after 2037 Example 1 easter date example echo date M d Y easter date 1999 Apr 04 1999 echo date M d Y easter date 2000 Apr 23 2000 echo date M d Y easter date 2001 Apr 15 2001 The date of Easter Day was defined by the Council of Nicaea in AD325 as the Sunday after the first full moon which falls on or after the Spring Equinox The Equinox is assumed to always fall on 21st March so the calculation reduces to determining the date of the full moon and the date of the following Sunday The algorithm used here was introduced around the year 532 by Dionysius Exiguus Under the Julian Calendar for years before 1753 a simple 19 year cycle is used to track the phases of the Moon Under the Gregorian Calendar for years after 1753 devised by Clavius and Lilius and introduced by Pope Gregory XIII in October 1582 and into Britain and its then colonies in September 1752 two correction factors are added to make the cycle more accurate The code is based on a C program by Simon Kershaw webmaster ely anglican org See 7 easter days for calculating Easter before 1970 or after 2037 8 Prev 9 Home 10 Next JDDayOfWeek 11 Up easter days 1 PHP Manual 2 Calendar functions 3 easter date 4 ClibPDF functions PHP Manual 5 Prev 6 Next easter days easter days get number of days after March 21 on which Easter falls for a given year Description int easter days int year Returns the number of days after March 21 on which Easter falls for a given year If no year is specified the current year is assumed This function can be used instead of 7 easter date to calculate Easter for years which fall outside the range of UNIX timestamps i e before 1970 or after 2037 Example 1 8 easter date example echo easter days 1999 14 i e April 4 echo easter days 1492 32 i e April 22 echo easter days 1913 2 i e March 23 The date of Easter Day was defined by the Council of Nicaea in AD325 as the Sunday after the first full moon which falls on or after the Spring Equinox The Equinox is assumed to always fall on 21st March so the calculation reduces to determining the date of the full moon and the date of the following Sunday The algorithm used here was introduced around the year 532 by Dionysius Exiguus Under the Julian Calendar for years before 1753 a simple 19 year cycle is used to track the phases of the Moon Under the Gregorian Calendar for years after 1753 devised by Clavius and Lilius and introduced by Pope Gregory XIII in October 1582 and into Britain and its then colonies in September 1752 two correction factors are added to make the cycle more accurate The code is based on a C program by Simon Kershaw webmaster ely anglican org See also 9 easter date 10 Prev 11 Home 12 Next easter date 13 Up ClibPDF functions 1 PHP Manual 2 Function Reference 3 easter days 4 cpdf set creator PHP Manual 5 Prev 6 Next VII ClibPDF functions ClibPDF allows to create pdf documents with PHP It is available at 7 FastIO but is not free software You should definitely read the licence before you start playing with ClibPDF If you cannot fullfil the licence agreement consider using pdflib by Thomas Merz which is also very powerful ClibPDF functionality and API is similar to Thomas Merz pdflib but ClibPDF is according to FastIO faster and creates smaller documents This may have changed with the new version 2 0 of pdflib A simple benchmark the pdfclock c example from pdflib 2 0 turned into a php script actually show no difference in speed at all The file size is also similar if compression is turned off This documentation should be read with the ClibPDF manual since it explains much of the library in much more detail Once you understand the manual of ClibPDF you should be able to start using the library with PHP Many functions in the native ClibPDF and the PHP module as well as in pdflib have the same name All functions except for 8 cpdf open take as their first parameter the handle for the document on which the function is to be performed Currently this handle is not used internally since ClibPDF does not support the creation of several PDF documents at the same time Actually you should not even try it the results are unpredictable I cannot oversee what the consequences in a multi threaded environment are According to the author of ClibPDF this will change in one of the next releases current version when this was written is 1 10 If you need this functionality use the pdflib module One big advantage of ClibPDF over pdflib is the possibility to create the pdf document completely in memory without using temporary files It also provides the ability to pass coordinates in a predefined unit length This is a handy feature but can be simulated with 9 pdf translate Most of the functions are fairly easy to use The most difficult part is probably creating a very simple PDF document at all The following example should help you get started It creates a document with one page The page contains the text Times Roman in an outlined 30pt font The text is underlined Example 1 Simple ClibPDF Example php cpdf cpdf open 0 cpdf page init cpdf 1 0 595 842 cpdf add outline cpdf 0 0 0 1 Page 1 cpdf set font cpdf Times Roman 30 4 cpdf set text rendering cpdf 1 cpdf text cpdf Times Roman outlined 50 750 cpdf moveto cpdf 50 740 cpdf lineto cpdf 330 740 cpdf stroke cpdf cpdf finalize cpdf Header Content type application pdf cpdf output buffer cpdf cpdf close cpdf The pdflib distribution contains a more complex example which creates a series of pages with an analog clock Here is that example converted into PHP using the ClibPDF extension Example 2 pdfclock example from pdflib 2 0 distribution php radius 200 margin 20 pagecount 40 pdf cpdf open 0 cpdf set creator pdf pdf clock php3 cpdf set title pdf Analog Clock while pagecount 0 cpdf page init pdf pagecount 1 0 2 radius margin 2 radius margin 1 0 cpdf set page animation pdf 4 0 5 0 0 0 wipe cpdf translate pdf radius margin radius margin cpdf save pdf cpdf setrgbcolor pdf 0 0 0 0 1 0 minute strokes cpdf setlinewidth pdf 2 0 for alpha 0 alpha 360 alpha 6 cpdf rotate pdf 6 0 cpdf moveto pdf radius 0 0 cpdf lineto pdf radius margin 3 0 0 cpdf stroke pdf cpdf restore pdf cpdf save pdf 5 minute strokes cpdf setlinewidth pdf 3 0 for alpha 0 alpha 360 alpha 30 cpdf rotate pdf 30 0 cpdf moveto pdf radius 0 0 cpdf lineto pdf radius margin 0 0 cpdf stroke pdf ltime getdate draw hour hand cpdf save pdf cpdf rotate pdf ltime minutes 60 0 ltime hours 3 0 30 0 cpdf moveto pdf radius 10 radius 20 cpdf lineto pdf radius 2 0 0 cpdf lineto pdf radius 10 radius 20 cpdf closepath pdf cpdf fill pdf cpdf restore pdf draw minute hand cpdf save pdf cpdf rotate pdf ltime seconds 60 0 ltime minutes 15 0 6 0 cpdf moveto pdf radius 10 radius 20 cpdf lineto pdf radius 0 8 0 0 cpdf lineto pdf radius 10 radius 20 cpdf closepath pdf cpdf fill pdf cpdf restore pdf draw second hand cpdf setrgbcolor pdf 1 0 0 0 0 0 cpdf setlinewidth pdf 2 cpdf save pdf cpdf rotate pdf ltime seconds 15 0 6 0 cpdf moveto pdf radius 5 0 0 cpdf lineto pdf radius 0 0 cpdf stroke pdf cpdf restore pdf draw little circle at center cpdf circle pdf 0 0 radius 30 cpdf fill pdf cpdf restore pdf cpdf finalize page pdf pagecount 1 cpdf finalize pdf Header Content type application pdf cpdf output buffer pdf cpdf close pdf Table of Contents 10 cpdf set creator Sets the creator field in the pdf document 11 cpdf set title Sets the title field of the pdf document 12 cpdf set subject Sets the subject field of the pdf document 13 cpdf set keywords Sets the keywords field of the pdf document 14 cpdf open Opens a new pdf document 15 cpdf close Closes the pdf document 16 cpdf page init Starts new page 17 cpdf finalize page Ends page 18 cpdf finalize Ends document 19 cpdf output buffer Outputs the pdf document in memory buffer 20 cpdf save to file Writes the pdf document into a file 21 cpdf set current page Sets current page 22 cpdf begin text Starts text section 23 cpdf end text Starts text section 24 cpdf show Output text at current position 25 cpdf show xy Output text at position 26 cpdf text Output text with parameters 27 cpdf set font Select the current font face and size 28 cpdf set leading Sets distance between text lines 29 cpdf set text rendering Determines how text is rendered 30 cpdf set horiz scaling Sets horizontal scaling of text 31 cpdf set text rise Sets the text rise 32 cpdf set text matrix Sets the text matrix 33 cpdf set text pos Sets text position 34 cpdf set char spacing Sets character spacing 35 cpdf set word spacing Sets spacing between words 36 cpdf continue text Output text in next line 37 cpdf stringwidth Returns width of text in current font 38 cpdf save Saves current enviroment 39 cpdf restore Restores formerly saved enviroment 40 cpdf translate Sets origin of coordinate system 41 cpdf scale Sets scaling 42 cpdf rotate Sets rotation 43 cpdf setflat Sets flatness 44 cpdf setlinejoin Sets linejoin parameter 45 cpdf setlinecap Sets linecap aparameter 46 cpdf setmiterlimit Sets miter limit 47 cpdf setlinewidth Sets line width 48 cpdf setdash Sets dash pattern 49 cpdf moveto Sets current point 50 cpdf rmoveto Sets current point 51 cpdf curveto Draws a curve 52 cpdf lineto Draws a line 53 cpdf rlineto Draws a line 54 cpdf circle Draw a circle 55 cpdf arc Draws an arc 56 cpdf rect Draw a rectangle 57 cpdf closepath Close path 58 cpdf stroke Draw line along path 59 cpdf closepath stroke Close path and draw line along path 60 cpdf fill Fill current path 61 cpdf fill stroke Fill and stroke current path 62 cpdf closepath fill stroke Close fill and stroke current path 63 cpdf clip Clips to current path 64 cpdf setgray fill Sets filling color to gray value 65 cpdf setgray stroke Sets drawing color to gray value 66 cpdf setgray Sets drawing and filling color to gray value 67 cpdf setrgbcolor fill Sets filling color to rgb color value 68 cpdf setrgbcolor stroke Sets drawing color to rgb color value 69 cpdf setrgbcolor Sets drawing and filling color to rgb color value 70 cpdf add outline Adds bookmark for current page 71 cpdf set page animation Sets duration between pages 72 cpdf import jpeg Opens a JPEG image 73 cpdf place inline image Places an image on the page 74 cpdf add annotation Adds annotation 75 Prev 76 Home 77 Next easter days 78 Up cpdf set creator 1 PHP Manual 2 ClibPDF functions 3 ClibPDF functions 4 cpdf set title PHP Manual 5 Prev 6 Next cpdf set creator cpdf set creator Sets the creator field in the pdf document Description void cpdf set creator string creator The cpdf set creator function sets the creator of a pdf document See also 7 cpdf set subject 8 cpdf set title 9 cpdf set keywords 10 Prev 11 Home 12 Next ClibPDF functions 13 Up cpdf set title 1 PHP Manual 2 ClibPDF functions 3 cpdf set creator 4 cpdf set subject PHP Manual 5 Prev 6 Next cpdf set title cpdf set title Sets the title field of the pdf document Description void cpdf set title string title The cpdf set title function sets the title of a pdf document See also 7 cpdf set subject 8 cpdf set creator 9 cpdf set keywords 10 Prev 11 Home 12 Next cpdf set creator 13 Up cpdf set subject 1 PHP Manual 2 ClibPDF functions 3 cpdf set title 4 cpdf set keywords PHP Manual 5 Prev 6 Next cpdf set subject cpdf set subject Sets the subject field of the pdf document Description void cpdf set subject string subject The cpdf set subject function sets the subject of a pdf document See also 7 cpdf set title 8 cpdf set creator 9 cpdf set keywords 10 Prev 11 Home 12 Next cpdf set title 13 Up cpdf set keywords 1 PHP Manual 2 ClibPDF functions 3 cpdf set subject 4 cpdf open PHP Manual 5 Prev 6 Next cpdf set keywords cpdf set keywords Sets the keywords field of the pdf document Description void cpdf set keywords string keywords The cpdf set keywords function sets the keywords of a pdf document See also 7 cpdf set title 8 cpdf set creator 9 cpdf set subject 10 Prev 11 Home 12 Next cpdf set subject 13 Up cpdf open 1 PHP Manual 2 ClibPDF functions 3 cpdf set keywords 4 cpdf close PHP Manual 5 Prev 6 Next cpdf open cpdf open Opens a new pdf document Description int cpdf open int compression string filename The cpdf open function opens a new pdf document The first parameter turns document compression on if it is unequal to 0 The second optional parameter sets the file in which the document is written If it is omitted the document is created in memory and can either be written into a file with the 7 cpdf save to file or written to standard output with 8 cpdf output buffer Note The return value will be needed in futher versions of ClibPDF as the first parameter in all other functions which are writing to the pdf document The ClibPDF library takes the filename as a synonym for stdout If PHP is compiled as an apache module this will not work because the way ClibPDF outputs to stdout does not work with apache You can solve this problem by skipping the filename and using 9 cpdf output buffer to output the pdf document See also 10 cpdf close 11 cpdf output buffer 12 Prev 13 Home 14 Next cpdf set keywords 15 Up cpdf close 1 PHP Manual 2 ClibPDF functions 3 cpdf open 4 cpdf page init PHP Manual 5 Prev 6 Next cpdf close cpdf close Closes the pdf document Description void cpdf close int pdf document The cpdf close function closes the pdf document This should be the last function even after 7 cpdf finalize 8 cpdf output buffer and 9 cpdf save to file See also 10 cpdf open 11 Prev 12 Home 13 Next cpdf open 14 Up cpdf page init 1 PHP Manual 2 ClibPDF functions 3 cpdf close 4 cpdf finalize page PHP Manual 5 Prev 6 Next cpdf page init cpdf page init Starts new page Description void cpdf page init int pdf document int page number int orientation double height double width double unit The cpdf page init function starts a new page with height height and width width The page has number page number and orientation orientation orientation can be 0 for portrait and 1 for landscape The last optional parameter unit sets the unit for the koordinate system The value should be the number of postscript points per unit Since one inch is equal to 72 points a value of 72 would set the unit to one inch The default is also 72 See also 7 cpdf set current page 8 Prev 9 Home 10 Next cpdf close 11 Up cpdf finalize page 1 PHP Manual 2 ClibPDF functions 3 cpdf page init 4 cpdf finalize PHP Manual 5 Prev 6 Next cpdf finalize page cpdf finalize page Ends page Description void cpdf finalize page int pdf document int page number The cpdf finalize page function ends the page with page number page number This function is only for saving memory A finalized page takes less memory but cannot be modified anymore See also 7 cpdf page init 8 Prev 9 Home 10 Next cpdf page init 11 Up cpdf finalize 1 PHP Manual 2 ClibPDF functions 3 cpdf finalize page 4 cpdf output buffer PHP Manual 5 Prev 6 Next cpdf finalize cpdf finalize Ends document Description void cpdf finalize int pdf document The cpdf finalize function ends the document You still have to call 7 cpdf close See also 8 cpdf close 9 Prev 10 Home 11 Next cpdf finalize page 12 Up cpdf output buffer 1 PHP Manual 2 ClibPDF functions 3 cpdf finalize 4 cpdf save to file PHP Manual 5 Prev 6 Next cpdf output buffer cpdf output buffer Outputs the pdf document in memory buffer Description void cpdf output buffer int pdf document The cpdf output buffer function outputs the pdf document to stdout The document has to be created in memory which is the case if 7 cpdf open has been called with no filename parameter See also 8 cpdf open 9 Prev 10 Home 11 Next cpdf finalize 12 Up cpdf save to file 1 PHP Manual 2 ClibPDF functions 3 cpdf output buffer 4 cpdf set current page PHP Manual 5 Prev 6 Next cpdf save to file cpdf save to file Writes the pdf document into a file Description void cpdf save to file int pdf document string filename The cpdf save to file function outputs the pdf document into a file if it has been created in memory This function is not needed if the pdf document has been open by specifying a filename as a parameter of 7 cpdf open See also 8 cpdf output buffer 9 cpdf open 10 Prev 11 Home 12 Next cpdf output buffer 13 Up cpdf set current page 1 PHP Manual 2 ClibPDF functions 3 cpdf save to file 4 cpdf begin text PHP Manual 5 Prev 6 Next cpdf set current page cpdf set current page Sets current page Description void cpdf set current page int pdf document int page number The cpdf set current page function set the page on which all operations are performed One can switch between pages until a page is finished with 7 cpdf finalize page See also 8 cpdf finalize page 9 Prev 10 Home 11 Next cpdf save to file 12 Up cpdf begin text 1 PHP Manual 2 ClibPDF functions 3 cpdf set current page 4 cpdf end text PHP Manual 5 Prev 6 Next cpdf begin text cpdf begin text Starts text section Description void cpdf begin text int pdf document The cpdf begin text function starts a text section It must be ended with 7 cpdf end text Example 1 Text output php cpdf begin text pdf cpdf set font pdf 16 Helvetica 4 cpdf text pdf 100 100 Some text cpdf end text pdf See also 8 cpdf end text 9 Prev 10 Home 11 Next cpdf set current page 12 Up cpdf end text 1 PHP Manual 2 ClibPDF functions 3 cpdf begin text 4 cpdf show PHP Manual 5 Prev 6 Next cpdf end text cpdf end text Starts text section Description void cpdf end text int pdf document The cpdf end text function ends a text section which was started with 7 cpdf begin text Example 1 Text output php cpdf begin text pdf cpdf set font pdf 16 Helvetica 4 cpdf text pdf 100 100 Some text cpdf end text pdf See also 8 cpdf begin text 9 Prev 10 Home 11 Next cpdf begin text 12 Up cpdf show 1 PHP Manual 2 ClibPDF functions 3 cpdf end text 4 cpdf show xy PHP Manual 5 Prev 6 Next cpdf show cpdf show Output text at current position Description void cpdf show int pdf document string text The cpdf show function outputs the string in text at the current position See also 7 cpdf text 8 cpdf begin text 9 cpdf end text 10 Prev 11 Home 12 Next cpdf end text 13 Up cpdf show xy 1 PHP Manual 2 ClibPDF functions 3 cpdf show 4 cpdf text PHP Manual 5 Prev 6 Next cpdf show xy cpdf show xy Output text at position Description void cpdf show xy int pdf document string text double x koor double y koor int mode The cpdf show xy function outputs the string text at position with coordinates x koor y koor The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit Note The function cpdf show xy is identical to 7 cpdf text without the optional parameters See also 8 cpdf text 9 Prev 10 Home 11 Next cpdf show 12 Up cpdf text 1 PHP Manual 2 ClibPDF functions 3 cpdf show xy 4 cpdf set font PHP Manual 5 Prev 6 Next cpdf text cpdf text Output text with parameters Description void cpdf text int pdf document string text double x koor double y koor int mode double orientation int alignmode The cpdf text function outputs the string text at position with coordinates x koor y koor The optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit The optional parameter orientation is the rotation of the text in degree The optional parameter alignmode determines how the text is align See the ClibPDF documentation for possible values See also 7 cpdf show xy 8 Prev 9 Home 10 Next cpdf show xy 11 Up cpdf set font 1 PHP Manual 2 ClibPDF functions 3 cpdf text 4 cpdf set leading PHP Manual 5 Prev 6 Next cpdf set font cpdf set font Select the current font face and size Description void cpdf set font int pdf document string font name double size int encoding The cpdf set font function sets the the current font face font size and encoding Currently only the standard postscript fonts are supported The last parameter encoding can take the following values 2 macroman 3 macexpert 4 winansi Any other value selects the font s buildin encoding 7 Prev 8 Home 9 Next cpdf text 10 Up cpdf set leading 1 PHP Manual 2 ClibPDF functions 3 cpdf set font 4 cpdf set text rendering PHP Manual 5 Prev 6 Next cpdf set leading cpdf set leading Sets distance between text lines Description void cpdf set leading int pdf document double distance The cpdf set leading function sets the distance between text lines This will be used if text is output by 7 cpdf continue text See also 8 cpdf continue text 9 Prev 10 Home 11 Next cpdf set font 12 Up cpdf set text rendering 1 PHP Manual 2 ClibPDF functions 3 cpdf set leading 4 cpdf set horiz scaling PHP Manual 5 Prev 6 Next cpdf set text rendering cpdf set text rendering Determines how text is rendered Description void cpdf set text rendering int pdf document int mode The cpdf set text rendering function determines how text is rendered The possible values for mode are 0 fill text 1 stroke text 2 fill and stroke text 3 invisible 4 fill text and add it to cliping path 5 stroke text and add it to clipping path 6 fill and stroke text and add it to cliping path 7 add it to clipping path 7 Prev 8 Home 9 Next cpdf set leading 10 Up cpdf set horiz scaling 1 PHP Manual 2 ClibPDF functions 3 cpdf set text rendering 4 cpdf set text rise PHP Manual 5 Prev 6 Next cpdf set horiz scaling cpdf set horiz scaling Sets horizontal scaling of text Description void cpdf set horiz scaling int pdf document double scale The cpdf set horiz scaling function sets the horizontal scaling to scale percent 7 Prev 8 Home 9 Next cpdf set text rendering 10 Up cpdf set text rise 1 PHP Manual 2 ClibPDF functions 3 cpdf set horiz scaling 4 cpdf set text matrix PHP Manual 5 Prev 6 Next cpdf set text rise cpdf set text rise Sets the text rise Description void cpdf set text rise int pdf document double value The cpdf set text rise function sets the text rising to value units 7 Prev 8 Home 9 Next cpdf set horiz scaling 10 Up cpdf set text matrix 1 PHP Manual 2 ClibPDF functions 3 cpdf set text rise 4 cpdf set text pos PHP Manual 5 Prev 6 Next cpdf set text matrix cpdf set text matrix Sets the text matrix Description void cpdf set text matrix int pdf document array matrix The cpdf set text matrix function sets a matrix which describes a transformation applied on the current text font 7 Prev 8 Home 9 Next cpdf set text rise 10 Up cpdf set text pos 1 PHP Manual 2 ClibPDF functions 3 cpdf set text matrix 4 cpdf set char spacing PHP Manual 5 Prev 6 Next cpdf set text pos cpdf set text pos Sets text position Description void cpdf set text pos int pdf document double x koor double y koor int mode The cpdf set text pos function sets the position of text for the next 7 cpdf show function call The last optional parameter mode determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit See also 8 cpdf show 9 cpdf text 10 Prev 11 Home 12 Next cpdf set text matrix 13 Up cpdf set char spacing 1 PHP Manual 2 ClibPDF functions 3 cpdf set text pos 4 cpdf set word spacing PHP Manual 5 Prev 6 Next cpdf set char spacing cpdf set char spacing Sets character spacing Description void cpdf set char spacing int pdf document double space The cpdf set char spacing function sets the spacing between characters See also 7 cpdf set word spacing 8 cpdf set leading 9 Prev 10 Home 11 Next cpdf set text pos 12 Up cpdf set word spacing 1 PHP Manual 2 ClibPDF functions 3 cpdf set char spacing 4 cpdf continue text PHP Manual 5 Prev 6 Next cpdf set word spacing cpdf set word spacing Sets spacing between words Description void cpdf set word spacing int pdf document double space The cpdf set word spacing function sets the spacing between words See also 7 cpdf set char spacing 8 cpdf set leading 9 Prev 10 Home 11 Next cpdf set char spacing 12 Up cpdf continue text 1 PHP Manual 2 ClibPDF functions 3 cpdf set word spacing 4 cpdf stringwidth PHP Manual 5 Prev 6 Next cpdf continue text cpdf continue text Output text in next line Description void cpdf continue text int pdf document string text The cpdf continue text function outputs the string in text in the next line See also 7 cpdf show xy 8 cpdf text 9 cpdf set leading 10 cpdf set text pos 11 Prev 12 Home 13 Next cpdf set word spacing 14 Up cpdf stringwidth 1 PHP Manual 2 ClibPDF functions 3 cpdf continue text 4 cpdf save PHP Manual 5 Prev 6 Next cpdf stringwidth cpdf stringwidth Returns width of text in current font Description double cpdf stringwidth int pdf document string text The cpdf stringwidth function returns the width of the string in text It requires a font to be set before See also 7 cpdf set font 8 Prev 9 Home 10 Next cpdf continue text 11 Up cpdf save 1 PHP Manual 2 ClibPDF functions 3 cpdf stringwidth 4 cpdf restore PHP Manual 5 Prev 6 Next cpdf save cpdf save Saves current enviroment Description void cpdf save int pdf document The cpdf save function saves the current enviroment It works like the postscript command gsave Very useful if you want to translate or rotate an object without effecting other objects See also 7 cpdf restore 8 Prev 9 Home 10 Next cpdf stringwidth 11 Up cpdf restore 1 PHP Manual 2 ClibPDF functions 3 cpdf save 4 cpdf translate PHP Manual 5 Prev 6 Next cpdf restore cpdf restore Restores formerly saved enviroment Description void cpdf restore int pdf document The cpdf restore function restores the enviroment saved with 7 cpdf save It works like the postscript command grestore Very useful if you want to translate or rotate an object without effecting other objects Example 1 Save Restore php cpdf save pdf do all kinds of rotations transformations cpdf restore pdf See also 8 cpdf save 9 Prev 10 Home 11 Next cpdf save 12 Up cpdf translate 1 PHP Manual 2 ClibPDF functions 3 cpdf restore 4 cpdf scale PHP Manual 5 Prev 6 Next cpdf translate cpdf translate Sets origin of coordinate system Description void cpdf translate int pdf document double x koor double y koor int mode The cpdf translate function set the origin of coordinate system to the point x koor y koor The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit 7 Prev 8 Home 9 Next cpdf restore 10 Up cpdf scale 1 PHP Manual 2 ClibPDF functions 3 cpdf translate 4 cpdf rotate PHP Manual 5 Prev 6 Next cpdf scale cpdf scale Sets scaling Description void cpdf scale int pdf document double x scale double y scale The cpdf scale function set the scaling factor in both directions 7 Prev 8 Home 9 Next cpdf translate 10 Up cpdf rotate 1 PHP Manual 2 ClibPDF functions 3 cpdf scale 4 cpdf setflat PHP Manual 5 Prev 6 Next cpdf rotate cpdf rotate Sets rotation Description void cpdf rotate int pdf document double angle The cpdf rotate function set the rotation in degress to angle 7 Prev 8 Home 9 Next cpdf scale 10 Up cpdf setflat 1 PHP Manual 2 ClibPDF functions 3 cpdf rotate 4 cpdf setlinejoin PHP Manual 5 Prev 6 Next cpdf setflat cpdf setflat Sets flatness Description void cpdf setflat int pdf document double value The cpdf setflat function set the flatness to a value between 0 and 100 7 Prev 8 Home 9 Next cpdf rotate 10 Up cpdf setlinejoin 1 PHP Manual 2 ClibPDF functions 3 cpdf setflat 4 cpdf setlinecap PHP Manual 5 Prev 6 Next cpdf setlinejoin cpdf setlinejoin Sets linejoin parameter Description void cpdf setlinejoin int pdf document long value The cpdf setlinejoin function set the linejoin parameter between a value of 0 and 2 0 miter 1 round 2 bevel 7 Prev 8 Home 9 Next cpdf setflat 10 Up cpdf setlinecap 1 PHP Manual 2 ClibPDF functions 3 cpdf setlinejoin 4 cpdf setmiterlimit PHP Manual 5 Prev 6 Next cpdf setlinecap cpdf setlinecap Sets linecap aparameter Description void cpdf setlinecap int pdf document int value The cpdf setlinecap function set the linecap parameter between a value of 0 and 2 0 butt end 1 round 2 projecting square 7 Prev 8 Home 9 Next cpdf setlinejoin 10 Up cpdf setmiterlimit 1 PHP Manual 2 ClibPDF functions 3 cpdf setlinecap 4 cpdf setlinewidth PHP Manual 5 Prev 6 Next cpdf setmiterlimit cpdf setmiterlimit Sets miter limit Description void cpdf setmiterlimit int pdf document double value The cpdf setmiterlimit function set the miter limit to a value greater or equal than 1 7 Prev 8 Home 9 Next cpdf setlinecap 10 Up cpdf setlinewidth 1 PHP Manual 2 ClibPDF functions 3 cpdf setmiterlimit 4 cpdf setdash PHP Manual 5 Prev 6 Next cpdf setlinewidth cpdf setlinewidth Sets line width Description void cpdf setlinewidth int pdf document double width The cpdf setlinewidth function set the line width to width 7 Prev 8 Home 9 Next cpdf setmiterlimit 10 Up cpdf setdash 1 PHP Manual 2 ClibPDF functions 3 cpdf setlinewidth 4 cpdf moveto PHP Manual 5 Prev 6 Next cpdf setdash cpdf setdash Sets dash pattern Description void cpdf setdash int pdf document double white double black The cpdf setdash function set the dash pattern white white units and black black units If both are 0 a solid line is set 7 Prev 8 Home 9 Next cpdf setlinewidth 10 Up cpdf moveto 1 PHP Manual 2 ClibPDF functions 3 cpdf setdash 4 cpdf rmoveto PHP Manual 5 Prev 6 Next cpdf moveto cpdf moveto Sets current point Description void cpdf moveto int pdf document double x koor double y koor int mode The cpdf moveto function set the current point to the coordinates x koor and y koor The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit 7 Prev 8 Home 9 Next cpdf setdash 10 Up cpdf rmoveto 1 PHP Manual 2 ClibPDF functions 3 cpdf moveto 4 cpdf curveto PHP Manual 5 Prev 6 Next cpdf rmoveto cpdf rmoveto Sets current point Description void cpdf rmoveto int pdf document double x koor double y koor int mode The cpdf rmoveto function set the current point relative to the coordinates x koor and y koor The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit See also 7 cpdf moveto 8 Prev 9 Home 10 Next cpdf moveto 11 Up cpdf curveto 1 PHP Manual 2 ClibPDF functions 3 cpdf rmoveto 4 cpdf lineto PHP Manual 5 Prev 6 Next cpdf curveto cpdf curveto Draws a curve Description void cpdf curveto int pdf document double x1 double y1 double x2 double y2 double x3 double y3 int mode The cpdf curveto function draws a Bezier curve from the current point to the point x3 y3 using x1 y1 and x2 y2 as control points The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit See also 7 cpdf moveto 8 cpdf rmoveto 9 cpdf rlineto 10 cpdf lineto 11 Prev 12 Home 13 Next cpdf rmoveto 14 Up cpdf lineto 1 PHP Manual 2 ClibPDF functions 3 cpdf curveto 4 cpdf rlineto PHP Manual 5 Prev 6 Next cpdf lineto cpdf lineto Draws a line Description void cpdf lineto int pdf document double x koor double y koor int mode The cpdf lineto function draws a line from the current point to the point with coordinates x koor y koor The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit See also 7 cpdf moveto 8 cpdf rmoveto 9 cpdf curveto 10 Prev 11 Home 12 Next cpdf curveto 13 Up cpdf rlineto 1 PHP Manual 2 ClibPDF functions 3 cpdf lineto 4 cpdf circle PHP Manual 5 Prev 6 Next cpdf rlineto cpdf rlineto Draws a line Description void cpdf rlineto int pdf document double x koor double y koor int mode The cpdf rlineto function draws a line from the current point to the relative point with coordinates x koor y koor The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit See also 7 cpdf moveto 8 cpdf rmoveto 9 cpdf curveto 10 Prev 11 Home 12 Next cpdf lineto 13 Up cpdf circle 1 PHP Manual 2 ClibPDF functions 3 cpdf rlineto 4 cpdf arc PHP Manual 5 Prev 6 Next cpdf circle cpdf circle Draw a circle Description void cpdf circle int pdf document double x koor double y koor double radius int mode The cpdf circle function draws a circle with center at point x koor y koor and radius radius The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit See also 7 cpdf arc 8 Prev 9 Home 10 Next cpdf rlineto 11 Up cpdf arc 1 PHP Manual 2 ClibPDF functions 3 cpdf circle 4 cpdf rect PHP Manual 5 Prev 6 Next cpdf arc cpdf arc Draws an arc Description void cpdf arc int pdf document double x koor double y koor double radius double start double end int mode The cpdf arc function draws an arc with center at point x koor y koor and radius radius starting at angle start and ending at angle end The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit See also 7 cpdf circle 8 Prev 9 Home 10 Next cpdf circle 11 Up cpdf rect 1 PHP Manual 2 ClibPDF functions 3 cpdf arc 4 cpdf closepath PHP Manual 5 Prev 6 Next cpdf rect cpdf rect Draw a rectangle Description void cpdf rect int pdf document double x koor double y koor double width double height int mode The cpdf rect function draws a rectangle with its lower left corner at point x koor y koor This width is set to widgth This height is set to height The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit 7 Prev 8 Home 9 Next cpdf arc 10 Up cpdf closepath 1 PHP Manual 2 ClibPDF functions 3 cpdf rect 4 cpdf stroke PHP Manual 5 Prev 6 Next cpdf closepath cpdf closepath Close path Description void cpdf closepath int pdf document The cpdf closepath function closes the current path 7 Prev 8 Home 9 Next cpdf rect 10 Up cpdf stroke 1 PHP Manual 2 ClibPDF functions 3 cpdf closepath 4 cpdf closepath stroke PHP Manual 5 Prev 6 Next cpdf stroke cpdf stroke Draw line along path Description void cpdf stroke int pdf document The cpdf stroke function draws a line along current path See also 7 cpdf closepath 8 cpdf closepath stroke 9 Prev 10 Home 11 Next cpdf closepath 12 Up cpdf closepath stroke 1 PHP Manual 2 ClibPDF functions 3 cpdf stroke 4 cpdf fill PHP Manual 5 Prev 6 Next cpdf closepath stroke cpdf closepath stroke Close path and draw line along path Description void cpdf closepath stroke int pdf document The cpdf closepath stroke function is a combination of 7 cpdf closepath and 8 cpdf stroke Than clears the path See also 9 cpdf closepath 10 cpdf stroke 11 Prev 12 Home 13 Next cpdf stroke 14 Up cpdf fill 1 PHP Manual 2 ClibPDF functions 3 cpdf closepath stroke 4 cpdf fill stroke PHP Manual 5 Prev 6 Next cpdf fill cpdf fill Fill current path Description void cpdf fill int pdf document The cpdf fill function fills the interior of the current path with the current fill color See also 7 cpdf closepath 8 cpdf stroke 9 cpdf setgray fill 10 cpdf setgray 11 cpdf setrgbcolor fill 12 cpdf setrgbcolor 13 Prev 14 Home 15 Next cpdf closepath stroke 16 Up cpdf fill stroke 1 PHP Manual 2 ClibPDF functions 3 cpdf fill 4 cpdf closepath fill stroke PHP Manual 5 Prev 6 Next cpdf fill stroke cpdf fill stroke Fill and stroke current path Description void cpdf fill stroke int pdf document The cpdf fill stroke function fills the interior of the current path with the current fill color and draws current path See also 7 cpdf closepath 8 cpdf stroke 9 cpdf fill 10 cpdf setgray fill 11 cpdf setgray 12 cpdf setrgbcolor fill 13 cpdf setrgbcolor 14 Prev 15 Home 16 Next cpdf fill 17 Up cpdf closepath fill stroke 1 PHP Manual 2 ClibPDF functions 3 cpdf fill stroke 4 cpdf clip PHP Manual 5 Prev 6 Next cpdf closepath fill stroke cpdf closepath fill stroke Close fill and stroke current path Description void cpdf closepath fill stroke int pdf document The cpdf closepath fill stroke function closes fills the interior of the current path with the current fill color and draws current path See also 7 cpdf closepath 8 cpdf stroke 9 cpdf fill 10 cpdf setgray fill 11 cpdf setgray 12 cpdf setrgbcolor fill 13 cpdf setrgbcolor 14 Prev 15 Home 16 Next cpdf fill stroke 17 Up cpdf clip 1 PHP Manual 2 ClibPDF functions 3 cpdf closepath fill stroke 4 cpdf setgray fill PHP Manual 5 Prev 6 Next cpdf clip cpdf clip Clips to current path Description void cpdf clip int pdf document The cpdf clip function clips all drawing to the current path 7 Prev 8 Home 9 Next cpdf closepath fill stroke 10 Up cpdf setgray fill 1 PHP Manual 2 ClibPDF functions 3 cpdf clip 4 cpdf setgray stroke PHP Manual 5 Prev 6 Next cpdf setgray fill cpdf setgray fill Sets filling color to gray value Description void cpdf setgray fill int pdf document double value The cpdf setgray fill function sets the current gray value to fill a path See also 7 cpdf setrgbcolor fill 8 Prev 9 Home 10 Next cpdf clip 11 Up cpdf setgray stroke 1 PHP Manual 2 ClibPDF functions 3 cpdf setgray fill 4 cpdf setgray PHP Manual 5 Prev 6 Next cpdf setgray stroke cpdf setgray stroke Sets drawing color to gray value Description void cpdf setgray stroke int pdf document double gray value The cpdf setgray stroke function sets the current drawing color to the given gray value See also 7 cpdf setrgbcolor stroke 8 Prev 9 Home 10 Next cpdf setgray fill 11 Up cpdf setgray 1 PHP Manual 2 ClibPDF functions 3 cpdf setgray stroke 4 cpdf setrgbcolor fill PHP Manual 5 Prev 6 Next cpdf setgray cpdf setgray Sets drawing and filling color to gray value Description void cpdf setgray int pdf document double gray value The 7 cpdf setgray stroke function sets the current drawing and filling color to the given gray value See also 8 cpdf setrgbcolor stroke 9 cpdf setrgbcolor fill 10 Prev 11 Home 12 Next cpdf setgray stroke 13 Up cpdf setrgbcolor fill 1 PHP Manual 2 ClibPDF functions 3 cpdf setgray 4 cpdf setrgbcolor stroke PHP Manual 5 Prev 6 Next cpdf setrgbcolor fill cpdf setrgbcolor fill Sets filling color to rgb color value Description void cpdf setrgbcolor fill int pdf document double red value double green value double blue value The cpdf setrgbcolor fill function sets the current rgb color value to fill a path See also 7 cpdf setrgbcolor stroke 8 cpdf setrgbcolor 9 Prev 10 Home 11 Next cpdf setgray 12 Up cpdf setrgbcolor stroke 1 PHP Manual 2 ClibPDF functions 3 cpdf setrgbcolor fill 4 cpdf setrgbcolor PHP Manual 5 Prev 6 Next cpdf setrgbcolor stroke cpdf setrgbcolor stroke Sets drawing color to rgb color value Description void cpdf setrgbcolor stroke int pdf document double red value double green value double blue value The cpdf setrgbcolor stroke function sets the current drawing color to the given rgb color value See also 7 cpdf setrgbcolor fill 8 cpdf setrgbcolor 9 Prev 10 Home 11 Next cpdf setrgbcolor fill 12 Up cpdf setrgbcolor 1 PHP Manual 2 ClibPDF functions 3 cpdf setrgbcolor stroke 4 cpdf add outline PHP Manual 5 Prev 6 Next cpdf setrgbcolor cpdf setrgbcolor Sets drawing and filling color to rgb color value Description void cpdf setrgbcolor int pdf document double red value double green value double blue value The 7 cpdf setrgbcolor stroke function sets the current drawing and filling color to the given rgb color value See also 8 cpdf setrgbcolor stroke 9 cpdf setrgbcolor fill 10 Prev 11 Home 12 Next cpdf setrgbcolor stroke 13 Up cpdf add outline 1 PHP Manual 2 ClibPDF functions 3 cpdf setrgbcolor 4 cpdf set page animation PHP Manual 5 Prev 6 Next cpdf add outline cpdf add outline Adds bookmark for current page Description void cpdf add outline int pdf document string text The cpdf add outline function adds a bookmark with text text that points to the current page Example 1 Adding a page outline php cpdf cpdf open 0 cpdf page init cpdf 1 0 595 842 cpdf add outline cpdf 0 0 0 1 Page 1 some drawing cpdf finalize cpdf Header Content type application pdf cpdf output buffer cpdf cpdf close cpdf 7 Prev 8 Home 9 Next cpdf setrgbcolor 10 Up cpdf set page animation 1 PHP Manual 2 ClibPDF functions 3 cpdf add outline 4 cpdf import jpeg PHP Manual 5 Prev 6 Next cpdf set page animation cpdf set page animation Sets duration between pages Description void cpdf set page animation int pdf document int transition double duration The cpdf set page animation function set the transition between following pages The value of transition can be 0 for none 1 for two lines sweeping across the screen reveal the page 2 for multiple lines sweeping across the screen reveal the page 3 for a box reveals the page 4 for a single line sweeping across the screen reveals the page 5 for the old page dissolves to reveal the page 6 for the dissolve effect moves from one screen edge to another 7 for the old page is simply replaced by the new page default The value of duration is the number of seconds between page flipping 7 Prev 8 Home 9 Next cpdf add outline 10 Up cpdf import jpeg 1 PHP Manual 2 ClibPDF functions 3 cpdf set page animation 4 cpdf place inline image PHP Manual 5 Prev 6 Next cpdf import jpeg cpdf import jpeg Opens a JPEG image Description int cpdf open jpeg int pdf document string file name double x koor double y koor double angle double width double height double x scale double y scale int mode The cpdf import jpeg function opens an image stored in the file with the name file name The format of the image has to be jpeg The image is placed on the current page at position x koor y koor The image is rotated by angle degres The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit See also 7 cpdf place inline image 8 Prev 9 Home 10 Next cpdf set page animation 11 Up cpdf place inline image 1 PHP Manual 2 ClibPDF functions 3 cpdf import jpeg 4 cpdf add annotation PHP Manual 5 Prev 6 Next cpdf place inline image cpdf place inline image Places an image on the page Description void cpdf place inline image int pdf document int image double x koor double y koor double angle double width double height int mode The cpdf place inline image function places an image created with the php image functions on the page at postion x koor y koor The image can be scaled at the same time The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit See also 7 cpdf import jpeg 8 Prev 9 Home 10 Next cpdf import jpeg 11 Up cpdf add annotation 1 PHP Manual 2 ClibPDF functions 3 cpdf place inline image 4 Date and Time functions PHP Manual 5 Prev 6 Next cpdf add annotation cpdf add annotation Adds annotation Description void cpdf add annotation int pdf document double llx double lly double urx double ury string title string content int mode The cpdf add annotation adds a note with the lower left corner at llx lly and the upper right corner at urx ury The last optional parameter determines the unit length If is 0 or omitted the default unit as specified for the page is used Otherwise the koodinates are measured in postscript points disregarding the current unit 7 Prev 8 Home 9 Next cpdf place inline image 10 Up Date and Time functions 1 PHP Manual 2 Function Reference 3 cpdf add annotation 4 checkdate PHP Manual 5 Prev 6 Next VIII Date and Time functions Table of Contents 7 checkdate validate a date time 8 date format a local time date 9 strftime format a local time date according to locale settings 10 gmstrftime format a GMT CUT time date according to locale settings 11 getdate get date time information 12 gettimeofday get current time 13 gmdate format a GMT CUT date time 14 mktime get UNIX timestamp for a date 15 gmmktime get UNIX timestamp for a GMT date 16 time return current UNIX timestamp 17 microtime return current UNIX timestamp with microseconds 18 Prev 19 Home 20 Next cpdf add annotation 21 Up checkdate 1 PHP Manual 2 Date and Time functions 3 Date and Time functions 4 date PHP Manual 5 Prev 6 Next checkdate checkdate validate a date time Description int checkdate int month int day int year Returns true if the date given is valid otherwise returns false Checks the validity of the date formed by the arguments A date is considered valid if year is between 0 and 32767 inclusive month is between 1 and 12 inclusive day is within the allowed number of days for the given month Leap years are taken into consideration 7 Prev 8 Home 9 Next Date and Time functions 10 Up date 1 PHP Manual 2 Date and Time functions 3 checkdate 4 strftime PHP Manual 5 Prev 6 Next date date format a local time date Description string date string format int timestamp Returns a string formatted according to the given format string using the given timestamp or the current local time if no timestamp is given The following characters are recognized in the format string a am or pm A AM or PM d day of the month 2 digits with leading zeros i e 01 to 31 D day of the