LinuxForum.Fans
Тема

Нужно ли знать математику что бы стать хорошим программистом?

Автор: White_Nelud 112 сообщений 32543 просмотров
#140357
tango написал:
[quote=mycetophylax]Заслуживает уважения.

Эмм!...
Как бы помягче сформулировать?
Попробую:
и не все, кто пытается понять, что ж он такое сотворил на этой фейспиаде,
поголовно скоты бессмысленные.
Большинство - да! Но уж мы то с вами - разве не нет???[/quote]
Ну так нужно знать критерии попадания в группу "скоты бессмысленные". Тогда уже и можно будет судить там мы или нет. :rolleyes:

Великие художники тоже создавали никому не нужные в практическом смысле произведения (писатели, музыканты, живописцы и т.д.). Однако это нисколько не уменьшает оценку их гениальности. А такое программирование можно отнести к искусству wink

#140373

bormant, пруфлинк на фейсбук можно? а не на секьюрити лаб.

#140393

bormant, это скорее задачки по математике, а не по программированию, ИМХО. И к "хакерам" это никак не относится. Я думал задачки вроде "дана ОС, войти в неё, и внедрить закладку" ну или типа того. А тут игры какие-то логические... подсчёт яблок... facepalm

#140422
mycetophylax написал:
Великие художники тоже создавали никому не нужные в практическом смысле произведения

Например "чёрный квадрат", автор просто гений, и как он догадался, что случайно пролитую чёрную краску, можно продать как шедевр мирового искуства.
С нетерпением жду "чёрный круг", "чёрный треугольник", "чёрный овал", а особо "чёрный параллелепипед" :D

#140429
Vadimsky написал:
С нетерпением жду "чёрный круг", "чёрный треугольник", "чёрный овал", а особо "чёрный параллелепипед"

ну про овал - не в курсе, но репродукции (sic!) красного квадрата, и оранжевого - видел сам. Народ тащится.

#140435
drBatty написал:
Народ тащится.

Ну так модно же!!! Все побежали - и я побежал :D

#140464
drBatty написал:
а вот как это я написал:

lsof | sed -rn "s%^$BR\s+([0-9]+)\s+\w+\s+([0-9]+)u\s+.*/tmp/(Flash\w+)\s+\(deleted\)$%touch $TD/\3$EXT \&\& dd if=/proc/\1/fd/\2 of=$TD/\3$EXT bs=4096 \&\& file $TD/\3$EXT%e;T;p"

Увы, но я, наверное, сильно старый. Никак не могу вложить в свою голову даже основ регулярных выражений. Сознание ни за что не зацепляется.

#140583
Cruiser78 написал:
Увы, но я, наверное, сильно старый. Никак не могу вложить в свою голову даже основ регулярных выражений. Сознание ни за что не зацепляется.

я тоже не молод. дело не в этом - такое конечно не распарсить без подготовки, тут в одну кучу свалено то, что написано в довольно длинном посте, причём что sed, что регулярки - очень лаконичные.

А цепляться нужно вот за что: regex == специализированный язык программирования, предназначенный для краткой записи алгоритмов поиска и работы с текстом. Между прочим, это компилируемый ЯП, т.е. регулярное выражение сначала собирается (компилируется), а затем оно собственно выполняется. Кроме того, его можно считать "математической формулой", что в общем-то и является алгоритмом.

В данном случае связь с математикой очень сильна - сохранить флешку очень просто. Достаточно выполнить команду dd. вопрос - откуда, и куда копировать. Мы первым делом анализируем состояние всех файлов (lsof), и ищем среди них нужный. А на основе этой информации мы строим команду. Причём построение дальнейшего алгоритма тоже происходит по своему алгоритму, который читается как на Руси - слева-направо:
^$BR нам необходимо, что-бы в начале строки (^) было некое $BR (это название браузера)
\s+ продолжаем разбор: далее должны идти 1 или более пробельных символов (вообще-то там пробелы, но кто его знает? может завтра будут табуляции)
([0-9]+) просматриваем далее - должна быть 1 или более цифр. При этом, все эти цифры мы сохраняем во временную переменную №1, о чём говорят (скобки)
\s+ ещё несколько пробелов
\w+ ещё несколько букв-цифр-подчерков
\s+ ещё несколько пробелов
([0-9]+) смотрим дальше: опять несколько цифр, и мы их сохраняем в переменную №2
u потом буква 'u'
\s+ несколько пробелов
.* любой символ сколько угодно раз. Это середина строки, она нам не интересна
/tmp/(Flash\w+) потом идёт имя файла. оно всегда в /tmp/ и всегда начинается на Flesh, и всегда потом идут несколько букво-цифро-подчерков
\s+ потом идёт несколько пробелов
\(deleted\) потом (delete), при этом скобки пришлось заэкранировать, ибо просто скобки () - нужны для сохранения переменных.
$ это конец строки.

Всё это вместе проверяется последовательно, и если хоть одно УСЛОВИЕ не выполнено, мы переходим к анализу сл. строки. Если все условия выполнены, мы составляем команду dd, подставляя в неё найденные 3 переменные.

Затем эта команда выполняется. Ничего сложного :) Это не сложнее формулы Кардана для решения уравнений третьей степени :) Даже попроще...

#140793
Cruiser78 написал:
lsof | sed -rn "s%^$BR\s+([0-9]+)\s+\w+\s+([0-9]+)u\s+.*/tmp/(Flash\w+)\s+\(deleted\)$%touch $TD/\3$EXT \&\& dd if=/proc/\1/fd/\2 of=$TD/\3$EXT bs=4096 \&\& file $TD/\3$EXT%e;T;p"

Запускать от рута?

#140955

"Математику уже затем учить следует,
что она ум в порядок приводит"
(С)Ломоносов М. В.

#141007
Vadimsky написал:
Запускать от рута?

нет. от имени того пользователя, который запустил браузер.

Войдите или зарегистрируйтесь, чтобы ответить.