Здравствуйте мои дорогие любители погромирования. Прочитал K&R «Язык программирования Си». Теперь нужна книга, которая расскажет как правильно писать код на С, общепринятые приёмы и стандартные алгоритмы решения типичных задач. Цель: пишу быдлокод для МК и хочу повысить свой скилл.
1) Рождаешься с 10`000 руб.
2) Выстрел - рубль. Попал в другого: +70, ему: -70. Дошло до 0 - нищеброд, денег нет на стрельбу, катайся или F5.
3) Цифровые клавиши:
1 - режим стрельбы пулями (обычный)
2 - режим кидания цементом
Выстрел цементом стоит 20 руб, если цемент никуда не прилип или попал на другой танк - бабло не списывается.
Цемент (серый) налипает на другой цемент и на титан (чёрный) (по углам экрана найдёте).
Титан добавлен на карту как первая опора для цемента. Он не разрушаем.
В танки стрелять цементом нет смысла.
Кирпичики других интересных цветов - разрушаются, но никак не вовлечены в игру.
4) Титан не разрушаем, цемент - 1 выстрел на кирпич (как обычно).
5) Нет индикации выбранного режима. Для уверенности жмите повторно 1 или 2.
6) В верхней строчке: глобальные координаты X Y, (=кошелёк), юзеров онлайн
7) другие клавиши:
shift (держать) - не поворачивать дуло на поворотах.
Как обычно, всякие левые и старые браузеры и смартфоны не работают.
Админ оставляет за собой право потерять всё построенное участниками, ибо тесты.
Разработчики широкоизвестной трёхмерной стратегии реального времени «0.A.D.» запустили кампанию по сбору средств на развитие игры. В планах решение проблем с производительностью, обновление графики, добавление поддержки кампаний, развитие мультиплеера.
По завершении кампании игра получит все собраные средства, даже если не достигнет основной цели ($160000).
Появилось желание на досуге собрать небольшой механизм с парой десятков сенсоров и несколькими функциональными частями, к примеру электродвигателями. Планируется передавать информацию между механизмом и PC - от датчиков в одну сторону, а для упраления механизмом в обратную. То есть особых вычислительных мощностей на контроллере механизма не нужно, основная логика будет расчитываться на PC. Главный критерий - простота - от сборки и пайки до прошивки и увязки с датчиками. Что сейчас в моде? Может стоит взять какую нибудь готовую плату? В общем любые советы по теме приветствуются.
Друзья. Есть проблемка: люблю играть. Я хочу вообще забить на win-платформу. Поэтому такой вопрос: есть ли какая-то игра, способная увлечь (пере-)прохождением (самой себя) на долгие месяцы? Киберспорт включается. Скажем, КС подходит, но хотелось бы что-то более, ээ, сюжетное.
P.S. Пробовал adom. Понравилось, но увлекло всего на пару месяцев. Хотелось бы что-то более стратегическое, т.к. я фанат СК2.
UPD: Не троллинга ради. Я просто свято верю в опен-сурс, но. UPD2: Но хочу того, чего, видимо, просто нет.
UPD3: Блин, котаны! Вот в Q3 я играю с 2005ого года, например. И не надоело, вот еще бы одну такую! Только более, гхм, стратегию/рпг.
Буду разбираться с STM32F4-DISCOVERY, ищу литературу по архитектуре микроконтроллеров, что-нибудь общее, базовое, чтобы иметь понятие о структуре микроконтроллеров, регистрах, памяти и прочем. В общем, нужно понять, как работает микроконтроллер. Литературу советуйте и для новичков, и более продвинутую, если можно. В сети пока что нашёл только книги Гурова:
http://rutracker.org/forum/viewtopic.php?t=2732279
Наткнулся на сообщение о том, что с 1 августа могут заблочить торренты и прочие ништяки. Тут горячие подробности.
Помимо очевидного решения закинуть всё нужное на харды и хранить в сухом, тёмном и прохладном месте - что дальше делать? Новую убунточку через торренты будет «нискачать»?
Добрый ночер!
Есть ЦО и дочки. Есть большие дочки, где куплен WS2008R2, а есть «дочурки», куда он не помещается в бюджет, но шлюз там таки стоит и шлюз работает на Бубунтах.
Везде авторизация в домен, подняты ВПНы. Нужно на бубунтах поднять сервер авторизации, что бы он засасывал (вовремя, на лету) пользователей AD и местные тачки маленькх дочурок логинились с него, а уже политики брали с WS2008R2.
Задача: инет упал, а авторизация и локаль продолжают исправно работать.
Решал ли кто-нибудь подобную задачу?
Как? Грабли?
т.к. при таком написании изображение с самого начала делается максимально большим (в полный размер) и форма более не сжимается.
Как сделать адекватный autoscalling?
UPD: нашел, как выставить scalled содержимое - помог пример. Теперь задача усложнилась. У меня на самом деле не одна QLabel, а три. И вот такой код:
void MainWindow::resizeEvent(QResizeEvent *ev)
{
if (!this->firstImage.isNull())
ui->lbl_firstImage->setPixmap(this->firstImage.scaled(ui->lbl_firstImage->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
if (!this->secondImage.isNull())
ui->lbl_secondImage->setPixmap(this->secondImage.scaled(ui->lbl_secondImage->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
if (!this->splittedImage.isNull())
ui->lbl_splittedImage->setPixmap(this->splittedImage.scaled(ui->lbl_splittedImage->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
}
Т.е. все повешено на событие ресайза главного окна. Но вот незадача: когда я выбираю первое изображение - все норм. А вот при выборе второго изображения форма сама увеличивает себя в размерах, и.... за счет самопроизвольного вызова события ресайза происходит лавинообразный бесконтрольный рост формы и ее scalled-содержимого :).. Как победить?
Занимаюсь в зависимости от свободного времени созданием программ для психологов. Беда в том, что свободного времени - раз два - и обчелся, а работы непаханное поле. Возможно, проект заинтересует желающих прокачать скилл в программировании, поскольку код там не слишком сложный в силу специфики предметной области.
Чтобы не засорять, подробное описание проекта, обоснование его (не?)нужности и текущих проблем/круга задач выложил тут: http://openpsy.ru/developer-help-request
Заодно можно посмотреть, что уже имеется.
Спасибо за внимание, жду хоть каких-нибудь отзывов!
Здравствуйте. Я пытаюсь портировать ядро линукс на процессор SPMP8000 (основан на arm926).
Я написал свой драйвер ЮАРТ (пока сильно упрощенный вариант).
Вот код драйвера:
#include <linux/console.h>
#include <linux/serial_core.h>
#include <asm/io.h>
#include <mach/serial.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/spinlock.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/sched.h>
#include <linux/smp.h>
#include <linux/termios.h>
#include <linux/amba/bus.h>
#include <linux/amba/serial.h>
#include <linux/io.h>
#include <mach/platform.h>
#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/mach-types.h>
#include <asm/setup.h>
#include <asm/mach/arch.h>
#include <asm/mach/flash.h>
#include <asm/mach/irq.h>
#include <asm/mach/map.h>
#include <asm/mach/time.h>
//запись символа в юарт0
static void putc(int c)
{
int timeout=4000;
if (UART0_STATUS1 & 0x1E) return;
while (timeout > 0) {
if ((UART0_STATUS2 & 0x10) && ((UART0_STATUS3 & 4) == 0)) {
UART0_DATA = c;
break;
}
timeout--;
}
}
// функция printk в ЮАРТ
static void sanoprintk(struct console *co, const char *s, u_int count){
int i;
/* Пишем каждый символ */
for (i = 0; i < count; i++, s++) {
if (*s == '\n'){
putc('\r');
}
putc(*s);
}
}
static int __init sano_console_setup(struct console *co, char *options)
{
return 0;
}
/* Заполняем структуру консоли */
static struct console sano_uart_console = {
.name = "ttyS", /* Имя консоли */
.write = sanoprintk, /* Как делать printk в консоли */
// .device = uart_console_device, /* Предоставлена ядром serial */
.setup = sano_console_setup,
.flags = CON_PRINTBUFFER, /* Флаг по умолчанию */
.index = -1, /* Инициализация в неправильное значение */
};
//register_console(&sano_uart_console);
/* Инициализация консоли */
static int __init sano_uart_console_init(void)
{
/* Регистрация этой консоли */
register_console(&sano_uart_console);
return 0;
}
console_initcall(sano_uart_console_init); /* Метка инициализации консоли */
В Makefile arch части добавил obj-y += serial.o, ядро собирается и драйвер в его добавляется, но вывод сообщений в ЮАРТ не происходит.
Однако если я в файде /init/main.c добавляю свою функцию sanoprintk , а так же заполняю и инициализирую структуру static struct console sano_uart_console прямо в начале функции start_kernel, то вывод в юарт работает так как надо.
Выглядит это примерно так
#ifdef STANDALONE_DEBUG
#define putstr printf
#else
static void sanoprintk(struct console *co, const char *s, u_int count);
#include <mach/uncompress.h>
#endif
static void sanoprintk(struct console *co, const char *s, u_int count){
int i;
/* Пишем каждый символ */
for (i = 0; i < count; i++, s++) {
if (*s == '\n'){
putc('\r');
}
putc(*s);
}
}
asmlinkage void __init start_kernel(void)
{
/* Параметры каждого из поддерживаемых портов USB_UART */
/* Заполняем структуру консоли */
static struct console sano_uart_console = {
.name = "ttyS", /* Имя консоли */
.write = sanoprintk, /* Как делать printk в консоли */
.flags = CON_PRINTBUFFER, /* Флаг по умолчанию */
.index = -1, /* Инициализация в неправильное значение */
};
register_console(&sano_uart_console);
Однако, это крайне не верное решение. Подскажите пожалуйста как подключить драйвер вынесенный в отдельный файл arch части ядра.
Пишу для домашней странички простейшую гостевую книгу на языке PHP.
Возникли дополнительные вопросы, прошу помощи.
Сообщения посетителей с указанием e-mail сохраняются в текстовом файле, который находится за пределами папки «DocumentRoot» веб-сервера.
Перед сохранением сообщения в файл скрипт производит замену символов:
символ «&» заменяет командой «& a m p ;»
«<» заменяет кодом «& l t ;»
«>» заменяет «& g t ;»
символы перевода строки «\r», «\n» заменяет тегом «<br>», т.к. переводы строки отделяют друг от друга записи в файле
символ «|» заменяет кодом «& # 124 ;», т.к. вертикальная черточка используется в качестве разделителя полей в составе записи
Список недочетов гостевой книги, в том числе, в плане защищенности:
не реализована защита от приема повторно направленных данных, т.е. нафлудить можно нажатием «F5» в браузере :)
не осуществляется проверка правильности указания e-mail на основе шаблона «user@sub.domain», в составе имени посетителя можно указывать любые символы
скрипт не проверяет переменную «REFERER», т.е. будет принимать данные формы с постороннего сайта (такая атака называется CSRF)
Возникли следующие вопросы:
Может ли потенциальный злоумышленник «украсть» текстовый файл, в котором хранятся сообщения посетителей с указанием e-mail'ов? Если может, то как предотвратить такую утечку информации?