I am looking for a small software versioning (changelog) and bug submission system with a web-frontend.
The features I only need is a change-log where users can see what they can expect and a tiny bug-submission system. I don't need the many features SVN offers as software versiong as the project is quite small and I do all development locally.
Any ideas?
It sounds like you'll do just fine coding raw html with your requirements. If you can code in any language, the html you'll need is minimal it'll be easy to pick up in the case that you're not familiar with it.
Although, I do still recommend rethinking your decision not to use SVN. If your project is open source, have a look at Google Code, which offers free source code hosting including bug tracker, SVN repository, release management and wiki. It'll also make your project more discoverable. If it's not open source, you can purchase private hosting on github, but that uses git which is more complicated.
Mantis is probably what you want - web based bug system that's quite nice, fast and simple. It integrates with SVN using a php page you can access using curl from a SVN hook.
We used it as a bug tracker, when the code was committed (with a special regex in the log comment) the files that were changed were added to the mantis bug as a bugnote. I'm not 100% sure of your situation, but it appears at first glance that this kind of arrangement is similar to what you want.
Related
There are two main schools of thought for doing A/B (Split) Testing:
Javascript-based solutions such as Optimizely, Google Analytics Content Experiments.
Server-side solutions such as Django-AB, Splango, and django-lean. (Also, writing your own.)
My understanding is that Javascript-based solutions are spectacular for "which color button converts better," but not so great for switching out entire page layouts, and completely unworkable for trying out large functional changes such as the sequence of pages in a funnel.
That leads me towards a server-side solution. I'm not crazy about coding my own, and will do so only if there is no other option. I'm trying to add value by improving the core functionality of my site, not by creating a better split-testing framework.
The Django apps I've found for split testing are various mixtures of unmaintained, undocumented, documented incorrectly, and incompatible with Django 1.5. This surprises me, because the Django and Python communities seem to have a strong focus on good documentation. I'm also very surprised that none of the testing frameworks I've tried has been compatible with Django 1.5 -- is testing not as core a part of the philosophy in the Django/Python world as it is in Rails?
Here's what I've found:
Splango https://github.com/shimon/Splango -- Not compatible with Django 1.5 (although most compatibility bugs I found were trivial to fix). Largely un-touched since October 2010, except for a fix August 2012 which claims to make sure templates get included in the install. Since templates don't get included in the install when Splango is installed via PyPI, either the fix didn't work or didn't get submitted to PyPI. Documentation is largely accurate, but doesn't completely cover how to set up tests and get reports. It tells you how to configure the template to gather the data, but there appears to be additional steps required in the admin interface which are completely undocumented, and I'm not sure I've done them properly.
Django-lean. Original at https://bitbucket.org/akoha/django-lean has not been updated since July 2010. There is an apparently "blessed" fork at https://github.com/anandhenry2002/django-lean which has not been changed since May 2012, when it was copied over from the original. The original's documentation is incorrect in ways that make following the examples impossible. (Though you can probably muddle your way through, as I did.) The new version's documentation has formatting problems that make it difficult to read on github. (This appears to be because it's the unchanged documentation from the old project, and BitBucket syntax doesn't work on Github.) The django-lean Google Group has not had a message since July 2012.
django-mini-lean https://github.com/DanAncona/django-mini-lean -- Updated as recently as February 2013, but undocumented.
Leaner - https://bitbucket.org/brianjinwright/leaner -- Last updated July 2012, and no docs.
Django-AB -- Last updated May 2009. Is not a package, and can't be installed via PIP or PyPI. After placing the checkout in my django app folder (and renaming the folder to ab) and following the installation instructions, I get an error loading the template loader that I have not tracked down further.
So far Splango appears to be the winner, as I've actually been able to get it more-or-less working (by manually installing the templates, and then editing them to fix Django 1.5 incompatibilities).
Can anyone point me to anything I've missed?
You have missed this app : https://github.com/mixcloud/django-experiments + https://github.com/disqus/gargoyle/
And then there's waffle: http://waffle.readthedocs.org/
It's simple, updated, maintained, but not very feature rich, it doesn't have any analytics/reporting stuff integrated. But then again, google analytics or mixpanel type of service is better for this.
I first looked at Django-AB and that is almost what I wanted, but I couldn't get it to work either. After looking at django-experiments and deciding I didn't want to mess around with redis yet, I decided to roll my own. I've tried to package it up nicely and make it easy to use for the beginner. It's super basic.
https://github.com/crobertsbmw/RobertsAB
You can swap out entirely different page layouts with Google Analytics Experiments (their default experiment setup will redirect users to a different URL for each variation you have), although in general its much easier to interpret why something is more successful if you test smaller things against each other.
You are right that testing different funnels and user flows against each other using Google Analytics would require a lot of manual setup; although theoretically you could do it by swapping out different links and tracking your users with UTM campaigns.
For smaller A/B tests within the same page, I ended up using Google Analytics Experiments and writing a custom Django CMS plugin for adding a few variant options to a template, which queries the Google Analytics API and displays the correct variant using Javascript.
I've been using libdmtx in a project and looking to update to a newer version, but it seems the project hasn't been updated in well over a year. The last update/version was June, 2011. The Git repository shows that the last commit was August, 2011. Finally, the author's web site, which previously promoted libdmtx, Dragonfly Logic, is dead with a 404 Not Found error.
Is there another data matrix library that can meet this criteria?
Open source
Platform-neutral C/C++ (i.e. can build for Windows, POSIX environments)
Encodes/decodes data matrix
Actively maintained
Alternatively, did libdmtx move somewhere else and continue to get maintained somewhere that I'm not aware of?
I can't say that I'll never develop on libdmtx again, but it certainly wouldn't be anytime soon. I simply don't have the spare hours anymore to even keep up with the correspondence, let alone to perform any meaningful development.
So if you wish to fork it, you have my blessing. :)
Unfortunately I'm not aware of any other open source packages that do exactly the same things as libdmtx (which is why I created it in the first place), but I tried to list any similar projects I came across at http://libdmtx.sourceforge.net/resources.php
Good luck!
As libdmtx is currently unmaintained (I wouldn't say dead, as there are several users of the library) one should have to look at options.
zxing-cpp is a viable alternative. It can code and decode both DataMatrix, QR codes and barcodes. It compiles both on windows and posix, and are open source (Apache 2)
My only complaint about the zxing-cpp library is that is doesn't support dot peen generated data matrix images.
This Github project has revived libdmtx in 2016 with sporadic but ongoing activity since then: https://github.com/dmtx
(I am not affiliated with this project, just wanted to add an update to this question after finding it in a search.)
I am beginning a fairly large new project using ColdFusion. This new project will include several developers and as such documentation of code will be key.
Another issue I am hoping to avoid (either with adequate code documentation or some other tool) is the duplication of code. A tool that would be able to "index" the code for searching or diagramming would likely help here.
What are others out there using either specifically for ColdFusion or language agnostic. We will likely be using ColdBox for the underlying framework if that makes a difference.
Thanks for any any all suggestions.
-c
Well, it's impossible to tell you which framework to use without knowing more about your project, but I can list out some tools that will be useful no matter which framework you use.
Language-agnostic tools:
GitHub.com organization+teams
Jenkins continuous integration
Apache ANT build scripts
Apache Maven for project management
Coldfusion-specific tools:
MXunit unit testing framework
MockBox for unit testing (if you use ColdBox: ColdBox-specific tutorial)
ColdDoc documentation generator
Javascript-specific tools:
JSLint or JSHint for JS code cleanup
Jasmine unit testing
Ideally, your Jenkins build server should:
Do a fresh checkout from source control
Run all unit tests and stop the build if they fail
Generate documentation
Generate a production-ready package of your project
At a minimum, I highly recommend using source control, setting up Jenkins with MXunit tests, and scheduling daily automated builds.
We used the Atlassian suite at my last job. Mostly Jira for tracking and Greenhopper for agile but the other tools may help, fisheye, bamboo, and crucible. If you host it yourself I believe they have a one time $10/product price tag that. Depending on your team's size may or may not work. If money is no subject the suite worked really nicely. It also has built in support for svn and maybe more by now.
http://www.atlassian.com/software
Sounds to me what you need is a methodology, not a tool. If you have a clearly defined set of objects/responsibilities. There should be no crossover in scripting, and if you determine a common API for the objects being coded, I would think you'd be fine.
I've been checking out Faxien+Sinan and Rebar, and the basic philosophy of Erlang OTP seems to be, install applications and releases on a single Erlang image instance. What are the best practices for keeping releases self contained? Is there a way to package releases such that you don't have to modify the site for machines that you're deploying to? How about gathering all dependencies into the codebase for management?
Perhaps I'm going against the grain... I come from a Java background and the philosophy of "nothing pre-installed but the JVM" seems very different.
IMHO this can't be answered in a few sentences. You should have to read some parts of the included documentation, especially "Erlang/OTP System Documentation" (otp-system-documentation-X.Y.Z.pdf, with X.Y.Z being the version number), or have a look at the book "Erlang and OTP in Action" because throughout this book there is "one" example of a "service" with different "parts" from the first steps, using Erlang/OTP concepts and finally building a "release".
IMHO this is currently the best book around, because it not only introduces Erlang, but also shows what OTP is and how OTP is used for a project. And it is not just a collection of loose samples, but everything is build around a single project.
I'll describe the approach that currently works for me for regular (often daily) releases to a small number of instances on EC2:
I set up my project with rebar and check it into github.
All of my dependencies are listed in my rebar.config file (they too are on github).
My Makefile looks similar to what I described here.
My EC2 image only has a regular build of erlang and no other libs installed by default.
To create a new node, I spin up an instance, clone my git repository, and run make. This will fetch my dependencies and build everything.
To update my code I do a git pull and a rebar update-deps. Depending on what changed I may restart the node or, quite often, I'll attach to the running node and reload the updated modules. It helps to have start and attach scripts as part of your project.
It may be helpful to look at how a project like webmachine is packaged.
I don't know much about the standard OTP release management system, other than it looks like a lot of work. Because this seems counter to rapid deployment, I never gave it a serious try - though I'm certain it makes sense for other projects.
I'm working on a Django-based web app in which the community fuels the content on the site, much like a wiki. Content is in the form of HTML, and users have total freedom to fork articles/chapters or make their own modifications to existing ones and add them to the current 'working version'. The maintainer of each article/chapter (the original authors[s]), will have the option of accepting these changes.
We're also planning on maintaining two versions - or at least views - of any given article: the author-approved edits version and the free-for-all community based edits version.
The revision system that would manage all this forking, merging and branching on top of detailed histories is starting to sound a lot like what a source revision system does. So I'm considering using Git to manage these revisions.
My question to those more experienced in this type of thing than I:
Is it worth the effort and after that, will it be better than rolling something out in a RDBMS?
And if so, roughly, how should I go about implementing this with Django/Python?
asked again in hopes of catching more replies, this is very important to me
I don't know any Django module which would offer what you want (at least wiki i.e. editable text with some lightweight markip language, coupled with version control system), but you can take a look at InterfacesFrontendsAndTools page at Git Wiki, section "Wikis, blogs, etc.". Among others you can find there:
wikiri: simple, single-file wiki written in Python, with optional git support for history tracking
Chuyen: a weblog software written in Python, using the Django web framework and Git as its data storage backend through PyGit
Pystl: very simple, small blog engine in Python, using Git for version control.
You might consider looking at how ikiwiki works. It's a simple wiki system that can be backed by a real version control system (I use it with a Git repository).
GitPython is a python library that interacts with Git repositories. I've played around with it, but not used it in production. It seems solid and relatively easy to use, and is under active development.
If you have difficulties integrating Git with your Django project, you might look at Mercurial. I strongly prefer Git, with its elegant and powerful data model, but Mercurial offers functionality similar to Git and it is written in python, so it might be easier for you.
django-rcsfield might be helpful. It is a field (like models.TextField) for the Django web framework which - under the hood - versionizes its content. The 'rcs' in the name is short for revision control system.
http://code.google.com/p/django-rcsfield/
I've just seen this on reddit:
https://launchpad.net/django-wikiapp/
Django WikiApp is a pluggable
application for Django that aims to
provide a complete Wiki (for really
small values of "complete").
HIH,