From f5b7dfa949d7033c502cb222731550bb590a74ca Mon Sep 17 00:00:00 2001 From: msa46 Date: Tue, 11 Aug 2026 18:53:52 +0200 Subject: [PATCH] content: publish practical student guides --- docs/supplemental-content.json | 15 ++ .../docs/useful-information/housing-guide.md | 61 ++++++ .../docs/useful-information/linux-tricks.md | 75 ++++++++ .../docs/useful-information/surviving-dacs.md | 181 ++++++++++++++++++ tests/content-audit.test.mjs | 8 +- tests/useful-guides.test.mjs | 49 +++++ 6 files changed, 385 insertions(+), 4 deletions(-) create mode 100644 src/content/docs/useful-information/housing-guide.md create mode 100644 src/content/docs/useful-information/linux-tricks.md create mode 100644 src/content/docs/useful-information/surviving-dacs.md diff --git a/docs/supplemental-content.json b/docs/supplemental-content.json index e5fd7fb..55b1529 100644 --- a/docs/supplemental-content.json +++ b/docs/supplemental-content.json @@ -273,5 +273,20 @@ "destination": "src/content/docs/previous-exams-and-documents.md", "source": "docs/pdf-inventory.tsv", "category": "pdf-archive" + }, + { + "destination": "src/content/docs/useful-information/housing-guide.md", + "source": "https://wiki.msvincognito.nl/useful-guides/housing-guide", + "category": "useful-guide-recovery" + }, + { + "destination": "src/content/docs/useful-information/linux-tricks.md", + "source": "https://wiki.msvincognito.nl/useful-guides/linux-tricks", + "category": "useful-guide-recovery" + }, + { + "destination": "src/content/docs/useful-information/surviving-dacs.md", + "source": "https://wiki.msvincognito.nl/useful-guides/survivingdacs", + "category": "useful-guide-recovery" } ] diff --git a/src/content/docs/useful-information/housing-guide.md b/src/content/docs/useful-information/housing-guide.md new file mode 100644 index 0000000..a28c07e --- /dev/null +++ b/src/content/docs/useful-information/housing-guide.md @@ -0,0 +1,61 @@ +--- +title: Housing Guide +description: Practical guidance for finding student housing in Maastricht and recognizing scams. +--- + +This student-contributed guide was assembled by Incognito board member Botond to help incoming students find accommodation in Maastricht. Start searching early, compare several sources, and use [MyMaastricht](https://mymaastricht.nl/) and official university resources when you need authoritative information. + +## Where to look + +### Facebook groups and private listings + +Private listings often advertise rooms in shared houses. They can offer direct contact with current tenants or landlords, but popular listings attract many responses and open marketplaces also attract scammers. + +Check listings regularly, respond with a short introduction about yourself, and do not let artificial urgency push you into skipping basic checks. + +### Maastricht Housing + +[Maastricht Housing](https://www.maastrichthousing.com/) brings together listings from several housing providers. Review its current registration, eligibility, fee, and reservation information directly on the platform before relying on it. + +### Housing agencies and student residences + +Agencies and managed student residences can be useful when you prefer a studio, a furnished room, or a single organization handling the tenancy. Compare the complete monthly cost, deposits, agency charges, contract duration, cancellation terms, and reviews—not just the advertised base rent. + +Search for the agency independently instead of following only the contact details in an advertisement. A polished website or professional-looking message is not proof that a business or listing is legitimate. + +## Avoiding scams + +- Request an in-person or live video viewing. If that is impossible, ask someone you trust locally to attend. +- Do not send a passport or identity document until you have verified who is requesting it, why it is required, and how it will be stored. Redact details that are not needed. +- Ask for the precise address and the landlord's or agent's full name. +- Reverse-search listing photos and compare details across every image. +- Ask which utilities, municipal taxes, internet costs, and service charges are included. +- Confirm the rental period, notice period, deposit, and any rules concerning registration at the address. +- Read and sign a complete rental contract before transferring money. +- Treat unusual payment methods, unexplained fees, pressure to decide immediately, and refusal to provide verifiable details as serious warning signs. + +A foreign phone number, an owner living abroad, or a recently created social profile is not proof of fraud by itself. Treat such details as reasons to verify the person and property more carefully. + +### Checking private listings + +- Review the advertiser's profile history, public activity, and whether their identity is consistent across platforms. +- Search the address, contact details, and distinctive sentences from the advertisement. +- Look for comments from other prospective tenants and reports of copied advertisements. +- Ask current occupants about the room, house, landlord, and expected handover. +- Never let a convincing viewing replace verification of the contract and the person entitled to rent out the property. + +### Checking agencies + +- Search for the business independently and compare reviews across multiple sources. +- Verify its registration through the [Dutch Chamber of Commerce](https://www.kvk.nl/en/). +- Check that the company name on the contract, invoice, website, and bank account is consistent. +- Ask for a written breakdown of agency fees and services before agreeing to anything. +- Be cautious if representatives avoid written answers, change payment details, or cannot explain their relationship to the property owner. + +## Practical tips after moving + +Property ownership information can be requested from the [Dutch Cadastre](https://www.kadaster.nl/producten/woning/eigendomsinformatie) when an ownership check is appropriate. + +Unfurnished rooms are manageable: Maastricht has second-hand shops, online marketplaces, and student groups where furniture is often inexpensive or free. Measure entrances and the room before arranging collection, and agree clearly on transport. + +Photograph the room and any existing damage when you receive the keys. Save the signed contract, inspection report, payment records, inventory, and correspondence for the duration of the tenancy. diff --git a/src/content/docs/useful-information/linux-tricks.md b/src/content/docs/useful-information/linux-tricks.md new file mode 100644 index 0000000..848bc6f --- /dev/null +++ b/src/content/docs/useful-information/linux-tricks.md @@ -0,0 +1,75 @@ +--- +title: Linux Tricks +description: Linux-oriented tips for connecting to Maastricht University services. +--- + +This guide collects practical starting points for Linux users who need Maastricht University network and remote-access services. Distribution packages and university connection details can change, so obtain current hostnames, identity formats, and configuration profiles from UM before connecting. + +## Eduroam + +Most desktop environments can configure Eduroam through NetworkManager or their built-in Wi-Fi settings. Prefer a university-provided installer or configuration profile when one is available: it can set the expected authentication method and certificate validation safely. + +When entering an institutional username or realm, copy the format from current UM instructions. Do not disable certificate validation merely to make the connection succeed, and do not save your password in a world-readable configuration file. + +Useful background documentation: + +- [NetworkManager](https://networkmanager.dev/docs/) +- [iwd](https://wiki.archlinux.org/title/Iwd) +- [WPA supplicant](https://wiki.archlinux.org/title/Wpa_supplicant) + +## VPN and library access + +[OpenConnect](https://www.infradead.org/openconnect/) supports several enterprise VPN protocols and is packaged by many Linux distributions. Install it through your distribution's package manager. + +**Arch Linux:** + +```sh +sudo pacman -S openconnect +``` + +**Debian, Ubuntu, and derivatives:** + +```sh +sudo apt install openconnect +``` + +Use the VPN gateway, protocol, and username format supplied by UM. Avoid copying old hostnames from forum posts or archived instructions. Let the client prompt securely for credentials instead of placing a password in shell history or a script. + +For journal and database access, the [Maastricht University Library](https://library.maastrichtuniversity.nl/) may offer browser-based institutional access that does not require a full VPN connection. + +If UM supplies a graphical VPN client, use the vendor's current Linux package and the university's setup instructions. Package names and supported authentication methods vary by distribution. + +## University file services + +Linux can access SMB file services with tools such as `smbclient` and `mount.cifs`. Install the client packages with your distribution's package manager, then use the current server and share paths supplied by UM. + +List shares without embedding a password in the command: + +```sh +smbclient -L //server.example.edu -U your-username +``` + +For a temporary mount, create a mount point and let the mount command request credentials or use a protected credentials file: + +```sh +sudo mkdir -p /mnt/um-drive +sudo mount -t cifs //server.example.edu/share /mnt/um-drive \ + -o username=your-username,uid="$(id -u)",gid="$(id -g)" +``` + +Replace the example server and share with current institutional details. If you use a credentials file, restrict it to your account with `chmod 600`. + +## Remote desktop + +UM may provide browser-based or client-based access to a managed desktop environment. If a native Linux client is offered, install it from the official vendor or distribution repository and use the connection address from current university documentation. + +A remote desktop can help when required software is available only on university-managed Windows systems, but performance and file-transfer behavior depend on your connection. + +## Useful resources + +- [Maastricht University Library](https://library.maastrichtuniversity.nl/) +- [ArchWiki networking documentation](https://wiki.archlinux.org/title/Network_configuration) +- [OpenConnect documentation](https://www.infradead.org/openconnect/manual.html) +- [Samba client documentation](https://www.samba.org/samba/docs/current/man-html/smbclient.1.html) + +When troubleshooting, record the exact client, Linux distribution, authentication stage, and error message—but never publish passwords, recovery codes, private keys, or full authentication logs. diff --git a/src/content/docs/useful-information/surviving-dacs.md b/src/content/docs/useful-information/surviving-dacs.md new file mode 100644 index 0000000..9bc08ab --- /dev/null +++ b/src/content/docs/useful-information/surviving-dacs.md @@ -0,0 +1,181 @@ +--- +title: Surviving DACS +description: Student-contributed advice for studying and living as a DACS student. +--- + +This guide combines opinions and experience from several DACS students. Different contributors sometimes favor different approaches; use the ideas that fit your workload, goals, and wellbeing. The advice represents its contributors, not an official position of MSV Incognito or Maastricht University. + +## University + +### Projects + +- Start by understanding the problem domain and checking the literature before writing code. A relevant textbook or survey can save weeks of avoidable experimentation. +- Write intermediate results to disk while long experiments run. A process that fails near the end should not erase days of useful output. +- Share technical work across the group. Depending on one person for all programming may get a project through an early milestone, but it prevents everyone else from developing skills needed for later individual assignments. +- Use version control from the first day. Commit small, meaningful changes before risky edits and before major deadlines. +- Record dependencies, parameters, random seeds, data preparation, and execution instructions so another group member can reproduce the result. +- Learn enough LaTeX or another agreed writing workflow to contribute effectively to the report. +- Attend project examinations and preparation meetings; they are part of understanding how your work will be assessed. + +### Books and articles + +- Start with the [Maastricht University Library](https://library.maastrichtuniversity.nl/) while signed in with your UM account. +- Check the current course literature with the coordinator before buying a book or relying on an older edition. +- Search the library early. If a title is unavailable, consider legal digital access, interlibrary options, or a second-hand copy. +- Keep citation details while reading instead of reconstructing the bibliography shortly before a deadline. + +### Studying + +- Plan around the entire course period. Project deadlines and exam preparation often collide near the end, so beginning exam review earlier creates breathing room. +- Do not rely on the last-minute habits that may have worked in secondary school. Later courses build directly on earlier mathematics, programming, and theory. +- Attempt bonus and practice exercises when they are offered; they reveal misunderstandings before the exam. +- If distractions are a problem, change the environment. Work in a library or study space, silence notifications, and use focused intervals with planned breaks. +- Attend actively. Lectures and tutorials often contain project hints, course-specific techniques, and assessment expectations that generic online material will not cover. +- Study with other students, but make sure you can solve and explain the material independently. + +### Exams + +- Begin review before the final project rush. +- Practise with past or sample exams under realistic conditions and without notes at least once. +- Review difficult topics with a group and explain solutions to each other. +- During the exam, show reasoning and justify answers. If you cannot finish a calculation, explaining the correct method may still demonstrate understanding. +- Bring permitted supplies, water, and quiet snacks, and check the examination rules in advance. + +### Programming + +Learning to program means learning three things at once: a language and its libraries, a way to translate problems into programs, and a method for debugging those programs. Treat them as separate skills when deciding what to practise. + +- Build small programs and projects that genuinely interest you. +- Read error messages carefully and reduce a failing program to the smallest reproducible case. +- Learn to use your debugger, tests, formatter, version-control diff, and documentation search. +- Keep a short record of errors you have solved and the reasoning that led to the fix. +- Ask precise questions: include the goal, minimal code, actual output, expected output, and what you already tried. + +### Mathematics + +- Work through exercises; watching explanations is not a substitute for solving problems yourself. +- Compare your reasoning with worked solutions and ask for feedback when you cannot identify your own mistake. +- Organize review groups that separate problem-solving sessions from theory explanations. +- Teaching a concept to someone else is an effective test of whether you understand it. +- Visual explanations can make abstract topics more intuitive. Useful starting points include [Khan Academy](https://www.khanacademy.org/), [MIT OpenCourseWare](https://ocw.mit.edu/), and Setosa's interactive explanations of [eigenvectors](https://setosa.io/ev/eigenvectors-and-eigenvalues/) and [Markov chains](https://setosa.io/ev/markov-chains/). + +Online resources supplement the course; follow the definitions, methods, and notation expected by your instructor. + +## Thesis + +- Choose a topic whose core result is achievable within the available time, then treat ambitious extensions as optional. +- Identify dependencies you do not control: hardware reliability, participant recruitment, data quality, compute availability, external APIs, and supervisor feedback. +- Validate the riskiest assumption early. A small experiment in the first weeks is more valuable than discovering near the deadline that the dataset or system cannot support the idea. +- Keep raw data, transformations, code, and results traceable and reproducible. +- Negative or inconclusive findings can be valuable when the method is sound and limitations are explained. Never invent, omit, or alter results to make a story look better. + +## Grades + +Grades are feedback and can matter for some opportunities, but they are not a useful measure of your worth or intelligence. Focus first on learning the foundations, completing the programme sustainably, and asking for help when you need it. + +Avoid comparing grading systems or individual results too literally. Expectations differ between programmes, courses, and countries. If an application requires a conversion, use the method specified by the receiving institution. + +## Living + +### Sustainability + +Reuse and second-hand markets can reduce both cost and waste. Walking, cycling, public transport, repair, and sharing seldom-used items are often practical choices in Maastricht. + +### Housing + +Begin searching early, use several channels, and verify the advertiser, property, total cost, and contract before transferring money. See the [Housing Guide](./housing-guide/) for a fuller checklist. + +### Food + +- Cooking with housemates can save time and money and is an easy social activity. +- Keep a few quick, nutritious meals available for deadline weeks. +- Plan groceries before shopping and compare unit prices rather than relying only on promotions. +- Markets, discount supermarkets, and end-of-day offers can be useful, but opening times and prices change. + +[Budget Bytes](https://www.budgetbytes.com/) is one source of inexpensive recipe ideas. + +### Essentials + +- Get some regular movement. A walk, cycle, sports club, or gym session can improve energy during long study weeks. +- Use a screen's night-light feature if you prefer warmer colors in the evening, but do not treat it as a replacement for breaks or sleep. +- Keep rain protection, working bicycle lights, and a reliable lock ready. +- Learn basic bicycle checks before buying second hand: brakes, tires, wheels, chain, lights, and gears. + +### Transportation + +Cycling is convenient in Maastricht. When buying a second-hand bicycle, check that the seller can reasonably account for ownership and that essential components work. Use a strong lock, park legally, and do not leave an apparently abandoned bicycle in one place for a long period. + +For trains, buses, and shared bicycles, compare the current ticketing and subscription options offered by [NS](https://www.ns.nl/en) and [OVpay](https://www.ovpay.nl/en). + +## Social life + +DACS students from different years often share advice, course experience, and interests. Incognito activities, committees, study groups, sports, board games, and local events are ways to meet people beyond your immediate project group. + +Ask current Incognito members where active interest groups communicate rather than relying on old invitation links. Explore Maastricht as well: Carnival, the city walls, and Sint Pietersberg are good starting points. + +## Gaining experience + +Technical ability matters, but organizing, communicating, mentoring, and working with people are also valuable. Possible ways to build experience include: + +- helping organize an Incognito event, career day, hackathon, LAN party, or meetup; +- joining or starting a reading group; +- creating a personal or open-source project; +- helping another student understand a topic; +- taking a part-time role, internship, research opportunity, or committee position that fits your available time. + +Do not pursue every opportunity at once. A smaller number of commitments completed well is more useful than a crowded schedule that damages your studies or health. + +### Honours programmes + +Honours and work-study programmes can provide research or industry experience, but they also require substantial time and may affect options such as studying abroad. Check current eligibility, structure, compensation, and commitments with the official programme before applying. + +Compare: + +- the subject and whether it genuinely interests you; +- supervision and expectations; +- duration and summer commitments; +- freedom to choose a thesis topic; +- compensation and employment conditions; +- opportunities to publish, attend events, or work with a company; +- what happens if the project or partner organization changes. + +### Internships + +Summer periods can be short, but part-time, remote, or carefully timed internships may still fit. Begin searching early and ask programme staff how an internship interacts with courses, examinations, and residence or work-permit conditions. + +Open-source programmes such as [Google Summer of Code](https://summerofcode.withgoogle.com/) can combine mentored technical work with practical experience. + +### Mentorships + +A mentor can broaden your view of research, industry, and career paths. Good mentoring is specific: agree on what you want to learn, how often you will meet, and what preparation each meeting requires. + +### Jobs + +Early IT roles are easier to obtain when you can show experience through projects, open-source contributions, internships, or previous work. Keep a small portfolio that explains the problem, your contribution, the technical decisions, and what you learned. + +If you need income, look for work whose schedule is compatible with projects and exams. Clarify hours, flexibility, pay, tax treatment, and employment conditions directly with the employer. + +## Healthy and productive habits + +### Sleep + +Sleep supports memory, mood, and problem-solving. Begin studying several days before an assessment so your brain has multiple nights to consolidate the material. When you are stuck late at night, stopping and returning rested can be more productive than another exhausted hour. + +### Ventilation + +Small rooms can become stuffy during long work sessions. Air the room regularly and take breaks outside. If you use an air-quality or carbon-dioxide monitor, treat it as a prompt to ventilate—not as a medical diagnostic device. + +### Ergonomics + +- Raise the screen so you are not bending your neck for hours. +- Use an external keyboard and pointing device when a laptop stand makes the built-in controls uncomfortable. +- Change posture and take movement breaks; no single posture is ideal all day. +- Adjust lighting and text size so you are not leaning toward the screen. + +### Task management + +Keep one trusted list of tasks and review it regularly. Break large assignments into visible next actions, note deadlines and dependencies, and decide what not to do. Tools such as [Todoist](https://todoist.com/) or [Habitica](https://habitica.com/) can help, but a simple notebook works too. + +### Audiobooks + +Commuting, cooking, cleaning, and shopping can be good times for audiobooks or podcasts. [LibriVox](https://librivox.org/) provides free recordings of public-domain books created by volunteers. diff --git a/tests/content-audit.test.mjs b/tests/content-audit.test.mjs index f160f8e..b9a134c 100644 --- a/tests/content-audit.test.mjs +++ b/tests/content-audit.test.mjs @@ -44,8 +44,8 @@ test('the full migration audit accounts for every source and destination', async assert.equal(result.sourceCount, 29); assert.equal(result.destinationCount, 28); - assert.equal(result.pageCount, 83); - assert.equal(result.supplementalCount, 55); + assert.equal(result.pageCount, 86); + assert.equal(result.supplementalCount, 58); }); test('published source pages leave the sole H1 to Starlight frontmatter rendering', async () => { @@ -235,8 +235,8 @@ test('audit accepts a published page declared in the supplemental registry', asy supplemental, }); - assert.equal(result.pageCount, 83); - assert.equal(result.supplementalCount, 55); + assert.equal(result.pageCount, 86); + assert.equal(result.supplementalCount, 58); }); }); diff --git a/tests/useful-guides.test.mjs b/tests/useful-guides.test.mjs index 4d6c85a..12cccac 100644 --- a/tests/useful-guides.test.mjs +++ b/tests/useful-guides.test.mjs @@ -14,3 +14,52 @@ test('Laptop Buying Advice publishes the newer hardware baseline without a dated assert.match(content, /Nvidia[\s\S]*CUDA/i); assert.doesNotMatch(content, /:::caution\[Historical information\]/); }); + +const recoveredGuides = [ + { + slug: 'housing-guide', + title: 'Housing Guide', + source: 'https://wiki.msvincognito.nl/useful-guides/housing-guide', + }, + { + slug: 'linux-tricks', + title: 'Linux Tricks', + source: 'https://wiki.msvincognito.nl/useful-guides/linux-tricks', + }, + { + slug: 'surviving-dacs', + title: 'Surviving DACS', + source: 'https://wiki.msvincognito.nl/useful-guides/survivingdacs', + }, +]; + +test('the three recovered guides are publishable native Markdown', async () => { + for (const { slug, title } of recoveredGuides) { + const content = await readFile(`${docsRoot}/${slug}.md`, 'utf8'); + assert.match(content, new RegExp(`^---\\n[\\s\\S]*title: ${title}`)); + assert.doesNotMatch(content, /^#\s+/m); + assert.doesNotMatch(content, /:::caution\[Historical information\]/); + assert.doesNotMatch(content, /\[\[|\{\{|NEWPAGE>|indexmenu>|~~NOCACHE~~/); + } +}); + +test('the recovered guide registry records source provenance', async () => { + const supplemental = JSON.parse(await readFile('docs/supplemental-content.json', 'utf8')); + for (const { slug, source } of recoveredGuides) { + assert.deepEqual( + supplemental.find(({ destination }) => destination === `${docsRoot}/${slug}.md`), + { + destination: `${docsRoot}/${slug}.md`, + source, + category: 'useful-guide-recovery', + }, + ); + } +}); + +test('published guides omit unsafe or legally questionable source recommendations', async () => { + const linux = await readFile(`${docsRoot}/linux-tricks.md`, 'utf8'); + const survival = await readFile(`${docsRoot}/surviving-dacs.md`, 'utf8'); + assert.doesNotMatch(linux, /password=["']?/i); + assert.doesNotMatch(survival, /Sci-Hub|Library Genesis|Library\.nu/i); +});