Re: [Elementary-dev-community] Fwd: INK and model based design
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/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
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
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
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
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
-- 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