Enabled this feature.
Earlier in the days, PR was better than issue, now, I prefer and issue, as Codex with my guidance can create a much better PR.
444 karma · joined August 14, 2019
https://github.com/albumentations-team/AlbumentationsX
Stars help demonstrate real-world adoption when we apply for grants that fund open-source maintenance, testing, documentation, security improvements, and new features.
Enabled this feature.
Earlier in the days, PR was better than issue, now, I prefer and issue, as Codex with my guidance can create a much better PR.
I listen them in the gym between sets, I listen them in the car, in the plane, in taxi, doing chores at home and in any other place where you cannot do more useful things, and you cannot read as well.
Five minutes here, ten there and it adds quite fast.
[1] I cannot consume every book as audiobook, some are so dense in material, that it requires actual reading.
[2]Not every book exists as audio book and not every book has a good narrator, which is quite important.
but:
[1] Quite often, you can listen them in parallel to other activities. [2] When you are driving with someone, listening audiobook together adds plenty of interesting topics to discussions after the drive + bonding experience (you are doing something together, you are focussing on the same thing together) [3] You can listen with various speeds, and for me, so far it went up to 1.5x on some books, which speeds up the process.
--- I do not have a problem to find books to read or listen as author of the post. My "To Read" list grows much faster than the information I consume.
TL;DR
OpenCV is fast, but torchvision is faster.
But there is still a huge room for improvement in terms of performance, as for some low level operations StringZilla or Numkong are faster, for some, especially for float32 images, numpy is the best.
The most annoying component is that OpenCV is limited to input shapes like (H, W, C), which limits its application to videos and volumes with shapes (X, H, W, C)
Submitted 3 weeks ago: https://github.com/pytorch-fdn/ecosystem/issues/67
I work on one of the projects in the list, need to update a link to the project, as old one is not actual anymore. And unclear how to do it => at least with respect to my project Albumentations, the landscape is outdated :(
--- Also, added the project to the Pytorch Ecosystem many years back, but if you ask me about practical value of being the part of the Ecosystem, I would not be able to tell you anything useful.
Systematic, efficient.
Played this game myself. And I did it when moved to the US with a limited English and lack of understanding of the local culture and traditions.
After a few years of dedicated practice, moved me from the state that author describes to the complete lack of fear talking to strangers, I can easily make nearly ever conversation warmer, deeper and more relaxed.
------
A couple more comments, based on personal experience:
[1] It works better if place where you meet is your deep comfort zone, a very familiar place
- gym, if you are going there for some time, know where each type of equipment is. - dance venue that you were going dancing for a while - art class - etc
[2] It helps a lot if you are quite proficient in the activity, expertise brings respect, and higher social status by itself, even when you do not talk to anyone.
[a] in the gym ideal technique > strength > looks / size of your muscles.
- Third class in powerlifting, based on Soviet grading system is a threshold, passing which life changes (question of months, maybe a year). You get more respect from men and curiosity from women, and you get more confident, because you got stronger: https://www.sportscategory.info/en/powerlifting - As your shoulders get broader, fat fat percentage goes down - it improves your appearance -> your confidence -> helps as well.
[b] Dance venue is a great place to meet people and address your fears / issues. Rule of the game - during the class before the social part teacher makes you switch partners => you will be forced to introduce yourself to the partner, this person cannot turn away and will need to reply, introduce themselves.
Later when social part starts - people switch partners every dance => - you start with inviting for a dance people whom you already met during the introductory class. - In 3 hours of social dancing you dance with 20+ people - As your skill grows (question of weeks-months) and dancing with you is not torture anymore, but quite the opposite - it is enjoyable => you get more relaxed, people want to dance with you => conversations start all the time - In dancing, as a man you lead, and this transfers to other activities (helped to become a lecturer teacher in University), but you also better lead the conversation. I.e. it is not a random exchange of information anymore, but you can vary it's direction and emotional component.
--- [3] Some places are better than others.
It is good to go to the gym, to get more friends, but not directly. I do not like talking to people in the gym, I suspect that other people as well.
you are recovering between sets, focussing on the audiobook, moving weights - you are always busy with something. I also heard that women do not like talking to men in the gym as they may feel "no in the best form", i.e. for her - talking to men feels comfortable, when she took shower, picked a cloths that fits her, not when she is sweaty, struggling with weights and sees other ladies in the gym who are more fit.
Places like:
- climbing gym <- very social activity where you solve same problems - trying to climb a route. You can just tell someone who struggled to climb a bouldering problem something like: "Nice!", "Good job!", "Well done", and ask for a tip.
Ot if you already climbed it - give a tip yourself. These are natural openers.
If you climb similar level of problem, you will get stack in the gym in the same spots, taking a break between tries - universe will force you to talk and socialize.
- Dance venue, as I mentioned above - Hikes - any types of group classes: scuba diving, wine tasting, art classes, etc will do the job quite well
Despite augmentation being used everywhere, most discussions are still very surface-level (“flip, rotate, color jitter”).
In this article I tried to go deeper and explain:
• The *two regimes of augmentation*: – in-distribution augmentation (simulate real variation) – out-of-distribution augmentation (regularization)
• Why *unrealistic augmentations can actually improve generalization*
• How augmentation relates to the *manifold hypothesis*
• When and why *Test-Time Augmentation (TTA)* helps
• Common *failure modes* (label corruption, over-augmentation)
• How to design a *baseline augmentation policy that actually works*
The guide is long but very practical — it includes concrete pipelines, examples, and debugging strategies.
Would love feedback from people working on real CV systems.
Link: https://medium.com/data-science-collective/what-is-image-aug...
[1] For every position you look for people at LinkedIn in that company. If you are already connected ask for referral.
[2] If not, look for common connections that can introduce you.
[3] If there is none => send request for adding everyone from the company to the friends.
[4] Message everyone, inviting for a coffee or virtual chat to learn about the company.
[5] If you believe that you are a good fit => say this.
----
And you spend first 4 hours of every day messaging, messaging, messaging. The response rate will be low. But you need only one job.
----
And if you do it for 6 months every day, there is no way you will not get many interviews.
----
Every interview you fail => you extensively study to address limitations of your skillset.
-----
Basically, there is no: "I have a degree, hence I deserve a job", but there is: "hard work is the goal".
-----
P.S. Somehow blog post reminds me why online dating is not working that well for men. Competition is enormous, the number of ladies is limited and things like: "I am an average man, hence I deserve attention from ladies" does not work as well
If we talk about popular packages: - people want it - people enjoy it - people do not pay for that
But force-feeding with strict licenses like Ultralytics does works. Yes, it is force-feeding, but noone wants to pay the price, unless there is no other choice.
Steps: [1] Add pre-commit hook [2] Write design doc as mdc file to .cursor/rules [3] Iterate on design doc till it describes what I want [4] Ask to write the code [5] Where possible - extend the test suite. [6] On every commit check that pre-commit hook checks and tests pass [7] On every bug extend the test suite [8] Write as many as possible custom pre-commit hooks [9] Add extensive docstrings to the complex code -> adds extra context to the LLM [10] Iterate [11] From time to time ask to verify that design doc is up to date
It would be better for design to be intuitive, but you struggle only the first time, while interfaces overloaded with information will take some of your attention every time you look at them
Makes training much more flexible, and fine tuning as well. Now, when a new data in terms of samples or new tables are connected to the olds ones you just extend the existing graph, without changing its existing morphology much.
Although it is unclear if it is scientific: "Look how cool we can do" or business result: "Look how much value do we get from this representation"
Useful by itself, but I suspect that will get even more adoption in industry in the telemetry as details statistics about users is ultra valuable.
An OS agnostic apps, meaning web apps is such a killer feature. You can use the same app on: Linux, Mac OS, Windows, Android, iOS
Even more, developing for web is typically faster. You made the change in the code => you see the result on the screen. For example: phone apps written in swift could be faster than ones written in react-native, but it is so annoying waiting for the compilation to finish after every small change.
----
When I worked on imagery data in an autonomous vehicles company product managers pushed us to explore the data in the cloud and it was soooo inconvenient.
As the result, PMs were ignored and everyone had a personal desktop with GPUs and fast SSDs that had the local copy of the data, so that debugging, prototyping would be fast.
As lag that one gets working with a heavy data remotely reminded moving back from SSD to slow HDD, where you needed to wait some time to see the result on the screen.
It was only half a second every time, but felt ultra annoying.
(https://github.com/albumentations-team/Albumentations)
15k stars, 5 million monthly downloads
----
It may happen that Cursor in the agentic mode writes code slower than I am. But!
It frees me from being in the IDE 100% of the time.
There is infinite list of educational videos, blog posts, scientific papers, hacker news, twitter, reddit that I want to read and going through them, while agents do their job is ultra convenient.
=> If I think about "productivity" in a broader way => with Cursor + agents, my overall productivity moved to a whole another level.
A couple weeks ago I:
1. forked repository of the Albumentations library (15k stars, 5 Million monthly downloads, MIT license) and called it AlbumentationsX
2. changed the license of the fork to the Dual (restrictive AGPL to be used for free and permissive commercial if you buy license) => it is unlikely that it is legal to use it in your project as noone wants AGPL project in the list of dependencies
3. Arhived albumentations repo ---
People use albumentationsx (I can see pypi download stats + telemetry), but zero licenses were bought.
----
Coming back to the original post - what surprises me that they forked, but did not try to rewrite with LLMs. LLMs may not be that good writing complex functionality, but in rewriting something they are quite good.
In this sense, all open-source licensing is not as useful anymore as rewriting the code so that there is no way to proof the plagiarism is the new reality.
---
Looks like the future is: - closed source code - open source developed by companies that want to use it for lead generation
[2] Albumentations is no longer maintained.
What does this mean?
The library has been forked into a new project: AlbumentationsX. The corresponding Python package is: `albumentationsx`
It is a drop-in replacement for the original albumentations:
```bash pip uninstall albumentations pip install albumentationsx ```
Everything else stays the same:
```python import albumentations as A
transform = A.Compose([...]) ```
-----
Why?
The current situation
Over the past year, I’ve been the primary (and mostly only) maintainer of Albumentations. The original team has moved on, but usage and support needs have only increased: - Weekly issues, questions, and feature requests - Major companies using it in production - Sponsorships cover only 2.5% of my living expenses and 0.39% (0.0039) of what I was making as a full time employee
Companies generally don’t donate — but they do purchase licenses. The MIT model didn’t make long-term work sustainable.
-----
AlbumentationsX uses a dual license: AGPL / Commercial
- Using AGPL or a similarly restrictive open-source license? You can continue using AlbumentationsX under AGPL. - For companies, three paths: [1] Comply with AGPL by open-sourcing your full codebase [2] Purchase a commercial license → https://albumentations.ai/pricing [3] Keep using albumentations (MIT) — but with no updates or bug fixes
Quick comparison albumentations (original): - License: MIT - Actively maintained: No - New features: No - Bug fixes: No
albumentationsx: - License: AGPL / Commercial - Actively maintained: Yes - New features: Yes - Bug fixes: Yes - Code changes required: None
-----
What is AGPL?
AGPL extends the GPL to network services. If you use AGPL software in a hosted service or SaaS, you must:
- Disclose your full source code to users - Apply AGPL to your entire codebase
This applies even if users only interact with it via an API
If your project uses MIT, Apache, or BSD — you cannot use AlbumentationsX under AGPL. You’ll need a commercial license.
-----
Why this change makes sense?
Projects like Ultralytics YOLO have successfully adopted dual licensing to: - Fund full-time development - Deliver new features faster - Ensure long-term maintenance and support
My goal is the same: to work on AlbumentationsX full-time and keep it the best augmentation library available.
This model won’t suit everyone — but it enables sustainability, which the MIT model could not.
=> while was working full time and had income I've sold all stock that got from the employee and put into VTSAX.
Living from these money for the past few years in the Bay Area.
and Kaggle leaderboards.
=>
Shows list of top 1.5% (8000 out of 520,000) most downloaded PyPI packages.
Metric - the number of downloads in the past 30 days.
Also shows the change in:
- relative standing - the percent increase / decrease with respect to the last measurement.
If you feel that interview process is not going as you expect it to go, you may just say:
" I understand that you have an established interview process that works for you, but it is not exactly as I imagined it.
Extensive interview process is a big time and energy investment. Before going this path I would like talk to the CEO to see if there is a match between what I could bring to the company and what company is looking for.
If it is not possible to have such a conversation, this is fine with me, I definitely do not want to push or convince you to do something you are not comfortable with.
But going throght the whole inteview process and realizing that there is no match only at the end is not really my flow. "
The drawback of this approach is that if they will reject your proposal for the meeting you will need to walk your walk.
It was not the only reason he was hired; it was a solid addition to his already good performance at the interviews.
Or at least that is what the hiring manager later said.