I know this is supposed to be a joke, but I feel like it's too close to reality to be funny.
I recently ordered a custom tailored set of shirt, trousers, and belt. Their site was bragging about their great AI technology, but sadly I didn't notice that red flag early enough.
The results were nothing short of disastrous. I sent in my measurements and they sent me a trouser with wrong measurements and a postcard that said that they adjusted my measurements with AI for a better fit. The belt they included was a completely different size than the trouser and I'm still waiting for the shirt to arrive. And now I'm fighting the usual uphill battle to talk to a human and get this mess fixed or get a refund.
The core of Stitchfix is personalization, as they say. But that means an individual solution for each individual customer, and not AI for memorizing generic trends in a huge dataset.
> I sent in my measurements and they sent me a trouser with wrong measurements and a postcard that said that they adjusted my measurements with AI for a better fit
That is nothing short of hilarious. The machine knows best! Who are you, human, to pretend you are able to measure yourself?!
> AI for memorizing generic trends
It's possible "AI" may be just a pretext to sell mass-made junk and pretend it is adjusted to each individual.
> It's possible "AI" may be just a pretext to sell mass-made junk and pretend it is adjusted to each individual.
It's also an internal distraction. They'd achieve something much closer to what they promise if they just threw some old-school regression analysis at the problem. But that's not cool these days, plus it's hard to relabel as AI even for the marketroids these days, and would involve actual work :).
This applies to many "AI companies" - so many want to either have easy process (throw data at some random Kaggle model and hope it sticks) or just a buzzword to bullshit investors with. Sometimes both.
What problem is there to apply regression at? You get the measures, and make the cloths fit to those measures. If there is any measure missing, you can't just go and guess it, because you are not fitting a population.
Sure, but just like people's measures tend toward a distribution, an "on average" bias is still going to be distributed. Trying to throw statistics at it is still going to lead to off the rack style sizing, and NOT individually tailored clothes.
Something similar happened in Japan with Zozosuit, they tried to use 3D reconstruction from smartphone camera for basically two piece business suits in $399, and the end result resembled texture file for your body in ugliest posture stitched together.
Maybe it could be considered class of fallacy, a kind that one would say the most popular choice of integers between 1 and 2 is 1.5000001.
>Who are you, human, to pretend you are able to measure yourself?!
A lot of people do not in fact know how to measure themselves properly for clothes (many people measure the wrong part of their body for the "waist"). Perhaps even more people think they're a certain size, but have never actually measured themselves, they just go by the measurements on clothes they already own, which are frequently "vanity sized" to make people feel better. I don't envy solving this problem between two sets of users: people who actually have the correct measurements and people who believe strongly that they do, but are quite wrong. Imagine how far off you would be if you went by your Old Navy pants: https://flowingdata.com/2010/09/30/advertised-vs-actual-wais...
You’re right! I sew infrequently as a hobby. I always thought my waist was just above my hips. When it comes to sewing, it’s actually closer to my belly button.
The size of the clothes also need to account for the fabric type. If it stretches x%, then you’ll want to maybe make it smaller, so it stretches to fit, or it will look frumpy. If the fabric doesn’t stretch at all, you’ll need to make sure there’s enough ease in the garment so you can bend and move your arms naturally.
> It's possible "AI" may be just a pretext to sell mass-made junk and pretend it is adjusted to each individual.
Actually, I wouldn't mind that too much. It is difficult for me to find well-fitting trousers, so if they can supply those for me, I'm happy as long as the quality is acceptable. Plus their price is roughly half of what a proper tailor would cost me, so I kind of expected them to cut some corners.
I find it amusing that this new meaning is exactly the opposite of the way it’s used in statistics. (Discarding an individual’s particular measurements as noise sounds like under fitting in this problem.) I wonder if this discrepancy has caused any misunderstandings between the AI team and customer service.
There are two areas of technology I avoid these days -- blockchain and AI.
It may very well be to my own detriment (there is a lot of promise in either) but fortunately there are lots of interesting problems outside these areas and I can just treat the mention of either of those topics as red flags.
That said, I want to note that I have had good results with Stitchfix but that was due to entering professionally-taken measurements. I got even better results however, from a local to-order suit maker and bought the full suit there, but basic shirt(s) from Stitchfix
I also had a good experience with shirts, which is why I decided to give the trousers a try.
And yes, my measurements were also from a professional tailor. But the resulting trouser has (among other issues) been "corrected" to a 15cm shorter outside leg length, so I wonder if a professional vs. an amateur measuring it would have made much of a difference.
> I sent in my measurements and they sent me a trouser with wrong measurements and a postcard that said that they adjusted my measurements with AI for a better fit
Whoa.
customer: Please, I need a trouser size 34"
AI: Thank you sir, but according to my data, a 33" will better suit you
And sometimes they would be right; speaking for myself, I've worn baggy clothes for a long time, but at some point I finally managed to lose some weight and got down below 90 kilos, and was able to go down a size pants and shirts (size L), which fit and looked a lot better. Great confidence boost at the time, didn't change anything for my er, relationship prospects though.
It's WFH time now though, I'm wearing 2/3XL shirts (good cut though, they don't look baggy) and pajama pants and have done so for over a year now. I am here for the comfort.
> they adjusted my measurements with AI for a better fit
I'm trying to think of a way this makes sense. Do they have access to some big database about you that they can use to predict how you'll screw up your measurements?
Oh good I am not the only one. Direct measurement would produce the best result here. Not a guess that AI has with 83% confidence level. I usually find a tailor and buy something from them and in the process they will give me all the measurements for everything else.
I wouldn't give their system that much credit -- the belt OP received doesn't even fit the trousers.
;laskdfjls;adkfasd;lfj
That incomprehensible line above was written by my advanced AI. Or I was just lazy and wanted to sell something with a cool marketing buzzword, and without regard to ethics.
I thought that at first, but it doesn't make any sense, because:
You don't have any way to know which of the measurements is wrong.
You don't know what correction to apply. The best you can do is shrink along one or more of the dimensions in the direction of a mean of something, which may or may not be relevant to that customer. In return you intentionally mess up the orders of many customers, wasting their time in the process.
I had a similar problem with StitchFix way back when; after finding out about my profession they truly pigeonholed me into a generic software engineer's fashion, almost caricature-esque.
I switched to
Bombfell and I had been very happy until my cancellation.(canceled cause I wanted to explore fashion myself)
I don't get it... If you send your measurements, why adjust the measurements. I would understand using AI to guess measurements based on a photo - let's say you want to give a surprise gift to someone, so not asking their measurements - but otherwise, it's just unnecessary
One of my favourite articles on the internet is "an app can be a home-cooked meal". It's something you can make for your own enjoyment, with no plans for scaling on monetisation.
I have started making this sort of software, and I thoroughly enjoy it. I target the platform I use, I solve the problems I have, and my only metric is pleasure.
This is the entire premise of Ruby, with Matz openly claiming that it being pleasurable to anyone else but him is a happy side-effect. Part jest, but also very core to it.
I wouldn't have been able to put so much work in maintaining ArchMac for so long without going completely bonkers had I not taken it this way either.
So it’s entirely possible to build large scale projects this way, and I’m wondering how we could make companies work that way too. At the very least it should be part of any employee sustainability plan.
One of the reasons I left software development as a career was I couldn't bear to keep shitting out products that were just barely good enough that the customer wouldn't return it. That's the quality bar in commercial software and I hated having my name on it. I'm more into refactoring it 20 times in order to get the perfect architecture, fix every last bug, find every performance improvement, make it not just work but make the code itself beautiful. Like the Steve Jobs quote:
“When you’re a carpenter making a beautiful chest of drawers, you’re not going to use a piece of plywood on the back, even though it faces the wall and nobody will ever see it. You’ll know it’s there, so you’re going to use a beautiful piece of wood on the back. For you to sleep well at night, the aesthetic, the quality, has to be carried all the way through.”
Obviously, this is totally incompatible with how most software is made in the industry, so I just do it as a hobby instead.
You will like this presentation by Jonathan Blow [1], I feel the same. I am in grad school, but since my bachelor, I felt more like a craftsman than a student, I always spend more time in order to make my code 'look' beautiful to me, and be performant. I would like to work somewhere that puts emphasis on writing good software instead of chasing feature after feature. Speaking of which, speed is an oft ignored feature [2]. It is really frustrating to have sluggish apps and I often end up avoiding them altogether.
Watched the Jonathan Blow presentation and agree completely. There was just another thread[1] yesterday about developers always reaching for the most complicated tools they possibly can, to the detriment of our industry I'd argue.
I think the condition for having this sort of software is that people do it on purpose. The condition for having jobs where people are paid to make such software is that companies focus on areas without competition (otherwise the whole blitzscaling thing applies and they will go out of business). Competition is for losers, right?
What's missing from my extremely simplified model?
I "move slow and make things" in some sense. I will endeavor to use this as a jumping off point for something constructive rather than leaving a pointless whiney comment about how the world will never understand or appreciate me.
People usually just call it AI then and pretend that it's not a problem.
For example, there's been plenty of issues like racial bias with the computer vision algorithms that police uses, which effectively is data science on pictures. But nobody knows why the issue occurs and nobody can specifically fix it without the risk of breaking a thousand unrelated other things.
Sure we do. Photography itself has a racial bias. [0] Different skin tones produce different levels of detail, and it has been an uphill battle to be able to capture those details since the advent of photography.
So long as facial recognition relies on photography, and photography is flawed, then every dataset is biased. Which will exacerbate the bias of the AI, which already has its own set of problems from where those datasets are formed.
No, you don't "know" that your dataset is biased until you perform the statistic analysis explicitly. It might be that your neural net has a non-uniform weight distribution in some dimension (e.g. in time, or in the ordering of the training data), so dismissing any unwanted results by claiming "your dataset is biased" is a form of appeal to (artificial) authority.
Is it a case of BAME have less stable families, are poorer, commit more crimes and therefore are more represented in the data which lead to even more incarcerations?
Funny, I remember thinking the questions were biased, every time they weren't the ones I studied to answer in my exam preparations.
Too bad I wasn't a data scientist or else I could just get a passing grade by claiming the questions were chosen from a biased data set, or retake the exam until the data set matched the questions I studied for, at which point the data set would no longer be biased, lol.
Funny line of work, this data 'science' where you only use the results that fit the narrative you wanted in the first place.
We're in full doublethink mode, just keep repeating data 'science', 'science', 'science'. :)
>In general, if your DS's can't explain the model then something has gone horribly wrong.
With modern ML models data scientists can generally explain why the model should work but not exactly how it gives any specific prediction. Explaining how a model with a trillion parameters comes up with an answer is not a trivial task.
As an aside, this is a hilarious phrasing. What are we going to call these methods in a decade? You'd probably be better off phrasing it as deep neural networks.
It's computationally expensive, and a lot of people don't see the value, but my argument is that if you want to use the model in the real world, and have non-technical stakeholders then you'll need to do this, and in general, I've found it to be the best way to actually improve a model.
And to be fair, if you just need to see how the predictions vary as a function of the inputs, you can again hold all but one constant and run a bunch of different values through the model.
Again, this can all be done, but I think it's more a question of will than capability (and hence the context of my original commment).
>You'd probably be better off phrasing it as deep neural networks.
I phrased it the way I did for a reason. Large Random Forrest models are also not easily interpretable. Even large logistic regression models with feature interactions and feature hashing aren't easily interpretable. It's not a question of the model technique used but rather the amount of parameters and how many feature interactions are modeled.
>And to be fair, if you just need to see how the predictions vary as a function of the inputs, you can again hold all but one constant and run a bunch of different values through the model.
This only provides a partial view of the feature impact due to non-linear interactions.
I have been working on a spread sheet on and off for a few weeks. The data exists, but you can't google the answer(s) I want, so I have been painstakingly putting it together, a few minutes here and a few minutes there.
I've been calling it my "curiosity killed the cat" spreadsheet. Small batch data science sounds so much more respectable while meaning basically the same thing, I think.
I had a similar reaction. It's a nice April fool's joke, but I hoped for an actual counter-balance to "move fast and break things." The book that taught me the value of moving slow in programming was Test Driven Development by Kent Beck, who ironically spent several years at Facebook.
Maybe we will have a chance to move slow and make things one day, or in little moments, optimizing for the well-being of the creator etc. What rings true about it we can mull over in our heads at some point and try to implement in some parts of our lives, like hobbies, vacation, retirement, family time, etc. right?
I've wondered if the software space has been able to get away with "move fast and break things" because liability and regulation haven't caught up with it.
At some point, we started expecting civil and mechanical engineers to stop "moving fast and breaking things." If software engineers were similar licensed and on the hook for signing off on garbage, we'd see a dramatic slowdown of the pace of development, but likely an uptick in quality.
I could imagine it one day even being a bifurcation of the industry. You want to work on cat videos, you can be a non-licensed programmer. You want to work on medical devices or core financial-backbone things? Better be a full-certified Software Engineer.
The issue is that beautiful software is invisible except in open source projects (and even then few people look under the hood). So to an end user only the UI/UX/bugs matter while everything else doesn't.
> it’s hard to do it and still be a viable business
It's not that hard actually, but you must limit growth. You can easily be profitable and make an amazing product if your goal is not $1B in revenue, but just to be profitable at a small scale, which allows you to run things at your own pace.
I know it’s an april fools joke. But I’ve recently “discovered” why this is nevertheless very true. If you move slow, you have a higher chance of meeting the right customer, of actually allowing your idea to grow and improve over time. Without being locked into it in one form or another. Moving slow allows you to work on it as a side project first. Which means no financial stress.
And then making things. To me this means no paper prototyping. Not selling people on your idea without having anything tangible. Some may call it smart. To me it feels like gambling with your believability / integrity. There are only so many times you can do this before people get tired of you and your stories / dreams / business ideas. Just make something, show it to people when it’s actually useful. And feel good about actually having made something people liked. Instead of selling something people liked and then suffer the feeling of non-stop pressure, constantly _not_ being where you’ve told others you are.
> There once was a Master Programmer who wrote unstructured programs. A novice programmer, seeking to imitate him, also began to write unstructured programs. When the novice asked the Master to evaluate his progress, the Master criticized him for writing unstructured programs, saying, "What is appropriate for the Master is not appropriate for the novice. You must understand Tao before transcending structure."
I think even when moving slow, you can still work with prototypes and get feedback as long as you're open about it and you're not taking people's money.
For example, I have https://www.invisible-computers.com up as a website. You can read about the product and you can sign up to be notified. But I won't take a cent until I have a product ready to ship.
I agree, but the general consensus in startup pop-literature (is that a thing? :D) is that you can never be sure unless you ask money and people are willing to pay. Otherwise people can just say they like / want / need it, without risk. I have to say that I agree. Too many times I've experienced that people _say_ they'll pay, but never actually do when push comes to shove.
But when someone does agree to pay (meaning you've somewhat validated your idea) then you're left empty handed and have to backtrack with your first customer. Not a great start. But that's just me :) YMMV
Of course a newsletter signup is not a sale. Not even 1%. But it’s still a signal.
And selling something you don’t have is borderline fraud in my book. Even if you backtrack and refund, it was still a lie and a waste of the customer’s time.
Also if one is selling something one should be aware that now you will have to support it for the next 10 years, even if it turns out to be an unprofitable business.
2. Why such a thick frame? I hope you expand frame choices, or offer a minimal version that customer can frame.
3. I guess you are building a custom UI layout for the calendar data, but please allow any URL to be loaded in the frame, so the community can build custom data views.
I “move slow,” taking the time to test carefully, and leave clean, concise, well-documented code, but I’m told that I actually move at a blistering pace.
I have found there is absolutely no substitute for having an operational, full-feature implementation (I hesitate to call it a “prototype,” because it needs to be fully functional, not just eye candy). I am not a fan of lash-up prototypes, because they invariably become ship code, and starting on a foundation of sand is a very, very bad idea. I short-circuit that, by writing everything as ship code; even my A/B experiments. I can often recycle the rejected code for other projects. It also saves a lot of testing time, as the code is being constantly tested from the start, and being tested while still in scaffolding (meaning more complete testing, overall).
For example, in the app I’m developing now, I’m working on a dropdown screen that allows the user to define search criteria for a database lookup. It’s a complex and fraught operation, and I’ve already had to make a number of changes, based on actually using the facility, as opposed to thinking about using it. If I had simply solidified my original design, it would have been a mess.
I will also be making sure that the facility works for different regions and languages, despite the first implementation being only for the US. It has been my experience that this kind of thing should be built in from the start, as retrofitting it is a nightmare (and bug farm).
My approach does mean that I often need to rewrite a lot of finished, tested code, or throw out big chunks (which is one reason I have a bunch of small, polished, standalone package projects). It’s taught me to design and implement very flexible code (which is actually dangerous, so I often go back, and remove flexibility, once I have settled on an implementation). Nevertheless, I have found it’s the best way to end up with a usable, relevant, high-quality, finished product, that meets the customer’s needs, in a remarkably short time.
DISCLAIMER: This is a viable way to design UX (the kind of code I usually write), but may not be the best approach for “engine” or algorithm code.
Good point, but I have found that just doing it right the first time works for me. In fact, I'm doing it right now. In the Xcode window, I'm building a test release that the team will run and review for usability issues and bugs.
If they find any bugs or issues, I fix/address them before moving on to the next function implementation.
The significant advantage that this confers, is that the app is constantly in "release-ready" form; although incomplete.
Useful, for when we want to ask people to give us money. We just get an NDA, loop them into the TestFlight group, and let them have at it. No need for chaperones from Marketing, or sacrifices to the demo gods.
I lean towards POCs these days because I have experienced the requirements turning out to be all wrong far too often. It's hard for people to know what they want or need before they can try something sort of real.
The problem i have is I get told to write a fast proof of concept. I make it clear that its hacky, poor quality code. Then ill be told to make it live to test it.
Then it ends up in production. Then they want to add stuff to it, which is a nightmare as the code is terrible.
A good example of this wise type of management: Apple let music platforms mature before learning from them to create their own offering to then easily market to their hundreads of millions of users - with the advantage of customers who 1) are generally willing to pay a higher, and 2) Apple gives the App Store fees to themselves.
Their watch, and next the car - will be the next arguably iconic products.
"Move slow and make things" seems like a credo for developer-run Open Source software projects. The software ships when it is ready, not when a commercial entity needs it to.
For a tech business, "move slow and make things" can only be a joke. But for a developer collective, it can be real.
It's really great to read this article: the contrast of text against the background is optimally low, it lets our eyes take its sweet time to recognize letter forms. Sit back, relax and poke your eyes out in pain. What more do readers want! Illegible, dysfunctional and decorative design is the future!
The fact they think that individual customizations of clothing is a joke, when that's exactly what they advertise, says a lot about the company. You're just cattle, and they think it's hilarious you're actually falling for their marketing wank.
I'd _highly_ recommend M-Tailor however as an alternative. It's not a subscription box, but the clothes are extremely well made and the "body scanning" technology actually works (especially for someone of an odd body size like myself: 6'5", 205lbs, athletic build).
Another good company, but I don't know much about other than they're based in Southeast Asia is iTailor. They'll build you -exactly- what you want, to a fault in my experience. Get measured professionally by someone with experience if you're going this route.
I have to admit: if they didn't go overboard with hand-printed cards and carrier pigeons, I'd believe the article.
As others have mused here and I'll join them: we can use a lot more hand-crafted and "slow" approach. We're chasing our own tails -- ESPECIALLY in programming! -- and progress is nearly non-existent.
I mean, in 2021, people are still debugging multithreaded shared state problems. These should belong to the past -- make it impossible on a hardware level as a start, then the programming languages will adapt in a matter of a few months at the maximum.
Exactly because it's fundamentally hard, it must be avoided -- we the humans simply can't be trusted with it (speaking as a former C/C++ dev here).
It should also be hardware-assisted (if it's impossible to stop it at the hardware level). Stuff like atomic counters were a good first step but the state of the art there hasn't moved in a long time (we don't have atomic 512-bit update operations, do we? if we did, a lot of kernel data structures could be atomically updated; this alone would fix a lot of contention problems).
The hardware can also just work in a CRDT/OT-like manner, namely accumulate update requests for a memory location in small queues (that get flushed after 10 nanoseconds or after the mini queue fills up). This could help with a good chunk of the buggy scenarios as well.
Not saying we can make it perfect tomorrow -- of course we can't. What I am saying is that nobody [who can truly make a difference] is even trying.
It gets a bit disappointing and grim after you have been in the profession for a while, you know?
Switch to go and channels. You won’t have to worry about locking any more, the design of your program becomes a data flow design issue. (Speaking as a former C programmer). Hardware takes so long to change but more atomicity would be great, but 8n the meantime go runtime is fast, generally lock less to the per request application code flow, and you use all the cores evenly.
OT isn't done in hardware because it would be a massive waste of transistors. It would optimize many (possibly even most) software and would just increase cost and power consumption.
And constantly reinventing broken wheels in every program isn’t a massive waste of transistors AND electricity?
I get where you’re coming from but that line of thinking got us into that mess in the first place IMO. At one point we should draw a line. Which we still don’t.
This is the way I build cybersecurity opertions centers and ingest data for mining.
Every log structure is analyzed by hand.
Every log structure data behaviour is verified with statistics by hand.
Every log data is normalized by hand.
Every parser is done by hand.
Every log is documented and gets unit tests.
What has not gone through this process ends up in the "automatic extraction" bucket waiting to get human love.
April's fool or not, you may laugh at me.
My L3 security analysts don't.
You joke, but there's some truth to this. Better to have a nice tailored report that shows only what's needed to make a decision, than a dump from Looker, Heap, or just a 200MB of CSVs.
Just a heads up: your website does not render properly on mobile (Firefox for Android). The page is much wider than the screen, but zooming out is not possible.
On a more serious tone: what would take to the IT industry to switch from "move fast and get shit done" to "move slow and make things'?
Geninuosly asking. If it becomes a thing, it would only be because the developers push it further... and HN is full of devs.
I doubt such a perspective would ever come from "lean" managers and the like.
I move slow and make things because my livelihood doesn't depend on it. I have practically unlimited free time and sufficient income, so I can build things that don't matter.
This isn't the case for more people. Time is money, and being slow means you're not earning much for your time.
It's interesting because moving "fast" is very relative to the circumstances you're currently in. If you have an army of engineers, it's very easy to move fast (sometimes, depending on the organization) but moving fast for an individual is objectively slow in comparison.
>our staff of mathematicians who will perform all computations by hand using pencil and paper
This part is about when i started dying laughing at every sentence, before i was a bit confused. But only after checking the comments did i realize it was on 1 april.
I recently ordered a custom tailored set of shirt, trousers, and belt. Their site was bragging about their great AI technology, but sadly I didn't notice that red flag early enough.
The results were nothing short of disastrous. I sent in my measurements and they sent me a trouser with wrong measurements and a postcard that said that they adjusted my measurements with AI for a better fit. The belt they included was a completely different size than the trouser and I'm still waiting for the shirt to arrive. And now I'm fighting the usual uphill battle to talk to a human and get this mess fixed or get a refund.
The core of Stitchfix is personalization, as they say. But that means an individual solution for each individual customer, and not AI for memorizing generic trends in a huge dataset.