Page 1 of 2 [ 31 posts ]  Go to page 1, 2  Next

Ichinin
Veteran
Veteran

User avatar

Joined: 3 Apr 2009
Gender: Male
Posts: 3,653
Location: A cold place with lots of blondes.

25 Jun 2016, 3:57 am

Show and tell!

Any particular programming projects you've made that you like, post it here and tell us a bit about it and why you like it.

I'll go first:

* Back in 1998, i wrote a security scanner. I tried the commercial scanner and i thought that it sucked. I wrote my own that checked patch availability and populated a treeview of different categories of vulnerabilities and could print out a report with what patches and settings to apply (patching wasn't automatic back then).

* In 2004 i wrote Procwall, a "process firewall" that complemented other security software. It checked for new processes, paused them, checked a digital signature and if the base process module (the executable) matched the signature, the program was allowed to run. It had auto learning feature that profiled the system automatically for the user and a game mode that killed any new processes that started while it was running so games wouldn't be subjected to clientside lag. There are similar programs out there, but mine is the most user friendly. Functionality like it now exists in Windows, in fact Microsoft has added it twice, probably because they forgot that they added it in the first place :roll:

* In 2006 while i was working as a teacher, i showed decompilers to my students and while i was doing that i wrote a tiny program to show that you could subvert or crash the decompiler just to screw with the reverse engineer :)

* In early 2015 i wrote Gibberish. It's a password generator/manager that use local entropy and one (or more) master passphrases to generate different subsets or groups of passwords. It can easily generate new and STRONG passwords by clicking a button and it was designed to actually be useable by people and have a password/management capability, unlike similar password generators that were horrible (like being on phones etc). It can also generated shorter (weaker) passwords or remove special characters if the website in question cannot use them. It applies dynamic injection of entropy so each password is generated with a different set of rounds in the iterative hashing process (SHA 256), and a localseed that makes each installation of it unique. That causes precalculated hashtables to be useless, the only way to attack it is to use a local keylogger. My father died during the conceptualisation and the project was put on hold for almost a year, but eventually i wrote it and it came out just fine.

Currently i have some new ideas involving games, live network traffic and data visualization, but those will have to wait for a while because i'm going through yet another crap period in my life.


_________________
"It is far better to grasp the Universe as it really is than to persist in delusion, however satisfying and reassuring" (Carl Sagan)


wbport
Sea Gull
Sea Gull

User avatar

Joined: 16 Sep 2012
Gender: Male
Posts: 220

25 Jun 2016, 1:32 pm

I once had to write a subprogram in assembly to calculate the yield to maturity of long term bonds. The system we had crashed when zero coupon bonds were first issued and it tried to divide by interest rate. Oops! :?

More recently I have created webpages (driven by JavaScript) to create round robin pairings on demand, solve the solitaire peg puzzle at Cracker barrel, calculate tax withholdings (last seven years), and calculate the payment and schedule of a loan. Various other questions have interested me over the years that I had webpages to solve.

My most recent was a scoreboard for a trivia game. The one time I played as a part of a team, we didn't know who won until a number of minutes after the 4th round was over. I've also written a couple dozen webpages and scripts to support a specific music notation system.



saxgeek
Veteran
Veteran

Joined: 18 Jul 2015
Age: 28
Gender: Male
Posts: 730

26 Jun 2016, 10:40 am

I'm currently writing a Minecraft style game in C.
If you want to check it out, here's a link: https://www.dropbox.com/sh/k7g088ejyk40 ... 6.zip?dl=0
The controls and everything are explained in the README file. I might release the source code in the future once it becomes more complete.



Fnord
Veteran
Veteran

User avatar

Joined: 6 May 2008
Age: 67
Gender: Male
Posts: 59,818
Location: Stendec

26 Jun 2016, 10:53 am

My Favorites, so far:

A satellite-tracking and communications suite, complete with RSA encryption, VOIP, and user location and identification.

An OCR app that runs concurrent with streaming video, such as from a mobile camera mounted at license-plate level.

A Z80-based call blocker for landline telephones. It includes both "block" and "safe" lists that use wildcard characters. For instance, it can be programmed to block all "714???????" numbers, thus blocking most of Los Angeles from calling me.


_________________
 
No love for Hamas, Hezbollah, Iranian Leadership, Islamic Jihad, other Islamic terrorist groups, OR their supporters and sympathizers.


Ichinin
Veteran
Veteran

User avatar

Joined: 3 Apr 2009
Gender: Male
Posts: 3,653
Location: A cold place with lots of blondes.

26 Jun 2016, 12:41 pm

Fnord wrote:
A Z80-based call blocker for landline telephones. It includes both "block" and "safe" lists that use wildcard characters. For instance, it can be programmed to block all "714???????" numbers, thus blocking most of Los Angeles from calling me.


My parents would have loved that during the "microsoft" scammers that called from the middle east. Morons used to call in from satellite connections at any time and wanted to install software on moms Pentium 133 that didn't even have internet(!)


_________________
"It is far better to grasp the Universe as it really is than to persist in delusion, however satisfying and reassuring" (Carl Sagan)


JJabb
Blue Jay
Blue Jay

User avatar

Joined: 11 Feb 2013
Gender: Male
Posts: 75

27 Jun 2016, 3:29 pm

It is definitely nothing fancy since I am in the middle of teaching myself Python, but I wrote a text version of Cthulhu Dice that can be run in a terminal or using IDLE. It's nothing huge or practical, but I am proud of it. I did it more to learn how to code functions.

If anyone is interested in the code you can PM me. It's a pretty decent boredom breaker when at work. lol

I am thinking about coding a baseball game that is text based. More so I can teach myself how to use Classes and Object Oriented programming.


_________________
Let me tell you about the Proto Culture
If you don't know the culture, here's the whole structure...


marshall
Veteran
Veteran

User avatar

Joined: 14 Apr 2007
Gender: Male
Posts: 10,752
Location: Turkey

29 Jun 2016, 11:12 am

I wrote a large piece of software in Java that draws and calculates all kinds of stuff related to the Mandelbrot Set and Julia Sets. The code files alone take up a 1mb of disk space. Lots of code.



Kurgan
Veteran
Veteran

User avatar

Joined: 6 Apr 2012
Age: 35
Gender: Male
Posts: 4,132
Location: Scandinavia

30 Jun 2016, 10:52 am

I've written a classification tool using k-NN and a self-designed fuzzy (locality-sensitive) hashing scheme. It's four times faster than Spamsum and 40% faster than Nilsimsa hash, although it does not have any security properties whatsoever. Recall and accuracy is very good.


_________________
“He who controls the spice controls the universe.”


Ichinin
Veteran
Veteran

User avatar

Joined: 3 Apr 2009
Gender: Male
Posts: 3,653
Location: A cold place with lots of blondes.

30 Jun 2016, 3:23 pm

Some pretty good projects some of you people have made. Thanks for all of you sharing :)

Kurgan wrote:
I've written a classification tool using k-NN and a self-designed fuzzy (locality-sensitive) hashing scheme. It's four times faster than Spamsum and 40% faster than Nilsimsa hash, although it does not have any security properties whatsoever. Recall and accuracy is very good.


Have you written any documents or papers about the fuzzy hash? Would it be possible to get to look at it? (Document or source) I've dabbled with something like that because of a problem i found in Spamsum and i'd like to see if yours solve that problem.


_________________
"It is far better to grasp the Universe as it really is than to persist in delusion, however satisfying and reassuring" (Carl Sagan)


Kurgan
Veteran
Veteran

User avatar

Joined: 6 Apr 2012
Age: 35
Gender: Male
Posts: 4,132
Location: Scandinavia

01 Jul 2016, 8:38 am

Ichinin wrote:
Some pretty good projects some of you people have made. Thanks for all of you sharing :)

Kurgan wrote:
I've written a classification tool using k-NN and a self-designed fuzzy (locality-sensitive) hashing scheme. It's four times faster than Spamsum and 40% faster than Nilsimsa hash, although it does not have any security properties whatsoever. Recall and accuracy is very good.


Have you written any documents or papers about the fuzzy hash? Would it be possible to get to look at it? (Document or source) I've dabbled with something like that because of a problem i found in Spamsum and i'd like to see if yours solve that problem.


I can send you my master's thesis if the grade turns out well. Note that it does not have any security properties, and is just a text classification tool. It used Mersenne primes (since it hashes byte-by-byte, collision risks per byte will always be 1/64, regardless of algorithm) coupled with CRC-64 and a hardcoded lookup table based on the ISO polynomial (any polynomial can be used).

If I'd started it today instead of January, I might have chosen to make it more similar to Nilsimsa hash, though. Spamsum is robust, but it isn't exactly fast.


_________________
“He who controls the spice controls the universe.”


Ichinin
Veteran
Veteran

User avatar

Joined: 3 Apr 2009
Gender: Male
Posts: 3,653
Location: A cold place with lots of blondes.

01 Jul 2016, 5:09 pm

Kurgan wrote:
I can send you my master's thesis if the grade turns out well. Note that it does not have any security properties, and is just a text classification tool. It used Mersenne primes (since it hashes byte-by-byte, collision risks per byte will always be 1/64, regardless of algorithm) coupled with CRC-64 and a hardcoded lookup table based on the ISO polynomial (any polynomial can be used).

If I'd started it today instead of January, I might have chosen to make it more similar to Nilsimsa hash, though. Spamsum is robust, but it isn't exactly fast.


Would be an interesting read indeed. Can post a link to it here or PM the link if you want anonymity.


_________________
"It is far better to grasp the Universe as it really is than to persist in delusion, however satisfying and reassuring" (Carl Sagan)


Kurgan
Veteran
Veteran

User avatar

Joined: 6 Apr 2012
Age: 35
Gender: Male
Posts: 4,132
Location: Scandinavia

15 Jul 2016, 3:32 pm

Ichinin wrote:
Kurgan wrote:
I can send you my master's thesis if the grade turns out well. Note that it does not have any security properties, and is just a text classification tool. It used Mersenne primes (since it hashes byte-by-byte, collision risks per byte will always be 1/64, regardless of algorithm) coupled with CRC-64 and a hardcoded lookup table based on the ISO polynomial (any polynomial can be used).

If I'd started it today instead of January, I might have chosen to make it more similar to Nilsimsa hash, though. Spamsum is robust, but it isn't exactly fast.


Would be an interesting read indeed. Can post a link to it here or PM the link if you want anonymity.


Sorry about the delay; I haven't been active here in a while. :) The thesis will be available soon (the second half deals with Merkle Trees and using these to detect where changes happened).

The trick in the algorithm is to use a rolling hash to find cut points (like in Rabin-Karp and Spamsum, but with a different resynchronization mechanism), then hash everything between these two cut points using a Mersenne Prime based internal hash function. In my case, CRC-64 with a lookup table based on the ISO-3309 polynomial is used (security doesn't matter here) for a rolling hash.

Let c be an input character from the input array and h be the output from the CRC-64. Now set h1 equal to h AND p >> b (where p is a large mersenne prime, and b is the bit size of this Mersenne prime). Now return h1 XOR the inverse of c. This return value ANDed with 63 becomes the index to be used for the RFC 4648 alphabet. It works with base 64, but I'm not sure if it'll work with base 85 or base 91.


_________________
“He who controls the spice controls the universe.”


Byet
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 30 Apr 2016
Gender: Male
Posts: 25

01 Sep 2016, 11:20 am

I am not much of a coding guy, but I like some web design. I am working on some nice websites which I create on Wordpress :)



r3wt
Emu Egg
Emu Egg

Joined: 3 Sep 2016
Age: 34
Gender: Male
Posts: 6

06 Sep 2016, 8:07 pm

Kurgan wrote:
Ichinin wrote:
Kurgan wrote:
I can send you my master's thesis if the grade turns out well. Note that it does not have any security properties, and is just a text classification tool. It used Mersenne primes (since it hashes byte-by-byte, collision risks per byte will always be 1/64, regardless of algorithm) coupled with CRC-64 and a hardcoded lookup table based on the ISO polynomial (any polynomial can be used).

If I'd started it today instead of January, I might have chosen to make it more similar to Nilsimsa hash, though. Spamsum is robust, but it isn't exactly fast.


Would be an interesting read indeed. Can post a link to it here or PM the link if you want anonymity.


Sorry about the delay; I haven't been active here in a while. :) The thesis will be available soon (the second half deals with Merkle Trees and using these to detect where changes happened).

The trick in the algorithm is to use a rolling hash to find cut points (like in Rabin-Karp and Spamsum, but with a different resynchronization mechanism), then hash everything between these two cut points using a Mersenne Prime based internal hash function. In my case, CRC-64 with a lookup table based on the ISO-3309 polynomial is used (security doesn't matter here) for a rolling hash.

Let c be an input character from the input array and h be the output from the CRC-64. Now set h1 equal to h AND p >> b (where p is a large mersenne prime, and b is the bit size of this Mersenne prime). Now return h1 XOR the inverse of c. This return value ANDed with 63 becomes the index to be used for the RFC 4648 alphabet. It works with base 64, but I'm not sure if it'll work with base 85 or base 91.
I would like to read the paper as well.



saxgeek
Veteran
Veteran

Joined: 18 Jul 2015
Age: 28
Gender: Male
Posts: 730

12 Oct 2016, 12:13 am

Right now, I'm working on a project to decompile and reverse engineer Pokemon Ruby and Sapphire. http://github.com/pret/pokeruby Since the Nintendo SDK has been leaked, we know which version of GCC was used to compile the game, so we are able to write C code that compiles exactly the same as the original rom. It's very interesting.



klausnrooster
Snowy Owl
Snowy Owl

User avatar

Joined: 7 Jan 2012
Age: 60
Gender: Male
Posts: 144
Location: Not my favorite place, I can tell you that.

02 Nov 2016, 8:33 pm

Nothing as fancy as previous posters. A set of functions for the command line that take input and write or retrieve data from a SQLite database. Originally to practice implementing tagging, the use of db triggers, and wrapping SQLite functionality generally; it became my go-to note-taking app. I've been using it for years as my reliable memory and journal. Implemented in TCL, then Python (2.7 and later tweaked for 3.5), and REBOL. On Linux it changes font colors for better readability. Works on Windows but no font color manipulation. I carry it all around on a USB stick everywhere I go.