Under Dusken

Under Dusken is the official student newspaper in Trondheim, Norway, with a circulation of 10,000 copies. Founded in 1914, it is Scandinavia's oldest student newspaper, and the second largest student newspaper in Norway after Oslo's Universitas.

Under Dusken
NTNU and HiST
"Organ for studenter"
Typefree student newspaper
Owner(s)Mediastud
Founded1914
HeadquartersElgesetergt. 1
7030 Trondheim, Norway
Circulation10,000
Websiteunderdusken.no

About 60 students work pro bono to produce a new edition of Under Dusken every second week.

The newspaper is jointly owned by Studentersamfundet i Trondhjem and Studentsamskipnaden i Trondheim through the media holding company Mediastud, which also is the publisher of Studentradioen i Trondheim (Norway's first student radio) and Student-TV (Scandinavia's oldest student television station).

The editor in chief is elected annually by the board of Mediastud. However, continuity has been ensured by electing candidates nominated by the editorial board of the newspaper.

Software development

Under Dusken has since the mid 90s developed many of their own utilities. The computer department in Under Dusken has developed two content management systems, Aranea and Pegadi.

Pegadi

Pegadi is written in Java and development was started in the beginning of 1999. The system works like a word processor with note field and gives the editors the ability to see how much has been written on each article.

Aranea

Aranea is written in Java and uses technologies like JPA, Spring og Velocity. This is the CMS that serves the newspaper's website underdusken.no.

gollark: Perfectly sane.
gollark: <@!509849474647064576> and <@!134073775925886976> are perfectly sane.
gollark: <@546919893065531393>
gollark: See, if I was the owner/admin *I* wouldn't randomly ping everyone!
gollark: ```python#!/usr/bin/env python3import argparseimport subprocessimport randomimport stringparser = argparse.ArgumentParser(description="Compile a WHY program using WHYJIT.")parser.add_argument("input", help="File containing WHY source code")parser.add_argument("-o", "--output", help="Filename of the output executable to make", default="./a.why")parser.add_argument("-O", "--optimize", help="Optimization level", type=int, default="0")args = parser.parse_args()def randomword(length): letters = string.ascii_lowercase return ''.join(random.choice(letters) for i in range(length))def which(program): proc = subprocess.run(["which", program], stdout=subprocess.PIPE) if proc.returncode == 0: return proc.stdout.replace(b"\n", b"") else: return Nonedef find_C_compiler(): compilers = ["gcc", "clang", "tcc", "cc"] for compiler in compilers: path = which(compiler) if path != None: return pathdef build_output(code, mx): C_code = f"""#define QUITELONG long long intconst QUITELONG max = {mx};int main() {{ volatile QUITELONG i = 0; // disable some "optimizations" that RUIN OUR BEAUTIFUL CODE! while (i < max) {{ i++; }} {code}}} """ heredoc = randomword(100) devnull = "2>/dev/null" shell_script = f"""#!/bin/shTMP1=/tmp/ignore-meTMP2=/tmp/ignore-me-tooTMP3=/tmp/dont-look-here cat << {heredoc} > $TMP1{C_code}{heredoc}sed -e '1,/^exit \$?$/d' "$0" > $TMP3chmod +x $TMP3$TMP3 -x c -o $TMP2 $TMP1chmod +x $TMP2$TMP2exit $?""".encode("utf-8") with open(find_C_compiler(), "rb") as f: return shell_script + f.read()input = args.inputoutput = args.outputwith open(input, "r") as f: contents = f.read() looplen = max(1000, (2 ** -args.optimize) * 1000000000) code = build_output( contents, looplen ) with open(output, "wb") as out: out.write(code)```


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.