Результаты поиска
Посоветуйте книги для изучения реверс-инжиниринга и написания драйверов для USB-устройств
Желательно книги для новичков и если возможно на русском языке.
Посоветуйте книгу по функциональному программированию
Намереваюсь посетить курсы по функциональному программированию, о которых написано в теме Открытие осеннего семестра 2010 в Computer Science клубе (Санкт-Петербург). Но для того, чтобы не чувствовать себя совсем дилетантом, хотел бы за эти 2 недели получить некоторое общее представление о функциональном программировании и написать «Hello, World!» на rlang'e или haskell'е. Посоветуйте книгу.
Каковым должен быть объём изменений в программе, чтобы считать результат не багфиксом/расширением возможностей, а другой программой?
пусть даже основанной на исходной.
Каковым должен быть объём изменений в программе, чтобы считать результат не багфиксом/расширением возможностей, а другой программой?
пусть даже основанной на исходной.
Что читать программисту, чтобы улучшить серьезную алгоритмическую базу, необходимую в корпоративном секторе?
Студент третьего курса. Нормально программирую, много чего уже писал, но хочется обрести некоторую серьезную алгоритмическую базу, необходимую в корпоративном секторе — ибо нет никакой уверенности в готовности устраиваться на работу.
Собственно прошу указать, какие самые лучшие книги можете посоветовать по части основных алгоритмов (в том числе олимпиадного типа), паттернов, и всего остального, могущего пригодиться при серьезной работе программистом в крупной компании. Не только по языкам программирования, но и по базам данных, операционным системам, сетям. В общем список литературы, который вы считаете обязательным к прочтению.
407   15   03:59, 12th August, 2020
Изучение основ программирования (алгоритмы, структуры данных...)
Я работаю программистом (.NET WPF), но чувствую, что мне часто не хватает знаний основ программирования (основные алгоритмы, структуры данных, итп), те вещи, которые люди обычно изучают в вузах. Моя специальность была не программирование, поэтому ничего из этого мы не изучали. Хотелось бы самостоятельно восполнить эти пробелы.
Какие материалы вы посоветуете для изучения? Сайты, книги, сайты с задачками и.т.п.
p.s. (О существовании труда Д. Кнута я конечно-же знаю, что еще помимо него? :)
На чем лучше и быстрее написать GUI приложение?
Возникла такая потребность — нужно написать простое приложение для приёма объявлений в газету. Так-то приложение уже есть, но сделано криво, тормозит и не имеет некоторых нужных функций.
Раньше я писал лишь веб-приложения на RoR. Весь мой опыт разработки десктопных приложений сводится к Делфи, потому что им пользовался мой знакомый и заодно научил меня.
Так вот, как будет лучше написать приложение? Мультиплатформенность желательна, но в принципе пойдет и только виндовая версия.
Мои варианты:
— Ruby + какой-нибудь GUI фреймворк, но думаю что будет неудобно строить интерфейс и прога будет подтормаживать
— С++ используя Visual Studio (или взять Borland Builder? всё-таки с делфи я знаком уже). Недостаток только один — я плохо знаю С++
— Python — всегда хотел его изучить, стоит ли писать гуёвую прогу на нем?
— Старый добрый Делфи, потому что уже писал на нем что-то.
Базу данных в принципе я уже выбрал — sqlite, ибо удобно, быстро и в одном файлике.
Как научиться программировать?
Работаю сисадмином, но стало надоедать и посматриваю в сторону разработки — особенно интересно направление iOS, Objective C, C++, то есть разработка для мака, в связи со скорым выходом Мак апп стора.
Понимаю что рано сразу начинать с таких дебрей, что посоветуете почитать или посмотреть новичку? Может быть пойти на вторую вышку? (первое — юридическое).
Как переводится variants и 'data matching' в применении к функциональным языкам программирования?
Возник затык с переводом очередной части про Ocaml. Проблемы с терминами:
variation, data matching, pattern matching.
Контекст использования: www.ocaml-tutorial.org/data_types_and_matching
Как запрограммировать набор условий возникновения события?
Допустим, мне надо, чтобы при выполнении определенных условий возникало событие. Например, «если А > 2000 и Б = 1, то [возникло событие]» или еще как-нибудь.
Суть в том, что пользователь должен иметь возможность сам создать такое условие, динамически выбрав параметры (если, и, или, больше, меньше, сколько раз, в какое время и т.п.). Это также облегчение задачи программисту, которому не надо каждый раз хардкодить условия в алгоритме. Не смог найти описание подобного алгоритма в интернете, но помню, что это было в какой-то cms. Пока думаю о варианте формы, которая постит в табличку с нужными столбцами строки, из которых собирается это условие в дальнейшем. Но это не тру-выход, мне кажется.
Как получить правильную теорию по программированию?
В наше время написано много книг о прогрммирование, о алгоритмах, проектировании. Хотелось бы получить для себя «правильную базу теории» выбрав в правильном порядке книги для изучения. Конечно же я слышал о 4-ех томах Кнута, о книгах Макконнелла, Алана Купера, Джефа Раскина и многих других. В каком порядке и что читать? Помогите разобраться :)
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);
}
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);
}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);
}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);
}
Организация прямого соединения между двумя клиентами под контролем сервера
Существует сервер, с белым(реальным) 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
Давайте похоливарим про GOTO?
По мотивам топиков про GOTO для всего и GOTO для микроконтроллеров:
GOTO в низкоуровневом и высокоуровневом программировании — совсем разные случаи, путать их нельзя. Пока же все смешивается.
Предлагаю разделить их и поспорить конкретно по поводу случая высокоуровневого программирования — именно эта тема не раскрыта, хотя более востребована.
Для этого готов описать причины и примеры, почему GOTO использовать нельзя, и обсудить все случаи, в которых кажется, что можно — и конкретные альтернативы, и общие принципы «почему все равно нельзя».
Вопросы на собеседовании программисту Python
Какие вопросы задавать программисту Python, что бы оценить его знания?
Вопрос по программе на Си
Есть следующий кусок кода
...
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
В чем может быть проблема?
int main(int argc, char* argv[])
{
int act, act2, value;
printf("Выберите действие:\n1. Вывод списка\n2. Добавить элемент в список\n0. Выйти из программы\n->");
scanf("%d", &act);
printf("Введенное значение:\n%d\n", act);
...
}
Вопросы на собеседовании программисту С++
Посоветуйте интересные вопросы программисту С++, что бы оценить его знания?
Вот несколько вопросов, которые задаю я на интервью:
1. Виртуальные функции — что это и зачем?
2. Виртуальный деструктор — что это и зачем?
3. Что предпочтительней, наследование или инкапсуляция? в каких случаях и почему?
4. Есть такие волшебные слова: мьютекс и волотайл, о чем речь?
5. Чем отличается процесс от потока?
Чем удовлетворяет вас ваша IDE?
Расскажите пожалуйста, чем именно удовлетворяет вас ваша IDE?
Какие именно функции вашей любимой IDE особенно радуют вас?
Спасибо!
Решение задач по программированию он-лайн. Варианты
Хотелось бы добавить на один ресурс возможность решать задачи по программированию, например, как на Timus. Само веб-приложение написано на Java, хостится все это дело под Ubuntu.
Проблема в том, что на сервере есть еще и другие приложения, в том числе и коммерческие. Поэтому вариант с запусками присланных решений в отдельных процессах не подходит. Кроме того, будет достаточно серьезное ограничение по языкам программирования, чего не хотелось бы.
Видится такое решение проблемы: создать простые desktop приложения под основные ОС (или написать одно кроссплатформенное), которые будут уметь запускать процессы локально, собирать полученные данные и общаться с сервером. То есть человек скачивает программу и получает возможность решать задачи практически на любом языке программирования.
Собственно вопросы:
1. Как бы вы отнеслись к необходимости скачивать некоторый софт и запускать у себя? Подразумевается, что сайт в принципе trusted и информация о разработчиках сайта является открытой.
2. Может быть у вас есть другие идеи по организации процесса решения задач и проверки результатов.
Заранее спасибо за ваши ответы.
Как сделать авто-табуляцию кода?
Есть код язык си, без табуляции. Как сделать, чтобы у него поставилась табуляция, а то и так не понятный код.
Программа для вычисления периметра треугольника по трём сторонам на 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
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
Дорогие кодеры, а также геймеры-кодеры, прошу вас немного поразмыслить над такой задачей как раскрутка игровых серверов в лиценизонной версии игры Counter-Strike 1.6 (Steam) через создание фейковых серверов (имитация серверов) в большом количестве. Суть заключается в том, что игрок заходит в игру, открывает поиск серверов в интернете (в игре) и в списке серверов появляются фейковые сервера, при заходе на них игрока перенаправляет на основной сервер (реальный).
Раньше была такая программа как HLserver (загуглите, 2009-2012 гг.), сейчас она, верояно, уже не работает, так как CS 1.6 обновляли, хоть и немного. Дело в том, что если сейчас зайти в лицензионную версию игры (через Steam), то в поиске серверов вы увидите много серверов, но многие сервера - фейки, при подключении к ним перенаправляет на другой сервер. Отсюда сделал вывод, что сейчас создание такого софта возможно и кто-то уже это сделал и пользуется этим.
В связи с чем вопрос неразбирающегося в технических тонкостях человека - возможно ли сейчас написать такой софт, насколько сложно это сделать?