Hacker Newsnew | past | comments | ask | show | jobs | submit | gingerlime's commentslogin

Very cool. How does it work in an apartment building? both practically not detecting my neighbors movement. But also from a privacy standpoint, can someone spy on me with this technology?


Great questions.

Neighbor detection: I haven't had issues with neighbor movement affecting detection in my testing. The devices form a mesh within your defined zone, so they're primarily sensing disruptions between your own nodes. If you do experience false positives, there's a sensitivity adjustment in the dashboard.

Privacy/spying: In TOMMY, I've explicitly disabled the ability to use devices outside your own network - it only works with ESP32s you've flashed and added to your system. Someone would need physical access to place their own devices in your space.

That said, Wi-Fi sensing as a broader technology could theoretically be used for surveillance if someone controlled devices on both sides of your walls. It's similar to other wireless technologies in that regard. The key is controlling your own hardware.


>Wi-Fi sensing as a broader technology could theoretically be used for surveillance if someone controlled devices on both sides of your walls. It's similar to other wireless technologies in that regard. The key is controlling your own hardware.

Does this mean that a nosy neighbor or someone else who wanted to surveil your residence could accomplish this by placing multiple devices around but not necessarily on your property so that a mesh is created that effectively covers your residence? Sounds like a stalker tool or a tool for burglars to use to determine when a building is unoccupied so that they can get in and out without being interrupted. Wealthy homeowners, like professional sports players, have already become targets of burglars who use team schedules to understand when a place will be unoccupied. The NFL's Joe Burrow I think is the most recent victim.

I guess the effective range of each device factors into this if you were determining mesh coverage.

How would one protect their residence from similar surveillance?

EDIT: I like this concept and see that this could help me here in managing deer traffic across my property. I would like to give them a reason to take another path so knowing exactly when they are on the property is useful data. Game cameras and ordinary security cameras set up as game cameras have a noticeable lag and so they don't send the alert until they finalize a video and by that time the animal has absconded, but not before chewing my fruit trees.


While theoretically possible, this would be a very involved surveillance method compared to simpler alternatives that already exist (cameras with telephoto lenses, thermal imaging, simply watching schedules, etc.). Wi-Fi sensing isn't easier or more covert than existing methods. At the current state of the technology, other methods are far more suitable for people who want to spy on others.

The effective range of each device factors into the sensing area. The closer together the sensors are the higher sensing sensitivity it has. In my 90 square meter apartment I can create a sensing area with a sensor in each end of the apartment.

Additionally, TOMMY is designed to only work with devices you've explicitly flashed and added to your system. It won't interact with random ESP32s that might be nearby.

The deer management is actually a very interesting use case. I am interested in hearing your results if you decide to set it up for that.


Thanks for the thoughtful reply. A long time ago there was a paper published, by MIT I think showing a similar setup to use WiFi as a surveillance tool for motion detection through walls. It was interesting at the time and something that I have thought about quite a bit over the years without ever actually doing anything myself. I think at heart I have been waiting for someone like yourself to make it all easy enough that someone like myself, who already has too many things on their plate, can jump in and begin using it without having to solve all the initial issues. Thanks for doing this work.

For my own use case as simple mesh array that would alert me to movement within certain parts of the property that I have set aside as garden or orchard plots would really be useful. I have lost numerous fruit trees to deer, especially in winter cold spells and over time learned that the only effective method of guaranteeing plant survival over winter is area denial. I accomplished this over the last couple of years using deer fencing products to establish areas where large animals have no access. In the process, I also found a use case for a security camera to monitor an area to see which animals regularly passed by or through.

Over a period of years I have seen lots of animal tracks but direct sightings have been rare. Using the security camera as a game camera has restored my confidence in animal ID from tracks alone since I have managed to capture still photos and video of the animals that I was pretty sure were visiting my place to validate what I believed based on the tracks alone. I hunted and trapped when I was a kid into high school so it is good to see that, though I have not needed them and have rarely used them, I have not totally lost those skills in the ensuing 40+ years.

I can see an array like this as quite useful in a garden space for identifying which plants need protection from squirrels, opossums, raccoons, etc and where the feral cats are squatting so that I don't inadvertently dredge up something unwholesome while working the soil. My cameras have demonstrated that they can detect and alert to things as small as a wasp or beetle moving across the FoV so if I can set something up to track the path of grasshoppers through the garden then I can potentially see where they are laying eggs cases and disrupt that soil before they can hatch next season.

This is all really interesting stuff. I look forward to joining the Discord group and to picking up a few ESPs for testing.

Sorry for the wall of text.


That was also one of the papers I read early in my project. Really fascinating stuff. The use cases for Wi-Fi sensing are vast. Motion and presence sensing is only scratching the surface. My goal is for TOMMY to follow this technology and make it accessible to everyone, especially in the smart home space.

Your garden/wildlife management use case is very interesting. Way more creative than typical smart home automation. The real-time detection should help with that camera lag issue you mentioned, and the through-wall sensing could monitor areas that are hard to place cameras.

Please create a thread in the Discord channel about this use case. I think it's really interesting and other users might have good ideas for your setup. Would love to see how it works out for you!

No apologies needed for the wall of text. This is exactly the kind of creative applications I was hoping people would think of.


> Wi-Fi sensing as a broader technology could theoretically be used for surveillance if someone controlled devices on both sides of your walls.

Wi-Fi sensing is passive, i.e. only one side of the wall is needed.

https://news.ycombinator.com/item?id=45488908#45546394


From my understanding, Wi-Fi sensing requires at least two antennas (transmitter and receiver) to measure signal disruption. This could be one device with both antennas, or two separate devices.

There are also techniques that use one controlled device and leverage ambient Wi-Fi signals from uncontrolled sources (like a neighbor's router), but TOMMY explicitly disables all options for using devices outside your own network. It only works with ESP32s you've flashed and added to your system.


plugging Alephbet[0] the open source A/B testing framework I created and used for many years.

Alephbet is the JS frontend running experiments. Lamed is the backend running on AWS lambda with redis as data store. There’s also a Rails backend with Postgres if you prefer.

[0] https://github.com/alephbet


It’s entertaining and he points to some bugs like race conditions that shouldn’t be there, but I’m not sure if it’s specific to Hoywire. Also his statement that DHH/Rails claim Hotwire is the only way, or that you cannot also use React or plain JS is just silly and disingenuous.


I clicked the link on the email, entered the EU country I live in, something about my GDPR right of privacy and was immediately “approved”. YMMV


Cool idea. I guess some might be concerned about the privacy implications of giving access to their emails, so perhaps you could add some info on why you can be trusted?

Can you give any pointers on how to create such a plugin? I’m struggling even with a much simpler add-in to add an action inside Outlook for individual emails.


Thanks for the feedback!

You can check out our Privacy Policy: https://www.swinvo.com/legal/privacy-policy

Let me know if you still have any queries.

As for your 2nd question, i’ll send you an email.


I’m using postfix/dovecot with mysql backed accounts (compatible with postfixadmin) and I have a tiny bash script that:

* generates a random email

* asks for an optional description

* inserts new email to the database

* adds an entry to postgrey whitelist

* emails me the address and description (so I can search the email address later in my inbox if necessary)

Works a treat for me, but not something my family can use.


Any way to unflag? it’s politics, but extremely relevant to the tech crowd. How AI literally affects people’s life and death.


The topic may be relevant, but I'm doubtful we can have a calm and reasonable discussion of the technical issues and morality with a hot war ongoing and many hostages still in captivity. There are more than enough hotheads on both sides to poison any discussion, and I don't think @dang can fix that.


Hope for @dang to fix it, I think.

There’s one post linking to the Guardian, and one posting to some site I’ve never heard of (972 something, no idea who they are). I agree, it obviously has some tech salience and the Guardian is pretty respectable so I can’t see a good-faith reason to block this discussion.


the penalty can be significant under GDPR, but enforcement is lacking severely


That's a distinction without a difference.


Malicious attackers don't have to comply with GDPR. Even the best steward is one data breach away from public disclosure.


And this is why egregiously stupid handling of immutable PHI/PPI/PCI should have genuine penalties.

140 million people had their entire credit reports/history and all associated information released to the world because Equifax thought having it all accessible, publicly, without changing the goddamn default password was a good idea.

The penalty? Profits.

They immediately bought a credit monitoring agency, then gave everyone 24 months of monitoring, for a lifelong problem. After that 24 months, a large number of people starting paying for the service, because it's a lifelong fucking problem.

Equifax is still in business today, still hoovering up all of that data, with zero recourse by the consumer and when they fucked it up, they made money.

We don't have to worry about bad actors. We have companies doing it for them, happily.


Yes and no. First it should be a German Miele. But in general, new Mieles aren’t as good as old ones. Across the board. Washers, dryers, dishwashers. The only benefit they offer is energy efficiency (at least based on brochures). If I had to buy again, I would opt for second hand refurbished Miele/Bosch/Siemens with at least 10 years of age. Where I live there are lots of second hand shops that even offer warranty.

Our fridge however is Japanese Panasonic. Not a common choice in Europe but it’s been great so far. Zero maintenance. No frost. Has some minimal digital control but we don’t touch it. YMMV.


slightly OT but can someone recommend how to learn CSS in 2023 for a backend web developer, who 30ish years ago grokked mainframe Assembly reasonably well (and since then developed in c, php, python, ruby, bash, etc etc)?

Can/do I start with tailwind? Do I start with old-school CSS or jump straight into flexbox? Do I need to care and learn about BEM, Sass, etc? Do I start with an empty page and build it? Do I need to copy a design? Can I jump into an existing page and tweak it?

Not trolling. It’s the kind of stuff that stumps me. Or am I just making excuses to myself why I can’t figure CSS out? (beyond tweaking margins, padding and maybe background-color and the real basics)


I'd start with learning the layout model and the selector rules to get the mental model right. A lot of things clicked into place once I had a good mental model.

The main idea for layouts is that the CSS layout properties like width or margin are interpreted based on which layout mode you're in. Some html tags (<span>, <a>, <img>) default to the "inline" mode, where they are put side by side horizontally and wrap to the next line. Some html tags (<p>, <div>, <h1>) default to the "block" mode, where they are put one after the other vertically and "wrapping" doesn't mean anything. There's "inline block" which is inline on the outside but block on the inside. There's also "flex" and "grid" and "table" layouts, and their inline-on-the-outside variants. Each layout mode is useful for different things.

So when I'm frustrated about <span> not honoring width, or margin-auto not working for <img>, it's because the inline layout has word wrap. When there are 2.5 lines of wrapped content, things like width and margin work differently than in block layout mode. Instead of tweaking width/margin, I found it more useful to go back to understanding why it was not doing what I want, and then switch the layout mode to the one that matches my needs. Recommended: https://www.joshwcomeau.com/css/understanding-layout-algorit...

Selector rules are a pattern matching system to assign CSS properties to HTML elements. They also have priorities, so some selectors will have a higher or lower priority than others. These are sometimes useful, sometimes frustrating. I don't have a good reference at the moment, although I see that MDN has a page https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_...

I think of BEM, tailwind, sass, etc. as ways of using CSS once you know what CSS you want, rather than replacing having to know CSS. It's like how React is a way to constructing HTML, but you still have to know what HTML you want to construct. So I wouldn't start with them.

BTW it is a lot of fun to right click on a page, inspect the css, and start tweaking it!


Colt Steele is my favorite web dev teacher. He has taught web development in an actual in-person classroom environment, so I find he has a better understanding on how to get people to learn things than most online instructors.

He has a new for 2023 HTML and CSS course that is a fantastic intro to modern CSS. You can probably skip over the HTML section and jump straight into CSS. Even with skipping the HTML, there is 30+ hours of CSS content in the course. It regularly goes on sale for less than $15.

https://www.udemy.com/course/html-and-css-bootcamp/


Personally, I wouldn't mess with tailwind until you have the fundamentals of CSS sorted out. To use a PHP example...Whereas you're actively writing a lot of PHP when using frameworks like Laravel or Symfony, and can learn from that process, you're not really writing a lot of CSS with tailwind. You're mostly just adding classes to elements and supplementally adding some styles on top of that.

I would jump right into modern things like flexbox and the grid system as the old ways of floating are basically useless. I mean they still work, but I can't remember the last time I had to use a float to create new layout. Start with flex, as it's a bit more beginner friendly than grid is. I've been doing this for nearly 20 years now and I still struggle to wrap my head around grid sometimes.

You can ignore BEM until you've got the fundamentals sorted. BEM is just a clean standardized way to organize class/id names, it's nothing functional.

Sass helps streamline things a lot via nesting and variables to begin with. More advanced features can also be useful, but until you've got the fundamentals it may not be clear where those advanced features can be applied. And Sass requires substantial more initial setup than plain CSS (you'll need Webpack or gulp or something to turn the Sass into CSS). Not to mention that Sass's biggest draw is variables and nested styles, which CSS now supports natively (albeit with really weird syntaxes, imo). So I'd skip Sass for now.

And yes, you can jump into an existing page and tweak it. That's how I learned it initially. https://csszengarden.com is a good resource for that. It's the same basic HTML site with different CSS themes you can load. It's a good showcase of how powerful CSS is what you can do with it without touching the underlying HTML. Dev tools are very useful there as you can turn individual styles off, change their values, etc.

Lastly, I'd just start with a blank page and try to create a simple 2-column layout. Narrow left column with a basic navigation in it and a wide right column with a few paragraphs of text in it. Then build off of that -- add a header and a footer. See if you can get the header to "stick" while you scroll down the page, etc.



I haven't read each section, but just from the outline this appears to cover everything you need to know to do 99.9% of modern CSS development. (And then some, for good measure... I don't think I've ever used blend modes, for instance.)


I would probably start by opening the browser dev tools on web pages and use inspect element to see how an element in the page has been made to look the way it is. You can edit properties to see what effect they have when changed.

The domain of styling html is so large that there's no chance of learning everything in theory then applying it, I think it's best to learn by doing.


I’ve been doing that for over a decade, without making tangible progress.


You've probably accumulated a lot of relevant html knowledge which will help you.

I presume you have some css-related projects/tasks in mind that you'd like to be able to tackle yourself. I would pick one of those and jump in at the deep end. Although a small goal like restyling something that already works is probably better than starting from scratch.

For a completely abstract task, you could try developing a stylesheet for markdown html output.

Vanilla CSS is good enough (and browser support consistent enough) now that you don't need to use any compilers/frameworks to get started.

If you find yourself struggling for design inspiration, try to re-produce an existing design without seeing how they did it.


Do not start with Tailwind. If you have no grasp of CSS beforehand, Tailwind will be completely incomprehensible. At the basic level, Tailwind is giving you shorthand CSS properties. You need to learn CSS first.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: