You mention choosing between "growth" and "kicking back" - that seems to me to be the key question you need to answer. Do you want to be stretched, or take some less stressful "passive work"? Neither answer is bad, and only you can choose.
Once you know the answer to that, my "3 classes of managers" might help you pick a next step.
Good: These managers actively support you. They know how to play whatever games your company has evolved, will support you through tough times, and create growth opportunities that advance your goals (and theirs).
Useless but harmless: These managers are not actively "good", but they won't stop you serving yourself. You'll need to take matters into your own hands, but when you do, they'll support you. They normally know how to play the company games, and are sometimes "good" managers that have burned out or stretched themselves further than they have capacity for. Finding good mentors can help you leverage "Useless but harmless".
Useless and harmful: These managers aren't helping you, but then actively hinder your attempts to help yourself. They'll block your attempts to achieve things - even if they're good for the team. When you go to them for support that only they can provide (e.g. performance reviews), they won't really listen to your feedback.
Sounds like you're somewhere between "Harmless" and "Harmful", and you need to work out which one your situation is closer to. If you've got a "Useless but harmless", then you're fine. Work with them to generate the outcomes you want, trusting that - in general - they'll support you in "self-management". If they're not helping you and preventing you from helping yourself, then - despite being "nice" - they're probably harmful to your own goals (project and personal), and you _might_ want to consider other options.
I'm not an AI skeptic (this stuff will change the world), but I'm not as impressed as the author.
The primary problem, which seems common to LLMs asked to do this stuff, is "very high level output" - a content smoothie, with few features that are particularly specific to the prompt. The marketing campaign in the OP is so generic, you can `s/Saturn Parable/Any other educational product` and it's still "fine". Similarly the emails - there are 1 to 2 sentences that are product specific, and a bunch of fluff. If I paid a marketing agency for this, I'd be very disappointed.
The LLM isn't demonstrating much more than "Generic templating ability over a large range of templates" in this instance. Whilst that's probably 50% of the jobs in the world, such jobs were already at risk of someone searching for "Basic X template" and expanding the placeholders themselves. I think I could do a similar job in 30 minutes by doing exactly that.
LLM's main wins seem to be providing a single unified entry point to all the templates in the universe. It's a "Universal UI", rather than a "Content creator". I guess I shouldn't discount the value of such a thing, once we get the "Sometimes it just lies" problem under control.
The most interesting immediate thing here is the image generation - that's pretty good, and a big saving over scraping through stock images. I suspect the demise of stock image providers to be the first palpable win for generative AIs, if the copyright question doesn't bog this whole field down.
You note that this will change the world, but then talk about GPT-4 specifically.
The leap from GPT-2 to 3 was enormous. 3 to 4 was enormous, and we’re not even using 32k context yet nor image input. 4 to 5 will likely be as disruptive if not more.
This isn’t about 4. We’re in the iPhone 1 era of LLMs. This is about what the world will look like in one or two decades. And there’s a good chance this comment might age poorly.
That’s a scary thought. I was skeptical of AI, and still am. But it seems undeniable that the world is in for a big awakening. This might be as big of a transformation to society as the introduction of microprocessors.
>This isn’t about 4. We’re in the iPhone 1 era of LLMs.
Well, on the other hand, iPhone 14 isn't that different. Same how a 60s car and a modern Tesla aren't that different. Evolutionary marginally better yes. More convenient, yes. But nothing life changing or necessary. Which is why some folks can even get by reverting to a dumb phone (whereas they wouldn't dream of going pre-electricity or pre-antibiotics).
Also, we were hearing the same about VR in the early 90s, and again in the mid 2010s. Still crickets.
Huh? The iPhone 1 was a toy and lots of people laughed at the users. Today a modern phone is a requirement to be a member of society. It is how I pay for things. It is needed for most of my interactions with friends/family. It is the diary of my life, and the repository of my good memories with its near unlimited video/image storage at a quality only dreamed of when the iPhone 1 came out. Take away a person's iPhone1 and they weren't phased much, taking away a person's iPhone 14 is a LIFE CHANGING experience today. In 10 years taking away your AI will be on the same level, you will function but at a much more frustrating level.
>Huh? The iPhone 1 was a toy and lots of people laughed at the users.
Nothing "toy" about it, it was the most advanced phone on the market. The people who laughed were just the handful of idiots that would laugh because "Apple, har har har" and then go buy the same thing from another vendor. The same kind of Zune buying crowd.
>Today a modern phone is a requirement to be a member of society.
You'd be surprised.
>It is how I pay for things. It is needed for most of my interactions with friends/family. It is the diary of my life, and the repository of my good memories with its near unlimited video/image storage at a quality only dreamed of when the iPhone 1 came out.
None of those are essential, even for a 21st century level lifestyle, some of those are indulgent, others are detrimental. In any case, nothing revolutionary, except if one thinks "I can pay by taking out my phone and pointing it at the gizmo at the cashier" is something far great than "I can pay by getting out my credit card and pointint it at the gizmo at the cashier" (or, god forbid, giving cash and not being tracked).
>Nothing "toy" about it, it was the most advanced phone on the market.
In no way was the original iphone the most advanced phone on the market. Many other smartphones before it and at the time were way more advanced in features and what they could do. What the first iPhone did was make it easy and accessible to everybody, not just nerds. That was the killer feature which made it take over the world.
There was no usable web browsing on a phone before the iPhone. It had the most advanced browser.
There was no iPod level music players on a phone before the iPhone. There were crappy music players you can revisit and compare.
Mail apps on phones were crap.
Messaging was crap, in tiny little screens.
Just a few things.
People reviewing and getting the iPhone the time was wowed and think of it like magic. It's people not having it, and dismissing it outhand because it had a touch screen or because their unusable Windows ME phone had some crappy third party software that didn't get it. Of course all of those got either the iPhone or an Android clone of it very soon and never looked back.
Lmao, I had phones before the iPhone, Ericsson especially that had decent (ie usable) browsers, could play mp3 files etc. And you could install apps on them over wap, take photos/videos etc.
iPhone couldn't take videos as people have already mentioned, couldn't install any 3rd party apps to start with (because Mr. Jobs didn't believe in it), no selfie camera, no torch.
All the iPhone did was streamline people's interaction with the phone, with a large multi-touch display and a simple, intuitive (not anymore though) operating system. They definitely improved things, but in the way that Apple usually does; wait for other companies to do the things, then take the cream of the crop, iterate/improve on them, wrap them up/lock into ecosystem (which some people like) and ship.
This is exactly my point. Everything you have mentioned was available on smartphones before the iphone, iphone just made them more accessible and easier to use. Still stands that the iphone was in no way the most advanced smartphone on the market, it just put a prettier and easier to use interface on these features which led to reviewers being 'wowed'.
> Nothing "toy" about it, it was the most advanced phone on the market. The people who laughed were just the handful of idiots that would laugh because "Apple, har har har"
"toy" doesn't have to mean cheap or low-tech.
The point is that at the time, a lot of people didn't really believe that phones could be that revolutionary - and laugh at the iphone because compared to the blackberry, it has next to no functionality.
Both the iPhone and the iPod arguably took a few generations to really hit their stride. I had a fairly new Treo in 2007 and I just didn't see any compelling reason to upgrade until the 3GS. I had nothing against Apple (I owned a 4G iPod). I just didn't have a compelling reason to upgrade. Verizon also probably had a better network at the time around where I lived and traveled.
This is wrong. I waited in line for mine. It was quite clearly a toy. It was a cool but barely usable tech demo and it was completely outclassed in features and usefulness by contemporary devices like the Motorola Q.
It showed the way forward, but it was a frustratingly limited device and everyone around at the time recognized that immediately.
Can we just accept that these are opinions? I also waited in line for the first iPhone, and it was by far better than any other phone I owned at the time. True, I was not a "CrackBerry" addict as was common for a certain class of worker in the 00s, but the ability to browse the "real" web in a way that was not completely hobbled was just night and day better than other phones at the time.
I agree that the browser was revolutionary - but it was only really useable at home, on my wifi. The 2.5G wireless hobbled it so badly I never used it for anything more than basic info lookups. Web apps were just too painful to use and I could rarely complete an entire transaction with all the loading and back and forth. In the pre-app store era, that really mattered since the web was the only way to get anything done.
Agree with everything you've written, but that's why I said it was an opinion as to how important this was.
At that point around 2007, that vast majority of time I was in range of WiFi: at home, at work, or at a place with public wifi like a coffee shop/library. Totally agree that the 2.5 G made everything super slow, but honestly, in retrospect, that almost seems like a feature vs a bug. I would only pull out my phone on a cell connection for very targeted actions, e.g. pulling up maps, looking for phone numbers or business hours of operation, sending/reading email (as email was a batch operation the slow connection didn't have too much on an impact), etc. Point being that since it was a "costly" endeavor, I would only use it for things I was really intentional about. Versus now, when I'll pull out my phone at the slightest twinge of boredom and scroll, scroll, scroll through HN, Facebook, etc.
The first iPhone was 2G when Europe had 3G since 2003. It didn't have copy and paste. It did have a touchscreen that no other phone had. It was basically and iPod touch with a phone and a 2G modem. My Nokia N70 was a better phone. I waited 4 years to buy a phone with a touchscreen. Then I thought they were mature enough I bought a Samsung S2.
I feel like my life would be less convenient without my phone, but I’d also probably be happier. So idk. There are easy alternatives, like using the website on a laptop, you just can’t pay your bills on the train without a smartphone..
I’m actually getting rid of the cell-phone plan on my iPhone, keeping it as WiFi only, and getting a dumb phone for calls. It may suck but I’m trying it as a 6 month experiment, so we’ll see!
I used an iPad the same way for a couple years with no problems. I have internet with Shaw and they have city wide hot spots so I really could get internet access basically anywhere in town. Now there are lots of voip phone providers you can easily get a number and use it to talk with people.
The first iPhone didn’t even take video out of the box. That is how I learned about jailbreaking because my phone company sold me video messaging on my plan and the phone didn’t take videos! Lol. But if you jailbroke the phone you could get cycorder from Cydia and take videos.
Yes there were other “smart” phones at the time but it truly felt like social media blew up in size with the introduction of the iPhone. And that was revolutionary.
> 3 to 4 was enormous... This isn’t about 4. We’re in the iPhone 1 era of LLMs.
GPT3 is great, but I can't reasonably say that 4 is such a huge advance over 3 in my experience so far. Apparently it's better at some things according to the marketing, but for actual usage I can't qualitatively say 4 is an "enormous" advance over 3. It seems to face the same major shortcomings, and it produces qualitatively the same results.
That brings me to the iPhone bit. Yes, the iPhone was a huge advance, but today looking at an iPhone 14, it largely has the same form/function/features as early iPhones. If you looked at the trajectory of iPhones in 2005, you'd conclude that in 2023 they would be 1mm think and transparent with a holodisplay or something. But instead, in the year 2023, my iPhone 14 looks and functions largely like my old iPhone 4. I mean, it does more stuff better, but I'm still using it to browse the net, text, take pictures, and use the maps app -- the same stuff that made the original iPhone revolutionary.
This sentiment pops up with most somewhat new technology, but in my experience the plateaus come quickly. Going with the iphone. The first was transformative, and it continued to improve but the functional difference between iPhone 4 to iPhone 14 is not that great. Think of the wow factor of showing one or the other to someone from 100 years ago.
The entrenchment of smartphones in society dramatically increased between iPhone 4 and 14. Technical capability is just one axis.
Still, I think LLMs are different than phones in terms of scaling. Faster processor speeds don’t necessarily result in more user value for phones, but scaling up LLMs seem to predictability improve performance/accuracy.
There are no signs of diminishing returns just yet though, and no one knows if that will be at GPT-5 or GPT-5000. I suspect the performance will keep increasing drastically at least until we have a model that's been trained with essentially all available text, video and audio data. Who knows what will happen after we have something that's been trained on all of YouTube. After this maybe we (or an AI) will have figured out how to keep improving without any more data.
yeah it is, gpt3 scored in the 80th percentile for the bar, gpt4 scored top 20 percentile and is much better at math, plus having 4x the context alone gives it much more power.
it's just it's different in capabilities. chatgpt delivers different results and both have unique characteristics.
gpt4 being able to not only create images but also decipher what's in then is another huge advancement.
Gen2 another ai can create amazing videos from a text prompt. Any director or film maker wannabe with more prowess on creating the story than filming it, can now just use ai to create the film from their vision.
even more exciting is the speed that things are progressing. it was supposed to take 8 years to get chatGPT quality training down to 400k price instead of millions. Stanford did it in 6 weeks with llama and alpaca. it can run for under 600 or slower on home PCs.
Analyzing thousands of trends, both industry/niche specific and society wide. Tracking campaigns that work by monitoring social media likes, references to past slogans, etc. Potentially dedicating thousands of years worth of brain power and analysis to the coffee shop down the street's new slogan.
currently using it like driving a junior programmer.
after gpt has written some functions to my specs in natural language.
I can say for example:
- "add unit tests". It writes for all functions tests. Not perfect but not bad for short instruction like this.
- rewrite x to include y etc
the original post way back was talking about marketing, they were underwhelmed. I recently generated some slogans. They sucked.
When someone mentioned predictability/accuracy how does that apply to marketing slogans. I know how it applies to writing unit tests. The unit tests writing comes pretty close to the original posters definition of GPT as filling out templates. The sucky slogans I got were also very template like.
Would accuracy be if slogans did not suck?
At any rate there seems to be a lot of things people want to use it for where the terms accuracy / predictability don't make much sense. So making claims based on those qualities naturally causes me to ask how do they apply to all these cases - such as slogan generation where accuracy predictability are not normally metrics that apply.
I think it's an open question how much better the LLMs will get. However, we should expect adoption and integration to radically transform their usage. Who knows what the Google Maps of LLMs will be.
The first few days I didn't think there was much difference, but after using GPT-4 a lot I think the leap is huge. For things where I would previously use Stack Overflow or some other Stack Exchange, I now use GPT-4 and get a working answer almost every single time, with GPT-3.5 the frequency of working answers was much smaller.
You are working under an assumption that this tech is an O(n) or better computational regime.
Ask ChatGPT:
“Assume the perspective of an expert in CS and Deep Learning. What are the scaling characteristic (use LLMs and Transformer models if you need to be specific) of deep learning ? Expect answer in terms of Big O notation. Tabulate results in two rows, respectively “training” and “inference”. For columns, provide scaling characteristic for CPU, IO, Network, Disk Space, and time. ”
This should get you big Os for n being the size of input (i.e. context size). You can then ask for follow up with n being the model size.
Spoiler, the best scaling number in that entire estimate set is quadratic. Be “scared” when a breakthrough in model architecture and pipeline gets near linear.
I have a sinking suspicion we're not in the iPhone era of LLMs, we're in the "in mice" era of LLMs. I can't elucidate why, but this strikes me as the sort of thing that could either blow up (like the iPhone) or fizzle out (like Theranos), or blow up and then fizzle out (like crypto). And it's too early to know yet which it'll be. Hackernews is making lots of change-everything predictions, but Hackernews was like that about Theranos, crypto, and self-driving cars too.
I wasn't impressed or motivated by the original iPhone when it was new.
I don't know about the future, but by analogy with the past I would say that GPT-3 was the original iPhone (neat tech demo but I didn't really care), ChatGPT is the iPhone 3G, and GPT-4 is the 3GS.
Looking at the sales graphs on Wikipedia (Q1 2012) I think it took until the 4S to transition from "the next big thing" to "the big thing".
Analogies only rhyme rather than replicate, so don't assume GPT needs exactly two more versions to do the same; might be more, might be less, and Uncanny Valley might trigger a Butlerian Jihad at the last possible moment before fully-general AGI.
I think progress is sigmoidal rather than exponential, and it’s very hard to tell the difference in the early stages. But even sigmoidal progress with smartphones was enough to completely upend online society. We adapted, of course, but it looks nothing like it did in 2003. We’re all still using the internet; that’s basically it.
Point is, it could slow down, assuming that AGI isn’t waiting like a cat in a corner. But it’ll still displace a tremendous amount of intellectual work.
Except crypto lacked utility for most people, even early on.
I've spent the last couple of days creating python scripts to automate parts of my business. I'm not a developer (though technical enough to help point GPT in the right direction sometimes when it's getting stuck on problems) and have written <100 lines of python in my life.
I'm using image generation AI regularly to create images for my marketing emails, and when I've got writer's block it helps with the text too.
Right now the iPhone 1 is a great analogy - it was cool but it was really subpar for using a lot of the internet, because it wasn't mobile optimized. GPT takes some coaxing to get it where you want, like you had to do a lot of pinching to zoom in on websites on your phone. In a few generations, this is going to be as seamless to use as the iPhone 5 was compared to the first gen.
And how is that going? Died down? It’s really amusing when I encounter tech savvy individuals who think crypto is hype, little do they realize it’s stronger than ever and central bankers are becoming increasingly concerned.
I don’t think that’s what they are actually worried about. I would also like to point out that the biggest scams, FTX for example,
are simply traditional Ponzi schemes with a crypto front, they have all been executed entirely using regular banking systems and due to the incompetence of those regulators. Bitcoin itself is rock solid and constantly gaining users and influence.
microprocessors? Geoffrey Hinton(I think that's his first name), the grandfather of ai recently said this is like the invention of the wheel, agriculture, or electricity.
ie even more foundational for everything that's coming in the future. ai will be as essential as electricity.
I would like to follow up on "Universal UI" where with Microsoft including this stuff in Office 365 it will kill all kinds of apps/plugins.
This is huge and as a software developer I am now not worried that GPT or AI will write code instead of me.
Big change will be that big companies/small companies/average people won't need as many applications anymore. Software devs as I read various comments fixate on "AI writing code" too much, where real threat will be that lots of code will never be needed anymore.
> real threat will be that lots of code will never be needed anymore.
That's a very good point.
Also, I am working in a very small team, developing a free app, for a nonprofit.
I will be suggesting to our CEO, that he consider ways to use AI to multiply the various things we need to do, in order to polish and launch the app.
We have a tiny, part-time team (except for Yours Truly), so there's a ton of "polishing the fenders" stuff that takes forever. I will suggest that he consider using ChatGPT (or some of the other engines) to do some of this work.
Time will tell, if this PoV is valid. I can tell you that a flashy, sexy demo, is not the same thing as shipping code.
A number of comments state that the quality of the output is fairly sparse, and amateurish, but this was also a very fast, thirty-minute demo of a marketing workflow, subjected to basic AI tools.
This article was the equivalent of those "Write an app in two hours" seminar/bootcamps.
Valid, but also constrained by the need to teach, and to get done within a certain amount of time. Very strict guardrails, and keep your hands inside the car at all times.
I have taken many, many of these courses, and have given a few. I'm quite aware of the difference between what we produce in a class, and what I'd hand to a customer.
What I think we'll be seeing, quite soon, is "one-person shops," acting as studios/agencies that will take on jobs normally done by large shops.
Like bootcamp babes that go out, thinking that they can now deliver a full-fat app to customers, many will fail.
But some will succeed. Lots of smart, hungry people, out there.
We'll look at what can be done with these tools (which, I should add, are still very much in their infancy. You ain't seen nuthin', yet). I don't think they'll be able to write the deliverables, yet, but that's OK. I think we may be able to leverage them to make those deliverables much more polished and robust.
I mean if the work could get done without ChatGPT then it's not getting done with ChatGPT any magnitude faster but it may help reduce the intervallic brain farts by being able to ask more than stack overflow has db results for
Go create a “system” with GPT. You’re going to see a ton of, “I’m sorry, you’re right, the SQL statement is referencing a column that doesn’t exist.” Etc…
Right now, it’s amazing for getting some boilerplate very quickly (so is create-react-app, etc).
It’s bad at context as the problem grows and very bad at subtle nuances.
Working with GPT today is like having a super fast and somewhat sloppy developer sitting next to you.
“Shipping” anything it creates means a LOT of review to make sure no false assumptions are present.
I have been “writing code” with it nonstop for weeks now.
Yes, it’s incredible, but it also has serious limitations (at least for now).
I wonder if there is a way to get chatgpt to check its own work. It has been useful as a method to find new literature for science, but the occasional completely made up references can be frustrating.
> Go create a “system” with GPT. You’re going to see a ton of, “I’m sorry, you’re right, the SQL statement is referencing a column that doesn’t exist.” Etc…
So, you don’t mean “create a ‘system’”, you mean use the UI to talk with ChatGPT about creating a system, rather than using the API and connecting it to tools so it can build the system, verify its behavior, and get feedback that way rather than through conversation with a human user?
I don’t see a difference regarding the work required. If the results are coming from a chat interface or an API, the same problems exist.
There aren’t any tools that I know of that can validate that GPT has correctly interpreted the prompt without any problems related to subtle (or overt) misunderstandings.
This being the case, there’s a lot of back and forth and careful validation necessary before anything ships.
that was actually my point; it's not like you'd ask your CEO for permission to do work that was supplemented with StackOverflow; so just...do the thing that needs to get done, using the sources required to get'r'done
Some people have made a career out of being good at reading, debugging, and fixing complex incoherent code that was written by other people. I imagine those will thrive in the near future.
I suspect that AI will become fairly good at bug-testing and fixing.
I would not be surprised to see AI testing and diagnostics, integrated into IDEs.
For example, UI testing. Right now, it's next to worthless, as it's basically scripting and screengrab analysis.
An AI tester can do a much better job of simulating a user, and analyzing the behavior of the app. Of course, it will be a real skill to set up the boundaries and heuristics for the testing, but it could be very cool.
I suspect that AI will also find a place in security; both in hardening and red-team testing, and in blackhat probing.
You're missing a huge market that just opened up. Writing "plugins" for ChatGPT. Given an API GPT-4 can now use it to complete various tasks. They've shown a demo of it using a search command and a calc command but there is no limit to what these could be. Better dust off those CLI skills since you'll mostly be dealing with text input and output.
Do not underestimate the enormous amount of dysfunctional logic in the non-dev population. You don”t code what they ask, you code what they need. That doesn’t change with AI, it gets worse.
LinkedIn has started pushing generated content it would like me to edit, I think they said they use ChatGPT. All of the content is "okay" but there's no depth, out of the handful of articles I read they both had a section that repeated an earlier idea but with different buzzwords.
I agree, it's impressive how it can generate readable text that provides an overview of an idea. But the overview misses key points, or highlights things that aren't really central. For a lot of things, doing something simple like reading a Wikipedia page is likely more productive.
That's pretty much what I've found when I'used it to try writing articles. They're mostly not wrong. But they lack nuance, examples, links, research references, quotes, depth, etc. They're generally shallow and formulaic. Might I consider using one as a stub to get me started? Sure. On the other hand, that means I need to deliberately break out from the formula. I'm not sure how much time it would save me at the end of the day but I may give it a try on something real one of these days.
I'm looking forward to people being hired to edit ChatGPT output... and watching them prompt ChatGPT itself, or another AI model, to do their work for them.
The most immediate practical result might be that online product reviews written by AI will be indistinguishable from those written by humans, essentially making online reviews useless to consumers as a source of reliably independent information about various products and services.
On the other hand, perhaps AI could help with due diligence types of inquiries from an independent standpoint? A real-time online AI research assistant with web scraping capabilities would be interesting.
That's not completely correct. The review world is roughly splittable in two broad categories, the "expert person" variant (think fro-knows-photo) and marketplace reviews (the reviews you can find on amazon, etc).
Marketplace reviews are well guardable in terms of that you need to have an account there that purchased the same sku.*
Expert person reviews are based on trust. There is a destructive correlations between spaming Ai reviews and creating a valuable brand as an expert person. So you cannot really do a hard play on ai here, maybe a soft one but that would arguably be just "going with the times".
* Some might ask "why does amazon still have issues with review spam?" Answer is that amazon actually has a pretty firm grip on it, nonetheless the marketplace's incentives seem to be such that some slippage is acceptable/helpful for them.
> The primary problem, which seems common to LLMs asked to do this stuff, is "very high level output" - a content smoothie, with few features that are particularly specific to the prompt. The marketing campaign in the OP is so generic, you can `s/Saturn Parable/Any other educational product` and it's still "fine". Similarly the emails - there are 1 to 2 sentences that are product specific, and a bunch of fluff. If I paid a marketing agency for this, I'd be very disappointed.
a) no-one's telling you to just throw the AI output up on to a website unedited, b) does it not give you at least a bit of pause how quickly this is advancing right now?
> no-one's telling you to just throw the AI output up on to a website unedited
Is there a genuine problem that we're solving here?
"Quickly and cheaply create a large volume of mediocre content" will definitely appeal to certain entrepreneurial types, but were we actually short of mediocre content?
What genuine problem are we solving?
Apart from a further lowering of the bar for certain entrepreneurial types to get rich(er) faster, that is.
> The article you're commenting on is only a very surface level use of AI tools.
This really is the problem.
Where are the example of people spending actual considerable amounts of time using these tools to generate meaningful content? Why are articles like this one being upvoted instead?
If what you say is true, shouldn’t we be seeing a flood of amazing stuff created using this tech? Where is it all?
Serious question. I can’t find any.
Where’s “awesome made by gpt”?
Every search result is this kind of low bar “I spent zero effort and got some kind of mediocre output and was amazed!”
When the effort to create content like this drops to zero (and let’s be real, spending 30 minutes using gpt and documenting the results is really basically zero effort), I’m frankly pretty bummed to see this rising to the top of HN.
On the one hand, GPT-4 has only been out for two weeks. Give it time.
On the other hand, if someone is going to claim that GPT-4 can make awesome things all by itself, instead of just toy demos and mediocre content - then they should be prepared to defend their claim with examples. Otherwise it’s just speculation.
When's the last time you built, shipped and wrote an article about an amazing product in less than 2 weeks? 4 months? That's how new these technologies are and you'd have had to be using them and building a produce with them from day 1 for those timelines to pan out. Give it a year and there'll be so many articles you'll be using GPT-4 to summarize them so you can read them all.
I think it might be like makeup and plastic surgery. When it’s done well, you don’t notice it.
I was talking to someone the other day who maintains the social media presence for a motorbike repair shop. She’s already using chatgpt to help her “simplify” the language she posts on Facebook to their customers. Another person I know is an academic. She just busted a dozen or so of her students for using chatgpt to cheat at a university assignment. (She caught students cheating by checking the references - chatgpt hallucinated a lot of fake papers).
I wonder how much content from chatgpt we’re already consuming regularly. How many comments here on HN or articles are written by it? When it’s done well, how would you know?
A fair sized pause, sure. But if the argument is “Don’t throw it up unedited”, and what it provides me is bare bones generic/junior stuff, I’m not sure of the huge win at this point in time. The world wasn’t short of “Generic low grade copy” templates before LLMs. It just saves a few steps in the copy/paste.
I'm not sure GPT5 will feel appreciably different on this type of task necessarily. GPT-4 feels a lot like GPT-3 for a pretty wide variety of things, but it's when you get higher complexity tasks that you start to see differences.
>If I paid a marketing agency for this, I'd be very disappointed.
You'd be. Most people wouldn't even notice or care, whether it's the ones paying the marketing agency, or the ones being shown the content as potential customers.
One little wrinkle I will add to your point, which is a very good one just so we’re clear, is that with chat GPT it does away with needing to know how to ask your questions, where to find your answers, how to implement them, etc.
I can literally tell it “write me basic code to do ‘x,’ now explain how to add it to my squarespace site.” In many cases it will just spit out exactly what to do. As we all know, part of knowing how to do your job well is knowing how to find answers. In some ways chat GPT makes that step even easier. At least in the use cases I have found so far.
> If I paid a marketing agency for this, I'd be very disappointed.
A marketing agency would have spent at least a few weeks gathering specific information about your company, the article allotted two minutes.
How many more minutes would you need to devote to giving ChatGPT more specific information before it could match the marketing agency's output? Not weeks surely. What's the cost difference in both time and money? Multiple orders of magnitude.
> If I paid a marketing agency for this, I'd be very disappointed.
But you didn't. You paid only a few cents. You're probably not using it for a million dollars ad campaign but many people could use it to make their communications look better in less time. Same thing as using a stock PowerPoint template instead of paying an agency to create one. Good enough for most of us.
More training data and token lengths seem to help, given how GPT-4 scores better on a lot of standardized tests than 3 and 3.5 do.
We don’t necessarily need to teach it not to lie, but just to improve accuracy through better training and training data. It (probably) won’t ever be 100% reliable, but what is? Google searches can be inaccurate, same with Wikipedia and other encyclopedias.
The model does think but only when you tell it to think out loud.
This is less a weird quirk of the training data or a One Weird Trick That Makes Your Matricies Sentient, and more a limitation of the model architecture. Neural networks do not have the capability to implement 'for loops', the only looping construct is the process that runs the model repeatedly on each token. When you tell the model to "think out loud", you're telling it to use prior tokens as for loop state.
Another limitation is that the model can't backtrack. That is, if it says something wrong, that lie is now set in stone and it can't jump back and correct it, so you get confidently wrong behavior. I have to wonder if you could just tell the model to pretend it has a backspace button, so that it could still see the wrong data and avoid the pitfalls it dropped into before.
GPT generated "ideas" strike as wanting to use a swipe file. Only instead of it being full of persuasive, high-performing marketing materials.. it's just fast and prolific
I don't think "templates" is a good descriptor to use here, since the number of required templates is beyond any reasonable number. Just taking 10,000 words, there are 10^40 possible ten-word sentences. A ridiculous percentage of those are nonsense, but even if that fraction is 0.000000000000000001%, that leaves 10^20 sentences to template for, which no modern computer can accommodate for.
I'm not sure what a better metaphor is; each thing I consider ends up defaulting back to what a ML model actually is, without really "metaphoring" at all. But not templates.
"I suspect the demise of stock image providers to be the first palpable win for generative AIs, if the copyright question doesn't bog this whole field down"
I'm surprised the copyright issues aren't given more attention. It's technically not legal (in the US) to modify copyrighted images without the authors permission. I don't see how it's possible that systems like DALL-E haven't already done that. There's a near 0% chance that they aren't trained on at least one copyrighted image.
Humans photographers are also trained on copyrighted images.
They look at countless numbers of them and learn what is the correct "professional style", etc. This is why you can instantly recognize most stock photos, because they all follow the "stock photo template".
The difference is that AI models so closely recapitulate specific features in copyrighted images that stock image company watermarks show through [0]. This is several levels beyond a human artist implicitly getting inspiration from copyrighted images, and more on the level of that artist explicitly copy/pasting specific pixels from them.
That's exactly my point — they replicate highly specific features in images with such fidelity that their training is not analogous to humans' artistic inspiration.
They replicate common features. If you paint the same happy little tree in your picture as thousands of other people then it will probably show up in an image produced by a model trained on those images but your tree is hardly unique then isn't it?
How is the ai supposed to know these watermarks aren't a style element? They're present in tens of thousands of input images, after all. Therefore, I'd say this is a bad example of an AI literally copying from one specific source. It's similar to it using Arial letters: they're everywhere in the source data.
The i stands for imagination/ignorance at the moment. Intelligence (or something indistinguishable from it) doesn't seem too far away but isn't here yet.
So all we have is a dumb bot that can appropriate styles and ideas. Revolutionary, but not quite to the extent needed to sue it for copyright.
Copyright law doesn't work like that for photos. When you take a photo of something you become the owner of the image.
In the context of AI, the issue is specifically with using a copyrighted image and creating something new based off of that. That is explicitly illegal for human artists.
But where do you draw the line? If AI imagines 3 people around a business table in front of a flip chart, is that copyright infringement on similar stock photos? Note that in the AI created image, the people are unique, they never existed, the business table is unique, the flip chart is unique, and in general you can't point to any existing photo it was trained over and say "it just copied this item here".
If so, why isn't it also copyright infringement when a human photographer stages another similar shot?
Well that's sort of the whole thing with copyright law. It's fairly arbitrary. Copyright specifically forbids derivative works:
"A derivative work is a work based on or derived from one or more already exist- ing works."
It's vague on purpose because copyright infringements generally need to be handled on a case by case basis.
Now there are AI's trained on images that are copyrighted. If the image is copyrighted, should the AI have been allowed to train on it?
The reason human training/inspiration isn't specifically forbidden is because it can't be. We are impressioned by things whether we like it or not. Regardless, we can't prove where someone's inspiration came from.
But the act of training an AI on copyrighted images is deliberate. I feel that's a key difference.
> The reason human training/inspiration isn't specifically forbidden is because it can't be. We are impressioned by things whether we like it or not. Regardless, we can't prove where someone's inspiration came from.
And there's plenty of cases that say if you're too inspired, that's illegal and/or you own damagaes/royalties.
Then the AI is performing a sort of collage of copyrighted work and the AI / prompt writer would not own the copyright to the derivative work. If a photographer stages a photo based on an existing photo, and it shares enough features with the original work, it likely would be copyright infringement.
The court has already ruled that you can't own the derivative work anyways, because copyright law requires an individual artist. If I ask bob to make a picture for me, bob actually owns the copyright to start (but can assign it to me). I don't automatically get given copyright because I 'prompted' bob with what I wanted drawn (draw me a mouse). Copyright is given to the artist on the artists specific output.
If I ask an AI for a picture, there is no artist 'bob' to be assigned ownership under copyright law and therefor it's not copyrightable under existing law.
Funny how originally all these pro-AI art people were anti-copyright law but I can see them sometime soon lobbying for MORE restrictive copyright law (granting it in a larger pool or circumstances hence making more things copyrighted) so that they can overcome this.
It’s explicitly allowed to create new based on photographs, assuming the resulting work is not similar with the original
> For example: if they base their painting on an oft photographed or painted location, generic subject matter, or an image that has been taken by numerous photographers they would likely not be violating copyright law.
> However: if they create their painting, illustration or other work of art from a specific photograph or if your photography is known for a particular unique style, and their images are readily identifiable with you as the photographer, and an artist copies one of your photographic compositions or incorporates your photographic style into their painting or illustration they may be liable for copyright infringement.
"incorporates your photographic style into their painting or illustration"
Seems pretty cut and paste to me. If it has trained on my images and then uses that trained dataset to generate new images those images are in violation. Using training sets that include unlicensed copyrighted works requires attribution and licensing. TO be legal otherwise the end user/AI company would have to be able to prove in a court of law that without training on my copyrighted work it would have still generated that specific image which I can't see the users/company being able to do.
It is not illegal for a human to look at something another human created and learn composition, strokes, lighting, etc... and then apply it to their own future creations. This is all the AI is doing.
Taking copyrighted images and dumping them into a machine learning model is deliberate usage. The AI isn't a person, so it doesn't draw on past experience by happenstance.
AI is just a lossy form of storing the copyrighted work and using pieces of the copyrighted work for future output. It definitely requires licensing of the works stored (I mean 'trained on')used if used outside of 'personal use'. I can't just re-compress a tons of pictures into crappy jpg format and then use them however I'd like. I also can't just come up with a new format for machine storing copyrighted images to be used for creating derivative works, call it AI, and say it's 'different'. The AI company has to be able to prove in a court of law it could have generated the image if it hadn't been trained on my copyrighted work. We already covered this area of law with sampling in music. If you didn't want to continue over ownership of the work from the owner of the 'sample' you either license it or.... don't use it.
if it is storing the copyrighted work, then I'm sure you could point which part of the weights corresponds with a specific work, right? Same way that you could do it if we were to "re-compress a tons of pictures into crappy jpg format", or if we were "sampling music". Oh, you can't do it? Then, I'm afraid it's not the same.
It's hugely different - imagine the number of decisions a person makes when making an oil-painting - each stroke is somewhat influenced by past experience but also by the current state of the painting, their emotional state etc. The AI is just directly interpolating based on past input.
Making the two processes equivalent is very reductive.
The AI is a product created by a company. A vacuum sucking up the scraped remnants of the internet. Hundreds of millions of dollars are spent to pull this off. Stop acting like this is a human or anything resembling one. This is a product and not a person.
Yes, it can be illegal. It happens plenty of time in music, where artists produce songs which are too similar to previously existing songs, and owe damages.
Am I allowed to take an imagine and apply a lossy algorithm (say jpg) to it and then use it as my own for business purposes? Nope. You say learn, I say apply a lossy algo and then use the result for business purposes. Seems like clear copyright violation.
This kind of 'training' is not at all equivalent. There's a reason copyright places value on the expression of an idea (i.e. taking the photo) - image-making is difficult and was a valuable skill, even for a stock photo.
Getty's case is active in the court system in multiple jurisdictions, until we get there outcome of that weren't not going to have a resolution of this. Unless countries legislate/decide to allow training on publicly accessible documents, eg as Fair Use/Fair Dealing or whatever.
In short, the copyright issues appear to be given a lot of attention? Legal precedent takes time.
This will take years for the courts to figure out. In the mean time, Adobe Firely has apparently not been trained on anything copyrighted, so people that are nervous about lawsuits will use that.
Isn’t it just fair use? Reading the four factor test for fair use it seems like these generative models should be able to pass the test, if each artwork contributes only a small part to a transformative model that generates novel output. The onus will be on demonstrating that the model does not reproduce works wholesale on demand, which currently they sometimes still do.
Arguably also, the copy is achieved at generation time, not training time, so the copyright violation is not in making the model or distributing it, but in using it to create copies of artworks. The human artist is the same: in their brain is encoded the knowledge to create forbidden works, but it is only the act of creating the work which is illegal, not the ability. The model creators might still be liable for contributory infringement though.
Anyway, I reject the notion that any use of unlicensed copyrighted works in training models is wrong. That to me seems like the homeopathic theory of copyright, it’s just silly. If copyright works that way we might as well put a cross over AGI ever being legal.
Should the model be allowed to train on the copyrighted image in the first place? I think, the answer is no. If I'm an artist, I don't volunteer my art for you to do what you please.
Now consider that these systems are already being used for profit, before this matter has even been settled.
But why? Most people don’t need the bar set that high. Most people just need B+ writing with half decent conversions.
If you can get 80% of what you want with a cheap or free tool vs 100% with a full-time salaried employee/expensive freelancers, well, most people are going to pick the former.
I do this as a video editor all the time. If I have a fast turnaround often times I will just drop a LUT or use auto color correction in my in NLE. Of course I will sand down the edges afterwards, but it’s not like I’m going to give every single video that crosses my desk the full color grading treatment. Not everything requires that.
The Monty Hall problem continued to short circuit the “intuitive reasoning” part of my maths brain until I saw it explained as “Imagine there are a million goats and one car. You pick a door, Monty opens 999,998 doors. Should you switch?”, to which the answer is clearly “Of course” (you had a one in a million chance the first time). Then reduce from there.
The problem with the Monty Hall is that there is a hidden rule that people never explain. If you put there rule there explicitly, it's reasonably easy to see that the presenter is messing with your up-front probabilities when he opens a door.
When the problem was originally going around, this wasn't so hidden. There was a cultural awareness of who Monthy Hall was and experience with the show Let's Make a Deal, and that he never showed the prize door (although, he was not bound to the presented rules). Although, personally, I remember being explicitly told that the host knew where the prize was and so knowingly opened a non-chosen, non-prize door.
My brain still wants to short circuit to two doors, one prize, random selection, 50% chance.
> My brain still wants to short circuit to two doors, one prize, random selection, 50% chance.
This seems to be a wide-spread belief/bias ... if there are two choices, two options, two outcomes, then it's 50:50.
OK, I buy a lottery ticket ... either I win or I lose, so it's 50:50, right?
Of course not. If you can start to see, by default, that two options are not usually equally likely, then you start to lose this misconception.
But really, you always have this situation: the prize is behind the door you chose, or it's behind one of the other two. That always remains true, so your probability of having the prize is always 1/3, even if you get to see behind one of the other doors. You're still sticking with your original choice, or switching to both the other doors (although one of them is open, so you ignore it).
Exactly: what counterintuitively changes the overall probability of picking the correct door is Monty’s introduction of new information that biases the contestant to the right choice. Many years ago I was in such disbelief about this result that I wrote a little Monte Carlo simulation to “prove” I was right. In fact, it proved I was wrong!
The original problem formulation lacked it. Also this comic lacked it. Most people who describe the problem doesn't include the titbit. It is a very misunderstood point, you can even see it everywhere in this thread.
You're entirely right, and in your other comment as well. I just recognized this was about Monty Hall and didn't even bother reading the details. I also assumed other people would do the same: mentally invoke the entire paradox. It is indeed true that someone discovering the paradox with this comic wouldn't have nearly enough info to understand it, and would be correct to say it's wrong.
Based on him knowing where the prize is, it’s hard to escape the idea that he’s only showing you a new door because you picked the right one, therefore intuitively you feel like you should stick with your guns. At least if you’re wrong the way you chose, you won’t feel like you’ve been manipulated.
This isn't the Monty Hall problem though. The comic doesn't mention the show. It just has a similar setup so people just jump to the same solution even though it is wrong in this case. The correct answer is that it is impossible to know what the chances are if you switch since the problem lacks enough information to tell.
How is it wrong in this case? your picked door had a 33% chance to have a price, since its one of three doors, now that a goblin is revealed the other door has a 66% chance of hiding the price. exactly like the monty hall problem
No, you are wrong. The way the comic described it only describes a single instance of the host opening the door in this case. It could very well be that this host doesn't want you to win, and thus reveals another door and tries to goad you into switching only when you have picked the correct door. That is a very reasonable interpretation of a game like this, and in that case the correct answer is to not switch.
If you think that this description means that the host always opens a dud after you open the first, then you are wrong. It doesn't say that anywhere, and there is no reason to believe that this game show works that way. The only reason you think it does is that you connect it to the original Monty Hall problem which worked that way, which causes you to make the mistake thinking the same rules apply here.
I thought about it some more, if the game is never played more than once then there's no strategy to develop for both the monty hall problem and the problem described in the comic, therefore that's a moot point. but if its played more than once then your evil host that sometimes opens a door doesn't make sense.
If the host always opens a dud then its a monty hall problem. but if the host sometimes opens a door, the host still can't do it every time you land on the price because then you wouldn't switch. so the host would have to sometimes open the door when you're on the price and sometimes not. But then when he opens a door it would indeed become a 50/50 so an evil host's best option is to never open a door in the first place.
I'm in the UK and our local ISP was doing Video on Demand over TCP/IP around 2000, it also had online shopping (deals with local stores), movies and TV shows.
They where early with a massive ADSL rollout so they had the bandwidth when much of the country was still on dial-up.
We had it as part of the beta period when I lived at home and it was really good for the time.
Actually earlier than that, 2002/3 iirc, I know as I tried it out and it at the time used a p2p distribution method, which was a bit aggressive and you could close the client and still get requests days later from other clients due to caching.
Which for online gaming and the cutting edge broadband of 1MB down, just didn't sit well with me. So I gave up on it.
Also of note, they did trial 3G before it rolled out publicly with Three and one of the first tests was to stream a film, which they did (The Matrix) as a test, this was 2002 . I know this as spoke with few of the chaps working on it at the time over lunch one day as I was working for the World Service upon a digital playout system that would see the death of tape and full digital end-end system for the entire BBC radio output. Fun times.
Though around that time the current government (Labour) was busy outsourcing much of the BBC and we saw many whole area's tupped out, which was sad as I'd previously worked at the DOH and saw the whole splitting up and effective prioritisation of whole rafts of the DOH/NHS under the guise of outsourcing and other less well thought out short term quick fix, long -term debt bombing nightmares.
See that's kinda the thing - politics and such things often clash and in the UK it's been a see-saw of one party then the other which has seen many short-sighted moves for short term on paper gains of back patting, and the fallout pushed onto the other party once they take power. Hence many things over the past few decades been stymied and handicapped in the UK in government departments. Seen some serious talent wasted, messed about and general mistreated - just to make a set of accounts look good in the short term.
Actually, the misunderstanding is yours. Technical issues are a small part of the challenge. The 'iPlayer' is not the product, for the most part, the content is.
Because UK competitors are not going to provide the BBC any content, and they don't have the kind financing to buy from the US, who even then were not up for this kind of deal and it took an incredible bit of BD innovation by Netflix to even get that going. The BBC would have been be able to put its own content on the web, and not much more, which is not much of an innovation.
Finally, there's a good reason the BBC's charter is limiting in scope, like any other business, how would you like it if you were suddenly found out of a job because someone with incredible power in the government was able to waive their hands, raise taxes/fees thereby 'forcing customers to exist' for their competing product, which is probably inferior by virtue of the fact they don't actually have to provide much value at all and can continue on with their guaranteed revenue stream?
That’s not entirely fair IMO. The BBC already had deals with ITV and Channel 4 to put their content on the new Project Kangaroo service before it was killed off.
It's fair because there's an underlying competitive issue: if said new project represented in any way a threat to those other entities, they would not, or stop providing the content.
For example, Disney has pulled their content from Netflix.
> The BBC iPlayer was streaming video to the whole of the U.K. in 2007.
Exactly. In 2007, The BBC believed that the UK == The World with iPlayer. So no innovation from them happened until a new challenger approached.
I was on holiday in another country and attempted to watch iPlayer shows and access was blocked (and is still blocked) even with a VPN and I used to pay for their TV license at the time. I'm not surprised why many kids these days choose online instead of TV to watch when they want, where-ever they want rather than wait. Also BBC iPlayer programmes still have a habit of 'vanishing' if you wait too long.
The technology was available only in the UK and the BBC was ahead of its time with iPlayer but Netflix said "Thanks for your idea and we're very inspired by the BBC..." and repeated this and made it accessible to the whole world which the BBC is still left wondering why they didn't succeed after getting disturbed by Netflix in 2010.
> Exactly. In 2007, The BBC believed that the UK == The World with iPlayer
The complaints you make are largely directives from the regulator. The BBC has only recently managed to get the regulations relaxed so it is permitted to keep programming on iPlayer longer than a couple of weeks. The lack of access outside the UK largely stems from its requirement to licence content from independent producers and enable them to re-sell the content to other international broadcasters. You couldn't watch iPlayer overseas because in many cases the BBC (due to regulators' directives) did not hold the rights to show its programming to you outside the UK.
This is a nice micro-tutorial, but it does not build you a production ready system. You don't seem to get backups, redundancy, automated updates, replicability, or anything else that most people would view as mandatory. It seems just show how to rapidly setup a one-off pet server?
You almost certainly don't need containers. Just use a PAAS (platform as a service). Heroku is the "go to" default, and will be worth much more than they charge. If you're worried about scaling, I've run off the shelve PAAS providers past 5000+ TPS without any issues.
If for some reason you can't use Heroku, you could try a hosted Cloudfoundry (https://run.pivotal.io). If you want something that hybridises PAAS-like behaviour with the big IAAS services, Amazon's Elastic Beanstalk isn't entirely awful. All these setups largely honour the PAAS haiku of "Here is my source code / Run it on the cloud for me / I do not care how" (https://twitter.com/sramji/status/599255828772716544?lang=en).
Don't waste your time on getting container orchestration going, or even containerising your app yet. For internal, low scaling, app-focused scenarios, you'd be mad to go down this road _unless_ your code has been broken into many discrete deployable artefacts _and_ you need to run them all on the same machine (either locally or in production).
You have an app. You want to run it. PAASes do _exactly_ this.
Edit: I see you're worried about costs. PAAS are pricier than the equivalent AWS instance when you consider raw compute, sure. However, factor in your time in creating the same level of redundancy, deployability and monitoring, I'd be shocked if Heroku wasn't an order of magnitude cheaper. Note that PWS Cloudfoundry will host you any 12 factor app for $21.60/GbRAM/month with no bandwidth limit you'll ever hit.
I should have made it more clear, but one need of mine (as mentioned in another comment) is a deployment system that supports the ability to manage very old, archaic, wonky systems. WinXP, Win95, etc. Do you recommend any tooling to support this?
PAASs aren't going to help me much in managing our resources like physical legacy machines. Thoughts?
Depends on what you want to do with these machines, but for multi-OS setup you need VMs. I guess you could check out Vagrant, maybe with some AutoIT to help you avtomate tasks inside Windows. It won't be pretty, but it will work.
K8S won't support them either. K8S doesn't support Windows at all at the moment. And even when it does, it likely won't support WinXP.
To add to that, the container story for Windows is pretty dismal right now, even on Azure. I was at Microsoft Build this year, and most of the PMs gave me the impression that Windows containers were an afterthought on Azure due to lack of use -- Linux support were priority. I also did some PoCs on Windows containers both on-prem and on Azure and they were unwieldy and buggy. The microsoft/windowsservercore Docker image is also a very heavy image at 10+ GB. The microsoft/nanoserver image is smaller, but has certain limitations.
tldr; if you want to use containers, go with Linux.
If you really need XP support, VMs are your only option. Tools like Hashicorp Packer [1] may be able to help with managing machine images.
i think kubevirt is being rolled in soon. It adds a VM type to the set of things k8s can manage. i'm not sure what's required inside the vm to play nice. I haven't used kubevirt at all. But it might be worth checking out.
Yea it containers definitely won't. Though something like Nomad _(as I'm researching now)_ that tries to manage both physical machines and container fleets might fit nicely.
Is there any advantage in seeking visas for less trafficked parts of the US tech scene (e.g. not just SF, Seattle, etc)? Or is the location of the employer entirely divorced from the success rate?
Flyby comment: As someone who straddled academia and industry (but mostly research; never lectured), you have a unique advantage you should utilise: You've done both.
First, most of your students are not going to be academics. They're going into industry. Second, most academics don't have industry experience. They can't link, with the passion of personal stories, the knowledge in the lectures to the work their students will actually be doing.
You can. Use this; liven up the drier parts of the course with war stories. Give concrete context to the abstract. Give them the experience that only a teacher who's been in the trenches can offer.
Well sure. If you basically redefine Malware to be "Anything other than GPL software", then you're going to consider most software malware. That doesn't mean it's the definition of Malware that most (i.e. all) other people will use, and it doesn't really advance the discussion. It mostly continues to make GNU look like fringe lunatics.
Moreover, whilst I don't really object to hyperbole in pursuit of a crusade, I don't greatly appreciate this type of cross-talk. It's hard enough to keep family members free of actual malware without confusing them with comments like "iOS itself is malware".
GNU seems to define anything that works against the interests of the user as malware. That's a broad but by no means crazy definition, and it it interesting that a lot of "legitimate" proprietary software is malware by that definition.
And, in this case, they seem to be using an even narrower definition than that. The things listed on this page are considerably worse than just using the wrong license.
I'll stand by my assertion that for 99% of users (maybe even 99.99%), Kubernetes offers entirely the wrong abstraction. They don't want to run a container, they want to run an application (Node, Go, Ruby, Python, Java, whatever). The prevailing mythology is you should "containerize" everything and give it to a container orchestrator to run, but why? They had one problem, "Run an app". Now they have two, "Run a container that runs an app" and "maintain a container". Just give the app to a PAAS, and go home early.
Most startups - most large companies - would be far better served with a real PAAS, rather than container orchestration. My encounters with container orchestrators is that ops teams spent inordinate amounts of time trying to bend them into a PAAS, rather than just starting with one. This is why I don't understand why this article lumps, e.g. Cloud Foundry in with K8S - they solve entirely different problems. My advice to almost every startup I speak to is "Just use Heroku; solve your business problems first".
The article also mentions it enables "new set of distributed primitives and runtime for creating distributed systems that spread across multiple processes and nodes". I'll throw out my other assertion, which I always though was axiomatic - you want your system to be the least distributed you can make it at all times. Distributed systems are harder to reason about, harder to write, and harder to maintain. They fail in strange ways, and are so hard to get right, I'd bet I can find a hidden problem in yours within an hour of starting code review. Most teams running a non-trivial distributed system are coasting on luck rather than skill. This is not a reflection on them - just an inherent problem with building distributed logic.
Computers are fast, and you are not Google. I've helped run multiple thousand TPS using Cloudfoundry, driving one of Europe's biggest retailers using just a few services. I'm now helping a startup unpick it's 18 "service" containerised system back to something that can actually be maintained.
TLDR; containers as production app deployment artefacts have, in the medium and long term, caused more problems than they've solved for almost every case I've seen.
Containerization helps with one thing: end-to-end dependency hell management. You get the same executable artifact in prod and on every dev machine. You get to share arcane tricks required to bootstrap library X. You get to share the complete recipe of building your OS image. Hopefully, you pin versions so your build is not subject to the whims of upstream.
Kubernetes helps with one thing: taking your container and running it on a fleet of machines.
Building 18 services is an architectural choice made by the team. It has nothing to do with containerization or Kubernetes. For a single team, a monolith just works most of the time. You may consider multiple services if you have multiple [large] teams, think Search vs. Maps. Even then, consider the trade-offs carefully.
I deploy code with all of the dlls in separate folders. The executables/services don't share any dlls. I kept asking the "consultants" who are trying to push us to Docker, what is the business value over raw executables + Nomad.
The build server creates one zip file that is stored as an artifact that gets decompressed and released in each environment - in a separate folder.
> what is the business value over raw executables + Nomad.
It's not a given than any of the major business value generators are relevant to your shop, your domain, and your business demands. KISS is always good advice.
Low hanging fruit: Nomad (backed by HashiCorp), is a direct competitor to kubernetes (backed by google). One of those solutions is available turn-key on every major cloud provider and also the premiere Enterprise VM management solution. The other is called Nomad ;)
Raw executables pack up very nicely into containers, so if you're able to exist happily with just apps then just apps in containers won't change much (and therefore look like extra work)... For numerous domains raw executables are just a percentage of the deployment. Be it third-party apps/drivers that need to be installed, registry fixes, or whatever the Ops demands for server maintenance are a non-starter. And then things like load balancing and dynamic scaling pop up...
More importantly, for what I do, the binary validation of an immutable server in multiple zones is critical to ensuring security. Nothing can be changed, nothing shall change, and every point of customization will be scripted, or else it can't get near our data.
Cross platform and legacy scenarios are major players. More pressing, though, are the application level primatives that k8s provides in a cross-platform cross-cloud manner (which can also be federated...), so that your scaling story is adequately handled and your local apps become much more robust and cloud-native.
Bottom line: it's not a given that k8s will improve your life, here and now, apps + Nomad is viable. For the broader eco-system though the "other stuff" in k8s, and the rigidity/stability of dependency graphs in containers, are clear value drivers and highly meaningful.
Yeah KISS was very important when I first started working at my current company. I was hired to setup a modern development shop with three database developers who were just learning C#, no source control, no CI/CD, basically no development "process", they ran a lot of things manually.
I was going to be introducing a lot of changes.
Every decision I made was based on keeping things as simple as possible to keep them from getting frustrated. If that weren't the case, I would have gone straight to Docker. Knowing that I might need that flexibility later but didn't want to commit right now, I chose Nomad because I knew it could both handle phase 1 and allow us to move to Docker once appropriate.
But now, that we are in AWS, there is a big push to get to the next level of cloud maturity - not just moving VMs to the cloud, but how to take advantage of a "cloud first" approach and actually take advantage of some of the features that AWS offers.
So in that vein, there is a need for Docker to go "serverless". Lambda is not an option - we have long running processes.
Even when we do go to Docker, we will probably make a transistion from Nomad straight to Amazon's Fargate.
I see a path where we move from .Net 4.6 to .Net Core and Docker with Nomad to Fargate.
The only issue with Fargate for us now is the added complexity that Fargate only supports Linux containers. I don't know how much of a lift that would be. Theoretically it shouldn't be much with a pure .Net Core solution.
You are remarkably well positioned to take advantage of any solution from what you've told.
My group is skipping Kubernetes to go straight to Fargate and we are... not so we'll positioned as you happen to be.
Much to my chagrin, as a newbie to AWS who has loads of homegrown experience with Kubernetes and its predecessors (Fleet, etcd) I am wholly reliant on the AWS solutions engineers we have in-house to help me navigate this thing via CloudFormation and friends, it's too much for one person to figure out in 20 hours during a pilot/assessment study.
I am an application developer who learned Kubernetes in his free time over the past 3 years because it was free. There are thousands of us, with computers in our basements, learning these systems on our own, with no institutional support. Sure, I needed lots of help, but I didn't have to spend money on cloud instances just to learn, or be sure to remember to terminate them when the experiment was over.
By contrast, AWS has only just made Amazon Linux 2 available to run on your own machines less than two months ago. There is still no way to set up ECS or Fargate on our own metal, and probably never will be, because Amazon does not see a reason for it.
Vendor lock-in is real and it has casualties! There are real negative effects that you don't see. If you say "I would not hire someone like you because you have specific skills I won't take advantage of," you have to ask yourself is that because of something that I've done or is it something that Amazon is doing.
If you're juggling multiple incompatible versions of application servers across multiple platforms across multiple datacenters and multiple cloud providers with multiple dev teams... you're gonna see some real value to those kinda of "solutions". It's not random that this tech is coming from cloud leaders and Entprise shops, and they don't address problems common to development, they address problems common to cloud apps and cloud heavy Enterprise shops.
I think Assembler looks like ass and it doesn't add much to how I want to program... It's still frequently used, though, because it solves problems other than the ones I have.
We have a bunch of apps that run based on some type of external event - a time interval (Nomad supports cron like scheduling across an app pool), a file coming in, an external event, etc.
We submit a job via the api and it runs the job on whatever server has available resources. We specify the mininimum amount of RAM and CPU needed to run a job. If too many jobs are queued on a regular basis, we can either add more RAM or CPU to an existing instance or add another instance and install a Nomad agent.
Yes I know k8s can do the same thing but we don't have to use Docker, we can though.
That is a solid solution. As long as everyone in the ecosystem is on JVM, more power to you. If, for example, one needs to interface with some cutting edge DL modules written in Python, one needs something else. The transitive closure over "something else" is called "containerization".
PS. Maybe "EAR" also supports Python. But then I'd argue "EAR" is a "container".
With python you then use wheels + virtualenv, for Ruby you can use bundler. Each language has this issue solved.
Using containers is essentially:
- uh, I have problem with these dependencies, dealing with RPMs is such a nightmare, I need to generate OS specific packages and there might be conflicts with existing packages that are used by the system...
- oh I know, let just bundle our app with the entire OS!
If they are minimalistic and hold the app then this makes sense and then containers are essentially an unified packaging format that is accepted on "serverless" public cloud. This provides a value because you can then easily run your application on multiple providers where it is cheaper at given time.
I'm thinking that in the future your IDE could just compile your project into a single file that you then upload it anywhere and just run.
But the docker was promoted as something different with the union fs, nating etc. That works fine for development but it's a bit problematic operationalizing it.
This is what I noticed as well. Most of things containers are advocated for are already solved.
The selling point of containers is to solve certain issues (seems like package management, removing dependency on the OS etc are the most popular).
To me it looks like instead fixing the actual issues, we are taking a blanket covering all of that crap and building our beautiful solution on top of that.
We have a beautiful world with unicorns on top of a dumpster fire of mixing system dependencies with our application dependencies.
Also yesterday found something amusing a coworker was complaining that putting a small app into a base container resulted with image that was almost 1GB in size, compared to ~50MB when using a minimalistic one. When asked why not just use the minimalistic one I learned that it was mandated to use the standard image for everything.
To me this is absurd since by doing that aren't we essentially making a full circle?
Absolutely. I think the actual issue are the OSes directory structure(FHS for example) that impedes having libs/packages isolated and coexisting with their different versions.
Containers add a heavy abstraction on top of that. For me the simpler/better dependency management solution is nix.
No, and it makes perfect sense because
1. Container size is a minor issue, docker images are layered so you only fetch the diff of what's on top anyway
2. Standardization simplifies knowledge sharing, i.e. someone else can help you
As usual, "it depends." JEE isn't magic and app servers have their own issues. I think you're better off packaging Java web apps as self contained fat jars (see Dropwizard, Spring Bootstrap)
For the dependency hell management part, nix is a solution that operates at a lower cost level of abstraction, it doesnt emulate the whole OS(avoiding overhead) and keeps dependencies isolated at the filesystem level(under /nix).
I think that for reproducible development environments is a much simpler solution.
I tend to agree with you and it's one of the biggest reasons that I'm a fan of Elixir.
Here's the path that leads to K8s too early.
1. We think we need microservices
2. Look how much it will cost of we run ALL OF THESE microservices on Heroku
3. We should run it ourselves, let's use K8s
One of the big "Elixir" perks is that it bypasses this conversation and lets you run a collection of small applications under a single monolith within the same runtime...efficiently. So you can built smaller services...like a monolith...with separate dependency trees...without needing to run a cluster of multiple nodes...and still just deploy to Heroku (or Gigalixir).
Removes a lot of over-architectural hand-wringing so you can focus on getting your business problem out the door but will still allow you to separate things early enough that you don't have to worry about long term code-entanglement. And when you "need" to scale, clustering is already built in without needing to create API frontends for each application.
It solves a combination of so many short term and long term issues at the same time.
100% agreed. A lot of the cloud computing products are simply re-implementations of what was created in the Erlang/BEAM platform, but more mainstream languages. IMO it's cheaper to invest in learning Erlang or Elixir than investing in AWS/K8s/etc.
Elixir and Erlang are basically a DSL for building distributed systems. It doesn't remove all of the complications of that task, but gives you excellent, battle tested, and non-proprietary tools to solve them.
This is also true of Erlang, for those not aware that Elixir runs on the Erlang Virtual Machine (BEAM).
You do get a lot of cool things with clustered nodes though (Node monitors are terrific) and tools like Observer and Wobserver have facilities for taking advantage of your network topology to give you more information.
Not going to lie, Java app servers basically had me predisposed to see the appeal of Elixir. When I was spending a lot of time with Ruby I got really into Torquebox (Ruby-ized JBoss) specifically for the clustering aspects, ability to spread workers and clustered cache with Infinispan.
Elixir has a lot in common, but it takes it to another level. You can call functions from those other applications on the server with nothing more than a Module.function(arguments). You can call a function on another node in the cluster by just sending the node + module, function and arguments.
Because of immutability and message passing, this just works everywhere. With Java, a similar implementation would have to guard against memory references and mutex locks that wouldn't behave the same way on different nodes.
Interesting, I didn't know that about Elixir. Do you ever have to break them up into smaller Elixir apps or can you stick with that pseudo-monolith for good?
Each of the three digital production agencies I've worked with has the same problem: jobs come and go all the time, often have varied tech stacks (took over a project from a different company, resurrected 5yr old rotting dinosaur, one team prefers Node, another Django, etc), each project requires a dev/staging/live environment (and sometimes more than that, e.g. separate staging for code / content changes), and so on... In one shop we went thru 500 git repos in 4 years.
One day I spun up a k8s cluster on GKE and just started putting all projects there. This cluster enabled huge cost savings (running a fleet of 3 VM's instead of ~50), allowed cheap per-feature dev/staging environments, forced developers to consider horizontal scaling BEFORE we needed to scale (read: when we missed our only shot), and overall reduced ops workload tenfold. It wasn't without a few challenges of its own, but I would never go back.
I think you've hit on the major issue with the "anti-hype" around kubernetes and related products: they're not something you need, per se, to develop an app. They are something you need to manage multiple parallel development processes.
For devs stuck in a silo it's a little like putting margarine on butter. For DevOps looking at hundreds of little silos it's the foundation of operational sanity.
To sort of echo what you're saying, most of these articles seem to suggest that containers solve a technical problem. More often then not I've seen them as a solution to an organizational problem.
Kubernetes has helped to make our app less distributed.
Parts of the system were distributed not for capacity, but for HA reasons. So where before we had two instances of beanstalkd with their own storage and clients had logic to talk to both, we now have a single instance of beanstalkd backed by distributed storage and a Kubernetes service that points to it.
And I think we get more benefit deploying dependencies than we do our own apps. If one of them is low volume and needs mysql, just `helm install mariadb`. No complicated HA setup, no worries about backups, we already know how to backup volumes.
I'll stand by my assertion that for 99% of users (maybe even 99.99%), Kubernetes offers entirely the wrong abstraction. They don't want to run a container, they want to run an application (Node, Go, Ruby, Python, Java, whatever)
I agree completely and your comment gives me the perfect opportunity to praise how much I love the flexibility of Hashicorp's Consul+Nomad.
Nomad let's you run almost anything - Docker containers, executables (the raw_exec driver), jar files, etc.
Dead simple to setup - one self contained < 20Mb executable that can be used in either client, server, or dev mode (client + server), configuration is basically automatic as either a single server or cluster of you are using Consul.
The stock UI is weak but The third party HashiUI is great.
I played with Vault and it wasn't quite as simple as Consul and Nomad. My major issue was trying to figure out how I would "unlock" the Vault automatically in case of a system restart.
I punted for now and just stored sensitive values directly in Consul encrypted.
since you mentioned Cloudfoundry...
I think it's a thousand times easier to get up and running with k8s, than with Cloudfoundry on Bare-Metal (no Cloud).
It's also a thousand times easier to maintain. (Thanks CoreOS)
Basically if you want a managed simple no maintance, no cost bare-metal K8S installation you basically just use tectonic/kubeadm and you get something which is self-containing, or close to self-containing.
and the only things you need to get it done is actually way easier than reading through cf docs (I'm pretty sure bare-metal isn't even supported that easily).
Amazon's EKS is still in preview. I wouldn't expect it to be generally available (that is, stable) for several months at least. I've also heard reports that getting into the preview is really difficult at the moment.
> Alpha This is an experimental release as part of the Amazon EKS Preview. Interfaces and functionality may change. Expect bugs (and please help us squash them). DO NOT use for production workloads.
I agree that most startups should work at a Heroku level of abstraction.
You mention 18 microsevices, I think that small teams are better off with a monolith.
I would see Kubernetes as a new machine level. We're moving from bare metal, to VMs, to container schedulers.
Heroku was one of the first companies that ran a container scheduler internally. So I think we agree that is the future.
But a small team probably doesn't need to work at that abstraction level.
At GitLab we think most teams will want to work at a higher abstraction layer. Just push your code and have it deployed on Kubernetes. Without having to write a dockerfile or helm chart yourself.
The funny thing is I have 3 courses on Docker and I'm a Docker Captain but I pretty much agree with what you wrote about container orchestration.
A lot of people forget that you can just put your application up on 1 server and serve hundreds of thousands or millions of requests a month without breaking a sweat.
For that type of use case (1 box deploys), Docker is still amazingly useful so I would 100% containerize your apps for that purpose, but I agree, Kubernetes and container orchestration in general is overkill for so many projects.
I agree with this for the most part, but wanted to point out that docker's first big success was as a dev tool. Solving the "it works on my machine" problem, or the "oh you forgot to install v13.1.2 of X and then uninstall it and then install v12.4 because that's the only way it works for some reason" problem. So, avoiding k8s in order to avoid docker seems odd.
That said, a good number of projects don't require anything special about the environment other than a runtime for the app's language, where the remaining dependencies can be explicitly included in the build. For those, I agree, jumping on docker/k8s right away is overkill.
An additional benefit of working with something like Heroku initially, is that it will help guide your devs to sticking with more tried and trusted stacks rather than everyone pulling in their own pet project into the business's critical path.
I agree with pretty much everything you said and it's very heartening to not be the token Cloud Foundry person in the comments.
As a nitpick:
> This is why I don't understand why this article lumps, e.g. Cloud Foundry in with K8S - they solve entirely different problems.
In fairness, the reference was to Cloud Foundry Diego, which is the most analogical component to Kubernetes. And they are of comparable vintage. Diego never found any independent traction outside of CFAR.
> I've helped run multiple thousand TPS using Cloudfoundry, driving one of Europe's biggest retailers using just a few services.
We have customers doing millions of payments per hour, billions of events per day. Running tens of thousands of apps, thousands of services, with thousands of developers, deploying thousands of times per week.
CFAR doesn't get much press out of enterprise-land, but it works really well.
Disclosure: I work for Pivotal. We have commercial distributions of both Cloud Foundry (PAS) and Kubernetes (PKS).
There's even the higher-level desire, what users really want isn't a place to run their app, but to the function the app provides. e.g. in a more micro-services-like environment with a service that simply looks things up in a database, what they really want is just query access to the data. But now they have the data in some db, the db in some container, some API written using the latest API style, some software the provide the API (also in a container), some container orchestration to coordinate everything, load balancers, caches and so on.
So there's all these layers of stuff that sit between the user and the data just to make the act of asking WHERE DATATHING="STUFF" convenient.
The root of this is really people making distributed systems when they don't need to. This microservices trend really is a massive waste of resources for most smaller teams that get caught up in it.
you should check out docker swarm. the UX of swarm is brilliant - use a 10 line compose.yml file to get a stack up and running. Let's you specify tons of stuff if you want to.
The batteries included nature of swarm is a huge help as well - with k8s, you have to muck around overlay network, ingress, etc.
However, I think the writing is clear on the wall - k8s has won. Probably even to Docker Inc, given the kubernetes integration they are building into swarm now.
I think Docker Swarm can exist as an opinionated distro of k8s. I wouldnt mind paying it money for that.
This is why I primarily see Kubernetes as a set of low-level primitives for a PaaS to build upon.
We don't use Kubernetes at my shop, we've begun to use OpenShift though which layers PaaS tooling on top of it and the developers on my team love it. They create a deployment, point it at the git repository containing their code, set their configuration and the app is live - the underlying primitives are available if we need them still, but that's for me to worry about as the DevOps guy and not the developers.
Kubernetes team foten says than one if it's goal is to be a "low level" project which should be the base additional tool/services/... are using under the hood.
Helm (https://helm.sh/) allows you to define an app as a collection of K8S components then to manage (=deploy, update, ...) your app as a standalone component
Clarification: 18 containerised services can absolutely be the right choice. It’s just my experience says the trade off between the costs of maintaining that versus a smaller PAASed system rarely come out in favour of it.
I think it's overrated though - not open source, doesn't have an ecosystem.. the dev experience is sub par - services take too long to come up even with the one node cluster on a beefy laptop. Plus you cannot run the service outside of SF as an exe now.
I migrated a decent sized solution still in dev from SF to .netcore and SF - 10/10 would do it again. Not to mention that you also end up saving 50% $$$ on vm costs with linux vms (not considering SF on Linux)
Thanks for sharing your experience, I did not understand it in full.
Do you recommend using SF or not? you mention that you would do it again - was that only about moving from Windows .NET to .NET Core on Linux (ie. NET Core rocks?) and the rest about SF is crap or would you recommend SF in general for any future work (instead of for example Akka.NET for service coordination in a cluster) ?
> Kubernetes takes you to serverless, where you don't care about the hardware.
Serverless isn't a good name - but it doesn't stand for "don't care about the hardware". Devs are already not caring about hardware anymore since VMs.
What serverless removes is the abstraction level of a server/vm/container.
A simple example is scaling your stateless components. In a serverless FaaS, functions are scaled for you. You don't have to do anything to handle a peak in web traffic. You don't have to do anything to handle a peak of msgs in your MQ.
In k8s, you still have to go and fumble around with CPU/memory limits and better get it right. k8s also doesn't scale your containers based on the msgs in your MQ out of the box. You have to build and run that service yourself (or ask GCP to whitelist you should you be running their MQ https://cloud.google.com/compute/docs/autoscaler/scaling-que... ).
AWS Lambda had that since 2015...
Well, yes — the problem is that the JVM was too big and too platform-independent. We don't want JVM everywhere; really, we want POSIX-everywhere. The JVM's also this weird level of statically-typed hyper-extensibility — it's Greenspun's Tenth Law in action, and the result is typically in really terrible taste. The end result is a JVM which is really, really impressive, but appallingly ugly.
Once you know the answer to that, my "3 classes of managers" might help you pick a next step.
Good: These managers actively support you. They know how to play whatever games your company has evolved, will support you through tough times, and create growth opportunities that advance your goals (and theirs).
Useless but harmless: These managers are not actively "good", but they won't stop you serving yourself. You'll need to take matters into your own hands, but when you do, they'll support you. They normally know how to play the company games, and are sometimes "good" managers that have burned out or stretched themselves further than they have capacity for. Finding good mentors can help you leverage "Useless but harmless".
Useless and harmful: These managers aren't helping you, but then actively hinder your attempts to help yourself. They'll block your attempts to achieve things - even if they're good for the team. When you go to them for support that only they can provide (e.g. performance reviews), they won't really listen to your feedback.
Sounds like you're somewhere between "Harmless" and "Harmful", and you need to work out which one your situation is closer to. If you've got a "Useless but harmless", then you're fine. Work with them to generate the outcomes you want, trusting that - in general - they'll support you in "self-management". If they're not helping you and preventing you from helping yourself, then - despite being "nice" - they're probably harmful to your own goals (project and personal), and you _might_ want to consider other options.