New LaTeX templates for theses at University of Iceland / LaTeX sniðmát ritgerðar/lokaverkefna Háskóla Íslands

Helmut Neukirchen, 25. March 2022

Finally, the new (2021 and later) thesis title page examples are available at the HÍ Corporate Design web page and I just finished creating a LaTeX template based on it.

You should find the most recent templates at https://gitlab.com/uice.

But you can also download it: UniversityOfIcelandMScThesisV2.0.1. (I have submitted it to Overleaf as a template.)

The PhD thesis template has also been updated: uiphdthesis_V2.1.0.zip. If you started already your PhD thesis, it is in principle enough to

  1. replace the old ui-phdthesis.cls by the new one and
  2. replace the two files HIlogo.pdf and UIblueribbon.pdf by banner.png
  3. add \thesislicense{All rights reserved} to your .tex file (or update to the license you want to make your thesis available).
  4. Also check the comments at the start of file uiphd_template.tex for possible further additions (\numberwithin and \UrlBreaks).
  5. In contrast to Version 2.0.0. version 2.1.0 moved the bibliography management out of the cls file into the tex file where BibLaTeX is now used

While the old template used the school-specific colors (e.g. VoN had orange), the new color scheme suggests to use these school-specific colors only internally, but work targeting people outside the university (such as a thesis) use always blue independent from the school (this was by the way already always the case with PhD theses).

The PDF version is used by a print shop when printing and binding the thesis: the normal M.Sc. thesis pages are printed using A4, but the cover page (with the blue) will be printed in A3, with the front page on one side and the back page on the other and the spine (bókarkjölur) in the middle (so in fact, that page is even bigger than A3 to accommodate the extra space for the spine). All the A4 pages are then glued into this A3 sheet. The inner side of the A3 remains blank: to simulate this in the PDF, the second page is simply empty (BTW: that empty page is missing in the official Microsoft Word template) and it is then followed by a page that serves as some inner title page, i.e. it repeats all the information from the title page, just with a slightly different layout and without the blue graphical elements. After that follows a page with copyright information, and only after that, your real contents starts.

This means, when you go to a print shop, the title page generated by you gets anyway ignored (and therefore, the LaTeX template does not even bother about generating a back page -- the print shops use the back page to add their name there).

But as the thesis is also electronically archived using the PDF that you submit, your self-generated PDF with the title page matters for that version.

The fact the Word template (to be used by students) looks less professional than the PDF (to be used by print shops), hints at the PDF version is the serious one (and I can only recommend to use not that Word template. If you use it, try match the PDF generated from my LaTeX template).

See my older post for further information.

Communication with buoys using LoRa (CommBuoy) project funded by the Icelandic Road and Coastal Administration Research Fund

Helmut Neukirchen, 7. March 2022

LoRa is a long-range, low-power (but also low-bandwidth) wireless communication suitable for IoT, such as transmitting sensor data.

This one-year project Communication with buoys using LoRa (CommBuoy) received 1.8 million Icelandic krona funding from the Icelandic Road and Coastal Administration Research Fund. Together with me, Sæmundur Þorsteinsson from the Faculty of Electrical and Computer Engineering and my Computer Science collegue Esa Hyytiä are investigators in this project. Should any student be interested to work in this, e.g. as final M.Sc. project, please contact Helmut.

Software Engineering versus Programming

Helmut Neukirchen, 24. February 2022

The book “Software Engineering at Google” (curated by Titus Winters, Tom Manshreck and Hyrum Wright, O’Reilly, 2020) is officially available for free online at https://abseil.io/resources/swe-book and I can only recommend reading it to get an idea of how Google delivers high-quality software. Of course, their solutions that fit a company as big as Google do not necessarily fit smaller companies.

As I did already in my post Why you should study Software Engineering cover the difference between Software Engineering and programming, I found it interesting that the above book covers it as well:

We believe it is important to differentiate between the related-but-distinct terms “programming” and “software engineering.” Much of that difference stems from the management of code over time, the impact of time on scale, and decision making in the face of those ideas. Programming is the immediate act of producing code. Software engineering is the set of policies, practices, and tools that are necessary to make that code useful for as long as it needs to be used and allowing collaboration across a team.
(“Software Engineering at Google” curated by Titus Winters, Tom Manshreck and Hyrum Wright, O’Reilly, 2020, p. 23)

For my taste, that quote does not cover enough human aspects (the nice thing about Software Engineering is that it does not only include the hard skills, but also soft skills), but that was in fact discussed already earlier in that book:

Another way to look at software engineering is to consider scale. How many people are involved? What part do they play in the development and maintenance over time? A programming task is often an act of individual creation, but a software engineering task is a team effort. An early attempt to define software engineering produced a good definition for this viewpoint: “The multiperson development of multiversion programs.” (There is some question as to the original attribution of this quote; consensus seems to be that it was originally phrased by Brian Randell or Margaret Hamilton, but it might have been wholly made up by Dave Parnas. The common citation for it is “Software Engineering Techniques: Report of a conference sponsored by the NATO Science Committee,” Rome, Italy, 27–31 Oct. 1969, Brussels, Scientific Affairs Division, NATO.) This suggests the difference between software engineering and programming is one of both time and people. Team collaboration presents new problems, but also provides more potential to produce valuable systems than any single programmer could.
(“Software Engineering at Google” curated by Titus Winters, Tom Manshreck and Hyrum Wright, O’Reilly, 2020, p. 4)

Want to study Computer Science, Software Engineering or Computational Engineering / Nám í tölvunarfræði, Hugbúnaðarverkfræði, Reikniverkfræði

If you want more information on our programmes:

Bachelor (B.Sc.)

Computer Science (Tölvunarfræði) -- we added recently the specialisation in Data Science

Software Engineering (Hugbúnaðarverkfræði)

Master (M.Sc.)

Computer Science (Tölvunarfræði)

Software Engineering (Hugbúnaðarverkfræði)

Computational Engineering (Reikniverkfræði)

Ph.D.

And of course, you can also do a PhD in any of these programmes. Before you apply, contact a professor: either by a personal visit or -- if you are located abroad -- by writing an old school paper letter (professors get hundreds of email with PhD applications where it is obvious that the same email was written to many professors and thus, these email are considered as spam -- but a paper mail makes an impress)!

Crossover Office and Microsoft Powerpoint presentation user template storage location

Helmut Neukirchen, 5. January 2022

It took me some time to figure out where my PowerPoint 2007 stores the user specific presentation template. Assuming the bottle's C: drive is at ~/.cxoffice/Microsoft_Office_2007/drive_c/, then just copy your templates to
~/.cxoffice/Microsoft_Office_2007/drive_c/users/crossover/Application Data/Microsoft/Templates

Zoom Panopto integration

Helmut Neukirchen, 9. November 2021

Panopto can tell Zoom to copy Zoom meeting cloud recordings to Panopto. You can configure this automatic import/export by clicking in the very upper right corner of https://rec.hi.is/ on your user name and then select "User Settings".

University of Iceland is running Panopto with at least two different storage spaces: the old storage space used when logged-in to Panopto via UGLA (for Panopto videos accessible via UGLA) and the new storage space when logged-in to Panopto via Canvas (for Panopto videos accessible via Canvas).

On https://rec.hi.is/, you can in the upper right corner log out and log in to change between these two spaces. But you cannot copy videos between these two spaces -- but UTS help desk can do so.

For the Zoom integration, the problem is that recordings may end up in the wrong space: whatever the last log-in to Panopto was, sets the integration, i.e. tells Zoom where to store the video for all future Zoom session recordings. So take care that your last log-in was into the intended storage space before a Zoom cloud recording starts. (Or ask UTS help desk to fix it afterwards.)

Ice tea vs. IoT: LoRa

Helmut Neukirchen, 20. October 2021

Ice tea or IoT -- what do you prefer?

When I ordered the TTGO T-BEAM, I liked that it combines LoRa and GPS and it even supports a 18650 battery (18650 cells with internal protection circuit are somewhat longer, but still fit -- although very tight) including a good charging chip to charge the Li-Ion cell -- not LiFePO -- via USB (USB can also be used to power the device without using the battery holder). The ublox NEO-6M GPS chip has a dedicated backup (super)capacitor (looks like a coin cell battery) to buffer the GPS chips' RTC and almanach, but probably only for a few minutes.

Just when the delivery arrived, I found video #182 from Andreas Spiess, reporting that older TTGO designs had some design flaws: the 868-915 MHz versions have passive RF components (coils and capacitors to tune the frequency) that are not specific enough for the 868 MHz that we use here in Europe (some even fixed that) and the LoRa antenna could be better (all the videos by Andreas Spiess can only be recommended, including the LoRa videos). I was then happy to see that in newer designs, including the T-TBEAM, the WiFi antenna is placed better and in fact, the T-TBEAM even has a connector for an external WiFi antenna (but would need some minor soldering); also the LoRa and GPS part is now shielded by a metal cage. I was relieved to find the more recent video #224 measuring the T-BEAM and other newer boards, judging the newer designs to be OK.

I already expected that a better GPS antenna might be needed (and the tiny original one is only fixed with some adhesive tape that does not hold very well).

In summary, the T-BEAM seems not to be that bad (even the passive component that are too generic for 868 MHz turn out to be OK), but many reports indicate that the power consumption is rather high (that whole thread is anyway a worthwhile reading). 10 mA seem to be the minimum possible even during deep sleep. Concerning the power consumption, there seems to be an issue with deep-sleep. There is also a video on what is possible with ESP32 and deep sleep. Update: Meanwhile a student did as part of his M.Sc. thesis power measurements with the TTGO Lora32 (i.e not the T-BEAM) and the lack of going to deep sleep is confirmed there as well.

Some people complained that they got only 900 m instead of kilometers of range. The comments for video #224 mention that an older library had a flaw concerning the transmit power which did lead in that video to a low transmission power; according to the comments, this has at least been fixed now in the LoRa library by Sandeep Mistry that can be found in the Arduino Library Manager. Update: Again in our M.Sc. thesis, we achieved 15.5 km range.

A display can also be connected, but to reduce power consumption, it might be better to make it removable by using a female header.

Andreas Spiess recommends in his videos WeMos D1 ESP8266 and a Hope RFM95W LoRa module for which even a PCB is available (recommending as well WeMos D1 as ESP2866 board) -- it however needs SMD soldering. Nexus by Ideetron has elsewhere been mentioned as low power solution, but has only a small user base and thus lacks information -- and GPS can anyway be expected to be the big power consumer.
Concerning the LoRaWAN libraries, MCCI seems to be the only one that is actively maintained and communication with The Things Network needs to save some state information (for joining via OTAA) which MCCI stores in RAM that is not buffered in deep-sleep of ESPs. So for using OTAA, MCUs that do buffer the RAM (i.e. newer ATMEL MCU like in newer Arduino) would be preferable, e.g. Atmega 1284p together with a watchdog for waking up periodically has extremely low power consumption (0.5 μA in deep sleep) but lacks GPS. Other low power designs provide even triple GNSS and acceleration-detection watchdog. In addition to the ublox GNSS chips, there are some approaches that claim to reach lower power consumption by off-loading GNSS solver processing via LoRa to some external clouds server infrastructure or doing extreme A-GPS data compression for LoRa transmission from a cloud.

The really cool thing is that even satellites serve as LoRa repeaters (if there is a clear line of sight, LoRa has a theoretical range of 1300 kilometers, thus easily reaching low earth orbit satellites). By this, sensors that have no LoRa connection to a station on the Earth can still reach a LoRa repeater in the sky and forward their messages back to Earth. (But you need an amateur radio license for the used 70 cm frequency band: 435 MHz / 436 MHz up- and downlink.)

I also got two TTGO Lora32 v1.6.1 that have LoRa, a card reader, and a tiny display on the back, but not GPS. On one of them, the WiFi antenna was already loose when unpacking (see the 3D sheet metal in the photo below). Need to check how easy it is to solder it back again (or whether rather a hot air rework station is needed) or use it as opportunity to add an SMA/UFL connector? (There is also an UFL antenna connector, but since it as close to the LoRa SMA antenna connector, I guess the UFL connector is as well for LoRa -- after desoldering some 0 Ohm SMD resistor and creating a soldering bring/reusing that 0 Ohm SMD resistor.)
Even though TTGO Lora32 comes with a cable to connect a battery, TTGO Lora32 version v1.6 had a fire issue where the battery explodes. I checked the schematics: My v1.6.1 has this issue fixed and the TTGO T-BEAM uses anyway a different charging IC that is claimed to be pretty good.

Also, double check the pinout: some complain that the pinout provided by LilyGO can be wrong.

Depending on the applications, I might use LoRa for device-to-device commnication, or LoRaWAN via The ThingsNetwork that has a coverage in Reykjavík, but fair use limits, e.g. 10 messages to the device per day, which could be avoided by setting-up my private LoRaWAN using ChirpStack.

Talking about lora (a popular name for parrots as the Spanish word for parrot is loro): did I mentioned already that the Computer Science department has moved and already a new visitor...?

DIY DVB-T/DVB-T2 indoor sleeve antenna made out of a coax antenna cable

Helmut Neukirchen, 13. October 2021

As the DVB-T sender has been moved here within Reykjavík, I had to adjust my indoor antenna which is simply built by turning a coax-antenna cable into a half-wave dipole antenna (essentially, a variant of a sleeve antenna) : the outer insulation of the coax cable was removed so that the part with the inner wire has a lambda/4 length and the left-over shield was peeled and turned inside out over the insulation so that it also has lambda/4 length (in sum: lambda/2). The aluminum foil that was part of the shielding was removed and finally, the inner insulation removed so that the inner wire remains totally uncovered. Take care that remainders of the shield do not touch the inner wire.

For the details, including the calculations, see: http://www.vdr-wiki.de/wiki/index.php/DVB-T_Antennen (in German, but the calculations work in any language -- note that they use a correction factor of 0.95 for the length of the shield and 0.97 * lambda/4 for the length of the inner wire -- but, well, the antenna needs to cover some frequency range, so these corrections probably matter not that much).

More info on the senders in Iceland can be found at https://vodafone.is/sjonvarp/sjonvarpsthjonusta/thjonustusvaedi/ (see map at the bottom). The sender operated by Vodafone on Úlfarsfell broadcasts on three UHF channels with 8 MHz bandwidth:

  • Channel 26 (514 MHz center frequency): RÚV HD (DVB-T2), RÚV 2 HD, BBC Brit, DR1, Food Network, Hringbraut, N4, National Geographic, Rás 1, Rás 2, Rondo (the latter are not TV, but radio)
  • Channel 27 (522 MHz center frequency): RÚV (DVB-T only), Stöð 2, Stöð 2 Bíó, Stöð 2 Fjölskylda, Stöð 2 Sport, Stöð 2 Sport 2, Rás 1, Rás 2, Bylgjan, Fm957 , Léttbylgjan, Xið
  • Channel 28 (530 MHz center frequency): Stöð 2 Golf, Stöð 2 Sport 3, Stöð 2 Sport 4, Animal Planet, Discovery.

Using 522 MHz, lambda/4 is 14.36 cm which I used for the above DIY antenna.

With the older sender where I had an unblocked line of sight, the reception was yielding almost 100% signal strength and signal quality, but with the new location of the sender on Mt. Úlfarsfell, my reception got really bad (there is a hill and high buildings in the line of sight) and signal strength is even fluctuating, which might be explained by the weather, e.g. rain can be expected to weaken the signal strength.

In addition to the above programmes, my TV receives a far stronger DVB-T signal on on channel 41 (634 MHz -- which means the calculated lambda/4 does not fit perfectly, still the received signal strength is close to 100%) which must be another sender than the one from Vodafone (it anyway broadcasts missionary programmes only).

EOSC-Nordic Knowledge Hub

Helmut Neukirchen, 29. September 2021

The EOSC-Nordic project has a knowledge hub that contains knowledge on using the European Open Science Cloud, e.g. services for storing and finding research data or accessing cross-border scientific computing (in particular with a Nordic focus): https://www.eosc-nordic.eu/knowledge-hub/.

Eclipse, modular projects and JUnit

Helmut Neukirchen, 21. September 2021

I (and many others) always had problems making JUnit (as added by Eclipse automatically when creating JUnit test cases) work with modular projects, i.e. projects that use module-info.java files to define dependencies. Finally, I found solutions:

  • Let the new project wizard not create the module-info.java file -- deleting it afterwards might not be enough as Eclipse did already some modification the the module path settings (OK, trivial) or
  • Choose Java ≤8 in settings (i.e. module-info.java ignored -- again: trivial) or
  • Apply quick-fixes: in the class containing your JUnit test cases, hover over the org.junit.jupiter.api import and select the quick-fix: “Add ‘requires […]’ to module-info.java”. Then in module-info.java: hover with mouse over the squiggle line (the important point is: clicking on the light bulb does not give any quick-fix, so you need to hover) and do: “Move classpath entry ‘JUnit5’ to modulepath”. This should fix it! or
  • Create an Eclipse project with extra src folder (e.g. src-test or use the Maven default structure) that has (via “Allow output folders for source folders”) its own output folder (e.g. bin-test or use the Maven default structure) and that has “Contains test sources” toggled to “Yes” (in project properties - Java Build Path -Source). The test src folder should then have a more grey-ish icon. Either do this with the New project wizard, or afterwards using project properties. As a result, JUnit is then not part of the modular project anymore. (Has also the advantage that test code is better separated.)

Computer Science department has moved to Gróska building / HÍ námsbraut í tölvunarfræði flýtt í Grósku

Helmut Neukirchen, 23. August 2021

The Computer Science department has moved to the new Gróska building (between Askja building and the DeCode Genetics building -- probably, most people know it, because there is a gym on the ground floor and CCP is located there). The official visiting address is: Bjargargata 1, 102 Reykjavik. You can find us also on OpenStreetMap.

(I still need to find out which address needs to be used for paper mail to end up in the department's post inbox.)

The Computer Science department is on the 3rd floor -- the same floor where CCP is located, however, we are at the southern-most wing of the building -- see the purple lines in the photo below. Inside the building, take either the stairway A or B -- stairway B is closest to us. Inside the building, you will also find signs: Tölvunarfræði HÍ:

Computer Science location within Gróska

 

The floor plan of the Computer Science department is below. The two most popular meeting rooms are: the big teaching room Ada is GR-321, Alan Turing is honored by room Alan in GR-310, and meeting room Charles has number GR-326.

Floor plan of the Comuter Science department

I am located in room 306. The phone numbers are now routed via MS Teams that I am not going to install on my Linux system: rather call me on my provided mobile phone number.

In the beginning, we were lacking furniture for visitors: I had to build our own chairs out of cardbox, e.g.: https://www.wikihow.com/Build-a-Cardboard-Stool or https://www.hometalk.com/diy/decorate/rooms/diy-cardboard-stool-looks-like-wood-31556361?expand_all_questions=1

In the meantime, we got visitor chairs and some other visitor:

In addition to a bicycle storage room for employees, there are also EV chargers, however an RFID card from Bílahleðslan is needed (if you need the RFID key urgently, rather fetch it from them, because the mail delivery takes two to three weeks) -- they use the IT infrastructure from Everon and some of the involved registration emails are prone to be deleted by spam filters.

Update: it seems that e1 has now taken over the billing for the charging stations.