Welcome Guest.   Make a donation to an author on the site July 29, 2010, 03:44:42 PM  *

Please login or register.
Or did you miss your validation email?


Login with username and password (forgot your password?)
Why not become a lifetime supporting member of the site with a one-time donation of any amount? Your donation entitles you to a ton of additional benefits, including access to exclusive discounts and downloads, the ability to enter monthly free software drawings, and a single non-expiring license key for all of our programs.


You must sign up here before you can post and access some areas of the site. Registration is totally free and confidential.
 
Latest Review: Word Processor Roundup June 14, 2007.
   
   Forum Home   Thread Marks Chat! Downloads Search Login Register  
Pages: [1]   Go Down
  Print  
Author Topic: Development: progress and thougts  (Read 1112 times)
f0dder
Moderator
*****
Posts: 6,839



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« on: January 31, 2010, 05:48:56 PM »

I figured it's about time I write down some thoughts on the future of fSekrit in one (hopefully coherent) thread, rather than having bits and pieces spread across various other threads. So, without further ado, here goes a braindump smiley

Current state of fSekrit
The program is relatively close to being feature-complete, at least in the context of the features I originally envisioned. A few of the unimplemented features require a fair amount of code, however, feature count isn't everything.

Not all code is as clean as I would ideally want, there's a fair amount of commenting and documenting to be done, and a bunch of refactoring as well. Work has been started on this.

There's currently no test suite, which is... pretty bad. There's been a few bugs that a test suite would/should have caught. Never really found any C++ unit testing framework I liked, but I recently bumped into gtest which actually looks pretty decent. Feedback?

Overall, I'd say that the project is in relatively good shape.

fSekrit in the future
Keywords:
  • Modularizing - progressing nicely, "sekritCore" close to done.
  • Documentation - update & cleanup existing. (Internals, not readme.txt)
  • Unit testing - not started.
  • Key derivation - implement PBKDF2 instead of sha256(passphrase).
  • Tabbed interface - multiple "document streams" in one container. Work has been started.
  • Mass upgrader - automate upgrading of editor part of documents.
  • Open-source - unleash the source code unto the world.

The current goals are towards cleaning up the source code, before new functionality is added. This means modularizing, documentation, unit testing. Work is progressing nicely (load-code has been refactored & works, save is yet to come), but there's still a fair amount of work to be done. Executable size has bloated a bit, but once unit tests are in place and refactoring is done, some code will be specialized instead of using standard C++ containers, which should bring code size down to the size of 1.40 - perhaps even a bit smaller.

Once cleanup is done, I'll have to decide on whether I want to open-source the project first, or if some of the missing features should be implemented. I'm leaning towards open-sourcing first, perhaps implementing PBKDF2 first. Feedback?

Opensourcing fSekrit
I've been wanting to do this for a while, it's something that has been planned pretty much from the beginning. I didn't want to release the code before it is "decent enough", though - I'll have to admit that some revisions haven't exactly been top-grade code smiley

There's various decisions to be made wrt. opening the source. One of them is license - it's definitely not going to be the horribly yucky GPL. Basically I don't want anybody making money off my work, I want attribution if my code is re-used, and I'd prefer to stay in charge (though this last requirement needn't be enforced in the license). Feedback?

There's also the issue of hosting. Forum and binary downloads probably still fit just fine on donationcoder.com and dcmembers.com, but I'm not sure what to do with the source code. I'm considering SourceForge or GoogleCode, dunno if there's other/better choices. Feedback?

At least initially, I'm going to keep the subversion repository on my own private server, and let people contribute patches if they want. Source code previous to the open-sourced version won't be public available. Eventually, it'd be nice to have updates to my own repository mirrored to a public repository; this really screams "move to a DVCS". Feedback?

I might want some bug tracking / feature request system as well... that would probably come with the source hosting. I've used RedMine a bit, and that's the one I've been liking best - trac is apparently nice, but looks a bit unpolished.
Logged

- carpe noctem
mouser
First Author
Administrator
*****
Posts: 24,001



plarker mouser see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #1 on: February 01, 2010, 03:23:11 AM »

Sounds nice.
We have a redmine set up on http://redmine.dcmembers.com -- if you create an account i'll make an fsekrit project for you there.
The multiple document streams idea sounds interesting..
Logged
f0dder
Moderator
*****
Posts: 6,839



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #2 on: February 01, 2010, 03:40:45 AM »

We have a redmine set up on http://redmine.dcmembers.com -- if you create an account i'll make an fsekrit project for you there.
Thanks, but I don't need it right now - I have redmine on my private server, and I use ToDoList for managing stuff right now... it's when opensourcing the project that issue-tracking might come in handy, and I expect whatever source hosting to provide issue tracking. If it doesn't, or it sucks, I'll definitely take up your offer, though smiley

The multiple document streams idea sounds interesting..
Yep, and it's something that has been requested by users. And I can definitely use it myself to organize my passwords.exe a bit better smiley

Btw, another thing I'm considering is a BeyondCompare plugin so fSekrit documents can be compared without decrypting temporarily to disk - I'll have to check out how much work this requires, but it's definitely also something I could use myself... sometimes I add new password entries on my laptop, and end up with files that are out of sync. Having factored the container load/save stuff out to a separate project was a prerequisite for even considering this.
Logged

- carpe noctem
Lashiec
Member
**
Posts: 2,278


see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #3 on: February 01, 2010, 09:30:26 AM »

There's various decisions to be made wrt. opening the source. One of them is license - it's definitely not going to be the horribly yucky GPL. Basically I don't want anybody making money off my work, I want attribution if my code is re-used, and I'd prefer to stay in charge (though this last requirement needn't be enforced in the license). Feedback?

Custom license? :D

I doubt you will find any license that fulfill all the requirements, but except for the last one, you may find something in the OSI list. The Non-Profit Open Software License 3.0 sounds good. Alternatively, I found something at the Fedora wiki

It seems you have the same problem as the bsnes author had a while ago. Pity that his custom license has been retired (he's using the GPLv2 now, heh). Of course, any custom license might not hold up in court, unless you have it reviewed by an experienced lawyer.
Logged
f0dder
Moderator
*****
Posts: 6,839



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #4 on: February 01, 2010, 09:37:23 AM »

Wow, that bsnes blog post is long - might read it a bit later.

I was considering Creative Commons Attribution-Noncommercial-Share Alike, as I think :p it supports the attribution and non-commercial aspects that I want. The Attribution-Noncommercial-No Derivative Works would also add the "stay in charge" aspect, but it seems a bit draconian.
Logged

- carpe noctem
Lashiec
Member
**
Posts: 2,278


see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #5 on: February 01, 2010, 10:28:47 AM »

Yeah, the last one does not seem to allow reusing code. In any case, is it a good idea to use a Creative Commons license for software?

BTW, the CC page is beautifully designed. The FSF or the OSI could learn a lot of things from them, would make things easier for people choosing the most appropriate license for their software, as well as explaining the big points of the license without forcing the author to go through all that legalese.
Logged
f0dder
Moderator
*****
Posts: 6,839



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #6 on: February 01, 2010, 01:21:45 PM »

Yeah, the last one does not seem to allow reusing code. In any case, is it a good idea to use a Creative Commons license for software?
That's definitely something I'd like to hear other people's thoughts on - it does feel a bit awkward. If somebody can find me a software-specific license that resembles CC's Attribution-Noncommercial-ShareAlike, let me know smiley
Logged

- carpe noctem
Pages: [1]   Go Up
  Print  
 
Jump to:  
   Forum Home   Thread Marks Chat! Downloads Search Login Register  

DonationCoder.com | About Us
DonationCoder.com Forum | Powered by SMF
SMF © 2006-2009, Simple Machines LLC

social bookmark this page