49 ms·
Got called to a professor’s office after a complaint his SPARC4 was running slow
- db48x 3y agoStories about software bugs are the best :D
- ggm 3y agoIn some ways it was a sw bug: the roaches should have been more apparent, not simply breeding.
- phs318u 3y agoBack in 1989 I worked as a one-man-IT-department for a bunch of ex-academic economists doing econometric modelling on a Digital VAX 11/750. This mini-computer was running VMS - a multi-user operating system. All users had admin rights and each one thought that they could make their models run faster by bumping up the process priority as far as it could go - which of course interfered with the realtime processes needed to manage the effective running of the computer. Unsurprisingly, this had the opposite effect to what they intended. When I discovered this was what was happening, I revoked their privileges and after a system restart, sanity was restored. I was thanked for finally making the system work faster.
- havnagiggle 3y agoA bunch of economists couldn't play nice?
- quickthrower2 3y agoBehaving like perfectly rational actors, of course.
- Dylan16807 3y agoWow, you annoyed someone enough to get your comment hidden, impressive.
- ycombinete 3y agoGreat example of the economic principle The Tragedy of the Commons: https://en.m.wikipedia.org/wiki/Tragedy_of_the_commons https://en.m.wikipedia.org/wiki/Tragedy_of_the_commons
- latchkey 3y agoOh, my first internet access was through one of those in 1991 at college! Found a cool exploit that let me anonymously broadcast messages to anyone. Sure freaked out a lot of people. Was fun cause you'd get to see the effects of your action in real time because it was a bunch of people in the same room on shared terminals.
- pdntspa 3y agoReminds me of WinPopup spam on Windows 95
- cheese_van 3y agoAround '84 doing seismic data. We just got a terminal in the office that would allow you to monitor the jobs running on the IBM mainframes downstairs. Completely new tech to all of us. It had a command line message capability. Because it was quite easy to send to all instead of just your recipient, one marriage ended rather suddenly. Seeing the effects of your actions with new tech in real time indeed.
- sokoloff 3y agoWorking at a hedge fund with multiple locations, the founder insisted that mail to “staff” would reach everyone at the local office and mail to “all” would reach everyone (in all offices). One afternoon (in the middle of the trading day), we got a weird email with an empty body and a bunch of nonsense email addresses. Turns out some poor trader wrote an online dating email, but pasted/wrote the mail in the cc line, resulting in all of us learning that he thought “you don’t seem like all the other girls”, which was sent to you@, don’t@, seem@, and the dreaded all@.
- taneq 3y ago“Cool exploit“? Like net send? :)
- KnobbleMcKnees 3y agoI was banned from the school computer suites several times for (ab)using net send. Good times.
- idontwantthis 3y agoIf a group of economists can’t coordinate their behavior to prevent tragedy of the commons then they should rethink their career and life choices.
- zer8k 3y agoA group of economists couldn't coordinate splitting a bill at Applebee's.
- yabbs 3y agoApplebee's... Does not compute.
- hgomersall 3y agoOn the contrary, it was a rational attempt to limit their ability to break things.
- shagie 3y agoThere was a system that a bunch of students administered (I was one of the students at the time). We would occasionally prank each other. On this DEC station where memory was scarce, one guy ran emacs. Another guy wrote a program that forked 1000 copies of itself, nice itself to 19, did a sleep(0) and then exit. As soon as it got any cpu time, it would exit, but it never would as long as emacs was running. Meanwhile, the load (as displayed by xload) became a solid black box. So the emacs guy would run 'ps -ef | grep procname | xargs kill' as root. This meant that it had to get some cpu time to handle the kill, which took longer than a sleep(0) and was largely ineffective. The second time this prank was done, the process was named 'ema'... which promptly also killed all instances of emacs too. The third time this prank was done, the process was named 'et'. This happened to have also matched /etc/initd and the machine rebooted rather suddenly.
- schoen 3y agoSomehow I've never considered what will happen on Unix if pid 1 exits! Even though I'm pretty sure I've run with init=/bin/sh and then typed "exit" at some point in my single-user session, I have absolutely no recollection of the results. I should try it on a few OSes and see!
- suid 3y agoIf PID 1 exits, the system usually panics immediately and restarts.
- ww520 3y agoEconomy is all about incentives and behaviors. Did they learn any lessons from how they acted during the episode? And hopefully published a whole bunch of papers from it?
- jjp 3y agoHad exactly the same with a bunch of developers who could change the queue priority on a mainframe for their own work. They couldn't work out for themselves that if everybody set their work to the highest priority it had no benefit to any of them. Trying to educate them failed, so we revoked access.
- darkclouds 3y ago> All users had admin rights and each one thought that they could make their models run faster by bumping up the process priority as far as it could go - which of course interfered with the realtime processes needed to manage the effective running of the computer It amazes me what the bios and OS or OS api's let you do, even on modern devices.
- LoganDark 3y ago> It amazes me what the bios and OS or OS api's let you do, even on modern devices. Same, but not necessarily in a negative way. I like pushing my hardware and software to the limits, becoming unable to push those limits would be pretty disappointing.
- Kon-Peki 3y agoI'm not sure anyone should call VMS "modern", but that's beside the point ;) VMS has a very comprehensive system of quotas and limits, so a "properly" configured system wouldn't suffer those issues. And furthermore, VMS isn't intended to be used "interactively" as such. You should be submitting work to the built-in batch queues - each with various attributes that can include the priority level. This allows the system to intelligently manage work based on a comprehensive view of the entire system - something a single user in a multi-user system can't have. If you like pushing a multi-user system to its limits, you'd be impressed with what VMS could do even way back in the 1990s.
- LoganDark 3y agoWe don't typically use multi-user systems, actually - I'm pretty sure Logan meant our personal hardware. For example, we run an i5-12400F at 5.2GHz and run a fairly customized Windows 11 Enterprise, both of which would become impossible if our BIOS and operating system were too much more locked down. I mean, our motherboard has an external clock generator almost entirely dedicated to pointing and laughing at CPUs with a "locked multiplier". (It's also used for PCIe 5.0) -Emily (see HN profile for details)
- infostud 3y agoI remember going along to a VAX/VMS System Administration workshop. Another bloke and I did a prank where we substituted text of the text editor that would produce blinking "Working" if it got busy. We substituted "or" with "an". The workshop coordinator caught us because we forgot to do something I can't remember and a login was tied to the change in the executable. Happy System Administrator's Day!
- bstpierre 3y agoIn 1993 my freshman CS class was taught in scheme. All of our assignments had to be developed and tested on some shared Digital machine running Ultrix. The scheme interpreter was kind of slow to start, especially when there were 20+ users logged in. Helpfully, our TA taught us how to ctrl-z to suspend the interpreter, then edit our program in vi, and then "fg" to get back into the interpreter. Unfortunately the fg part of the equation was lost on about 2/3 of our class... after editing they would start another scheme instance! I recall being in the terminal lab the night one of our first assignments was due, and the machine slowed to an absolute crawl. Can't remember exactly how it was resolved but I do recall being taught how to look for classmates running two or more instances of scheme to remind them about fg. (Also not helpful to machine load: "solutions" to the 8 queens problem with infinite recursion. The real lesson here was, in later years, to not be logged in on nights when CS 401 had assignments due.)
- gte525u 3y agoI had a similar story with a friend in college in the 2000's. He would always hit Ctrl-z'd to "close" emacs when logged into the server which would've been fine if he wasn't using screen or tmux as well. At some point, he was using a ridiculous amount of RAM on the server and the admins suspended his login to force him to come in.
- chiph 3y agoI had a classmate who did her assignments in Ada. The compiler & linker would bring the school's Data General MV/8000 to it's knees, as it swapped out other processes to make room for it. Every 30-40 minutes we would have a coffee break forced on us.
- donatj 3y agoWhen I was first learning Linux around 2006 I somehow got the idea that Ctrl-Z was the way to exit programs. For maybe 3 years, I would just Ctrl-z my way out of programs. Luckily I worked almost entirely over ssh so I presume the suspended threads died with my ssh session exiting each day.
- dghughes 3y agoThat reminds me of a story from a guy I worked with. I'm not sure where he worked but it involved a queue of people. He said someone asked him if they could be given priority for their problem to be looked at before others in the queue. In other words jump to the head of the queue. He said "Sure!" to the surprise of the person asking "But you do realize I will do that for anyone else who asks the same thing?" So they person chose to remain in their place in line.
- LorenPechtel 3y agoI had something of the opposite experience. Digging into the manuals I figured out how to launch the compiler as a background process so I could still have a working system while waiting for it. Brought the whole classroom to a halt. More digging revealed that the background priority was set well above user priority. AFIAK no malice involved, just someone who didn't know how to set the system up and left that landmine for me to find.
- pmontra 3y agoI remember a variant of xroaches: it had crawling babies with diapers. Maybe they wouldn't multiply under windows but they could be just a different bitmap with the same algorithm.
- rwmj 3y agoxneko was the best one.
- n6h6 3y agoI looked it up, and aww :) https://en.wikipedia.org/wiki/Neko_(software) https://en.wikipedia.org/wiki/Neko_(software) Unlike many of the things people talk about on this website that I didn't experience growing up, I actually did download this on Windows Vista once. It might have been a version with malware, but I don't remember.
- yjftsjthsd-h 3y agoIt's funny how many stories from earlier times boil down to "it wasn't meant to be malicious, just funny, but people didn't realize that it would multiply that much or use so many resources". See also: the morris worm (I mean, that arguably was designed as malware, but supposedly wasn't supposed to be nearly as bad as it was)
- unilynx 3y agoThe interesting part is that it occurred to no one to just reboot and see if that fixes it. Apparently systems were a lot stabler.
- kristopolous 3y agoCalling IT is the right move here. Could have been an intruder or a remote user doing something important. It's a different relationship. The department workstations were much closer to the refrigerator or copy machine. If it's broken you don't touch it and just call somebody. In modern money these machines were between $7,000-$10,000 each depending on configuration. To put it in context, pretend you work somewhere where they provide you with a half height rack and a Precision 7960 https://www.dell.com/en-us/shop/workstations-isv-certified/precision-7960-rack-workstation/spd/precision-r7960-workstation/xctopr7960us_vp?configurationid=7df7c9ea-6084-4db8-824a-2a176f306ab8 https://www.dell.com/en-us/shop/workstations-isv-certified/p... And it starts acting up. What do you do? (As an aside, I've always wondered how many maxed out configuration orders they get - you know, when you kick that price up to $100k - what's the threshold where they ask if they could put someone on a plane to visit you? 10 of them?)
- eru 3y agoI'd probably reboot it every day (or every week) as a matter of course. Not just when there are problems. Just so that I know that there are no unexpected surprises happening when I need to reboot it in an emergency.
- raverbashing 3y agoIs it too late to open a bug with the xroach developers?
- deckar01 3y agoI once had to troubleshoot the math department director’s PC misbehaving. It turned out that he let prime95 have every spare cycle on a core 2 duo for a decade and the machine would only boot if it had cooled to room temperature.
- Exmoor 3y agoIt took me way too long to remember that Prime95 is useful for something other than stress testing.
- oxygen_crisis 3y agoLooks like the project averaged about one new Mersenne Prime per year for 1996-2009, and then only 4 hits for 2010-2018 with none since 2018. Obviously the tflops::hit difficulty ratio is ramping up as the numbers get larger, but I can't help wondering if the cryptocurrency craze dampened their work rate. They're reporting 78,012 tflops of work done today, but my five minutes of investigation wasn't enough to find a historical chart of tflops/day and five minutes is about the limit of my curiosity on this matter for now.
- jl6 3y agoWhen the project started, CPU frequency scaling wasn't a thing, so CPUs would run at full speed (and full power draw) 100% of the time. If you weren't making maximal use of the CPU, any remaining capacity would go to waste. Distributed computing projects could make use of that remaining capacity. Today, CPUs are built with power efficiency in mind, and will attempt to scale down rapidly when not fully in use. Thus there is no longer such a thing as "spare CPU time". Any time spent on distributed computing projects is paid for in electricity costs. Some choose to continue anyway, but many have been disincentivized.
- tedunangst 3y agoThe hlt instruction has been around for a while.
- gnoack 3y agoIn the mid-2000ds, there eventually came a time when the xlock (Ex-lock) screen locker disappeared from the last university workstations that still had it. People routinely got puzzled when they could not run it. It was a fun prank to tell them that Ex-Cee-lock was the replacement for it (which would, of course, run the clock application). :)
- mcv 3y agoXlocking workstations became a problem at our university. People would claim a workstation, lock it, go do something else (lunch, lecture) and then come back to their reserved workstation. So the admins added a button that you could log someone out if the screen had been locked for more than half an hour. They didn't want to ban xlock because they cared about security.
- dspillett 3y ago> So the admins added a button that you could log someone out if the screen had been locked for more than half an hour. In our CS labs the PCs re-imaged themselves on boot⁰, from a choice of OS images¹, so you didn't have to worry about causing corruption of the machine by just power-cycling it to get around the locked status. This meant that locking a workstation to reserve it didn't work. My workaround to that² was to set the wallpaper which displayed behind the unlock prompt to an image of a bluescreen indicating a hardware error and move the window containing the lock prompt to the for bottom right of the screen, so it was just a single pixel and not easily noticed. Hey presto: a locked machine that no one wanted to claim by restarting because it looked faulty. Obviously anyone with half a brain watching me unlock the machine a short while later would immediately work out the trick, so the knowledge spread soon enough and the ruse stopped being as effective. It was very effective for a while. -- [0] from the same shared network drive, which was initially a problem (this was the first year that lab had been in operation) if several machines re-imaged at the same time as head thrashing caused IO throughout to fall through the floor. Later revisions of the setup helped by tweaking cache settings, and giving the server more RAM, so that the second and subsequent read of an image in a given period would come from cache, also the images were compressed for the same reason and also to reduce the second bottleneck: the glut of traffic through the server's single 100mbit NIC. [1] usually just Windows NT and the local Linux build, but sometimes other options were present [2] which I used very occasionally, partly to not be a dick but mainly so as to not give the game away to quickly
- 1vuio0pswjnm7 3y agoFor text-only browser users: https://infosec.exchange/@paco/110772422266480371/embed https://infosec.exchange/@paco/110772422266480371/embed
- raverbashing 3y agoYou mean for the poor people that don't have an X capable terminal and only have a VT100
- hulitu 3y agoI don't even have a VT100. I have an Android phone.
- 1vuio0pswjnm7 3y agohttps://github.com/termux https://github.com/termux
- EgregiousCube 3y agoSort of a meta-comment about infosec.exchange, so I expect a few downvotes, but while this was a funny dad joke it took more scanning and reading than it was worth. Mastodon UI's are very dated despite being new. I miss interdepartmental unix pranks!
- rblatz 3y agoI tried to read it and it was unusable. I had to turn on reader mode to make it at all usable.
- o1y32 3y agoThis thing has a side bar even on a mobile device which shrinks the width of the text even more. The text is very difficult to read. You have to acknowledge that Twitter is a carefully designed and mature product at least in terms of UX.
- nirui 3y ago> Please be aware that this version still has some bugs That's ... very obvious, but thanks for the reminder.
- ragebol 3y agoWanted to install xroach on my Ubuntu box, but no apt package is available. There is xroachng though [0], created by: Willem_vermin :-) [0] https://sourceforge.net/projects/xroachng/ https://sourceforge.net/projects/xroachng/
- alexeiz 3y agoIt's available in openSUSE repos. Just saying...
- lordgrenville 3y agoLooks pretty easy to compile https://github.com/interkosmos/xroach https://github.com/interkosmos/xroach
- ragebol 3y agoYep, couldn't be easier. It's been running on my box since I left my comment. No bugs observed yet, maybe they are hiding too well
- Gordonjcp 3y agoxneko was better, replaced by oneko.
- codewiz 3y agoNo Wayland version yet?
- pavon 3y agoFrom what I understand this would have to be built into the compositor, as it is the only process that knows the positions of all the windows.
- nathell 3y agoAh, the golden student days of yore. Mine were in the early 2000s. Back then, the computers at the lab at my uni were not very powerful, so people would do work at a Linux console, saving themselves the hassle of running a bulky X session. Some time around 2001 I read the console_ioctl(4) manpage and found it replete with prank possibilities. I wrote little programs that would flip the console font so that all the characters were upside down; or swap capital letters with small letters, again by way of manipulating the font; or flash patterns on the keyboard LEDs; or fade to black and back by manipulating the palette. I then added a server component so that I could leave it running at an innocuously-looking terminal, wait for a victim, fire up these effects remotely from another box in the same room, and watch what happens. Fortunately, I soon discovered that the coding part was more fun than the watching-people-slip part, so I gave up on the latter. Another prank I used to do was simulate a successful root login on these terminals by just typing in what would be printed, including the motd, at the getty login prompt, simulating newlines with tabs/spaces (and never ever pressing RET), ending in `[root@mailhost root]# `. Then, again, step back and watch what happens. Some people would curiously type in `whoami` and be puzzled why they got a password prompt; some would step back in terror without touching anything, switch terminals and email the sysadmin.
- xolve 3y agoThis certainly sounds fun! This is how people realise coding is immensely fun and impactful when you are involved in the results :)
- 0x6c6f6c 3y agoI wish I'd had Linux systems. I was doing the same type of thing with Windows networks since you could effectively run any program as any user with task scheduling so long as they were logged into the system. Pair that with active directory and you have user info. So knowing who was where, open iexplorer at certain site, innocuous word doc, etc. The most malicious case was an automated logout batch script. People eventually caught on to the approach and tried to replicate the remote execution but executing as themselves instead of that user so when the IT admins came around there was a very obvious trail to who had been running it. I stopped playing around but eventually IT then SWE became my profession. I sometimes wonder how it'd have gone if I'd been reprimanded though.
- oaiey 3y agowhile (fork()) { while (malloc(1000)) { } } while (true) {} // or whatever true was in good old C ;) my most loved program when I was a young student on a mainframe with 20 other kids.
- boffinAudio 3y agoWe used to 'rain-bomb' each others terminals: $ rain | wall This was always really fun with the newcomers to the ops centers ..
- notbeuller 3y agoOur unix (Gould GLX or something?) with dozens of terminals lacked appropriate permissions on /dev/ttyNN - so we just piped rain directly to the neighbors terminal.
- rwmj 3y agoBack in the day we banned using animated xlock to lock your screen. The Sun workstations in the lab ran the X server local and picked a random other machine to run the window manager and clients when you logged in. (Which is kind of an odd way to do it when I think about it now, but also cool that it was possible.) However this was all running over shared 10 Mbps ethernet with probably 100 machines and only 2 or 3 segments. This all worked fine until a few people use animated xlock running remotely over the shared network.
- dspillett 3y ago> ran the X server local and picked a random other machine to run the window manager and clients Are you sure they were full workstations and not more dumb terminals (just enough processing power to be an X display) with all your logins being to a central beefy server (or one of a few) rather than some random machine? If that were the case then an animated xlock would potentially chew up an unfair amount of CPU time as well as clogging the network spitting the results out to your local X display.
- rwmj 3y agoSome were indeed "dumb" X terminals, but most were top of the line Sun workstations provided at greatly reduced cost to the university. The best machines were the few HP PA-RISC ones though. Blazing fast.
- m463 3y agoI remember lots of things like this, from the sunos days. There was a program that would sort of melt your screen. There was another one that would animate a little character at the bottom who would then push your desktop off the side of the screen. and there was a way to take all the workstations in the group, and play sounds on them. So (nearest I can vaguely recall): for i in machine1 machine2 machine3 ... do rsh $i "play applause.au &" done sunos came with sound files for laughter and applause, and it was amusing to have all the machines in the group laugh or applaud like a crowd. (well it was amusing the first few times anyway...)
- AnimalMuppet 3y ago> There was a program that would sort of melt your screen. This existed for PCs, too. It was called "drip". When idle, individual characters would "drip" down your screen like raindrops, at random times, for random distances. Another one I remember was "drain". In the very early PC days, you could add this program to the AUTOEXEC.BAT of an unsuspecting victim's computer, so that it would run at startup. It would start flashing "SYSTEM ERROR 0304-B" for a moment, then add "Water detected in disk drive A:". Another moment, then "Now draining", and it would play this gurgling sound out of the speakers (as best you could, on the speakers of the original PC). That would peter out, then "Now starting spin dry cycle", and it would play this whining sound for a bit, ramp that down, and then tell you that it was OK to use the system now. In those days, there weren't "logins" to PCs. If you saw a PC without the normal user present, you could do anything to it.
- Starwatcher2001 3y agoI seem to recall that "Drain" spun up the motor on the floppy drive to create the spin dry cycle.
- AnimalMuppet 3y agoIf I recall correctly, the drive light stayed on, the drive was spinning, but the whine came from the speakers, and moved to a higher pitch partway through. It also smoothly ramped down in "RPM" (frequency) at the end, which is not a thing that the floppies could do.
- lbriner 3y agoSince I was at college in the second half of the 90s, we still had unix text consoles for reading emails so my favourite prank was to tell others in my dorm that I had worked out how to remotely log in from the dorm (we had to use a computer room back in them days!) and with my 10 line Turbo Pascal program created a fake login screen like looked identical to the normal one. After capturing a password, I would explain to each person that maybe it wasn't quite working so "sorry", so they were none the wiser that they had given me their passwords. I didn't do anything with the passwords, it was just interesting how easy it was to get away with.
- dspillett 3y agoSomeone was discovered to be collecting passwords that way on our universities VT terminals (I'm old enough that at Uni plain text terminals were still a thing, though they were generally used just as terminals for email & such when the lab rooms full of PCs were fully occupied) by leaving what looked like a login prompt on-screen. Someone with much tech knowledge immediately saw it wasn't quite right (that is how the issue was found) but these were terminals used by the general populace not just us CompSci students so the vast majority of the users were not at all technical (what we might assume almost everyone knows these days was still new fangled magic to the average student back then, for many arriving at Uni was their first encounter with having an email account for instance). To my knowledge they never worked out who did it, or how long it had been going on for other than “may have been months”, because the fake login app would exit and logout after sending off the captured credential, and next time it was run it was done from one of the captured accounts, so only the very first capture would have been done by the culprit's own account (even that maybe not if they'd guessed or stolen a password by other means first). Captured credentials were sent to a popular high volume usenet newsgroup so they couldn't track who was reading the result that way. Also, no evidence of the attacker actually using the compromised credentials for anything else, so it was possibly someone “playing” to see what they could do rather than a more malicious intent. It became standard practise (“enforced” by notices in large all caps text) to reset terminals before logging in to be more sure that was a real login prompt.
- fcatalan 3y agoMid 90s were fun at Uni. Replacing a T-connector with a broken one to sabotage unpopular classes... Or binary searching it with a terminator to save one you liked... Learning that pinging Windows 3.1 with a big payload would BSOD it and writing a script to perform a rolling BSOD of the entire lab while sitting in the back... Sending random insults to random spots on ttys while people read their mail using Elm... Writing a trojan to steal and then delete the MUD accounts of the dudes hogging the only 2 computers with Internet access available to undergrads... And being caught and let go with a not so stern warning. Simpler times.
- phkahler 3y ago>> Sending random insults to random spots on ttys while people read their mail using Elm... Receiving such a write and tracking down the offender for a face to face "you got a problem man!?!?" ;-)
- fcatalan 3y agoI still treasure friendships forged that way :)
- Twirrim 3y ago> Replacing a T-connector with a broken one to sabotage unpopular classes When I started working in academia they had mostly phased out 10BASE2. Every now and then we'd get reports of network being broken and would have to get out the break detector to track down where. Inevitably we'd find a student had unplugged a T-connector in a classroom, disrupting the others on the same loop.
- mcv 3y agoI believe either my brother or someone he knew once wrote a program that spawned lots of child processes. He did that to test a scheduler or something like that, but it got a bit out of hand and swamped a major server in endless processes. Admins weren't pleased. But also not too upset, because they approved of students experimenting. We had pretty cool admins.
- microtonal 3y agoA fork bomb. In shell: :(){ :|:& };:
- doetoe 3y agoCould you explain how this works?
- system33- 3y agoA function called ':' is defined. In its body, it calls itself twice at the same time (':|:') (piping the output of the first call into the second, which doesn't do anything useful) and sends these calls to the background ('&'). After function ':' is finished being defined, it is called. The first call spawns two clones. Each of those spawn two more. Etc.
- doetoe 3y agoGreat, thanks!
- xav0989 3y ago:() defines a new function called : { :|:& } is the body of the function, where we call the : function recursively, piping (|) its output to another call to :, then backgrounding the whole thing (&) ; indicate the end of a statement and the start of a new one : and finally the last : calls the function we defined to start the chain Essentially each time the function is ran, it creates 2 new copies of itself, which each create 2 copies of themselves, etc. until your OS stops responding and crashes. Nowadays many shells recognize this particular fork bomb and refuse to execute it
- daly 3y agoIBM 370 mainframe, 80+ programmers, running VM/370 which creates virtual machines, one for each programmer. I'm one of two systems programmers with "superuser" privs. In the virtual machine you normally ran CMS but you could run anything. Some machines ran MVS. To direct a command to the virtual machine itself you would prefix the command with a special character which by default was # but any chosen character could be the magic prefix. So #cp ... would be a command to the virtual machine. Bored one day I wondered if a virtual machine could run VM itself, on the "second level". I booted it up, changed the prefix character to ! (so, !cp). I could create new virtual machines inside this new VM. So, could a second level virtual machine run VM? I booted it up on the "third level", changed the prefix to @ (so, @cp)... I got 8 levels deep. So, yes, VM could run VM, could run VM, could run VM... etc. Game over. Time to start shutting down these embedded levels. Out of habit I typed "#cp shutdown" ... and it did. The REAL VM on the REAL machine shut down. Panic run to the machine room to push the start button on the console. Of course the system keeps a log ... and the other systems programmer showed up at my door ... and said "don't do that again". Fun times.
- rwmj 3y agoI wrote this for abusing qemu in the same way: http://git.annexia.org/?p=supernested.git;a=summary http://git.annexia.org/?p=supernested.git;a=summary
- deadbeeves 3y agoI don't understand. I thought # was the prefix for the level 1 VM, not for the level 0 OS (the host). If you used # to send commands to level 0, what was the prefix for level 1?
- daly 3y agoSystem admin privilege #cp shutdown works on the real machine (unless the prefix is changed). I set the first virtual level system prefix to be !cp, second level to @cp, third level to $cp (look at the top of your number keys to see the sequence). I SHOULD have walked backward $cp shutdown ... @cp shutdown ... !cp shutdown but habit caused me to type #cp shutdown. Sigh.
- p0d 3y agoMust be 20 years ago as Google was a thing and we had a split monitor and kvm with the one computer in the school IT classroom. My colleague types hello into the Google search box from the next room. The student then typed who's this? Colleague types, Jimi Hendrix...student turns computer off at the plug :-)
- bigjump 3y agoThe simple pranks are the best. We just used to add an alias for 'ls' which introduced a subtle, but ever increasing delay each time it was run.
- _flux 3y agoDebian also comes with the package 'sl' that can be amusing. At first at least.
- amlib 3y agoI seldomly mistype ls as sl but it always makes me smile when it happens. It also doesn't bothers me because you can quickly circumvent it by sending sl to background with ctrl+z and deal with it later... But now that I think about it I wonder if you can prevent the job manager from back-grounding a task, would be quite the addition to sl heheh.
- _flux 3y agoYou can handle the TSTP signal to stop that. However, it still leaves ABRT on the table that can be with ctrl-4 and ctrl-\. For that you'd need to disable the binding e.g. with stty and then handle TSTOP the same way I suppose—or just put it in raw mode.
- pjmlp 3y agoOn our university lab, the main reason why most of the savy users would have "xhost -" on their login scripts would be to avoid being shown not so convenient images at the wrong times.
- sam99x 3y agoIn the early '90s, I was a fresh Computer Science undergraduate student at a state university. Our computer lab was packed with the Sun SPARCstation IPCs, each running SunOS. We had this rudimentary email system that everyone in the department used to communicate. The tech-savvy folks, of course, had started exploring Usenet, but for the majority of us, the e-mail was our digital universe. One day, my group of friends and I decided to have some fun. We concocted an idea inspired by the famous 'fortune' command that prints out random adages. We wrote a simple shell script that would take a random line from a text file full of humorous and nonsensical messages we'd written, then mail it to a random user in the computer science department. The script was set up as a cron job, scheduled to send one of these messages every hour. Initially, it was just a harmless prank. People found the messages funny and would often share them in the lab. The source of these messages became the talk of the department, but nobody knew where they were coming from. We took great pleasure in watching our peers and professors speculating about the mysterious sender. However, things started to get out of hand when the Dean received an especially absurd message that read, "Why do computer scientists confuse Christmas and Halloween? Because Oct 31 == Dec 25!" He found the joke incomprehensible and thought it was some sort of cryptic message or even a potential threat. The campus IT team was called in to investigate, and a week-long frenzy ensued as they tried to trace the source of the emails. My friends and I watched in trepidation, wondering if we'd be found out and expelled for our seemingly harmless prank. Finally, after several sleepless nights, we decided to turn ourselves in. We went to the Dean and confessed. After an anxious silence, he started laughing. Apparently, he had been let in on the joke by one of the Computer Science professors and was waiting to see how long it would take for us to come forward. He was good-natured about the prank and found our initiative creative, although he warned us about the unintended consequences of such pranks. Looking back, it was a fun, memorable prank that gave us a valuable lesson about the ethics of technology use. It's a story I often recount when I'm teaching my own Computer Science students about the importance of ethical conduct in the digital world.
- Neil44 3y agoWhen I worked in IT at a big company we had a fake screensaver that emulated a blue screen and boot loop situation. Nobody ever thought to press a key or move the mouse which would have cleared it, they would always go for a power cycle followed by lots of hilarious troubleshooting, before it happened again and again. Good times.
- dzdt 3y agoA grad school prank one of my friends pulled on another: echo sleep -1 >> .login was appended to the .login file of the victims account. The victim stepped away from the terminal briefly leaving themselves logged in allowing the prankster to make the addition. It was days later with over 20 sleep statements appended before it was apparent that something was uniquely wrong with that student's login. Day after day the victim grew increasingly frustrated with the slower and slower times from initial login to active terminal. Finally when it was getting unbearable the prank was discovered.
- kwantam 3y agoCame here to reminisce about the same trick :) After a while we decided that adding one second per login was too subtle... echo "echo sleep 1 >> ~/.login" >> ~/.login
- NoZebra120vClip 3y agoGood news! Now that "sleep" supports fractional seconds, you could ratchet up the suspense verrry slllowly...
- Ensorceled 3y agoI installed that on a coworker’s machine only to find out he had a bug phobia. He shrieked like a kindergartener! I had to buy him beers for weeks before he forgave me.
- g051051 3y agoSomeone at work played this prank on a business analyst and almost got fired. It was the early 90's, and we were a shop running HP/UX on Apollo workstations. She was a SME for the application we were developing, but was otherwise non-technical. He and her were friends, so one day he fired up xroach on her system. When she moved a window she absolutely freaked out, and wanted the guy fired. He kept his job, but I don't think they were friends after that.
- NoZebra120vClip 3y agoPlenty of people in this thread with Apollos in their past. We had no fun on the Apollos in college; they ran DOMAIN/OS, I programmed the 68xxx assembly and I got out of there. I did all my mischief on the Unix machines: 3B2s with dumb terminals, and diskless SPARCstation SLCs.
- bluedino 3y agoBack in my MSP days I had a client report that their server was slowing down after an hour. They would also use this "server" (a tower computer in a back room) to adjust inventory, print reports, etc, but after an hour of having used it, everything would slow to a crawl. It was running databases and such that other computers in the building accessed. Every time the server slowed down, someone would go back there and restart the software, or reboot the whole computer, and it'd be fine for another hour. Sure enough, after an hour, some fancy ass 3D screen saver came on and pegged the CPU. It was some shareware thing that someone downloaded because it looked cool. I ended up turning the screensaver off and just set the monitor to go to sleep after 10 minutes.
- teh_klev 3y agoSeeing as we're sharing our fun and games... When I was at college back in the 80's we had access as students to the college's VAX 11/750 (an 8750 Systime clone) to work on our coding projects. The student terminals were on one half of a large divided room, the other half being used by the college IT folks. Often, if there wasn't a spare terminal on the IT admin half of the room, one or two of the IT folks would use two of the nearest terminals just over the divider. One day, bored out of my mind waiting for my COBOL project to compile, I wondered if I could capture the sys admin's username and password. I wrote a script using the CLI to perfectly simulate the login prompt complete with beeps, messages and all. All it did was clear the screen, sit there waiting for user to enter their username and password, when they did the script would mail me said username and password, display a username/password error then logout to the real login process. After trying the script out on a couple of unsuspecting classmates and having a bit of anonymous tomfoolery I decided it was time to try this out for real with the sysadmins. I logged into both terminals the IT folks normally used and left the script running. A few hours later I returned and to my surprise and mild anxiety I found out that I'd captured the SYSTEM login password :o. For about a month or so I'd full control of that machine, and would re-run the script occasionally whenever the SYSTEM password changed. I told no-one and on my last day at college logged in and deleted the script, just in case (this was around the time the law in the UK was getting a bit heavy with regards to unauthorised computer access). Combined with access to the huge set of manuals for that machine I spent a heap of time exploring and learning about VMS and no-one had a clue.
- 0x6c6f6c 3y agoThis is great. Reminds me of the BASIC program I wrote on my Ti-83 to simulate the memory reset process for algebra tests because our teacher walked around and would run it himself. Big surprise now I program for a living.
- teh_klev 3y ago> Big surprise now I program for a living. Oddly, me too :)
- samch 3y ago
- loph 3y agoI once set up a job on a co-workers VAXstation 3100 that would run XCrab every 10 minutes. What is XCrab? It is an annoying little program, when it runs a crab scurries across the screen, grabs the mouse pointer, and runs off the screen with it. I renamed the job PRT$SYMBIOINT so it looked like part of the print spooler, he never figured it out.
- nickdothutton 3y agoIn my day we ran irc servers and MUDs on the professors workstations, which were of course tied in to the campus-wide NIS/NIS+ system, and often more lightly loaded than the big iron (that being VAX6000 or 8000, or if you were lucky a Sparc20).
- ufo 3y agoDoes anyone know where we find a video of xroach in action?
- awiesenhofer 3y agoAnd here I thought for a second this would be a story about a professor who still uses an old SparcStation today...
- devin 3y agoI wrote some code to run on the office computer that we used to stream music from. At a random time every 24-48 hours, it would turn its volume up and say “I love you” using the Mac OS whisper voice.
- guerrilla 3y agoAhh, I miss AppleScript and those voices...
- Trixter 3y agoIn high school in 1988, a friend and I discovered a vulnerability in the netware deployment of 30 IBM PS/2 Model 30-286s in our brand new computer lab that allowed us to insert programs into the autoexec netboot sequence. Prior to that, we'd been hacking on the (brand new at the time) VGA registers and figured out how to switch from 80x25 text mode to 320x200 256-color graphics mode with no flicker or glitches, as both modes have a refresh rate of 70Hz. So he created a TSR that preloaded a digitized picture of a clown face (a popular upload on BBSes at the time) into A000:0000, and after about 4 minutes, it would display the clown face for a few frames and then immediately switch back to whatever the user was working on. We gave ourselves away because we couldn't stop laughing in the corner of the room watching all the students get very confused/horrified looks. One bonus was the comic timing of a student calling the instructor over, having him stare at the screen for 3+ minutes, turn away, then have the clown face flash when he wasn't looking. My friend's name was Brian, one of the smartest people I've had the privilege of knowing. Ten years later, we created mobygames.com.
- LorenPechtel 3y agoMy gag was a bird chirp that would play every so often--typically minutes between chirps. There were several random numbers that went into making the chirp so it would be different every time and every noise it made would be shifting frequency, never a moment of a fixed tone (back when speakers usually just went BEEP.) Leave it running on a machine that wasn't being used...
- once_inc 3y agoOnce when doing tech support at a local hospital, one of the nurses called us stating that she had "some sort of weather report" up in a window on screen, but she couldn't click it away because the most would go under the screen. Obviously piquing my interest, I told her not to touch the computer until I arrived. Since the hospital was quite big, it took me about 10 minutes to reach her workstation, where she exclaimed that "the window closed on its own a minute ago. I swear it was on there for half an hour". That, coupled with the layout of the desk, the description of the window led me to a hypothesis. I pressed the button on the monitor (which she had unknowingly pressed with the corner of her keyboard) which called up the system menu of the display. It showed 100% sun (brightness). The mouse would go under it. Then, I hiked back another 10 minutes to await the next phone call.
- deleted 3y ago[deleted]
- c22 3y agoI had to do a tech support call once where 'the screen keeps glitching out I think I have a virus' (The Net was still in theaters). I showed up, removed the boombox with two large speakers from on top of the CRT and like magic the problem was solved!
- nyanpasu64 3y agoI have the misfortune of my rescued VGA CRT displaying incorrect colors in the corners, unless I either leave magnets on the screen, or flip the magnets while degaussing and remove them before using the display.
- tomcam 3y agoWell now I need to know what you can use a VGA for these days
- arcanemachiner 3y ago640x480, but that's not important right now.
- RegnisGnaw 3y agoIn unversity, I was bored one day and added this to another student's .bashrc echo "sleep 1" >> ~/.bashrc He used the Solaris SPARC machines to do his work, so everytime it logged in it opened 4 terminals or so (not sure why). By the time he asked the help desk for help, it was up to a 6 minute wait after logging in before he got the prompt.
- datenwolf 3y agoIf you really, really want to ruin an X11 session, I got you covered: https://git.datenwolf.net/codesamples/tree/samples/X11/x11atomicbomb/x11atomicbomb.c https://git.datenwolf.net/codesamples/tree/samples/X11/x11at...
- password4321 3y agoIn my case a professor took a lab PC for their office, but the script to shutdown all the lab computers every night wasn't updated...
- fit2rule 3y ago[dead]
- Reason077 3y agoGuy is still running a SPARC4? In 2023? No wonder it’s slow!
- mcguire 3y agoOnce upon a time a (fameous) CS professor reported that his email was annoyingly slow. He was using the good ol' mailx MUA. He never deleted emails. He never moved emails out of his inbox. He had been doing this for many years. His .mbox file was many, many megabytes. Apparently, he had never noticed the problem before because he very rarely logged out, but IIRC some system work meant he needed to do so several times just prior to his complaint.
- fvdessen 3y agoThis story is either fake or exaggerated, the number of roaches in xroach is constant, and there's a hard limit as they are statically allocated (I checked the original source code)
- r_klancer 3y agoThe headline put me in mind of a different memory I had of the campus BBS from undergraduate days, and then I clicked through and realized that the author was actually the admin of that BBS! Anyway, in addition to the BBS there was also an IBM mainframe (?) running VM/SP that you could connect to, and somehow that was how you got to IRC. One night several of us spent hours chatting on IRC, and the next day we got called into the campus computing service where it was patiently explained that some professor's overnight batch job running stats had failed because it was constantly being interrupted by interactive-priority jobs ... i.e., our chat sessions. Which we should now stop. I remember writing a passionate open letter using my vague knowledge that had trickled out about "hacker culture" in places like Berkeley where students were surely right now exploring these new things called "Usenet" and "the Internet", arguing that even though we weren't doing anything fancy like running stats for an economics paper, and even though we didn't know what any of it would actually amount to, the important thing for our education was that we had the chance to experiment with it for ourselves...
- lizknope 3y agoThe xroach man page has some options that not everyone knows about Turn on -squish and set the -rgc (roach gut color) and you can make your screen look disgusting! It was great in college in the mid 1990's Then there were the jokes about "SEE ALSO" for xroachmotel and xddt https://manpages.opensuse.org/Tumbleweed/xroach/xroach.1x.en.html https://manpages.opensuse.org/Tumbleweed/xroach/xroach.1x.en... -rc roach_color Use the given string as the color for the bugs instead of the default "black". -speed roach_speed Use the given speed for the insects instead of the default 1.0. For example, in winter the speed should be set to 0.1. In summer, 2.0 might be about right. -roaches num_roaches This is the number of the little critters. Default is 10. -squish Enables roach squishing. Point and shoot with any mouse button. -rgc roach_gut_color Sets color of the guts that spill out of squished roaches. We recommend yellowgreen. SEE ALSO xroachmotel(1), xddt(1)
- lizknope 3y agoI was in college in the mid 1990's. Our school had hundreds of Unix workstations from Sun, HP, DEC, IBM, and SGI. Everything was tied together with MIT's Project Athena which used the AFS Andrew File System, Kerberos, and the Zephyr instant messaging system. Your home dir would be mounted as /school/login The directory paths would be really long like /afs/school/math/maple/maple5.3 so there were 2 commands named add and attach to mount dirs to /school add maple5.3 and you would have /school/maple5.3 and it would source .environment script in that dir to set up the tool and it /school/maple5.3/bin to your PATH The attach command did the same thing but did NOT source the .environment file If you needed to access another student's dir it was explicitly written in the intro computing class book to use attach and not add I had a lot of scripts and utilities that friends would use. They told other random people that I didn't know. So of course I made a file that would be updated any time I logged in showing my current machine name. Then I made a .environment file that would xhost + my_machine and send me a Zephyr message saying "I just added and xhosted your machine" I would wait a few minutes and then run xflip and xmeltdown and set the -display to their machine. If they were in the same computer lab as me I would see them start to freak out. These programs basically froze your display for a few seconds while inverting the screen or causing everything to appear to melt to the bottom. https://github.com/veltzer/xmeltdown https://github.com/veltzer/xmeltdown No real harm but it was pretty funny when I was 19
- zerealshadowban 3y agofor OS class we had to write a distributed game on top of the Andrew File System; debugging a nasty crash I managed to distill our team's code down to 10 lines to remotely crash/reboot any chosen AFS workstation on campus; thus I regularly emptied workstation rooms at CMU (most students just gave up after a couple of sudden computer reboots) so that CS friends could work on and finish their homework; I may have also crashed some professor workstations from time to time, idk
- lizknope 3y agoI still miss AFS ACLs. For the last 25 years at 8 different jobs everything is over NFS. Every company uses Unix groups and some have used groups to manage project access. Sometimes it can take 3 days to get added to a group. When I started college in 1993 we learned in the "Intro to Computing Environment" class our first semester how to create ACL groups. I have a degree in computer engineering so I understand binary, octal, hexadecimal, but chmod 755 or 644 or whatever is not exactly intuitive. AFS permissions are much easier to understand. When we had a group project we would all make a directory for that project and only give access to the other people in our group. We could give them read or write and everything worked great. I know NFSv4 has ACL support but I've never seen it actually used anywhere.
- nuancebydefault 3y agoI never heard before about roaches that can be minimized. Reminds me of the original meaning if debugging -- physically removing cockroaches. Probably the story would sound more funny to me if I knew more about xwindows and SPARCs?
- heelix 3y agoBack in the day when a 4x CD-ROM burner was a luxury, we got a phone call from a customer we shipped a CD to. Would not read. Did a second burn at 1x speeds, tested on several machines, and mailed out the disk. Would not read. Burned a third and tried on every unique setup we could find on the most premium disk we could buy. Would not read. I drove out to do the manual install a stack of media in hand. Got to the customer site - and watched in horror as they put the CD-ROM in the 5.25" floppy drive. It fits.
- poutine 3y agoBack in the day I played a prank on a fellow sysadmin by adding an 'echo "sleep 1" >> .login' Took him a week to figure it out, he was not pleased. :)
- grepfru_it 3y agoOnce upon a time, we had several Sun Enterprise 450s that my college used to teach Oracle to students. It was well underutilized and the hit game Quake had come out. Of course we, the IT support staff, ran a Quake server and invited all of our friends to play on it. Imagine our surprise when one of our professors we support came into our office and said "Hey our Oracle instance is very slow, can you guys take a look at it?". Whoops, we shutdown the quake server and he later sent an email "I don't know what magic you guys did, but the performance is amazing!". Another fun one, not targeted at professors, but at our student compute lab. We had a lab of 25 Sparc Ultra 60s that was pretty well utilized. Well one day, before I became a sysadmin, I was thinking to myself "all of these servers are rsh enabled, what if I logged into all of them". So I wrote a script that would cut up an AU file (sun's audio format) into tiny parts and then wrote a program that would synchronize with each other and play a different part out of a different workstation. I vividly remember playing a screaming sound in a ring around the entire room at a low volume before playing the entire sound out of the three middle workstations at full volume a few seconds later. The lab was full. At least 15 people immediately noped out. I was sitting in the back cracking up. Another time the sysadmins of the same computer lab left rwalld running. So I sent an rwall "The system will shutdown in 5 minutes" or whatever the shutdown message was. The professor at the time got angry "they always do this, they perform maintenance whenever the g.d. please" and he stormed out of the room. Suddenly the professor and an angry IT administrator was peering in the door and pointing at me. They threatened to revoke all of my access which would cause me to fail out. I just shrugged, I knew what they were up against and instead asked to work for them. The anger turned to surprise and I worked there for almost 6 years before leaving for greener pastures. Ahh the SunOS days were really the days of yore
- frellus 3y agoThe other trick, aside from xroach, we would play on professors would be to take a screenshot of their desktop and re-display it as their wallpaper, with windows opened and all. To see a professor close an app window and still see it on the screen (from behind where it was) and to try over and over futilely to hit the "x" to close it on X Windows was a beautiful sight. It wasn't our fault professors typically ran "xhosts +" in order to make their lives easier. Source: my 25 year-ago mischievous self ... Sparc. Miss those days.
- sacnoradhq 3y agoBlessed be the CDE and running xeyes. In other news, I'm pretty sure I once cleaned a keyboard containing live roaches because an engineer ate messy hamburgers over it for lunch every day without cleaning them. It smelled and looked like a dumpster. There was no swapping keyboards for political and economic concerns. If you're a badass nuclear/electrical engineer, businesses tend to tolerate quite a lot. In other other news, I once ran johntheripper against a NIS password hash dump (`getent passwd`) from my university's CS department's computer lab network. Within about 3 minutes, I had the login passwords of 5 professors, a dozen grad students, and about 40 students.
- dunham 3y agoI did IT support for the CS department at university back in the 90's, and we had a professor who would email us once or twice a year asking us replace his monitor because it had gotten blurry. We'd go in, wipe the thick layer of dust off the screen, and it'd be as good as new.
- NovaDudely 3y agoI love it! Isn't there some electronics repair test, where everyone in the class has a TV to fix. All of them are the same. So most folks just start tearing the thing apart trying to get it done first. The way you solve it is by plugging it in an switching it on. The idea is to check the basic stuff first before going deeper.
- cratermoon 3y agoI played with xroach back in the day but only today did I learn that they multiply when left hidden.
- lynx23 3y agoFor some reason, straight raw performance and theoretical computer science are not really friends, nor is it expected that they should be. To a certain extent, I understand why. Science at a university is done for the sake of the knowledge. Since there is no time-to-market, many things established professors do or make you do are not really efficient or market-ready... But... I am HPC Cluster admin at a university, and sometimes I wish scientists were a little bit more trained in real-life CS. Case in point: Many years ago, I happened to look at the source of a project running on our cluster. It was written in Free Pascal. The argument of the professor responsible for the project was that algorithmic complexity is all that counts when thinking about runtime. Compilers optimizing for a target architecture was not part of his understanding of the world. And since I had nothing to do on the weekend, I reimplemented their code in C++. And yes, the resulting code was 5x faster, just by making use of a battle-tested compiler. Turns out a speedup of 5x is relevant to a project that was projected to use 5000000 hours CPU-core time... I was rather young at that time, which surprised me even more. It was pretty clear to me that this rewrite would bring a noticeable performance boost. To this day, I sort of wonder how you can end up with so much theoretical knowledge that you tstart to completely ignore reality.
- pantulis 3y agoThat's why you never ran 'xhost +', kids.
- haylem 3y agoAs we're sharing prank stories... I think one of my most simple - yet evil - prank was to LD_PRELOAD a modified `malloc()` on a colleague's computer. Except where the common practice was usually to have it blow up the memory or not return enough, I had mine to work mostly correctly: in most cases it would allocate as requested, and in occasional cases it would allocate slightly less than requested, and in rare cases it would blow up the memory. You could think I shouldn't be proud of that one, considering some classmates probably went crazy wondering why their systems behaved erratically, and that it probably didn't help with some of their assignments. Generally our pranks were rather tame at school, and if I recall I had reserved that particular one to only 2 guys that were extremely d-ckish. Can't even recall their names now. Other pranks were your usual stuff: switch keyboard mapping to Dvorak, swap LTR to RTL, randomly modified clocktime by a few minutes (also rather mean when you need to handover assignments, I suppose...), bind some keys to the most annoying shortcuts possible, unsecured xdisplay accesses, open cdroom on ssh-accessible machines... Basic stuff. I also grabbed all the login/passwords for an entire promotion once. To my defence, I didn't exactly use the accounts for anything else but to change the default passwords (so, technically and legally, I did access the accounts, I suppose). I was just making a point to IT that assigning default passwords with guessable sequences (if I recall, major + year of promotion) was a bad idea and that for some students it could take weeks before they'd change it and leave some accounts open for abuse (e.g. for students who dropped, were sick on the first days, or would simply not use the labs that much). They weren't pleased by the surge of people contacting them to ask why their passwords didn't work. When scientific distributed computing came rather prominent, I also clustered an entire classroom (didn't want to hit the whole school network, only rooms that were underutilized). That got noticed by an admin though, but he didn't know what it was and I just said this was one of my projets for graphics computing (which was indeed a real project for which distributed comp was authorized). I miss these lab setups.