Collaborative Effort

A place to discuss the implementation and style of computer programs.

Moderators: phlip, Moderators General, Prelates

Collaborative Effort

Postby AudaxDreik » Fri Apr 20, 2007 1:28 am UTC

Hello,

First an introduction, as I don't think I've really posted much in the past. I'm Audax Dreik, a CS Major (surprise, surprise). That's about all there is of interest.

Anyways, I love programming for the sake of programming but often find myself unable to finish projects. Either I grow bored of them and come up with a new, more enticing idea which will inevitably suffer the same fate, or my ideas for the current project grow outside the realm of my own capabilities.

That being said, working in a group tends to lend me a bit more focus. Would anyone care to start up some sort of project? The summer is coming up and I'll be working a graveyard shift as a computer lab consultant, so I'll have ample amounts of time to dedicate to the cause.

Just a few points, I have a broad yet mostly shallow range of knowledge, I'm finishing my junior year if that gives any sort of indication. I have no particular ideas for projects at the moment, and it does not necessarily have to be a game. Platform and language are all up for debate.

Guess that's it, there's a lot of details missing but those can be worked out later depending on how people react. Anyone remotely interested? This topic primarily stupid? Thanks for reading.
AudaxDreik
 
Posts: 3
Joined: Wed Nov 08, 2006 5:58 am UTC

Postby necroforest » Fri Apr 20, 2007 1:54 am UTC

I'd be interested depending on what we can come up with / how involved it would be. I'm also a CS major finishing up my junior year.
User avatar
necroforest
 
Posts: 194
Joined: Tue Apr 10, 2007 3:46 pm UTC

Postby Cosmologicon » Fri Apr 20, 2007 2:25 am UTC

What projects have you started but not finished?
User avatar
Cosmologicon
 
Posts: 1806
Joined: Sat Nov 25, 2006 9:47 am UTC
Location: Cambridge MA USA

Postby FiddleMath » Fri Apr 20, 2007 6:45 am UTC

These are projects that I've considered doing, though haven't yet found the time/motivation. I generally write down the idea, and then move on. (Do not develop any of these ideas for personal profit, without getting me involved! Seriously, open-source your stuff, and don't be a horrible person.)

Task-Stack Tracker: when I'm coding, or in the middle of a lot of work, or deep in a mathematical proof, I often find that I overflow my (admittedly small) mental stack. By the notion that computers can help us think better, write a simple mental stack tracer. This is very lightweight, yes, and probably easy to code once the interface is determined. However, since this is supposed to be a tool to help you think, when your brain is already nearly fully loaded, it needs to be very easy to use. The user interface design, here, is actually the most important part.

Generalizable Game Timer: A lightweight timer program that, without requiring much attention during play, can be used as the timer for such varied games as Chess, Scrabble (with variable numbers of players), Go, Boggle, Taboo, and so forth. Lots of options, actually easy to use, and portable to everything. Laptops running any operating system, PDAs ... if you can actually get this to run on phones, total win.

Gaim from GKrellm: Make a plugin that lets you do all day-to-day IM actions from within GKrellm. Gaim and GKrellm are both highly pluggable, so I suspect this is actually quite possible.

Taboo card server/player: Taboo is one of my absolute favorite games. The only problem is that my buddies and I have played it so often that we've memorized half of the cards. What we clearly need is an easy way to generate cards (from, say, a search engine), and easy way to rank cards by how well they work when people play with them, some way to permit card submission, user accounts that track things like preferred card difficulty, how often that user has used any particular card (so you don't give it to them again, soon), and so on. I'm imagining people playing this in real life, with the "reader" sitting in front of a computer/laptop/PDA/cell phone that the rest of his team can't see, while the program times her. However, making this playable via text chat (or voice chat!) would also be cool.

Firefox extension: Meta-tabs: Seriously. Why can't I make a tab that contains other tabs in Firefox? I tend to browse along trees, and would like to be able to group my browsing accordingly.

Wikommunity: The flexibility of wiki editing, like wikipedia or everything2, but where personal identity means more. You can set totally private pages, that only you can read (and the server itself can't even read, because it doesn't keep the decryption key), you can make public pages that only you can edit. You can make groups of friends, and give viewing/editing permissions to individual friends or groups. And, of course, you can make common pages that are publicly viewable and editable. The permissions system needs to have some sane defaults; and the permissions system needs to be robust. It'd be nice to be able to store private information here (like, say, other people's phone numbers and addresses), do social networking activities, and wiki-like content efforts, all at once.

Also, a few hard projects: (;))

- Make a shell to replace Bash that has decent programming syntax. Like, write a variant of Python, or maybe just a Python library, in which you can still run programs without more than a character or two of extra syntax, and do pipes and file redirects easily.
- Write a Unix in OCAML or Haskell.
- Rework a strongly statically-typed functional language, like OCAML or Haskell, so that Lisp-like macros are possible. (I'm not actually sure it's possible, but it would be awesome.)

Or course, you could also just write a game, or submit patches to any open-source project in the world.
User avatar
FiddleMath
 
Posts: 245
Joined: Wed Oct 11, 2006 7:46 am UTC
Location: Madison, WI

Postby OmenPigeon » Fri Apr 20, 2007 7:24 am UTC

FiddleMath wrote:Firefox extension: Meta-tabs: Seriously. Why can't I make a tab that contains other tabs in Firefox? I tend to browse along trees, and would like to be able to group my browsing accordingly.


I think something like this might already exist. I was browsing a Firefox exstension board, or comments on something, or something having to do with Firefox tabs and people were talking about ways that they grouped their tabs. Maybe it was something from Firefox 1.5 that hasn't made it to 2? I was only half paying attention.

It seems like the sort of thing that would get talked about a lot, though, so if it exists I feel like I would have heard more about it than a half-remembered blog comment.

The pet project thats been rattling around in my head is a platform for writing fiction that separates the content from the structure. Like someone handed you a shoebox full of newspaper clippings instead of a bound novel. As an author it would let you create pieces of the story on logical entities called 'cards' or something similar, and provide some sort of metadata about the cards if desired. The cards could contain text and images, at the very least. As a reader it would present you with a random card to begin with, and then let you continue reading from there, either be grabbing another random card from the box, or by performing a search on the cards, based on something in the text of the card you're on. I think there would be some really nice interface solutions for that, like just double-clicking on a word or phrase would grab a card with that phrase on it, similarly with images. Authors would also be able to provide some sort of structure to the story, maybe, like with paperclips holding different clippings together. But that would be generally frowned upon, since the point isn't to construct a hypertext where the narrative has a parallel or tree or web structure, but to get rid of the structure entirely and just let the read find his way through different atomic pieces of story. (I also kind of like the idea that you might never quite know when you'd read all the cards. You might not be able to find new ones, but that doesn't guarantee that you found them all.)

And it shouldn't be in Flash. I'm not a fan of Flash.
As long as I am alive and well I will continue to feel strongly about prose style, to love the surface of the earth, and to take pleasure in scraps of useless information.
~ George Orwell
User avatar
OmenPigeon
Peddler of Gossamer Lies
 
Posts: 671
Joined: Mon Sep 25, 2006 6:08 am UTC

Postby EvanED » Fri Apr 20, 2007 3:10 pm UTC

I have a few projects in mind:

* A new shell/terminal, but with a rather different slant than FiddleMath's idea. Though... maybe the ideas could be combined? But mine sort of has as couple goals. An explicit non-goal at the moment is programmability; the work of doing this doesn't seem like the benefit is worth it until the other stuff is in place, at which point other projects would probably become more appealing. ;-) The idea would be to make the common tasks while in a shell easier. For instance, instead of just tab completion, you get a list of completions "Intellisense" style. The other bit of motivation here is that the real goal at the moment is to make this for Windows, which pre-Vista won't let you resize console windows horizontally which is really obnoxious. (Though I'm trying to keep the architecture such that it would be at least semi-easily ported. I'm thinking the part that does command handling and figuring out what possible completions are should be platform-neutral, though I'm tentatively planning to do the GUI portion in C# with Windows Forms.)

* Multiplayer minesweeper. Whoever clears the most area or marks the most mines or something like that wins. Then add 3-d. (I have no clue how to actually display all that information though...) Then add other game-enhancing things, like if you click on a bomb your first, say, three clicks, have it rerandomize; it's really obnoxious to hit one right away before you have any information at all.

* This proxy server for handling various types of e-communication (email, IM, RSS, maybe IRC, etc.). This idea is sort of my crown jewel at the moment and to my knowledge is almost unique, so I don't want to go into detail at the moment. ;-)

Rework a strongly statically-typed functional language, like OCAML or Haskell, so that Lisp-like macros are possible. (I'm not actually sure it's possible, but it would be awesome.)


Why not re-work Lisp so that it does type inference?
EvanED
 
Posts: 3765
Joined: Mon Aug 07, 2006 6:28 am UTC
Location: Madison, WI

Postby OmenPigeon » Fri Apr 20, 2007 7:59 pm UTC

EvanED wrote:* A new shell/terminal, but with a rather different slant than FiddleMath's idea. Though... maybe the ideas could be combined? But mine sort of has as couple goals. An explicit non-goal at the moment is programmability; the work of doing this doesn't seem like the benefit is worth it until the other stuff is in place, at which point other projects would probably become more appealing. ;-) The idea would be to make the common tasks while in a shell easier. For instance, instead of just tab completion, you get a list of completions "Intellisense" style.


This is only tangentially a solution to what you're talking about, but check out Enso. It's not a shell as much as a launcher program like quicksilver. But the way the project is moving it's pretty clear that the developers want it to be just as powerful as a shell, but in their paradigm.

The developer blog over there had a good post on the difficulties of autocomplete, too.

[EDIT] Making an open-source spinoff of Enso might be an interesting project. If you did I'd focus on user customisability instead of getting all the features that Enso has right now. [/EDIT]
As long as I am alive and well I will continue to feel strongly about prose style, to love the surface of the earth, and to take pleasure in scraps of useless information.
~ George Orwell
User avatar
OmenPigeon
Peddler of Gossamer Lies
 
Posts: 671
Joined: Mon Sep 25, 2006 6:08 am UTC

Postby Fernanthonies » Fri Apr 20, 2007 8:46 pm UTC

interesting idea on starting a group project. I'm about to graduate with a CS degree (2 weeks to go, huzzah!), and will be starting graduate school for game design in July, and I plan to spend the 2 months in between focusing on improving my C++ programming skills as much as possible...i just don't know what kind of projects i want to do or anything of that nature.
"Set your gearshift for the high gear of your soul!"
User avatar
Fernanthonies
 
Posts: 59
Joined: Mon Apr 09, 2007 12:30 am UTC
Location: Edmond, Oklahoma

Postby tendays » Fri Apr 20, 2007 9:37 pm UTC

FiddleMath wrote:Task-Stack Tracker: when I'm coding, or in the middle of a lot of work, or deep in a mathematical proof, I often find that I overflow my (admittedly small) mental stack. By the notion that computers can help us think better, write a simple mental stack tracer. This is very lightweight, yes, and probably easy to code once the interface is determined. However, since this is supposed to be a tool to help you think, when your brain is already nearly fully loaded, it needs to be very easy to use. The user interface design, here, is actually the most important part.


There was a sourceforge project of the month doing more or less that : http://freemind.sourceforge.net/wiki/in ... /Main_Page
I have never used or studied it but it might be what you're looking for

(For me the ascii todo lists done in emacs have been enough ... so far)
User avatar
tendays
 
Posts: 945
Joined: Sat Feb 17, 2007 6:21 pm UTC
Location: INDIA

Postby Andrew » Fri Apr 20, 2007 10:33 pm UTC

OmenPigeon wrote:The pet project thats been rattling around in my head is a platform for writing fiction that separates the content from the structure. Like someone handed you a shoebox full of newspaper clippings instead of a bound novel. As an author it would let you create pieces of the story on logical entities called 'cards' or something similar, and provide some sort of metadata about the cards if desired. The cards could contain text and images, at the very least. As a reader it would present you with a random card to begin with, and then let you continue reading from there, either be grabbing another random card from the box, or by performing a search on the cards, based on something in the text of the card you're on. I think there would be some really nice interface solutions for that, like just double-clicking on a word or phrase would grab a card with that phrase on it, similarly with images. Authors would also be able to provide some sort of structure to the story, maybe, like with paperclips holding different clippings together. But that would be generally frowned upon, since the point isn't to construct a hypertext where the narrative has a parallel or tree or web structure, but to get rid of the structure entirely and just let the read find his way through different atomic pieces of story. (I also kind of like the idea that you might never quite know when you'd read all the cards. You might not be able to find new ones, but that doesn't guarantee that you found them all.)


You could buy a David Mitchell book and some scissors.

EvanED wrote:* Multiplayer minesweeper. Whoever clears the most area or marks the most mines or something like that wins. Then add 3-d. (I have no clue how to actually display all that information though...) Then add other game-enhancing things, like if you click on a bomb your first, say, three clicks, have it rerandomize; it's really obnoxious to hit one right away before you have any information at all.

I thought about that. I liked the multiplayer Minesweeper in that version of MSN Messenger that had too many pointless bells and whistles. I made a version here, and added some AI for good measure: http://www.apathysketchpad.com/codefact ... inesweeper
I'd rather it was in a window but couldn't be bothered with all the extra hassle. Turns out, minesweeper on a hexagonal grid is shit. Who knew?

I did consider a few possible 3D versions but I couldn't think of one worth the bother.
User avatar
Andrew
 
Posts: 619
Joined: Tue Jan 02, 2007 9:59 pm UTC
Location: Manchester, UK

Postby JoshJ » Sat Apr 21, 2007 6:24 am UTC

Firefox extension: Meta-tabs: Seriously. Why can't I make a tab that contains other tabs in Firefox? I tend to browse along trees, and would like to be able to group my browsing accordingly.

This is already possible.

put this in the URL bar:

chrome://browser/content/browser.xul
JoshJ
 
Posts: 33
Joined: Wed Apr 11, 2007 5:00 pm UTC

Postby grim4593 » Sat Apr 21, 2007 7:42 am UTC

Actually, that just crashed Firefox when I did that. :!:
User avatar
grim4593
 
Posts: 115
Joined: Tue Aug 22, 2006 1:23 am UTC

Postby FiddleMath » Sat Apr 21, 2007 8:07 am UTC

JoshJ wrote:put this in the URL bar:

chrome://browser/content/browser.xul


ooh, that's actually pretty neat. But I can't get a second tab open inside that...
User avatar
FiddleMath
 
Posts: 245
Joined: Wed Oct 11, 2006 7:46 am UTC
Location: Madison, WI

Postby Andrew » Sat Apr 21, 2007 9:57 am UTC

JoshJ wrote:
Firefox extension: Meta-tabs: Seriously. Why can't I make a tab that contains other tabs in Firefox? I tend to browse along trees, and would like to be able to group my browsing accordingly.

This is already possible.

put this in the URL bar:

chrome://browser/content/browser.xul

Holy Hell, that's confusing...
User avatar
Andrew
 
Posts: 619
Joined: Tue Jan 02, 2007 9:59 pm UTC
Location: Manchester, UK

Postby cmacis » Sat Apr 21, 2007 2:05 pm UTC

Doesn't work too well. It forgets the shortcuts I have at the higher level. If I hit bookmarks then it loads the entire tab with that page. It doesn't do the warning of closing so many tabs like the full browser. Still room for you to improve it (my coding isn't good enough I think).
li te'o te'a vei pai pi'i ka'o ve'o su'i pa du li no
Mathematician is a function mapping tea onto theorems. Sadly this function is irreversible.
QED is Latin for small empty box.
Ceci n’est pas une [s]pipe[/s] signature.
User avatar
cmacis
 
Posts: 754
Joined: Wed Dec 13, 2006 5:22 pm UTC
Location: Leeds or Bradford, Thessex

Postby Ended » Sat Apr 21, 2007 2:16 pm UTC

This is cool. But yeah, lots of room for improvement. It's too confusing, and didn't close tabs when I middle-clicked them.
Generally I try to make myself do things I instinctively avoid, in case they are awesome.
-dubsola
Ended
 
Posts: 1458
Joined: Fri Apr 20, 2007 3:27 pm UTC
Location: The Tower of Flints. (Also known as: England.)

Postby der_bAUer » Sat Apr 21, 2007 4:47 pm UTC

FiddleMath wrote:Task-Stack Tracker: when I'm coding, or in the middle of a lot of work, or deep in a mathematical proof, I often find that I overflow my (admittedly small) mental stack. By the notion that computers can help us think better, write a simple mental stack tracer. This is very lightweight, yes, and probably easy to code once the interface is determined. However, since this is supposed to be a tool to help you think, when your brain is already nearly fully loaded, it needs to be very easy to use. The user interface design, here, is actually the most important part.


I have something similar in mind at the moment. Basically, some program which logs various user activity (opening office docs, folders, etc) and assigns those logged actions to a "current task". When you are interrupted (phone, coworker, whatever), you would click "New Task" and everything you'd do would get logged to a new task. After the interruption, you could have a glance at what you were working at; I can also imagine some window-managing features, such as "close every window related to this task".

For this program, I am still trying to implement a Windows Shell Hook in Python for the logging facility, but unfortunately no one in this forum or in de.comp.lang.python seems to know how to do this...
der_bAUer
 
Posts: 74
Joined: Wed Nov 01, 2006 9:55 am UTC

Postby davean » Sat Apr 21, 2007 4:53 pm UTC

FiddleMath wrote:- Write a Unix in OCAML or Haskell.


Being done: Desert Spring-Time.
User avatar
davean
Site Ninja
 
Posts: 2411
Joined: Sat Apr 08, 2006 7:50 am UTC

Postby iw » Tue Apr 24, 2007 1:47 am UTC

OmenPigeon wrote:The pet project thats been rattling around in my head is a platform for writing fiction that separates the content from the structure. Like someone handed you a shoebox full of newspaper clippings instead of a bound novel. As an author it would let you create pieces of the story on logical entities called 'cards' or something similar, and provide some sort of metadata about the cards if desired. The cards could contain text and images, at the very least. As a reader it would present you with a random card to begin with, and then let you continue reading from there, either be grabbing another random card from the box, or by performing a search on the cards, based on something in the text of the card you're on. I think there would be some really nice interface solutions for that, like just double-clicking on a word or phrase would grab a card with that phrase on it, similarly with images. Authors would also be able to provide some sort of structure to the story, maybe, like with paperclips holding different clippings together. But that would be generally frowned upon, since the point isn't to construct a hypertext where the narrative has a parallel or tree or web structure, but to get rid of the structure entirely and just let the read find his way through different atomic pieces of story. (I also kind of like the idea that you might never quite know when you'd read all the cards. You might not be able to find new ones, but that doesn't guarantee that you found them all.)

This sounds cool. A friend of mine wrote a story that he distributed as author's notes in random order in a box. The idea was to blur the line between writing about a book and writing the book. It worked out pretty well, too.
iw
 
Posts: 150
Joined: Tue Jan 30, 2007 3:58 am UTC

Postby bitwiseshiftleft » Tue Apr 24, 2007 6:27 am UTC

My current pet project is a system for making real-time websites. Basically, it's a webserver and an XML database with reactive semantics. You have some XML file in the database (which describes the site's "content"), and you can run XPath, XQuery and XSLT on it to get the the site's "presentation" (an XHTML file). Then the database arranges that whenever the content changes, the presentation gets recomputed, and the webserver sends off the changes to clients with the magic of AJAX.

This would come along with with a Javascript-based editor, which might be something really simple, or might be based on TinyMCE or FCKEdit.

This means that to write a collaboration website, you need to write:
  • The XQuery or XSLT for the presentation.
  • Any extra CSS and images for the site design.
  • Any modifications you need to the Javascript editor.
  • A script to validate input, probably just a combination of a login requirement and an XML schema.


The current development version lets you write a chat website in a couple hundred lines or so (how you measure it depends on how much of the stuff for the chat website ends up being reusable).
User avatar
bitwiseshiftleft
 
Posts: 287
Joined: Tue Jan 09, 2007 9:07 am UTC
Location: Stanford


Return to Coding

Who is online

Users browsing this forum: Slageammalymn and 6 guests