15 ms·
Overengineering a way to know if people are in my university's CS lab
- mdberkey 2y agoLove to see the UPL on hacker news :)
- readthenotes1 2y agoScotch tape. Those poor students couldn't afford duct tape!
- ethbr1 2y agoThese are CS students, not MEs. Which is to say, heathens who have yet to accept our lord and savior Duct into their hearts. (And its latter day saint WD-40)
- readthenotes1 2y agoI thought wd-40 had been cast down in favor of silicon spray?
- ethbr1 2y agoBlasphemy. Next you'll be preaching about graphite powder instead of diesel in hinges!
- fullstackchris 2y agoLove the motivation! Reminds me of the first stuff I built back in my university days. One thing from and old cranky dev that I notice: it would seem the yml you post has redundancies: either have 4 endpoints, no payload or 4 different payloads, one endpoint (the endpoint itself can tell you what you need to do) However, from the express script it looks like you arrived at this in the final solution anyway. Not sure if I missed something though, is there a reason the API needs such a shape? Cheers!
- amosesdev 2y agoHi! Author here. The yml is from a configuration in Home Assistant. Whenever it received an event from the sensors, it would fire the corresponding POST request (which you have to specify ahead of time, hence the configuration being a little redundant). The main reason for switching to the Express setup is that I was having a few random people look at the code & send their own requests to fudge what the status appeared as. I could have added some security/authentication to the endpoints, but I liked the idea of having the frontends simply querying the site (or my proxy) instead of having to cache a POST request.
- grahamj 2y agoYou can read and write HA entities via HTTP API so I think you could have done this with nothing but HA, but either way it's a fun project :) One of my more fun HA project was scraping my snow removal service's tractor tracking API and passing the result for the closest tractor into HA so I can be notified (by voice with Alexa and/or push notification) when there's one nearby in case I need to move the car.
- amosesdev 2y agoDo you mean outside of the API that I talk about in the article? If I exposed the HA API via the frontend, users would be able to just take the bearer token and do whatever they wanted with it (even deleting the entities used for the doors). That's why the express server is sitting in the middle to only expose the relevant information (proxying w/ the bearer token, which the end users have no access to)
- grahamj 2y agoI meant via webhook triggers as those don't require auth: https://www.home-assistant.io/docs/automation/trigger/#webhook-trigger https://www.home-assistant.io/docs/automation/trigger/#webho... I guess you'd still want a proxy or firewall so not sure it ends up being much less complex, but it should be doable.
- alkh 2y agoI swear to God that all of these CS labs at different unis look the same. I am getting flashbacks of labs in Toronto that looked exactly like pictures in the post
- whimsicalism 2y agoeven the physics labs i worked in looked like this
- chaboud 2y agoThe physics computer lab in Chamberlin Hall at UW in the 90's was a secret treasure trove of idle NeXTstation Turbo machines in an almost always empty room cooled to near refrigeration temperatures. I used to light up at least half of that room to run distributed simulations. There's probably still a 30 year old key to that lab in a junk drawer somewhere. Eventually I realized that it just made sense to suck it up and get my own hardware, as it was either going to be esoteric "workstation" hardware with a fifth of the horsepower of a Pentium 75 or it was going to be in a room like the UPL jammed with CRT's and the smell of warm Josta. How do students operate these days? Unless one is interacting with hardware, I'd be very tempted to stay in "fits on a laptop" space or slide to "screw it, cloud instances" scale. Anyone with contact in the last 5 years have a sense of how labs are being used now?
- amosesdev 2y agoI can only speak for the UPL, but, yeah, it was a hallmark of labs at the time that one of the benefits you were getting was the equipment. Nowadays, most people just come in with their laptops -- we have a kubernetes cluster for projects, but most of the actual computing equipment is brought in by students when they want to hang
- alkh 2y agoIn my university you could technically use any computer but must ensure that your code would work/compile on lab PCs cause that's where TAs would check it. As a result, during labs most people would just use computers there(too much hassle otherwise)
- iwontberude 2y agoI have a stealth startup that designs privacy first solutions to share coarse data about what is inside of rooms without disclosing secrets. This is useful for many use cases, from detecting the number of people in a room to other motion sensing devices which are critical for health and human safety. Patents are pending.
- bobbiechen 2y agoThat's great! It does feel like cameras generally collect more data than necessary for some purposes. I have a friend who works at Butlr, which uses thermal sensors to detect body heat (and avoid the privacy risks of cameras) - sounds like your startup is in a similar space. I know you mentioned patents pending, but is there anything you can share about your approach?
- Animats 2y ago"Room occupancy sensors" are a common product. Butlr apparently uses a low-rez IR camera, although they avoid calling it that. Passive infrared is common. Millimeter wave is available.[1] [1] https://www.alibaba.com/product-detail/IoT-Commercial-People-Counting-Device-Occupancy_1600908375222.html?spm=a2700.7724857.0.0.78890EOm0EOm5J https://www.alibaba.com/product-detail/IoT-Commercial-People...
- moralestapia 2y agoNice project but it could be illegal. Check your jurisdiction. Source: have done similar hobby projects for fun, which turned out to be illegal.
- whimsicalism 2y agothis isn't facial recognition
- moralestapia 2y ago??? Who's talking about that?
- whimsicalism 2y agowhy would it be illegal?
- moralestapia 2y agoGenerally, you cannot just record people without their consent; but this also largely depends on the jurisdiction/situation. Almost nowhere (or actually nowhere?) are you allowed to set up a surveillance device into a space that is not public and it is not owned by you.
- packetlost 2y agoPublic university labs are generally public as they're state property (in this particular case, UW Madison is a public state University). Further, recording video or pictures of people in public places is broadly legal in the US. There are only "presumption of privacy" restrictions which apply to places such as bathrooms and private property that is not visible from a public location (ex. a sidewalk). Obv. IANAL and this is not legal advice.
- moralestapia 2y ago
- rithikjainNd01 2y agoUW Madison UPL on Hacker News! Great to see, you guys are awesome!
- nicosalm 2y agoThank you!
- djsavvy 2y agoNeat to see discord channel names being used as an information channel.
- thrdbndndn 2y agoIt's a common practice/trick in Discord communities (particularly gaming) to pin some status, but yeah, I always find it neat.
- nullhole 2y ago> It then set the name of a channel to the results (either 1-person-in-upl or X-people-in-upl), which others could check. I'm not suggesting you don't do this, but you /could/ setup a speaker to play the classic remix of Steve Ballmer's "developers! developers!" whenever there are >=2 people in the room. On April 1st, of course.
- cptaj 2y agoI am, in fact, suggesting you do this.
- alwayslikethis 2y ago> I'm not suggesting you don't do this I hope this is intentional
- nullhole 2y ago>> I'm not suggesting you don't do this > I hope this is intentional I mean, it's not unintentional..
- eduction 2y agoI love this company. Yeah!
- teddarific 2y agoThis is neat. I worked on something similar to college where we built an app to track how long the line was at a popular cafe. We set up a camera + raspberry pi in the cafe and tried to the number of people. There was a lot of noise from overlapping people, random people walking in and out of line, etc. Cool seeing all the techniques and approaches you tried!
- dangsux 2y ago[dead]
- urbandw311er 2y agoAnother state of the art people counting system would be ultra wideband. It can literally count the number of heartbeats in a room. See https://m.youtube.com/watch?v=adiUegDxZEs https://m.youtube.com/watch?v=adiUegDxZEs
- davidteather 2y agoUPL UPL UPL UPL
- nicosalm 2y agoUPL!
- zdw 2y agoBack in the 90's we used finger - IIRC it would tell you the last machine someone logged into, which could be in the lab Someone wrote a script to finger everyone in the entire CS department and tell when the lab was busy, by counting people logged in. This work fine, except for on intro courses where some labs had lots of non-CS majors in them.
- bks 2y agoI had finger running on login to `finger stacy` I was at SDSU on a very large SunOS system and she was at a private school and I assume that computer was a bit more limited. `Finger Stacy` would run every minute and typically be running for 15 minutes max... that is until I moved into the dorms and my machine was online all the time. A few weeks go by and I get an email from the SDSU admin requesting that I stop fingering stacy as it was bothering the other Sysadmin. I remarked with a grin that all I was trying to do was in fact try to `name of the command` and they promptly deleted the script from the account.. It still makes me smile as I write this.
- hotspot_one 2y agofdisk or mount?
- neilparikh 2y agoI built a similar system for my school’s CS club. I considered using a door sensor, but the eventual solution I settled on was a light sensor, because it’s almost always true for us that the lights are on iff the door is open. This way, we don’t need to mount anything on the door, we just have a microcontroller plugged into one of the machines. Our previous solution was a webcam that pointed to the lights that did a similar thing (implemented by someone before my time) but then it stopped working due to some driver issues, and I didn’t want to spend time investigating them.
- _visgean 2y agoIn edinburgh we had this: https://devpost.com/software/the-marauder-s-app https://devpost.com/software/the-marauder-s-app which showed who was using which computer based on logins.
- withinrafael 2y agoI saw "over-engineering" in the title and half expected to see Wi-Fi signals being abused to detect human bodies in the room. https://arxiv.org/abs/2301.00250 https://arxiv.org/abs/2301.00250
- TrackerFF 2y agoMy first thought was to put some motion sensors inside the room, along with a sensor for the door (open/closed), as well as some sensor for counting the people walking through the door. Maybe even some co2 sensor to detect changes.
- zanchey 2y agoThe University Computer Club at UWA also has a door sensor! https://door-status.ucc.asn.au/ucc https://door-status.ucc.asn.au/ucc Runs off a Raspberry Pi with a bodged-up version of https://github.com/ide/pico-door-sensor/tree/main https://github.com/ide/pico-door-sensor/tree/main This is at least the third iteration; some previous iterations are documented here: https://www.ucc.asn.au/services/door.ucc https://www.ucc.asn.au/services/door.ucc
- dbetteridge 2y agoStill works better than the uwa door card readers
- fartfeatures 2y agoPoint the camera at the door, use the camera to detect if the door is open.
- grahamj 2y agoMount the camera on the door facing down and watch for a moving floor
- fartfeatures 2y agoThat's a clever solution that would use less processing power. A camera pointed at the door provides the benefit of being useful for other purposes e.g. person detection / recognition and standard security camera purposes.
- lazide 2y agoUntil someone accuses you of looking down their shirt anyway.
- deleted 2y ago[deleted]
- changexd 2y agoVery interesting and fun read! thanks for the post, when I saw the public restful api endpoint I immediately tried to see if I can make request just to see the "NICE TRY!" message, haha, then I kept on reading how you managed this issue.
- kleiba 2y agoThis would be a nightmare to implement from a legal standpoint in Europe.
- lormayna 2y agoEven if you collected aggregated data and not storing any PII or images?
- preston4tw 2y agoroom presence detection has been a long standing challenge in the smart home / home assistant community. it's cool to see home assistant used and adapted for this use case.
- zimpenfish 2y agoBack in the man.ac.uk of the early 90s, there were no cameras or YOLO models but we still wanted to know when machines (especially the colour ones! LUXURY!) were available. We just had "`rlogin` to every machine in the lab, run `who`, and collate the output". IIRC there was an early version written by 'flup that I extended with a tidier output (including an X11 window), auto-refreshing, and easier machine selection (eg. you could select rooms by name with regex filtering.) Good times.
- amingilani 2y agoIf you’re okay using Cloudflare tunnels, just use Tailscale to create a VPN instead.
- q3k 2y agoAnother solution in the age of portable electronic devices: detect presence based on active DHCP leases. You can let then people register themselves by MAC on some web portal so they can be visible by name if they're comfortable with that.
- lormayna 2y agoOr Bluetooth. There are some problems (like MAC randomization) to get a real tracking with BLE, but to have a rough estimation, it's a good technique. And you can do it with just an ESP32.
- JohnBooty 2y agoHmmm... interesting. How would that work? Just count the number of BT signals in a room? How many BT devices is the average student or faculty member toting around with them at a given point? Could conceivably be 4+ with some combination of: phone, smartwatch, tablet, BT speaker, game device, etc.
- lormayna 2y agoThe idea is to scan every minutes for BLE MAC Addresses and send to a backend. On the backend you can identify what is the manufacturer of every MAC addresses and make some correlation. A very simple idea is to filter only the phone MAC addresses and use as presence counter estimator; it's a bit unlikely that a university student will have more than one phone. A better method would try to correlate not random MAC addresses (headphones, BLE trackers, wearebles, etc) that are frequently together and mark as a single person.
- QuantumSeed 2y agoWhen I was in the CS department at NMSU, the Computer Science building was open to the public 24-hours a day. I suppose that's not commonly the case nowadays.
- ericpauley 2y agoFWIW the building from the article is open to visitors during extended working hours. Source: Currently in the building.
- IvyMike 2y agoBack in my day we just looked at the ctime of /dev/mouse
- mashygpig 2y agoGlad to see the UPL alive and well!
- aabbcc1241 2y agoIf the camera doing people count is not working accurately, how about point the camera at the door, to check the door status ?