Project Management in gtkdialog/yad/CLI/HTML

For discussions about programming, programming questions/advice, and projects that don't really have anything to do with Puppy.
Message
Author
User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

Project Management in gtkdialog/yad/CLI/HTML

#1 Post by technosaurus »

I looked for a decent project management software that didn't have over 50mb worth of dependencies, and couldn't really find anything light weight. I have a pretty basic understanding of the underlying logic, so I started thinking what it would take at a minimum.

At first I thought I would need a database like sqlite, but instead I came up with a way to store the data in a flat file that is extremely quick to parse in a shell. For graphics, we can generate an SVG directly from the shell. Here is the basic idea:

each object (task) gets its own line containing all possible properties as space separated variables:

TASK="start project" DURATION="0" PREDECESSORS="" SUCCESSORS="" ...

Using variables instead of separators will produce large files, but they will compress extremely well (duplicate data normally goes down to 1 byte per occurrence) and can be processed quite easily and much more quickly than parsing separated data and it is easier to maintain, since you don't have to look up positions and can't miscount.

Code: Select all

while read LINE || [ "$LINE" ]; do
eval $LINE
[ "$TASK" == "$1" ] && update_entry $@ || echo $LINE
done < $DATAFILE
The most important calculation would be the critical path. The only way I can think to do this without making it too complicated is to compute all the durations for all paths from start to finish and if the current calculation is higher than the previously computed highest, replace it. (Thus small to medium sized projects)

Once the critical path is calculated, we can then generate our gantt chart and/or successor/predecessor views using SVG data. I've experimented with this before, and drawing, text, rectangles and lines is pretty straight-forward.

here is the basic structure for SVG

Code: Select all

<svg>
  <rect width="200" height="20" x="4"   y="4" style="fill:#0000ff;" id="rect1" />
  <text x="11" y="17" id="text1" xml:space="preserve">START Project</text>
  <line x1="204" y1="12" x2="254" y2="12" style="stroke: black;"/>
</svg>
The beauty of such a simple design is that it could easily adapt a new interface (I could even use cgi scripts with some simple forms to make it a web app that could run on busybox httpd).

NOTE: If I start working on this, I won't have a lot of time to work on other puppy stuff ... so I ask, is this something worth pursuing? If so which interface is preffered? What features are desired?
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

User avatar
UncleBaldie
Posts: 42
Joined: Sun 03 Feb 2008, 21:39
Location: Staffordshire, UK

#2 Post by UncleBaldie »

Crackin' cheese, Gromit lad...
[img]http://www.lichfieldecclesia.org/462665.png[/img]

Woof-woof......oh yes !!

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#3 Post by disciple »

NOTE: If I start working on this, I won't have a lot of time to work on other puppy stuff ... so I ask, is this something worth pursuing?
I don't really think it would.
Most people wanting project management software would be looking for something compatible with Microsoft Project.
It will be very rare for 50MB of dependencies to be a huge problem these days.
It would be filling a very small niche, so I think you probably wouldn't have enough users to either justify the effort, or to iron out all the bugs.
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#4 Post by Lobster »

Project management has been tried several times.
The only system that actually seems to have been used
is bones. maybe you could develop that a bit?
http://bkhome.org/blog/?viewCat=Bones

The problem is not the software, it is getting developers to use it.
It is a cat herding problem:
http://www.murga-linux.com/puppy/viewto ... 1694256696
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#5 Post by technosaurus »

I did compile Planner (a fork of MrProject) which is reasonably light, but requires some deprecated libraries like libglade and it _says_ it requires libgnomeui, but I symlinked its pkgconfig file to gtk and it built fine without it. I also hacked out all of the gconf stuff just so it would compile and the package is <500kb

It uses half the resources of Rox and 1/4 of geany so overall, if someone were to update the UI to use gtkbuilder instead of libglade, it seems like it would be fairly usable for small/medium projects. I may add a wikipedia entry for it, to prevent someone else going through this whole thought process.
Attachments
planner.png
(37.69 KiB) Downloaded 1892 times
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#6 Post by Lobster »

Planner seems to be running OK in Slacko 8)
http://live.gnome.org/Planner/About

You right click to add tasks
Now what project would you like to develop using it?
Maybe a project management system? 8)

Most of our projects have one or two main developers
with testers and code suggestions posted to the forum.

How is this to be an improvement?
It is not that it has no use.
It is how to make use of?
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#7 Post by technosaurus »

I wanted to use one for optimizing init.
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#8 Post by BarryK »

technosaurus,
Congrats on compiling Planner! This has always been a gap in the Puppy suite of applications, and I have often wondered if we would ever find anything -- reasonably small, that is.

I have just downloaded it, will play with it soon.

Yes, I like your thoughts in the first post. In retrospect, I would probably have preferred to have implemented Woof as you suggest. My '|' delimiters are ok, but your suggestion is convenient in conjunction with 'eval'.
[url]https://bkhome.org/news/[/url]

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#9 Post by disciple »

Lobster wrote:Project management has been tried several times.
The only system that actually seems to have been used
is bones. maybe you could develop that a bit?
Lobster wrote:Planner seems to be running OK in Slacko 8)
http://live.gnome.org/Planner/About

You right click to add tasks
Now what project would you like to develop using it?
Maybe a project management system? 8)

Most of our projects have one or two main developers
with testers and code suggestions posted to the forum.

How is this to be an improvement?
It is not that it has no use.
It is how to make use of?
We're talking about a project management tool for Puppy users, rather than a tool for development of Puppy or for development of software for Puppy.
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

User avatar
jim3630
Posts: 791
Joined: Mon 14 Feb 2011, 02:21
Location: Northern Nevada

#10 Post by jim3630 »

tried in Dpup Exprimo SMP 5.X.10.
console:

# planner
planner: error while loading shared libraries: libxcb-xlib.so.0: cannot open shared object file: No such file or directory
#

libxcb-xlib.so.0: looks like a symlink library just to show how little I know. if it is then don't know what to do with it.

missing library or is planner not suited for Dpup?

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#11 Post by BarryK »

jim3630 wrote:tried in Dpup Exprimo SMP 5.X.10.
console:

# planner
planner: error while loading shared libraries: libxcb-xlib.so.0: cannot open shared object file: No such file or directory
#

libxcb-xlib.so.0: looks like a symlink library just to show how little I know. if it is then don't know what to do with it.

missing library or is planner not suited for Dpup?
Try this:

Code: Select all

# ln -s libX11.so.6 /usr/lib/libxcb-xlib.so.0
[url]https://bkhome.org/news/[/url]

User avatar
jim3630
Posts: 791
Joined: Mon 14 Feb 2011, 02:21
Location: Northern Nevada

#12 Post by jim3630 »

BarryK wrote:
jim3630 wrote:tried in Dpup Exprimo SMP 5.X.10.
console:

# planner
planner: error while loading shared libraries: libxcb-xlib.so.0: cannot open shared object file: No such file or directory
#

libxcb-xlib.so.0: looks like a symlink library just to show how little I know. if it is then don't know what to do with it.

missing library or is planner not suited for Dpup?
Try this:

Code: Select all

# ln -s libX11.so.6 /usr/lib/libxcb-xlib.so.0
Hey Barry it worked!

will study your code to figure out how it worked.

ln a command to link. -s symlink. can't quite get how you came up with "6"?

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#13 Post by Lobster »

We're talking about a project management tool for Puppy users, rather than a tool for development of Puppy or for development of software for Puppy.
Then it makes perfect sense to include planner in Wary and Racy
http://bkhome.org/blog/?viewDetailed=02592
and move towards Plan4Pup or whatever emerges.
I would rather use a Puppy Planner, then any compromise and would be happy like others to offer feedback

Puppy
Geany
Devx
and technosaurus planner
quite a development tool . . . 8)
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#14 Post by technosaurus »

Sorry about the non-portable pet of Planner. I didn't apply my usual compile tricks because it took so much hacking just to get it to compile, that I was almost sure it wouldn't work and I didn't want to wait for the long series of trial & error compiles. I guess I am getting better at guessing what to hack on ... or maybe just luckier. I can build an optimized, portable build and/or post a diff of my hacks if anyone wants them.
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

meditate
Posts: 5
Joined: Mon 15 Mar 2010, 16:39

project planner

#15 Post by meditate »

:D
Thanks and Congrats tecnosaurus
Download works fine with Lucid 5.2

Have been trying to demonstrate the power of puppy to my IT head who is suitably impressed with puppy.

This project planner would go a long way to achieve business needs.
Will look forward to improvements.

Keep up the great work.
:D

meditate

User avatar
charlie6
Posts: 1230
Joined: Mon 30 Jun 2008, 04:03
Location: Saint-Gérard / Walloon part of Belgium

#16 Post by charlie6 »

Hi Technosaurus,
This looks great !
(tested on slacko5.3 - works OTB - entered some tasks and ressources and predecessors; and got all projects printout in one only output file ...very handy :) !).
Many thanks for the ideas and making this pet!
That's indeed what was missing on Puppy !

Planner looks tiny and allows even to define predecessors which was not availble on the KPlato I tested one or two years ago.
I also tried GanttPV http://www.pureviolet.net/ganttpv/ which looks simple to use; but requires a working Python and wxGTk installed.
Planner looks even more simplier to use.

So ... just great !

Thanks again !

Charlie

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#17 Post by BarryK »

jim3630 wrote:
BarryK wrote:
jim3630 wrote:tried in Dpup Exprimo SMP 5.X.10.
console:

# planner
planner: error while loading shared libraries: libxcb-xlib.so.0: cannot open shared object file: No such file or directory
#

libxcb-xlib.so.0: looks like a symlink library just to show how little I know. if it is then don't know what to do with it.

missing library or is planner not suited for Dpup?
Try this:

Code: Select all

# ln -s libX11.so.6 /usr/lib/libxcb-xlib.so.0
Hey Barry it worked!

will study your code to figure out how it worked.

ln a command to link. -s symlink. can't quite get how you came up with "6"?
Planner doesn't really need that library. It was in the environment in which technosaurus compiled Planner. libxcb-xlib.so.0 could have been symlinked to anything, just to satisfy Planner as it starts up.
[url]https://bkhome.org/news/[/url]

User avatar
jim3630
Posts: 791
Joined: Mon 14 Feb 2011, 02:21
Location: Northern Nevada

#18 Post by jim3630 »

BarryK wrote: Planner doesn't really need that library. It was in the environment in which technosaurus compiled Planner. libxcb-xlib.so.0 could have been symlinked to anything, just to satisfy Planner as it starts up.
thanks Barry.

tested briefly in Racy and worked well. thanks tecnosaurus

seaside
Posts: 934
Joined: Thu 12 Apr 2007, 00:19

Re: Project Management in gtkdialog/yad/CLI/HTML

#19 Post by seaside »

technosaurus wrote:I looked for a decent project management software that didn't have over 50mb worth of dependencies, and couldn't really find anything light weight. I have a pretty basic understanding of the underlying logic, so I started thinking what it would take at a minimum.
technosaurus,

What I find fascinating is your ability to take a complex, involved program task such as a project planner and reduce it to a simplified concept. You might call it a "Puppification". No particular dependencies, just do it with simple tools at hand and end up with just as good, if not better, program than the big and bloated software boats.

Bravo, and I hope you'll find the time to do it anyway.

Thanks for your inspirations,
s
(Of course we expect only an "all-bash" approach... :) )

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#20 Post by technosaurus »

here is a rebuild of Planner that is more optimised and _should_ be more portable along with a patch of my hacks

compiled with:

Code: Select all

CFLAGS=" -DGTK_NO_CHECK_CASTS -DG_DISABLE_CAST_CHECKS -DNDEBUG -DG_DISABLE_ASSERT -pipe -combine -Os  -momit-leaf-frame-pointer -fomit-frame-pointer -fmerge-all-constants -mno-accumulate-outgoing-args -march=i586 -mtune=i686 " LDFLAGS="  -Wl,-O4,-Os,-relax,--sort-common,--as-needed,-s " ./configure --disable-schemas-install --disable-python --disable-silent-rules --prefix=/usr --sysconfdir=/etc --localstatedir=/var --build=i486-t2-linux-gnu
It (unnecessarily) uses plugins, so I couldn't apply my more aggressive compiler/linker flags.
Attachments
planner-rmvgconf-Os.patch.gz
(952 Bytes) Downloaded 380 times
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

Post Reply