About Development

Discussions regarding the development of IS4C

About Development

Postby maxolasersquad » Wed Dec 16, 2009 10:41 pm

I am looking to deploy is4c for a new food coop here in Tallahassee. I am also very interested in lending a hand in continuing development and working on documentation on the system.
The current setup is not very conducive to collaborative development. If the team is up for it, I would like to help in setting up version control, a wiki, a bug tracker and a development roadmap.
At my job my development platform is Ubuntu, I primarily develop web application in PHP and use Oracle SQL running on a Solaris server, so the technologies used in IS4C are very familiar for me. We also use svn for our vcs, a wiki for our documentation and have our own in-house bug tracker.
If there is interest in moving in towards better collaborative development I would be more than happy in helping get that setup. Please let me know.
maxolasersquad
 
Posts: 50
Joined: Wed Dec 16, 2009 10:35 pm
Location: Tallahassee, Fl

github

Postby maxolasersquad » Fri Jan 29, 2010 7:12 pm

I forked the code to github and called the new project floss-pos. I would much prefer to do something like this in collaboration with the IS4C team. I have already made some pretty substantial improvements to fannie in the way of adding inventory as well as added the ability in lane to have member pricing. The coop I am supporting has two prices, a member price and a non-member. My changes allow to do both percentage discounts like IS4C already does and/or member pricing.
I have not pushed these changes to my github repository, but will be doing so very soon.
I would love to be able to push these changes to the is4c project, but without any kind of mechanism for distributed development I have had to fork the code.
If the IS4C team is interested in implementing mechanisms to streamline distributed development that would be awesome. If you would like to use of my changed you can grab them from the github repository as you like.
The project is at http://cloud.github.com/downloads/maxol ... pos.tar.gz
maxolasersquad
 
Posts: 50
Joined: Wed Dec 16, 2009 10:35 pm
Location: Tallahassee, Fl

Postby johnpurdy » Wed Feb 03, 2010 7:35 pm

Cool, pretty interesting.
Though I'm not familiar with git or github at all, it was interesting to poke around at how the project is setup.
Not to jinx myself with an unforeseen project, but I think that I'm going to have some time here soon to finally move the Wedge's legacy MSSQL tables & views over to MySQL... But we've been saying that for years, so who knows ;)
johnpurdy
 
Posts: 77
Joined: Sat Aug 18, 2007 11:53 am
Location: Minneapolis, MN

git

Postby maxolasersquad » Thu Feb 04, 2010 11:37 am

This project has been my excuse to learn git finally. We use SVN at work, but everyone I know that I respect tell me git makes svn look like pooh, for what that's worth.
maxolasersquad
 
Posts: 50
Joined: Wed Dec 16, 2009 10:35 pm
Location: Tallahassee, Fl

Postby snfctech » Thu Feb 04, 2010 7:17 pm

Hi, maxolasersquad:

Wow - sounds like you're pretty serious about the fork. When I last thought about is4c, I was a little concerned about the heavy branching - so I appreciate your effort.

At Sacramento Natural Foods Co-op we are about to start a case/special order system. I've been pretty excited about a ground-up build with Python/web2py - but I feel I owe it to the Co-op IT community to look at the possibility of contributing to and extending is4c.

Still... I'm not sure PHP is the best tool-set in the long run. I would be curious about what you think of the code so far and how your own modifications have been coming along.
snfctech
 
Posts: 15
Joined: Tue Feb 24, 2009 1:43 pm
Location: Sacramento, California

Postby maxolasersquad » Thu Feb 04, 2010 11:29 pm

snfctech wrote:Hi, maxolasersquad:

Wow - sounds like you're pretty serious about the fork. When I last thought about is4c, I was a little concerned about the heavy branching - so I appreciate your effort.

At Sacramento Natural Foods Co-op we are about to start a case/special order system. I've been pretty excited about a ground-up build with Python/web2py - but I feel I owe it to the Co-op IT community to look at the possibility of contributing to and extending is4c.

Still... I'm not sure PHP is the best tool-set in the long run. I would be curious about what you think of the code so far and how your own modifications have been coming along.
I want to be completely honest. The IS4C POS software is really cool, and I can tell a lot of effort has gone into making a really cool system. The Fannie system has lots and lots of bugs and was absolutely not usable out of the box for even simple things such as entering in new inventory or members.
The state of the code for the POS is very very bad. I say this with the full disclosure that I used these same poor coding techniques as recently as last summer for my final thesis project for my BS in IT, so I'm certainly not trying to put anyone down.
Without any sort of Model-View-Control structure the code is very difficult to fix bugs, bring in new features, and support long term.
I have two efforts going on. The first is to bend the POS system to meet some of the specific needs of the coop I am supporting, as well as fix some of the more basic problems with Fannie.
The second is to completely rewrite both, which has been more of something that's been in my mind than much code that I can show for it. I have two possible avenues. The first, and easiest for me, is to rewrite it in PHP using Zend to give a more Rails like infrastructure. This will structure the code properly. At my job I work in PHP with the Zend framework so it what I am more familiar with. The other idea is more in line with what you are looking at; using Python. I've only ready up a little on the language, but those I know who use it tell me that once I use Python I'll never want to code in PHP again.
PHP has better speed, and with Facebook's new JIT compiler, it can be even faster. Python gives us the benefits of a higher level language, coupled with the large amount of potential FLOSS developers who are quickly building everything they can in Python.
This is really what I hope to garner through this communication. I would like to work with the existing IS4C team to discuss how we can make collaboration more easier, and bring the future of IS4C to a stronger code-base, and hopefully a stronger developer and user base.
Without the standard tools that most every successful open source software is deploying I believe IS4C will not be able to live up to the potential it should.
maxolasersquad
 
Posts: 50
Joined: Wed Dec 16, 2009 10:35 pm
Location: Tallahassee, Fl

Postby snfctech » Fri Feb 05, 2010 10:50 am

If you're planning on a full re-write, then why not look into Python/web2py/Django or RoR? Sure, you may have access to more PHP developers initially - but are you looking for quantity or quality? I'm facing this same issue with my project. I think the idealistic advantages of using Python or RoR may actually attract some contributors who are tired of PHP. And what's an extra 3-4 weeks of ramp-up time for a project as big as the one you are considering?

Please keep me posted on your direction and any sites you may put up for your project.

Good luck. It's nice to hear about another Co-op investing in quality IT development, rather than just trying another crappy/insufficient out-of-the-box solution.
snfctech
 
Posts: 15
Joined: Tue Feb 24, 2009 1:43 pm
Location: Sacramento, California

Postby maxolasersquad » Fri Feb 05, 2010 1:10 pm

snfctech wrote:If you're planning on a full re-write, then why not look into Python/web2py/Django or RoR? Sure, you may have access to more PHP developers initially - but are you looking for quantity or quality? I'm facing this same issue with my project. I think the idealistic advantages of using Python or RoR may actually attract some contributors who are tired of PHP. And what's an extra 3-4 weeks of ramp-up time for a project as big as the one you are considering?
PHP is faster, which is important. Python has the abstraction that comes with higher level languages. I think that in the FLOSS community Python is also more likely to pick up more prospective developers.

snfctech wrote:Please keep me posted on your direction and any sites you may put up for your project.
Indeed I shall.
maxolasersquad
 
Posts: 50
Joined: Wed Dec 16, 2009 10:35 pm
Location: Tallahassee, Fl

Postby johnpurdy » Fri Feb 05, 2010 4:49 pm

I've gotta say, the language doesn't really matter here at all (performance-wise). Even pushing $14k/hr in sales, with 12 year old PHP running on machines with 512mb of RAM, things aren't slow. You're still swiping 2# bags of apples and having a conversation with the customer. There's really no way you can move product across the lane fast enough to slow it down.

Regardless, I'm fully on board with the idea of a re-write. It's an enormous project though.

Fannie is more of a concept. Ever store is going to have different requirements concerning usability and the like. Fannie is more of a demonstration of how to access the databases. At the Wedge we have a gang of related applications that we use instead of Fannie. Everything from label printing applications designed to run on Nokia 770s, to sales graphs using automatically updated canvas graphs. It's really quite interesting to develop the different singleton applications.
johnpurdy
 
Posts: 77
Joined: Sat Aug 18, 2007 11:53 am
Location: Minneapolis, MN

Postby maxolasersquad » Fri Feb 05, 2010 5:00 pm

johnpurdy wrote:I've gotta say, the language doesn't really matter here at all (performance-wise). Even pushing $14k/hr in sales, with 12 year old PHP running on machines with 512mb of RAM, things aren't slow. You're still swiping 2# bags of apples and having a conversation with the customer. There's really no way you can move product across the lane fast enough to slow it down.
Very good point. Perhaps focusing on the speed of such a low-intensity application isn't going to help.

johnpurdy wrote:Regardless, I'm fully on board with the idea of a re-write. It's an enormous project though.
Do you think there is enough interest to start having a conversation about it? I am very interested in doing a rewrite, but a little taken back at the devotion it will take if I go it alone. If others are interested in doing it then that is great for me, and I'd like to get other people's feedback on how they would like to do it before I just start on my own and ask people to accept my decision I've already started building on.

johnpurdy wrote:Fannie is more of a concept. Ever store is going to have different requirements concerning usability and the like. Fannie is more of a demonstration of how to access the databases. At the Wedge we have a gang of related applications that we use instead of Fannie. Everything from label printing applications designed to run on Nokia 770s, to sales graphs using automatically updated canvas graphs. It's really quite interesting to develop the different singleton applications.
That makes sense, but I think there are a number of tasks that would be shared amongst most anyone, such as inventory entry, which doesn't work in the current state of fannie as offered on the IS4C download site.
maxolasersquad
 
Posts: 50
Joined: Wed Dec 16, 2009 10:35 pm
Location: Tallahassee, Fl

Postby jake » Sun Feb 21, 2010 9:11 am

Hi all,

I'm just back from the Bloomington conference this weekend on new co-op startup. My team and I are starting up in Troy, Ohio (http://www.miamiriverfoods.org). I had the chance to talk PoS software with Stuart Reed of CDS, and he turned me on to the IS4C project. I've been reading all the public info on the web and working my way through the forums.

I'm so happy to find that there's an open source POS system, and that it's being developed by co-ops! Thank you for the years of love and labor that you've put into creating an alternative. We are bootstrapping our co-op, rather than a big up-front organizing process (almost an Agile model, if you will.) And having a low-cost but capable POS system is really a godsend. I'm looking forward to contributing what may be a unique perspective - a start-up designing my store around IS4C, rather than an existing co-op attempting to make the switch.

My background: I was in software development before switching careers to community organizing. My first Linux install was Slackware in 1998, and I've been a huge OSS supporter (even while at Microsoft =)

While reading the forums about various co-op implementations of IS4C, as my excitement was building, so too was the concern that every co-op implementing is4c was branching their code, and that these patches were not making it back in a systematic way into the codebase.

The direct, unavoidable result of this kind of development process is that new potential implementers (like me) are going to have to start the process at a much less refined level -- because I'm not sure that all of the improvements will be in the version that's available to me. And wondering how much time I'll have to hack a POS system in addition to all the organizing activities I'm responsible for gives me serious pause.

So it was with a DEEP SIGH of relief when I read Maxo's post on bringing some systems to the development process. "Yes!" I thought. "This is exactly what the project needs to grow and attract more small start-ups like mine!"

Maxo, thanks for your interest in the project. It took my intimidation level down by a good three notches. I plan to install a test lab from your forked codebase, and I'll be happy to submit my patches. Haven't used git before, but I'll learn.

I have very high hopes for the project and for my co-op's implementation effort. My hope is that I can contribute to making the installation and implementation easier for the next start-up to discover is4c.

Looking forward to being in touch more with all of you! Thank you again for such a wonderful gift.

Jake

--
Jake Schlachter
jake@miamiriverfoods.org
jake
 
Posts: 4
Joined: Sun Feb 21, 2010 8:39 am

Postby maxolasersquad » Sun Feb 21, 2010 1:49 pm

Jake, it is nice to see you stop by. My experience with IS4C is that it does take some work for the initial setup, and that could be improved upon a lot. The installation that is on github has not been tested yet, so if you get a chance to try using that for the install, fix any problems, and then commit them back I'll merge those back into the branch. Or, if you don't have time for that, but are able to fix any other bugs you find on the way that would be excellent.
As far as I have seen, git really is great as the hype would suggest.
I look forward to your feedback.
maxolasersquad
 
Posts: 50
Joined: Wed Dec 16, 2009 10:35 pm
Location: Tallahassee, Fl

Postby johnpurdy » Sun Feb 21, 2010 2:14 pm

I was able to fudge my way through the server installation scripts that are out there right now on github/is4c.coop. As always, work to be done, and who knows if we're doing it the right way ;)

Also, welcome Jake!
johnpurdy
 
Posts: 77
Joined: Sat Aug 18, 2007 11:53 am
Location: Minneapolis, MN

Postby lance » Sun Feb 21, 2010 7:23 pm

maxolasersquad wrote:Do you think there is enough interest to start having a conversation about it? I am very interested in doing a rewrite, but a little taken back at the devotion it will take if I go it alone. If others are interested in doing it then that is great for me, and I'd like to get other people's feedback on how they would like to do it before I just start on my own and ask people to accept my decision I've already started building on.


Yes! At least speaking for myself that is...

I also have dabbled with the IS4C/Fannie codebases in the past and have shared your frustration with the current state of each, even though I also was very excited upon first discovering the projects.

I work at a health food store (not a co-op) and was to consult with another one in the region. My "mother" store's needs were too unique for IS4C/Fannie (partly because I've developed quite a bit of custom software there already), but the other one would be migrating from basically nothing so the needs were much lesser and I decided to really give IS4C/Fannie a try.

I'd started on the same path it sounds like you're on now, i.e. "forking" for myself so I could get the software in a usable state. My efforts were targeting the Windows platform, which didn't prove to be a drastic difference. However I hadn't gotten around to messing with the serial scale interface stuff (which is where the real differences would be) by the time I gave up on the idea. Ultimately I decided that future maintenance and improvement would require some pretty major changes (e.g. M/V/C) that really would mean a rewrite. About that time the other store decided it didn't have the resources to invest even in the POS hardware, since it wasn't really enough of an efficiency bottleneck for them, and therefore wouldn't give them much in the way of ROI. So I quit working on it...

However, my mother store has finally become fed up with our primary (closed commercial) software, and has allowed me to begin exploring open source alternatives. I'd honestly not expected to find much here again since my recent experience, so I've been toying with the idea of creating a new community project, but it sounds now like this is great timing for everyone to pool their collective knowledge and design a really great system.

maxolasersquad wrote:That makes sense, but I think there are a number of tasks that would be shared amongst most anyone, such as inventory entry, which doesn't work in the current state of fannie as offered on the IS4C download site.


I also wanted to chime in here and say that I agree wholeheartedly about this. Retail is an old game and most businesses are needing to solve the same general problems on the back-end as well as the front. Any truly custom problems facing any particular shop can still be handled by standalone/external apps or (by my thinking anyway) plugins to the main framework.

With all that said, I've only just begun exploring, and most of my research thus far was to determine what licensing to use, where to establish the community, etc. Returning to the IS4C project would mean that those problems are "solved," and I can focus on the real project. So far I've got some scribbled notes about framework but nothing really presentable yet. I should be able to spend a fair amount of time on this though, as it's kind of bug #1 for us right now. As soon as I have some cohesive thoughts on the architecture I'll be happy to post them wherever...this forum will do but I think I'd rather use the github (or another?) wiki so our thoughts can congeal into real software specs and evolve from there.

So aside from all that rambling, I want to pose a question that I consider to be the most important at this point: As some of the (especially initial) discussions surrounding a rewrite will be very iterative, where should they occur? I think this forum is great, with two exceptions: A) Email notifications can only happen on response events, but not new posts, and B) Knowledge here is rather spread out and it would be nice to accumulate an authoritative collection of documents describing what we have figured out and what remains to be figured out.

I'd personally like to address each of these shortcomings with its own solution, i.e. use a mailing list to accommodate the broader discussion in a way that can keep all parties interested "in the loop" with minimal effort, and create a wiki to collect "final" thoughts.

It occurs to me that both these already exist: a mailing list at https://lists.coopmetrics.coop/cgi-bin/mailman/listinfo/coconuts and there are even (at least) two wiki options:



Thoughts? I yield the floor...

Lance
lance
 
Posts: 28
Joined: Fri Apr 03, 2009 1:30 pm
Location: Springfield, MO

Postby maxolasersquad » Sun Feb 21, 2010 9:00 pm

I would really like to have a "conference call" with everyone interested in doing this. If everyone can, we could do this over Skype on a time and date that is good for us all. One this call we could lay down the basics of how to move forward. We could then put these down on the github wiki and then collaborate from there.
maxolasersquad
 
Posts: 50
Joined: Wed Dec 16, 2009 10:35 pm
Location: Tallahassee, Fl

Next

Return to Development

Who is online

Users browsing this forum: No registered users and 0 guests

cron