Привіт Гість ( Вхід | Реєстрація )
| A1ex01 | 
			
			  Aug 27 2013, 23:12
			
				 Пост
					#1
				
			 
		 | 
		
	
        	
        		![]() round catcher) ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Група: Trusted Members Повідомлень: 1 365 З нами з: 27-August 08 З: Kyiv Користувач №: 809 Стать: Чол Парк машин: хз*X2/2/500/хз*5870 ц7x64  | 
       
			
			 сабж, а заодно и асм х86 
			
			пока меня интересуют консольные приложения(работа с бинарными файлами), остановился на gcc(именно си, а не си++) под линух(debian) предлагаю тут кидать ссылки на интересные мануалы/примеры или просто постить примеры (Show/Hide) работа с файлами (Show/Hide) фрагменты asm книг у гугля(тут куча книг, омг)) под линух асм имеет чуть другой формат доки для мак, оптимизации мой черновик задачи №1(осталось допилить чуток) (Show/Hide) --------------------  | 
	
![]() ![]()  | 
	
| A1ex01 | 
			
			  Sep 1 2013, 23:00
			
				 Пост
					#16
				
			 
		 | 
		
	
        	
        		![]() round catcher) ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Група: Trusted Members Повідомлень: 1 365 З нами з: 27-August 08 З: Kyiv Користувач №: 809 Стать: Чол Парк машин: хз*X2/2/500/хз*5870 ц7x64  | 
       
			
			 статья которую надо читать перед написанием нового проекта http://habrahabr.ru/post/117193/ и закинуть такие справочники подальше 1) пользы по ссылке мало 2) какие справочники? и где взять лучше? задача #1: написать прогу для вычисления хешей sha2 для 64 байтовых блоков из входного файла и запись результата в другой файл т.е. прочитал 64 байт, получил хеш, записал и так далее. На выходе файл будет в ~2 раза меньше исходного смогеш?) up: условия уточнил, 512bit (SHA-256), а не байт, что равно 64байт --------------------  | 
	
| Rilian | 
			
			  Sep 1 2013, 23:10
			
				 Пост
					#17
				
			 
		 | 
		
	
        	
        		![]() interstellar ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Група: Team member Повідомлень: 17 163 З нами з: 22-February 06 З: Торонто Користувач №: 184 Стать: НеСкажу Free-DC_CPID Парк машин: ноут и кусок сервера  | 
       
			
			 какие справочники? и где взять лучше? смысл в статье в том что ЩЯС куча современных методологий и бест-практисов, а также библиотек для решения практически всех распространенных задач. И совет не изобретать велосипеды и думать что ты умнее компилятора --- По теме, каков объем исходных данных ? --------------------  | 
	
| A1ex01 | 
			
			  Sep 1 2013, 23:15
			
				 Пост
					#18
				
			 
		 | 
		
	
        	
        		![]() round catcher) ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Група: Trusted Members Повідомлень: 1 365 З нами з: 27-August 08 З: Kyiv Користувач №: 809 Стать: Чол Парк машин: хз*X2/2/500/хз*5870 ц7x64  | 
       
			
			 --- По теме, каков объем исходных данных ? анлим) (0,1-100Гига) можно начать с Килобайт (Кибибайт) ап: также интересует как у руби с битовым вращением? на си можно вставить asm rol/ror eax,ecx... --------------------  | 
	
| Rilian | 
			
			  Sep 2 2013, 00:00
			
				 Пост
					#19
				
			 
		 | 
		
	
        	
        		![]() interstellar ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Група: Team member Повідомлень: 17 163 З нами з: 22-February 06 З: Торонто Користувач №: 184 Стать: НеСкажу Free-DC_CPID Парк машин: ноут и кусок сервера  | 
       
			
			 --- По теме, каков объем исходных данных ? анлим) (0,1-100Гига) можно начать с Килобайт (Кибибайт) ап: также интересует как у руби с битовым вращением? на си можно вставить asm rol/ror eax,ecx... руби это интерпретируемый язык, но ты можешь делать биндинги на C, в которых, в свою очередь, юзать что угодно для потоковой обработки руби/питон тебе не поможет. Парсинг входящих бинарных данных на С это довольно простая задача я почему спрашиваю, потому что посчитать данные это одно дело, а вот использовать их эффективно - совсем другое если тебе надо рейнбоу тейбл то сразу задумайся о структуре для хранения и поиска --------------------  | 
	
| A1ex01 | 
			
			  Sep 2 2013, 11:15
			
				 Пост
					#20
				
			 
		 | 
		
	
        	
        		![]() round catcher) ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Група: Trusted Members Повідомлень: 1 365 З нами з: 27-August 08 З: Kyiv Користувач №: 809 Стать: Чол Парк машин: хз*X2/2/500/хз*5870 ц7x64  | 
       
			
			 A1ex01, емае, учи Руби! Могу тебе мастер класс устроить в Киеве для потоковой обработки руби/питон тебе не поможет. Парсинг входящих бинарных данных на С это довольно простая задача Рилиан, ты бы в тему въехал сначала, а потом советы)) --------------------  | 
	
| Rilian | 
			
			  Sep 2 2013, 13:49
			
				 Пост
					#21
				
			 
		 | 
		
	
        	
        		![]() interstellar ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Група: Team member Повідомлень: 17 163 З нами з: 22-February 06 З: Торонто Користувач №: 184 Стать: НеСкажу Free-DC_CPID Парк машин: ноут и кусок сервера  | 
       
			
			 обычно ядро обработки пишется на чем-то низкоуровневом, а все остальное например на руби для удобства работы и запуска этих самых низкоуровневых обработчиков 
			
			например, тебе надо будет данные брать из сети. Это удобнее сделать на Руби чем на С. Иначе 99% времени будешь бороться с утечками памяти, вместо решения задачи --------------------  | 
	
| whynot | 
			
			  Sep 7 2013, 21:34
			
				 Пост
					#22
				
			 
		 | 
		
	
        	
        		![]() кранчер зі стажем ![]() ![]() ![]() ![]() ![]() ![]() Група: Trusted Members Повідомлень: 378 З нами з: 8-December 08 Користувач №: 882 Стать: Чол Free-DC_CPID jabber:whynot@jabster.pl  | 
       
			
			 смогеш?) легко CODE perl -MDigest -we ' $aa=Digest->new("SHA-256"); while(read STDIN,$ab,64){ $aa->add($ab); print $aa->b64digest,"\n" }' Подвернул для читаемости. Отдавал в base64, потому что когда бинарное сыпется в терминал, то становится совершенно не смешно. -------------------- --  
					
		А ты готов к третьему майдану?  | 
	
| A1ex01 | 
			
			  Sep 8 2013, 15:46
			
				 Пост
					#23
				
			 
		 | 
		
	
        	
        		![]() round catcher) ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Група: Trusted Members Повідомлень: 1 365 З нами з: 27-August 08 З: Kyiv Користувач №: 809 Стать: Чол Парк машин: хз*X2/2/500/хз*5870 ц7x64  | 
       
			
			 лепота) 
			
			теперь задача№2 модифицировать код так, чтобы из файла2 можно было получить файл1 --------------------  | 
	
| Alien | 
			
			  Sep 8 2013, 15:56
			
				 Пост
					#24
				
			 
		 | 
		
	
        	
        		![]() Разработчик MolDynGrid ![]() ![]() ![]() ![]() ![]() ![]() ![]() Група: Trusted Members Повідомлень: 569 З нами з: 7-October 07 Користувач №: 594 Стать: Чол Парк машин: Q6600 2.4@3.0GHz\Asus p5kc\8Gb\8600GT\2 SATA: Sams 500Gb+ 500Gb + Seagate 400Gb  | 
       
			
			 как насчет сделать аналогичную тему по питончику? кто у нас в нем спец? =) 
			
			--------------------  | 
	
| Waterfall | 
			
			  Sep 11 2013, 16:47
			
				 Пост
					#25
				
			 
		 | 
		
	
        	
        		![]() Эрудит ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Група: Trusted Members Повідомлень: 1 607 З нами з: 24-May 10 З: Україна,Одеса(Odessa) Користувач №: 1 401 Стать: Чол Парк машин: ПК: Pentium, 2.80 GHz Ноут:DELL Studio, 2.26 GHz  | 
       |
| whynot | 
			
			  Sep 15 2013, 20:15
			
				 Пост
					#26
				
			 
		 | 
		
	
        	
        		![]() кранчер зі стажем ![]() ![]() ![]() ![]() ![]() ![]() Група: Trusted Members Повідомлень: 378 З нами з: 8-December 08 Користувач №: 882 Стать: Чол Free-DC_CPID jabber:whynot@jabster.pl  | 
       
			
			 модифицировать код так, чтобы из файла2 можно было получить файл1 Использование глагола "модифицировать" наводит на подозрение, что ТС неадкватно представляет себе задачу. Вместе с тем, это, конечно, не было легко, но так, "задача на одну трубку": CODE perl -MDigest -we ' $aa=Digest->new("SHA-256"); %ac=();$ad=0; while( $ab=STDIN->getline ){ chomp $ab; $ac{$ab} = [$ad++] } @ae=((0)x64); while(1){ $af=pack "C*",@ae; $ag=$aa->add($af)->b64digest; exists $ac{$ag} or next; push @{$ac{$ag}},$af; @{$ac{$ag}}>2 and die "CLASH!: $ag @ae\n"; print "found: $ag\n"; keys %ac == grep(@{$ac{$_}}==2,keys %ac) and last } continue{ $ae[0]++; $ad=0; while($ae[$ad]==256){$ae[$ad]=0;$ae[++$ad]++} @ae==65 and die "BUSTED!\n"; printf "\r[%3i]", $ad } foreach $ad (sort{$a->[0]<=>$b->[0]} values %ac){ print $ad->[1] }' Отличия от ТЗ: на вход принимаются base64 encoded, newline terminated строки. Глюкало мне не нравится; лучшим решением было бы писать развернутый буфер в STDERR (перенаправленный в /dev/null, ессно, а то будет больно) и лет через этак 200 подсмотреть в этом самом STDERR как далеко ушли. p.s. 200 лет это если использовать не стоковый Digest::SHA, а какой-нибудь XS на либу, которая считает на какой-нибудь Tesla. p.p.s. Проверять работоспособность, может быть, можно только на специально подготовленном входе. Очевидно, проверять на произвольном -- у меня есть лучшее применение циклам. p.p.p.s. Рекомендуется к прочтению, для повышения адекватности. -------------------- --  
					
		А ты готов к третьему майдану?  | 
	
| A1ex01 | 
			
			  Sep 16 2013, 15:28
			
				 Пост
					#27
				
			 
		 | 
		
	
        	
        		![]() round catcher) ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Група: Trusted Members Повідомлень: 1 365 З нами з: 27-August 08 З: Kyiv Користувач №: 809 Стать: Чол Парк машин: хз*X2/2/500/хз*5870 ц7x64  | 
       
			
			 Использование глагола "модифицировать" наводит на подозрение, что ТС неадкватно представляет себе задачу. улыбнуло, всегда же можно уточнить непонятки... задача№1 -это архиватор на базе sha2, поэтому предложил его(sha2) модифицировать для возможности обратной распаковки филе2, всего лишь... --------------------  | 
	
![]() ![]()  | 
	
 
  | 
		Lo-Fi Версія | Поточний час: 4th November 2025 - 03:00 |