*** pinc has joined the channel | 2009-09-03 05:24:26 |
<Shelwien> | apparently crc32 is really quite good as a sliding hash %) | 2009-09-03 05:57:29 |
*** pinc has left the channel | 2009-09-03 06:49:40 |
<osman> | with you mentioned prefix-suffix way? | 2009-09-03 07:18:37 |
| btw, i really become to like linux ;) | 2009-09-03 07:19:29 |
| without any hand configuration, i've successfully upgraded to next ubuntu major version. all of things have been done via update manager ;) | 2009-09-03 07:20:17 |
| now trying to install g++ | 2009-09-03 07:20:27 |
<Shelwien> | not sure what you mean by "prefix-suffix" | 2009-09-03 07:21:37 |
| but i found a way to incrementally calculate | 2009-09-03 07:21:50 |
| crc32( c[1]..c[256] ) from crc32( c[0]..c[255] ) ;) | 2009-09-03 07:22:14 |
<osman> | yay! i've runned my first "Hello World!" application in linux :) | 2009-09-03 07:25:28 |
| how you "slide" crc? | 2009-09-03 07:26:11 |
<Shelwien> | its simple ;) | 2009-09-03 07:29:51 |
| basically we need to precalculate crc32( c[0]..c[255] ) ^ crc32( c[1]..c[256] ) | 2009-09-03 07:30:17 |
| and appears that it doesn't depend on c[1]..c[256] ;) | 2009-09-03 07:30:45 |
| * crc32( c[0]..c[256] ) ^ crc32( c[1]..c[256] ) | 2009-09-03 07:31:18 |
<osman> | so, you have a table crc32[x]^crc32[y] right? | 2009-09-03 07:33:19 |
| x, y in range of 0..255 | 2009-09-03 07:33:27 |
<Shelwien> | no | 2009-09-03 07:33:33 |
| i have a usual crctab[256] | 2009-09-03 07:33:47 |
| and incrtab[256] | 2009-09-03 07:33:51 |
| and that's all | 2009-09-03 07:33:53 |
*** pinc has joined the channel | 2009-09-03 08:48:04 |
*** toffer has joined the channel | 2009-09-03 08:49:41 |
<toffer> | hi | 2009-09-03 08:52:58 |
<Shelwien> | hi | 2009-09-03 08:53:05 |
| i made my sliding crc32 ;) | 2009-09-03 08:53:14 |
<toffer> | something like (sum^=old_ch)^=new_ch for a sliding win. where old_ch is removed and new_ch inserted? | 2009-09-03 08:54:13 |
<Shelwien> | yeah, but crc32 | 2009-09-03 08:54:27 |
<osman> | hi toffer. i've finally installed g++ on my ubuntu and successfully compiled "hello world!" :) | 2009-09-03 08:57:19 |
<toffer> | and implemented via? | 2009-09-03 08:57:23 |
| hi | 2009-09-03 08:57:26 |
<Shelwien> | well, there's an additional lookup | 2009-09-03 08:57:45 |
| crc32 ^ incr[old_char] | 2009-09-03 08:58:00 |
<toffer> | echo '#include<cstdio>' > h.cpp && echo 'int main() { printf("Hello!\n"); return 0; }' >> h.cpp && gcc -o hello h.cpp && ./hello :) | 2009-09-03 08:59:29 |
| missed -lstdc++ :) | 2009-09-03 08:59:51 |
<osman> | yep. more or less :) | 2009-09-03 08:59:54 |
| what does the meaning lstdc++ ? | 2009-09-03 09:00:04 |
<toffer> | you need to link against the std. c++ rtl | 2009-09-03 09:00:22 |
<osman> | it does not change used libraries. i mean dynamically loaded | 2009-09-03 09:00:26 |
| ldd hello same by using it or not using | 2009-09-03 09:00:48 |
<toffer> | guess your gcc identifies the source via extensio and automatically adds it | 2009-09-03 09:01:12 |
| mine doesn`t | 2009-09-03 09:01:16 |
<osman> | dunno | 2009-09-03 09:01:39 |
| it must 4.1 or 4.2 dunno exactly | 2009-09-03 09:01:59 |
| *must be | 2009-09-03 09:02:04 |
<toffer> | tmp/ccwsEasl.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status | 2009-09-03 09:02:05 |
<osman> | ? | 2009-09-03 09:02:19 |
<toffer> | it's not just about the version | 2009-09-03 09:02:20 |
| often distros apply their own patches | 2009-09-03 09:02:31 |
| did you compile it as .c or .cpp | 2009-09-03 09:02:48 |
<osman> | i've downloaded from synaptic - it's own package manager | 2009-09-03 09:02:53 |
| cpp | 2009-09-03 09:02:59 |
<toffer> | did you compile using gcc or g++ | 2009-09-03 09:03:13 |
<osman> | g++ test.cpp -o test | 2009-09-03 09:03:23 |
| exact command line | 2009-09-03 09:03:29 |
<toffer> | well no wonder - g++ is a stub to gcc | 2009-09-03 09:03:52 |
| why don't you use apt-get, etc. | 2009-09-03 09:04:20 |
<osman> | i tried. but all repositories seems broken. i've added several one which i've found. at the end became more problematic. then i've tried to upgrade whole system. and i did it until now. then tried to install g++ from synaptic. it worked now | 2009-09-03 09:05:46 |
| synaptic exactly does same thing apt-get etc | 2009-09-03 09:06:31 |
| just with clicks ;) | 2009-09-03 09:06:44 |
| ~641 mib or more package downloaded for upgrading ;) | 2009-09-03 09:07:19 |
<toffer> | i guess synaptic just uses it anyway | 2009-09-03 09:07:42 |
<osman> | at a point, it even can't build dependency tree and at a time even cache completely broken %) | 2009-09-03 09:08:28 |
| so, upgrade were really needed | 2009-09-03 09:08:38 |
<toffer> | how are you going to use your crc ? | 2009-09-03 09:08:45 |
<osman> | i guess he uses xor basic property :) | 2009-09-03 09:09:03 |
| a xor b = c -> c xor b = a :) | 2009-09-03 09:09:18 |
<toffer> | i don't know what you did there to break that | 2009-09-03 09:09:20 |
| i meant how to apply | 2009-09-03 09:09:33 |
<osman> | dunno really :) but now works. so no wonder :) | 2009-09-03 09:09:46 |
| @shelwien you initialize as incr[i] = crc32[i] ^ i; ? | 2009-09-03 09:10:34 |
| then update (crc32[c] ^ incr[c]) ^ c | 2009-09-03 09:11:38 |
| err... | 2009-09-03 09:11:44 |
| (crc32[oldC] ^ incr[oldC]) ^ c or whatever like that | 2009-09-03 09:12:05 |
<Shelwien> | kinda, not its a little more complicted ;) | 2009-09-03 09:12:07 |
| *complicated | 2009-09-03 09:13:20 |
<toffer> | anything else that happened today? | 2009-09-03 09:58:33 |
<Shelwien> | a lot, but nothing technical, i guess ;) | 2009-09-03 09:59:20 |
<toffer> | ^^ | 2009-09-03 10:01:34 |
*** Simon|B2 has joined the channel | 2009-09-03 10:27:25 |
<Shelwien> | btw, as to how to apply | 2009-09-03 12:01:27 |
| i written whole backup2.txt about that ;) | 2009-09-03 12:01:49 |
| to implement things like rep or rsync | 2009-09-03 12:02:52 |
| sliding hashes are necessary | 2009-09-03 12:03:00 |
| and crc32 is much more random than usual sliding hashes | 2009-09-03 12:03:48 |
| http://en.wikipedia.org/wiki/Rolling_hash | 2009-09-03 12:05:47 |
| but i don't see a sliding crc32 implementation anywhere | 2009-09-03 12:08:46 |
| so it should be cool ;) | 2009-09-03 12:08:49 |
<osman> | crc is cyclic polinom, righT? | 2009-09-03 13:28:27 |
<toffer> | it's the reminder of a polynom division afaik | 2009-09-03 13:40:35 |
*** Shelwien has left the channel | 2009-09-03 14:30:32 |
*** pinc has left the channel | 2009-09-03 16:09:07 |
*** Simon|B2 has left the channel | 2009-09-03 16:41:56 |
<osman> | @toffer: for linux environment, do you use codeblocks? | 2009-09-03 17:22:40 |
<toffer> | i use codeblocks everywhere - since it's portable | 2009-09-03 17:47:02 |
<osman> | ok. thanks | 2009-09-03 17:49:04 |
*** toffer has left the channel | 2009-09-03 17:50:28 |
*** pinc has joined the channel | 2009-09-03 17:54:25 |
*** Shelwien has joined the channel | 2009-09-03 19:09:43 |
*** toffer has joined the channel | 2009-09-03 19:41:00 |
<toffer> | hi again | 2009-09-03 19:41:06 |
<Skymmer> | Hi! | 2009-09-03 19:41:24 |
| I'm finished | 2009-09-03 19:41:32 |
| About 52 hours and 283 iters :) | 2009-09-03 19:41:56 |
| Wait a minute. I'll upload results. | 2009-09-03 19:42:20 |
| http://skymmer.narod.ru/misc/e8_m1_04-1_skymmer.7z | 2009-09-03 19:45:13 |
<toffer> | looks like further tuning isn't worth it (i mean retuning on e8) | 2009-09-03 19:48:04 |
| it's just 0.02% | 2009-09-03 19:48:11 |
| for earlier versions it was more significant | 2009-09-03 19:48:28 |
| thanks for testing | 2009-09-03 19:48:36 |
<Skymmer> | You're welcome :) | 2009-09-03 19:49:19 |
| Hope it will help | 2009-09-03 19:49:45 |
<toffer> | yep | 2009-09-03 19:54:42 |
| do you have any further suggestions regarding the interface? | 2009-09-03 19:58:07 |
<Skymmer> | Well, maybe percentage progress indicator if its possible. And to change result message from: 2474952/10000000 to: compressed 10000000 to 2474952 | 2009-09-03 20:02:45 |
*** Skymmer has left the channel | 2009-09-03 20:08:27 |
<toffer> | i discarded that | 2009-09-03 20:11:15 |
| since it breaks streaming | 2009-09-03 20:11:23 |
*** Skymmer has joined the channel | 2009-09-03 20:11:32 |
<Skymmer> | You meant progress indicator? | 2009-09-03 20:12:47 |
<toffer> | yep | 2009-09-03 20:12:55 |
<Skymmer> | ok. | 2009-09-03 20:13:08 |
<toffer> | you need to determine file size first | 2009-09-03 20:13:13 |
<Skymmer> | But I think its possible to implement standalone streaming mode with notice that progress indicator will not be available in it. Well, just suggestion :) | 2009-09-03 20:14:48 |
<toffer> | anything else? | 2009-09-03 20:21:34 |
<Skymmer> | Probably no. I'm not hardcore M1 user after all. | 2009-09-03 20:22:13 |
<toffer> | i guess nobody is that :) | 2009-09-03 20:22:35 |
<Skymmer> | Oh wait... | 2009-09-03 20:23:06 |
| Do you plan to include a lot of presets into release? I suggest that at least one preset will be internal. I mean built in EXE file so we can have a little bit simplier command line when plugging M1 into FreeARC for example. Thought its not so important :) | 2009-09-03 20:25:01 |
| Like M1 c input output | 2009-09-03 20:25:27 |
<toffer> | ok, that's a good idea | 2009-09-03 20:25:35 |
| but it's strength still is specialisation | 2009-09-03 20:25:56 |
<Skymmer> | Sure. | 2009-09-03 20:26:07 |
<toffer> | e.g. with the specialisation i gained something like 700kb on sfc: from ~12 -> 11.3 mb | 2009-09-03 20:26:27 |
| i think i gonna add the standard enwik profile | 2009-09-03 20:27:09 |
*** Simon|B2 has joined the channel | 2009-09-03 21:30:02 |
*** toffer has left the channel | 2009-09-03 21:59:10 |
*** Skymmer has left the channel | 2009-09-03 22:02:05 |
*** Simon|B2 has left the channel | 2009-09-03 22:12:26 |
*** pinc has left the channel | 2009-09-03 22:49:28 |
*** Skymmer has joined the channel | 2009-09-03 23:21:30 |
*** Skymmer has left the channel | 2009-09-03 23:24:10 |
*** Skymmer has joined the channel | 2009-09-04 00:47:50 |
*** Skymmer has left the channel | 2009-09-04 00:48:03 |