H&H Development Stuff

General discussion and socializing.

H&H Development Stuff

Postby Ford » Sun Aug 16, 2009 3:42 am

What stuff do you use in the development of H&H?

-do you use a java server in addition to the java client?
-what external libraries do you use for graphics and anything else?
-what do you use as a database?
-do you use an IDE for development?
-anything else?
User avatar
Ford
 
Posts: 44
Joined: Mon Aug 10, 2009 12:57 am

Re: H&H Development Stuff

Postby loftar » Mon Aug 17, 2009 2:03 am

Ford wrote:-do you use a java server in addition to the java client?

Nope, it's written in C. [Though I have considered rewriting it in Lisp. :)]
Ford wrote:-what external libraries do you use for graphics and anything else?

Graphics? Are you speaking of the client? In that case, it's just OpenGL. The server only uses gcrypt for its SHA256 implementation and zlib for map compression.
Ford wrote:-what do you use as a database?

Mostly nothing. The only database I use the filesystem; and gdbm for saving of account and character information, but that could easily be replaced with any other key/value store.
Ford wrote:-do you use an IDE for development?

Hehe... That's a question that I could easily turn into a flamewar. :)

Let's just say that; no, I don't feel like handicapping myself when programming, so I simply use a text editor. Emacs, to be more precise.
Ford wrote:-anything else?

Why, yes; I do use a rather uncommonly used feature of GNU C, namely its nested functions which provide lexical closure over variables. They are especially convenient when combined with the ucontext functions of libc, enabling me to write coroutine-like functions sharing stack-local variables with nested callback functions which can be called from outside the routine's own ucontext and wake it up.
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
loftar
 
Posts: 9045
Joined: Fri Apr 03, 2009 7:05 am

Re: H&H Development Stuff

Postby jorb » Mon Aug 17, 2009 2:16 am

loftar wrote:Why, yes; I do use a rather uncommonly used feature of GNU C, namely its nested functions which provide lexical closure over variables. They are especially convenient when combined with the ucontext functions of libc, enabling me to write coroutine-like functions sharing stack-local variables with nested callback functions which can be called from outside the routine's own ucontext and wake it up.


... which, incidentally, is why he wears a Wizard's Hat.
"The psychological trials of dwellers in the last times will be equal to the physical trials of the martyrs. In order to face these trials we must be living in a different world."

-- Hieromonk Seraphim Rose
User avatar
jorb
 
Posts: 18436
Joined: Fri Apr 03, 2009 7:07 am
Location: Here, there and everywhere.

Re: H&H Development Stuff

Postby skrylar » Mon Aug 17, 2009 2:40 am

Loftar wrote:
Ford wrote:-what do you use as a database?

Mostly nothing. The only database I use the filesystem; and gdbm for saving of account and character information, but that could easily be replaced with any other key/value store.


Stop doing that, use TokyoCabinet. It runs on linux, has faster performance than gdbm and is supposed to have better data safety. :P

Loftar wrote:
Ford wrote:-do you use an IDE for development?

Hehe... That's a question that I could easily turn into a flamewar. :)

Let's just say that; no, I don't feel like handicapping myself when programming, so I simply use a text editor. Emacs, to be more precise.


Lies, everyone knows that the only thing emacs is missing is the text editing component... which could be because the developers pinky's broke late in the development cycle ;)

Loftar wrote:
Ford wrote:-anything else?

Why, yes; I do use a rather uncommonly used feature of GNU C, namely its nested functions which provide lexical closure over variables. They are especially convenient when combined with the ucontext functions of libc, enabling me to write coroutine-like functions sharing stack-local variables with nested callback functions which can be called from outside the routine's own ucontext and wake it up.


Any particular reason you aren't using an existing co-routine library?

:wq
The most dapper fish you've ever seen.
And so he did say he was riding a dolphin, and that He was splashing water upon thee. --Chapter 1, Verse 2; Codex of Boats
User avatar
skrylar
 
Posts: 33
Joined: Wed Jul 15, 2009 10:56 am

Re: H&H Development Stuff

Postby loftar » Mon Aug 17, 2009 3:14 am

skrylar wrote:Stop doing that, use TokyoCabinet. It runs on linux, has faster performance than gdbm and is supposed to have better data safety. :P

I hadn't heard of that before, so I checked it out. Here are my results:
Code: Select all
$ nm -D /usr/lib/libtokyocabinet.so.3 | grep T | wc
    367    1101    8354
$ nm -D /usr/lib/libgdbm.so.3 | grep T | wc
     28      84     678

Consequently, gdbm wins. :)

skrylar wrote:Lies, everyone knows that the only thing emacs is missing is the text editing component...

On the other hand, it has Lisp, so it doesn't need that. ;)

skrylar wrote:Any particular reason you aren't using an existing co-routine library?

Well, I find that using any external library is, 90% of the time, more work than writing one myself anyway (since it includes the time and work necessary to 1) find a library, 2) learn its API, 3) work out the best and/or intended way of using it, 4) learn it well enough to be able to debug problems related to it, 5) keeping up with bugs and updates in it, 6) making sure it's available everywhere I want to run the program I'm writing, and then a ton of other unforeseen and often unforeseeable issues). Seeing how my coroutine "library" is 170 lines of C code (including a number of convenience functions), it seems like a non-issue.
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
loftar
 
Posts: 9045
Joined: Fri Apr 03, 2009 7:05 am

Re: H&H Development Stuff

Postby Humps » Mon Aug 17, 2009 3:33 am

I UNDERSTAND EVERYTHING IN THIS THREAD AND LET ME TELL YOU SOME OF IT IS VERY INTERESTING OF THAT FACT I AM SURE.
Humps
 
Posts: 50
Joined: Mon Jul 13, 2009 9:09 pm

Re: H&H Development Stuff

Postby ape » Mon Aug 17, 2009 4:33 am

loftar wrote:
skrylar wrote:Stop doing that, use TokyoCabinet

I hadn't heard of that before, so I checked it out. Here are my results:
Code: Select all
$ wc

Consequently, gdbm wins. :)


http://tokyocabinet.sourceforge.net/benchmark.pdf
gdbm loses.

http://localmemcache.rubyforge.org is probably even better than both.
User avatar
ape
 
Posts: 4
Joined: Wed Jul 22, 2009 4:19 am

Re: H&H Development Stuff

Postby theTrav » Mon Aug 17, 2009 4:45 am

Loftar perhaps values an order of magnitude in third party library simplicity over an order of magnitude improvement in read time and two orders in write time?

What's TC's memory usage like in those bench marks?
User avatar
theTrav
 
Posts: 3464
Joined: Fri May 29, 2009 11:25 pm

Re: H&H Development Stuff

Postby skrylar » Mon Aug 17, 2009 4:54 am

loftar wrote:
skrylar wrote:Stop doing that, use TokyoCabinet. It runs on linux, has faster performance than gdbm and is supposed to have better data safety. :P

I hadn't heard of that before, so I checked it out. Here are my results:
Code: Select all
$ nm -D /usr/lib/libtokyocabinet.so.3 | grep T | wc
    367    1101    8354
$ nm -D /usr/lib/libgdbm.so.3 | grep T | wc
     28      84     678

Consequently, gdbm wins. :)


Image
The most dapper fish you've ever seen.
And so he did say he was riding a dolphin, and that He was splashing water upon thee. --Chapter 1, Verse 2; Codex of Boats
User avatar
skrylar
 
Posts: 33
Joined: Wed Jul 15, 2009 10:56 am

Re: H&H Development Stuff

Postby theTrav » Mon Aug 17, 2009 6:15 am

skrylar wrote:-img-

Ahh, memories 8-)
User avatar
theTrav
 
Posts: 3464
Joined: Fri May 29, 2009 11:25 pm

Next

Return to The Inn of Brodgar

Who is online

Users browsing this forum: Claude [Bot] and 2 guests