2,377 Matching Annotations
  1. Last 7 days
    1. With this dataclass, I have an explicit description of what the function returns.

      Dataclasses give you a lot more clarity of what the function returns, in comparison to returning tuples or dictionaries

    1. Today is 9th Feb. The oldest segment – segment 100 – still can’t be deleted by the 7-day topic retention policy, because the most recent message in that segment is only 5 days old. The result is that they can see messages dating back to 28th January on this topic, even though the 28th Jan is now 12 days ago. In a couple of days, all the messages in segment 100 will be old enough to exceed the retention threshold so that segment file will be deleted.

      retention.ms set to 7 days doesn't guarantee that you will only see topic messages from the last 7 days. Think of it as a threshold that the Kafka broker can use to decide when messages are eligible for being automatically deleted.

  2. May 2023
    1. Host machine: docker run -it -p 8888:8888 image:version Inside the Container : jupyter notebook --ip --no-browser --allow-root Host machine access this url : localhost:8888/tree‌

      3 ways of running jupyter notebook in a container

  3. Apr 2023
    1. Armed with all this knowledge, we realise that we can construct an almost unlimited number of different path strings that all refer to the same directory

      See below the number of ways to define the same path on Windows

    2. UNC stands for Universal Naming Convention and describes paths that start with \\, commonly used to refer to network drives. The first segment after the \\ is the host, which can be either a named server or an IP address

      UNC paths on Windows

    3. On any Unix-derived system, a path is an admirably simple thing: if it starts with a /, it’s a path. Not so on Windows

      Paths on Windows are much more complex

    1. Em dash Works better than commas to set apart a unique idea from the main clause of a sentence
    2. The hyphen does not indicate a range of numbers, like a date range, which is the job of an en dash
    1. As I see it, there are two hard things about getting into flow: loading the state of the system / problem / abstractions into your head (i.e. filling your L1 and L2 cache with everything you need to know to work on the problem) and building momentum and confidence for yourself.

      Hard things for entering the flow

    1. To return to information overload: this means treating your "to read" pile like a river (a stream that flows past you, and from which you pluck a few choice items, here and there) instead of a bucket (which demands that you empty it). After all, you presumably don't feel overwhelmed by all the unread books in the British Library – and not because there aren't an overwhelming number of them, but because it never occurred to you that it might be your job to get through them all.

      Lesson on how to treat one's to-read list

    1. If you suddenly transform the social lives of girls, putting them onto platforms that prioritize social comparison and performance, platforms where we know that heavy users are three times more likely to be depressed than light users, might that have some impact on the mental health of girls around the world? We think so
    1. Kilka przykładów z wykorzystujących Conventional Commits:

      Examples of Conventional Commits (see the block below)

    2. Conventional Commits – type

      Conventional Commits types: - feat - fix - docs - chore - refactor - tests - perf - styles - ci - build - revert

    3. Commity o treści refactor, added XXX czy cr fixes, to smutna i nudna rzeczywistość.
    1. If you install a package with pip’s --user option, all its files will be installed in the .local directory of the current user’s home directory.

      One of the recommendations for Python multi-stage Docker builds. Thanks to pip install --user, the packages won't be spread across 3 different paths.

  4. Mar 2023
    1. rg . | fzf: Fuzzy search every line in every file

      Shortcut for searching files with ripgrep and fzf

    1. Spend your career hanging out with people you like working with, doing work you enjoy, trying new experiences, and having fewer regrets.That’s how you retire one day & make it to your deathbed a happy human.
    2. You don’t know what day it is. Monday feels like Saturday night fever.

      The #1 sign of a successful career

    1. Honestly, all the activation scripts do are:

      See the 4 steps below to understand what activating an environment in Python really does

    1. Using pex in combination with S3 for storing the pex files, we built a system where the fast path avoids the overhead of building and launching Docker images.Our system works like this: when you commit code to GitHub, the GitHub action either does a full build or a fast build depending on if your dependencies have changed since the previous deploy. We keep track of the set of dependencies specified in setup.py and requirements.txt.For a full build, we build your project dependencies into a deps.pex file and your code into a source.pex file. Both are uploaded to Dagster cloud. For a fast build we only build and upload the source.pex file.In Dagster Cloud, we may reuse an existing container or provision a new container as the code server. We download the deps.pex and source.pex files onto this code server and use them to run your code in an isolated environment.

      Fast vs full deployments

    1. "We could use this type of DB, or this other, or that other, and these are some pros and cons… And based on all these tradeoffs, I’ll use THAT type of DB."

      Example of how to recommend a single system

    2. The difference between coding and system design is the difference between retrieving and creating.Instead of finding (or “retrieving”) a solution, you are creating a solution. In this way, coding is akin to a science, while system design is more like an art.
    1. there’s the famous 2019 paper by Allcott et al. which found that having people deactivate Facebook for a while made them happier, while also making them socialize more and worry less about politics
    2. [There’s also] a big new study from Cambridge University, in which researchers looked at 84,000 people…and found that social media was strongly associated with worse mental health during certain sensitive life periods, including for girls ages 11 to 13…One explanation is that teenagers (and teenage girls in particular) are uniquely sensitive to the judgment of friends, teachers, and the digital crowd.
    3. First, they’re a distraction — the rise of smartphones was also the rise of “phubbing”, i.e. when people go on their phones instead of paying attention to the people around them.


    4. Text is a highly attenuated medium — it’s slow and cumbersome, and an ocean of nuance and tone and emotion is lost. Even video chat is a highly incomplete substitute for physical interaction. A phone doesn’t allow you to experience the nearby physical presence of another living, breathing body — something that we spent untold eons evolving to be accustomed to. And of course that’s even before mentioning activities like sex that are far better when physical contact is involved.

      It turns out that text/video chatting is not really a replacement for social interactions, yet, it leads to social isolation

    5. Yglesias argues that the progressive politics of the 2010s encouraged progressives to think of everything in catastrophic terms, making them less happy.
    1. You can freely replace SageMaker services with other components as your project grows and potentially outgrows SageMaker.

    1. This could be because the size can be misleading, there is on disk size, push/pull payload size, and sum of ungzipped tars. The size of the ungzipped tars is often used to represent the size of the image in Docker but the actual size on disk is dependent on the graph driver. From the registry perspective, the sum of the gzipped layers is most important because it represent what the registry is storing and what needs to be transferred.

      Docker image size on a local drive will be different

    1. Ultimately, after researching how we can overcome some inconveniences in Kubeflow, we decided to continue using it. Even though the UI could use some improvements in terms of clarity, we didn’t want to give up the advantages of configured CI/CD and containerization, which allowed us to use different environments. Also, for our projects, it is convenient to develop each ML pipeline in separate Git repositories.

      Kubeflow sounds like the most feature rich solution, whose main con is its UI and the setup process

    2. So, let’s sum up the pros and cons of each tool:

      Summary of pros/cons of Airflow, Kubeflow and Prefect

    3. The airflow environment must have all the libraries that are being imported in all DAGs. Without using containerization all Airflow pipelines are launched within the same environment. This leads to limitations in using exotic libraries or conflicting module versions for different projects.

      Main con of Airflow

    4. Prefect is a comparatively new but promising orchestration tool that appeared in 2018. The tool positions itself as a replacement for Airflow, featuring greater flexibility and simplicity. It is an open-source project; however, there is a paid cloud version to track workflows.
    5. Airflow has been one of the most popular orchestrating tools for several years.

      (see the graph above)

    6. An orchestration tool usually doesn’t do the hard work of translating and processing data itself, but tells other systems and frameworks what to do and monitors the status of the execution.

      Responsibility of the orchestration tool

    7. To this day, the field of machine learning does not have a single generally accepted approach to solving problems in terms of practical use of models.

      Business ¯\_(ツ)_/¯

    1. Well, in short, with iterators, the flow of information is one-way only. When you have an iterator, all you can really do call the __next__ method to get the very next value to be yielded. In contrast, the flow of information with generators is bidirectional: you can send information back into the generator via the send method.
      • Iterator ← one-way communication (can only yield stuff)
      • Generator ← bidirectional communication (can also accept information via the send method)
    1. So why aren't more people using Nim? I don't know! It's the closest thing to a perfect language that I've used by far.

      Nim sounds as the most ideal language when comparing to Python, Rust, Julia, C#, Swift, C

    1. Time to dive a little deeper to see what information the barcodes actually contain. For this I will break down the previously extracted information into smaller pieces.

      Information contained within boarding pass barcodes

    1. "For this campaign, we surveyed 930 Americans to explore their retirement plans. Among them, 16% were retired, 22% were still working, and 62% were retirees who had returned to work."So, 149 of those surveyed were retired. Of those 149, 25 (1 in 6) are considering returning to work. 13 of those want remote positions.
    1. Watching a TED talk gets you high for an hour. Watching an inspiring movie gets you thinking for a day. Reading a book keeps us motivated for about a week.
    1. Instagram was founded in 2010. The iPhone 4 was released then too—the first smartphone with a front-facing camera. In 2012 Facebook bought Instagram, and that’s the year that its user base exploded. By 2015, it was becoming normal for 12-year-old girls to spend hours each day taking selfies

      Main cause of global depression

    1. ServingRuntime - Templates for Pods that can serve one or more particular model formats. There are three "built in" runtimes that cover the out-of-the-box model types, custom runtimes can be defined by creating additional ones.


    1. cluster with 4096 IP addresses can deploy at most 1024 models assuming each InferenceService has 4 pods on average (two transformer replicas and two predictor replicas).

      Kubernetes clusters have a maximum IP address limitation

    2. According to Kubernetes best practice, a node shouldn't run more than 100 pods.
    3. Each model’s resource overhead is 1CPU and 1 GB memory. Deploying many models using the current approach will quickly use up a cluster's computing resource. With Multi-model serving, these models can be loaded in one InferenceService, then each model's average overhead is 0.1 CPU and 0.1GB memory.

      If I am not mistaken, the multi-model approach reduces the size by 90% in this case

    4. Multi-model serving is designed to address three types of limitations KServe will run into

      Benefits of multi-model serving

    5. While you get the benefit of better inference accuracy and data privacy by building models for each use case, it is more challenging to deploy thousands to hundreds of thousands of models on a Kubernetes cluster.

      With more separation, comes the problem of distribution

    1. I could be super-happy with any of Fira Code Retina, Hack, JetBrains Mono, or Inconsolata.

      Recommended fonts for 14" MacBook

    1. depending on how smart the framework is, you might find yourself installing Conda packages over and over again on every run. This is inefficient, even when using a faster installer like Mamba.
    2. there’s the bootstrapping problem: depending on the framework you’re using, you might need to install Conda and the framework driver before you can get anything going. A Docker image would come prepackaged with both, in addition to your code and its dependencies. So even if your framework supports Conda directly, you might want to use Docker anyway.
    3. Mlflow supports both Conda and Docker-based projects.
    4. The only thing that will depend on the host operating system is glibc, pretty much everything else will be packaged by Conda. So a pinned environment.yml or conda-lock.yml file is a reasonable alternative to a Docker image as far as having consistent dependencies.

      Conda can be a sufficient alternative to Docker

    5. To summarize, for the use case of Python development environments, here’s how you might choose alternatives to Docker:

      (see table below)

    6. Conda packages everything but the standard C library, from C libraries to the Python interpreter to command-line tools to compilers.
    1. So the short answer is to pick rebase or merge based on what you want your history to look like.

      Quick summary of rebase vs merge

    1. In summary, motivation is trying to feel like doing stuff. Discipline is doing it even if you don’t feel like it.

      Motivation vs Discipline

    1. response times, error rates, and request rates

      Sample metrics to monitor

    2. You can use authentication mechanisms such as OAuth2, JSON Web Tokens (JWT), or HTTP Basic Authentication to ensure that only authorized users or applications can access your API.
    3. In this example, we’ve defined an API endpoint called /predict_image that accepts a file upload using FastAPI's UploadFile type. When a client sends an image file to this endpoint, the file is read and its contents are passed to a preprocessing function that prepares the image for input into the model. Once the image has been preprocessed, the model can make a prediction on it, and the result can be returned to the client as a JSON response.

      Example above shows how to upload an image to an API endpoint with FastAPI.

      Example below is a bit more complex.

    4. For example, if you are using TensorFlow, you might save your model as a .h5 file using the Keras API. If you are using PyTorch, you might save your model as a .pt file using the torch.save() function. By saving your model as a file, you can easily load it into a deployment environment (such as FastAPI) and use it to make predictions on new images
  5. Feb 2023
    1. Regular Shell Commands

      Some of my favourite aliases: * 1. (already configured in my ohmyzsh) * 4. * 6. (already configured in my ohmyzsh) * 13. * 17.

    2. The set -x command is used to turn on debugging in a shell script and can also be used to test bash aliases. When set -x is used, the command and its arguments are printed to the standard error stream before the command is executed. This can be useful for testing aliases because it lets you see exactly what command is running and with what arguments.

      set -x

    3. 6. A function that checks if a website is up or down
    4. 5. A function that allows using sudo command without having to type a password every time
    5. Kubernetes Aliases

      Some of my favourite k8s aliases: * 2. * 3.

    6. Mac User Aliases

      Some of my favourite Mac aliases: * 1. * 11.

    7. A much more elegant approach, however, is to add them to an ~/.aliases like file and then source this file in your respective profile file assource ~/.aliases

      More elegant way to list aliases

    1. The way to get new ideas is to notice anomalies: what seems strange, or missing, or broken? You can see anomalies in everyday life (much of standup comedy is based on this), but the best place to look for them is at the frontiers of knowledge.Knowledge grows fractally. From a distance its edges look smooth, but when you learn enough to get close to one, you'll notice it's full of gaps. These gaps will seem obvious; it will seem inexplicable that no one has tried x or wondered about y. In the best case, exploring such gaps yields whole new fractal buds.

      Way to get new ideas

    1. A huge percentage of the data that gets processed is less than 24 hours old. By the time data gets to be a week old, it is probably 20 times less likely to be queried than from the most recent day. After a month, data mostly just sits there.
    2. Customer data sizes followed a power-law distribution. The largest customer had double the storage of the next largest customer, the next largest customer had half of that, etc.
    3. the vast majority of customers had less than a terabyte of data in total data storage. There were, of course, customers with huge amounts of data, but most organizations, even some fairly large enterprises, had moderate data sizes.
    4. Most applications do not need to process massive amounts of data. This has led to a resurgence in data management systems with traditional architectures; SQLite, Postgres, MySQL are all growing strongly, while “NoSQL” and even “NewSQL” systems are stagnating.

      SQL still shines over NoSQL

    5. The most surprising thing that I learned was that most of the people using “Big Query” don’t really have Big Data. Even the ones who do tend to use workloads that only use a small fraction of their dataset sizes.
  6. Jan 2023
    1. I think for some people that’s actually fine. Watching money compound gives them more pleasure than they would get spending it.
    2. I think what many people really want from money is the ability to stop thinking about money. To have enough money that they can stop thinking about it and focus on other stuff.
    3. To someone who grew up in an old-money affluent family, a Lamborghini might be a symbol of gaudy egotism; to those who grew up with nothing, the car might serve as the ultimate symbol that you’ve made it.
    4. How you spend money can reveal an existential struggle of what you find valuable in life, who you want to spend time with, why you chose your career, and the kind of attention you want from other people.
    1. I heard of a peculiar technique used by a company hiring a senior executive. In the final round of interviews, the candidates are taken to lunch, and during the meal something goes wrong—of course, this is all staged as a kind of test. Maybe someone walks up to the table and creates a scene, or perhaps the food delivered to the table is completely wrong. The purpose is to see how the candidate handles the situation. You fail the test if you over-react (for example, causing a scene yourself) or under-react (e.g., just letting things get out of control with no response).

      Test of handling unexpected problems

    2. If they cheat at small things, they will cheat at big things.
    3. Great listeners possess extraordinary skills of awareness and comprehension. They can assess situations with tremendous accuracy, and act in ways that maximize group effectiveness.
    4. I’ve met few great listeners in my entire life. But they are some of the most effective individuals I’ve ever encountered.

      Try to listen more rather than talk

    5. The flaw people hate most in others is usually their own greatest weakness.
    6. I’d prefer to take a glimpse at how they spend time and money. Those reveal what a person is really all about.
    7. His belief is that people’s character and ability to handle challenges are almost entirely formed during the first two decades of their life.
    8. People reveal their true natures when they deal with others who have no power and can never return a favor.
    9. A person’s choice of a spouse—or if they aren’t married, their closest lifelong partner—is much more revealing than anything they say or do in public.
    1. We are so conditioned to think that our lives revolve around great moments. But great moments often catch us unawares. When that woman hugged me and said that I had brought her a moment of joy, it was possible to believe that I had been placed on earth for the sole purpose of providing her with that last ride.


    1. These six are split across three operational meetings (each manager with their direct team, technical spec review, incident review), two developmental meetings (staff engineers, engineering managers) and finally a monthly engineering Q&A to learn what the organization is really thinking about.

      Six core organizational meetings

    2. My weekly team meetings always include my direct reports, and usually include our key partner in the Recruiting, People, and Finance teams. (I’ve also experimented with including engineers

      Ideas for who to include in a weekly team meeting

    1. Python — Json documents double as valid Python literals with minimal adaptation, and Python supports trailing commas and comments. It has variables and functions, powerful string interpolation, and json.dump built in. A self-contained Python file that prints json to stdout goes a long way!

      If you would like to template yaml, then rather do it in Nix or Python

    2. always quote all strings. (Indeed, you can tell that somebody is an experienced yaml engineer when they defensively quote all the strings.) We can choose to always use true and false rather than yes and no, and generally stay away from the arcane features.

      Advices for yaml users

    3. I think the main reason that yaml is so prevalent despite its pitfalls, is that for a long time it was the only viable configuration format.

      Yaml has strange issues, but is popular as it was one of the 1st options

    1. Especially when compared to a plastic tongue scraper, a stainless steel one is better at balancing Ayurvedic imbalances. Unlike those made with gold, silver, brass, or copper, stainless steel tongue scrapers resist corrosion and are suitable for all mind-body types, or doshas, according to Dr. Deepak Chopra.  

      Stainless steel tongue scrapers seems to be the best

    1. tl;dw (best DevOps tools in 2023)

      1. Low-budget cloud computing : Civo (close to Scaleway)
      2. Infrastructure and Service Management: Crossplane
      3. App Management - manifests : cdk8s (yes, not Kustomize or Helm)
      4. App Management - k8s operators: tie between Knative and Crossplane
      5. App Management - managed services: Google Cloud Run
      6. Dev Envs: Okteto (yeap, not GitPod)
      7. CI/CD: GitHub Actions (as it's simplest to use)
      8. GitOps (CD): Argo CD (wins with Flux due to its adoption rate)
      9. Policy Management: Kyverno (simpler to use than industry's most powerful tool: OPA / Gatekeeper)
      10. Observability: OpenTelemetry (instrumentation of apps), VictoriaMetrics (metrics - yes not Prometheus), Grafana / Loki (logs), Grafana Tempo (tracing), Grafana (dashboards), Robusta (alerting), Komodor (troubleshooting)
    1. Manolis Kellis: Origin of Life, Humans, Ideas, Suffering, and Happiness | Lex Fridman Podcast #123

      My summary:

      Biology: * Life = energy + self preservation * Neanderthals could be the reason why wolves/dogs are living closely with humans. Maybe in the past generations, dogs had no choice but to live with humans as they were scared of our power? * People evolved from the deep ocean (we're made in 70% of water). We're like transporting the sea with us now * Dolphins as mammals came back into the water * RNA invented proteins. Later RNA and proteins created DNA * Life is like any kind of self-reinforcement such as self-reinforcement of RNA molecules which lead to the evolution process * Europa (moon of Jupiter) already evolves some non-DNA life there. Life could exist in its under-ice ocean, perhaps in an environment similar to Earth's deep-ocean hydrothermal vents. It will be fascinating to get to know it

      Life: * Don't focus on goals but have a path to prevent the "rat race" sort of feeling * Almost every Hollywood movie has a happy ending. It prepares us, humans, really poorly for the bad times in life We need to read/watch more stories with a bad ending * Life is about accomplishing things, not about being happy all the time * As a parent, don't ask your kid if he's happy but what he's struggling to achieve * Most likely, we live on the best planet during the best time as the most beautiful mammals * If you understand yourself, you won't seek self-assurance in what other people think of you * It's hard to get to know your true self if you live all the time in the same location/environment and have the same friends who would like to have a stable image of you

    1. Face To Face with MIKE SHINODA


      Mike Shinoda discussing the idea from Stephen King's book "On Writing":

      "You should write every day, even if it's torturous, even if you hate it, you sit down and say: "this is not what I wanna be doing, I'm not in the mood, I've got too many things going on". But you should do it anyway, cause it keeps your creative muscles strong, and eventually, even on the bad day, you can come up with something that's remarkable and surprising that you can use later."

    1. Naive Recursive Approach O(2^n): ```python def fib(n): if n == 1 or n == 2: // base case return 1

          return fib(n-1) + fib(n-2)


      Dynamic Programming Solution O(n): python def fib(n): // assuming n > 2 seq = zeros(n) seq[0] = seq[1] = 1 for i from 2 to (n-1): seq[i] = seq[i-1] + seq[i-2] return seq[n-1]

    1. Thanks to its shortest orbit time, Mercury is the "mostest" closest planet to all the planets that orbits the sun

    1. Points from the comments in support of using Mac

      Reasons why macOS is better than Linux (see below)

    2. Points from the comments in support of using Linux

      Reasons why Linux is better than macOS (see below)

    1. There are also health and attitudinal consequences for managers who are laying people off as well as for the employees who remain. Not surprisingly, layoffs increase people’s stress.
    2. Layoffs increase the odds of suicide by two and a half times.
    3. The tech industry layoffs are basically an instance of social contagion, in which companies imitate what others are doing. If you look for reasons for why companies do layoffs, the reason is that everybody else is doing it.

      The main reason for tech layoffs

    1. Actually I’m not sure most people do this, I just hope I’m not the only one.

      You are not. I will hoard this blog post on my hypothes.is :)

    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

  7. 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)

  8. 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