- Feb 2021
-
towardsdatascience.com towardsdatascience.com
-
Next, imagine you have more models to deploy. You have three optionsLoad the models into the existing cluster — having one cluster serve all models.Spin up a new cluster to serve each model — having multiple clusters, one cluster serves one model.Combination of 1 and 2 — having multiple clusters, one cluster serves a few models.The first option would not scale, because it’s just not possible to load all models into one cluster as the cluster has limited resources.The second option will definitely work but it doesn’t sound like an effective process, as you need to create a set of resources every time you have a new model to deploy. Additionally, how do you optimize the usage of resources, e.g., there might be unutilized resources in your clusters that could potentially be shared by the rest.The third option looks promising, you can manually choose the cluster to deploy each of your new models into so that all the clusters’ resource utilization is optimal. The problem is you have to manuallymanage it. Managing 100 models using 25 clusters can be a challenging task. Furthermore, running multiple models in a cluster can also cause a problem as different models usually have different resource utilization patterns and can interfere with each other. For example, one model might use up all the CPU and the other model won’t be able to serve anymore.Wouldn’t it be better if we had a system that automatically orchestrates model deployments based on resource utilization patterns and prevents them from interfering with each other? Fortunately, that is exactly what Kubernetes is meant to do!
Solution for deploying lots of ML models
-
-
towardsdatascience.com towardsdatascience.com
-
If you’re running lots of deployments of models then it becomes important to record which versions were deployed and when. This is needed to be able to go back to specific versions. Model registries help with this problem by providing ways to store and version models.
Model Registries <--- way to handle multiple ML models in production
-
-
itnext.io itnext.io
-
As we mentioned before, the majority of machine learning implementations are based on running model serving as a REST service, which might not be appropriate for the high volume data processing or usage of the streaming system, which requires re coding/starting systems for model update, for example, TensorFlow or Flink. Model as Data is a great fit for big data pipelines. For online inference, it is quite easy to implement, you can store the model anywhere (S3, HDFS…), read it into memory and call it.
Model as Data <--- more appropriate approach than REST service for serving big data pipelines
-
The most common way to deploy a trained model is to save into the binary format of the tool of your choice, wrap it in a microservice (for example a Python Flask application) and use it for inference.
Model as Code <--- the most common way of deploying ML models
-
-
www.scrapingbee.com www.scrapingbee.com
-
Here is a quick recap table of every technology we discussed in this blog post.
Quick comparison of Python web scraping tools (socket, urlib3, requests, scrapy, selenium) [below this highlight]
-
-
www.hse.ru www.hse.ru
-
Can the Brain Resist the Group Opinion?
- In a study of 20 participant’s brain activity and opinion-forming, researchers find that people are likely to conform to group opinion if their own is different.
- It’s possible that the brain foresees potential disagreements in the future, and subconsciously drives us to conform to popular opinions.
- This process involves the superior parietal cortex, a brain area that retrieves memories.
- The study suggests that the opinion of others literally changes our brain.
Tags
Annotators
URL
-
-
www.weave.works www.weave.works
-
The benefits of applying GitOps best practices are far reaching and provide:
The 6 provided benefits also explain GitOps in simple terms
-
GitOps is a way to do Kubernetes cluster management and application delivery. It works by using Git as a single source of truth for declarative infrastructure and applications. With GitOps, the use of software agents can alert on any divergence between Git with what's running in a cluster, and if there's a difference, Kubernetes reconcilers automatically update or rollback the cluster depending on the case. With Git at the center of your delivery pipelines, developers use familiar tools to make pull requests to accelerate and simplify both application deployments and operations tasks to Kubernetes.
Other definition of GitOps (source):
GitOps is a way of implementing Continuous Deployment for cloud native applications. It focuses on a developer-centric experience when operating infrastructure, by using tools developers are already familiar with, including Git and Continuous Deployment tools.
Tags
Annotators
URL
-
-
docs.docker.com docs.docker.com
-
It was actually very common to have one Dockerfile to use for development (which contained everything needed to build your application), and a slimmed-down one to use for production, which only contained your application and exactly what was needed to run it. This has been referred to as the “builder pattern”.
Builder pattern - maintaining two Dockerfiles: 1st for development, 2nd for production. It's not an ideal solution and we shall aim for multi-stage builds.
Multi-stage build - uses multiple FROM commands in the same Dockerfile. The end result is the same tiny production image as before, with a significant reduction in complexity. You don’t need to create any intermediate images and you don’t need to extract any artifacts to your local system at all
-
-
docs.docker.com docs.docker.com
-
volumes are often a better choice than persisting data in a container’s writable layer, because a volume does not increase the size of the containers using it, and the volume’s contents exist outside the lifecycle of a given container.
Aim for using volumes instead of bind mounts in Docker. Also, if your container generates non-persistent data, consider using a tmpfs mount to avoid storing the data permanently
One case where it is appropriate to use bind mounts is during development, when you may want to mount your source directory or a binary you just built into your container. For production, use a volume instead, mounting it into the same location as you mounted a bind mount during development.
-
- Jan 2021
-
-
after 4 decades, we can observe that not much has changed beside learning how to measure the “figuring out” time.
Comparing 1979 to 2018 results, we spend nearly the same amount of time for maintenance/comprehension of the code:
-
1979 in a book by Zelkowitz, Shaw, and Gannon entitled Principles of software engineering and design. It said that most of the development time was spent on maintenance (67%).
Where software developers spent most of their in 1979:
-
-
news.ycombinator.com news.ycombinator.com
-
I can't recommend the Data Engineer career enough for junior developers. It's how I started and what I pursued for 6 years (and I would love doing it again), and I feel like it gave me such an incredible foundation for future roles :- Actually big data (so, not something you could grep...) will trigger your code in every possible way. You quickly learn that with trillions of input, the probabily to reach a bug is either 0% or 100%. In turn, you quickly learn to write good tests.- You will learn distributed processing at a macro level, which in turn enlighten your thinking at a micro level. For example, even though the order of magnitudes are different, hitting data over network versus on disk is very much like hitting data on disk versus in cache. Except that when the difference ends up being in hours or days, you become much more sensible to that, so it's good training for your thoughts.- Data engineering is full of product decisions. What's often called data "cleaning" is in fact one of the import product decisions made in a company, and a data engineer will be consistently exposed to his company product, which I think makes for great personal development- Data engineering is fascinating. In adtech for example, logs of where ads are displayed are an unfiltered window on the rest of humanity, for the better or the worse. But it definitely expands your views on what the "average" person actually does on its computer (spoiler : it's mainly watching porn...), and challenges quite a bit what you might think is "normal"- You'll be plumbing technologies from all over the web, which might or might not be good news for you.So yeah, data engineering is great ! It's not harder than other specialties for developers, but imo, it's one of the fun ones !
Many reasons why Data Engineer is a great starting position for junior developers
Tags
Annotators
URL
-
-
pythonspeed.com pythonspeed.com
-
We recommend the Alpine image as it is tightly controlled and small in size (currently under 5 MB), while still being a full Linux distribution. This is fine advice for Go, but bad advice for Python, leading to slower builds, larger images, and obscure bugs.
Alipne Linux isn't the most convenient OS for Python, but fine for Go
-
If a service can run without privileges, use USER to change to a non-root user. This is excellent advice. Running as root exposes you to much larger security risks, e.g. a CVE in February 2019 that allowed escalating to root on the host was preventable by running as a non-root user. Insecure: However, the official documentation also says: … you should use the common, traditional port for your application. For example, an image containing the Apache web server would use EXPOSE 80. In order to listen on port 80 you need to run as root. You don’t want to run as root, and given pretty much every Docker runtime can map ports, binding to ports <1024 is completely unnecessary: you can always map port 80 in your external port. So don’t bind to ports <1024, and do run as a non-privileged user.
Due to security reasons, if you don't need the root privileges, bind to ports >=1024
-
Multi-stage builds allow you to drastically reduce the size of your final image, without struggling to reduce the number of intermediate layers and files. This is true, and for all but the simplest of builds you will benefit from using them. Bad: However, in the most likely image build scenario, naively using multi-stage builds also breaks caching. That means you’ll have much slower builds.
Multi-stage builds claim to reduce image size but it can also break caching
-
layer caching is great: it allows for faster builds and in some cases for smaller images. Insecure: However, it also means you won’t get security updates for system packages. So you also need to regularly rebuild the image from scratch.
Layer caching is great for speeding up the processes, but it can bring some security issues
-
-
www.tecton.ai www.tecton.ai
-
Different data sources are better suited for different types of data transformations and provide access to different data quantities at different freshnesses
Comparison of data sources
- Data warehouses / lakes (such as Snowflake or Redshift) tend to hold a lot of information but with low data freshness (hours or days). They can be a gold mine, but are most useful for large-scale batch aggregations with low freshness requirements, such as “number of lifetime transactions per user.”
- Transactional data sources (such as MongoDB or MySQL) usually store less data at a higher freshness and are not built to process large analytical transformations. They’re better suited for small-scale aggregations over limited time horizons, like the number of orders placed by a user in the past 24 hrs.
- Data streams (such as Kafka) store high-velocity events and provide them in near real-time (within milliseconds). In common setups, they retain 1-7 days of historical data. They are well-suited for aggregations over short time-windows and simple transformations with high freshness requirements, like calculating that “trailing count over the last 30 minutes” feature described above.
- Prediction request data is raw event data that originates in real-time right before an ML prediction is made, e.g. the query a user just entered into the search box. While the data is limited, it’s often as “fresh” as can be and contains a very predictive signal. This data is provided with the prediction request and can be used for real-time calculations like finding the similarity score between a user’s search query and documents in a search corpus.
-
MLOps platforms like Sagemaker and Kubeflow are heading in the right direction of helping companies productionize ML. They require a fairly significant upfront investment to set up, but once properly integrated, can empower data scientists to train, manage, and deploy ML models.
Two popular MLOps platforms: Sagemaker and Kubeflow
-
…Well, deploying ML is still slow and painful
How the typical ML production pipeline may look like:
Unfortunately, it ties hands of Data Scientists and takes a lot of time to experiment and eventually ship the results to production
Tags
Annotators
URL
-
-
www.inverse.com www.inverse.com
-
Music gives the brain a crucial connective advantage
- Music’s benefits for the brain aren’t new, and this study provides further evidence that musical brains have better neural networks.
- In fact, any challenging skill that requires intensive, long-time training can improve how your brain is interconnected - even if you’re an adult.
- These findings come from a study of 150 brain scans with machine learning aid, where they counted the brain connections.
- All musician brains were a lot more structurally and functionally connected than non-musicians.
-
-
www.mihaileric.com www.mihaileric.com
-
Downloading a pretrained model off the Tensorflow website on the Iris dataset probably is no longer enough to get that data science job. It’s clear, however, with the large number of ML engineer openings that companies often want a hybrid data practitioner: someone that can build and deploy models. Or said more succinctly, someone that can use Tensorflow but can also build it from source.
Who the industry really needs
-
When machine learning become hot 🔥 5-8 years ago, companies decided they need people that can make classifiers on data. But then frameworks like Tensorflow and PyTorch became really good, democratizing the ability to get started with deep learning and machine learning. This commoditized the data modelling skillset. Today, the bottleneck in helping companies get machine learning and modelling insights to production center on data problems.
Why Data Engineering became more important
-
Overall the consolidation made the differences even more pronounced! There are ~70% more open data engineer than data scientist positions. In addition, there are ~40% more open ML engineer than data scientist positions. There are also only ~30% as many ML scientist as data scientist positions.
Takeaway from the analysis:
- ~70% more open data engineer than data scientist positions
- ~40% more open ML engineer than data scientist positions
- only ~30% as many ML scientist as data scientist positions
-
Data scientist: Use various techniques in statistics and machine learning to process and analyse data. Often responsible for building models to probe what can be learned from some data source, though often at a prototype rather than production level. Data engineer: Develops a robust and scalable set of data processing tools/platforms. Must be comfortable with SQL/NoSQL database wrangling and building/maintaining ETL pipelines. Machine Learning (ML) Engineer: Often responsible for both training models and productionizing them. Requires familiarity with some high-level ML framework and also must be comfortable building scalable training, inference, and deployment pipelines for models. Machine Learning (ML) Scientist: Works on cutting-edge research. Typically responsible for exploring new ideas that can be published at academic conferences. Often only needs to prototype new state-of-the-art models before handing off to ML engineers for productionization.
4 different data profiles (and more): consolidated:
-
I scraped the homepage URLs of every YC company since 2012, producing an initial pool of ~1400 companies. Why stop at 2012? Well, 2012 was the year that AlexNet won the ImageNet competition, effectively kickstarting the machine learning and data-modelling wave we are now living through. It’s fair to say that this birthed some of the earliest generations of data-first companies. From this initial pool, I performed keyword filtering to reduce the number of relevant companies I would have to look through. In particular, I only considered companies whose websites included at least one of the following terms: AI, CV, NLP, natural language processing, computer vision, artificial intelligence, machine, ML, data. I also disregarded companies whose website links were broken.
How data was collected
-
There are 70% more open roles at companies in data engineering as compared to data science. As we train the next generation of data and machine learning practitioners, let’s place more emphasis on engineering skills.
The resulting 70% is based on a real analysis
-
When you think about it, a data scientist can be responsible for any subset of the following: machine learning modelling, visualization, data cleaning and processing (i.e. SQL wrangling), engineering, and production deployment.
What tasks can Data Scientist be responsible for
-
-
marksaroufim.substack.com marksaroufim.substack.com
-
A big reason for GPUs popularity in Machine Learning is that they are essentially fast matrix multiplication machines. Deep Learning is essentially matrix multiplication.
Deep Learning is mostly about matrix multiplication
-
Unity ML agents is a way for you to turn a video game into a Reinforcement Learning environment.
Unity ML agents is a great way to practice RNN
-
Haskell is the best functional programming language in the world and Neural Networks are functionsThis is the main motivation behind Hasktorch which lets you discover new kinds of Neural Network architectures by combining functional operators
Haskell is a great solution for neural networks
-
I can’t think of a single large company where the NLP team hasn’t experimented with HuggingFace. They add new Transformer models within days of the papers being published, they maintain tokenizers, datasets, data loaders, NLP apps. HuggingFace has created multiple layers of platforms that each could be a compelling company in its own right.
HuggingFace company
-
Keras is a user centric library whereas Tensorflow especially Tensorflow 1.0 is a machine centric library. ML researchers think in terms of terms of layers, automatic differentiation engines think in terms of computational graphs.As far as I’m concerned my time is more valuable than the cycles of a machine so I’d rather use something like Keras.
Why simplicity of Keras is important
-
A matrix is a linear map but linear maps are far more intuitive to think about than matrices
-
Graduate Student Descent
:)
-
BERT engineer is now a full time job. Qualifications include:Some bash scriptingDeep knowledge of pip (starting a new environment is the suckier version of practicing scales)Waiting for new HuggingFace models to be releasedWatching Yannic Kilcher’s new Transformer paper the day it comes outRepeating what Yannic said at your team reading group
Structure of a BERT engineer job
-
“Useful” Machine Learning research on all datasets has essentially reduced to making Transformers faster, smaller and scale to longer sequence lengths.
Typical type of advancement we see in ML
-
The best people in empirical fields are typically those who have accumulated the biggest set of experiences and there’s essentially two ways to do this.Spend lots of time doing itGet really good at running many concurrent experiments
How to derive with the best research
-
I often get asked by young students new to Machine Learning, what math do I need to know for Deep Learning and my answer is Matrix Multiplication and Derivatives of square functions.
Deep Neural Networks are a composition of matrix multiplications with the occasional non-linearity in between
-
-
marksaroufim.substack.com marksaroufim.substack.com
-
Slack is the best digital watercooler in the world but it’s a terrible place to collaborate - long winded disagreements should happen over Zoom and collaborations should happen in a document instead.
What Slack is good for and for what it's not
-
Even if you really love meetings, you can only attend about 10h of them per day but a single well written document will continue being read even while you’re sleeping.It’s unlikely that Christianity would have garnered millions of followers if Jesus Christ had to get on a “quick call” with each new potential prospect.Oral cultures don’t scale.
Oral cultures don't scale
-
Friendship doesn’t scale easily to large groups and especially not forcibly. Friendships happen spontaneously at smaller scales.
That's why modern 20+ remote group lunches aren't making it easier to build friendships
-
Remote work forces a writing culture. In person work encourages an oral culture
-
-
www.bbc.com www.bbc.com
-
He attributes his longevity to being an avid reader, his spirituality, diet, frequent exercise, steadfast persistence and discipline.
104-year-old PhD student advices to:
- eat a lot of fruits
- take cold showers
- have some time to walk around and think
- pay attention to discipline
- study, study, study
-
-
www.gov.pl www.gov.pl
-
- To biznes, eksperci i obywatele są prawdziwymi twórcami polskiego ekosystemu AI. Państwo powinno przede wszystkim ich wspierać. W najbliższym czasie planujemy serię otwartych spotkań z każdą z tych grup, na których będziemy wspólnie pracować nad uszczegółowieniem – zapowiedział Antoni Rytel, wicedyrektor GovTech Polska. - Oprócz tego, specjalne zespoły będą zapewniać ciągłe wsparcie wszystkim tym podmiotom. Uruchomimy też kanał bieżącego zgłaszania pomysłów technicznych i organizacyjnych wspierających rozwój AI w naszym kraju – dodał.
The first steps of developing AI in Poland
-
W okresie krótkoterminowym decydujące dla sukcesu polityki sztucznej inteligencji będzie ochrona talentów posiadających zdolności modelowania wiedzy i analityki danych w systemach AI oraz wsparcie dla rozwoju własności intelektualnej wytwarzanej w naszym kraju – dodaje Robert Kroplewski, pełnomocnik ministra cyfryzacji ds. społeczeństwa informacyjnego.
AI talents will be even more demanded in Poland
-
Dokument określa działania i cele dla Polski w perspektywie krótkoterminowej (do 2023 r.), średnioterminowej (do 2027 r.) i długoterminowej (po 2027 r.). Podzieliliśmy je na sześć obszarów: AI i społeczeństwo – działania, które mają uczynić z Polski jednego z większych beneficjentów gospodarki opartej na danych, a z Polaków - społeczeństwo świadome konieczności ciągłego podnoszenia kompetencji cyfrowych. AI i innowacyjne firmy – wsparcie polskich przedsiębiorstw AI, m.in. tworzenie mechanizmów finansowania ich rozwoju, współpracy start up-ów z rządem. AI i nauka – wsparcie polskiego środowiska naukowego i badawczego w projektowaniu interdyscyplinarnych wyzwań lub rozwiązań w obszarze AI, m.in. działania mające na celu przygotowanie kadry ekspertów AI. AI i edukacja – działania podejmowane od kształcenia podstawowego, aż do poziomu uczelni wyższych – programy kursów dla osób zagrożonych utratą pracy na skutek rozwoju nowych technologii, granty edukacyjne. AI i współpraca międzynarodowa – działania na rzecz wsparcia polskiego biznesu w zakresie AI oraz rozwój technologii na arenie międzynarodowej. AI i sektor publiczny – wsparcie sektora publicznego w realizacji zamówień na rzecz AI, lepszej koordynacji działań oraz dalszym rozwoju takich programów jak GovTech Polska.
AI priorities in Poland
-
Rozwój AI w Polsce zwiększy dynamikę PKB o nawet 2,65 pp w każdym roku. Do 2030 r. pozwoli zautomatyzować ok. 49% czasu pracy w Polsce, generując jednocześnie lepiej płatne miejsca pracy w kluczowych sektorach.
Prediction of developing AI in Poland
-
-
-
Elon Musk declared that we are marching towards a near future without language, in which we’ll be able to communicate directly mind-to-mind through neural links. ‘Our brain spends a lot of effort compressing a complex concept into words,’ he said in a recent interview, ‘and there’s a lot of loss of information that occurs when compressing a complex concept into words.’
Elon Musk on the future of talking
-
Mute inner speech can appear as an inner dialogue as well, but its truncated form encourages us to create a ‘secret’ abbreviated language and deploy mental shortcuts. By forcing us to articulate ourselves more fully, self-talk summons up the image of an imagined listener or interrogator more vividly. In this way, it allows us to question ourselves more critically by adopting an external perspective on our ideas, and so to consider shortcomings in our arguments – all while using our own speech.
The essential difference between mute speach and self-talk
-
Contemporary theories in cognition and the science of learning reaffirm Kleist’s speculations, and show how self-talk contributes not only to motivation and emotional regulation, but also to some higher cognitive functions such as developing metacognition and reasoning.
Self-talk brings lots of benefits
-
It’s no coincidence that we walk when we need to think: evidence shows that movement enhances thinking and learning, and both are activated in the same centre of motor control in the brain. In the influential subfield of cognitive science concerned with ‘embodied’ cognition, one prominent claim is that actions themselves are constitutive of cognitive processes. That is, activities such as playing a musical instrument, writing, speaking or dancing don’t start in the brain and then emanate out to the body as actions; rather, they entail the mind and body working in concert as a creative, integrated whole, unfolding and influencing each other in turn. It’s therefore a significant problem that many of us are trapped in work and study environments that don’t allow us to activate these intuitive cognitive muscles, and indeed often even encourage us to avoid them.
Symbiosis of movement and thinking
-
-
towardsdatascience.com towardsdatascience.com
-
Did you know that everything you can do in VBA can also be done in Python? The Excel Object Model is what you use when writing VBA, but the same API is available in Python as well.See Python as a VBA Replacement from the PyXLL documentation for details of how this is possible.
We can replace VBA with Python
-
You can write Excel worksheet functions in your Jupyter notebook too. This is a really great way of trying out ideas without leaving Excel to go to a Python IDE.
We can define functions in Python to later use in Excel
-
Use the magic function “%xl_get” to get the current Excel selection in Python. Have a table of data in Excel? Select the top left corner (or the whole range) and type “%xl_get” in your Jupyter notebook and voila! the Excel table is now a pandas DataFrame.
%xl_get
lets us get the current Excel selection in Python -
to run Python code in Excel you need the PyXLL add-in. The PyXLL add-in is what lets us integrate Python into Excel and use Python instead of VBA
PyXLL lets us use Python/Jupyter Notebooks in Excel
-
-
www.quantamagazine.org www.quantamagazine.org
-
New Quantum Algorithms Finally Crack Nonlinear Equations
- We can’t predict the weather, among many other complex issues, because computers still can’t solve nonlinear equations.
- But this might change soon, as two different research teams created algorithms that can be used for nonlinear modelling on quantum computers.
- Their techniques still need refining, and won’t be real-world ready for years, but these studies are another stepping stone towards truly useful quantum algorithms.
-
-
nulldata.substack.com nulldata.substack.com
-
2020 is a strong year for NLP. Companies like Hugging Face 🤗 , spaCy, Rasa became stronger and also more educational which ultimately drove a huge NLP revolution (at even Industry-level which is quite hard usually).
Up till 2020, CV had the most attention. Nowadays, it's NLP.
Other hot topics of 2020:
- Data Science / AI / ML Web App Building (streamlit...)
- GPT-3
- Auto ML
- ML Ops (ML Flow, KubeFlow...)
- FastAI (Pytorch Library)
- Interpretable Machine Learning (fancily known as eXplainable AI)
- GANs
- First-Order Motion
- On-Device ML (tensorflow.js / coreML)
-
- Dec 2020
-
www.bmj.com www.bmj.com
-
Teen dislike of physical appearance strong predictor of depression in early adulthood
Summary of the article:
- Teens unhappy about their looks are up to 285% more likely to develop depression later in life.
- This finding comes from a long-term study of ~4000 children born in 1991/2.
- At age 14, both boys and girls were mildly satisfied with their bodies, but girls were more dissatisfied.
- Body dissatisfaction at 14 predicted depressive episodes at 18, with the boys at much greater risk of severe depressive episodes.
- Study authors conclude that body dissatisfaction should be seen as a public health issue, and reducing it could lead to better mental health outcomes for young adults.
-
-
-
To the brain, reading computer code is not the same as reading language Neuroscientists find that interpreting code activates a general-purpose brain network, but not language-processing centers.
Summary of the article:
- Understanding code is neither done by language centers, nor by mathematical centers of the brain — it’s a whole different ball game.
- This comes from a researcher who’s studying how different cognitive functions relate to language processing parts of the brain.
- The study involved young programmers who analysed code while their brains were scanned.
- People either say that great coders are great at language, or great at maths - neither seems to be true, and there is no single specialized area that lights up from coding.
- The test activated the multiple demand network in participants’ brains, a wide network for performing mentally challenging tasks.
-
-
-
blue light has been found to have the strongest impact on your natural production of melatonin, filtering it out when you’re using devices at night can make it easier to fall asleep, according to a recent study published in the Journal of Applied Psychology. But even here, experts see a more mundane connection between devices and comfort: “Most of the negative impact of electronics on sleep and on your circadian clock is not due to the light. It’s due to the fact that these things are engineered to keep you awake and entertained and engaged in what you’re doing for an extended period of time,”
Finding it hard to sleep might be either because of the blue light or the psychological effect of screens on us
-
Reynolds encourages following the 20-20-20 rule: “Take a 20-second break to view something 20 feet away every 20 minutes.”
20-20-20 rule (screen-free break technique)
-
The American Academy of Ophthalmology asserts that dry eyes are more likely to be the result of decreased blinking. The AAO asserts that people blink 15 times per minute in normal circumstances (“normal” being relative, here) but only five to seven times per minute while staring at a screen. Solutions for preventing dry eyes can be as simple as reminding yourself to blink, or using artificial tear drops throughout your day as a preventive measure. It’s also possible that you’re blinking even less if your superclose to your screen.
The true reason of dry eyes: rare blinking
-
-
news.ycombinator.com news.ycombinator.com
-
Once one has learned how to concentrate, the next thing to learn is to be able to concentrate on the right thing.
Importance of concentration on the right thing
-
-
-
Review your own code first Write a clear changelist description Automate the easy stuff Answer questions with the code itself Narrowly scope changes Separate functional and non-functional changes Break up large changelists Respond graciously to critiques Be patient when your reviewer is wrong Communicate your responses explicitly Artfully solicit missing information Award all ties to your reviewer Minimize lag between rounds of review
13 best practices for participating in a code review when you're the author
-
-
stackoverflow.blog stackoverflow.blog
-
TFX and Tensorflow run anywhere Python runs, and that’s a lot of places
You can run your Tensorflow models on:
- web pages with Tensorflow.js
- mobile/IoT devices with Tensorflow lite
- in the cloud
- even on-prem
-
since TFX and Tensorflow were built by Google, it has first-class support in the Google Cloud Platform.
TFX and Tensorflow work well with GCP
-
After consideration, you decide to use Python as your programming language, Tensorflow for model building because you will be working with a large dataset that includes images, and Tensorflow Extended (TFX), an open-source tool released and used internally at Google, for building your pipelines.
Sample tech stack of a ML project:
- Python <--- programming
- Tensorflow <--- model building (large with images)
- TFX (Tensorflow Extended) <--- pipeline builder (model analysis, monitoring, serving, ...)
-
These components has built-in support for ML modeling, training, serving, and even managing deployments to different targets.
Components of TFX:
-
Most data scientists feel that model deployment is a software engineering task and should be handled by software engineers because the required skills are more closely aligned with their day-to-day work. While this is somewhat true, data scientists who learn these skills will have an advantage, especially in lean organizations. Tools like TFX, Mlflow, Kubeflow can simplify the whole process of model deployment, and data scientists can (and should) quickly learn and use them.
-
TFX Component called TensorFlow Model Analysis (TFMA) allows you to easily evaluate new models against current ones before deployment.
TFMA component of TFX seems to be its core functionality
-
In general, for smaller businesses like startups, it is usually cheaper and better to use managed cloud services for your projects.
Advice for startups working with ML in production
-
This has its pros and cons and may depend on your use case as well. Some of the pros to consider when considering using managed cloud services are:
Pros of using cloud services:
- They are cost-efficient
- Quick setup and deployment
- Efficient backup and recovery Cons of using cloud services:
- Security issue, especially for sensitive data
- Internet connectivity may affect work since everything runs online
- Recurring costs
- Limited control over tools
-
The data is already in the cloud, so it may be better to build your ML system in the cloud. You’ll get better latency for I/O, easy scaling as data becomes larger (hundreds of gigabytes), and quick setup and configuration for any additional GPUs and TPUs.
If the data for your project is already in the cloud, try to stick to cloud solutions
-
ML projects are never static. This is part of engineering and design that must be considered from the start. Here you should answer questions like:
We need to prepare for these 2 things in ML projects:
- How do we get feedback from a model in production?
- How do you set up CD?
-
The choice of framework is very important, as it can decide the continuity, maintenance, and use of a model. In this step, you must answer the following questions:
Questions to ask before choosing a particular tool/framework:
- What is the best tool for the task at hand?
- Are the choice of tools open-source or closed?
- How many platforms/targets support the tool?
Try to compare the tools based on:
- Efficiency
- Popularity
- Support
-
These questions are important as they will guide you on what frameworks or tools to use, how to approach your problem, and how to design your ML model.
Critical questions for ML projects:
- How is your training data stored?
- How large is your data?
- How will you retrieve the data for training?
- How will you retrieve data for prediction?
-
you should not invest in an ML project if you have no plan to put it in production, except of course when doing pure research.
Tip #1 when applying ML in business
-
The difficulties in model deployment and management have given rise to a new, specialized role: the machine learning engineer. Machine learning engineers are closer to software engineers than typical data scientists, and as such, they are the ideal candidate to put models into production.
Why Machine Learning Engineer role exists
-
The goal of building a machine learning model is to solve a problem, and a machine learning model can only do so when it is in production and actively in use by consumers. As such, model deployment is as important as model building.
Model deployment is as important as model building
-
Venturebeat reports that 87% of data science projects never make it to production, while redapt claims it is 90%.
-
-
stackoverflow.blog stackoverflow.blog
-
It was great for three things: motivation (people used what I built!)feedback (they sent me the bugs they encountered)accountability (from the moment I tweeted about this publicly, I really felt like that I’d have to finish this project… otherwise, it would be embarrassing)
Three positive things that might come after publishing your beta software: motivation, feedback and accountability
-
Turning my Jupyter-compatible Python code into Flask-compatible Python code took dozens of hours. I ran into small bugs and errors
That's how I always expected Python notebook development to be
-
I had a proof-of-concept. It was great, because when you do a project, there’s always that small uncertainty that your idea is stupid and it can’t be done at all. But when you have a working prototype, all that insecurity is gone and it becomes much easier to go on.
So true
-
The point is: the initial idea should be simple—because even that will turn out to be pretty complex.
Main point to consider when starting a new project
-
The problem with hobby projects is that they don’t pay very well. At least, compared to real-life projects. But hobby projects have a lot of cool advantages that we tend to forget.
With hobby projects:
- you can learn what you want
- you've a full control over the tech stack
- you can add the project to your CV
-
The user has a starting stack: 10,000 units of play money.In each round, she gets a deal. Something like “You have an x% probability to win y amount of money.”She can decide how much of her play money she wants to risk.And the goal is to win as much as she can in 50 rounds.
Great idea for a 1st game dev project
-
-
-
$ git log --grep "commit message search"
git blame: searching commit messages themselves with grep
-
$ git log -S "deleted code" -p
git blame: way to find deleted piece of code
-
$ git log -S "some code" -p app/models/user.rb
git blame: limiting search to a specific folder
-
$ git log -G "REGEX HERE"
git blame: searching with a regular expression
-
Find the entire history of a snippet of code with git log -S Include -p to see the diff as well as the commit messages Include --reverse to see the commit that introduced the code listed first Scope search to specific folders or files by including a path Search with a regular expression using git log -G Search commit messages using git log --grep
Summary of
git blame
searching tips -
If you include the -p option (short for --patch) you get the full diff alongside the commit messages
git log -S "method_name" -p
<--- get the full dif with commit messages to have more context -
Say you want to find the first commit that introduced a particular class, method or snippet of code. You can use the pickaxe combined with the --reverse option to get the commits in reverse-chronological order so the commit where the code first appears is listed at the top
git log -S "method_name" -p --reverse
<--- get commits in reverse-chronological order -
git log -S (also known as “the pickaxe”) is how you take things to the next level. It lets you search for all commits that contain a given string:
git log -S
<--- search for commits with a given string -
git blame is too coarse: it reports against the whole line. If the most recent change isn’t related to the part of the line you’re interested, you’re out of luck. git blame is too shallow: it only reports a single change; the most recent one. The story of the particular piece of code you’re interested in may have evolved over several commits. git blame is too narrow: it only considers the file you are running blame against. The code you are interested in may also appear in other files, but to get the relevant commits on those you’ll need to run blame several times.
Disadvantages of
git blame
command (it's like limiting ourselves to 2D view instead of 3D
-
-
-
BlackArch is a Linux distribution designed for penetration testing and security research. You can think of it like Kali Linux, with the exception of being based on Arch Linux. Its official repositories contain more than +2500 various penetration testing tools, and hence it can be considered a very good option for anyone wishing to explore this field and try to hack their own phones/routers/devices during the quarantine time.
BlackArch <--- kind of Kali Linux based on Arch Linux
-
Redstar OS is a Fedora-based Linux distribution that was developed to empower all computers running in North Korea. Researchers from various independent teams verified that the distribution contains huge spying mechanisms and logging capability, beside some modified kernel modules to record everything done on the OS.
Redstar OS <--- Linux distribution for North Korea
-
- Nov 2020
-
mythirdbrain.substack.com mythirdbrain.substack.com
-
You can have more experiences in life by simply paying more attention. What you pay attention to is going to be your life. It's so basic that it hits me.
The point of attention
-
Everyone hates the feeling of having wasted their time doing nothing. But, even when I am doing many things in a day, when I am on autopilot, which is to say doing something for the sake of just completing them, I don't feel fulfilled. This makes total sense because the day wasn't filled with any intentionality. There was no mind.
Try to act with more intentions
-
Attention is like energy in that without it no work can be done, and in doing work it is dissipated. We create ourselves by how we invest this energy. Memories, thoughts, and feelings are all shaped by how we use it. And it is an energy under our control, to do with as we please; hence, attention is our most important tool in the task of improving the quality of experience.
Attention is really important
-
-
-
Automation suggests that a sysadmin has invented a system to cause a computer to do something that would normally have to be done manually. In automation, the sysadmin has already made most of the decisions on what needs to be done, and all the computer must do is execute a "recipe" of tasks. Orchestration suggests that a sysadmin has set up a system to do something on its own based on a set of rules, parameters, and observations. In orchestration, the sysadmin knows the desired end result but leaves it up to the computer to decide what to do.
Most intuitive difference between automation and orchestration
-
For instance, automation usually involves scripting, often in Bash or Python or similar, and it often suggests scheduling something to happen at either a precise time or upon a specific event. However, orchestration often begins with an application that's purpose-built for a set of tasks that may happen irregularly, on demand, or as a result of any number of trigger events, and the exact results may even depend on a variety of conditions.
Automation is like a subset of orchestration.
Orchestration suggest moving many parts, and automation usually refers to a singular task or a small number of strongly related tasks.
-
-
-
Start to parse the HTML Fetch external resources Parse the CSS and build the CSSOM Execute the JavaScript Merge DOM and CSSOM to construct the render tree Calculate layout and paint
6 steps of how browser renders a web page
Tags
Annotators
URL
-
-
betterexplained.com betterexplained.com
-
If we’re honest, we’ll admit that we forget 95% of what we learn in a class. What sticks? A scattered analogy or diagram.
-
Analogy – ? Diagram – Google Images Example – Khan Academy for practice problems Plain-English – Forums like /r/math or Math Overflow Technical – Wikipedia or MathWorld
ADEPT learning method (Analogy, Diagram, Example, Plain-English, Technical)
-
We say i (lowercase) is 1.0 in the imaginary dimension Multiplying by i is a 90-degree counter-clockwise turn, to face “up” (here’s why). Multiplying by -i points us South It’s true that starting at 1.0 and taking 4 turns puts us at our starting point: And two turns points us negative: which simplifies to: so
Great explanation of why \(i=\sqrt-1\)
-
Imaginary numbers seem to point North, and we can get to them with a single clockwise turn. Oh! I guess they can point South too, by turning the other way. 4 turns gets us pointing in the positive direction again It seems like two turns points us backwards
Imaginary numbers explained in plain-english
-
Imaginary numbers let us rotate around the number line, not just move side-to-side.
Imaginary numbers Another graph:
Tags
Annotators
URL
-
-
-
Study of patients attending a hospital-based obesity service shows no difference in weight loss between those under 60 years old and those from 60 to 78 years old The University of Warwick-led study conducted at University Hospitals Coventry and Warwickshire (UHCW) concludes that lifestyle changes to manage weight loss are effective in reducing obesity regardless of age Aims to dispel myths about effectiveness of weight loss in older people
- Researchers studied 242 patients (under 60 and over 60 years old) who attended a weight-loss programme, most of them morbidly obese.
- Results show no differences between age groups, proving that weight loss is as important for older people - even more so - as for younger people.
- The programme was based on lifestyle-based changes - diet, physical activity and psychological support - and showed similar results regardless of age.
- People often don’t care about weight loss in older people, and this study shows that it’s a very harmful perspective to adopt.
-
-
www.independent.co.uk www.independent.co.uk
-
Human ageing reversed in ‘Holy Grail’ study, scientists say
- Clinical trial with 35 people over 64 years old shows that oxygen therapy can reverse two key indicators of biological ageing - telomere length, and senescent cells.
- Telomeres are protective caps at the end of chromosomes, and senescent cells are malfunctioning, old cells.
- Patients were placed in a pressurised chamber and given pure oxygen for 90 minutes a day, 5 days a week, for 3 months.
- At the end, telomere length increased by 20% on average, and senescent cells were reduced by 37% - equivalent to a 25 years younger biological-cellular state.
- The results are incomparable to lifestyle changes / exercise / diets, and researchers say it’s thanks to inducing cell regeneration through hypoxia (oxygen shortage).
-
-
github.com github.com
-
Comparison between pytest and unittes test frameworks
Detailed comparison table of pytest vs unittest modules (check below)
Tags
Annotators
URL
-
-
opensource.com opensource.com
-
For example, suppose you want to search for the string "font-size: 52 px;" in your repository: $ git rev-list –all | xargs git grep -F ‘font-size: 52 px;’
Searching Git repo with grep
-
$ git show main:README.md Once you execute this command, you can view the content of the file in your terminal.
You can view the README.md file while being in any branch
-
Every repository has a .git folder. It is a special hidden folder. $ ls -a . … .git
Inside the hidden .git folder, you may find:
- The current state of HEAD:
$ cat .git/HEAD ref: refs/heads/master
- Potentially a description of your repo:
$ cat .git/description
-
To optimize your repository further, you can use Git garbage collection. $ git gc --prune=now --aggressive This command helps when you or your team heavily uses pull or push commands.
You can optimise your repo not only with
.gitignore
file, but with Git garbage collection.This command is an internal utility that cleans up unreachable or "orphaned" Git objects in your repository
-
Git, along with some Bash command piping, makes it easy to create a zip archive for your untracked files. $ git ls-files --others --exclude-standard -z |\ xargs -0 tar rvf ~/backup-untracked.zip
Taking backup of untracked files.
This command makes an archive (and excludes files listed in .gitignore) with the name backup-untracked.zip
-
$ git rev-list –count master 32
Example of counting the number of commits with
git rev-list --count
-
Many developers count the number of commits to judge when to increment the build number, for instance, or just to get a feel for how the project is progressing.
Why to count the number of commits
-
To avoid similar scenarios, enable Git autocorrection in your Git configuration: $ git config --global help.autocorrect 1
Applying autocorrection in Git.
When you type:
git stats
, instead of suggesting a command, it will rungit status
automatically
Tags
Annotators
URL
-
-
www.geekweek.pl www.geekweek.pl
-
SpaceX każe sobie zapłacić jednorazowo 500 dolarów za modem i talerz oraz 100 dolarów miesięcznie za dostęp do sieci. Musk zapowiedział, że jeszcze w tym roku po ziemskiej orbicie będzie przemieszczało się blisko 1000 satelitów Starlink. Dzięki temu, sprawność sieci ma jeszcze wzrosnąć, a użytkownicy będą mogli liczyć na download z prędkością 200 Mb/s, upload z prędkością 50 Mb/s i ping na poziomie 20 ms. Starlink ma zawitać do Europy już w marcu przyszłego roku.
Cost of Starlink internet:
- 500$ for modem
- 100$/month for access to the internet
Speed of Starlink internet:
- generally, Starlink has a great availability
- possible download of 200 Mb/s, upload of 50 Mb/s, pink of 20 ms
- Starlink should be in Europe in March 2021
-
-
blog.cloudflare.com blog.cloudflare.com
-
Today, we’re excited to open up a beta of a third approach to keeping web browsing safe with Cloudflare Browser Isolation. Browser sessions run in sandboxed environments in Cloudflare data centers in 200 cities around the world, bringing the remote browser milliseconds away from the user so it feels like local web browsing.
Cloudflare introduces sandboxed web browsing. It's like a browser inside a browser, so we can rest assured that we won't be infected by the websites we visit
Tags
Annotators
URL
-
-
thecorrespondent.com thecorrespondent.com
-
Solving all those complex puzzles requires a huge amount of energy. So much energy that the two biggest blockchains in the world – bitcoin and Ethereum – are now using up the same amount of electricity as the whole of Austria. Carrying out a payment with Visa requires about 0.002 kilowatt-hours; the same payment with bitcoin uses up 906 kilowatt-hours
cryptocurrencies require A LOT of energy
-
The fact that no one is in charge and nothing can be modified also means that mistakes cannot be corrected. A bank can reverse a payment request. This is impossible for bitcoin and other cryptocurrencies. So anything that has been stolen will stay stolen. There is a continuous stream of hackers targeting bitcoin exchanges and users, and fraudsters launching investment vehicles that are in fact pyramid schemes.
3rd reason for blockchain not being widely implemented: it's not safe for a general public
-
Also, in a blockchain you aren’t anonymous, but “pseudonymous”: your identity is linked to a number, and if someone can link your name to that number, you’re screwed. Everything you got up to on that blockchain is visible to everyone.
2nd reason for blockchain not being widely implemented: users aren't fully anonymous
-
Firstly: the technology is at loggerheads with European privacy legislation, specifically the right to be forgotten. Once something is in the blockchain, it cannot be removed. For instance, hundreds of links to child abuse material and revenge porn were placed in the bitcoin blockchain by malicious users. It’s impossible to remove those.
1st reason for blockchain not being widely implemented: once something is in blockchain, it can't be removed
-
Out of over 86,000 blockchain projects that had been launched, 92% had been abandoned by the end of 2017, according to consultancy firm Deloitte.
Some sad statistics of blockchain
-
It’s very slow (sometimes a transaction takes nine minutes, sometimes nine days!), a lot of hassle (try it for yourself – cutting open hard plastic packaging with scissors is more user friendly), and very unstable (its price rose to €17,000 euros; dropped to €3,000; rose again to now €10,000).
Bitcoin transactions are slow & the currency is very unstable
-
Not only that, but the decentralised utopia that Nakamoto dreamed about, namely avoiding trusted third parties, is still far out of reach. Ironically, there are now three mining pools – a type of company that builds rooms full of servers in Alaska and other locations way up above the Arctic circle – which are responsible for more than half of all the new bitcoin (and also for checking payment requests).
Blockchain isn't also yet fully free from third-parties to check the payments
-
This is pretty inefficient. And it would be a lot less complicated if you trusted someone to manage your data (a bank, for instance). But that’s not what Satoshi Nakamoto did, which is what the inventor of bitcoin calls himself. He thought banks were bad news. They can make money disappear from your account. So he invented bitcoin. And bitcoin works, it exists, and according to the latest count, there are nearly 1,855 other bitcoin-like currencies out there.
Why bitcoin was created to replace banks
-
At its core, blockchain is a glorified spreadsheet (think: Excel with one table). In other words, a new way to store data. In traditional databases there’s usually one person who’s in charge, who decides who can access and input data, who can edit and remove it. That’s different in a blockchain. Nobody’s in charge, and you can’t change or delete anything, only view and input data.
Simple explanation of blockchain
-
-
wiki.alopex.li wiki.alopex.li
-
Conclusions Draw your own. No? Fine. Good Enough: JSON? Protobuf Cap’n Proto Flatbuffers CBOR msgpack Avoid: YAML XML Thrift? BSON
Alternatives to JSON which are well readable by humans. In short, JSON is still fine and seems like it will be for a long time
Tags
Annotators
URL
-
-
www.chrismytton.com www.chrismytton.com
-
There’s a story about an art teacher that split their class in half. They told one half of the students that they’d be graded based on a single piece of work, and the other half that they would be graded on the quantity of work produced. The half that was being graded on quantity ended up producing higher quality pieces. By iterating and learning from their mistakes they actually ended up producing better work than the students that only had to produce one piece. Quantity leads to quality. Share your work Sharing work helps you to think and develop. The feedback you get feeds into the next iteration.
Share your work as often as you can as quantity leads to quality
Tags
Annotators
URL
-
- Oct 2020
-
towardsdatascience.com towardsdatascience.com
-
Statistical techniques: average, quantiles, probability distribution, association rulesSupervised ML algorithms: logistic regression, neural net, time-series analysisUnsupervised ML algorithms: Cluster analysis, Bayesian network, Peer group analysis, break point analysis, Benford’s law (law of anomalous numbers)
Typical techniques used in financial fraud classification
-
In machine learning, parlance fraud detection is generally treated as a supervised classification problem, where observations are classified as “fraud” or “non-fraud” based on the features in those observations. It is also an interesting problem in ML research due to imbalanced data — i.e. there’s a very few cases of frauds in an extremely large amount of transactions.
Financial fraud is generally solved as a supervised classification, but we've got the problem of imbalanced data
-
With ever-increasing online transactions and production of a large volume of customer data, machine learning has been increasingly seen as an effective tool to detect and counter frauds. However, there is no specific tool, the silver bullet, that works for all kinds of fraud detection problems in every single industry. The nature of the problem is different in every case and every industry. Therefore every solution is carefully tailored within the domain of each industry.
Machine learning in fraud detection
-
-
about.fb.com about.fb.com
-
Facebook AI is introducing M2M-100, the first multilingual machine translation (MMT) model that can translate between any pair of 100 languages without relying on English data. It’s open sourced here. When translating, say, Chinese to French, most English-centric multilingual models train on Chinese to English and English to French, because English training data is the most widely available. Our model directly trains on Chinese to French data to better preserve meaning. It outperforms English-centric systems by 10 points on the widely used BLEU metric for evaluating machine translations. M2M-100 is trained on a total of 2,200 language directions — or 10x more than previous best, English-centric multilingual models. Deploying M2M-100 will improve the quality of translations for billions of people, especially those that speak low-resource languages. This milestone is a culmination of years of Facebook AI’s foundational work in machine translation. Today, we’re sharing details on how we built a more diverse MMT training data set and model for 100 languages. We’re also releasing the model, training, and evaluation setup to help other researchers reproduce and further advance multilingual models.
Summary of the 1st AI model from Facebook that translates directly between languages (not relying on English data)
-
-
towardsdatascience.com towardsdatascience.com
-
For Decision Scientists, the business problem comes first. Analysis follows and is dependent on the question or business decision that needs to be made.
Decision Scientists
-
-
stats.stackexchange.com stats.stackexchange.com
-
The number of hidden neurons should be between the size of the input layer and the size of the output layer. The number of hidden neurons should be 2/3 the size of the input layer, plus the size of the output layer. The number of hidden neurons should be less than twice the size of the input layer.
3 rules of thumb while choosing the number of hidden layers and neurons
-
-
news.ycombinator.com news.ycombinator.com
-
Your weekly reminder that1. You should not have your development process on a centralized platform, at least not if you're doing anything that smells of copyright issues2. If you do host on a centralized platform, have regular, decentralized backups of code and issue tracking.3. Also, avoid US-centric hosting for this kind of thing. But really, refer to 1.
3 things to keep in mind while hosting your code
Tags
Annotators
URL
-
-
manuel.darcemont.fr manuel.darcemont.fr
-
Junior school is great because you don’t learn to find a job. You’re at school to grow as a citizen, not to prepare to your future life, and actually you’re better not to think about your future if you don’t want to question yourself about the meaning of your existence. This is the same thing for side projects. See them as a way to discover a new topic and enlarge your horizon, not as something that you could action in your current position or to find a new job.
Comparing school to side projects
-
Even from a purely technical point of view, you will not really understand a library or a framework by just sticking to the tutorial or its basic features. You’ll have to dig into and to face its most painful aspects to deeply understand it.
Way to deeply learn technologies
-
Today, I recommend not hiding your side projects, but to not displaying them as a primary part of your identity, to not scare the recruiter and let him feel that you have a secondary plan.
Why not to talk too much about your personal projects
-
You can generally assume that a developer coming from a cutting-edge company has better chances to be a great developer than a developer coming from a Java 1.4 shop. He may not be smarter, but he has been hired by a company with a most demanding hiring process, and has been surrounded by some of the smartest developers.
-
First, most recruiters don’t care about your personal projects or how many meetups you went during the year. What matters the most is your current company - and by that I mean the name of your current company.
True in most cases
Tags
Annotators
URL
-
-
medium.com medium.com
-
suite of over 30 separate packages of React visualization primitives that fall into several categories (Figure 2). It is un-opinionated on state management, animation, and styling so it can integrate with any React codebase, and its emphasis on modularity (similar to D3) lets you keep your bundle sizes down by only using the packages you need to create your reusable chart library or a custom one-off chart.
Short definition of visx
-
In our research (Figure 1), we found that existing React visualization libraries are often high-level abstractions and optimized for ease of use (i.e., fewer lines of code) at the expense of expressivity. None offer the expressivity of D3 primitives and many don’t allow for the optimization we want in production because computation, animations, state management, styles, and rendering are all encapsulated.
Comparison of data visualisation libraries:
-
because D3 and React both want to own DOM manipulation, we’ve found that it’s best to only use D3 for the math and React for the DOM because two mental models for updating the DOM opens the door for bugs to sneak in. However, using D3 solely for math means a significant amount of its (DOM-based) functionality is not available for use: selection.join, zoom, drag, brush, and transitions. Additionally, as mentioned above, D3 has its own learning curve and we would like developers to feel like they are writing native React code with standard APIs and familiar patterns.
You can use D3 inside a React app, but...
-
Leveraging React and its ecosystem would provide learnability and performance, and a low-level, modular API would deliver expressivity.
Thanks to React, visx achieved all: learnability, performance and expressivity
-
After 3 years of development, 2.5 years of production use at Airbnb, and a rewrite in TypeScript we are excited to announce the official 1.0 release of visx (formerly vx). You can find the project on GitHub and browse documentation and examples on airbnb.io.
-
-
-
Using The clamp() CSS function we can create a responsive website with only one property
clamp()
Example:
h1 { font-size: clamp(16px, 5vw, 34px); }
- (minimum value, flexible value and maximum value)
-
-
news.ycombinator.com news.ycombinator.com
-
Counterintuitively, people love reading about and engaging in what they consider "stupidity".Internet companies capitalize on this by bringing an optimized stream of stupidity for your viewing pleasure. Take a look at the front page of Reddit (logged out, default subs): Half of the content highlights stupidity of others: /r/IdiotsInCars shows the worst drivers from around the world, /r/insanepeoplefacebook shows the most bizarre clips from social media, /r/choosingbeggars highlights the dumbest negotiation attempts, /r/trashy and /r/iamatotalpieceofshit are selected stories of bad behavior, /r/whatcouldgowrong and /r/instantkarma are videos of people making bad decisions and suffering the consequences, /r/publicfreakout is videos of people fighting. Contributors hunt for the most egregious examples to post to Reddit in the hopes of getting upvotes.Twitter isn't much better: Topics spread on Twitter when they promote outrage or allow the reader to feel smugly superior to someone.If you spend your days online consuming this content day in and day out, you're going to become convinced that the world is "stupid" and getting stupider. In reality, you're simply tapping into stupidity concentrators, getting bite-sized views of stupidity so you can react in astonishment and feel superior to stupid people doing stupid things.I think COVID quarantine has worsened this, as people are getting even more of their worldview through social media feeds instead of actually interacting with people in the real world. If 90% of your insight into social interactions comes from clickbait social media sites selecting the most egregious stories and videos from around the world, of course you're going to think "stupidity is expanding". In reality, it's a sign that you need to revaluate your sources of information and move to platforms and networks where people are talking about something other than other people's stupidity.
Worth point to consider when you think that there are more and more stupid people. tldr; you might spend too much time on the internet
-
-
news.ycombinator.com news.ycombinator.com
-
I see this all around me. People are fixated on careers, hobbies (FOMO), spread thin by family obligations and errands. The truth is, happiness does not derive from these things. This "busyness" is an invention. Life is simple, and happiness actually derives from having cats.
Why life can't be simpler? :D
-
-
journals.aom.org journals.aom.org
-
Daydreaming at Work Can Fuel Creativity
Summary of the article:
- We spend nearly half of each day daydreaming, and usually think that it’s a bad thing, but it turns out that highly demanding tasks make us daydream more.
- It allows us to turn off our surroundings, and can be a way of imagining solutions to the problem at hand.
- To find this out, researchers did two studies of employees and managers in South America, including mainly surveys about daydreaming.
- Daydreaming turned out to happen more when the tasks required a lot of focus - it can boost creative problem-solving as long as we’re personally invested in our work.
- However, for people who don’t identify with their work, daydreaming was linked to worse performance.
-
-
blog.prokulski.science blog.prokulski.science
-
Sprawdźmy który rodzaj modelu daje najlepszą skuteczność: Python sns.boxplot(data=models_df, x='score', y='model') 1 sns.boxplot(data=models_df, x='score', y='model')
After comparing the pipelined ML models, we can easily display a comparison boxplot.
Well working ML models: 1) XGBoost 2) LightGBM 3) CatBoost.
-
Przy tych danych wygląda, że właściwie nie ma większej różnicy (nie bijemy się tutaj o 0.01 punktu procentowego poprawy accuracy modelu). Może więc czas treningu jest istotny? Python sns.boxplot(data=models_df, x='time_elapsed', y='model') 1 sns.boxplot(data=models_df, x='time_elapsed', y='model')
Training time of some popular ML models. After considering the performance, it's worth using XGBoost and LightGBM.
-
Teraz w zagnieżdżonych pętlach możemy sprawdzić każdy z każdym podmieniając klasyfikatory i transformatory (cała pętla trochę się kręci):
Example (below) of when creating pipelines with scikit-learn makes sense. Basically, it's convenient to use it while comparing multiple models in a loop
-
-
-
First, you'll need to clone your own copy of the template Google Sheet by clicking here, then pressing Use Template in the top right. This will add the sample spreadsheet to your personal Google account. Once you've done that, click here to open the starter app in Autocode. Poke around the source code if you'd like, then install the app to your Autocode account by pressing the green button. When prompted to link a Google Sheet, follow the instructions in the flow to link your Google account, then select the spreadsheet you just cloned.
Solution (Autocode) to the scalability limits of Google Sheets
-
Queries became impractically slow around the 500,000 cell mark, but were still below 2 seconds for a 100,000 cell query. Therefore, if you anticipate a dataset larger than a few hundred thousand cells, it would probably be smart to choose a more scalable option.
Scalability of Google Sheets. They have a hard limit of 5,000,000 cells (including blank ones)
-
-
dev.to dev.to
-
What the question does is that it creates a powerful anchoring effect. A candidate who gives this information away will typically ask for only a bit more than what she is currently getting. The human resources dude will then have a big internal smile: the candidate's expected salary is below the range that was decided for that position. He will then happily give the candidate 3.000 dollars more than what the candidate asks for.
Why it's not worth answering "what's your current salary" question
-
-
reisub0.github.io reisub0.github.io
-
Fractal learning is ultimately about balance and flexibility. It's about: keeping the big picture in your mind even when digging into the details, whilst simultaneously paying close attention to the details even when you are just skimming choosing the appropriate level of abstraction for what you're trying to do, whilst simultaneously zooming in and out of different levels of abstraction.
Further explanation of fractal learning
-
When you are new to a field and trying to get an overall sense of how the field works, it might be a waste of time to fall down any rabbit holes as you don't have the experience to know which lines of questioning are relevant. So a breadth-centric approach might serve you well. In this case, you should form appropriate abstractions for the concepts you are encountering so that you can dig deeper into them later if you need.
When you're new to a field, it's better to use the BFS (Breadth-First Search) learning
-
Fractal learning is essentially a strategy used to make sense of complex systems without getting too lost in the details. It's about being in that Goldilocks zone of not wasting your time learning too much (you have other things to do) while at the same time getting an overall understanding of how things fit together.
Fractal learning
Tags
Annotators
URL
-
-
arogozhnikov.github.io arogozhnikov.github.io
-
use code to parameterize calls:
You can write Python code to parametrize calls:
python -c " from mymodule import set_dragon_feeding_schedule, Creatures, Date set_dragon_feeding_schedule( feeding_times=['10:00', '14:00', '18:00'], dishes={Creatures.Tiger: 2, Creatures.Human: 1}, start_day=Date('1020-03-01'), ) "
instead of:
python -m mymodule \ set_dragon_feeding_schedule \ --feeding-times ['10:00','14:00','18:00'] # hopefully this way it gets recognized \ # how will you define parsing a dict with enum to integer mapping? --dishes=Creatures.Tiger:2 \ --dishes=Creatures.Human:1 \ --start-day=1020-03-21 # BTW bash allows no comments in multiline calls
-
That’s it. Types are parsed, checked and converted. Defaults and description are picked from function itself. Even provides bash completions you can install. You wrote no code for that!
Good example of writing CLI interfaces in Python with typer:
import typer from pathlib import Path app = typer.Typer() @app.command() def find_dragon(name: str, path: Path, min_age_years: int = 200): <implementation goes here> @app.command() def feed_dragon(dragon_name: str, n_humans: int = 3): <implementation goes here> if __name__ == "__main__": app()
later we can call it that way:
python example.py find_dragon 'Drake' --path /on/my/planet
-
-
nestedtext.org nestedtext.org
-
NestedText is a file format for holding data that is to be entered, edited, or viewed by people. It allows data to be organized into a nested collection of dictionaries, lists, and strings. In this way it is similar to JSON, YAML and TOML, but without the complexity and risk of YAML and without the syntactic clutter of JSON and TOML.
NestedText - new format similar to JSON, YAML and TOML
-
-
docs.python.org docs.python.org
-
Merge (|) and update (|=) operators have been added to the built-in dict class. Those complement the existing dict.update and {**d1, **d2} methods of merging dictionaries.
From Python 3.9 it's much more convenient to:
- merge dictionaries with the
|
(pipe) operator, e.g.x | y
- update them with
|=
- merge dictionaries with the
-
-
-
Playing video games as a child can improve working memory years later
- Studies have shown that playing video games can lead to brain structure changes, but new study shows changes can happen even years after people stop playing.
- The study lasted a month, and involved 27 people between 18 and 40 years old, with and without experience in gaming.
- Those who played a lot before becoming adults performed better with working memory tasks, which require you to mentally hold and manipulate information.
- They also did better at processing 3D objects, but after a period of video game training, non-gamers were able to catch up in this area.
- Video games are great to strengthen mental skills, however these improvements have limited effect on activities not linked to gaming
-
-
datarevenue.com datarevenue.com
-
Use Streamlit if you want to get going as quickly possible and don’t have strong opinions or many custom requirements.Use Dash if you need something more flexible and mature, and you don’t mind spending the extra engineering time.
Streamlit vs Dash
-
Here’s a table showing the tradeoffs:
Comparison of dashboard tech stack as of 10/2020:
-
-
-
Tabular Comparison Between All Deployment Methods:
Tabular comparison of 4 deployment options:
- Travis-CI/Circle-CI
- Cloud + Jenkins
- Bitbucket Pipelines/Github Actions
- Automated Cloud Platforms
-
-
blog.jetbrains.com blog.jetbrains.com
-
Today we begin the Early Access Program for Code With Me, a tool for remote collaborative development and pair programming that you have long been waiting for.
Code With Me - new feature from JetBrains for collaborative programming. Unfortunately, soon it won't be free.
-
- Sep 2020
-
-
"Dorks" are search lines that utilize the search engine different features, with targeted search strings to pinpoint results. Here's a fun list of Google searches from the exploit DB.
Database of Google's Dorks: Google Hacking Database
-
The internet archive, also known as the "Wayback Machine" holds periodic scans of websites all over the internet for years and years back. This is a mining field for hackers with a target. With tools like waybackcurls (based on waybackcurls.py) one can scan any target of old files. This means that even if you've found and removed a key but did not rotate it, a hacker might still find it in an old version of your website and use it against you.
Hackers do use Wayback machine to find specific security flaws on your website
-
Enforce MFA everywhere - Google, GitHub, Cloud providers, VPNs, anywhere possible. If it's not optional, reconsider the system in use Rotate keys and passwords constantly, employ and enforce rotation policies Scan your code regularly. Preferably as part of the release process Delegate login profiles and access management to one central system where you control and monitor
20% actions for 80% of effect to protect your API keys/passwords/SSH encrypted keys/certificates
Tags
Annotators
URL
-
-
riggraz.dev riggraz.dev
-
Spending more time looking for a solution rather than thinking about it.
Stack Overflow Antipattern:
- Encounter a problem you can’t immediately solve
- Google the problem
- Find a seemingly-satisfying solution (usually on Stack Overflow)
- Copy-paste the solution and test it out
- If it works, move on; otherwise, go back to step 2.
Tags
Annotators
URL
-
-
-
DuckDB is an embeddable SQL OLAP database management system
Database not requiring a server like SQLite and offering advantages of PostgreSQL
-
-
blog.greenroots.info blog.greenroots.info
-
The <output> tag represents the result of a calculation. Typically this element defines a region that will be used to display text output from some calculation.
How
<output>
tag can be used in HTML5
-
-
news.ycombinator.com news.ycombinator.com
-
The best data scientists are just people who try to understand the ins and outs of business processes and look at problems with healthy suspicion and curiosity. The ability to explain the nuances of manifolds in SVMs is not something that comes into it outside these contrived interviews. I prefer to ask candidates how they would approach solving a problem I’m facing at that moment rather than these cookie cutter tests which are easy to game and tell me nothing
Interesting approach from an experienced data scientist to interview new professionals
Tags
Annotators
URL
-
-
www.annashipman.co.uk www.annashipman.co.uk
-
What do you think the most important things we should be doing over the next year? What will get in the way of us doing that? What’s going well, i.e. what should we make sure we don’t change? Is there anything you think I should know about?
Good questions to ask as a new PM
Tags
Annotators
URL
-
-
github.com github.com
-
Tribuo is a machine learning library in Java that provides multi-class classification, regression, clustering, anomaly detection and multi-label classification.
Tribuo - Java ML library from Oracle
Tags
Annotators
URL
-
-
www.sciencemag.org www.sciencemag.org
-
‘Viking’ was a job description, not a matter of heredity, massive ancient DNA study shows
- By looking closely at viking-related archeological sites, researchers uncovered that non-Scandinavian people joined the vikings as they raided Europe.
- 442 Viking Age genomes were sequenced, showing that Vikings were more likely to have black hair, and that being a Viking was a job, not a genetic inheritance.
- Additionally, the routes of Swedish, Danish and Norwegian Vikings were traced using DNA data, uncovering new details about where they traveled.
- Swedes moved to the Baltics, Poland, then Russia and Ukraine; Danes headed towards England; Norwegians sailed to Ireland, Iceland and Greenland.
-
-
www.york.ac.uk www.york.ac.uk
-
Increase in alcohol-industry funded research is a cause for concern, study suggests
- Since 2009, alcohol companies have been funding increasingly more research - evidenced by almost 13,500 studies funded by the alcohol industry.
- There are many legitimate fields for research, however there’s a group of these studies that claim health benefits of alcohol, or that substance abuse is a choice.
- Another problem is that the alcohol industry funds this research through affiliate organisations, and the funding source is often not shown in those papers.
- Researchers believe that the alcohol industry is too deeply involved, and certain studies should be conducted by independent academics.
-
-
www.uni-konstanz.de www.uni-konstanz.de
-
Ten minutes of massage or rest will help your body fight stress
- Short-term treatments like a massage, or just resting for a bit, reduce stress by boosting the parasympathetic nervous system (PNS).
- Relaxation therapies show promise as a way to treat stress, but so far scientists haven’t developed a standardised method to test them - until now.
- This study is the first standardised approach, and the results show that both rest and a massage increase heart rate variability (HRV) - higher HRV = greater relaxation.
- Researchers say this shows we don’t need professional treatment in order to relax, even a 10-minute rest can boost our PNS and calm us down.
- These conclusions will enable further experiments to study how different relaxation methods can help people with stress-related conditions like depression
-
-
mango.pdf.zone mango.pdf.zone
-
With your passport number, someone could: Book an international flight as youFootnote 2626. Apply for anything that requires proof of identity documentation with the government, e.g. Working with children check Activate a SIM card (and so get an internet connection that’s traceable to you, not them, hiding them from the government) Create a fake physical passport from a template, with the correct passport number (which they then use to cross a border, open a bank account, or anything) who knows what else, not me, bc i have never done a crime
What can be done with out passport number
-
I’d now found Tony Abbott’s: Passport details Phone number Weird Qantas staff comments.
What information can be found on the "Manage Booking" page inside the website code
-
-
devguide.python.org devguide.python.org
-
3.5 PEP 478 security 2015-09-13 2020-09-13 Larry Hastings
All Python versions less than 3.6 are now EOL
-
-
www.benkuhn.net www.benkuhn.net
-
To be reliably able to focus on something, you need to be intuitively, emotionally invested in the outcome.
Without emotions, you might not get the right focus level on the problem
-
The output of knowledge workers is extremely skewed based on focus. The productivity tiers seem to be:<10% focused on the job at hand: meaningful risk of getting fired.10-50% focus: “meets expectations,” gets regular raises.50%+ focus: superstar, 10x engineer, destined for greatness.
3 focus levels in a career
Tags
Annotators
URL
-
-
news.ycombinator.com news.ycombinator.com
-
What you actually need from an ML/Data Science person:- Experience with data cleaning (this is most of the gig)- A solid understanding of linear and logistic regression, along with cross-validation- Some reasonable coding skills (in both R and Python, with a side of SQL).
Basic skills to seek for in Data Scientists
-
deep learning is good in some scenarios and not in others, so anyone who's just a deep learning developer is not going to be useful to most companies.
-
Having worked with researchy vs more product/business driven teams, I found that the best results came when a researchy person took the time to understand the product domain, but many of them believe they're too good for business (in which case you should head back to academia).
Problem of PhD profiles in business
-
Imagine what it must be like for the senior leadership of an established company to actually become data-driven. All of a sudden the leadership is going to consent to having all of their strategic and tactical decision-making be questioned by a bunch of relatively new hires from way down the org chart, whose entire basis for questioning all that expertise and business acumen is that they know how to fiddle around with numbers in some program called R? And all the while, they're constantly whining that this same data is junk and unreliable and we need to upend a whole bunch of IT systems just so they can rock the boat even harder? Pffft.
Reality of becoming a data-driven company
-
but companies will discover that ML is (for the vast majority) a shiny object with no discernible ROI. Like Big Data, I think we'll see a few companies execute well and actually get some value, while most will just jump to the next shiny thing in a year or two.
As long as ROI isn't clearly visible in ML, as long it might not bring more ML positions
Tags
Annotators
URL
-
-
news.ycombinator.com news.ycombinator.com
-
I think a lot of educational Youtube channels aren't that great in actually teaching you anything. What they are great at is sparking the interest and planting the seed for your own work. At least my experience is that actually doing things is how I learn them. Youtube can be a great springboard for that.
Well said
-
-
www.gu.se www.gu.se
-
"We find essentially no evidence for climate-driven extinctions during the past 126,000 years Instead, we find that human impact explains 96% of all mammal extinctions during that time"
- In a new study, researchers found no evidence of climate-driven extinctions in the past 126,000 years—human impact explains 96% of mammal extinctions.
- The conclusion comes from analysing a data set of fossils from 351 mammal species that have gone extinct.
- Extinctions happened in bursts that correlated to the time when humans first reached new areas, and recently human-driven extinctions have sped up on a global scale.
- If current trends in human behaviour and biodiversity loss continue, we might reach a level of extinction 30,000 times larger than natural by the year 2100.
- To prevent this, we need targeted and efficient conservation strategies, but first people need to become aware of this looming biodiversity crisis
-
-
github.com github.com
-
This command will give you the top 25 stocks that had the highest anomaly score in the last 14 bars of 60 minute candles.
Supriver - find high moving stocks before they move using anomaly detection and machine learning. Surpriver uses machine learning to look at volume + price action and infer unusual patterns which can result in big moves in stocks
Tags
Annotators
URL
-
-
kopalniawiedzy.pl kopalniawiedzy.pl
-
Autorzy najnowszych badań skupili się na języku i odkryli, że dzieci podczas przetwarzania języka mówionego używają obu półkul mózgu.
In comparison, almost all adults use only the left hemisphere of the brain
-
-
link.springer.com link.springer.com
-
Analyses replicated those from past research using the PEW data, showing that beardedness was more frequent under prevailing conditions of lower health and higher economic disparity.ConclusionsThese findings contribute to evidence that men’s decision to augment their masculinity via full beardedness occurs under conditions characterised by stronger inter-sexual and intra-sexual selection.
- Men are more likely to wear beards in countries where they have to compete with each other for women.
- The data comes from the Pew Research Center’s World’s Muslims’ project, which collected information from 14,032 men in 25 countries.
- The authors conclude that beards make men look more masculine, which helps them with sexual selection, but the authors couldn’t confirm if beards contributed to higher reproductive success
-