• 4 Posts
  • 157 Comments
Joined 1 year ago
cake
Cake day: June 30th, 2023

help-circle


  • Kagi generated key points:

    • The new Find My Device network on Android was designed with a strong focus on user security and privacy.
    • The network uses a crowdsourced approach to locate lost or misplaced devices and belongings, even when they are offline.
    • The location data reported by participating Android devices is end-to-end encrypted, ensuring Google cannot access or use the location information.
    • The network has “aggregation by default” as a safety feature, requiring multiple nearby devices to detect a Bluetooth tag before reporting its location to the owner.
    • The network also has protections to avoid contributing location reports when near the user’s home address.
    • Rate limiting and throttling are used to prevent malicious real-time tracking, while still allowing the network to be useful for finding lost items.
    • The network is compliant with industry standards for unwanted tracking, triggering alerts on both Android and iOS devices.
    • Users have full control over which of their devices participate in the network and how.
    • The network design has undergone internal security testing and is part of Android’s vulnerability rewards program.
    • Prioritizing user safety and privacy is an ongoing commitment as the team continues to improve the Find My Device protections.

  • Recently I had to do an update to the underlying environment a codebase ran on. This was a somewhat involved upgrade and took a longer period of time than most of our work usually does. I did it in a separate worktree, so I didn’t have to constantly rejuggle the installed dependencies in the project, and could work on two features relatively concurrently

    It also provides some utility for comparing the two versions. Nothing you couldn’t do other ways, but still useful












  • Paradox@lemdro.id
    cake
    OPtoProgramming@beehaw.orgCSS is fun again
    link
    fedilink
    English
    arrow-up
    2
    ·
    8 months ago

    They can both model any color equally well, it’s just oklch works even closer to how we perceive colors changing. LAB and all derivatives are in Cartesian space, with luminance, a, and b being the defining axises. Luminance is self explanatory, but a and b are just axises of how much red/green and blue/yellow there is. It can be difficult to think of a color in how much blue it is, for example, when the color is something like nearly pure red. They both affect the hue output, so varying one can create strange, unintuitive colors

    LCH works in polar space, like a color wheel. L is still luminance, c is the “colorfulness” and h is the hue. H and C let you set the same values a and b would, but in a more human way. We’re used to thinking about colors changing independent of how much of a color there is, and that’s what LCH does. Vary only the h and you get very different colors. Vary only the c and you get the same color but in different amounts of saturation, from full color to no color





  • Kagi summary:

    • The Android Market (now Google Play Store) was launched in October 2008 with the T-Mobile G1 phone, helping establish app ecosystems on mobile.
    • Before app stores, finding and downloading apps was difficult through various online stores and carrier stores with limited selection and updates.
    • The Android Market centralized the app experience and discovery, giving access to a growing variety and number of apps in one place.
    • Early app successes helped drive more users, phones, developers and apps in a reinforcing cycle that grew the app economy exponentially.
    • Popular early apps filled gaps in Android’s capabilities in areas like weather, file management, flashlights as built-in features were still being developed.
    • Later apps brought extra abilities beyond necessities, like music streaming, ebooks, games, social media and more.
    • The article reminisces on the novelty of app stores and ecosystems in their early days compared to their ubiquitous presence today.
    • Over 100,000 apps were available by mid-2010 and over 3.5 million apps today on Google Play.
    • We now take app discovery, updates, and the overall app experience for granted due to how well app stores do their job.
    • The article credits the Android Market and Apple App Store for establishing apps as the norm and changing our expectations of mobile.


  • Data comes out as a map or keyword list, which is then turned into the repository struct in question. If you want raw db data you can get that too. And you can have multiple structs that are backed by the same persistent dataset. It’s quite elegant.

    Queries themselves are constructed using a language that is near SQL, but far more composable:

    Repo.one(from p in Post, join: c in assoc(p, :comments), where: p.id == ^post_id)
    

    Queries themselves are composable

    query = from u in User, where: u.age > 18
    
    query = from u in query, select: u.name
    

    And can be written in a keyword style, like the above examples, or a functional style, like the rest of elixir:

    User
    |> where([u], u.age > 18)
    |> select([u], u.name)
    

    None of these “queries” will execute until you tell the Repo to do something. For that, you have commands like Repo.all and Repo.one, the latter of which sticks a limit: 1 on the end of the provided query