Overunity.com Archives

Solid States Devices => solid state devices => Topic started by: Earl on May 11, 2008, 05:12:16 AM

Title: Need C++ programmer who has time to modify source code
Post by: Earl on May 11, 2008, 05:12:16 AM
Hi All,

I need a C++ programmer who has time to modify the source code of a program.

If you could do this, the source code is located at:
http://www.shamus.ie/uploads/File/iscram.zip

The modifications I need are:

1- change the IP address field to allow entry of a host name in
addition to an IP number
or
add a second field to permit entry of a host name such as
me@dynDNS.com

2- Eliminate - or make optional the calling up of an email program

3- The source code includes voice capability, which was commented out
because the quality was bad over a modem connection.  This should not
be a problem with a broadband connection today.

The voice should be reactivated.  I don't know what codec the program
author used.  If it takes too much bandwidth, then an open source codec
such as SPEEX or iLBC could be substituted.

If you have the talent and time to do this, please let me know.

Earl
Title: Re: Need C++ programmer who has time to modify source code
Post by: orbs on May 11, 2008, 11:53:35 AM
It looks like this software hasn't been updated for almost 5 years, so it's probably a good idea to take a look at some other actively maintained application.
Title: C++ programmer needed who has time to modify source code
Post by: Earl on May 11, 2008, 12:10:45 PM
Orbs,

there is NO other actively maintained equivalent, believe me I have searched everywhere.  Cryptography is a science and an art, which is why I hand-picked this program.  A good C++ programmer should have not much trouble with commented source code to polish it up a bit.  I am hoping to find someone to bring this program up to date.  The original author has great expertise and understanding of cryptography, the person that I am looking for does not need this.

Earl
Title: Re: Need C++ programmer who has time to modify source code
Post by: spyblue on May 11, 2008, 02:33:14 PM
Hi Earl.. i?m programmer and have time to modify it. Can you contact me on e-mail or msn please ?!
My e-mail is felipe.bit@gmail.com and msn is felipexz@hotmail.com

Thank?s
Title: Re: Need C++ programmer who has time to modify source code
Post by: Earl on May 11, 2008, 04:19:29 PM
Hi Felipe,

will write an email to you soon.

Earl
Title: Re: Need C++ programmer who has time to modify source code
Post by: Dyamios on May 11, 2008, 04:52:05 PM
I've been doing a little tinkering with this. I've already disabled the pesky mail-client opening process, and am now working on the audio component.

I tested it with myself (my own IP) and it seems to work great. Appologies for the ignorance, but what's the significance of a host-name? As long as you're listening on an open port, shouldn't the external IP of the clients be fine?
Title: Re: Need C++ programmer who has time to modify source code
Post by: Dyamios on May 11, 2008, 07:06:06 PM
Fantastic!

Alright, I've got the voice working correctly now. The code was fairly butchered, and the archive you put left out a file I had to generate (containing the voice settings).

I'm improving some of the over all features, and will see about hostnames etc.

This is a pretty neat piece of software.
Title: Re: Need C++ programmer who has time to modify source code
Post by: Dyamios on May 11, 2008, 07:08:13 PM
I forgot to add, there's no use in trying to send me an email through this account, its not actually my normal account anymore, just the only one I remember the password to. Thus, I'm making another account called Ailos, so email me through there if you want to chat. Thanks!
Title: Re: Need C++ programmer who has time to modify source code
Post by: Ailos on May 11, 2008, 08:54:00 PM
Alright, I've been doing a bit more work and have got the voice working on a key-press. Now it works more like a walky-talky. The way the programmer had it set up before was to have two separate buttons to press on the GUI (one that said Talk and another that said Stop). You would talk after you hit "talk" and then hit "stop" when you're done. Then, after you hit stop, the other person would hear what you said.

I made it easier and just made it a keypress of "F1" would activate the recording mechanism. It's fairly neat.

Do you happen to know if the audio data is meant to be encrypted?
Title: Re: Need C++ programmer who has time to modify source code
Post by: Ailos on May 11, 2008, 10:13:42 PM
Alright, I figure the packet-sending procedure uses the randomized key to encrypt it real time.

Anyhow, I'm going to update the gui as much I can to make it look more aesthetic. This MFC is really throwing me for a spin though. I've never really used it, however I'm fairly apt at learning languages quickly.

Any other features you may want added?
Title: Re: Need C++ programmer who has time to modify source code
Post by: Earl on May 12, 2008, 06:00:32 AM
Quote from: Ailos on May 11, 2008, 10:13:42 PM
Alright, I figure the packet-sending procedure uses the randomized key to encrypt it real time.

Anyhow, I'm going to update the gui as much I can to make it look more aesthetic. This MFC is really throwing me for a spin though. I've never really used it, however I'm fairly apt at learning languages quickly.

Any other features you may want added?

@Ailos

wow, am I pleasantly surprised about your self-initiative and the speed at which you attacked this.

The program author is involved with cryptography as a business, but he developed this before broadband existed.  He was extremely conservative and used 16k bits of Diffie-Helman public key to exchange the symmetric key.  A symmetric key of 128 to 256 bits needs a 16k bit PK so that both have roughly the same security level.  I would suspect that not only is the text chat encrypted, but also the voice.

I have heard so many good things about the SPEEX open source codec, you might eventually consider using SPEEX compression for the audio instead of using WIN internal codec.  8kbs or 16kbs codec speed could be set in preferences.
http://speex.org/
It is robust against packet loss and believe it also has echo suppression built in.

If the program has originally only half-duplex audio, it would be nice to upgrade it to full-duplex audio with SPEEX and eliminate any push to talk buttons.

Best regards, Earl
Title: Re: Need C++ programmer who has time to modify source code
Post by: Earl on May 12, 2008, 06:11:50 AM
@Ailos

it appears to me that the pgm author used WIN internal recorder to store the voice, then play it back into the program for transmission after being encrypted.

I think it would be much better to do voice in real time and in full-duplex by using a modern codec like SPEEX.  Perhaps a preliminary version release with voice like a walkie talkie, followed by a version with full duplex voice.

Best regards, Earl
Title: Re: Need C++ programmer who has time to modify source code
Post by: Earl on May 12, 2008, 06:30:41 AM
Quote from: Dyamios on May 11, 2008, 04:52:05 PM
I've been doing a little tinkering with this. I've already disabled the pesky mail-client opening process, and am now working on the audio component.

great going - glad to hear.   pesky is a good word.  This pgm was written some years ago, and although it is a cute little program, it needs some steroids to bring it up to date.

Quote from: Dyamios on May 11, 2008, 04:52:05 PM
I tested it with myself (my own IP) and it seems to work great. Apologies for the ignorance, but what's the significance of a host-name? As long as you're listening on an open port, shouldn't the external IP of the clients be fine?

The significance of being able to use a host name is that it is easy to register a host name at various dynamic DNS services.  Most people have a dynamically-assigned public IP nr that changes every day.  By being able to use a host name such as me@dynDNS.org you will always remain callable by your research colleagues.  Most modern routers have dynDNS built-in and by any change of public IP, automatically notify the appropriate dynDNS provider service.

It would be nice to have either the internal capability - or a [comma-separated ??] text or xml?? file in the default directory - to store a 2-column list of friends where the first column is their name and the second column is their dynDNS host name.  A drop-down menu field window where a name from this list can be clicked on in order to call that friend.

Some few people have a fixed IP and that could be entered in the second column, in this case.  The program should be able to handle both IP nr.s and host names without crashing.

Best regards, Earl
Title: Re: Need C++ programmer who has time to modify source code
Post by: Ailos on May 12, 2008, 06:48:36 AM
Alrighty. Yeah, the recording itself is somewhat strange in that it only plays back on the other computer once the sender has finished talking, so there is a bit of a delayed response.

If this MFC gets too annoying for me I'll have to port it to contemporary Win32 libraries, but I think I can handle it for now.

Alright, so next thing to do after sprucing up the gui is to add SPEEX on full duplex, add a catalog system (I can encrypt this if you wish so you'd need a password to open it, thus preventing any possible exposure of individual's information) for storing names, domain/host addresses, and IPs, and then any other small fixes that need doing.

Exams today though, so I won't be able to work on it 'till this afternoon.
Title: Re: Need C++ programmer who has time to modify source code
Post by: Ailos on May 12, 2008, 08:15:01 PM
Alright, I've been doing some reading, and it looks like SPEEX doesn't really have a good development base, if any (no win32 libraries etc). I'm gonna try Vorbis instead. I figure any amount of compression is far better than PCM.

Let you know how its working later on. My last final is tomorrow, so I'll be free a little following that (but my parents are pushing me to get a job, so that may tie up some more time in a few weeks, hopefully I'll be finished by then, though).
Title: Re: Need C++ programmer who has time to modify source code
Post by: Ailos on May 12, 2008, 08:19:14 PM
Nevermind, found the development libraries. Had to compile them though. SPEEX it is!
Title: Re: Need C++ programmer who has time to modify source code
Post by: Earl on May 13, 2008, 01:43:05 PM
@Ailos

hope your exams have been going well.

Two things occurred to me.

1- There should be a configuration possibility to send the ringing signal tone to the computer's speaker if one is using a USB headset with microphone.

2-  I don't know if files are compressed before sending?  If not then they should be compressed, perhaps with a filter not to compress *.png *.gif *.jpg

Some possibilities to do this are:

A Massively Spiffy Yet Delicately Unobtrusive Compression Library
by Jean-loup Gailly and Mark Adler, source and also compiled WIN dll at:
http://www.zlib.net/
================
Zip Utils - clean, elegant, simple, C++/Win32  site says:
# Clean packaging. There's one pair of files zip.cpp, zip.h to add to your project if you want Zip. Another pair unzip.cpp, unzip.h if you want unzip (or both if you want both!). There are no additional libraries or DLLs to worry about.
# Clean API. Most other APIs around zip/unzip are terrible. This one is the best. The API is short, clean, and in a familiar Win32 style. Most other APIs wrap things up in classes, which is ugly overkill for such a small problem and always turn out to be too inflexible. Mine doesn't. See the code snippets below.
===============================
LZO
http://www.oberhumer.com/opensource/lzo/

Best regards, Earl
Title: Re: Need C++ programmer who has time to modify source code
Post by: Ailos on May 13, 2008, 03:36:11 PM
@Earl,

As far as #1 goes, it's not really a possibility to choose which hardware to send audio data to, or switch between them. The audio data handled in C, C++, and any other Win32 development platform is handled by windows. Hardware wise, windows is generally limited to using one audio interface at a time. I suppose it could theoretically be possible to use assembly to interface directly with different hardware, but it would take extensive knowledge of both assembly and the instructions used by the hardware itself (neither of which I'm really skilled with).

Number 2 is possible, though it would likely be easier to compress the folders/files prior to sending. There's multitudes of excellent, free compression tools available, like IZArc and the like. I could possibly implement this, but its somewhat of a redundancy with today's state of software. Windows XP is shipped with the capacity to both compress and uncompress .zip files, as is most distros of linux and OSX.

Just some thoughts
Title: Re: Need C++ programmer who has time to modify source code
Post by: Earl on May 13, 2008, 04:15:58 PM
ok, understand

then forget about my last post and the ZIP can be done manually before sending.

Earl