• 0 Posts
  • 95 Comments
Joined 2 years ago
cake
Cake day: June 12th, 2023

help-circle



  • two apps? where do you work that you only have two apps open? just on my home pc right now I have 21 programs open, of course that includes things that autostartup, but those things take time to startup. stuff like dropbox can take several minutes until it stops thrashing your cpu. On my work computer I have even more. Just in basic programs to do my job that’s at minimum 8 programs. That doesn’t include auto startup apps, or other apps I use. That’s just basics required by my job. Several of them are IDEs which take several minutes to start, and then when they do start you have to open up the project, indexing happens. All told, the computer can start in 20 seconds, but getting to a working desktop state is about 10 minutes.


  • this meme is really true for windows, sometimes my pc wakes up the second I put it to sleep. seems to be some random app I have open allowing it to wake up again. infuriating. With intel macs, they wasted a lot of battery asleep, but my silicon mac can sleep for weeks without losing hardly any battery. linux I still can’t get sound to work properly.











  • You can write your glue nano-service in c/c++ if you want, it’s just that: glue. It doesn’t matter as long as you don’t need to change the original services which also can be written in whatever you want. Ruby, Python, JS just work out of the box with aws lambda and you don’t really have to maintain them or any sort of build infra so it allows for very little maintenance or upkeep cost. You don’t really test these glue lambdas either.





  • SCUBA and NASA are always the ones I use against that argument. It would be Skuh-baa instead of scooba, and neh-sa instead of nah-suh.

    And no matter what way it was spelled, it’s the only word we’re still arguing about that literally has a song to go with it to make sure everyone pronounced it correctly. It’s pretty clearly a soft g, because it was a marketing trick, not a dictionary word. It doesn’t have to follow any rules of English, just like all those companies just removing random letters and changing ck for x, etc. Flickr, tumblr, Grindr, scribd, Lyft, Kwik, Cheez, etc etc etc. Twitter was originally even twttr.


  • we’ve been using nano-services for the past 6 months or so. Two different reasons. A codebase we absorbed when a different team was dissolved had a bunch of them, all part of AWS AppSync functions. I hate it. It’s incredibly hard to parse and understand what is going on because every single thing is a single function and they all call each other in different ways. Very confusing.

    But the second way we implemented ourselves and it’s going very well. We started using AWS Step Functions and it allows building very decoupled systems by piecing together much larger pieces. It’s honestly a joy to use and incredibly easy to debug. Hardest part is testing, but once it’s working it seems very stable. But sometimes you need to do something to transform data to piece together these larger systems. That’s where ‘nano-services’ come in. Essentially they’re just small ruby, python, js lambdas that are stuck into the middle of a step function flow in order to do more complex data transformation to pass it to the next node in the flow. When I say small I mean one of the functions we have is just this

    def handler(event:, context:)
      if event['errorType']
        clazz = Object.const_set event['errorType'], Class.new(StandardError)
        raise clazz.new.exception, event['errorMessage']
      end
      event
    end
    

    to map a service that doesn’t fail with a 4xx http code to one that does fail with a 4xx http code.

    You could argue this is a complete waste of resources, but it allows us to keep using that other service without any modifications. All the other services that depend on that service that maps its own error types can keep working the way they want. And if we ever do update that service and all its dependencies, now ‘fixing’ the workflow is literally as simple as just deleting the node and the ‘nano-service’ to go along with it.

    I should note that the article is about the first thing I discussed, the terrible codebase. Please don’t use nano-services like that, it’s literally one of the worst codebases I’ve ever touched and no joke, it’s less than 2 years old.