Найдено результатов: 25

Посоветуйте книги для изучения реверс-инжиниринга и написания драйверов для USB-устройств

Желательно книги для новичков и если возможно на русском языке.

Linux   Книги   Программирование    

418   7   19:20, 25th August, 2020


Посоветуйте книгу по функциональному программированию

Намереваюсь посетить курсы по функциональному программированию, о которых написано в теме Открытие осеннего семестра 2010 в Computer Science клубе (Санкт-Петербург). Но для того, чтобы не чувствовать себя совсем дилетантом, хотел бы за эти 2 недели получить некоторое общее представление о функциональном программировании и написать «Hello, World!» на rlang'e или haskell'е. Посоветуйте книгу.



Что читать программисту, чтобы улучшить серьезную алгоритмическую базу, необходимую в корпоративном секторе?

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


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



Изучение основ программирования (алгоритмы, структуры данных...)

Я работаю программистом (.NET WPF), но чувствую, что мне часто не хватает знаний основ программирования (основные алгоритмы, структуры данных, итп), те вещи, которые люди обычно изучают в вузах. Моя специальность была не программирование, поэтому ничего из этого мы не изучали. Хотелось бы самостоятельно восполнить эти пробелы.

Какие материалы вы посоветуете для изучения? Сайты, книги, сайты с задачками и.т.п.

p.s. (О существовании труда Д. Кнута я конечно-же знаю, что еще помимо него? :)



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

Возникла такая потребность — нужно написать простое приложение для приёма объявлений в газету. Так-то приложение уже есть, но сделано криво, тормозит и не имеет некоторых нужных функций.


Раньше я писал лишь веб-приложения на RoR. Весь мой опыт разработки десктопных приложений сводится к Делфи, потому что им пользовался мой знакомый и заодно научил меня.


Так вот, как будет лучше написать приложение? Мультиплатформенность желательна, но в принципе пойдет и только виндовая версия.


Мои варианты:

— Ruby + какой-нибудь GUI фреймворк, но думаю что будет неудобно строить интерфейс и прога будет подтормаживать

— С++ используя Visual Studio (или взять Borland Builder? всё-таки с делфи я знаком уже). Недостаток только один — я плохо знаю С++

— Python — всегда хотел его изучить, стоит ли писать гуёвую прогу на нем?

— Старый добрый Делфи, потому что уже писал на нем что-то.


Базу данных в принципе я уже выбрал — sqlite, ибо удобно, быстро и в одном файлике.



Как научиться программировать?

Работаю сисадмином, но стало надоедать и посматриваю в сторону разработки — особенно интересно направление iOS, Objective C, C++, то есть разработка для мака, в связи со скорым выходом Мак апп стора.

Понимаю что рано сразу начинать с таких дебрей, что посоветуете почитать или посмотреть новичку? Может быть пойти на вторую вышку? (первое — юридическое).

Программирование    

381   12   12:15, 26th August, 2020


Как переводится variants и 'data matching' в применении к функциональным языкам программирования?

Возник затык с переводом очередной части про Ocaml. Проблемы с терминами:

variation, data matching, pattern matching.

Контекст использования: www.ocaml-tutorial.org/data_types_and_matching

Функциональное   программирование    

385   3   23:03, 1st August, 2020


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

Допустим, мне надо, чтобы при выполнении определенных условий возникало событие. Например, «если А > 2000 и Б = 1, то [возникло событие]» или еще как-нибудь.
Суть в том, что пользователь должен иметь возможность сам создать такое условие, динамически выбрав параметры (если, и, или, больше, меньше, сколько раз, в какое время и т.п.). Это также облегчение задачи программисту, которому не надо каждый раз хардкодить условия в алгоритме. Не смог найти описание подобного алгоритма в интернете, но помню, что это было в какой-то cms. Пока думаю о варианте формы, которая постит в табличку с нужными столбцами строки, из которых собирается это условие в дальнейшем. Но это не тру-выход, мне кажется.

Программирование   Алгоритмы    

371   3   01:13, 4th August, 2020


Как получить правильную теорию по программированию?

В наше время написано много книг о прогрммирование, о алгоритмах, проектировании. Хотелось бы получить для себя «правильную базу теории» выбрав в правильном порядке книги для изучения. Конечно же я слышал о 4-ех томах Кнута, о книгах Макконнелла, Алана Купера, Джефа Раскина и многих других. В каком порядке и что читать? Помогите разобраться :)

Книги   Программирование   Теория    

318   7   16:05, 5th August, 2020


Node.js (или другие асинхронные фреймворки): А как отлавливать ошибки?

Вот такой вопрос. Может быть мой задеревенелый синхронный мозг просто не видит решения, которое лежит на поверхности. Но я не понимаю, как обрабатывать ошибки при асинхронном подходе, как выдавать пользователю 500-страницу. Ведь как устроен привычный синхронный запрос (схематично):
try {

  responce = (function request(req) {

    var user = auth.getUser(req);

    if (user.auth) {

      var data = db.getData();

      if (data) {

        return new Responce(template.render(data));

      }

    }

    return error404;

  })(req);

} catch(e) {

  show500(e);

}


Все очень надежно, контроллер обязан возвратить ответ, любые ошибки, не отловленные внутри request, отлавливаются снаружи и выдают пользователю красивую страничку.

Что же при асинхронном подходе node.js?
try {

  (function request(req, res) {

    auth.getUser(req, function(user) {

      if ( ! user.auth) {

        return res.error404();

      }

      db.getData(function(data) {

        if ( ! data) {

          return res.error404();

        }

        res.write(template.render(data));

      });

    });

  })(req, res);

} catch(e) {

  res.show500(e);

}


И вот представте, что где-то в user.auth происходит исключение. Что произойдет? А ничего, function(user) прекратит выполнение, ответ обработать некому, соединение с браузером останется висеть до таймаута. Даже поставив где-то глобальный обработчик ошибок, не удастся вернуть пользователю ответ, потому что в самом объекте исключения нет доступа к объектам запроса и ответа.

Неужели, единственный выход ловить исключения вручную на каждом асинхронном вызове?
try {

  (function request(req, res) {

    auth.getUser(req, function(user) {

      try {

        if ( ! user.auth) {

          return res.error404();

        }

        db.getData(function(data) {

          try {

            if ( ! data) {

              return res.error404();

            }

            res.write(template.render(data));

          } catch(e) {

            res.show500(e);

          }

        });

      } catch(e) {

        res.show500(e);

      }

    });

  })(req, res);

} catch(e) {

  res.show500(e);

}

Node.js   Асинхронное   программирование    

341   6   20:47, 8th August, 2020


Организация прямого соединения между двумя клиентами под контролем сервера

Существует сервер, с белым(реальным) IP, есть несколько клиентов, разбросанных по интернету(динамические адреса, nat...) Необходимо организовать прямой обмен данными между клиентами.
Вопросы такие:
1) Какие протоколы лучше всего использовать для обмена данными и установки соединения?
2)Что можно почитать на эту тему (пытался гуглить, но похоже не могу правильно задать вопрос)?
3) Если кто-то подобное делал, то какие библиотеки использовались?



Чем можно стримить изображение из игры в Flash Media Server?

Ситуация такая: хотим провести небольшой чемпионат по одной компютерной игре — хотим транслировать все это дело онлайн.

Первым в голову пришло такое решение: Flash Media Server + Flash Media Encoder + VHScrenCapture Driver. Все работает сносно, за исключением одного факта: при запуске encoder'a загрузка cpu c2d 3.16 ГГц при 25fps 1280x720, h264, составляет 80-90 процентов. На игру просто ничего не остается.

Хочется стримить хотя бы 720p — иначе это не имеет никакого смысла.

Я понимаю что я наверно много хочу — стримить на лету 720p перекодированное… Но все же, есть ли какие то аналогичные решения? Есть ли какие то решения в которых сервер выступает в роли encoder'a? Вообще, поделитесь опытом если у кого то был такой. Спасибо.

P.S Погуглив все игровые форумы — все стримят в 640 на 480. А те кто больше стримят, у тех уже i5 и i7

Программирование   Видеотрансляция   Adobe   Flash    

420   3   21:06, 1st October, 2020


Давайте похоливарим про GOTO?

По мотивам топиков про GOTO для всего и GOTO для микроконтроллеров:


GOTO в низкоуровневом и высокоуровневом программировании — совсем разные случаи, путать их нельзя. Пока же все смешивается.


Предлагаю разделить их и поспорить конкретно по поводу случая высокоуровневого программирования — именно эта тема не раскрыта, хотя более востребована.


Для этого готов описать причины и примеры, почему GOTO использовать нельзя, и обсудить все случаи, в которых кажется, что можно — и конкретные альтернативы, и общие принципы «почему все равно нельзя».

Программирование    

342   3   03:55, 1st October, 2020


Вопросы на собеседовании программисту Python

Какие вопросы задавать программисту Python, что бы оценить его знания?

Python   Программирование    

366   7   22:56, 1st October, 2020


Вопрос по программе на Си

Есть следующий кусок кода

...
int main(int argc, char* argv[])
{
int act, act2, value;

printf("Выберите действие:\n1. Вывод списка\n2. Добавить элемент в список\n0. Выйти из программы\n->");
scanf("%d", &act);

printf("Введенное значение:\n%d\n", act);
...
}


Если вводим «1» — выполнение программы почему то завершается, выводится сообщение «Ошибка сегментирования»
В любом другом случае — всё ок.

Если пишем int act = X, act, value; аналогично — если X == 1, то «Ошибка сегментирования», иначе — всё Ок.

Компилятор gcc (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5

В чем может быть проблема?

C   Программирование    

352   3   21:06, 1st October, 2020


Вопросы на собеседовании программисту С++

Посоветуйте интересные вопросы программисту С++, что бы оценить его знания?

Вот несколько вопросов, которые задаю я на интервью:

1. Виртуальные функции — что это и зачем?
2. Виртуальный деструктор — что это и зачем?
3. Что предпочтительней, наследование или инкапсуляция? в каких случаях и почему?
4. Есть такие волшебные слова: мьютекс и волотайл, о чем речь?
5. Чем отличается процесс от потока?

Программирование   C++    

383   11   11:17, 2nd October, 2020


Чем удовлетворяет вас ваша IDE?

Расскажите пожалуйста, чем именно удовлетворяет вас ваша IDE?

Какие именно функции вашей любимой IDE особенно радуют вас?

Спасибо!

IDE   Программирование    

379   22   05:51, 1st October, 2020


Решение задач по программированию он-лайн. Варианты

Хотелось бы добавить на один ресурс возможность решать задачи по программированию, например, как на Timus. Само веб-приложение написано на Java, хостится все это дело под Ubuntu.

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

Видится такое решение проблемы: создать простые desktop приложения под основные ОС (или написать одно кроссплатформенное), которые будут уметь запускать процессы локально, собирать полученные данные и общаться с сервером. То есть человек скачивает программу и получает возможность решать задачи практически на любом языке программирования.

Собственно вопросы:
1. Как бы вы отнеслись к необходимости скачивать некоторый софт и запускать у себя? Подразумевается, что сайт в принципе trusted и информация о разработчиках сайта является открытой.
2. Может быть у вас есть другие идеи по организации процесса решения задач и проверки результатов.

Заранее спасибо за ваши ответы.



Как сделать авто-табуляцию кода?

Есть код язык си, без табуляции. Как сделать, чтобы у него поставилась табуляция, а то и так не понятный код.

Программирование    

391   2   18:51, 2nd October, 2020


Программа для вычисления периметра треугольника по трём сторонам на Python

Программа для вычисления периметра треугольника по трём сторонам на Python. Написать исключение для генерации сообщения о невозможности выполнения такой операции (сумма двух любых сторон должна быть больше 3-й). 

p.s - 1)контролируя состояние потоков ввода/вывода, 2)при возникновении ошибок, связанных с корректностью выполнения математических операций, генерировать и обрабатывать исключительные ситуации, 3) использовать raise.

Если знаете, как это должно выглядеть, подскажите пожалуйста.



Помогите решить задачу на python с codeforces

Назовем два числа xx и yy похожими, если они имеют одинаковую четность (одинаковый остаток при делении на 22), или если |x−y|=1|x−y|=1. Например, в каждой из пар (2,6)(2,6), (4,3)(4,3), (11,7)(11,7) числа похожи между собой, а в парах (1,4)(1,4), (3,12)(3,12) — нет.

Вам дан массив aa из nn (число nn четно) целых положительных чисел. Проверьте, существует ли такое разбиение массива на пары, что каждый элемент массива принадлежит ровно одной паре, и в каждой паре числа похожи между собой.

Например для массива a=[11,14,16,12]a=[11,14,16,12] существует разбиение на пары (11,12)(11,12) и (14,16)(14,16). Числа в первой паре похожи, потому что модуль их разности равен единице, а во второй паре — потому что они оба четные.

Входные данные

В первой строке записано одно целое число tt (1≤t≤10001≤t≤1000) — количество наборов тестовых данных в тесте. Далее следуют tt наборов тестовых данных.

Каждый набор задается двумя строками. В первой строке записано четное целое число nn (2≤n≤502≤n≤50) — длина массива aa.

Во второй строке записано nn целых чисел a1,a2,…,ana1,a2,…,an (1≤ai≤1001≤ai≤100).

Выходные данные

Для каждого набора тестовых данных выведите:

  • YES, если разбиение существует;
  • NO, если разбиения не существует.

Буквы в словах YES и NO можно выводить в любом регистре.

Пример

входные данные

7
4
11 14 16 12
2
1 8
4
1 1 1 1
4
1 2 5 6
2
12 13
6
1 6 3 10 5 8
6
1 12 3 10 5 8

выходные данные

YES
NO
YES
YES
YES
YES
NO

python   codeforces   задача   программирование  

4492   0   11:11, 22nd October, 2022


Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam

Дорогие кодеры, а также геймеры-кодеры, прошу вас немного поразмыслить над такой задачей как раскрутка игровых серверов в лиценизонной версии игры Counter-Strike 1.6 (Steam) через создание фейковых серверов (имитация серверов) в большом количестве. Суть заключается в том, что игрок заходит в игру, открывает поиск серверов в интернете (в игре) и в списке серверов появляются фейковые сервера, при заходе на них игрока перенаправляет на основной сервер (реальный).

Раньше была такая программа как HLserver (загуглите, 2009-2012 гг.), сейчас она, верояно, уже не работает, так как CS 1.6 обновляли, хоть и немного. Дело в том, что если сейчас зайти в лицензионную версию игры (через Steam), то в поиске серверов вы увидите много серверов, но многие сервера - фейки, при подключении к ним перенаправляет на другой сервер. Отсюда сделал вывод, что сейчас создание такого софта возможно и кто-то уже это сделал и пользуется этим. 

В связи с чем вопрос неразбирающегося в технических тонкостях человека - возможно ли сейчас написать такой софт, насколько сложно это сделать?