PDA

View Full Version : Intro to Module Development, and the Dev mailing list



sallz0r
01-09-2013, 10:59 AM
I'm in the process of trying to make Vixen 3 more accessible to everyone -- this includes users and any developers that are keen on helping out. There's lots to do, and it's a big project that can use help from anyone -- testing, documentation, writing code, coming up with ideas and fleshing them out -- so if you'd like to help out, we'd love to have you!

Developer Documentation

As part of that, I'm planning on putting together a bit of a crash-course on module development, and information that people might need to get started. It's a huge, daunting task, and I have no idea where to start.... so I'm wondering if I can ask you, as a developer (or any other sort of helper) what information you want to see? Where can I start? What do you want to know?

We're starting up a wiki to put information into, so I'll hopefully be able to put a lot of it up there. If you can let me know what you want, I'd be happy to oblige!

Developer discussion group & email list

Also, for the last year or two we were using a google group as an email list for developers to discuss things, bounce ideas around, etc. I'm trying to get it going again, since I'm finding that I'm replying to a lot of PMs and private emails -- and if there's a chance that sharing with one person can help others, then it's worth doing so.

You can find the VixenDev google group here (https://groups.google.com/forum/#!forum/vixendev). (At least, I hope that's the right link! Let me know if there's problems signing up). If you sign in with a google account, you should be able to request membership to the group, and I'll approve them ASAP. Then, it's a handy email list which we can use for discussion, help, and collaboration.

The group isn't intended for coding discussion only -- hopefully we can get testers, documenters, etc. in there as well. (sure, 80% is probably going to be software/code talk, but hopefully there's other stuff that's useful as well.) I want it to be for anyone that is interested in the 'behind the scenes' of Vixen.

Where to get the code

The modules repository (which is 90% of the functionality in Vixen) is open source on Github. The repository can be found here:

https://github.com/sall/vixen

I know some of you might not be used to Git as source code management, or GitHub specifically, so I'll try to write up some documentation about how to get the code, how to get it working, how to commit stuff and merge in changes, etc. (Or if someone else wants to volunteer, that would be great too!) If you're new to Git, I'd strongly recommend getting TortoiseGit (http://code.google.com/p/tortoisegit/) to help manage it; I use it, and it's fantastic.

--

Thanks for any help you're able to provide! Looking forward to your help in making Vixen a fantastic product that people can do _really cool stuff_ with! :-)

macebobo
01-09-2013, 11:03 AM
1) A high level architectural diagram,
2) A well documented API,
3) A module template for each plugin type.

these would be a great start.

Traneman
01-09-2013, 11:19 AM
Not sure exactly how I can help but I like Vixen2.x.x and wanting to try pixels for 2013.
As some know here Iam just a heating contractor and my computer expertise is very limited.

I was thinking possibly I could help from a dumbed down point of view if you know what I mean.

User friendly and simple is important to me as well as others Iam sure.

So if there is anything I can do I'm on board to help.

Just excited to see this going forward again.

A Marchini
01-09-2013, 11:49 AM
Its kinda silly but I have been trying to get into this code, and now since you moved to Git I am less able.
I just don't have my head around it. I don't see how it is "better" than SVN.
I would like to get back into introductory development of plug ins
Tony M.

macebobo
01-09-2013, 05:19 PM
Not sure exactly how I can help but I like Vixen2.x.x and wanting to try pixels for 2013.
As some know here Iam just a heating contractor and my computer expertise is very limited.

I was thinking possibly I could help from a dumbed down point of view if you know what I mean.

User friendly and simple is important to me as well as others Iam sure.

So if there is anything I can do I'm on board to help.

Just excited to see this going forward again.

You sound perfect for usability testing.

macebobo
01-09-2013, 05:22 PM
Its kinda silly but I have been trying to get into this code, and now since you moved to Git I am less able.
I just don't have my head around it. I don't see how it is "better" than SVN.
I would like to get back into introductory development of plug ins
Tony M.

If you use svn, it does take a moment to wrap your head around Git, but it is better in one respect that I have come to love. Disconnected repositories. I can check out a repo on my laptop, go somewhere that may or may not have internet connectivity, work on my code, make frequent commits locally, then sync them back up without hassle.

If you've used Tortoise SVN, get Tortoise Git, that has helped me a LOT. Feel free to start a new thread in this sub-forum, and I'll try my best to answer them.

sallz0r
01-09-2013, 11:20 PM
OK, I've set up the group as public (or semi public -- you have to request to join, I think?), you can find the VixenDev google group here (https://groups.google.com/forum/#!forum/vixendev).

Let me know if it doesn't work of if there's any problems!

Alphageek
01-10-2013, 10:29 PM
Tortise get vs windows.github.com? I know most developers may like tortise, but it seems to me that since github has their own built local sync, it would be easier. I'm a dev and it seems more "user friendly" for me?? I used it to create a git account and sync the vixen code down in just a couple of minutes.

sallz0r
01-10-2013, 11:07 PM
Tortise get vs windows.github.com? I know most developers may like tortise, but it seems to me that since github has their own built local sync, it would be easier. I'm a dev and it seems more "user friendly" for me?? I used it to create a git account and sync the vixen code down in just a couple of minutes.

Oh, sure -- whatever works for you. I didn't know of that interface at the time, plus I'd been using TortoiseSVN, so it was a natural progression. But that's another option. If you think it's a good fit and works well, and feel like helping out documentation, you could always write up a quick tutorial on how to use it with screenshots and stuff -- how to for the repo, get the code, make changes, push them back, merge others changes in, etc. I know we have developers that aren't familiar with Git at all, so I'm sure that would be handy for people.

Alphageek
01-11-2013, 02:15 AM
Oh, sure -- whatever works for you. I didn't know of that interface at the time, plus I'd been using TortoiseSVN, so it was a natural progression. But that's another option. If you think it's a good fit and works well, and feel like helping out documentation, you could always write up a quick tutorial on how to use it with screenshots and stuff -- how to for the repo, get the code, make changes, push them back, merge others changes in, etc. I know we have developers that aren't familiar with Git at all, so I'm sure that would be handy for people.

I'd be happy to.... As soon as I can figure it out for myself!!! Part of my problem is I don't want to mislead others with bad info and since I'm not a c# coder I am starting by using express edition, which appears to have its own challenges just compiling what's there.

sallz0r
01-11-2013, 03:09 AM
I'd be happy to.... As soon as I can figure it out for myself!!! Part of my problem is I don't want to mislead others with bad info and since I'm not a c# coder I am starting by using express edition, which appears to have its own challenges just compiling what's there.

Aah, I haven't tried the express edition, sorry. :-( Not sure what'll happen with that.

As for the guide side of things, feel free to write it up and send it to me offline or something if you'd like (or send it to the dev group); we can peruse and refine it before making it public, to make sure there's no wrong info in there.

KenL
01-11-2013, 08:51 PM
I wanted to take a sec to into myself. I posses the skills to develop anything you need and should have the time this year to help out. How many dev's on the project? Do you have any particular obj's you need me to tackle? Lastly, since I have been using vs2012, I have to ask wanna upgrade to it? I guess we have to stick with .net 4 -LOL

Thx, Ken (www.kenl.net)

macebobo
01-11-2013, 08:52 PM
I wanted to take a sec to into myself. I posses the skills to develop anything you need and should have the time this year to help out. How many dev's on the project? Do you have any particular obj's you need me to tackle? Lastly, since I have been using vs2012, I have to ask wanna upgrade to it? I guess we have to stick with .net 4 -LOL

Thx, Ken (www.kenl.net)

Good to know Ken, can you detail your skill set for us, please?

A Marchini
01-11-2013, 09:10 PM
If you use svn, it does take a moment to wrap your head around Git, but it is better in one respect that I have come to love. Disconnected repositories. I can check out a repo on my laptop, go somewhere that may or may not have internet connectivity, work on my code, make frequent commits locally, then sync them back up without hassle.

Wow, just a quick reply, but thanks, that single behavior of local commits , I guess that is the key to it utility. Now I see its value, thanks.
Tony M

KenL
01-11-2013, 09:13 PM
Sure, I have several Microsoft certifications; MCPD, MCDBA, MCSE and MCTS. I work as a solution architect for a large consulting firm near Philly. I have been developing systems for just under 20 years. My current client has me doing all the design and development of all their new systems. I am a C# expert, Entity Framework expert and basically and expert any anything data. However, I am great at web, SOA, WCF, MVC, etc.... I follow a Domain Driven Design methodology. If you Google me you will see that I am a speaker/presenter for Philly.net, the largest US .net user group sponsored by MS. I have at least 100 web sites/apps, 100 windows servers, 100 WCF sites and 100 other apps under my belt. I have done work for several large insurance and financial organizations. All of which has been the same thing; extracting data from their database and presenting the data as a service (WCF, API). Almost every company has their policy data saved as xml. Where I generally serialize and de-serialize into an obj because I find it works better than using an xml writer. Check out my code samples at kenl.net and http://www.linkedin.com/in/kenlovely/ My current project is something our government is calling Form PF. I am developing a public facing interface where large fund trading companies will log in and submit information on their Hedge and Private funds. These are funds that are work billions or dollars. You can thank Bernie Madoff for getting me this gig. Now the govt wants to track all the private funds out there.

A Marchini
01-11-2013, 09:20 PM
I'd be happy to.... As soon as I can figure it out for myself!!! Part of my problem is I don't want to mislead others with bad info and since I'm not a c# coder I am starting by using express edition, which appears to have its own challenges just compiling what's there.

The big problem with the Express Edition is that it can't compile the whole project, only pieces. I was going to see if SharpDevelop can process the project as a whole, but haven't gotten there yet.

sallz0r
01-11-2013, 09:57 PM
I wanted to take a sec to into myself. I posses the skills to develop anything you need and should have the time this year to help out. How many dev's on the project? Do you have any particular obj's you need me to tackle? Lastly, since I have been using vs2012, I have to ask wanna upgrade to it? I guess we have to stick with .net 4 -LOL

I see you're on the group now -- great, we can discuss things in there! There's been heaps of discussion going on, so feel free to read through the history of the last few days.

Cheers,
Michael

akonkman
01-11-2013, 11:06 PM
Hey everyone. My name's Andy. I've been watching Vixen 3 development from the sidelines for quite a while. I really like the direction that Vixen 3 development is going. I am a .NET software developer/architect with over 10 years experience, and have quite a bit of experience with technologies such as Windows Forms, ASP.NET, WCF, XML, LINQ, and general object-oriented design. I'm willing to jump in and help out where I can. I used Vixen 2.x for my first two years doing a show. Then, I moved to using pixels, and I found it cumbersome to work with, so I made a jump over to LSP. But I would love to move back to Vixen 3, and I really like the architecture of the new system so far. The one area I really am interested in is what is possible through the use of pixel matrices. For example, scrolling text, displaying animated gifs, or other nutcracker-like effects. Or even displaying video files. So I'd be willing to jump in and see what I might be able to do concerning that area. I'm thinking there could be a new series of effects plugins that work against groups of nodes, where the node group has some structure to it to define where in 2D space each node is. There could be effects like "scroll text" or "display video" or "spiral", etc.

Anyways, I'll try joining the google group and getting some code down on my machine and start exploring for a bit. I'd love to be a part of making Vixen 3 the ultimate sequencer!

akonkman
01-12-2013, 10:58 AM
As for the original topic of this thread, I think it would be great to have some diagrams showing how the various pieces fit together. In UML terminology, some class diagrams and sequence diagrams would be most helpful. For example, a sequence diagram showing how the various objects communicate to render an effect would be awesome!