2,469 Matching Annotations
  1. Jan 2023
    1. Solution #3: Switch to Conda-Forge

      Yet another possible solution for M1 users, but you need to use conda and expect less packages than in PyPI

    2. In general, the environment variable is too heavy-handed and should be avoided, since it will impact all images you build or run. Given the speed impact, you don’t for example want to run your postgres image with emulation, to no benefit.

      Which options to avoid

    3. The problem with this approach is that the emulation slows down your runtime. How much slower it is? Once benchmark I ran was only 6% of the speed of the host machine!

      Speed is the core problem with emulation

    4. The other option is to run x86_64 Docker images on your ARM64 Mac machine, using emulation. Docker is packaged with software that will translate or emulate x86_64 machine code into ARM64 machine code on the fly; it’s slow, but the code will run.

      Another possible solution for M1 users (see snippets below)

    5. Third, you can pre-compile wheels, store them somewhere, and install those directly instead of downloading the packages from PyPI.

      Third possible solution for M1 users

    6. If you have a compiler installed in your Docker image and any required native libraries and development headers, you can compile a native package from the source code. Basically, you add a RUN apt-get upgrade && apt-get install -y gcc and iterate until the package compiles successfully.

      Second possible solution for M1 users

    7. First, it’s possible the relevant wheels are available in newer versions of the libraries.

      First possible solution for M1 users

    8. When you pip install murmurhash==1.0.6 on a M1/M2 Mac inside Docker, again it looks at the available files

      Other possible steps that pip will do when trying to install a Python package without a relevant CPU instruction set

    9. When you pip install filprofiler==2022.05.0 on a M1/M2 Mac inside Docker, pip will look at the available files for that version, and then

      3 steps that pip will do when trying to install a Python package without a relevant CPU instruction set

    10. In either case, pure Python will Just Work, because it’s interpreted at runtime: there’s no CPU-specific machine code, it’s just text that the Python interpreter knows how to run. The problems start when we start using compiled Python extensions. These are machine code, and therefore you need a version that is specific to your particular CPU instruction set.

      M1 Python issues

    11. on an Intel/AMD PC or Mac, docker pull will pull the linux/amd64 image. On a newer Mac using M1/M2/Silicon chips, docker pull will the pull the linux/arm64/v8 image.

      Reason of all the M1 Docker issues

    12. In order to meet its build-once-run-everywhere promise, Docker typically runs on Linux. Since macOS is not Linux, on macOS this is done by running a virtual machine in the background, and then the Docker images run inside the virtual machine. So whether you’re on a Mac, Linux, or Windows, typically you’ll be running linux Docker images.
    1. If I wanted to set someone up for a good life and they could focus on only one thing, I would prioritize getting social skills, especially conversational skills.

      Value conversation skills a ton!

    2. Of all the people I know, I can only think of a couple people who I believe really don’t want to be 50% of the conversation. Topic introduction should also be split pretty evenly.

      Conversations should be about 50/50, but only a couple of people might not prefer it and talk less

    3. “Nice” “Cool” “Ok” If you get a lot of single word answers, you are not keeping the other person interested. They are trying to prevent you from saying more, either because you habitually talk too much or because the topic isn’t interesting to them.

      Avoid single word answers

    4. I have a friend who has somewhat extreme political views, but he will always say things like, “I believe X, but I bet you believe Y and you always have interesting takes, so I’d love to hear your thoughts”. It’s a great way to disagree in a positive and constructive way, and I always enjoy conversations with him.
    5. It seems that these days everyone is so focused on being right and believes that changing their mind shows weakness, but in reality it is the opposite. Only confident people feel are able to change positions without affecting their self image.
    6. Factual questions are good, but questions that deepen the conversation are even better. “What were you thinking when she said that?” “Was that as hard as it sounds?” “How did you learn how to do that?” “What made you decide to go that route?”

      Try to ask questions that deepen the conversation

    7. An ideal conversation is a mix of listening, asking questions, and sharing in a way that allows the other person to politely guide the conversation. You must ask questions so that the other person knows that you are interested in them and what they are saying. The worst conversations are those where both parties are waiting their turn to talk, saying as much as they can before getting interrupted, and then being forced to listen to the other.

      Worst and best conversation types

    8. I could tell a story about building my pinball machine. A crafty technical friend might be very interested in hearing every step, but my mom might not be interested in more than about 10 seconds of detail on it.

      Pay attention how you share your information, and to whom

    9. A conversation is best when both parties are interested, engaged, and want to share. If you interrupt you show that you are uninterested and you blunt the other person’s motivation to share.

      Don't interrupt

    10. I asked why she thought that was happening, and she said, “Covid”. The lack of socialization, especially at such a key time in life, had made this incoming class the first one that lacked basic manners and social skills.

      Covid has heavily impacted our social/communication skills

    11. This sort of behavior puts a huge burden on the listener because it makes them responsible for your emotional state. Their options are to deny you the emotional state you want, or to give it to you by lying. This is exhausting and will cause people to limit the amount of social time they spend with you.

      Pay attention what you're sharing with different people, as not everyone will feel comfortable with receiving the same information

    1. The {vetiver} package provides a set of tools for building, deploying, and managing machine learning models in production. It allows users to easily create, version, and deploy machine learning models to various hosting platforms, such as Posit Connect or a cloud hosting service like Azure.
    2. I hope to show how to demonstrate how easy model deployment can be using Posit’s open source tools for MLOps. This includes {pins}, {vetiver}, and the {tidymodels} bundle of packages along with the {tidyverse}.

      Consider the following packages while doing MLOps in R: - pins - vetiver - tidymodels - tidyverse

    1. W aktualnym stanie prawnym działalność nie podlega obowiązkowi rejestracji w przypadku, gdy miesięczny przychód z takiej działalności nie przekracza kwoty 50% minimalnego wynagrodzenia za pracę. Obecnie pensja minimalna wynosi 3010 zł, w związku z czym w 2022 roku wspomniany miesięczny limit jest równy kwocie 1505 zł
    1. Although the architect could code, as the title suggests, there are other ways for the architect to stay engaged with the delivery, such as pairing and peer reviews.
    2. Rotating the architect role among different team members carries the benefit of increasing the overall team’s working architectural knowledge. Team members gain a better understanding of all the roles involved in delivery, leading to empathy between team roles, improved intra-team interaction, and a better overall product by diversifying the viewpoints applied to each role.

      On rotating roles

    3. Similarly, when I ask other architects how much they’ve coded recently, more often than not I hear: “It’s been a while.”
    1. I always allocate a year: six months to get up to speed on the internal culture, tools, and processes; another six months to get your first performance review as a “ramped-up” engineer.
    2. I posted my interview tracker spreadsheet on Twitter under the guise of “being transparent.” The very next day, I was on a phone screen with a recruiter when they said “Yeah, I looked at the interview spreadsheet you posted on Twitter and just based on that I can tell you’re not going to be a good fit here. I just took this call as a favor to <redacted> since they referred you.”
    3. Just because you’re getting a lot of offers to interview does not mean that you are a hot commodity. Nor does it indicate a high likelihood of obtaining an offer.
    4. If you had asked me right after I got laid off how long it would take me to get back to work, I would have said three months – including two months of vacation. It took me a year.

      2-3 months may turn into 1 year

    1. I highly recommend Advent of Code to anyone looking to sharpen (or re-sharpen) their programming skills.
    2. I used vim and make for my universal IDE.

      vim and make serve well as universal IDE for most programming languages (maybe apart from C#?)

    3. For the most part, homebrew solved the installation problem. Almost every language had a homebrew-based option.

      Homebrew can help a lot while experiment with new programming languages

    4. I stayed up each night until the problem was released (11pm my time), but I didn’t try to code up the solution right away. Instead, I read the problem description before bed and then thought about how to solve it while falling asleep. I usually woke up every morning with a full sketch of the solution in my head, or something close to it.

      Sleep tactic for solving programming challenges

  2. drew.shoes drew.shoes
    1. net send * MESSAGE

      Command sending a MESSAGE to each computer in the network

    1. You should check out Modal! Does much more than just cronjobs, but super easy and cheap: https://modal.com/docs/guide/cron.

      Cheapest/easiest cron job solution: Modal

    1. Wildcards tend to be labelled as "Swiss army knife", "generalist", or "jack of all trades". Each term fails to describe the full range of value that a Wildcard brings to the table.Wildcards fit best into the chaotic nature of early-stage startups.

      Wildcard people are good at many things but not a master

    1. Here's my opinion, having written many thousands of lines of mypy code.

      Negative opinion on mypy (see below this annotation)

  3. Dec 2022
    1. Typescript added rich type annotations to Javascript, which opened the door to refactoring and static analysis tools that facilitate development and maintenance of large Javascript projects.
    1. Overall, the code was significantly shorter compared to the tkinter version I did last year. That version had a few more features, but I'd say Textual felt much easier to reason about.

      Textual is much easier than tkinter.

    1. Or more directly

      Hack for pasting multiline Python scripts in a terminal:

      1. python
      2. exec('''<paste code>''')
      3. [ENTER]
    1. In Python, everything is an object – integers, strings, lists, functions, even classes themselves.
    1. The larger the capacity of an SSD, the more data can be written to it during its working life.
    2. If you know the TBW for an SSD and the total amount of data that has been written to it during its lifetime, it’s simple to estimate the percentage of its lifetime (as TBW) that has been used up, hence the amount remaining.
    1. “If something is not definitely ‘yes’, it is definitely ‘no’”. This is the leading idea of Greg McKeown’s great book Essentialism: The Disciplined Pursuit of Less
    2. Monastic and bimodal modes are rather reserved for professions that can manage work without intensive communication with people, like writers, scientists, researchers, etc. Journalist mode fits best to people that are experienced with deep work and can easily switch into that state. From my experience, the best option to start with deep work is the rhythmic mode.

      Advices around 4 different deep work modes

    3. As far as deep work is concerned, it can be performed in four different modes:

      4 different modes of deep work (see below)

    1. Of course, CSV is less flexible than JSON. It's suitable when you have a list of items with mostly the same properties, and no nested structures.
    2. At 100,000 entries, this list would be 2.4 MB (that's ~63% less than the JSON)
    3. CSV is a format that's more lightweight than JSON and super well suited to streaming.
    4. Those methods will wait until the entire response has been downloaded, and then parse it. That's because JSON is not a streaming format

      To consume JSON in a streaming way, use jq

    5. JSON is ubiquitous, more lightweight than XML but still flexible enough to represent any data structure you typically need
    1. GitHub Copilot is incredible, and if you check what’s happening in the preview released as the Copilot Labs extension it will only get more amazing.

      Demonstration of "Code brushes" for GitHub Copilot (see GIF below)

    1. At the end of the day, Copilot is supposed to be a tool to help developers write code faster, while ChatGPT is a general purpose chatbot, yet it still can streamline the development process, but GitHub Copilot wins hands down when the task is coding focused!

      GitHub Copilot is better at generating code than ChatGPT

    1. Summary: In people with normal vision (or corrected-to-normal vision), visual performance tends to be better with light mode, whereas some people with cataract and related disorders may perform better with dark mode. On the flip side, long-term reading in light mode may be associated with myopia.

      Dark mode vs light mode

    1. If headaches and eye strain persist, go see an optician. I had the same problem about a year ago; it turns out I am long-sighted and require glasses. Since then, my headaches and eye strain have pretty much stopped.
    2. Many people perceive light mode as the cause of eye strain. But blue light, among other things, is actually the cause of it most of the time.
    1. According to an analysis from the Wall Street Journal, the top 1% of Twitch streamers made over 50% of all money paid out by the platform in 2021. Furthermore, just 5% of users had made over $1,000 in the same year. Only 0.06% had made over the U.S. median household income of $67,521. In a survey of 5,000 community members composed of smaller Twitch streamers, Stream Scheme found that 76% were not able to reach Twitch’s $100 minimum payout threshold. Most others were making between $25-130 per month on the platform. 
    2. In a 2021 leak of Twitch’s user data that included creator payouts, it was revealed that from August 2019 to October 2021, the top 100 streamers on the platform made anywhere between $9,626,712.16 and $886,999.17. 
    1. maps.google.com now redirects to google.com/maps. This implies that the permissions I give to Google Maps now apply to all of Googles services hosted under this domain.

      Google can now geo-track us across all services

    1. Your changes preserved through git stash are saved in your project’s .git directory, usually, the path is /.git/refs/stash

      Location where git stash saves files

    1. “Berla devices position CBP and ICE to perform sweeping searches of passengers’ lives, with easy access to cars' location history and most visited places and to passengers’ family and social contacts, their call logs, and even their social media feeds,” she said.
    2. Cybersecurity researcher Curry told Forbes that, after seeing what could be done with just a VIN, it was “terrifying” that those identifying numbers were public.
    3. For anyone with a Honda or Nissan car, it was possible for a hacker with a laptop to unlock or start their vehicles, locate them and raid personal data stored inside, cybersecurity researchers warned on Wednesday.
    1. “what surprised you when you got into X”, “what do people often misunderstand”, “what are most important problems in your field”

      Questions to ask to a domain expert from a completely new field to you

    1. Think about your closest friends, and how these friendships happened. What needs are you fulfilling in each other’s lives? Are you happy with this state of affairs, or is something missing? What could be better?

      Exercise to solve while analyzing close friendships

    1. Ultimately the data scientists need me more than I need them; I’m the reason their stuff is in production and runs smoothly.
    2. The main reason I soured on data science is that the work felt like it didn’t matter, in multiple senses of the words “didn’t matter”:

      The main reasons why Data Science work feels pointless

    1. You can't think well without writing well, and you can't write well without reading well. And I mean that last "well" in both senses. You have to be good at reading, and read good things.
    2. Talking about your ideas with other people is a good way to develop them. But even after doing this, you'll find you still discover new things when you sit down to write.
    3. if you need to solve a complicated, ill-defined problem, it will almost always help to write about it. Which in turn means that someone who's not good at writing will almost always be at a disadvantage in solving such problems.
    1. Try this code at app startup:

      Code to improve Python GC settings to increase the performance by 20%

    2. The trigger is when you allocate 700 or more container objects (classes, dicts, tuples, lists, etc) more than have been cleaned up, a GC cycle runs.

      Trigger for GC runs in Python

    1. An absolute location can be confidently calculated only when four (or more) distance values are available.
    1. ---.._ `\ ,;;;, "--.._ |,%%%%%% _ `\;;;; -\ _ _.'/\ try not to buy ,;;;;" .__{=====/_)==:_ || .io domains. ,,,;;;;;'`-./.____,'/ / '.\/ bcuz they're icky. 🤮 ;;;;;' `--.._.' / '-. `\/ ,'`. | __.-' \ ,' '`` `---`

      Advice around .io domains

    2. .io is the official domain of "the british indian ocean territory"

      .io domain name

    1. To summarize the three options we’ve seen, as well as a streaming ijson-based solution:

      Comparison of 4 Python's JSON libraries

    1. For sufficiently simple cases, just running a few commands sequentially, with no subshells, conditional logic, or loops, set -euo pipefail is sufficient (and make sure you use shellcheck -o all).

      Advice for when you can use shell scripts

    1. Always start with functionsGrow to classes once you feel you can group different subsets of functions

      Python rules for creating a function or a class

    2. First of all, in Python there are no such things as "files" and I noticed this is the main source of confusion for beginners.If you're inside a directory that contains any __init__.py it's a directory composed of modules, not files.

      On "files" in Python

    3. For every minute spent in organizing, an hour is earned.by Benjamin Franklin

      I feel like this should be my motto :)

    1. the fact that the Poetry developers intentionally introduced failures to people’s CI/CD pipelines to motivate them to move away from Poetry’s legacy installer… Though we didn’t rely on the installer in our pipelines, this was the death knell for the continued use of Poetry.

      Video on this topic: https://youtu.be/Gr9o8MW_pb0

    1. Best times to post on social media overall: Tuesdays through Thursdays at 9 a.m. or 10 a.m. Best days to post on social media: Tuesdays through Thursdays Worst days to post on social media: Sundays
  4. Nov 2022
    1. There are plenty of articles about the emergence of PyScript for embedding Python code directly into HTML, but until now the creation of browser extensions in Python has been something of a closed door.

      One can use PyScript to write browser extensions in Python (or at least some simple ones?)

    1. In summary, terminal input is weird.  It’s weird largely because there’s a character-only pipe sitting between the terminal and shell.  And going one step back, the weirdness comes from the whole historical division of terminal vs. shell, which is based on emulating a physical hardware setup that hasn’t been built since the 80s. 

      Summary of why the terminal input is so weird.

    1. in MLflow 2.0, the mlflow.evaluate() API for model evaluation is now stable and production-ready. With just a single line of code, mlflow.evaluate() creates a comprehensive performance report for any ML model.
    2. MLflow 2.0 also adds AutoML to MLflow Recipes, dramatically reducing the amount of time required to produce a high-quality model.

      AutoML in MLflow 2.0

    3. In MLflow 2.0, MLflow Recipes is now a core platform component with several new features, including support for classification models, improved data profiling and hyperparameter tuning capabilities.

      MLflow Recipes in MLflow 2.0

    1. As I think today microservice can do much more than just gives predictions using a single model, like:

      List of differences between a microservice and inference service.

      (see bullet points below annotation)

    1. notice that defaultdict not only returns the default value, but also assigns it to the key that wasn't there before:

      See example below about defaultdict

    2. we might need a dictionary subclass, and then we need to access a key that does not exist in that dictionary

      Example of applying __missing__ dunder method:

      ```python class DictSubclass(dict): def missing(self, key): print("Hello, world!")

      my_dict = DictSubclass() my_dict["this key isn't available"]

      Hello, world!

      ```

    3. The table also includes links to the documentation of the dunder method under the emoji 🔗. When available, relevant Pydon'ts are linked under the emoji 🗒️.

      Table below lists Python dunder methods

    4. >>> 3 in my_list False >>> my_list.__contains__(3) False

      python 3 in my_list is the same as: python my_list.__contains__(3)

    5. “dunder” comes from “double underscore”

      dunder = double underscores (__)

    6. dunder methods are methods that allow instances of a class to interact with the built-in functions and operators

      Python's dunder methods

    1. take a step back and ask a basic question: “What kind of business value are we trying to provide?"

      Recommended approach over saying "it depends" to your stakeholders

  5. Oct 2022
    1. As of today, a lot of the things in ML are not automated. They are manual or semi-manual.
    2. If we say that MLOps is just DevOps + “some things”, then CI/CD is a core principle of that.
    3. Not everything can be tested/evaluated with a metric like AUC or R2. Sometimes, people just have to check if things improved and not just metrics got better.
    4. I believe that packaging/building/deploying the vanilla, run-of-the-mill ML model will become common knowledge for backend devs.
    5. MLOps engineer today is either an ML engineer (building ML-specific software) or a DevOps engineer. Nothing special here.Should we call a DevOps engineer who primarily operates ML-fueled software delivery an MLOps engineer?I mean, if you really want, we can, but I don’t think we need a new role here. It is just a DevOps eng.

      Who really is MLOps Engineer ;)

    6. The MLOps team should consist of a DevOps engineer, a backend software engineer, a data scientist, + regular software folks.

      Recommended MLOps team structure

    1. By becoming a hybrid you can choose how you want to be unique. Countless unique combinations are available to you.
    2. Being U-shaped requires bravery, because it’s so unusual. U-shaped people tend to be subjected to greater skepticism, because no one else really understands what they alone can see.

      Advantage of U-shaped hybrid

    3. T-shaped. They tend to be natural leaders because they understand how different responsibilities overlap, and how to construct effective teams and processes.

      Advantage of T-shaped hybrid

    4. The U-shaped path means developing skills that are not often found together. Like engineering and dancing, or singing and design.

      U-shaped hybrid type of specialization

    5. The T-shaped hybrid path is one that many curious people follow. You grow your skillset and experience in areas that are adjacent to your dominant expertise. For example engineering and design, or singing and dancing.

      T-shaped hybrid type of specialization

    6. I’m excited to see community efforts like Obsidian Ava
    7. The sentence in italics above was not written by me. It was autocompleted as I wrote in Obsidian, using the Text Generator plugin.
    8. In some ways it is surprising that filtering text is so technically challenging. Text seems like it would be easier to manipulate than images.
    1. After decades of experience, he knew and understood that the most meaningful conceptual progress he made on problems was always away from his computer: on a run, in the shower, laying in bed at night. That’s where the insight came. And yet, even after all these years, he still felt a strange obligation to be at his computer because that’s too often our the mental image of “working”.
    2. Work at MIT found that brainstorming—where a bunch of people put their heads together to try to come up with innovative solutions—generally “reduced creativity due to the tendency to incrementally modify known successful designs rather than explore radically different and potentially superior ones.”

      The "bad" side of brainstorming

    1. It's like paying a quarter of your house's value for earthquake insurance when you don't live anywhere near a fault line.

      What paying for cloud in some scenarios really is

    2. The second is when your load is highly irregular. When you have wild swings or towering peaks in usage.

      2nd great use of cloud services

    3. The cloud excels at two ends of the spectrum, where only one end was ever relevant for us. The first end is when your application is so simple and low traffic that you really do save on complexity by starting with fully managed services.

      1st great use of cloud services

    1. The first interaction with a programming language should be what it can do for you, rather than an exhaustive glossary of what it is.
    1. Python is known for using more memory than more optimized languages and, in this case, it uses 7 times more than PostgresML.
    2. PostgresML outperforms traditional Python microservices by a factor of 8 in local tests and by a factor of 40 on AWS EC2.
    1. Lay the watch horizontally and align the hour hand of the watch with the direction of the sun. The middle point between the alignment of the sun with the hour hand, and the 12 o’clock position on the dial, approximately indicates south.

      Using watch as a compass

    1. Use SSH and connect:

      Disposable root server:

      bash ssh root@segfault.net # Password is 'segfault'

  6. wifine.gitlab.io wifine.gitlab.io
    1. By using a VPN, you are only changing who can see your network layer traffic. It does not increase any security.
    2. any retailer doing credit card transaction processing is forced to use TLS
    1. Because it's easy money. You just set up OpenVPN on a few servers, and essentially start reselling bandwidth with a markup.

      How to start a VPN business

    1. Sometimes bullying comes with prejudice, but often it's a more instinctive behavior. There may be no belief, conscious or unconscious, behind it. It can be a plan or just an animal instinct to dominate, to coerce

      Bullying

    1. For that, you must create a culture of fear in which it’s more important to show others you’ve been productive than to help the team achieve its goals.
    2. Once you have convinced your team to estimate tasks, you can pressure people to work longer hours to prove they’re not bad at estimations.
    1. But for all of its features, GitHub implements only a subset of git. For instance, GitHub lacks the default merge strategy of git—the fast-forward merge.
    1. Be aware that staying at a company too long means you are likely to earn less over your career. But moving too soon means you won’t get the necessary experience that may benefit you later on.
    2. Learning and adaptation – 3 – 6 months – getting to grips with the new company, team, and their processes. Creating value for the organization – 6 – 12 months – adding value to the business by becoming a functioning member of the team.Becoming a role expert – 6 – 18 months – owning the role completely and helping to shape the direction of the team.

      Job stages

    3. Software engineers typically stay at one job for an average of two years before moving somewhere different. They spend less than half the amount of time at one company compared to the national average tenure of 4.2 years.
    4. The average performance pay rise for most employees is 3% a year. That is minuscule compared to the 14.8% pay raise the average person gets when they switch jobs.
    1. On “good” days, developers spend more time developing and less time collaborating
    1. Speaking from my (R-biased) viewpoint, conda has posed some problems as well:

      List of problems while using conda for r.

    1. You can unknowingly be sending your critical database traffic in the clear because your client uses a default of allow or disable while the server you’re connecting to does, in fact, support SSL.
    2. You can unknowingly be sending your critical database traffic in the clear because your client uses a default of prefer, allow or disable and the server you’re connecting to does not support SSL.
    3. What Should I Do?

      Advices to set verify-full encryption for: - developers - PostgreSQL server maintainers - users - PostgreSQL tool makers - PostgreSQL creators

    4. Many popular SQL clients do not use SSL by default. If you aren’t deliberate about choosing encryption, the connection will be unencrypted.

      Table with SQL clients and their default SSL mode:

    5. SSL is disabled by default in jdbc, npgsql, node-postgres, and pgx.

      Table with programming libraires and their default SSL mode:

    6. There are a lot of PostgreSQL servers connected to the Internet: we searched shodan.io and obtained a sample of more than 820,000 PostgreSQL servers connected to the Internet between September 1 and September 29. Only 36% of the servers examined had SSL certificates. More than 523,000 PostgreSQL servers listening on the Internet did not use SSL (64%)
    7. At most 15% of the approximately 820,000 PostgreSQL servers listening on the Internet require encryption. In fact, only 36% even support encryption. This puts PostgreSQL servers well behind the rest of the Internet in terms of security. In comparison, according to Google, over 96% of page loads in Chrome on a Mac are encrypted. The top 100 websites support encryption, and 97 of those default to encryption.
    1. new technologies leveraging techniques like spaced repetition mean it's much easier to remember what you learn

      Such as Anki

    2. In 2019 the UK school inspection body Ofsted went further than this and changed their definition of ”learning” itself to “an alteration in long-term memory”.

      learning = alteration in long-term memory

    3. to get faster at learning you must get more efficient at moving things into your long-term memory, i.e. stop forgetting things you learn. The less you forget the more you'll understand and the faster you'll learn.
    4. To learn more than 4 new concepts we must move some of them into our long-term memory before learning the rest.
    5. You can only understand something new if understanding it requires combining less than 4 new pieces of information.
    6. our working memory has a maximum capacity of roughly 4. When reading about quantum mechanics we encounter new Concept 1 and store it in our working memory. Then when learning about Concept 1 we encounter Concepts 2, 3, and 4 and our working memory becomes full. We then cannot understand Concept 5.

      Our memory is unable to hold 5 new concepts

    1. transferring data across Availability zones within the same region is also a good way to save money

      1) data transferring tip on AWS

    2. When you use a private IP address, you are charged less when compared to a public IP address or Elastic IP address.

      2) data transferring tip on AWS

    3. But when you transfer data from one Amazon region to another, AWS charges you for that. It depends on the AWS region you are and this is the real deciding factor. For example, if you are in the US West(Oregon) region, you have to shell out $0.080/GB whereas in Asia Pacific (Seoul) region it bumps up to $0.135/GB.

      Transferring data in AWS within separate regions is quite costly

    4. When you transfer data between Amazon EC2, Amazon Redshift, Amazon RDS, Amazon Network Interfaces, and Amazon Elasticache, you have to pay zero charges if they are within the same Availability Zone.

      Transferring data in AWS within the same AZ is free

    5. When you transfer data from the internet to AWS, it is free of charge. AWS services like EC2 instances, S3 storage, or RDS instances, when you transfer data from the Internet into these you don’t have to pay any charge for it. However, if you transfer data using Elastic IPv4 address or peered VPC using an IPv6 address you will be charged $0.01/gb whenever you transfer data into an EC2 instance. The real catch is when you transfer data out of any of the AWS services. This is where AWS charges you money depending on the area you have chosen and the amount of data you are transferring. Some regions have higher charges than others.

      Data transfer costs on AWS

    1. Building machines and running downscaled tests is my late-night hobby.

      Interesting hobby :)

    2. We use Javascript everywhere, since we solve the “issues” caused by Javascript rendering we want to build as much expertise as possible in this field. But for the other parts, we are taking advantage of CloudFlare’s distributed system for fast response and global scalability. While our uptime guarantees are supported by Digital Ocean’s cloud platform. We also use a myriad of other SaaS providers to maximize our effectiveness.

      Stack of Prerender: - Javascript - CloudFlare - Digital Ocean - SaaS providers

    3. we made sure to implement fail safes at each stage of the migration to make sure we could fall back if something were to go wrong. It’s also why we tested on a small scale before proceeding with the rest of the migration.

      While planning a big migration, make sure to have a fall back plan

    4. We mirrored PostgreSQL shards storing cached_urls tables in CassandraWe switched service.prerender.io to Cloudflare load balancer to allow dynamic traffic distributionWe set up new EU private-recache serversWe keep performing stress tests to solve any performance issues

      Steps of phase 3 migration

    5. “The true hidden price for AWS is coming from the traffic cost, they sell a reasonably priced storage, and it’s even free to upload it. But when you get it out, you pay an enormous cost.

      AWS may be reasonably price, but moving data out will cost a lot (e.g. $0.080/GB in the US West, or $0.135/GB in the Asia Pacific)!

    6. In the last four weeks, we moved most of the cache workload from AWS S3 to our own Cassandra cluster.

      Moving from AWS s3 to an own Cassandra cluster

    7. After testing whether Prerender pages could be cached in both S3 and minio, we slowly diverted traffic away from AWS S3 and towards minio.

      Moving from AWS S3 towards minio

    8. Phase 1 mostly involved setting up the bare metal servers and testing the migration on a small and more manageable setting before scaling. This phase required minimal software adaptation, which we decided to run on KVM virtualization on Linux.

      Migration from AWS to on-prem started by: - setting bare metal servers - testing - adapting software to run on KVM virtualization on Linux

    9. The solution? Migrate the cached pages and traffic onto Prerender’s own internal servers and cut our reliance on AWS as quickly as possible.

      When the Prerender team moved from AWS to on-prem, they have cut the cost from $1,000,000 to $200,000, for the data storage and traffic cost

    1. After almost 10 years of remote work, it would be close to impossible for me to go back to an office.

      `

  7. Sep 2022
    1. On the internet today, it seems like it’s more common to use “absolute” domain names (like example.com).

      Relative domain names are not as common these days.

    2. The technical term for “THIS IS THE WHOLE THING” is “fully qualified domain name” or “FQDN”. So google.com. is a fully qualified domain name, and google.com isn’t.

      Example of FQDN

    3. So because domain names can actually be translated to something else in some cases, people like to put a "." at the end to communicate “THIS IS THE DOMAIN NAME, NOTHING GETS ADDED AT THE END, THIS IS THE WHOLE THING”.

      Reason why one may put a . at the end of an address

    4. zone files require a trailing dot at the end of a domain name (because otherwise they’re interpreted as being relative to the zone).
    5. a fully qualified domain name is a domain with a “.” at the end!
    1. If you work at a software company, there are some pretty common categories of work that people often avoid, including

      (see a list of activities below this annotation)

    2. Whenever people ask me for advice on career growth, I share what has worked reasonably well for me: find a growth company, one that really needs you to get work done, and then tackle the unpleasant work that everyone avoids.
    1. That’s why it was such a life-changing event for me when I found Dash in 2012.

      Offline docs: - macOS: Dash ($30) - Windows/Linux: Zeal (free) - Windows: [Velocity] (https://velocity.silverlakesoftware.com/) ($20) - Web: DevDocs

    1. Imagine for a moment that, by some quirk of the universe, you are sharing your workspace with a time traveller. Specifically, yourself from 1 year in the future. How will you react to your new co-worker?

      That imagination makes one to ponder for a pretty good time :)

    1. Mamba installs these packages in only a third of the time that Conda does. Much of that is due to less CPU usage, but even network downloads seem to be little faster; Mamba uses parallel downloads to speed them up.

      Mamba is a lot faster than Conda

    1. So which should you use, pip or Conda? For general Python computing, pip and PyPI are usually fine, and the surrounding tooling tends to be better. For data science or scientific computing, however, Conda’s ability to package third-party libraries, and the centralized infrastructure provided by Conda-Forge, means setup of complex packages will often be easier.

      From my experience, I would use Mambaforge or pyenv and Poetry.

    1. My first recommendation would be fiction. Reading fiction is important to understand the cross-sectional variation in humanity, to understand how difficult generalisations can be, to just get a sense of how different social pieces fit together, and to get a sense of different historical eras – and plus, reading fiction is often just plain flat-out fun.

      Why reading fiction is important

    1. Quicker And More Useful Communication

      Great example of asking precise questions

    1. The different barcode types can be categorized as one-dimensional (1D) and two-dimensional (2D). While one-dimensional barcodes consist only of lines and are usually scanned horizontally with laser scanners, two-dimensional codes make use of vertical space as well and can only be scanned with devices that contain a camera, such as imager scanners or smartphones.

      Aparently, there a lot of barcode types

    1. # "func" called 3 times result = [func(x), func(x)**2, func(x)**3] # Reuse result of "func" without splitting the code into multiple lines result = [y := func(x), y**2, y**3]

      Smart example of using the walrus operator :=

  8. Aug 2022
    1. First of all, the map does a much better job at preserving the relative size and area of land and water masses, while reducing shape distortion. It is also designed to avoid dead ends, allowing the spherical nature of the world to be visualised by simply expanding the map in any direction.

      Authagraph map - granted, this map is still not perfect (it's still not a globe) but remains one of the best attempts yet at representing the world in flat, two dimensions.

    1. Most web servers TCP slow start algorithm starts by sending 10 TCP packets. The maximum size of a TCP packet is 1500 bytes.

      10 * 1460 bytes = 14 kb.

      If your website is under 14 kb, it can load around 612 ms faster than 15 kb.

    1. Second-order thinking is more deliberate. It is thinking in terms of interactions and time, understanding that despite our intentions our interventions often cause harm. Second order thinkers ask themselves the question “And then what?” This means thinking about the consequences of repeatedly eating a chocolate bar when you are hungry and using that to inform your decision. If you do this you’re more likely to eat something healthy.

      Second-order thinking

    1. Mob requires good communication skills. There is no space for passive-aggressiveness; or arrogance. If You want to show You are better than Your colleagues, You aren’t a candidate for Mob.

      Main requirement of effective mob programming

    1. Even though Chrome, Firefox, and Edge browsers all store passwords in encrypted databases, by default all three products intentionally leave the associated encryption keys completely unprotected in predictable locations.

      That's why one should use an external app to store passwords, instead of leaving them in a browser

    1. If I’m not able to write down any specific experiments, I know the book, video, podcast, article, or thread is just fluff and I should stop reading, listening, watching as soon as possible. This is an incredibly useful tool. Many authors and speakers are extremely skilled at creating the illusion of powerful insights through engaging stories, fortune cookie wisdom, and the use of sophisticated language.

      Major tip for consuming non-fiction

    1. Instead, they keep a Thing Table and a Data Table. Everything in Reddit is a Thing: users, links, comments, subreddits, awards, etc. Things keep common attribute like up/down votes, a type, and creation date. The Data table has three columns: thing id, key, value. There’s a row for every attribute. There’s a row for title, url, author, spam votes, etc. When they add new features they didn’t have to worry about the database anymore. They didn’t have to add new tables for new things or worry about upgrades. Easier for development, deployment, maintenance.

      Reddit uses only 2 tables, with the cost of not being able to use cool relational features

    2. Schema updates are very slow when you get bigger. Adding a column to 10 million rows takes locks and doesn’t work. They used replication for backup and for scaling. Schema updates and maintaining replication is a pain.

      Schema updates and replications are not easy to handle

    1. When I find a "get X free" button on a website that then asks for my email address, I like to search for the email of the company behind the website (sometimes it's on the legal page, or the privacy policy page) and I submit their email. I also make sure to check the "sign me up for the newsletter" box, to make sure the spammers get at least one of their messages. I don't really know why I do this, it seemed funny a few months ago when I started and now I do it out of habit. I now keep a list of emails from these spam sites, and subscribe them all to the various newsletters I find if I have 5 minutes.

      A little trick to spam the spammers :D

    1. Sit to do computer work. Sit using a height-adjustable, downward titling keyboard tray for the best work posture, then every 20 minutes stand for 8 minutes AND MOVE for 2 minutes. The absolute time isn’t critical but about every 20-30 minutes take a posture break and stand and move for a couple of minutes.  Simply standing is insufficient. Movement is important to get blood circulation through the muscles. And movement is FREE! Research shows that you don’t need to do vigorous exercise (e.g. jumping jacks) to get the benefits, just walking around is sufficient. So build in a pattern of creating greater movement variety in the workplace (e.g. walk to a printer, water fountain, stand for a meeting, take the stairs, walk around the floor, park a bit further away from the building each day).

      Bottom line: don't just sit or stand at work, but simply change your position often

  9. Jul 2022
    1. 9 evidence-based common denominators among the world’s centenarians that are believed to slow this aging process.

      List of 9 habits that will make you live longer (see text below)