Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Ищите предметы среди очаровательных жителей и уютных домиков!

Потеряшки - поиск предметов

Головоломки, Казуальные, Детские

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
481
Gul0Gul0
Gul0Gul0
IT-юмор

Какое-то стрёмное решение... Одобряю!⁠⁠

6 лет назад
Какое-то стрёмное решение... Одобряю!
Показать полностью 1
IT IT юмор Программирование Exception Быдлокодинг Картинка с текстом
77
73
codingblog
codingblog
IT-юмор

Говнокодер (Переозвучка)⁠⁠

7 лет назад

Переозвучка отрывка из фильма Хэнкок (Hancock) о том как тяжело быть тимлидом, говнокоде и комментариях.

[моё] Переозвучка Программирование Программист IT IT юмор Хэнкок Быдлокодинг Юмор Видео
18
Brewer2000
Brewer2000

Угадай где говнокод!?⁠⁠

7 лет назад

Вот два примера реализации функции для обнуления массива:


int a[n];

...

void clear_array_1()

{

int i; 

for (i = 0; i < n; i++)

{

a[i]=0;

}

}

....

void clear_array_2()

{

a[0]=0;

a[1]=0;

a[2]=0;

...

a[n-2]=0;

a[n-1]=0;

}

...


Информация к размышлению:


Функция void clear_array_1

- достоинства, в случае большого массива малое количество строк кода (меньший конечный размер приложения) ; 

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


Функция void clear_array_2

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

- недостатки, в случае большого массива большое количество строк кода (дополнительные затраты времени на написание, но если платят за количество строк, резко превращается в достоинство! ;-) ).


Разъясните мне бестолковому, какая из функций говнокод, а какая для тру отцов???

Показать полностью
[моё] Быдлокодинг Программирование Холивар Текст
50
triggerbot
triggerbot

Ответ техподдержки Самсунга на массовые проблемы с аккумулятором после обновления.⁠⁠

7 лет назад

Признавать проблему Самсунг отказывается. За кого линии считают покупателя когда пишут такие обоснования?

Показать полностью 5
[моё] Samsung Быдлокодинг Обновление Служба поддержки Длиннопост
15
triggerbot
triggerbot

Обновление Samsung Galaxy S9+⁠⁠

7 лет назад

Привет быдлокодерам Самсунга.


После обновления разряд батареи за ночь в режиме ожидания 50%


Номер сборки : G965FPUU2BRJ3

Версия Android : Oreo(Android 8.0.0)

Дата выпуска : 2018-10-30


Уровень исправления безопасности : 2018-10-01

· Улучшена производительность. - Фронтальная камера

- Повышена яркость лиц на фото, снятых при интенсивном контровом освещении.

· Повышена безопасность устройства.

· Произведены общие улучшения стабильности функций.



Техподдержка советует включить режим полета.


Брал айфон 8+ , страдал на 11 ос , опплевался, продал.

Купил Самсунг...

Кто не обновился , не обновляйтесь.

На 4pda народ решение проблемы ещё не нашёл.


Как в том анекдоте:

99 багов в коде, 99  багов в коде, Один нашли, пофиксили.

127 багов в коде, 127 багов в коде...

Показать полностью
[моё] Ssmsing Galaxy9+ Быдлокодинг Обновление Текст
24
XanderEVG
XanderEVG
Arduino & Pi

Таймерная служба и диспетчер для ардуино от DiHalt⁠⁠

7 лет назад

Пост по мотивам  дверного звонка.

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


Логично в таком случае делить весь код на мелкие задачи, выполняющие что-то одно и запускать их по мере необходимости, по очереди. Этим занимается диспетчер задач: у нас есть очередь из таких задач, диспетчер проходит по очереди и выполняет наиболее старую (первый встал в очередь, первый выполнился).


Пример на том же светодиоде. Допустим, в прерывании мы увидели что нужно зажечь светодиод, причем поскорее, но не задерживая другой код. Добавляем задачу в очередь прямо в прерывании:

SetTask(BlinkON); 

Функция добавления выполняется не долго (конкретно сколько - хз, можно посчитать, это вам в качестве домашки). Понятно что моргнуть светодиодом можно и в самом прерывании, это быстрее. Но к примеру:

SetTask(SendToSerial_длинный_текст); 

уже выгода ощущается заметно.


Вторая часть "системы" - это таймерная служба. Суть та же, но задачи выполняются с задержкой.

Например в прерывании мы спалили что нажата кнопка:

if(кнопка нажата){

отключаем прерывание у этой кнопки;

SetTask(btnPress); 

}


В btnPres() мы выполняем нужные действия и добавляем SetTimerTask(btnRelease, 100);

Таким образом через 100мс после нажатия кнопки сработает btnRelease, где мы обратно включим прерывания с кнопки. Этим самым мы добиваемся того, что в главном цикле меньше говнокода, портянки проверок и запусков всего, упрощаем масштабирование кода(пример в конце) и заодно, конкретно в этом примере мы избавляемся от головняка отслеживания дребезга.


Теперь кусок псевдокода моего проекта, задача:

1) по нажатию кнопки включать проигрывание мелодии

2) ночью снижать громкость, время синхронизировать с RTC микрухой

3) ограничивать звук вручную с переменного резистора

4) синхронизироваться с телефоном(выбор мелодии, установка времени тихого режима, синхронизация времени телефон->ардуино->RTC и тд)


Главный цикл:

void setup() {

поднимаем_serial();

настраиваем_пины();

инициализируем_переменные();

настраиваем_mp3();

настраиваем_прерывание_с_кнопки(PCIN2);

настраиваем_таймер_для_отсчета_времени();


InitRTOS(); // Инициализируем ядро таймерной службы

RunRTOS(); //Запускаем таймерную службу и диспетчер задач


// Запуск фоновых задач

SetTimerTask(read_max_volume, 1000);  //читаем данные с переменного резистора каждые 1 сек

SetTimerTask(check_time, 1000);  //проверяем время, не поздно ли. если поздно - включим тихий режим

SetTimerTask(read_rtc, 65000);  //синхронизируемся с RTC

SetTimerTask(check_sync, SYNC_PERIOD); //читаем bluetooth модуль, проверяем пришли ли данные

SetTimerTask(BlinkON,500); //моргаем светодиодом

sei();

}


void loop() {

TaskManager(); 

}


И все, ничего лишнего. check_sync проверяет есть ли данные в буфере от bluetooth модуля.

Если данные есть - мы их считываем и запускаем задачу их распарсить. Как только доходит очередь до функции парсинга, мы понимаем какой пакет данных пришел:

- если это запрос текущих настроек - отправляем ответ

- если это данные с новыми настройками - принимаем и сохраняем их

- если это запрос "воспроизведи текущую мелодию" запускаем задачу воспроизведения


Каждую задачу нужно писать так что бы она выполнялась как можно быстрее, никаких delay внутри быть не должно(кроме совсем уж мелких, как у 1-wire), вместо этого отдаем управление другой задаче, предварительно добавив нужный флаг состояния этой задачи и добавив себя же в очередь(таймерную)

Слишком сильно делить задачи тоже не стоит, т к очередь не бесконечная(это настраиваемый параметр)


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


UPD:  Забыл про пример расширяемости кода. Допустим мы захотели к дверному звонку добавить пару функций:  датчик дыма, угарного газа, с оповещением или датчик движения, с оповещением, etc.

Для этого нужно добавить в конец setup() пару строк:

SetTimerTask(check_gas, 1000);

SetTimerTask(check_motion_sensor, 500); 

Останется написать сами эти функции. т к опросы датчиков происходят очень редко, по меркам МК, это нисколько не нагрузит ни очередь, ни сам микропроцессор. Функция проигрывания уже написана, нам нужно только записать нужные мелодии на флешку и запомнить их id


Вопросы, пожелания и критика приветствуется)

Показать полностью
[моё] Arduino Dihalt Длиннопост Текст Быдлокодинг Программирование Диспетчер задач
16
IFManElseTlen

Не надо так⁠⁠

7 лет назад
Не надо так
[моё] Программирование Быдлокодинг Криворукие быдлокодеры
36
40
Airyng
Лига Разработчиков Видеоигр

Симулятор говнокодера⁠⁠

7 лет назад

Дамы и господа, предлагаю вашему вниманию небольшой симулятор говнокодера на основе известного в геймдевовских кругах исходника игры "ЩИ: Симулятор Жестокости".

По сути можно замаскироваться на работе и косить под эдакого рубаку-парня, тоннами изливающего говнокод на экран с клавиатуры. Идея, конечно же, позаимствована с hackertyper.com, который, кстати, оброс говеной рекламой.


Собственно, сам симулятор по ссылке:

http://nooby-games.ru/симулятор-говнокодера

Симулятор говнокодера
[моё] Быдлокодинг Симулятор Щи Gamedev Домашний геймдев
5
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии