Привіт Гість ( Вхід | Реєстрація )

2 Сторінки V < 1 2  
Reply to this topicStart new topic
> учим Cи
A1ex01
Sep 1 2013, 23:00
Пост #16


round catcher)
********

Група: Trusted Members
Повідомлень: 1 365
З нами з: 27-August 08
З: Kyiv
Користувач №: 809
Стать: Чол
Парк машин:
хз*X2/2/500/хз*5870 ц7x64



(Rilian @ Sep 1 2013, 18:11) *

статья которую надо читать перед написанием нового проекта http://habrahabr.ru/post/117193/

и закинуть такие справочники подальше smile.gif

1) пользы по ссылке мало
2) какие справочники? и где взять лучше?

задача #1:
написать прогу для вычисления хешей sha2 для 64 байтовых блоков из входного файла и запись результата в другой файл
т.е. прочитал 64 байт, получил хеш, записал и так далее. На выходе файл будет в ~2 раза меньше исходного
смогеш?)

up:
условия уточнил, 512bit (SHA-256), а не байт, что равно 64байт


--------------------
Stats: RC5-72 OGR-(26 /27 /28 ) Mag@(free-dc /boinc)
support: BTC 3Po6aejsoZM7bQvo138fuYwaLc67bzMfEr
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Rilian
Sep 1 2013, 23:10
Пост #17


interstellar
**********

Група: Team member
Повідомлень: 16 972
З нами з: 22-February 06
З: Торонто
Користувач №: 184
Стать: НеСкажу
Free-DC_CPID
Парк машин:
ноут и кусок сервера



QUOTE(A1ex01 @ Sep 2 2013, 00:00) *

какие справочники? и где взять лучше?

смысл в статье в том что ЩЯС куча современных методологий и бест-практисов, а также библиотек для решения практически всех распространенных задач. И совет не изобретать велосипеды и думать что ты умнее компилятора

---
По теме, каков объем исходных данных ?


--------------------
(Show/Hide)


IPB Image

IPB Image

IPB Image
IPB Image

загальна статистика: BOINCstats * FreeDC команда: BOINC команда Ukraine

IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
A1ex01
Sep 1 2013, 23:15
Пост #18


round catcher)
********

Група: Trusted Members
Повідомлень: 1 365
З нами з: 27-August 08
З: Kyiv
Користувач №: 809
Стать: Чол
Парк машин:
хз*X2/2/500/хз*5870 ц7x64



(Rilian @ Sep 2 2013, 00:10) *


---
По теме, каков объем исходных данных ?

анлим) (0,1-100Гига)
можно начать с Килобайт (Кибибайт)

ап:
также интересует как у руби с битовым вращением? на си можно вставить asm rol/ror eax,ecx...


--------------------
Stats: RC5-72 OGR-(26 /27 /28 ) Mag@(free-dc /boinc)
support: BTC 3Po6aejsoZM7bQvo138fuYwaLc67bzMfEr
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Rilian
Sep 2 2013, 00:00
Пост #19


interstellar
**********

Група: Team member
Повідомлень: 16 972
З нами з: 22-February 06
З: Торонто
Користувач №: 184
Стать: НеСкажу
Free-DC_CPID
Парк машин:
ноут и кусок сервера



QUOTE(A1ex01 @ Sep 2 2013, 00:15) *

QUOTE(Rilian @ Sep 2 2013, 00:10) *


---
По теме, каков объем исходных данных ?

анлим) (0,1-100Гига)
можно начать с Килобайт (Кибибайт)

ап:
также интересует как у руби с битовым вращением? на си можно вставить asm rol/ror eax,ecx...

руби это интерпретируемый язык, но ты можешь делать биндинги на C, в которых, в свою очередь, юзать что угодно

для потоковой обработки руби/питон тебе не поможет. Парсинг входящих бинарных данных на С это довольно простая задача

я почему спрашиваю, потому что посчитать данные это одно дело, а вот использовать их эффективно - совсем другое

если тебе надо рейнбоу тейбл то сразу задумайся о структуре для хранения и поиска


--------------------
(Show/Hide)


IPB Image

IPB Image

IPB Image
IPB Image

загальна статистика: BOINCstats * FreeDC команда: BOINC команда Ukraine

IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
A1ex01
Sep 2 2013, 11:15
Пост #20


round catcher)
********

Група: Trusted Members
Повідомлень: 1 365
З нами з: 27-August 08
З: Kyiv
Користувач №: 809
Стать: Чол
Парк машин:
хз*X2/2/500/хз*5870 ц7x64



(Rilian @ Aug 28 2013, 00:19) *

A1ex01, емае, учи Руби! Могу тебе мастер класс устроить в Киеве
(Rilian @ Sep 2 2013, 01:00) *

для потоковой обработки руби/питон тебе не поможет. Парсинг входящих бинарных данных на С это довольно простая задача

Рилиан, ты бы в тему въехал сначала, а потом советы))


--------------------
Stats: RC5-72 OGR-(26 /27 /28 ) Mag@(free-dc /boinc)
support: BTC 3Po6aejsoZM7bQvo138fuYwaLc67bzMfEr
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Rilian
Sep 2 2013, 13:49
Пост #21


interstellar
**********

Група: Team member
Повідомлень: 16 972
З нами з: 22-February 06
З: Торонто
Користувач №: 184
Стать: НеСкажу
Free-DC_CPID
Парк машин:
ноут и кусок сервера



обычно ядро обработки пишется на чем-то низкоуровневом, а все остальное например на руби для удобства работы и запуска этих самых низкоуровневых обработчиков

например, тебе надо будет данные брать из сети. Это удобнее сделать на Руби чем на С. Иначе 99% времени будешь бороться с утечками памяти, вместо решения задачи


--------------------
(Show/Hide)


IPB Image

IPB Image

IPB Image
IPB Image

загальна статистика: BOINCstats * FreeDC команда: BOINC команда Ukraine

IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
whynot
Sep 7 2013, 21:34
Пост #22


кранчер зі стажем
******

Група: Trusted Members
Повідомлень: 378
З нами з: 8-December 08
Користувач №: 882
Стать: Чол
Free-DC_CPID
jabber:whynot@jabster.pl



QUOTE(A1ex01 @ Sep 2 2013, 00:00) *

смогеш?)


легко

CODE

    perl -MDigest -we '
    $aa=Digest->new("SHA-256");
    while(read STDIN,$ab,64){ $aa->add($ab); print $aa->b64digest,"\n" }'


Подвернул для читаемости. Отдавал в base64, потому что когда бинарное сыпется в терминал, то становится совершенно не смешно.



--------------------
--
А ты готов к третьему майдану?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
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


--------------------
Stats: RC5-72 OGR-(26 /27 /28 ) Mag@(free-dc /boinc)
support: BTC 3Po6aejsoZM7bQvo138fuYwaLc67bzMfEr
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
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



как насчет сделать аналогичную тему по питончику? кто у нас в нем спец? =)


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
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



Вам усім, по-моєму, краще сюди http://viknaodessa.od.ua/news/?news=78591 rtfm.gif rilian.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
whynot
Sep 15 2013, 20:15
Пост #26


кранчер зі стажем
******

Група: Trusted Members
Повідомлень: 378
З нами з: 8-December 08
Користувач №: 882
Стать: Чол
Free-DC_CPID
jabber:whynot@jabster.pl



QUOTE(A1ex01 @ Sep 8 2013, 16:46) *

модифицировать код так, чтобы из файла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. Рекомендуется к прочтению, для повышения адекватности.


--------------------
--
А ты готов к третьему майдану?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
A1ex01
Sep 16 2013, 15:28
Пост #27


round catcher)
********

Група: Trusted Members
Повідомлень: 1 365
З нами з: 27-August 08
З: Kyiv
Користувач №: 809
Стать: Чол
Парк машин:
хз*X2/2/500/хз*5870 ц7x64



(whynot @ Sep 15 2013, 21:15) *

Использование глагола "модифицировать" наводит на подозрение, что ТС неадкватно представляет себе задачу.

улыбнуло, всегда же можно уточнить непонятки...
задача№1 -это архиватор на базе sha2, поэтому предложил его(sha2) модифицировать для возможности обратной распаковки филе2, всего лишь...


--------------------
Stats: RC5-72 OGR-(26 /27 /28 ) Mag@(free-dc /boinc)
support: BTC 3Po6aejsoZM7bQvo138fuYwaLc67bzMfEr
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

2 Сторінки V < 1 2
Reply to this topicStart new topic
2 Користувачів переглядають дану тему (2 Гостей і 0 Прихованих Користувачів)
0 Користувачів:

 



- Lo-Fi Версія Поточний час: 26th May 2024 - 11:03