44,386 karma · joined August 30, 2007
http://dbmarkham.com/
daniel@danielbmarkham.com
Doesn't mean you can sell license subscriptions or whatnot, but what you sell has to match up with what the buyer thinks they're purchasing.
Is there an easy way to load up GPT with my thoughts to have it be a fake me?
A lot of this is standard advice for various creators. I think, however, that it's possible to optimize yourself for the process. I find in my professional life and watching others that there are creative stages which are followed by forgetting these lessons, then re-learning them all over again. Humans are complex machines.
Shameless plug: https://danielbmarkham.com/forced-boredom/
I don't get it.
Great UI, though. But I still don't get it.
I was _extremely_ happy to see this posted.
However when I click the link I am taken to the library I had initially tried and had to reject. Without getting into the crypto side of things (which very well may resolve to "just make it tough enough for most folks") I crashed and burned using this tool once my page reached certain sizes. (I was cramming everything I needed into one page and I had a big hunk of bytes that I didn't want hanging out on the filesystem)
As I understand it, this is a known issue in V8. V8 limits the number of properties/collection members an object can have. There's a flag you can use with node to get a little more headspace, I believe it's something like "--max-old-space-size=8192" but it's a V8 problem, not a node problem. The staticrypt coders could also switch to a streaming cryptography instead of block, but that's far too much to ask of the casual user who only wants to lock up a page or two.
This is a really cool tool, and I wished I could have used it. Good luck to the team going forward. I've gotta find something else as this doesn't work for me.
I guess this is the first time I've faced the fact that unless it is printed out at archival quality in some manner that humans can read, it basically won't exist 200 years from now. The data will perhaps be around in some kind of conglomerated and bowdlerized format, but the "you" part of the data will be lost in obscurity, and that's assuming that some version of the cloud stays intact that long.
Odd.
At what point are we where "Either put it in the cloud or lose it" is the law of tech?
(True) Microservices have no dependencies on anything but unstructured text data. They do not couple to a database, the business understanding of what it's doing, a domain model, or anything else. They perform a simple, idempotent, business task that can never fail although it can create various error chains.
Programming at scale is tough. There's no free ride here. All you've done is turn the traditional model of coding "inside-out" and now you've got a ton of work doing all of the wiring.
But if you keep your microservice doing one simple useful business thing, then all of that inside-out work become business decisions. What do we do if the sign-up fails? How do we move IMPORTANT-THING to those other guys to use? You still have business coupling: things change and you have to adapt. But you're not coupled at the _coding_ level. If there's any magic, that's it. Your business should be able to wander all over the place and your microservices hold up just fine. The old way, where we may have coupled every little business need or want with every piece of code in the system, was not only a pain, more importantly it was impossible to keep organized in any one person's head and aligned with everyone else at scale.
What I see is a lot of drift. Folks start coupling things up, perhaps by trying to create one domain model to rule them all. They start creating microservices to do _system_ activities, like flushing a cache. There should be a one-to-one correspondence between your microservices and interesting business conversations. That's a hella discipline to maintain. It may force a lot of conversations you thought you could avoid by hiding them in a class hierarchy somewhere. Once you start drifting, pretty soon you're writing essays like this. And then here we are/
In any set of human interactions, it's common for folks to run on autopilot. This is the normal background noise of our lives. But with widespread publishing and bots, this background noise has been weaponized.
No matter how it shakes out, we're going to have to sort out comms with people we know are human (and may want to continue a relationship with) from comms created by AI. I don't see any way of getting around that.
I continue to be amazed at how counterintuitive this all is. It may feed on itself, but in practice that might involve looping through dozens of somewhat adjacent topics in different subsets of the population. Such loops could take minutes or years.
To try to give a simple example, suppose I have a system that eventually wants to influence you on X. It may establish a months-long relationship with you online, becoming a follower and engaging in the kind of idle chitchat and sharing AI seems so good at.
Once you're "ready", the appropriate time has arrived or you've accidentally created some signals that indicate an opening, this particular system will share a strong position on X.
We automatically think that this means the system will support X, but I strongly believe the opposing the desired outcome will have more traction. "X sucks!" can be a powerful prompt for you to support X, and once you're locked into a position research shows that you'll do all the work of convincing yourself how great X is.
In this case, the sources argument fails, as it presupposes an independent, neutral observer trying to figure out what's really going on. A bunch of fake, half-assed evidence trails would provide more than enough support for X, the thing you've come to find so important. This is already being done with fake reviews and such. The difference is that it'll become invisible.
It's great to have a traditional view of authorship and scholarship. I support that view. The internet engine of commerce does not support this and views such as those debated in this essay far outweigh those older ones.
Assuming positive intent, and that you're not a bot, thanks for the chance to clarify!
I agree with the author that nobody cares about whatever content you create, aside from your own marketing value and ability. At the same time, we've created huge industrial systems to harvest your thoughts and reassemble them in return for eyeballs on some site somewhere. Your individual value is nil
Personal authorship and ownership of art and ideas is one of the key concepts that created the modern world. I have no doubt that folks are harvesting this guy's blog, and many more like it.
I don't know where we go from here. Should be an interesting ride!
I cannot describe the sadness I feel when I see the title of an essay I might enjoy, decide to use HN comments as a way to decide, then the top comments are all "Why is he using comic sans as a font? Does he hate us?" and so forth.
A kitten dies each time this happens.
Over time, I have participated less and less on HN, but I still use it daily to screen out new tech news. This site rocks. Excellent parody!
Also, for the first seventeen people to sign up for my free e-book, I will purchase certificates for free rides from Uber For Horses. Even if you don't like the book, think of the horses!
The mistake we made, one that we continue to make, is conflating human communication and social interaction with just moving bits around.
We thought the net would be great because we have these bits other people might want. Let's share them! They can learn to grow better crops, ease the world of oppression, and so on.
We still think that, it's just now we've arrived at "Sending bits around is great! But they need to be the _right_ bits"
I think anybody back then would have agreed too. No stupidity required, just a misunderstanding of how progressive societies actually operate. If we had been approached with this problem in these words back then, we would have said something like "But that's not a tech problem"
Well, maybe some stupidity was at play. But heck if anything's changed.
You got the feeling of a thousand developers all running off in different directions, exploring the human and condition and all of the massively cool things this new hammer called "programming" can do.
Compare that to today. Anywhere you go in the industry, it seems like there's already a conference, a video series, consultants, a community, and so on. Many times there are multiple competing groups.
Intellectually, it's much like the difference folks experienced comparing going cross country by automobile in say, 1935 versus 2022. Back then there was a lot of variation and culture. There was also crappy roads and places you couldn't find help. Now it's all strip malls and box stores, with cell service everywhere. It's its own business world, much more than a brave new frontier. Paraphrasing Ralphie in "A Christmas Story", it's all just crummy marketing.
(Of course, the interesting items are those that don't map to my rough analogy. Things like AI, AR/VR, Big Data, and so on. These are usually extremely narrow and at the end of the day, just bit and pieces from the other areas stuck together)
I remember customers asking me if I could do X, figuring out that I could, and looking around and not finding it done anywhere else. I'm sure hundreds, maybe thousands of other devs had similar experiences.
Not so much now.
I don't really find it disturbing, though. Our "best practice" to interact with other species is to try to leave them alone and watch them enjoy and live in their habitat. Makes sense that's what we're doing for the alien overlords, and I'm okay with that. Assuming aliens are around somewhere and we're using our own planet to reason by analogy, the only other two alternatives are they're going to subjugate/destroy us or they're going to eat us. Those alternatives are not so fun.
I find it interesting that so many humans assume that since we can chat with one another, aliens somehow are supposed to show up and chat with us. It's all about us. If such a thing happened, the history of massively-different cultures interacting on Earth is not a positive one.
Given the choices, I'm good.
2. There are about 20 keywords. They are represented as ALL CAPS
3. When you take notes, you tag them with the keywords
4. These notes are checked into git like everything else, and built as part of the dev/team/pmo/enterprise DevSecOps pipeline
5. Doing this creates a realtime and ever-changing analysis model
This leads to better conversations, better questions, elimination of duplication and conflicting business ideas, entry of data once, tracking bugs and features in plain language all of the stakeholders can understand, automated testing frameworks, interactive diagrams showing what the business thinks the world looks like and how they're products will change it, and more.
It was fun trying to design the simplest system possible able to map the almost endless complexity of human interactions around a given domain. tl;dr "Intent" is everything that happens between humans to organize their view of the world and the tech they're making to interact with it. Intent begins with brainstorming, perhaps BS sessions with coders, marketers, customers, and so forth and ends with feature tests, user manuals, and everything but the code itself.
https://danielbmarkham.com/outlines-of-a-supercompiler-in-f/
Our industry tends to over-complicate things and get in its own way of making the world a better place. SuperCompilers are a worthwhile effort to fix that. We need more forces for good. Kudos.
I created an analysis compiler that takes intent information and makes it part of the Enterprise DevSecOps pipeline in order to share realtime analysis with the entire organization. As I continued that work, I've also started talking about the feasibility of creating a supercompiler.
GraphViz is the shit, man. It was exactly what I needed to work on this material. You can create your own notation and then couple it with all kinds of tech by way of batch. Highly recommended.*
*The hardest part, frankly, was unlearning all of the other diagramming paradigms I've used. YMMV, but I found GraphViz most useful when you're going completely greenfield.
Long discussion goes here, but human language is a socially-contextual performance art which has roots in the creation and teaching of the construction of tools. Vagueness, non-verbal messaging, social signaling, and all of the other aspects of language are built in order to transfer that tool knowledge with the minimum amount of effort. To be even further reductionist, you don't have to make that spear out of the exact same rock I used as long as you get a point on the end of a sufficiently long stick. Language's inability to be precise and have millions of shades of meaning based on other things besides words is a feature, not a bug. It's an evolutionary survival trait, probably needed by any sentient creatures.
Contrast that to what we're doing now on HN: typing messages back and forth. That is not the use of human language, at least not as we understand it today. Printed text is not language. Symbolic representation of sounds has a singular, yet fundamentally different goal: the unambiguous transfer of knowledge. The closer that knowledge that we want to transfer is to the human experience, the worse printed text works for that purpose. This is why fiction can be a 12-part novel while a chemistry formula might take up one page.
So when we see text messages flying back-and-forth, it engages a different part of our brain. Continuing my simplification, when we view and interact with text, we're really looking to play some advanced video game where the correct text and replies "proves" an exact version of the world that others might not share. This is why so many online arguments end up end semantic wordplay games. It's not that people are petty, it's that we're trying to take that hominid brain system and bolt it into a logical, mathematical framework. Tech folks commonly say something like "If a implies b, and b implies c, then a implies c" Unless you use a set theory definition of a,b, and c, this can be shown to fail rather easily. [1]
tl;dr, when I type the word "dog", think of a dog, and have a conversation with my grandmother about her dog, although we want to think of the word as being the exact same thing in all three contexts, it is not. It just appears that way. That's why you think people are acting so differently. They're not. It's just different things are going on in different social/physical contexts without our realizing it.
1. https://en.wikipedia.org/wiki/Syllogism#Syllogistic_fallacie...
That's where the real money is at: subtle AI bot armies that remain invisible yet influence other more public AI systems in ways that can never be discovered. This is the kind of thing that if you ever hear about it, it's failed.
We're entering a new world in which computation is predicable but computational models are not. That's going to require new ways of reasoning about behavior at scale.
Seriously. There's a theory about learning and creating addictive games created by Jean Piaget [long story goes here]. Basically, if you don't feel the need for a change, the gut feeling that the universe is out of balance, you won't change.
It's perfectly fine to accomplish a lot and feel at ease. Being lost, however, means that there is somewhere you want to be but can't get there. Work on where that is, then you'll know more about why you're lost.
Apologies for sounding like Yoda. At some point, most all of us are happy, accomplish meaningful things, maybe take a victory lap. Yay. Contentment is the secret to happiness. You can have a happy life or a meaningful one. They're not the same thing.
I've also written about half-a-dozen apps that somebody later took and made into a super cool startup. I don't say that to brag. Ideas are cheap. Execution intelligence is where it's at.
I mention the apps I've written because you really have to establish more context if you're going to lament about tech's coolness death. Is tech not cool anymore? Or is it just not cool to you? I feel like I've written a bunch of cool stuff over the years. It's always been cool to me, for whatever that's worth.
Given that setup, I will answer using my own definition of cool. Software ate the world, and that was awesome. It also had a bunch of side-effects nobody wanted to think about, and that sucked. But because it ate the world, ie became an integral part of human existence, tech became incestuous. It's so prevalent in our daily experience that it became impossible to talk about what might be cool or not.
We ended up with a bifurcation. Path A talks about tech only in terms of people creating and sharing content with one another, whether that's a cat pic or instructions to use CPR to save lives. Path B is just concerned with mechanics regardless of impact: how do we set up that identity server template in kubernetes?
I find the endgame of both sides of this bifurcation to be extremely boring. I can solve most tech problems I'm given using tech. Yay. I can explore creating interesting content in various genres given some rando platform. Also yay. But at some point along both of those paths, it seemed like it became a race to the bottom. It all devolved into mindless, manipulative crap. Even if I became a rock star on the tech path or the content path, so what? There'd be a million new folks coming along next year doing it better, and in 50 years nobody would care.
I decided that to me, it was the visceral feeling of integrating tech with creativity that brought the most life satisfaction. That's the feeling I got when I was writing my first apps for a local business at 16. It was the feeling I had architecting big systems that took off and still provide value. You can't separate one path from the other and expect any sort of long-term satisfaction. At least I never could.
TDD is a coding practice to help the programmer understand that their mental model of the code does not reflect the actual code itself.
That's it. There are some follow-ons, of course, like if your mental model is exactly in-line with the code then logical errors are unlikely (although business errors can be quite common!). Another follow-on is that TDD is much more about design than testing. Once you realize that it's a practice or habit that's all about sending information from the code back to the mind of the coder, all of that other stuff sorts itself out.
Shameless plug: this has been on my mind quite a bit lately since I blogged last week on the unreasonable effectiveness of testing as a way out of both cognitive and coding anti-patterns: https://danielbmarkham.com/cognition-versus-programming-the-...