Gmail quietly drops forwarded mails sometimes. They don't put them into the spam directory, either.
HN user
anty
Developer based in Austria.
Contact: hn(at)anty.at
With IMAP i need to run a mail server that stores my mails forever, right? I want to "import" a copy into Gmail and delete it on the original server.
Is there any solution that does not require me to run my own email server?
I have a 2GB email server. I use POP to regularly import the mails into Gmail. This deletes the mails on my limited-storage-server.
I already pay for Google storage. I do not want to pay (more) for another email server just so I can keep all my emails forever.
Forwarding mails does not work, because Gmail quietly drops mails. They don't even put them into the spam folder.
My webhoster told me I could pay for Google Workspace. There you apparently can use your own domain. But then I have a third service I have to pay.
Thanks for the clarification. Looking forward to see your solutions to the constraint problems.
Very cool, I'm working on something similar!
Naturally I have some questions:
1. I don't see any examples for foreign key constraints (ON DELETE and ON UPDATE) or UNIQUE constraints. Are constraints still supported? 2. How is row-level privacy implemented? Are "forbidden" rows not synced by the server logic, or are they encrypted?
I did this too, but then YouTube translated videos in my native language to English.
Please do! There are too few current articles about CRDTs around!
Google Photos also sometimes promotes a printing service. I forgot about that.
I don't see any ads on the mentioned apps on my Pixel phone.
I do have ads in the Play Store app and in the Gmail app, though.
I'm integrating daily steps walked into my workout/nutrition tracking app EverBeat for Android. I've noticed that this is an important metric for many people interested in losing some weight.
I estimate burned calories on the minute-to-minute level for all activities, which is a fun challenge.
For the steps to calories conversion, I require time and distance walked. Unfortunately it's surprisingly difficult to get some kind of distance information from Android. Google Fit API provides this data, but will be killed soon. The RecordingAPI will hopefully provide this in the future, but not yet...
Great Landingpage! Inspired by Pieter Levels?
It's not. Google Fit uploaded everything to the cloud, but Google Health Connect keeps the data on the device.
I have a Renpho scale, the way it works for me is that when I step on the scale it turns it on and connects to my device via bluetooth which wakes the app. The weight is captured and synced in the background to both the Renpho cloud service as well as the local Health Connect.
I bought a Wifi scale specifically so I don't have to have my phone with bluetooth on, nearby. Does the BT-connection open the app itself, or just initiate a sync in a background service? I was under the impression that it is impossible to access Google Health Connect in the background – I get access-errors in my log when I start my own app from the IDE while the screen is off.
[...] they get a lot of write storage to health connect for free from the API
Is this really an issue that is solved by using Google Health Connect?
As I understand it the access is 30 days prior to the first permission given.
You are right, I edited my original post accordingly.
It's more secure and allows a wider more diverse suite of apps to integrate into it.
It's more secure, yes. But since the data stays on the device now, web apps cannot read or write health data anymore. You need to develop a dedicated app to access the data on the device. And the user has to interact with the app, or the data will not be accessible.
E.g. my Withings scale writes my body weight to Google Health Connect. But I need to open the Withings app every time for that to work. The app-developers cannot do this in the background afaik. (The data flow is: scale -> cloud -> app -> Google Health Connect.)
Another issue I see is: There is no incentive for app developers to write data to Google Health Connect. Even if you subscribe to the idea of using it as your data-store, you will lose access to the data if a user uninstalls your app. It's only possible to read data up to 30 days in the past, or however long the user has installed your app – hopefully they don't decide to reinstall it.
I really appreciate the inter-connectivity Google Health Connect allows between apps, though.
Titan looks similar to the workout app that I'm developing: EverBeat! I'm also developing it for myself right now, that's why it is Android only atm. My goal is to employ subtle gamification to get the user/me to the gym more often.
I was wondering where you got the data from to know what muscle group is used in each exercise?
Oh, I implemented something like that for my Android app. It seems to work quite well. I don't have many users yet, though.
I replicate the clients Sqlite DB to a central server (over a REST-API) where it is synced with existing data. I use an CRDT, so changes don't get lost and as long as the clocks of all the users devices are accurate, the merges are in the correct order.
This enables offline access, but also the use of my app without an account. You can always merge the data later. Multi-device merge is also possible, if you create an account. Especially the multi-device merge was a big headache until I settled for this approach.
Since it is a home-grown solution I still have to do some manual stuff that could be abstracted away, like converting datatypes to and from JSON, Kotlin, PHP, MySQL. There's not always an equivalent datatype in those technologies.
This approach probably won't work well for big databases that share data between multiple users, though.
Anyone has a list of good alternatives for Google Analytics that don't break the law, but let me have some insights into who visits my websites?
Okay, I guess you could attach that functionality to an existing component. It just feels wrong to me, that you would put something that looks like a separate component into a hook to inject into another component. I thought there was some benefit in doing it like this, that I cannot think of...
Yes, but you could do that in a component as well?
As someone learning React atm: Why is this developed as a hook, and not as a component?
I was hoping to read more about how merging of conflicts are done. The article tells us, that "users have an intuitive sense of human collaboration and avoid creating conflicts with their collaborators". Regarding non-clear merging, it states that it's still an open research question of how to let the application or the user with a view of the change history merge the conflicts.
How to merge conflicts is probably the most important part in a non-trivial app. Does anyone know of examples or research that has been done in this direction?
Same here. We use a subdomain with HTTPS that points to 127.0.0.1, and a WebSockets-Server on our clients machines. We install the private key on each machine for this to work... yeah.
It's always a nightmare, when a browser-upgrade comes along and changes something.
Currently the following connections work:
"wss://localhost.example.com:4321/somepath", // Mac: Chrome, Safari, FF
"wss://localhost:4321/somepath", // Win: Chrome, FF
"wss://127.0.0.1:4320/somepath" // Win: EDGE, IE11, IE10
Some other combinations are possible, that's just what I know we use atm.
The worst thing is: I didn't find a way to catch connection-errors to these URLs. So I have to use timeouts, and try all of them... (or decide by User-Agent which URLs to try.)
I wish there would be some kind of standard that solves this problem.
The closest I could find is Snowdens legal fund: https://edwardsnowden.com/donate/
If you are still searching, them I'm the guy for you! Can you contact me with some more details at hn(at)anty(dot)at please?
Thanks, Andreas
There seems to be a lot of competition in this field. Did you evaluate existing services? It's an interesting problem.
I played around with the sign-up form because I'm designing something similar at the moment. Once I get a "username not valid" error, I can't re-enable the submit-button anymore. You might want to fix that. Also I don't think that the username was already in use, because I entered a random email. Probably a validation error.
To say something positive: I like that the headline changes the last word periodically. That caught my attention.
Where does it state in the article that possession of hacking tools is made a criminal offence?
Username and password are still sent in plain-text. You could use HTTPS to make the communication secure.
I had the exact same idea a year ago. Looked for competitors and found one very good looking that provided this service for free, with a great website. That's why I didn't develop it. I hope there's enough demand so that op has success, though.
Reminds me that I have locked myself out from my Google account by using umlauts (specifically an "Ä").