News for hackers. Stuff that matters.
Re:Blurring the Line Between User and Programmer by pbhjpbhj on Friday October 25, 2019 @08:24AM (#21354246)
But, I can well imagine an art assisting program that I can feed my doodle to that can return a photographic (or other artistic) rendering of a person in that pose, even such that I can rotate the image, alter the pose, perhaps even animate it.

I still perhaps wouldn't understand why I should have chosen other poses, or why the lighting doesn't work, or why my material choice for the clothing fabrics hampers the expression I was seeking ... but it seems like an artist could come and touch up those elements.

Surely a similar level of thing could be done for programs (eventually)?

I'm a non-programmer in a new work environment where I'm feeling like I want to modify all the programs and add some functionality. In particular I've a lex-parse process I'd like to automate, relatively easy to describe sufficient to do it (with time I'll probably do it myself in PHP/python). But, doing that "doodle it" routine for such a simplistic app would be really useful.

Re:Blurring the Line Between User and Programmer by thrower123 on Friday October 25, 2019 @09:48AM (#21354885)
People always want to have that "now draw the rest of the fucking owl" step automated without them having to acquire the skill and do the hard and messy work to make it happen.

It doesn't work that way, and I'm relatively convinced it never will, within my lifetime. It's an inherently squishy target that it's trying to hit, with so many unstated assumptions and constraints. Trying to auto-scaffold software is worse.

Everything is easy when you're at the hand-wavy wireframes and stories stage; all the complexity and stupid yet necessary, yak shaving is glossed over, unless you have a engineer sitting in to rain on the parade.

Re:Blurring the Line Between User and Programmer by friendlybus on Friday October 25, 2019 @09:29AM (#21354688)
>but it seems like an artist could come and touch up those elements.

I don't think you can have artists or programmers 'touch up' a generated model post-facto without making compromises on the valuable bit of the project. Programmers will always be needed to understand the program inside and out, so it can be tweaked and controlled. Artists will always be needed to define the piece from top to bottom, so it can be controlled.

Either that or lots of hair being ripped out trying to control why the top lip on the 3d model keeps moving up and down when technically there's no muscle in your top lip, and it makes the one scene your big dramatic moment look janky as hell so you have to spend nights trying to figure out why the ML program made that, and it turns out nobody knows except the guy who made it and he's off in the bahamas helping take care of his sick wife so you have to scour the tech support community for hours...

Or that perfect line you drew across the face of a landscape painting is now pushed off to one side from running it through an art-style-transfer ML program and that destabilizes all the hidden geometry you were relying on to make the piece feel alive and now you have to know why the program did that, if you want to change it.

>Surely a similar level of thing could be done for programs (eventually)?

Yeah I think so. It's coming quite rapidly. Two minute papers is a scary youtube channel.

Any generative painting, cg model or computer program is going to fill the "kinda good enough" category and change the job of the trained professional to be controlling all the assumptions built into the generative program. You will make a super-powered tool, which is awesome, but alas human knowledge/skill/brains remains different to computers.

Re:Blurring the Line Between User and Programmer by TheOtherHobbes on Friday October 25, 2019 @11:02AM (#21355683)
It's very hard to do high-quality generative art/music/poetry/anything without a complete model of human cultural associations, perceptions, and metaphorical frameworks for conceptualisation.

As you say, most generative work is empty because it's just form. Human creators manipulate form to communicate content. There's a message, and art is judged as much on the sophistication of the message as on the form it's carried in.

Form without content can be an interesting technical experiment, but it's culturally massless and kind of boring. Not to mention wrong in a destabilising way - like someone speaking random syllables that make occasional sense, but don't form a coherent message.

So the most successful generative work cheats by automating processes of cultural reference - like style transfer - or by adding levels of formal complexity that would be very difficult to handle by hand, but can at least produce something that seems a little original and surprising.

The less successful work doesn't even get that far.

Automated software generation is going to have similar problems. You have to parse intent, and then balance it against practicality. Getting that right is so hard humans really struggle with it, so I can't see machines being better at it any time soon.

Re:Blurring the Line Between User and Programmer by ScottBurson on Friday October 25, 2019 @05:51PM (#21359595)
> Form without content can be an interesting technical experiment, but it's culturally massless and kind of boring. Not to mention wrong in a destabilising way - like someone speaking random syllables that make occasional sense, but don't form a coherent message.

Couldn't read that without being reminded of this: https://en.wikipedia.org/wiki/Prisencolinensinainciusol

As the composer says, "I thought that I would write a song which would only have as its theme the inability to communicate. And to do this, I had to write a song where the lyrics didn't mean anything." If you haven't heard it, pull it up on YouTube — it's quite an experience.

Re:Blurring the Line Between User and Programmer by Izkata on Saturday October 26, 2019 @12:37AM (#21361748)
...actually, there is one part of programming which already fits that description perfectly: Tuning some badly-performing SQL.

Seriously, look at the EXPLAIN of a complicated postgres query - hash joins, index scans, bitmap heap scans, materializing intermediate tables, and so on - it does the described conversion of high-level SQL to some really complicated code, and someone with in-depth knowledge can later use the plan to tweak the database or query to improve performance.

Re:Blurring the Line Between User and Programmer by AnimalMuppet on Friday October 25, 2019 @12:25PM (#21356559)
Aha! You perfectly expressed why I'm turned off by much of modern art - it's form, but no content (though sometimes the lack of content is the content, in a meta way, but it still makes for boring art).
Re:Blurring the Line Between User and Programmer by jodrellblank on Friday October 25, 2019 @09:55AM (#21354957)
I can’t tell whether this is “I just want to describe the high level and have an expert do the hard bits” (that’s what consultants do and how things normally work), or if it’s Dilbert Pointy haired boss “if I don’t understand it, it must be simple” where you imply the part you can do as an unskilled person is the important part, and the part an expert spends years learning is the trivia which can be tweaked after your important part is done - if it’s even needed at all.

Poser is one possible “3D human in a pose” software since 1995, like python and Delphi and Visual Basic are your rapid application development (RAD) tools that have been trying to do “programming as doodles” for years.

By the point you say “lex-parse process” you’ve already narrowed the scope from all possible software to a tiny area and used a lot of expertise to know that’s even a thing.

Choosing arrangement of 7 English letters has 8 billion or so possibles, “real words which people probably know” is four or five orders of magnitude smaller space of choices; maybe I just need to grunt some sounds to express what I want and a writer can tidy up the details of my comment later. But the choice of words is dozens of small choices which are inseparable from expressing myself. A writer, a consultant, doesn’t make your idea, they make their idea of your idea.

An artist could surely tell you why the choice of clothing doesn’t work, but the time you’ve got your artwork expressing what you want to the level where the choice of clothing fabric is the only thing left to tidy up, you are an artist already and have saved none of the important effort. You’re hiring Mozart to tell you why b-flat sounds off some fourteen minutes into your symphony.

It’s like gaining expertise is narrowing a space of options by orders of magnitude until we can jump close to a solution quickly. Being a non-expert is like assuming there is only a small space of possibilities that everts deal with and if we try to solve the problem we must end up in that space too and then all we need is an expert to nudge us to a settled location nearby. But instead we don’t see how big the space of billions of possibilities is and we go very far away, and an expert can only do the hard work of moving our solution to the space of possible answers - which is basically all the work and almost no better than starting from scratch.

It’s almost like we need the expert to jump near the solution space and then the non expert to nudge the details towards what they’d prefer. The program draws for you and you chose the clothing fabric and lighting. Like a computer game avatar generator where you just choose the hair colour and T-shirt colour - and equally unsatisfying because it’s not at all like you imagine you could express if only you knew what the expert knew.

Re:Blurring the Line Between User and Programmer by pbhjpbhj on Friday October 25, 2019 @10:53AM (#21355574)
>where you imply the part you can do as an unskilled person is the important part //

It's the important part, it's not the difficult part.

Like "I want a square, four tier cake with baby-blue royal icing, using a light fruit cake". That's super easy to say, hard to achieve. But the vital bit is contained in the simple definition.

The only other thing to say at this juncture is that in general there are two experts, domain-expert and programmer.

>I just need to grunt some sounds to express what I want and a writer can tidy up the details //

Well yes, we already have algorithmic story generation (eg ScienceDirect webpages), you "grunt" the topic and the program fills in the details.

Re:Blurring the Line Between User and Programmer by jodrellblank on Friday October 25, 2019 @04:48PM (#21359102)
And the cake definition includes a lot of learned knowledge about humans, foods, rituals, pleasurable tastes, aesthetically pleasing looks; you practically are a domain expert on wedding cake already, you know what is possible, roughly how much it costs, how the difficulty scales with size, what isn’t possible, what isn’t reasonable, what options are available, how people will react, down to a very small scope of possibilities. what’s the cake equivalent for Martians who don’t eat and don’t have weddings and may not see in the human visual spectrum?

I want a thing which will be a centre of attention at an appropriate moment of their existence which their senses will experience .. an appropriate sensation to convey .. to achieve the appropriate goal of goodwill, at an appropriate amount of resource expenditure?

Does that still cover the important bit? If I say I want peace among nations, have I just done the important bit of international diplomacy, and it just needs some experts to tidy up the details?

Re:Blurring the Line Between User and Programmer by codesforhugs on Friday October 25, 2019 @02:32PM (#21357880)
The difference between your cake and real life programs is that business processes tend to be rife with exceptions and details — frequently exceptions that are unknown at initial design time.

The whole reason for the existence of iterative processes like Scrum and friends is that your premise doesn't hold in the world of software, because then we could just use a waterfall process and be on time and budget every time.