Re: [Elementary-dev-community] Fwd: INK and model based design

2012-11-03 Thread Cody Garver
Can you guys keep us posted about this? What's the best way to do that?
Have the discussion occur on this mailing list? I think this could be an
opportunity for additional participants to collaborate.


On Fri, Nov 2, 2012 at 10:07 AM, Sergey Shnatsel Davidoff 
ser...@elementaryos.org wrote:

 2012/11/2 Craig webe...@gmail.com

 Yeah, I can work with them. Can you send me their contact info or link me
 to their models?

 https://launchpad.net/~victored
 https://launchpad.net/~xapantu

 I don't have the models, sorry.

 --
 Sergey Shnatsel Davidoff
 OS architect @ elementary

 --
 Mailing list: https://launchpad.net/~elementary-dev-community
 Post to : elementary-dev-community@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~elementary-dev-community
 More help   : https://help.launchpad.net/ListHelp




-- 
Cody Garver
-- 
Mailing list: https://launchpad.net/~elementary-dev-community
Post to : elementary-dev-community@lists.launchpad.net
Unsubscribe : https://launchpad.net/~elementary-dev-community
More help   : https://help.launchpad.net/ListHelp


Re: [Elementary-dev-community] Fwd: INK and model based design

2012-11-02 Thread Sergey Shnatsel Davidoff
2012/11/2 Craig webe...@gmail.com

 Yeah, I can work with them. Can you send me their contact info or link me
 to their models?

https://launchpad.net/~victored
https://launchpad.net/~xapantu

I don't have the models, sorry.

-- 
Sergey Shnatsel Davidoff
OS architect @ elementary
-- 
Mailing list: https://launchpad.net/~elementary-dev-community
Post to : elementary-dev-community@lists.launchpad.net
Unsubscribe : https://launchpad.net/~elementary-dev-community
More help   : https://help.launchpad.net/ListHelp


Re: [Elementary-dev-community] Fwd: INK and model based design

2012-11-01 Thread Craig
Yeah, I can work with them. Can you send me their contact info or link me
to their models?
On Nov 1, 2012 4:21 PM, Sergey Shnatsel Davidoff 
ser...@elementaryos.org wrote:

 Hey Craig,

 I've talked to Victor, the guy behind Noise, and according to him both
 music player codebases we have, Noise and BeatBox, could really use a
 well-thought-out more-object-oriented refactor. He and Lucas (xapantu) have
 kicked off an initial UML model and they have some extensive specs too, but
 I'm not sure if they're still relevant. Right now Victor is just patching
 up Noise for Luna, but they could use any help/input you can provide after
 the initial Luna release.

 If the music player experiment works out, I believe the approach can be
 expanded it to other projects.

 TIA,
 --
 Sergey Shnatsel Davidoff
 OS architect @ elementary

-- 
Mailing list: https://launchpad.net/~elementary-dev-community
Post to : elementary-dev-community@lists.launchpad.net
Unsubscribe : https://launchpad.net/~elementary-dev-community
More help   : https://help.launchpad.net/ListHelp


Re: [Elementary-dev-community] Fwd: INK and model based design

2012-11-01 Thread Cody Garver
Dan just filed a new blueprint that's related to this endeavor
herehttps://blueprints.launchpad.net/noise/+spec/music-daemon
.


On Thu, Nov 1, 2012 at 6:10 PM, Craig webe...@gmail.com wrote:

 Yeah, I can work with them. Can you send me their contact info or link me
 to their models?
 On Nov 1, 2012 4:21 PM, Sergey Shnatsel Davidoff 
 ser...@elementaryos.org wrote:

 Hey Craig,

 I've talked to Victor, the guy behind Noise, and according to him both
 music player codebases we have, Noise and BeatBox, could really use a
 well-thought-out more-object-oriented refactor. He and Lucas (xapantu) have
 kicked off an initial UML model and they have some extensive specs too, but
 I'm not sure if they're still relevant. Right now Victor is just patching
 up Noise for Luna, but they could use any help/input you can provide after
 the initial Luna release.

 If the music player experiment works out, I believe the approach can be
 expanded it to other projects.

 TIA,
 --
 Sergey Shnatsel Davidoff
 OS architect @ elementary


 --
 Mailing list: https://launchpad.net/~elementary-dev-community
 Post to : elementary-dev-community@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~elementary-dev-community
 More help   : https://help.launchpad.net/ListHelp




-- 
Cody Garver
-- 
Mailing list: https://launchpad.net/~elementary-dev-community
Post to : elementary-dev-community@lists.launchpad.net
Unsubscribe : https://launchpad.net/~elementary-dev-community
More help   : https://help.launchpad.net/ListHelp


Re: [Elementary-dev-community] Fwd: INK and model based design

2012-09-27 Thread Sergey Shnatsel Davidoff

 Again, apologies for lack of information. It's a design process, I
 suppose. It pertains primarily to developers.

Clarification for designers: this is software design aka code
microarchitecture.

  Model centric programs boasts high reusability, efficiency, portability,
 and simplicity (which translates into reduced maintenance, testability,
 changeability and easier understandability) all for the minor cost of
 prolonging the code producing phase in favor of a longer design phase.

In short, parties interested in pushing UML claim that it's a cure-all.

 It's implemented all over, and most developers are probably trying to
 implement it subconsciously.

Many companies use UML tools to make/edit a system model and those tools
 will generate code from the model abstraction in much the same way that a
 compiler efficiently converts a high level language into assembly language.

Many companies do this is not an argument. Many (or rather, most)
companies make UIs utterly inconsistent with the rest of the system to make
them better; most companies write proprietary software, many companies
use CVS for revision control, etc. We're not taking up any of this.

The analogy with compilers or other higher-level wrappers is not true. With
high-level wrappers like Vala all you need to know is how to work with the
wrapper, and the machine does the rest. With UML you have to know both UML
and the programming language and work with both in one project. Is it worth
to raise the entry barrier by requiring to learn/know not only GTK and Vala
but UML too?

The other problem with UML is that it's a kind of documentation describing
the code. And we all know how much developers hate updating documentation.
The diagrams will quickly become outdated and misleading, unless developers
spend time on updating them, all the time.

And, most importantly, I doubt we would benefit from model-centric approach
at all. Most elementary apps are simple and concise, and communicate over
simple and obvious interfaces. We don't build any complicated systems or
engage in system programming (yet). So for most of our apps using UML will
be an unnecessary burden.

Considering the above arguments, the only way I see the possibility of UML
adoption is creation of tools for visualizing existing code as UML and
converting edits done in UML back to code; i.e. making UML diagrams:

   1. strictly bound to the code
   2. generated without wasting a lot of developer time
   3. completely optional for usage

This way it won't raise the entry barrier and won't burden applications
that don't benefit from using it.

 However, that is rather cutting edge and I don't think any good OSS tools
 exist to automate the code generation process yet, so I'm espousing the
 manual approach from which these code-generation tools are derived.

BOUML can generate C++ and Java code from UML and decode existing code into
UML diagrams. Perhaps Vala support can be added to it.

-- 
Sergey Shnatsel Davidoff
OS architect @ elementary
-- 
Mailing list: https://launchpad.net/~elementary-dev-community
Post to : elementary-dev-community@lists.launchpad.net
Unsubscribe : https://launchpad.net/~elementary-dev-community
More help   : https://help.launchpad.net/ListHelp


Re: [Elementary-dev-community] Fwd: INK and model based design

2012-09-27 Thread Craig
On Thu, Sep 27, 2012 at 5:03 AM, Sergey Shnatsel Davidoff 
ser...@elementaryos.org wrote:

  Model centric programs boasts high reusability, efficiency, portability,
 and simplicity (which translates into reduced maintenance, testability,
 changeability and easier understandability) all for the minor cost of
 prolonging the code producing phase in favor of a longer design phase.

 In short, parties interested in pushing UML claim that it's a cure-all.


To be clear, I'm not talking about UML specifically. I'm talking about
model-centric development. UML is just the most noted means of representing
model based design. It's just a higher level of abstraction.

 It's implemented all over, and most developers are probably trying to
 implement it subconsciously.

 Many companies use UML tools to make/edit a system model and those tools
 will generate code from the model abstraction in much the same way that a
 compiler efficiently converts a high level language into assembly language.

 Many companies do this is not an argument. Many (or rather, most)
 companies make UIs utterly inconsistent with the rest of the system to make
 them better; most companies write proprietary software, many companies
 use CVS for revision control, etc. We're not taking up any of this.


It wasn't intended to be an argument. Daniel asked who is using it. I'm
noting that it's not an entirely new idea. People have been making model
based designs for years. Only now is its potential being realized. As the
value of quality software has become increasingly quantifiable, employers
have been demanding employees who are familiar with model based design,
which is why schools are rapidly adopting UML into their CS curriculum.
Furthermore, are you implying that model-based design somehow lends itself
to a particular quality of UI design or version system?


 The analogy with compilers or other higher-level wrappers is not true.
 With high-level wrappers like Vala all you need to know is how to work with
 the wrapper, and the machine does the rest. With UML you have to know both
 UML and the programming language and work with both in one project. Is it
 worth to raise the entry barrier by requiring to learn/know not only GTK
 and Vala but UML too?


It is true. UML can be compiled down into machine code without manual code
manipulation. However, as I don't know of any OSS UML compilers and, except
for the crazy expensive industry compilers, the technology really isn't
there to compile it down efficiently anyway. However, the analogy works.
It's widely considered good programming practice to program in high level
terms. It's considered beneficial to abstract away the unnecessary details
to enable the programmer to focus on the task at hand. If you espouse
object-oriented programming or programming in a language other than
Assembly or machine code, model-based development is logical. With
object-oriented programming in particular, the subconscious objective is
typically some sort of a model based abstraction anyway--I'm simply
proposing using formal, conceptual tools to help you reach that objective
quickly and accurately. I'll write what this looks like more specifically
when I have the time.



 The other problem with UML is that it's a kind of documentation describing
 the code. And we all know how much developers hate updating documentation.
 The diagrams will quickly become outdated and misleading, unless developers
 spend time on updating them, all the time.


It certainly can be a way of documenting the code. However, if you do your
work in a sort of rough-draft UML (edit your objects, states, and
algorithms via UML diagrams), you can quickly convert it to clean, accurate
code, and have the documentation to boot. I get the impression you think
I'm espousing a strict adherence to UML. I'm not. I'm talking about
employing it to the extent that it makes sense to suit elementary's goals.
Again, I'm working on a blog post that I hope will describe my vision more
fully. Until then, try not to jump to any crazy conclusions. Consider it as
a tool--try to understand what about it is useful and if any part of this
tool could benefit you.

But you're right--it will require some change and I don't expect everyone
to welcome it with open arms. I'm just asking you to wait until you've
actually heard my proposal before you get up in arms.



 And, most importantly, I doubt we would benefit from model-centric
 approach at all. Most elementary apps are simple and concise, and
 communicate over simple and obvious interfaces. We don't build any
 complicated systems or engage in system programming (yet). So for most of
 our apps using UML will be an unnecessary burden.


If Elementary apps are so simple that they never have bugs and never take
more than a week to program, then you're absolutely right--don't use a
model-centric approach. Anyway, as I mentioned earlier, Elementary Apps
already _are_ developed using a model-centric approach; however, you're

[Elementary-dev-community] Fwd: INK and model based design

2012-09-26 Thread Craig
-- Forwarded message --
From: Craig webe...@gmail.com
Date: Wed, Sep 26, 2012 at 4:54 PM
Subject: Re: [Elementary-dev-community] INK and model based design
To: Daniel Foré dan...@elementaryos.org


Again, apologies for lack of information. It's a design process, I suppose.
It pertains primarily to developers.

It's implemented all over, and most developers are probably trying to
implement it subconsciously.

The foundational principal is that you create a conceptual model of the
system you are designing (something most developers try to do mentally)
using UML as a tool to record, visualize, and communicate said model,
rather than using the implementation (the code) to try to understand the
developer's  thought process. It emphasizes planning and design over coding
and accordingly separates the process of modeling/designing from that of
programming.

Many companies use UML tools to make/edit a system model and those tools
will generate code from the model abstraction in much the same way that a
compiler efficiently converts a high level language into assembly language.
However, that is rather cutting edge and I don't think any good OSS tools
exist to automate the code generation process yet, so I'm espousing the
manual approach from which these code-generation tools are derived.

Model centric programs boasts high reusability, efficiency, portability,
and simplicity (which translates into reduced maintenance, testability,
changeability and easier understandability) all for the minor cost of
prolonging the code producing phase in favor of a longer design phase.

On Sep 26, 2012 4:23 PM, Daniel Foré dan...@elementaryos.org wrote:

 Craig,

 Can you give even the vaguest hint to what this is? Is it a toolkit, a
library, a language, a process?

 What part of the community is this relevant to? Translators, designers,
devs, project leads?

 Where is this implemented with success? Etc etc

 Best Regards,
 Daniel Foré

 El sep 26, 2012, a las 11:06 a.m., Craig webe...@gmail.com escribió:

 Daniel, like I said, I'm trying to put something together, but the
primary obstacle is time. Any familiarization you (read: everyone
participating in the development process) can do on your own will be
beneficial, in my opinion.

 On Wed, Sep 26, 2012 at 11:58 AM, Daniel Foré dan...@elementaryos.org
wrote:

 I agree it'd be nice to get an overview of what exactly UML is. Don't
forget many of us are not software professionals but merely hobbyists ;)


 On Wed, Sep 26, 2012 at 7:44 AM, Craig webe...@gmail.com wrote:

 First of all, I want to apologize as autocorrect insists on changing
UML into INK.

 Secondly, I was purposefully vague so as to glean some understanding
as to what elementary developers know about these design disciplines.
Furthermore, I haven't had time to find and link-to a good article
explaining these disciplines, and, while I'm working on a blog post of my
own explaining the issues, I think it would be beneficial to start some
conversation on the subject in the meanwhile.

 So I apologize for the inconvenience, but I promise it is out of
necessity.

 On Sep 26, 2012 9:22 AM, Cassidy James cass...@elementaryos.org
wrote:

 Hey Craig,

 Thanks for bringing this up on the mailing list. I know Cody has been
looking into model-based design and UML a bit lately, but I don't know much
about it. It might help me and the developers who aren't as familiar with
it if you could give a quick description and/or some links for note info.

 Thanks!
 Cassidy James

 On Sep 26, 2012 6:35 AM, weberc2 webe...@gmail.com wrote:

 UML and model based design principles are the next big thing in
the world of software. Why aren't these being employed at elementary?
Discuss.


 Sent from my U.S. Cellular® Smartphone

 --
 Mailing list: https://launchpad.net/~elementary-dev-community
 Post to : elementary-dev-community@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~elementary-dev-community
 More help   : https://help.launchpad.net/ListHelp


 --
 Mailing list: https://launchpad.net/~elementary-dev-community
 Post to : elementary-dev-community@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~elementary-dev-community
 More help   : https://help.launchpad.net/ListHelp




 --
 Best Regards,

 Daniel Foré

 elementaryos.org


-- 
Mailing list: https://launchpad.net/~elementary-dev-community
Post to : elementary-dev-community@lists.launchpad.net
Unsubscribe : https://launchpad.net/~elementary-dev-community
More help   : https://help.launchpad.net/ListHelp