View Posts

  • How to Fix Brave Browser GPG check failed on Fedora

    |
    Updated at

    Oddly kept getting a public key failure on Fedora whenever I wanted to upgrade or reinstall brave browser. Took a while, longer than I would have liked, of searching before I was able to resolve it.

    Public key for brave-browser-1.3.115-1.x86_64.rpm is not installed
    Public key for brave-keyring-1.7-1.noarch.rpm is not installed
    The downloaded packages were saved in cache until the next successful transaction.
    You can remove cached packages by executing 'dnf clean packages'.
    Error: GPG check FAILED

    I think one can ...

  • Bad Management: DoorDash Forced Arbitration Clause

    |
    Updated at

    https://www.theverge.com/2020/2/12/21135474/doordash-workers-forced-arbitration-william-alsup

    "DoorDash contractors have turned a forced arbitration clause in their contract against their employer, as a federal judge has ordered DoorDash to arbitrate 5,010 labor disputes, potentially costing the company millions in arbitration fees"

    Another case of "Ooops, we didn't see that coming" when management tries to shift costs to customers and employees to dissuade lawsuits. Any competent lawyer would have told th...

  • `npm link` does a bad job of linking package dependencies.

    |
    Updated at

    I wonder who thought the way that `npm link` should work figured that no one would ever try to use local modules on their computer. I'm really incensed by the idea that modules that are the same version across multiple local dependencies are considered separate.

    Consider

    App A -> Lib A -> Lib B

               -> Lib B

    One would reasonably believe that if all of these modules are linked together via npm or yarn link that there would be one instance of each module. No.

    App A has its own instance of Lib B, so if you we...

  • C5Store: The Best Runtime Configuration Store for Applications

    |
    Updated at

    Yes, another application configuration library, but I assure you this is way better than any one of them out there. This is the Provider section of the Config Triad (Provision, Management, Provider).

    C5Store is a comprehensive answer to the "what config library should I use for dynamic runtime configuration" question. Library is available here: https://github.com/normano/c5store

    Why?

    I've scoured around for configuration libraries in multiple languages and find them to be lacking in how they are defined, integ...

  • Tim Ferriss' Reasons to Not Become Famous

    |
    Updated at

    https://tim.blog/2020/02/02/reasons-to-not-become-famous/

    Very real and intense article by a guy I've never heard of

    Maybe it is the energy he and other celebs put out that attracts the fans and intense fans (crazies and stalkers). Freedom can be a boon for mental people in getting to their targets. Imagine that, some guy reading your posts from across the nation thinking you were saying he had to move in with you and actually going to do it. Fuckin' A, I know I would go get a gun license quickly right after...

  • Facebook Engineering Talks and Papers

    |
    Updated at

    Figured I start keeping track of talks and papers that Facebook developers produce that I found interesting. I'll keep the list updated.

    Talks

    2008, Zuckerberg on Memcache at Facebook (https://www.youtube.com/watch?v=UH7wkvcf0ys)

    2013, Large-Scale Low-Latency Storage for the Social Network - Data@Scale (https://www.youtube.com/watch?v=5RfFhMwRAic)

    2013, Scaling Memcache at Facebook (https://www.usenix.org/conference/nsdi13/technical-sessions/presentation/nishtala)

    2014, Release Engineering at Facebook (https://w...

  • Piece on the Archaic Misbelief around Giving Feedback to Interview Candidates

    |
    Updated at

    http://blog.interviewing.io/no-engineer-has-ever-sued-a-company-because-of-constructive-post-interview-feedback-so-why-dont-employers-do-it/

    ^ What he said

    Maybe the best recruiters are the ones who have been Software Engineers before. Maybe it is a bias on my part. The blog posts around their experiences are gold.

    Companies need to do better at giving feedback or they really should not expect candidates to give any feedback when asked.

    P.S. I am not interviewing anywhere currently. Busy creating my own product...

  • At-Least Once Concurrent Cancelable Priority Ordered Repeatable Resumable Asynchronous Job Execution

    |
    Updated at

    I remember getting a simpler form of a priority ordered job processing system for a take home interview question. I declined to do it. Just wasn't interested in creating usable compilable code for someone else outside of a paid job.

    In creating my new Product for task management, I required a way to do job execution to schedule account oriented operations outside of API interactions. When tasks get created they need to be searchable, so a job is submitted to execute that asynchronously. The jobs would have t...

  • Better Backend Workflow Management

    |
    Updated at

    I could say I've seen this some times when applications would contact a ticketing system to create a ticket and then see where a ticket is before performing an action. Typically, a human would interact with the ticket and some time later the state of the application changes and it performs the action.

    I haven't seen this done via something like Trello or Jira though. You almost always have to interact with the backend system in some way to progress the task. Not very automated is it.

    Since I've been creating ...

  • Recorderable lists a.k.a. Scoring items for Sorting is Pretty Hard

    |
    Updated at

    Let's say you have a list of items that you want to sort, but you want it such that a user can change items in the list.

    Naively you would give every item a score in an integer range. Typically starting from 0 though some make use of the negative numbers. Alright, sounds good what happens when I perform an add, insert, delete, swap then?

    On add, you are just adding to the end of the list, so score of that item is the max(list scores) + 1.

    On insert, you are adding to the middle of the list, so score of that it...