Skip to content

studying

How to UC Berkeley

This post is WIP, will keep it updated.

I booked a Lufthansa Student flight for around 1000€. This included 2 checked bags. Stuff in as much of your local favorites to fill up the 23kg. Toothpaste, medication, drug store, sun protection articles... I had a good experience with a long term AirBnb, booking early may be worth it. There are non-scam Facebook groups and co-op run dorm housing.

Bike

Berkeley has a biking infrastructure comparable to European cities. Bicycle boulevards, Bike lanes and racks around the city. Local buses have a self-service bike rack in the front, which is free of charge, like taking bikes on BART. If you want to be independent within the city, a bike is a great way. Buy a bike on Facebook Market Place for around $50 to 100. I was impatient and got a mid-deal, had to fix brakes. Its comparatively expensive to buy, and you need it the minute you have a bike. - Small hand pump - Bike Multitool - Maybe Wera Tool Check Mini - Bike Tube Patch Set - Flashlight/Bike lights for night (any cheap <$10 rechargeable from AliExpress will work) - Lock from home to avoid chicken egg problem how to lock your bike in front of target while buying a lock?

Best of all, there is a student run bike repair shop co-op at cal, called BiCycal. They can assist you fixing your bike.

Swimming

With the campus fee, included in tuition, the recreational and wellbeing facilities pools are free. Swimming equipment is ridiculously expensive in the us, so make sure to bring all you need from home. - Suit - Flip flops - Towel - Locker lock - Goggles - Maybe silicone cap

Pool Opening Hours can be found here

Diving

The bay is great for diving. If you already got a Padi Open water, it should be easy to just get diving. At cal, there is Cal Scuba Website. They have a small membership fee per semester (Fall 2026 $25), which includes gas to diving sites. People will go on diving activities approx. once per month. Especially Monterey with the kelp forests and seagulls and otters is great.

If you have, bring: - Knive - Diving Light (Wurkkos/Sofirn)

Sailing

To go sailing in Berkeley, there are two offerings:

  • Cal Sailing Club, a local co-op run sailing club independent of Cal, best if you stay for a year or if you do not have any prior experience. They do open house regularly, if you just want to try sailing. Website
  • University run RecWell center at the marina Website. They do have RS Zest and Venture for rent. While they did not recognize my German license, it was enough to just forward me to a 1h checkout sail. After passing, I got a paper card allowing me to go sailing on RS Venture. Renting a boat is free for enrolled students. You can borrow spray top, wetsuit, personal flotation devices. Bring:

  • Sailing gloves

  • Neoprene Socks?
  • Floating Sunglasses
  • Hat

What to cook and eat

Mealprep is your friend. A meal at a Cal dining hall will hit you with $15. There are water fountains, bottle refill stations and microwaves all around campus. At some point someone created a map of all of them, but the map seems to be outdated as of 2026. Get some Ikea 365 750ml/20oz containers. I try to always cook 4 meals, eat one and freeze 3. Then I can take one and go to campus. Often, I do not have the time to even queue in dining halls, nor go off campus to eat out. Off campus can be better and cheaper. Bring prepped food to heat in a microwave and save the money to eat out when its worth it and choose a good location. Always have a reusable water bottle as well as some bars with you. Always. Food and water can be ridiculously expensive.

Meals I freeze, because they are healthy, cheap <$3 per meal: - Chili Sin Carne with rice - Viet tomatoes tofu rice - Napa Cabbage with Tofu and rice

Preparing Guacamole can be cheap as well, with 3 avocados, spring onions, and tomatoes for less than $4. Hummus is also pretty cheap. I like to eat a lot of it, including good olive oil and tahini (both Trader Joes) is around $1 per serving. The best rolls I had were fresh ones from Costco at $.5 each. Amazons Artisan french baguette is not that great. Trader Joes is good but a little more expensive. Noodles always work. Also, microwaving oven potatoes is quick, cheap and delicious. Potato into microwave for 5 to 10 minutes, cottage cheese and spring onions. Done.

Breakfest

I personally like overnight oats. Berkeley Bowl sells Baby Oats, similar to German Kölln Flocken for $2 per pound. Regular oats are around $2.49. Also Eggo Waffles are great, occasionally, just toast them and eat them with peanut butter or jam.

Grocery/Shopping

Trader Joes

Cheap bananas, good quality, they seem to not put in chemicals in their food Natural sriracha sauce.

Safeways

Not worth it, except you use coupons and get member pricing. Have a look at the coupons on their website, keep in mind they have to be activates per store, so you will only get the discount in there store where you activated the coupon. For example cheap ice cream or soft drinks, with discounts. Buy what is on sale.

Berkeley Bowl

Best selection overall. But also most expensive, go there for fresh and special food. Cheapest Tofu for $2.

Target

Seems to be mid-priced but no benefit of going there, only for sponges and household items.

Tokyo Fish

San Pablo Ave has a Japanese supermarket. They offer a wide variety of different imported items, like my $3 Soy sauce. If you are into fish, they probably have the best offering in Berkeley

Amazon Fresh

Its just convenient. Free delivery, and best prices on everything. Cheap canned food, cheap avocados...

TooGoodToGo

Have a look, you can get great noodles, cheap donuts, leftover meals from restaurants.

Costco

If someone is inviting you to join a Costco run, go for it. Grab cheap Kirkland Chewy protein bars and Nature Valley Yosemite bars. Make sure to grab a $1.50 Hotdog and Drink with unlimited refills as well as a slice of pizza for $2.

Urban Orb

A The Three Investigators like scrapyard where you can find a lot of random stuff or just enjoy the vibe. Maps

Activities

I am studying computer science, so I am interested connecting with people around SF. Book events on luma.com to get to know people. Have a look at the student unions event calendar. Go there to meet people.

BART/Clipper Bay Pass is included in tuition, use it.

Visit:

  • Maybe Hawaii and Las Vegas??? does only make sense if you have enough time.
  • Lake Tahoe (Truckee and South) in winter and summer with Golden Runner trains or Greyhound buses
  • LA with Plane or coast road trip
  • Stopping at Monterey
  • Santa Barbara
  • Sequoia
  • Santa Monica
  • Maybe The Three Investigators locations
  • Monterey
  • (Golden Gate Viewpoint)[https://maps.app.goo.gl/oSzUDsGvcS2JfC5w7]
  • In-N-Out Burgers
  • Napa Valley
  • See Redwood Trees (on campus)
  • National Parks (With recent changes in pricing for foreigners, it makes sense to buy a car ticket for $250)
  • Sequoia
  • Yosemite
  • Get a Cal Football season pass before they are sold out (Bring a store SEALED water bottle and something to eat, beer, fries and nuggets are $37)
  • See SF Pier 39 Seagulls
  • Maybe visit a language pod to improve English or Spanish or some other language.
  • Hike to Mount Diabolo
  • UC
  • Sather (Clock) Tower (Free)
  • Blake Garden
  • Botanical Garden
  • Lake Anza

StudNET Studentenwohnheim Leipzig

Why is it worth to talk about a student dormitory in Leipzig, Germany. My sister was accepted to study Veterinary Medicine in Leipzig, and she got a room in a dormitory. They call their network studNET. There are good news: It's free, but the bad news are their authentication is complete nonsense.

Authentication

The administrators' idea is to connect a device to the network outlet and then have a ssh connection constantly open to a server to keep authenticated. For Windows they offer a software which does this for you. This software runs as daemon and connects to their server and keeps the connection open. For Linux Johannes Matschke wrote a tool that does this, its a 15 year old unmaintained PHP cli tool. Somethin similar has beed implemented for Linux as Daemon. Nothing I can hand to a medicine student without deeper technical knowledge.

Note after the ssh connection is establish, instead of a shell a script is executed that shows some information and takes your IP to authenticate against their so-called firewall. As long as the connection is open, the script is running and internet access is granted. If a second connection is established with the same credentials, the first one is killed.

In 1997 their ssh authentication might have been state of the art but in 2024 it is definitely not. But since WiFi is a thing now, and no one is using their old EATX Tower PC wired to a wall socket to ssh authenticate with their firewall server a better solution must be found. The Studentenwerk sais that you can hook up a WiFi Router connect via ssh and use the sweet sweet WiFi. The router is functioning as a better access point, all DHCP is done on the device based on their DHCP server set up. This is also possible via an Android App Android App. And probably also via an iOS Terminal Emulator App.

Ok fine. An old AVM FritzBox hooked up to the network outlet and connected to the WiFi, authenticated via ssh on her MacBook. It worked. Yay. But after some minutes the connection timeouted and she had to reauthenticate. Also authenticating on every device is a pain in the ... you know. Every device every time. Ever. Updates overnight? Push Notifications? No way. Answer a FaceTime call on the iPhone? Mobile data is used until you authenticate again.

No proper subnet, no cloud sync, no local network, no handover, no local anything. Can't give access to a friend. You get the idea.

How does their Firewall Thingy work?

My understanding is that if you follow their Tutorial and set up DHCP settings for your device is that your device joins their LAN network. Through the ssh call ssh your_rent_number@their_firewall_thing they get the IP that is authenticating against their server and grant access to the internet.

What could be done?

My Criteria:

  • no manual ssh authentication#
  • automatic authentication on device start/first connect/wifi logon
  • automatic reauthentication
  • no setup on every device
  • WiFi
  • closed local area network
  • easy access (for friends)

It's basically everything what you would expect from a modern home network. Nothing fancy just a standard functional and convenient network.

It is possible to build fancy stuff with a Raspberry Pi running in access point mode and so on. Every cheap mini PC could do the job. But it needs to be reliable and also understandable for a non-technical person and should have better WiFi than a Raspberry Pi or cheap dongle. The FritzBox used earlier would work, but then a second LAN Card would be needed. She does not pay for power so if they only provide stupid Internet Access why should I bother. But I do. Because this seems error-prone to me and I need to buy a USB Ethernet Adapter for the access point, which will be around €15.

What I will do

My sister will receive my cheap Chinese WiFi Router with OpenWRT support, a Gl.Inet GL-A1300.gog.com Their cheapest GL-SFT1200 can always be found on the internet for around for around €30. I got the one off Amazon because it is shipped faster, so she does not need to wait that long and easier to send back if my ideas don't work. Then I will use the Linux as Daemon tool to authenticate the router. Because it is a Linux device it should work. I can easily connect to their DHCP stuff, run the authentication daemon and create a subnet.

How to do it yourself

Log into the WiFi and hook up the routers WAN Port to the network outlet. Make sure to use the left outlet if a multi outlet is provided in your room. Configure the external WAN of OpenWRT via the UI or CLI and connect to router via ssh.

Then on your system ssh onto the router. Use the password you set up and use for the UI.

ssh root@192.168.8.1

On the router install the ssh sshpass for programmatic ssh password input. We also install the OpenSSH Client to replace dropbear client, because dropbear lacks some functionality we need (proper forced pty/tty allocation). I used nano as an editor, so my sister is able to edit the files herself.

opkg install sshpass nano openssh-client

Put the bash script into /usr/bin/studnetauth so it is on path:

#!/bin/sh

echo "studnetauth started"
SSHPASS=PASSWORT sshpass -e ssh -t -t -o StrictHostKeyChecking=no -o ServerAliveInterval=30 RENT_NUMBER@FIREWALL_IP
echo "studnetauth exited"

Make sure to replace PASSWORT, RENT_NUMBER and FIREWALL_IP with the proper values. You need to look up here.

Security Notice: Your password is stored in clear text within the router. Everyone with physical or authenticated network access to the device will be able to read it. We also accept any remote host key without any questions asked.

You can check the logs with

logread | grep studnetauth

and reload the config with

service studnetauth reload

and restart the service with

service studnetauth restart

Make sure the script is executable:

chmod +x /usr/bin/studnetauth

And test if the authentication works. The first time you need to accept the ssh key. Just type yes and return to accept the key. The SSH key will be added to your known hosts.

If ssh RENT_NUMBER@FIREWALL_IP goes through (and put your key into the known_hosts file) and you now can use internet on your device test once again with the script on path.

studnetauth

If this also works you can put the script into the startup of the router.

Put the service config into /etc/init.d/studnetauth

#!/bin/sh /etc/rc.common

START=95

USE_PROCD=1

start_service() {
    procd_open_instance
    procd_set_param command /usr/bin/studnetauth  # Path to your executable
    procd_set_param respawn 1 1 0  # Test every 1sec if failed, delay before restart
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_close_instance
}

Make it executable

chmod +x /etc/init.d/studnetauth

Then start and enable the service

service studnetauth enable
service studnetauth start

To make sure we do not run into a timeout because no packages are sent we ping 1.1.1.1 every 10 seconds:

Put the bash script into /usr/bin/studnetping so it is on path:

#!/bin/sh

echo "studnetping exited"
ping -W 2 -i 10 1.1.1.1
echo "studnetping exited"
chmod +x /usr/bin/studnetping

Test it with:

studnetping

If this also works you can put the script into the startup of the router.

Put the service config into /etc/init.d/studnetping

#!/bin/sh /etc/rc.common

START=95

USE_PROCD=1

start_service() {
    procd_open_instance
    procd_set_param command /usr/bin/studnetping  # Path to your executable
    procd_set_param respawn 1 1 0  # Test every 1sec if failed, delay before restart
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_close_instance
}

Make it executable

chmod +x /etc/init.d/studnetping

Then start and enable the service

service studnetping enable
service studnetping start

Make sure both services are started correctly and internet is working. Now the router should authenticate itself and should try reauthentication on failure. Unplug the router and plug it back in to test if the service authenticates after startup.

Have fun with your new home network.

OpenWRT in VirtualBox

Use VBoxManage convertfromraw --format VDI openwrt.img openwrt.vdi to convert an img to vdi. Within network settings select Adapter 1 attach to Bridged Adapter and name to your network device. Enable Adapter 2 and do the same. Add created openwrt.vdi as storage and reboot.