News:

PD.com: We're like the bugs in the Starship Troopers movie: infinite, unceasing, unstoppable....and our leader looks like a huge vagina

Main Menu

Objectivity - a software development approach

Started by P3nT4gR4m, May 31, 2014, 11:15:42 AM

Previous topic - Next topic

P3nT4gR4m

This is not an argument. I'm not stating a position. This is a quarter baked thought that's begun materialising in my head and I'm writing it down to explore the development of a seed of an idea that I'm not too clear on yet, in the hope that highly intelligent random internet people might provide some input.

The reason I'm stating this, is because (knowing me) I'll forget to e-prime or whatever the fuck and say things like "It's like this" or "that's the reason", as my train of thought goes barrelling down the track and I want to get it straight from the git-go that I'm not assuming any of this bullshit, I'm merely examining it as an alternative to current models.

I will not defend it if challenged, because it's random crap that my brain is coming up with. I'm not even sure what the hell it is yet but it's piqued my interest so here goes...

I'm a software engineer. I'm a hacker. I work with software. My job is to communicate massively complex sets of instructions and conditional logic to machines which carry out these instructions on datasets and then communicate the results back to me or to the end user.

Something that I've always been vaguely aware of but never given much thought to, is what it must be like for the people (a significant percentage?) who don't actually understand exactly what software is, how it behaves, and what it represents as a manifest phenomena at the granular levels which all software engineers encounter and interact with it.

So in general software geek parlance these individuals are commonly termed "users" with a small -u- (we're an elitist bunch us code nerds) and these are the people who don't think of what they're doing as software, rather as the abstractions the designers expose them to. They're using a spreadsheet. They're sending an email. They're playing Angry Birds.

Then there's people who understand a fair bit more about the mechanics of the stuff we're dealing with but their knowledge rarely extends very far below the abstract interfaces of the users. They might kinda grok what a config file does or be able to apply some basic conditional logic into their XL formulae. We call them "Superusers", by way of differentiating.

Superusers get a capital letter at the start of their name and some of them, the chosen few, will be elevated to the exalted status of "Admin". Unlike the user and the Superuser, the admin is someone who we can leave in a room full of sharp objects and reasonably expect nothing too bad to happen as a result.

The admin may be someone who has absolute command of the system he administrates and yet, at the same time, from the engineers point of view, he's just another user. He may have a perfect understanding of the operations of the system, at the interface level but he's still dealing with a construct, an emergent property, an abstract representation of the software itself.

So what is this software? What is it made of? How does it work? In a sense I could describe it as a language, of syntax and semantics which we use to describe existent systems, existent materially or in abstract, in a way which effectively mimics or parallels the operations of the systems they describe.

That old cliché about language being "alive", referring allegorically to poetry and prose? No, I mean these "languages" are alive in the "Frankenstein" sense. The words and the sentences, speak themselves and they grow and sprout and branch in direct correlation to any existent system they represent and, as a result, fluency in these languages grants the hacker something that's akin to a new sense, a new way of interpreting external information - the sense of code.

A coder develops an intrinsic sense of code which, once developed, isn't something that you just turn off when you step away from the computer, any more than you'd turn your sense of sound off when you stopped listening to the radio. Everything a coder observes, using the traditional, biological senses, can also be observed and filtered via the sense of code.

If all existent phenomena can be considered as a system, then all existent phenomena can be expressed, examined and extrapolated in code. If this is the case, then it follows that we can examine the efficiency, the accuracy and the performance of these systems, simply by analysing the resulting code descriptions.

Software has advanced rapidly, over the last couple of decades, the systems that software represents, refined and shaped and moulded, by way of the software itself, which was quickly able to figure out increasingly efficient ways of carrying out the end goals which any given system was required to achieve.

However, not all systems have been described in code. Many human systems, especially in the interpersonal and up to the societal sphere of interaction still remain clunky and old and inefficient when observed with a sense of code. What a sense of code is, in the context of this framework is a method of describing, objectively, the system being observed. This objectivity is the kicker. By the same token that it could be argued that objectivity is one of the fundamental strengths of scientific investigation, so too does code benefit from having objectivity built in.

As I said earlier, code can be used to describe all systems, biological, neurological, sociological, psychological and, by declaring these systems in code and examining their operations through the lense of a well developed sense of code, maybe these systems can be analysed objectively, in a way that allows us to develop and evolve them through the iterative process of refinement which is a coder's stock in trade.

What I'm getting at here is not necessarily simulation, rather it's simply a description of a system of operations, described in a language that mirrors the operations of the system analogously. I find it difficult, at this stage, to further elaborate and communicate my idea in terms which a user, someone with little or no sense of code, would understand. How do you describe the colour blue to a blind person is the sound of rain to someone who's deaf? Perhaps there's a coder reading this now, who gets the drift of where I'm going and can think of a way to explain this? Maybe, like me, you've never given much thought to this "sense of code" idea but, now that you have it seems to hold some merit?

I'm up to my arse in Brexit Numpties, but I want more.  Target-rich environments are the new sexy.
Not actually a meat product.
Ass-Kicking & Foot-Stomping Ancient Master of SHIT FUCK FUCK FUCK
Awful and Bent Behemothic Results of Last Night's Painful Squat.
High Altitude Haggis-Filled Sex Bucket From Beyond Time and Space.
Internet Monkey Person of Filthy and Immoral Pygmy-Porn Wart Contagion
Octomom Auxillary Heat Exchanger Repairman
walking the fine line line between genius and batshit fucking crazy

"computation is a pattern in the spacetime arrangement of particles, and it's not the particles but the pattern that really matters! Matter doesn't matter." -- Max Tegmark

ñͤͣ̄ͦ̌̑͗͊͛͂͗ ̸̨̨̣̺̼̣̜͙͈͕̮̊̈́̈͂͛̽͊ͭ̓͆ͅé ̰̓̓́ͯ́́͞

It makes me think of this:



And this article: http://arstechnica.com/information-technology/2014/05/how-can-i-make-sure-that-im-actually-learning-how-to-program/

QuoteThe key to this question is to transcend the language and think in not the language you are coding in.

WAT?

Experienced polyglot programmers think in the abstract syntax tree (AST) of their own mental model of the language. One doesn't think "I need a for loop here," but rather "I need to loop over something" and translates to that to the appropriate for, or while, or iterator, or recursion for that language.

This is similar to what one sees in learning a spoken language. People who speak many languages fluently think the meaning, and it comes out in a given language.

One can see some clue of this AST in the pair of eyetracking videos Code Comprehension with Eye Tracking and Eye-Tracking Code Experiment (Novice) where the movements of the eye of a beginner and experienced programmer are watched. One can see the experienced programer "compile" the code into their mental model and "run" it in their head, while the beginner has to iterate over the code keyword by keyword.

I'm interested to see where you go with this.
P E R   A S P E R A   A D   A S T R A

Raz Tech

You should write a book about your findings:
The universe in C++
or perhaps,
All the world's indeed a kernel.

I'd read that.  In all seriousness though, interesting ideas.

LMNO

I'm most certainly a user, so I have to admit I'm not quite sure what your goal is, here.  To objectively evaluate the system of Life?

Cramulus

I've had that experience of dreaming in code. Very hard to describe -- just concepts and their mechanical relationships to each other.


reminds me of
http://en.wikipedia.org/wiki/Tetris_effect

P3nT4gR4m

Quote from: LMNO, PhD (life continues) on June 02, 2014, 02:41:57 PM
I'm most certainly a user, so I have to admit I'm not quite sure what your goal is, here.  To objectively evaluate the system of Life?

I think the first part is to objectively evaluate the various subsystems of life but it's the process of refinement that would potentially provide tangible benefits. Any subsystem can be optimised and bugfixed.

I'm up to my arse in Brexit Numpties, but I want more.  Target-rich environments are the new sexy.
Not actually a meat product.
Ass-Kicking & Foot-Stomping Ancient Master of SHIT FUCK FUCK FUCK
Awful and Bent Behemothic Results of Last Night's Painful Squat.
High Altitude Haggis-Filled Sex Bucket From Beyond Time and Space.
Internet Monkey Person of Filthy and Immoral Pygmy-Porn Wart Contagion
Octomom Auxillary Heat Exchanger Repairman
walking the fine line line between genius and batshit fucking crazy

"computation is a pattern in the spacetime arrangement of particles, and it's not the particles but the pattern that really matters! Matter doesn't matter." -- Max Tegmark

Cramulus

I think problem solving heuristics get into your head

I've heard security people say similar stuff about how when you start approaching problems with a security mindset, you suddenly become aware of this universe of exploits. And once you've seen it, you can't UNSEE those problems. You'll always be imagining how a criminal would approach things.

P3nT4gR4m

That's it, in a nutshell! It's what I was getting a with this "Sense of Code" idea. I find it hard to look at a flower or an animal or a political negotiation, without a part of me trying to figure out how to code it.

What I'm not sure about is how this Sense of code might be used to provide a beneficial effect but my gut is telling me it could.

I'm up to my arse in Brexit Numpties, but I want more.  Target-rich environments are the new sexy.
Not actually a meat product.
Ass-Kicking & Foot-Stomping Ancient Master of SHIT FUCK FUCK FUCK
Awful and Bent Behemothic Results of Last Night's Painful Squat.
High Altitude Haggis-Filled Sex Bucket From Beyond Time and Space.
Internet Monkey Person of Filthy and Immoral Pygmy-Porn Wart Contagion
Octomom Auxillary Heat Exchanger Repairman
walking the fine line line between genius and batshit fucking crazy

"computation is a pattern in the spacetime arrangement of particles, and it's not the particles but the pattern that really matters! Matter doesn't matter." -- Max Tegmark

Junkenstein

Quote from: Cramulus on June 02, 2014, 03:11:57 PM
I think problem solving heuristics get into your head

I've heard security people say similar stuff about how when you start approaching problems with a security mindset, you suddenly become aware of this universe of exploits. And once you've seen it, you can't UNSEE those problems. You'll always be imagining how a criminal would approach things.

Personally, I try and approach most problems in the same way they would be approached by the smartest criminal I can imagine. I call this "Business".
Nine naked Men just walking down the road will cause a heap of trouble for all concerned.

LMNO

Quote from: P3nT4gR4m on June 02, 2014, 03:04:43 PM
Quote from: LMNO, PhD (life continues) on June 02, 2014, 02:41:57 PM
I'm most certainly a user, so I have to admit I'm not quite sure what your goal is, here.  To objectively evaluate the system of Life?

I think the first part is to objectively evaluate the various subsystems of life but it's the process of refinement that would potentially provide tangible benefits. Any subsystem can be optimised and bugfixed.

Your set of variables will be immense.

P3nT4gR4m

I don't mean coding everything. At least not in the immediate future. Just tackling bite-sized chunks. As we solve related chunks, we can then group-organise everything at increasingly higher levels so eventually (a couple of millenia in the future) we'd have the lot.

Imagine how the different investigative branches of science could be extrapolated as coming up with an encyclopedia of all the things and forces and whatever that compose the universe. If the universe contains infinite complexity then maybe not but even then, we will probably develop a pretty big, much more rounded picture than we have now, within given limits of infinity.

So what we get is complete or near complete understanding of a huge big complex system in it's entirety. What is missing is the sense of code. Without the sense of code it can't be improved, only looked at. It's the engineering part of science. Something I'm hearing a lot of, with regards science in general is the idea of information. Years ago, what science was looking at was things and effects you could see. Tangibles.

Then there was engineering. Engineering with tangibles is shit like building bridges and putting dudes on nearby astronomical landmasses, but, as more and more tangibles are sussed out the number of tangibles left unknown becomes smaller til it's easy to imagine a position where all the tangibles we have down pat. I'm not saying physical engineering will stop or anything, engineering is god's work. What engineering does is figures out new ways to arrange the tangibles.

As more and more tangibles are understood more and more intangible things are being investigated. The understanding of these intangibles is information. What science is increasingly working on understanding is information. When the thing is understood, as always it's handed over to the engineers. Software engineers. What we do is bring to bear our newly developed code faculty. Only now we're not programming little boxes, we're programming reality. :ECH:


I'm up to my arse in Brexit Numpties, but I want more.  Target-rich environments are the new sexy.
Not actually a meat product.
Ass-Kicking & Foot-Stomping Ancient Master of SHIT FUCK FUCK FUCK
Awful and Bent Behemothic Results of Last Night's Painful Squat.
High Altitude Haggis-Filled Sex Bucket From Beyond Time and Space.
Internet Monkey Person of Filthy and Immoral Pygmy-Porn Wart Contagion
Octomom Auxillary Heat Exchanger Repairman
walking the fine line line between genius and batshit fucking crazy

"computation is a pattern in the spacetime arrangement of particles, and it's not the particles but the pattern that really matters! Matter doesn't matter." -- Max Tegmark

Raz Tech

#11
Quote from: P3nT4gR4m on June 02, 2014, 04:30:18 PM
I don't mean coding everything. At least not in the immediate future. Just tackling bite-sized chunks. As we solve related chunks, we can then group-organise everything at increasingly higher levels so eventually (a couple of millenia in the future) we'd have the lot.

Imagine how the different investigative branches of science could be extrapolated as coming up with an encyclopedia of all the things and forces and whatever that compose the universe. If the universe contains infinite complexity then maybe not but even then, we will probably develop a pretty big, much more rounded picture than we have now, within given limits of infinity.

So what we get is complete or near complete understanding of a huge big complex system in it's entirety. What is missing is the sense of code. Without the sense of code it can't be improved, only looked at. It's the engineering part of science. Something I'm hearing a lot of, with regards science in general is the idea of information. Years ago, what science was looking at was things and effects you could see. Tangibles.

Then there was engineering. Engineering with tangibles is shit like building bridges and putting dudes on nearby astronomical landmasses, but, as more and more tangibles are sussed out the number of tangibles left unknown becomes smaller til it's easy to imagine a position where all the tangibles we have down pat. I'm not saying physical engineering will stop or anything, engineering is god's work. What engineering does is figures out new ways to arrange the tangibles.

As more and more tangibles are understood more and more intangible things are being investigated. The understanding of these intangibles is information. What science is increasingly working on understanding is information. When the thing is understood, as always it's handed over to the engineers. Software engineers. What we do is bring to bear our newly developed code faculty. Only now we're not programming little boxes, we're programming reality. :ECH:

I think I kinda see where you're going with this.  I believe it would have to start on a very small level, cellular at the very least, and even then there's an incredible number of variables to take into consideration.  Single celled organisms are simple enough to predict, however there would have to be a great amount of room made for external stimuli, e.g. temperature and environment, which would also have to be coded, or at least somewhat simplified to suit the code level of the organism itself.  It would certainly be a monumental undertaking, and almost insurmountable when you start to codify human behavior, where a near-countless number of individual cells are working together to react to external and internal stimulus.  It would be most interesting though.
Until you try to come up with a code for the guy who's trying to code the guy who's trying to code...to infinity and break the universe.

Cramulus

very relevant --- http://topdocumentaryfilms.com/all-watched-over-by-machines-of-loving-grace/

All Watched Over by Machines of Loving Grace Pt3
The Monkey in the Machine and the Machine in the Monkey

QuoteThis episode looks at why we humans find this machine vision so beguiling. The film argues it is because all political dreams of changing the world for the better seem to have failed - so we have retreated into machine-fantasies that say we have no control over our actions because they excuse our failure.


part 2 is also relevant, as it shows the origins of us mistakenly treating ecosystems like machine networks.

P3nT4gR4m

Quote from: Raz Tech on June 02, 2014, 04:51:46 PM
Quote from: P3nT4gR4m on June 02, 2014, 04:30:18 PM
I don't mean coding everything. At least not in the immediate future. Just tackling bite-sized chunks. As we solve related chunks, we can then group-organise everything at increasingly higher levels so eventually (a couple of millenia in the future) we'd have the lot.

Imagine how the different investigative branches of science could be extrapolated as coming up with an encyclopedia of all the things and forces and whatever that compose the universe. If the universe contains infinite complexity then maybe not but even then, we will probably develop a pretty big, much more rounded picture than we have now, within given limits of infinity.

So what we get is complete or near complete understanding of a huge big complex system in it's entirety. What is missing is the sense of code. Without the sense of code it can't be improved, only looked at. It's the engineering part of science. Something I'm hearing a lot of, with regards science in general is the idea of information. Years ago, what science was looking at was things and effects you could see. Tangibles.

Then there was engineering. Engineering with tangibles is shit like building bridges and putting dudes on nearby astronomical landmasses, but, as more and more tangibles are sussed out the number of tangibles left unknown becomes smaller til it's easy to imagine a position where all the tangibles we have down pat. I'm not saying physical engineering will stop or anything, engineering is god's work. What engineering does is figures out new ways to arrange the tangibles.

As more and more tangibles are understood more and more intangible things are being investigated. The understanding of these intangibles is information. What science is increasingly working on understanding is information. When the thing is understood, as always it's handed over to the engineers. Software engineers. What we do is bring to bear our newly developed code faculty. Only now we're not programming little boxes, we're programming reality. :ECH:

I think I kinda see where you're going with this.  I believe it would have to start on a very small level, cellular at the very least, and even then there's an incredible number of variables to take into consideration.  Single celled organisms are simple enough to predict, however there would have to be a great amount of room made for external stimuli, e.g. temperature and environment, which would also have to be coded, or at least somewhat simplified to suit the code level of the organism itself.  It would certainly be a monumental undertaking, and almost insurmountable when you start to codify human behavior, where a near-countless number of individual cells are working together to react to external and internal stimulus.  It would be most interesting though.
Until you try to come up with a code for the guy who's trying to code the guy who's trying to code...to infinity and break the universe.

Buffer overrun? 

Thing is I'm not extrapolating this out to the year 50,000 or whenever we have the whole thing. This can begin to happen right now. In fact it's already started. In a sense, the first phase is almost complete. Information engineering has been going for years. It's already had a massive impact on a wide range of real world systems.

Right this minute if your bio-vehicular manifestation apparatus develops a fatal malfunction, statistically speaking, you're more likely to survive now than you were back before a metric fuckton of software systems were put in place to stage-manage all the people and machinery required to diagnose the pathology and perform a rectification procedure.

The deeper these lab-coat guys seem to dig them more they're coming across information. Code. Biology just did it with DNA - a bunch of serial code written on a strip of self replicating tape. So we're currently at the - room full of lightbulbs - stage of this technology but another decade or two and we'll have SDK's and IDE's and Lifeform modelling paradigms all up the wazzoo. Kids'll be running around with apps embedded in their smart clothes that can hack the brainwaves of a wasp over bluetooth and make it not want to sting them.

Human behaviour can be coded. Hell, we already have a good handle on how they work. I see neuroscience, at some point, producing the kind of hard data an engineer can code. All human systems from street crossings to individual personalities themselves will be coded for. You don't like being scared of spiders? Fine - we'll code that for you. Want an encyclopaedic knowledge of ancient Greek architecture. Sorted. Upgraded arithmetic and logic capability? There you go.

I'm up to my arse in Brexit Numpties, but I want more.  Target-rich environments are the new sexy.
Not actually a meat product.
Ass-Kicking & Foot-Stomping Ancient Master of SHIT FUCK FUCK FUCK
Awful and Bent Behemothic Results of Last Night's Painful Squat.
High Altitude Haggis-Filled Sex Bucket From Beyond Time and Space.
Internet Monkey Person of Filthy and Immoral Pygmy-Porn Wart Contagion
Octomom Auxillary Heat Exchanger Repairman
walking the fine line line between genius and batshit fucking crazy

"computation is a pattern in the spacetime arrangement of particles, and it's not the particles but the pattern that really matters! Matter doesn't matter." -- Max Tegmark

Raz Tech

Quote from: P3nT4gR4m on June 02, 2014, 05:38:16 PM

Buffer overrun? 

Thing is I'm not extrapolating this out to the year 50,000 or whenever we have the whole thing. This can begin to happen right now. In fact it's already started. In a sense, the first phase is almost complete. Information engineering has been going for years. It's already had a massive impact on a wide range of real world systems.

Right this minute if your bio-vehicular manifestation apparatus develops a fatal malfunction, statistically speaking, you're more likely to survive now than you were back before a metric fuckton of software systems were put in place to stage-manage all the people and machinery required to diagnose the pathology and perform a rectification procedure.

The deeper these lab-coat guys seem to dig them more they're coming across information. Code. Biology just did it with DNA - a bunch of serial code written on a strip of self replicating tape. So we're currently at the - room full of lightbulbs - stage of this technology but another decade or two and we'll have SDK's and IDE's and Lifeform modelling paradigms all up the wazzoo. Kids'll be running around with apps embedded in their smart clothes that can hack the brainwaves of a wasp over bluetooth and make it not want to sting them.

Human behaviour can be coded. Hell, we already have a good handle on how they work. I see neuroscience, at some point, producing the kind of hard data an engineer can code. All human systems from street crossings to individual personalities themselves will be coded for. You don't like being scared of spiders? Fine - we'll code that for you. Want an encyclopaedic knowledge of ancient Greek architecture. Sorted. Upgraded arithmetic and logic capability? There you go.

This sounds both terrifying and amazing.  It would be terrific for everyone to understand everything they wanted to, but where do you stop?  Does the planet just suddenly become a hyper-inteligent utopia? Or does a more sinister element take over?

Perhaps this is just the cynical, paranoid part of my brain talking, but it seems to me that something so incredible as understanding the "code of life" and it's application would be subject to an incredible amount of ethical problems.  I picture it leading to some kind of dystopia, where everyone is born beautiful and inteligent, yet the upper class can be easily seperated from the lower class.  Born to a family that was poor when the technology to alter brain-states was created? That's too bad.  You're going to be a janitor.  And you know what? We're even going to code you to fucking love being a janitor.  And when you go in for your checkups, we'll make sure that we keep you that way if any nature/nurture stuff started to change your worldview.  And they won't stop until everyone's "beautiful".

Pay no attention to anything I just said, because I was rambling for no good reason again.