Click to See Complete Forum and Search --> : Console Suite


nko
06-02-2003, 03:37 AM
Attention experience-lacking, probably-only-wannabe programmers! I've got a little idea. Basically, I'd like to get a group of people together who don't really know what they're doing, but are eager to learn. From there, we'll make a console-based software suite. Not to fill a gap, not to replace existing tools, but just for fun and learning. Anyone interested? I'm up for suggestions in a lot of ways. I myself am just a newbie programmer, looking only for a small project to help me start learning. It's hard to learn by text-book examples and such- getting down and dirty with code, I think, is the best way.

roamingnomad
06-02-2003, 03:50 AM
By console suite, do you mean like text editor and spreadsheet for the console?

nko
06-02-2003, 03:52 AM
Sure! And maybe a word processor. And an e-mail client. Maybe a scripting facility. I dunno, just a bunch of programs. Desktop, power-user, anything goes. Kinda like how GNU's got a lot of projects, except in this case, with user apps in mind, and mostly for education purposes.

roamingnomad
06-02-2003, 04:09 AM
Would this be done in... C? Would it be possible to do it in Python?

nko
06-02-2003, 04:24 AM
I was gonna suggest Python from the start, but then I figured we'd leave it up to the group to discuss. One language would probably be best. I also thought immediately of Python for a few reasons- it's simple, it's fast, it's not compiled and is therefor probably very, very portable, and the source would follow the "binaries," making for a single package to distribute both...

roamingnomad
06-02-2003, 04:49 AM
YAY! Python!

Actually, I've been learning Python for a week or so now, even though I don't have a book. It is a great language, and so if we're using it, count me in.

nko
06-02-2003, 05:00 AM
Hehee, I've been flirting with Python for about half a year now. I've just been looking for a reason to get in to it. I can't actually do anything with it at this point, but the tutorials have all made perfect sense to me, so far. I know some c++, but even knowing more of that than Python, I'd rather try Py by far.

Two votes for Python, I guess!

nko
06-02-2003, 05:04 PM
I guess a few suggestions could be:

Text editor
spreadsheet
word processor
presentation maker (geekyyyy!!)
little apps for getting system info in a friendlier way
little games, like the BSD games
a CLI calculator, maybe with scientific functions
graphing app
a reimplementation of midnightcommander (note: for educational purposes, not to replace mc!)
a little installer front-end for the suite (probably useless, probably fun to make)
a WYSIWYG HTML / XML editor

Hayl
06-02-2003, 05:29 PM
i think there is already a project for exactly this. ill look for my magazine article with it in it.

i remember reading about one.

<ok i have hand-cramps for flipping through magazines... still can't find that propject ... ill look some more after dinner>

cfaun5
06-02-2003, 05:35 PM
1 vote for C++ (although I'd be fine with C or Perl also)

Anyhow, if you are sure about this then we should either:

A. Make a mailing list
B. Register on sourceforge
C. Make a channal on FreeNode

Just a suggestion...

nko
06-02-2003, 05:39 PM
I was thinking at least a sourceforge project, but I'm not making an moves until we've got a decent group of interested people.

For the language matters, I really don't care what we use. The only thing I have against C(++) is the manual memory handling. For projects requiring so little computing power, I don't think it's necessary.

Of course, if we wanted to make it a full group of sub projects, I'd be totally cool with each subproject using a different language. Anyone wanna do it that way? I do! It'd take more people, though, to get something like that going.

cfaun5
06-02-2003, 05:42 PM
I'm fine with that. If I'm seriously outvoted I wouldn't mind learning python either...

But as you said, might as well just wait and see what people say....

kiwipenguin
06-02-2003, 06:03 PM
Well I'd certainly be interested in something like this. I've been learning Perl, Python and PHP for a while, but having something to focus on would be cool.

nko
06-02-2003, 06:32 PM
Cool, 4 people so far, and Hayl looking to see if there's already such a thing! Neat!

So what level of "expertise" (or lack thereof) is everyone? I've gone through CS 162, learning mostly C++. I'm none too good at it, but I haven't done bad. Really interesting stuff. I used to do a little QBASIC back in the day. I'm interested in Python because of its place between simple, interpreted stuff like BASIC and useful, OOP-style C++. Still, I'm very interested in C++, and would like to see about other languages. I picked up a book on PHP a while back. That's another language I'd like to do something with.

cfaun5
06-02-2003, 07:48 PM
I've touched on a lot of programming languages and libraries but have not staying in one place for long. Previous projects involved C++ (with QT, WxWindows, and curses), C (GTK+), and Perl. I've also studyed the material and took an AP Exam on Computer Science. So overall, well backgrounded experience but not that sophisticated of a programmer (wee beginner).

Also, this projects was probably already done, but why does that matter? A console set of tools will not be used that much anyhow. Its just for learning.

Also a suggestion: if you insist on using python (and majority rule has clearly established this), can we use curses of something? Or if neccessary include a python binding for curses? I would really hate to reinvent the wheel TOO much...

EDIT: A curses binding is included in the Python standard library :-) !

See the following URLS:

http://python.org/doc/current/lib/lib.html
http://python.org/doc/current/lib/module-curses.html
http://python.org/doc/current/lib/module-curses.textpad.html

EDIT TO THE EDIT:
We are reinventing the wheel. Search google for stuff like curses +"word processor" and stuff like this shows up:

http://www.freshports.org/editors/aee/

nko
06-02-2003, 07:51 PM
God yes, curses are in!

Also, reconsidering, I would like to make use of all sorts of languages. It's for learning, right? So why not make more options available?

nko
06-02-2003, 08:17 PM
Eh, even with a word processor already available, I'd still like to make one as part of a bigger project. Integrate everything, reuse code within the project, if possible... if for no other reason than for fun :).

And hey, why not have 2 or 3 of everything?

cfaun5
06-02-2003, 08:34 PM
A similar search (such as 'curses +spreadsheet') will probably lead to equality undesirable results.

Also beg to differ on your using different languages in one project. It breaks away the unity and makes it so really we are all in our own little projects and prevents others who are not experienced with the particular language from participating. If we use the same language, we can also all get experience with group development (such as from CVS).

Anyhow, I can set up a temporary site with a bulliton board on it until the sourceforge project opens up (or even better a mailing list) so the moderators don't come in and kill us for the thread being too long (and then locking it).

Either that or you should submit the project ASAP to sf. Moderators are infamous for locking threads prematurly (no offence to moderators here; just the experience I've had elsewhere).

nko
06-02-2003, 08:44 PM
Alright, sounds good. I guess I agree, a unilanguage would work best. Of course, if we're working in only one language, I vote Python. Python and C++ do have bindings, though, don't they?

cfaun5, and anyone else interested, shoot me an e-mail at nko@pdx.edu , and we can get this ball rollin'!

tucolino
06-02-2003, 09:23 PM
just noticed this thread. i would love to contribute. i have a question though, if this is more of a learning experience, wouldn't it be more fruitful if it's done using c++? i mean if were here to learn some programming skills, i think c++ would be more beneficial. perhaps shifting to other languages later would be easier coming from a c++ base.

just a thought.


tuco

nko
06-02-2003, 09:26 PM
Ooo, C++ and Python, neck-and-neck! Two votes for each.

I'd still like to look in to Py-C++ bindings. That way, we could learn two languages at once, AND learn about binding languages. Also, I think it might help us think modularly (I speculate, of course, knowing nothing about how to properly learn to code).

I just got a source forge account, and am applying for terminalsuite as a project name.

smokybobo
06-02-2003, 11:30 PM
I'd be interested in this too.

As for language to use, my preference would be for ruby simply because from what I've seen, it's the cleanest language so far and very much object oriented.

http://www.ruby-lang.org

Second choice would be c++. I actually like c++ a lot, but I've never programmed anything significant in it, and I'm having a really really REALLY hard time understanding how to use makefiles with autoconf and the like.... the autobook tutorial you can get is alright, but somehow I just don't quite feel as at home reading through it as I do with my c book for instance.

http://sources.redhat.com/autobook/

Last choice in terms of preference for me would be either perl or python but only because I've never touched either.

In terms of projects, I say something along the lines of contact management with the ability to use a database backend of the user's choice (e.g. MySQL, postgresql, etc.). Really easy to do in php, or as a webapp, but would be interesting to get this as just a client program running on the console (or through whatever frontend). Or to make this more general, how about some kind of cataloguing software? And our own inefficient "database" (xml maybe?) so someone who doesn't know how to go about setting up mysql or postgresql or whatever can just install and go.

Or how about yet another shell? Only suggest it because there's a very rudimentary shell shown as an example in the autobook I linked above. And because recently, I've been playing a lot of classic sierra adventure games, and it would be a great learning experience (for me anyway) to come up with a command interpreter mixed in. What would really be awesome is to have a shell that's at least as functional as bash but with the disconnect/reconnect capabilities of screen. However, that may be a bit too advanced for the purposes of this project? I only say this because while I may have an inkling of how to write a shell, I have no experience at all at writing daemons or background processes or whatever it is screen does to achieve its functionality that so many people love, and I have no clue whatsoever in how to write such.

Depending on the language decided upon, how about a more automated way of compiling the linux kernel? I wrote my own kernel compiling bash script but it's very very messy. Plus, I would love to learn how to make core functionality and then be able to create frontends to it whether on console, or GUI, or what have you.

Midi player with proper playlist support because I don't like pmidi or playmidi (or maybe even just a frontend to any console based media player).

Actually, what would be really helpful would be a generic tutorial system and multiple choice test/exam with more layman speak than tech jargon speak and with apt like dependencies so that to view a specific tutorial you'd need to prove you've handled all necessary topics dealt with in a previous tutorial (or at least have both installed at the same time that is one can't exist without it's dependencies... hope I'm making some kind of sense here ;) )... maybe even have facilities to run a pseudo shell or what not and let users do whatever for practice, though I'm thinking more of teaching linux console in this specific instance.

An API for plugin architecture simply because I've never ever done that before.

Set top box thingy for console to run the os.

Just a few ideas off the top of my head.

nko
06-02-2003, 11:38 PM
I've posted this proposal to SourceForge:

--------

CTS-Apps is a project to make an OSS Office / Workstation suite of applications for the console. We'll be using C++ and Python, but may include other languages. The "CTS" stands for "Console / Terminal / Shell." Linux would be the main target platform, but portability is a main goal. Being that it's all console based, ncurses is about as graphic as we plan to get :).

Our goal is to make a suite of applications that can be used entirely from the console, such as a word processor, a spreadsheet program, a WYSIWYG HTML editor, a command-line scientific calculator, a graph maker, and others. Each application will be treated as a sub-project. Code will be written with the idea that people may some day wish to learn from our source in mind, and will therefor have reasonable focus on cleanliness, documentation, and organization. Ease of understandability far outweighs speed on the importance scale.

While many of these tools already have very decent implementations, our focus will be on usability and uniformity, in hopes that a sizable userbase will be attracted.

-----------


Hopefully we'll be able to move from the forum to a source forge project soon. I did mention a few specifics in this proposal, but they're pretty flexible.

I've heard good things about Ruby, but have never seen it. Maybe that'd be a good one, too. If anyone's interested in this project, please e-mail me at nko@pdx.edu :)

roamingnomad
06-03-2003, 03:48 AM
I'm interested (as shown by my previous post) but my email is down, so I'll just post again. Yes, I'm interested and want to learn Python. However, I am... at the 'I just completed a 3-day tutorial' level, so I may have to drop out if I can't keep up with the project, but I'll try. Summer break lends extra time for learning :D ! I do have previous experience, however, with MS Visual Basic.

What's ncurses? I've heard of it, don't know much...

nko
06-03-2003, 04:03 AM
I'm in about the same boat as far as experience, maybe... well, alright, probably a bit more :). ncurses is a library that allows you to do psudo-graphical interfaces on the console. Most nongraphical installers for Linux distros use ncurses at some point. If you ever used QBASIC, or pretty much any DOS text editor, you've seen ncurses in action.

roamingnomad
06-03-2003, 04:44 AM
Cool, always wanted to know how they did that.

Definately count me in, now.

mrBen
06-03-2003, 05:14 AM
I'll be interested in how you intend to do a WYSIWYG HTML editor in the console, or is it WYSIWYG for lynx/links ;)

I'll contribute some time, although I'm quite busy. But I agree with Python - love it as a language. Plus it would not be too hard to put a GUI (wxPython) wrapper round the outside once you're finished.

Plus, I've always fancied a console 'window manager' (ie having seperate programs contained within one console 'window' that you can easily swap between) if your are interested.

nko
06-03-2003, 01:26 PM
Got SourceForge approval. I've gotta be at work in an hour, but I'm off this afternoon, and will get this party started :)

nko
06-03-2003, 01:28 PM
Yeah, WYSIWYG as in Links/Lynx, and not necessarily HTML, I guess, but more like any data representation. Cuz yeah, web pages look would look funny...

cfaun5
06-03-2003, 02:17 PM
There are many ncurses widget sets availible.

For C:

CDK (don't know where that is)

For C++:

http://ocurses.sourceforge.net/

for Python:


http://pyncurses.sourceforge.net/

EDIT:

After looking on the internet I have found that CDK is lacking

OCurses is too unstable

And finally, PyNcurses isn't really a widget set and is unstable. Also the native python curses bindings look mroe full featured.

I have found something called NEWT which is a stable widget set for curses with python bindings...

EDIT TO THE EDIT:

Also SWIG (swig.org), for integrating C++ and python looks interesting.

nko
06-03-2003, 06:15 PM
Okay, the web site's cts-apps.sourceforge.net

The mailing list, which wont be activated for 6-24 hours (though I'm guessing sooner than later, given the short time it took to get project approval last night), is cts-apps-discussion@lists.sourceforge.net

Once everything's up and together, it looks like we'll be having us a regular-ol' project!

BTW, my HTML skills are somewhat better than what I've displayed so far, so don't worry, it'll pretty-up as soon as everything's rolling :)

nko
06-03-2003, 06:35 PM
So yeah, that 6-24 hour business... our list was made in about 20 minutes :) We're up and running!

cfaun5
06-04-2003, 03:11 PM
Anyone that is interested should join the sourceforge mailing list by emailing cts-apps-discussion-request@lists.sourceforge.net with subscribe in the subject line. As soon as whoever is interested joins, the sooner we can start :-)

Haunted
06-04-2003, 11:55 PM
Good luck guys! I hope your enthusiasm won't run out, as it does very often...