Best Versioning System for R [closed] - version-control

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 13 years ago.
I have a plethora of both short and long pieces of R code that I would like to track as they evolve.
Does anyone have any recommendation or experience using version-control software with R?

Use
whatever your colleagues, friends, ... use --- most systems are technically equivalent and you want to foster rather than hinder collaboration
whatever is supported in the editor or IDE you use most
so as ever so often it comes down to network effects --- popular choices create more users which creates more support in tools etc.
R itself does not care. Source code is just text. Personally, I like SVN a lot and use it at home, at work, at R-Forge, on Google Code, on Sourceforge, ... R Core also uses SVN but as I said, it does not really matter. Your choice, your headaches when you need to admin or fix things.

Subversion or Git would be my recommendations. I don't think the effectiveness of the versioning system depends on the source code you put in it. R shouldn't be any different from Java or C# that way.

There's nothing unique about R that would drive a version control system decision. There are many R projects hosted on Github (in Git) and on Google Code (in Mercurial or Subversion). R-Forge (http://r-forge.r-project.org/) uses SVN.
You may want to have a look at this question for some views on the modern source controlsystems: Git, Mercurial, and Bazaar.
Assuming that you will use either Git, Mercurial, or SVN, I would suggest having a look at Github. It has many very nice features for collaboration.

Fossil is wonderfully easy to set up and quickly start using. It also includes a web interface, issue tracker and a wiki, all built-in to the single executable. Fossil is the version control system for SQLite (written by the same author) and runs on Mac, Win and Linux.

I personally use and strongly suggest Eclipse with the StatET plugin combined with Subclipse for subversioning.

Related

Organising a big project - how is it done? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I understand that for smaller projects keeping methods in the main view controller (namely viewDidLoad) is the way forward, but for bigger projects im thinking this cant be the way apps are organised - the m file would be chuffing huge! also there would be thousands of declarations at the top! Im nowhere near building an app that big but i'm intrigued, would you put them in a separate file and call them when they're needed? or is it just a case of scroll past the declarations and use pragma marks to find what your looking for?
Basically this is not a specific question for developing iOS applications, it's more of a software architecture problem and requires more knowledge that can't be put in a single answer.
But to get hold of how things usually work, the project has to be planned by pen and paper first, since those are the developer's best tool, then when you've got the main parts of your project planned in a good manner, you start by plotting some ERD of your main components, and decide what will each part be responsible of, then start coding from there a prototype version.
when you have a simple project up and running, you start cleaning up the code, planning even further, and start testing your code, I can't describe how important testing is !
You'll also need software to manage your project (not the source code, but the project itself), something like asana maybe to keep track of tasks and who does what.
In order to keep your code safe against overwriting by other people who are working with you, and to keep things managed across versions, you'll need to setup a revision control repository of some king, Git is supported out of the box by XCode !
Now for the part of code writing, you need to learn some kind of pattern and follow it, iOS projects and most others now follow the MVC structure, which answers your question of how big the classes will get and how things will communicate together without turning into a mess !
Yes, you'll need pragmas and code trickery here and there, but you should always follow the patterns and conventions in order to keep things maintainable when projects grow !
again as I said, this is not anywhere near a good start, you need lots of experience and knowledge before you can actually work on huge projects, but it's something !
Keep up the good work, and always remember that you always have to ask questions, never be intimidated :)
Edit 1
Forgot to add a tip on reading about Agile software development that's probably my last tip :)

Mongo interface [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What are some GUIs to use with Mongo, and what features do they offer? I'm looking for facts here, not opinions on which interface is best.
Official List from MongoDB
http://www.mongodb.org/display/DOCS/Admin+UIs
Web Based
For PHP, I'd recommend Rock Mongo. Solid, lots of great features, easy setup.
http://rockmongo.com/
If you don't want to install anything ... you can use MongoHQ's web interface (even if you your MongoDB isn't on MongoHQ.)
https://mongohq.com/home
Mac OS X
While MongoHub had been a decent option for a while it's bugs make it virtually unusable at this point ...
There is a more up-to-date (and less buggy) fork of the MongoHub project available: https://github.com/fotonauts/MongoHub-Mac you can download a binary here.
Windows
By far, the best UI (for Windows) currently out there is MongoVUE.
http://blog.mongovue.com/
WARNING/UPDATE: MongoVUE seems to be abandoned.
Looks great, lots of features, and if you are new it will really help you get going ...
http://blog.mongovue.com/features/
Here's a Q&A with the author too if you are interested ...
http://learnmongo.com/posts/qa-ishann-kumar-creator-of-mongovue/
On Mac there is MongoHub. On Windows you could try MongoVUE.
Also see Do any visual tools exist for MongoDB (for Windows)?
Screenshot of MongoHub:
Here's the official page of Admin UIs.
I have not really used any of them. But it looks like there is quite a bit of coverage there.
Web
At the shop where I work we use the Prudence platform for some stuff, and also MongoDB, so we of course use MongoVision a lot. Browser based, tabbed collection views, pretty-printed document editor, and three themes OOB. Open source.
(source: threecrickets.com)
http://code.google.com/p/mongo-vision/
OS X
Being on a Mac, I wish MongoHub was as reliable as MongoVision. It probably will be soon though, since the project has been quite active on Github as of late.
(source: skitch.com)
http://mongohub.todayclose.com/
try Mongo Explorer. you'll like it!
try mongoVue i'm using it and i think it's good enough

joomla developing question [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Can someone give me some insight on a scenario like this.
Say a company has en existing Joomla site, not complete but just has all the modules, plug-ins, and components installed that they believe they will need.
If someone new where to come in and given the general idea of what the site needs to do, and by accomplishing this they need to make sure all plug-ins share data between each other update information between each other when ever one module is updated. As well as fixing and modifying the template to take shape and form of how they envision the site to be interacted with.
Would jumping into this project be more trouble than its worth? Would creating something from the ground up using custom developed pages rather than using Joomla as a back-end/front-end be too much of a hassle.
Also given that the existing installation has 301 tables to sot through.
Joomla is more than just a CMS, it is also a pretty solid "Development Framework". Modifying existing software will be faster rather than developing from scratch, especially if it is that big.
Read more about Software Development Process, it will help you with your evaluation. As far as I remember development cost is 2x less $ than maintenance in first 5 years.
Starting from the ground up can be not such a good idea for a large project. Working with another framework will result in "reinventing the wheel" and introduce new problems and will require more time for user acceptance.
I know too little to point you in the right direction... 1st of all Joomla is terrific choice, object oriented, it is extensive and very powerful. MVC architecture is huge plus. Plug-in system is easy and extensive. Modules are easy and customizable.
I suggest using Zend Framework if you want to "reinvent the wheel". ZF is exceptional choice but your cost will be MUCH higher. You will have all similar functionality and features like in Joomla: OO, MVC, singletons, layouts, placeholders, modules (components), plug-ins, etc... Comparing ZF to Joomla's "Development Framework" is like comparing Ferrari to Honda Civic.
Long story short: I would try to stick with Joomla and create my library extending Joomla's classes... this will help automating a lot of things (reduce code, etc...). If I was to give a quote to the client I would try to see what they want/their experiences with existing project (check with their IT department, etc). If experience was horrible from day 1 and it was because of software and not hosting/db/hardware/network/etc then I would give 2 quotes: 1st for recreating in Joomla, 2nd for recreating in Zend... and explain strength/weaknesses of both. If software behaved 'OK', with minor to medium problems/bugs/errors I would reuse existing project.
Hope this helps...

Can you suggest a component CMS that is compatible with IBM's DITA [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am looking for a Component CMS solution that is compatible with IBM's DITA in terms of preserving the document hierarchy/structure created in DITA (ditamaps).
I am not necessarily looking for an open source solution.
Other requirements would be:
- file migration
- XML support (ingestion, editing, export)
- PDF support (publishing)
- Workflow management
- Localization support (managing versions across locales)
- Output tagging
As you are looking at CCMS, be sure that you consider the following factors:
How easy is it to get your content into the system?
How easy is it to get your content out of the system?
Does the system use proprietary mechanisms for filtering, rather than support for DITAVAL that is part of the OASIS standards?
Part of the beauty of DITA is that if you follow the standard and do not use proprietary mechanisms, you easily can exchange content with business partners, move to another CCMS, if you needed, and so forth.
Older CCMS use proprietary mechanisms for some things. It's entirely understandable, since they were developed before DITA was a standard, and so have legacy customers with implementations that they must support.
It's a bit dangerous (a lot dangerous) to be choosing something like a Component CMS based on questions on a forum like this, but as long as you're asking you could look at things like: SDL Trisoft, IXIASOFT DITA CMS, Vasont, XDocs, or DITA Exchange to get an idea of what is out there. CCMS systems are vastly different from each other both in price and functionality, so things like:
Number of users
Distribution of users
IT 'religious affiliations' (e.g. SharePoint addiction, Linux)
Use of DITA features like Conref, KeyRef, SubjectScheme
Versioning flexibility requirements
Translation management
will all greatly affect the decision making process. We tend to spend time with a client before making solid recommendations so this is simply something to get you started in your research.
PS - As you may know Arbortext is not a Component CMS at all, it's an editor.
Sorry for not understanding the following thing, from the question.
[file-migration] What is the current format?
If it comes as (DITA) XML (or can be migrated to XML), the following procedure might be a solution:
[Import] Import the (DITA) XML into a Version Control System;
[Edit] From there it is easy to modify by multiple people;
[Export] Always possible, from CVS system;
[Publishing] Automatic PDF generation (DITA Open Toolkit);
[Localization support] Use branches for the different languages;
[Tagging] Tag a final release, when it is is published.
See also the What is the recommended tool chain for formatting XML DocBook? as these same suggestions can be used for a DITA tool chain.
IBM built DITA on Arbortext. Arbortext was the only vendor to be a charter member of the OASIS DITA Technical Committee and they continue that activity as PTC. (Arbortext was acquired by PTC in 2005).
Arbortext also supports DocBook (since conception), S1000D, and custom doctypes with no customization of the application required.
Happy to talk more about this offline.
If you are still looking for options you should check out easyDITA (http://easydita.com)

Plugin dependency best practices [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
We have an application supporting plugins via interfaces. On the other side plugins contain lots of logic and code in themselves. Plugins have dependencies (project and dll references) to application libraries beside the interfaces that application exposes.
Application core libraries have lots of reusable components that can be used in plugins. But if any of these components change in anyway, both the plugins and application are affected, as both have dependencies.
Is it acceptable to have plugins containing dependencies on the system, that plugins extend? What are the best practices on this issue?
Please share your thoughts and experiences.
Take a look a Mono.Addins, even if you are not developing in C#, it will give you some great ideas.
The simple solution is to define a version system for the plugins and the core, so the core can read which version of itself the plugin needs. That way is easy to prevent the load of a plugin which was meant to be used with a previous version of the core.
I think there are two answers to your question, depending on the level we're talking about:
yes, it's fine to have a dependency of the plugin on the plugin host. The host is coordinating the use/execution of the plugin, but there is no reason for the host not to provide functionality to help the plugin do that. Extending that a little further, the host's dependencies may or may not be fair game for the plugin to use (this goes into the territory of "it depends...").
no, the plugins should not depend directly on code that the host could provide, except those objects that the plugin directly passes in. This is more a distrust on global state than a fear of circular dependencies.
I think it is totally fine to have you plug-ins referencing off of your core. Now you’re talking about project and dll references, so you must be using c#, vb or c++, these solutions all should be fine to use.
I typically have two projects, to get around the circular dependency.
Project Base, Interfaces, Exceptions
Logic/Configuration/Plug-in Loader
There are three ways I typically load plug-in
Out of a directory using loops and the filesystem watcher (slow but effective)
Use your own configuration section in .net using named types (recommended and fastest)
Load them from a database (good for scalability)