HN user

josecastillo

280 karma
Posts14
Comments32
View on HN

I just use a bookmarklet that nukes any position:fixed elements on the page. Works on toolbars, cookie banners, full page interstitials — really shockingly useful on the hostile web.

javascript:(function()%7B(function%20()%20%7Bvar%20i%2C%20elements%20%3D%20document.querySelectorAll('body%20*')%3Bfor%20(i%20%3D%200%3B%20i%20%3C%20elements.length%3B%20i%2B%2B)%20%7Bif%20(getComputedStyle(elements%5Bi%5D).position%20%3D%3D%3D%20'fixed')%20%7Belements%5Bi%5D.parentNode.removeChild(elements%5Bi%5D)%3B%7D%7D%7D)()%7D)()

There's a Sensor Watch simulator that demonstrates the features of the various firmware images; this one[1] is running the firmware that shipped with the first boards, and includes a clock, world clock (UTC by default, but customizable by holding the Alarm button), sunrise/sunset, moon phase and temperature. For the sunrise/sunset to work, you'll have to click the "Set Location Register" button, which will prompt for location access.

There are other versions of prebuilt firmware here[2], but my favorite one (even if it's a bit impractical) is the Stargazer firmware[3], whose second watch face can display the locations of the sun, moon and seven planets both in right ascension and declination, as well as altitude and azimuth if you grant location access. We're able to fit a truncated version of the VSOP87 model for planetary motion, right there on your wrist.

[1] https://www.sensorwatch.net/docs/firmware/simulate/backer/

[2] https://www.sensorwatch.net/docs/firmware/prebuilt/

[3] https://www.sensorwatch.net/docs/firmware/simulate/the_starg...

The Movement framework for developing watch faces tries to steer folks toward low power consumption by default; the watch spends most of its time in standby, and a custom watch face only runs code once per loop (which is once a second by default, although you can request more frequent updates from 1 to 128 Hz). This means most watch faces can actually stay under 10 µA as long as they don't need to update too frequently; up to about 16 Hz, power consumption remains decent.

Anecdotally, my daily driver is coming up on 550 days on the same CR2016 coin cell from February 2022, and I think it's on track to make it to 2024. A far cry from the original's 7+ year battery life, but still pretty good considering all it's capable of!

oh hey, this is my project! Sensor Watch definitely has different goals — less smart, more watch — but I love this, and I love how the F-91W represents such a blank canvas for folks to project their vision onto. It's small and so very thin (at home on any person's wrist), water-resistant and vaguely indestructible. It's also so inexpensive and ubiquitous that you can take it apart and hack on it without feeling like you're breaking something important, and you can safely assume that anyone in the world can probably grab one at a local store and hack along at home. It's a wonderful object.

I made an Apple Watch app and complication a few years ago that averages $800 a month. I don't put any money into marketing or search ads, and it's been feature-complete since 2019:

https://www.betterday.app/

The app is built around two small, simple features: today's date with a customizable format, and a three-year calendar so you can see what weekday dates fall on outside of the current month. It also supports several alternative calendar systems including the Islamic and Hebrew religious calendars, which I think may be another use case that drives sales.

Anyway: it's a one-time, two-dollar purchase that lots of folks are still finding and finding useful.

Weirdly coincidental timing on this! I've been working on a PCB design (FeatherWing form factor) to track weather data on my hikes, making use of a BME280 and a GPS module. First revision of the board[1], I discovered that the sensors started out accurate, then drifted up to a steady 3° above ambient. Probably because the GPS module was heating up. So last night I found myself reading up on design considerations for temperature sensors [2], including specific things like the cutout you have on the left side of this board.

I'm guessing you designed this — any advice as I embark on designing a second revision of my hiking log?

[1] https://twitter.com/josecastillo/status/1134128199972130816 [2] http://www.ti.com/lit/an/snoa967a/snoa967a.pdf

This reminds me of a short story by Paul Ford from a few years back[1]:

We had gone to a baseball game at the beginning of the season. They had played a song on the public address system, and she sang along without permission. They used to factor that into ticket price—they still do if you pay extra or have a season pass—but now other companies handled the followup. And here was the video from that day, one of many tens of thousands simultaneously recorded from gun scanners on the stadium roof. In the video my daughter wore a cap and a blue T-shirt. I sat beside her, my arm over her shoulder, grinning. Her voice was clear and high; the ambient roar of the audience beyond us filtered down to static...

I told my waiting daughter to go ahead and pay the few dollars, just part of the latent cost of a ticket. She tapped and the tablet made its cash-register sound, and the video was irrevocably destroyed so that it could never again be shared.

[1] https://www.ftrain.com/nanolaw

I half want to make a Kickstarter called "Let's Kill Facebook" that promises to give people $50 of the total proceeds to delete their Facebook account. I'd venture a surprising number of people who really care about killing Facebook would back it, and a surprising number of people who don't care that much about Facebook would take the $50. If it went viral enough to make an impact on people's networks, #3 would take care of the rest.

(I'm not actually going to do this, but it's a fun thought experiment.)

The thing to keep in mind is that before the sighting, the months are pre-calculated for when the first crescent moon should rise over Mecca. So a change only affects the single month where the observation differed. For example, if you're expecting to see the first crescent moons on October 10, November 9 and December 8, but you didn't see the first one until October 11, that doesn't push the moon sightings out for the rest of the year. It just means that the month you thought would end on October 9 will have an extra day, and the month you thought would start on October 10 will start a day later (and as a result will be a day shorter).

Future months are still totally fine; the date offset is just a temporary fix that the user remembers to turn on when the announcement is made, and to turn off at the end of the month.

I've encountered just about every item on this list working on my Apple Watch complication, Better Day[1], which supports 11 calendar systems in 21 languages. The funny thing is, the last item on this list — always use ICU through the NSCalendar API — is the exact conclusion I arrived at, and one that I preach to anyone who will listen.

Especially with modern Swift syntax, complex questions like "what's the current day of the year" end up having simple, almost poetic answers like "calendar.ordinality(of: .day, in: .year, for: date)". And you can trust that they are correct for every calendar and every locale. Usually. [2]

[1] https://itunes.apple.com/us/app/better-day-a-complication/id...

[2] https://www.joeycastillo.com/notes/2016/09/18/of-crescent-mo...

This is actually one of the reasons I posted this, because I'm not sure, I'm not a lawyer and while I'm hopeful I got it right, I'd love guidance if I got it wrong.

Can you elaborate? What am I missing / what would I need to do to be GDPR compliant?

Background: I decided to write my own privacy policy for a personal side project of mine. It ended up being an interesting exercise for me, and I thought I'd share the final text.

It's a simple, static website put together with Jekyll; nevertheless, I realized that I do come into contact with user data in the course of publishing this small side project. Writing my own privacy policy, instead of pasting in from boilerplate, forced me to think about all the user data that I might come in contact with, and explain both the technical background for laypeople and my rationale for collecting the data in the first place.

I'm not sure the title is click-baiting; the reality sounds exactly as dire as the headline.

The agency, which investigates deadly transit accidents, said Uber’s self-driving system determined the need to emergency-brake the car 1.3 seconds before the deadly impact. The NTSB report said that, according to Uber, automatic emergency braking isn’t enabled in order to “reduce the potential for erratic vehicle behavior” and that the system also isn’t designed to alert the operator in case of an emergency.

Since there seem to be a lot of knowledgable folks in these threads, I have a question about GDPR's impact on decentralized or federated social networks like Diaspora[1]. On these networks, users can create a profile on any server, and be connected with users on any other server via a federation protocol[2].

All the ideals of user control and data portability are there and central to the Diaspora project; but technically, the underlying protocol involves passing users' posts and comments from one server to another. This seems like it would fall afoul of guidelines against passing data to third parties, and the same technical constraint seems to be fundamental to other federated services like Friendica[3] and Mastodon[4]. I'm really curious how the GDPR would affect services like this, especially as someone who's quit Facebook and is looking at decentralized networks as an alternative.

[1] https://diasporafoundation.org [2] https://diaspora.github.io/diaspora_federation/ [3] https://friendi.ca [4] https://joinmastodon.org

This is going to sound crazy, but I spun up an instance of a simple open-source comments system[1] for a blog that I write, and I chickened out of deploying it because I wasn't sure if it complied with GDPR. I distrust Disqus over their ad-driven model and deep tracking of users, so for now I’m just doing without comments.

Is it possible to self-host something that handles user data (name, comment, IP address) and comply with this regulation? What if there's more data, federated data? Can one just spin up an instance of Friendica, for example, or are there additional steps required for compliance? I'm honestly not sure anymore.

[1] https://posativ.org/isso/

It might be worth making another post to highlight an additional concern: this repository itself appears to leak profile images of many Grindr users. The raw-data folder includes nearly 14,000 files, including many ads and scripts, but also thumbnails of many user profiles. This file[1] for example, once you strip out the HTTP headers, is a JPEG that shows the legs and gym socks of one user. This one [2] shows a user's bare torso.

I would link to others, but most of the ones that I've found include clear views of users' faces, sometimes clothed and sometimes shirtless. In some cases it looks like the photos were taken in their homes. It's ironic that in exposing Grindr's mishandling of users' personal data, this party appears to have mishandled personal data themselves.

[1] https://github.com/SINTEF-9012/grindr-privacy-leaks/blob/mas...

[2] https://github.com/SINTEF-9012/grindr-privacy-leaks/blob/mas...

Nuking the caches is one thing, but what about services like the Internet Archive whose job it is to hang on to these pages? Pages with leaked data are clearly difficult to identify; removing the leaked data without nuking the document may be impossible, at least in an automated fashion. Are we supposed to erase five months of history from the affected domains?

This CloudFlare breach seems to have put a lot of people in a tough spot, but it feels like it's put archivists in an impossible position.

My read was that the SIP protocol was just less well suited to a mobile environment. Not merely that long-lived connections are bad, but that it would be inappropriate to use a long-lived connection that requires keepalive packets or loses user data every time the user goes underground (SMS queues up for delivery when the connection is re-established, and APNS will at least deliver the most recent push). Technically even the SMS solution requires a persistent connection, it's just the device's persistent connection to the cell network, which is presumably better tailored for the mobile use case.

Also worth noting: in 2009, the Texas Forensic Science Commission was looking into the Willingham case. Two days before the commission was scheduled to hear evidence that could have exonerated Willingham, Gov. Rick Perry ousted the chairman and two members. The hearing was canceled, and the inquiry was effectively shut down. [1]

The final report, released a year and a half later, only recommended more training for fire investigators; it did not examine exculpatory evidence, or issue any finding regarding negligence or professional misconduct. [2] Two months after that, Texas AG Greg Abbott issued a ruling prohibiting the commission from investigating evidence from prior to 2005, ensuring that the commission will not examine exculpatory evidence in the future. [3]

[1] http://www.newyorker.com/online/blogs/newsdesk/2009/10/david...

[2] PDF: http://www.fsc.state.tx.us/documents/FINAL.pdf

[3] http://www.texastribune.org/2012/10/24/family-seeks-clear-na...

[dead] 12 years ago

Here's an anecdote. I have a friend who worked at a tech company in the bay area (not Mozilla). He met and fell in love with a Canadian. They got engaged. At one point after a visit to Canada, they're both headed back to California for a visit. On hearing that the couple is engaged, the border agent refused the Canadian entry to the US: risk to overstay tourist visa.

Now, a straight couple could get a K-1 visa for the fiancé and marry within 90 days, but that was not available to my friend and his fiancé. Instead he was forced to leave his tech job in the bay area, uproot his life and move to Canada to be with the person he loves. That's the effect of Prop 8. That's what Brendan Eich was campaigning for.

There's a difference between working for someone who's different from you, and working for someone who's literally spending money and campaigning to break apart your family. Whose actions stripped away rights you had, and forced you to flee your birthplace to be with the person you love. So no, it's not the same thing. I'm tolerant of people who are different than me. I am not tolerant of people whose actions harm my brothers.

I'm glad someone is talking about this. If you set a passcode, iOS encrypts your data with a key derived, in part, from your passcode and a per-device salt; Apple claims that even with access to the device, a nine digit passcode would take 2.5 years to brute force. [1]

A fingerprint is only useful for authentication, not key derivation, which makes it effectively useless in protecting your secrets from a determined attacker. As it stands today, my data is encrypted with a key that isn't stored on my device. Unless Apple has developed some kind of fingerprint-based key derivation algorithm, that can't be the case for the hapless user who replaces his passcode with a fingerprint scan.

I fear that the innovation announced today is going to make people and their data less safe, not more.

[1] http://images.apple.com/iphone/business/docs/iOS_Security_Oc...

In high school my friends and I decided that once we understood the concept of, say, the Pythagorean Theorem, making us solve it over and over again was busywork. So we made programs to solve things, and then an application called AMATH to collect all those programs.

At one point the teachers caught wind of this app everyone was using, and made everyone start showing their work. So I reprogrammed my modules to show their work, line by line. I soon forgot about all of this and went into an unrelated area of study at university; I think I only ever took one college-level comp sci class. Today I make my living in mobile apps.