On this page, we’re going to document the Formula language of Perfect Desire in detail.
We jump right into it, as fast as our Software accelerates when checking a simple option.
Start Simulation today.
See? – the innovation motor has been started, and our Startup engine is now accelerating over time. In this mode, no need to look at any #BigData from past. We use this at times when we understand what we are heading towards, as we’ll get sharper results now. We leave the past behind, start at present, and are just looking forward.
Thank you for going all the way down the road, and finally coming here.
This is the key one page.
And we really, really appreciate it. A reader.
In brief, a Formula in System Dynamics could be any kind of mathematical equation.
- T_TotalIncome = T_DailyIncome * i_WorkDays + i_FixedIncome
- T_DailyIncome = i_BreadPrice * i_DailySales
Simple mathematical expressions like max(), min(), log(), exp(), and(), or(), ifzero(), and constants like pi, e and Time t are already supported.
You don’t see the point, right? – ok, about every program in the world has got these.
In Perfect Desire, for ease of conceptual understanding, we have limited time, although everyone knows it’s unlimited.
introducing t_max. Total Runtime.
In Desire, we define a simple list of pure mathematical Formula in a single file. In using a variety of (x1, … xn) for our input values, (y1, …, yn) for our target results and, of course, the Time t dependent notations including delay, we describe a 3d diagram over time.
We compile once.
Out comes a Dynamic Application.
So Perfect Desire, in itself, is no business model calculator at all.
See? – the Business Models are just Tutorial, a trick. Nobody needs to know if they’re not really interested. Like all those business people looking out for money, you know. The universal value holder, no sense at all in itself.
So even if they’d arrive on this page by accident, they’re already gone, as they’ve seen there’s no money to earn in this project, and that’s what they are quick at. Traders…
This project, however, is about working as good as you can. It’s about creating something: new things. Nobody should feel bad if they couldn’t do better. Lazy people should feel bad. If you ever tried something, with as much effort as you could, and you failed, you have: learned. Perfect!
From superior knowledge, you’re all ready to create unique values now. As new things are all unique selling points. So this page is about the really cool stuff and they will never find out. Don’t tell them, it’s needless. They won’t understand our language. Bitcoiners.
If you read up to here, shake your head, and you think trade units are as well important, ok, you’ve just bypassed the first blocker. We’ve lost the greedy ones by now. So is it possible you maximize net profit in Perfect Desire? – of course. It’s useful at times. In the end, we’re much about individualism and personal freedom, so we leave that up to you.
This software starts reading in a few Business Model declarations into its Formula Solver Engine and from there, it builds two dynamic lists.
1. Input Values. 2. Target Formula.
There is a third thing, likely overlooked, as it seems so small.
Perfect Desire always builds explanatory Tooltips for everything it calculates. Full Transpareny of conceptual description. For every thing we build, they document all formula. See? – Super easy machine calculations in full transparency.
All these are Sharing Economy things by definition, unless you decice to exclude money, our universal value exchanger.
A brand new programming language compiler in itself. It’s fast enough that it can compile its dynamic user interface at the time when you’ve started the application and hit OK for the first time, just in time. So what the hell is Perfect Desire, then.
Congratulations, Young Modeler.
The Desire Language Specification.
This page is documenting the underlying formula language.
We call it Desire, as it’s very simple and desired. Basically, most of it is a plain Math formula. We translate Targets. Try them out and select the right one to follow.
There’s a small language interpreter, consisting of a Lexer (lexicographical analysis), that is separating characters from spaces. Next, a Parser (identifying any keywords, operators, and a number of PD Input and Target Variables, mainly by keyword table lookup) and a differential equation solver. So the Parser is what really makes this a programming language. It can do Semantic Analysis of our simple language.
As of 2017, you can define custom or standalone applications in Perfect Desire, our professional client, yourself. We’ve completed this functionality with v2.50.
In v1 of our solution, Predicted Desire, you can edit parameter values and development over time in detail, but there’s no way to adjust the calculation models and formula, themselves. So you’re a little limited to what we offer.
Still, in case you’ve seen a formula you’d like to understand better, this page may be useful as well.
Both v1 (Predicted Desire) and v2 (Perfect Desire) of our concept support 3d calculations with Input Values (x), Target Values (y) and Time Axis (t) already supported. We just use a special, split 2d projection (Detail Input: x over t, Result Graph: y over t), as it might still be difficult to view multiple 3d projections on a static 2d display. Well, well.
No need to hurry, we’re more than 4 years ahead now. Even if we all got brand new 3d lenses, we’ll all need more time to learn to read 3d projections than we need to support it. We support it by concept and keep growing slowly. See? – it’s not important to support everything. It’s important that you can support the right thing in due time.
Learn to look ahead, prepare yourself, and decide at the right moment in time. The competition never sleeps, you know. So whenever a competitor comes up with a challenge and we got a new situation, we start our small predictor again, check all options, and decide for the best new way to follow.
That’s why we measure values over time.
Desire Identifiers. Keywords.
First of all, for calculating formula with Input and Target Values, we need to identify these. In Perfect Desire (P), this is done automatically for you.
We just give a name to a value, like Employees, and give it a starting value: 1.
Now Perfect Desire will automatically create and show the following ToolTip item:
Should you choose a multi-word label like “Number of Employees”, PD would still automatically create the keyword.
Only the hand-written comment is added by calling a small extra function, at the moment. We’ll make it available in the pro user interface with an editable comment field, so that you can document all extra formulas as well.
Title: “Employees” => i_Employees
Title: “Number of Employees” => i_NumberOfEmployees
Title: “Total Numer of PV Panels on your roof” => i_TotalNumberOfPVPanelsOnYourRoof
As it would be a little difficult for our small language interpreter to understand values consisting of multiple words, like:
Installed Capacity = Panel power * Total Number of PV Panels on your roof ^ 2,
PD automatically creates a keyword for each parameter. It consists of all its words, written altogether without spaces, each starting with a capital letter for ease of reading, and a prefix like “i_” (Input Value), “T_” (Target Value) or “S_” (Stock Value).
So we get:
T_InstalledCapacity = i_PanelPower * i_NumberOfPVPanelsOnYourRoof ^ 2.
So this is a simplification, a tribute. We are making things easier for my Parser here. You have to use these systemic abbreviations in your formula. Because Perfect Desire has to know where the ^2 applies to (roof, or sentence as a whole).
The ^2 is a Tribute to Einstein of course, our guiding light in quantification of complex behaviour, but it’s not gonna be included in our Photovoltaic System’s SD description model, as it wouldn’t make sense at all. This project is about building realistic machines.
I am sure he will understand.
Reflection in Desire.
Now that it’s understood, our little accelerator can now call the internal Math function of same name. So it replaces the ^2 expression with
Math.pow( x, 2)
the power fuction, which will calculate x^2. And here starts the fun part.
Math.Pow() will do the work for us, it’s all there! Floating Point, Double Precision.
No problem at all for us, we already support a powerful function from math. As people at Microsoft have been programming a language, over almost 20 years now, that will do the remaining calculation. C#.
Now you understand that Predicted Desire, our first ever product, was just a proof of concept.
It’s a cross-compiler from Desire to C#, and we are showing it to everyone all the time. Why did you think it takes a while to start a new model? – at this very moment, we compile text strings just-in-time, and our software builds a dynamic application, with all calculations and formula built into it. The ability to change any value over time is part of the standard product. So we add its ComboBox, as well. Pretty easy, actually.
And from all these people hitting OK buttons, you came by here, today.
Targets and Formula.
As well as being a more compact expression, this notation is also much more easily to interpretate for our Formula Solver, so we automatically create those keywords for you. A keyword in Desire will consist only of letters, so any numbers, braces, and comma in its title will be automatically removed. What remains is a compact expression, easy to remember, easy to translate.
Next, there are Target Values.
Target Values are calculating your results. These are explained in detail in the PD Input and Target Value documentation, so we’ll not repeat that here.
For the time being, just remember that each Target Value will calculate a Formula, and that one may consist of other, simpler Target Values, or a simple calculation of Input Values (e.g. addition, multiplication). Then, there are also Stock Values, also explained in detail in our docs. In Perfect Desire, a Stock Value is typically based on a single Target Value, and it will simply accumulate all arriving values of that Target over time.
Mathematically spoken, it will calculate the Integral of the underlying Target Value‘s function over time. So every Stock Value describes a simple Differential Equation of first degree. We can do higher orders as well, however, if we overdo it, our little accelerator would slow down, soon. Fortunately, i haven’t been able to think about any useful Differential Equation of higher than 2nd degree that’s easy enough to understand.
In Information Theory, we aren’t much about Integrals and Differential Equations, though. Keep it simple.
a popular programmer slogan.
We are Nerds.
Nerds got a different word for it. Nerds call this kind of funtionality a for loop.
So what’s a Stock value, then? It’s a universal accounter. A collection of values, a for loop, expressed in maximum compaction: in a single word. A Stock Value sums up a Target over time. ok! – it’s like a counter for bees. And what do bees do? – they keep collecting honey. This is not what we are about.
We are Dynamic Applications. We are Sharing Economy.
Oh, by the way. Have you ever seen that movie, The Social Network? – hm hm.
Don’t worry, if you don’t get it by now, you’ll find out what i mean, pretty soon.
It’s all about valuating people. What kind of benefit is that? – what a waste, what a crap. It’s so boring! Silver Surfer Stuff. We recommend you leave Facebook today, and join here. We give every human in the world the same value. We don’t give separate values to super heros like Steve Jobs and the old guy from next street and the girl from next door.
In Math: T_PersonValueAsAWhole = 1.
So at Dynamic Applications, we believe in every human has their specific benefits and type characteristics, so however you sort them out, there’s advantages and disadvantages with everything. So how can say that Type 1 is always better than Type 2?
That’s what we call arrogant behavior.
With people like that around, no wonder we have so many conflicts in the world.
Don’t tell them, at Facebook, they’re old. And they know it. They are big, and big organizations become structured, fat, and full of rules. They are saturating.
Old people are getting slow.
This is our advantage. And so – altogether, in providing best value for money – while others are going down the road, we are expaning over time, naturally.
Desire: Math Constants and Time Delay
We are small, but we’re pretty sure that we got a better culture than Facebook.
Now take a guess on who’s expanding over time.
Ok, so let’s look at how we handle time constraints in Perfect Desire.
There are a few constants that can be used in Desire, like the mathematical constants:
e = 2.7182818… (Euler’s number)
pi = 3.1415926… (Circle constant)
t = the current Time value of the current Simulation Model, the second, day, month or year of projection we’re looking at. It represents the amount of time used up up to now. As Time Unit, we support years, months, weeks, days, hours, minutes, seconds, msec, usec, and nsec (nanoseconds).
At Dynamic Applications, we support small things as well.
t_max = the maximum Time value used in the current Simulation Model.
It represents the Total RunTime of our simulation.
The Time Values t and t_max are mainly used for delays, enclosed in rectangular brackets:
T_LastYearsNetProfit = T_NetProfit[t-1]
T_FiveYearsAgoNetProfit = T_NetProfit[t-5]
The reason to introduce delays is that this way, you can simulate Balanced Scorecards with circular dependencies, like the most attractive business model, ever invented:
Success to the Successful.
See Wikipedia on System Dynamics, the section about dynamic archetypes, for more information. Or download PD, our proof of concept client. Just click on the top right growth icon. An introductory picture about Business Dynamics Management shows up. Click on it, there you go.
Currently, the only allowed Syntax here is to have an Input or Target Value followed by an opening rectangular bracket, a t, a minus, then a 1 or 2-digit number, and finally a closing rectangular bracket. So [t-1] delivers the last moment in time that we measure.
So T_MyTarget[t-5] returns the value of T_MyTarget at 5 steps in time before. If we measure seconds, this way, we can define a time loop over 5 seconds. If we measure years, well, oh well, we’re talking about a real company here. A larger one, standard type, you know. Whenever you bring in a good idea, really slow.
If a T_MyTarget[t-5] expression returns less than zero (0) when applying t-5 (for t=0 … t=4), zero itself is returned in all cases without looking at T_MyTarget, anymore.
So we can’t look past the beginning of our little simulation model, that easily. It starts where it starts. And this way, we also can’t crash PD as easily. Hm hm.
Oh, before i forget. Unfortunately it is not possible to access a value before it is calculated. So in 2016, as there are so many things that can happen, we don’t really about year 2020. We can of course estimate things, and if we base that on logic, we can calculate the product price that we can make with better machines in 2020, like, the best price possible. That is certainly possible, and we can project in high precision in theory here. Just keep in mind that this is a professional planning software here, and no mentalist, diviner or sooth-sayer. Mathematically though, because there could be completely new inventions, competition never sleeps, etc., we can never project the future exactly. So that means that we can make a really good plan from today here, based on the facts of today.
At Dynamic Applications, we say it’s better to have a plan, to follow a plan, to know what you’re doing and why you’re doing it, than to have got no plan at all. But we are not certain. So we collect some basic information (and if we got our brains together, we take not as much as possible, but as few as necessary), so we collect relevant information on-demand only, the facts that we need to calculate our goods or services. And from there, if anything relevant happens one future day, we start our small projection system again, and we enter the new facts. So based on new facts we do another plan, and again it shall be perfectly optimized in theory. So we define a new way to follow and again we are best of the whole class of competitors.
So unfortunately, we can not support [t+5] at any point in time. In much the same way that we take memories from past to learn from and define our present behaviour, in Dynamic Applications, we can only look backwards in Time. So we can take last year’s revenue and define this year’s R&D budget for Research and Development from that. Think about defining [t-5] from the target value and now we talk about a running system again that could also exist in reality. So in doing Projections here, if you pursue Financial Projections and Targets of similar importance, you do good in creating realistic formula systems where everything is based upon. So that divides us from the sooth-sayers. If we find out a hard fact that tells us developing our business in this our that way can not even work out in theory, good! Now we know. Every company owner would certainly say thank-you for knowing that fact, 4 years ahead of time. Not much harm, big advantage in daily business, in daily competition.
The good news is that it’s really easy to create such formulas, and to access any value from past with that simple notation. There are thousands of interesting examples where we can use data from past to collect information relevant for the future.
Let’s take a Photovoltaic System, for example. In much the same way that a PV System collects sunshine and produces energy from that, we can collect all these small amounts of energy, see how much we can use ourselves, sell or store the remainder, and calculate exactly how much money can we save in time by lighting up Grandma’s old living room lights for our small family, all built on our own roof from hand made craftmanship, only the pure silicium cells done professionally and bought for a good price.
Caring for our own problems ourself, without harming anyone else.
That’s what we call a fine, decent, adequate, social, legal and justified living, here.
So that kind of perfect freedom that’s the Spirit of Startup Founders or Foundress, the American Dream we feel, it comes along with a lot of responsibility, or you’ve best chances to end up on perfect loneliness, really fast.
In being Founders of 21st century, we keep looking for Problems to Solve, for Solutions to Provide. That’s what we create our business afrom, that’s where we calculate the best price possible for. But we’re not creating artificial new problems. Try to avoid that kind of thinking where you can. We have to look at the world from the customer’s perspective.
If our neighbours won’t pay us for producing surplus energy in mid of summer, that’s also fine. In being free, we respect others as well, and so we care for providing ourselves a battery, or we accept that we can’t make much money, now. And everything beyond that that you hear on street is bullshit from greedy politicians, just stupid emotions and populism for their audience, with no hard facts behind that.
One important thing to note that at the moment, we don’t support circular dependencies (full-circle time loops) in Perfect Desire. This means that you can specify something like:
T_SuccessProfit = T_Customers * T_ProductsSold * T_PricePerProduct
T_PricePerProduct = T_MaterialCost + T_ProductionCost * T_ProductionTime
T_ProductionCost = T_MachineCost * T_ResearchAndDevelopmentFactor
T_ResearchAndDelopmentFactor = T_SuccessProfit * 0.01
Even when adding additional Input Values, there is no solution for this equation system, as T_SuccessProfit depends on T_PricePerProduct, which depends on T_ProductionCost, which depends on T_ResearchAndDevelopmentFactor, which depends on itself.
So reporting this kind of mistake is not a defect, this is logical behaviour of our Formula Solver. If you have a = 2 * b and b = 4 * a, you can’t calculate anything useful from there, as the formula system has a logical defect in itself. If amount a is double of b, then b can not be 4 times of a (or a and b are 0, and in reality, there is no useful amount at all).
There’s an exception from this rule in that if we sort every single calculation over time in a sophisticated manner, it could be possible to make above Success formula system work by specifying:
T_ResearchAndDevelopmentFactor = T_SuccessProfit[t-1] * 0.01
So that would mean that you derive your R&D budget from the money in your pockets, which depends on your success from an earlier month. We are targeting to support all kinds of simulations like that. But at the moment, all we are saying is that it may work, already. This kind of loop is officially unsupported (not yet fully supported in all cases). It may work already, so you better verify what it does in detail, which it allows you to.
The background is that – as you can imaging – there are specific complicated cases with time loops, so we support a growing number of detail situations where it works, but i’m not 100% sure it’s complete in every logical formula system inter-dependency that a human mind could construct in theory. Finally, one important thing to consider is that we are not in a Science Fiction scenario here, but in a sophisticated mathematic simulation model environment. This means that we can not access future values, and we can not make time loops where all values are in the present (a = 2 * b , b = 2*a). The only thing that we can support in theory is to support access of past values, so we target to fully support all kinds of delays (a = 2 * b , b = 2 * a[t-1]). We derive this from pure logic, and pure logic explains why the only valid syntax for using the [t] notation is actually
where the “1” could also be a 5 or a 15, but if T_MaterialCost[t-15] goes beyond T=0, then this Target will be 0 in the formula. So again, we have to start somewhere, and once we define a start point, we can’t look at values before the start of the simulation, as we have limited time in Dynamic Applications.
Everything before the start of a Dynamic Application simulation (and everything beyond the end of the simulation Time frame) is defined to be 0. Of course, you can help yourself by defining a static constant like I_InitialValue and use that in your simulation, so it’s not a real limitation of what you can do. Just wanted to be clear what is possible and what is not possible, so to keep people from reporting illogical defects (which is hopeless, so this is much about being able to reject such bugs in a friendly way if they are reported. RTFM – Read the friggin’ manual before you report a bug… that you want to have fixed by us for you in due time, for free … believe me, it helps alot if it is possible to fix it in theory, so that your request is not impossible in theory and in practice, altogether, because you are lost in space and nothing makes any sense anymore to you :)
In case you have specific requirements here, and a good example, this is welcome.
Also, if you are lost in space and can’t get this crazy but utterly important simulation to work, just call. We’re going to take a look at it and help you for free, maybe even fix your simulation model for free, or add another clue to our platform for the next release for free, if we can do it in some reasonable amount of time and (most important) the solution will make a lot of sense to everyone else and will be easy enough to understand.
Good we’re not an iOS App, with our little cross compiler here.
At Apple, they wouldn’t let us into their App Store, as they’re always afraid to lose absolute control. So this project doesn’t seem to be about Leadership, even if it’s Steve Jobs the genius, right? – what a rip-off, by the way. They take 30% from every one, just for having invented the App Store! – ok, they’ve invented it, no question, it was an exceptionally great idea. 10 years later, all we do is financing the futuristic circular Apple Cupertino Headquarters from it, really, and lots of big guy’s salaries.
My small company here, it does not even need an address of its own.
Our website is hosted for free by WordPress.com, from San Francisco, the company is really a Laptop hanging over my shoulder, where ever i am today. Our free FTP Server is hosted in Switzerland. Our software is hosted by hundreds of Freeware and Shareware websites, all over the world. Developers provide great software, they publish for free, and they got something in their store. Win-win.
oops, we’re not about anarchy, either! This is not an Open Source Project.
The Three Kings of Information Society, with 10000 employees.
Don’t be evil,
their first popular slogan. Hm hm. Workarounds.
These guys keep collecting huge amounts of data from you through all kinds of services, which is good for them in the first place. It allows them to create a lot of business models by selling that data in a more-or-less anonymized way, anonymized only if that doesn’t hinder the money collection, of course, which they explain as “necessary” to you.
So now you understand why they need that slogan, as a workaround. If they wouldn’t say that, everyone would instantly find out what kind of money print machine we got here.
At Dynamic Applications, we are Pirates of the sea.
In 21st century, we are many, as we found out there is just more open space, out there. And we love Freedom. We hide and seek. It’s not exactly a refugee thing. We just do it this way. This way we are expressing our culture.
Our culture defines what we are about. It identifies, it unifies us. We are courageous in a very special manner. We take from the rich and provide for the poor. Ah no, no robbery. We do it in a smarter way. We enter large seaships. Yes. But we are also a civilization.
We are looking for true Pirate Desire.
Do you remember the culture thing? – we are 21st century dynamos. We enter a Vessel, settle down, free all slaves. And who doesn’t feel comfortable with it, will be allowed to leave in due time. We are renewable energy providers, wait no, energy is renewable by definition. We are 21st century energy providers. Yes. We are Innovators.
We are looking for change. And if there is none, we define change.
This means we define something, some thought, some combination of other people’s thoughts, we suggest it, we post it, and in being Pirates, the important thing to note here is that we think it’s going to make the world better place for everyone. But we do it in a way that we just express our thoughts, in our very own small platforms here, and we do it so that you guys, you the non Pirate readers who came here by accidents, can use our platforms, as well. So that’s why i do it like that, and that’s why i am not ashamed of it, anymore, although it certainly feels embarrassing if you do it like that, you know, directly, directly to the point of what you think, like, not dirty, not polite, not hate, we do it so that it’s more like raw. We try to express our words in a language that everyone can understand, you know. Direct language.
We create the kind of energy that keeps the world moving, in all its beauty, in global balance. We aren’t Steve Jobs. At Dynamic Applications, we create jobs. We catch up ideas and provide pretty, simple calculators that allow everyone to check out and understand whether they carry a brand new, realistic business case in them.
As we are Sharing Economy, at Dynamic Applications, we try to give all benefits back.
Ever thought about defining your very own App? – just send in a small bunch of formula. If it fulfils any useful purpose, we’ll post your @dynamic_idea for free, and retweet that to 50.000 followers over time. We’ll host your version on our website for free, we support you, we’ll explain all you need. And we offer to share 75% of every net profit we do from selling your App. We’ll keep 25% for our effort, and that’s how we serve our supporters. We’re driven by customer’s vote, so who needs dictatorship in a free world. How about that, big Apple? – prepare to send in your tweet, Young Modeler. If you got more questions now, see Website Impressum for Dynamic Application’s contact address.
We imagine a wish comes true, here and there. As people find their way to follow, start believing that they also keep holding a key. A key to a successful, self-contained way, defined by their own hand’s craftmanship. We just provide the math part here, as maybe not everyone in the world has got resources to study a few semesters of Physics, including Math. We provide simple business cases like a bakery, that everyone can understand and verify with a pocket calculator. This way, we create trustful relationships. This is also why we publish our concept, but not our sourcecode. It’s an inventor thing. Be proud to understand and do it yourself. Develop a new, loosely connected international thing. Develop your own idea, world wide unique. What a USP.
So right from March 2016, when our first mockup was available for download, our network started growing. I was truly ashamed of it, yes, as it couldn’t even add up a few numbers. The solver class was not yet written, and i didn’t know whether my concept was going to work.
How it grew?
we grew it ourselves in the beginning, as if it would’ve existed!
Post a concept, publish a prototype, a mockup, a concept study, start inviting people, and fix the prototype. Every day. That’s what we do. And people start looking, laughing, you know. And once we got the first prototype, the bakery calculation, up and running, we started building the really cool stuff right into the application. And if you do it this way, at some point, the target group gets totally excited about what you do, so they’ll start telling everyone, look at this! Until then, we concentrate on building, and keep growing small. Who is our target group? – just people, you know. And we’re not talking about the money makers here. Just people like us. People who want to start working. Working on new solutions, that convince simply by functionality, by solutions, and make us proud in a good way. Proud of all the work we’re investing, as we believe in there’s a reason we are on this planet, and we want to contribute, not destroy. So even if we got not a single customer yet, we want to be the lucky ones. And i believe we are many, so that’s why i’ve started this project.
So even if we sell just one App a day at this very moment, in November 2016, don’t think we got no plan just talking. Once in a while, we put numbers in our own business model, the SocialMedia driven App Developer. And from September to October 2016, the number of visitors of this small website has more than doubled. 1252 people visiting our site, reading more than 2500 pages, up from 623 visitors in September. What an acceleration.
The Dynamic Applications project is much about enabling the poor.
Our society is pretty much about a value.
We like to do it the best possible way. We are inventors, you know.
Inventors would do it this way, as they are idealistic. And so they got a pretty good idea about fairness. And fairness has got a lot to do with why we keep publishing new ideas to follow, all in the open. We invite people to join. And they are visiting this websites in thousands, already.
I am not saying this project is finished. You are invited to join in and provide change. Yes, you! We are discussing innovation. As soon as ready, we build machines. Pretty small ones. Some of them are IoT devices. Some of them are just about beauty and caring for each other. Some of them are renewable energy machines. But all of them are pretty idealistic.
Some people are laughing on us. Yeah. Small believers. Look at the Pirate party project, an idealistic approach about a better society. This project has just been started, and they are leaving the already. As if they never heard what trend curves are about in a lifetime. These people have no idea how good it feels to do the hard part of the work.
At Dynamic Applications, we say they are going to join back, later, when there’s something to earn. Stupids! Missing the best part of it. The achievement phase. You find it confusing to find political messages on a company page? – remember this is a 21st century company, just in case. The new ones.
So if you are a Pirate, you know, from one of these parties forming worldwide these days, treasure island and stuff, don’t tell anyone full stop end of discussion. It’s not negotiable.
If you are not a Pirate already and you ask yourself, what is this guy writing here, i thought this was a language description page, don’t worry. You’re just a normal person.
Just i wish at sometimes people would understand i was also born as i am.
And they never understand.
Imagination is everything. It’s the preview of life’s coming attractions.
Desire: Functions and Operators
So here are the currently supported Functions and Operators. As you can see, these are called exactly as you know them from Mathematics.
We’re also supporting the standard Operator Priorities, with Brakets ‘(‘ and ‘)’ having the highest, followed by potentiation, then multiplication/division/modulo, addition and substraction, and finally, + or – sign.
As you see in this screenshot, the translation from Desire to C# is pretty much 1:1. We just added the developments over time aspect.
It’s natural. How could an innovator work without a good tool!
We’ve build it ourselves, of course. As if it would’ve existed.
T_Result = 2 + 3^2 / 100 = 2 + 9 / 100 = 2.09
T_MyTarget = 5 + 1 / 10 = 5.10
T_Result = max( 11.25, T_MyTarget ) + 1 = 12.25
T_Result = ifzero( T_MySwitchVal, 100, T_MyTarget/T_MySwitchVal)
- The ifzero() method will check the first parameter, first.
- if zero (0.0), it will return the second (“then”) expression’s value: returns 100.
- if not zero, it will evaluate and return the third expression (“else”).
Other variants of if-then-else shall be implemented in a similar matter, comparative expressions (, ==, =, ) are already supported by the basic solver engine.
Oh, by the way. Desire is based on a small code sample, a simple function plotter i found on one of the garbage hills of science. It was x/y only, but the formula interpreter was ok.
It was done by a guy called Th69. So i had to add the time axis. It was difficult, as you’ll understand, as we have limited time in Desire, but it’s not a static constant array of values. In Perfect Desire, we are using dynamic time. The runtime value and unit aren’t constant. We can change them at runtime, PD extends and reduces as desired. It is a major experience, so we have to restart our little formula solver for it, at the moment. Dynamic Time. Hm hm.
Interesting, isn’t it? – what our little baby here seems to support by concept. Sometimes i wonder myself what kind of machines will be invented in Desire. Cloud walkers…
Note that at the moment, all expressions in Desire are assumed to return a value. We are still calculating. The expressions we talk about here, they are going to be used by all our young System Dynamics Formula modelers. And we’re talking about youth of mind here. Everyone can join. Just remember this project is a peaceful one. It’s a sustainability project, with a very slight attitude towards the progressive side, maybe as much as the greens are a very little on the conservative side. It’s ok. We invite Young Modelers of the green party and we’ll try to convert them on the way, naturally.
The following screenshot will show the basic expression syntax, noted down in a formal description called EBNF notation (Extended Backus-Naur Format).
It’s a formal language description.
Read Wikipedia on Noam Chomsky sometime for a good story about developing Formal Language Description Theory. Thank you, Noam!
If you got any idea of a Machine, Product or Balanced Scorecard that could be represented by our Formula Language, feel free to let us know, and contact us anytime.
As far as Perfect Desire is being developed now, we describe a whole Simulation Model in a single file. We just specify the simulation model’s Target Formula and Input Parameters in that file. Then, we compile once.
There you go:
A new Product Calculator adds itself to the list of Startup Cases. As well, it is compiled when you are hitting OK.
Out comes another Dynamic Application!
Created in second one.
So now that Photovoltaic System is working allright, at Dynamic Applications, we already know that we can define many. It’s a proof-of-concept, as we say here.
All Input and Target Values as well as all concerned User Interface Panels are constructed automatically from the model’s declaration, with Values filled in, ToolTips generated, and all Formula automatically resolved. So if you know the relevant formula describing your product, well, send them in, and we’ll build a custom calculator for you in one day.
The final missing piece in this picture is that there are a lot of addComment() functions below the text where we are declaring our formulas, as shown above. As i said, we’ll transfer it into a user editable comment field asap. So everyone can comment tooltips as they want, but noone can hide formula as they want. So if you ever see a model in PD, with mysteriously long formula, beware. That one could be a cheater. Hasn’t understood.
Transparency and Comments. So here we talk about what the model does. How you can fine-tune this very Rocket to calculate something really, really useful to you.
Here we talk about the kind of Optimization Problems you can solve now, all by yourself, using Dynamic Applications.
Bringing it all together, PD is much about squaring the circle. It’s about an easy business planner for the optimal way to go, the Optimal Compromise, the Optimal Target to find within any number of conflicting requirements.
It’s as simple as calculating PV Panels: if you take just one, you’ll easily self-consume all its power, so it’ll produce electricity at about 10..12 ct/kWh. If you fill your roof with panels though, you won’t be able to consume all its power in summer anymore. And now imagine in 20 years from now, about every household has them. At sunshine, noone can sell electricity, it’s all surplus. Well, maybe, we’ll find other useful ways, like empowering our smart electric cars. However, it depends on electricity net price developments are well as on how many people will build PV Systems.
Ok, back to the simple optimization problem we wanted to solve today, just by checking a few options. In PD, for Input Values we just estimate what we think realistic, one by one. PD counts it all together in a second and tells us the exactly measured, combined outcome over time.
The perfect number of PV Panels for every single person in the world.
We’re not saying the number we get is mathematically exact. We are saying it is exact enough.
We are saying you’re not gonna be taking a pair of scissors and cut a PV Panel in Three Parts if the true number is 7.333 panels, anyways.
So yes, if you look closely enough, there will always be bugs in our PV model declaration. And you’ll always find a formula, or even an Input Value, that could be split into more details.
It doesn’t matter.
And now you understand the Potential of System Dynamics. It’s been a Game Changer Innovation.
The Perfect Overview.
Remember Jay W. Forrester, and a lifetime at MIT in Boston. Inventor of System Dynamics.
in german, my old native language (before i became a refugee and converted to the world of digital natives (don’t tell anyone, they’ll think i’m a crazy old guy)), we used to say the same thing in a different way. In being Pirates, we say:
Wir stellen das mal infrage.
We put reality in question. We think innovation is a good thing, overall, if you clearly imagine the advantage of your innovation against the static world, defined by law and order. Nobody understood our slogan. Sometimes i think they all understood, and the only problem was that everyone understood it in a different way. It was a beginning.
Our secret Nerd language here, Desire, was not yet born at that time. That’s the true reason. Well maybe, i won’t know, Desire was never born, i am not here, the Matrix exists. I just think i am, so i am. And i thought that something was missing in the picture.
And so, i’ve invented that part of our little society.
It’s like imaginating an (e) electron for the first time, in a way.
Nobody understood what that guy was about.
See our Customer and IT Service Conditions for platform development, simulation model development and customizations, consultancy and Startup Workshop conditions. We’ve defined a variety of prices, starting from 25 Euro for a 90-minute Startup Workshop. So while the software is more or less free of charge, whenever you with me to reserve some time exclusively for your project, it’s paid. And we try to make our prices as good as possible. As soon as we can make a better price, we’ll do. As you do-it-yourself, it’s free. And in our workshops, we’ll explain you how to be successful. If you want, you are invited even to make a business out of Dynamic Applications.
As of v2.50, You can translate Dynamic Applications to your very own languages.
Our 2018 dna license allows you to publish all your simulation models, free of charge.
Only if you want to sell them, our Dynamic Applications Business License conditions apply, and with 25 Euro per User per Year (at the time of rewriting this article), we think they are extraordinary. Everything else is for you, and we’ll charge you only in case of extra requirements for your customers. Pre-Sales consultancy and basic support is free.
You know, I’ve researched this whole life to understand how to build this one.
Now that i found that out, i am building this one machine, PD, the inventor accelerator, and since i got the feeling i’m not desired in a standard company, this one is my home now. And since i’ve built it, of course, it’ll be of no interest for any other inventors, as guys like us are all about inventing completely new things.
And now it seems really mean to you that we mention it right now that you can pay?
Well, just found no better solution in the beginning of our little project here. Maybe it helps if you know that we have earned 250 € in 2016, total orders.
Still, with more than a thousand free downloads a month, we’re expanding rapidly.
As of December 2017, we’re way beyond 100000 downloads, and more than a thousand Freeware and Shareware website pages are publishing our small applications, worldwide.
Thank you for supporting us.
And that’s what Early Movers are about.
The very first person in the world who understood what we are doing here, and then ordered a piloting consultation, is Norbert Grote. a Carpenter.
For everyone else out there, Photovoltaic System will be available as a paid Windows 10 Store App from 2016.10.30.
We think our product is crap really, at the moment, considering how wonderful it’s gonna be. It’s unfinished. However, it’s also good enough: it works. And I have decided to sell it, yesterday. Just compiled it and uploaded the Appx package to the Microsoft Store.
it’s 99 ct. for everyone.
So whatever happens, there should always be a 99 ct App, or even, a free dynamic application that will allow you to hunt for Promo Codes and activate the all of it. For the poor, who got no money, but are willing to take the effort. Just hope it was the right decision. So now you see how life starts feeling once you took yourself the time and started to learn a brand new programming language.
For Apps that can be developed and deployed to the official Windows 10 App Store on day one.
We do it so that it is completely up to you to decide to pay us, ever, for a standard product.
Our betas are free; you’re testing, it’s free. If you think this is any useful what we do here, you can buy one of our original Apps. One of the really early ones, you know. The unfinished ones. They’re as good as possible, and improving over time by concept. Pay once, get unlimited upgrades. We think it’s fair.
As we are many, someday my share should be enough for a decent, small living.
We think it’s gonna be a great business model for a lifetime. Start working for people from day one, as good as you can, and define a way that’ll help to sort honest people turn into long-time customers, all by themselves. This is all about developing your own thing, right? – we don’t know how to go on from after 2017, but we don’t worry, as there is still time.
So how about the first paid Dynamic Application, built in second one? –
it’s the result of a crowdfunding idea, it’s the February 2016 winner of @dynamic_idea, our customer competition, and it was able to solve only one simple optimization problem:
The perfect number of PV Panels on your own house.
It may be useful to check out our concept in detail. So get your own picture.
Since it was the first product ever compiled in Desire, created in second one, we used to call it
about System Dynamics.
In case you want to read yourself more deeply into the topics of System Dynamics, there’s a free course at The System Dynamics Society about Stock and Flow modeling, in detail.
At Dynamic Applications, we use the term Input Values for all kinds of influencing paramters, and Targets represent what they call Flows.
We also use the term Stocks for bank accounts and anything that should automatically accumulate values arriving over time (bees in a Stock, Trees in a Forest, Cars on a Parking Space). In practice, you could as well use a Target formula to calculate that.
In a way, declaring a Stock Value just makes it a lot of simpler to represent all kinds of automatic sum-up values.
In case you’d like to read more about how we design Balanced Scorecards, our simple interpretation of causal-loop-diagrams (or stock-flow-diagrams) from System’s Theory:
There’s an article Introduction to Balanced Scorecards as part of our docs.
Dynamic Applications is a small business consultancy focused on customers, product cost, efficiency, sales, and net profit. We support Startups in developing 21st century Business Models. We’re driven by thousands of independent voters. Altogether, we develop Perfect Desire, an evolving platform of free and simple business plan calculators for everyone.
We vote in online democracy, we deliver for free. we work for you, and we call them Dynamic Applications.
SocialMedia driven innovations for the 21st century. And you could be one.
at Dynamic Applications, we work to empower people.
we are Sharing Economy. Follow us to gain.
Thank you for choosing to visit Dynamic Applications, today. Comment section is open.