273 karma · joined March 29, 2008
Kudos on building this. I occasionally search for these on Google and am always disappointed by the mess. Bookmarked.
Awesome to see these ideas turn into real products. Congrats.
[1] https://docs.convex.dev/http-api/#functions-api [2] https://docs.convex.dev/functions/http-actions
It was a great teaching language.
After watching some of Andy Pavlo’s lectures[1] it all just dawned on me: Databases are just like any other piece of code you write and have to think about all the tradeoffs with algorithms and book keeping to keep things efficient and providing the guarantees you want.
I highly recommend that lecture series.
Shameless plug: the reason I watched those lectures was to understand the internals of DBs better because I started working at Convex. Where we try to make sure things like this is something an app developer doesn’t have to worry about. Though we do mention it in our docs[2] for the curious.
[1] https://www.youtube.com/watch?v=LWS8LEQAUVc&list=PLSE8ODhjZX... [2] https://docs.convex.dev/database/advanced/occ
I am a downtempo person so classic Groove Salad kept me going.
I was the one of the original TLs of Google Photos, specifically on Android and eventually managed all of the frontend teams for Google Photos. So I hope it's not a stretch to say that I have deep empathy for frontend problems. We also have great frontend oriented folks on the team.
I also worked with jamwt at a previous company (Bump) doing frontend work. When we worked together, I remember the acceleration of our ability to execute when the backend people were closely involved in our data syncing problems. Heck jamwt and team even wrote most of the initial client syncing code. When backend and frontend folks work closely together to solve data problems you can make magical things happen. In the end we're just product oriented engineers trying to ship delightful experiences.
Though I can understand for those using the app entirely signed out this can be frustrating. Thanks for the feedback. I do hope you sign in however, there are a lot of things available to you signed in that simply don't exist in the signed out view.
Each user has it's own cookies, chrome extensions etc. Keeps work and personal accounts very separate.
If anything finding people who have built products themselves and put them out there is great to see and are hugely valuable to an enlightened organization. Whenever I interview people this is always a fun part of the conversation. I find that those people are very likely to be tuned to building great products and are the kind of people I want to work with.
In the Java world there is a concept of a .war file which packages everything up so it's easy to deploy on app servers that handle it like: Tomcat or Jetty.
Also what's wrong with giving out a prebuilt virtual image for a single server install? Github enterprise does this.
On Android push notifications are done through GCM (Google Cloud Messaging), when it's sent your application gets a callback (Intent). So it is up to the application to decide what to do with it, whether it is to show a notification or do something else entirely. So on Android you have a pretty good idea that the the user is actually getting a notification. Jelly Bean and up you can also do very rich notifications with images and actions built right into it.
On iOS when a remote push notification is received there is no indication sent to the application at all. The only way the application knows something has happened is if the user actually opens the notification.
I haven't programmed on windows phone, so I am not sure how much an app developer knows that a user is viewing a live tile or not. Maybe someone who's built one can chime in.
Overall it seems to me, that what the author is describing is Android, where the app developer has at least some feedback as to whether a user is seeing the notification (albeit not an exact: user has seen x notif).
Edit: Wording
Aside from the ability to share code, it also makes sure that we are not using anymore memory than we really need. Avoiding unnecessary GCs is an important concern in writing performant Android Apps. Having the core C layer only hold on to as little memory as possible is a huge win.
On a less objective note: When I left undergrad I thought I'd never write C again, but it was such a pleasure working with it again. Knowing (almost) exactly what operations your code is doing is quite liberating after working with so many other higher level languages and frameworks.
https://graphics.stanford.edu/wikis/cs448b-09-winter/FP-Bost...
Edit. Auto correct typo
My comments are entirely related to staying focused when coding. For the days when I am in manager mode things are different, and I am not sure if "focus" is always the right mode there.
I've always found myself preferring long unbroken periods of flow for coding. That for me comes from a quiet space much like the writer's huts described above. That to me has been my perfect setup to stay focused.
Though I have never tried Pomodoro, the idea of something disturbing me every 25 minutes sounds ghastly. When I really need to work I simply close all programs on my computer that are non essential and close all tabs that are non essential. No gmail, no twitter, no facebook. Then I go into a room, sometimes turn off the lights and just code :-)