Pull to refresh

Интересный отрывок скрипта регистрации

Reading time 1 min
Views 1.1K
Delirium coding
Просматривал исходники одного проекта, зарубежный портал с возможностью публикации аудио-видео и т.д., не суть важно. И вот так там реализована регистрация пользователей, вернее — получение id пользователя при его регистрации.
Читать дальше →
Total votes 42: ↑24 and ↓18 +6
Comments 107

JavaScript

Reading time 1 min
Views 1.7K
Delirium coding
Сегодня на работе встретил в коде на JS довольно забавный кусок:

obj_.checked=(obj_.checked==true)?false:true;
Total votes 54: ↑34 and ↓20 +14
Comments 73

Причины и следствия

Reading time 3 min
Views 1.1K
Delirium coding
Здесь я хочу поделиться с вами тремя примерами неадекватного кода. И в то же время постараюсь разобрать и классифицировать каждый случай. Тем самым расскажу не только «что такое плохо?», но и «почему?»

Читать дальше →
Total votes 79: ↑48 and ↓31 +17
Comments 95

Перебор, бессмысленный и беспощадный

Reading time 1 min
Views 461
Lumber room
Этот кусок AS1-кода задаёт поведение нескольких кнопок. Орфография и пунктуация сохранены. Я уж прямо не знаю, смеяться или плакать — мне такого кода выдали пару десятков тысяч строк и сказали доделать…

onMouseDown = function() {;
if (btn_right._visible && btn_right.enabled) {;
if(btn_right.hitTest(_xmouse, _ymouse, 0)){;
btn_right_release();
};
};
if (ready._visible && ready.enabled) {;
if(ready.hitTest(_xmouse, _ymouse, 0)){;
ready_release();
};
};
if (ready2._visible && ready2.enabled) {;
if(ready2.hitTest(_xmouse, _ymouse, 0)){;
ready2_release();
};
};
if (yesno.no._visible && yesno.no.enabled) {;
if(yesno.no.hitTest(_xmouse, _ymouse, 0)){;
no_release();
};
};
if (yesno2.no._visible && yesno2.no.enabled) {;
if(yesno2.no.hitTest(_xmouse, _ymouse, 0)){;
no2_release();
};
};
};
Total votes 12: ↑9 and ↓3 +6
Comments 4

Хабрапоиск + Визуальный поиск в IE8

Reading time 3 min
Views 584
Website development *
Категорически приветствую тебя %username%.
Не знаю как у Вас, а у меня ночью наступает «творческий порыв», о чем я обычно утром очень сильно жалею. Но не будем сейчас о плохом, т.к. пока не утро, то я еще успею поделиться одним из
своих маниакальных творений
Total votes 90: ↑83 and ↓7 +76
Comments 18

Дыры в форуме NetCat

Reading time 1 min
Views 2.6K
Delirium coding
Вы наверное уже слышали о CMS Netcat и даже видели кое-какие примеры кода этой CMS.

С тех пор ребята пообещали исправится и, кроме прочего, год назад пообещали выпустить новый форум через пол года. Воз и ныне там.

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

Вот я и решил поделиться этим багом.

1) Заходим в любую ветку форума, пусть для определенности будет эта.
1,5) Если вы залогинены, нужно выйти
2) Нажимаем Ответ
3) Вводим в поле «Имя пользователя» число.

Все!

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

Можно представить, какой бардак творится в коде у системы.

UPD. Сейчас форум на сайте компании закрыли. Если в ближайшее время появится патч, можно считать что я добился того, что хотел, публикуя эту статью.
Total votes 125: ↑110 and ↓15 +95
Comments 203

Malbolge: Programming from Hell

Reading time 2 min
Views 26K
Abnormal programming *
Sandbox
Доброе время суток, Хабраобщество.

Страдал я в свое время ерундой, отслеживая появление разных эзотерических языков программирования и попался мне небезызвестный всем нам Malbolge. Вот собственно о нем я и хочу поведать. Ну, начнем-с.
Читать дальше →
Total votes 29: ↑17 and ↓12 +5
Comments 10

Вычисление факториала на числах Чёрча

Reading time 5 min
Views 25K
Abnormal programming *JavaScript *Functional Programming *
Доброго дня, друзья!

Тема функционального программирования раскрыта на Хабре весьма неплохо, есть целая куча статей посвященных λ-исчислению, числам Чёрча и подобным темам, так что ничего нового я не открою, зато мы напишем одну бесполезную и крайне неэффективную программу.

Для того, чтоб жизнь мёдом не казалась, ограничим себя небольшим подмножеством языка JavaScript, а именно, будем использовать только анонимные функции от одного аргумента. Больше нам ничего не потребуется (ну почти).

Начнем с определения факториала, и посмотрим, что нам понадобится в процессе решения задачи:

var fact = function (n) {
  if (n === 0) return 1;
  return n * fact(n - 1);
};


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

Готовы?
Ну тогда поехали.
Total votes 51: ↑51 and ↓0 +51
Comments 47

Несмешная первоапрельская шутка от разработчиков Magic Lantern

Reading time 4 min
Views 78K
Abnormal programming *Delirium coding
Sandbox
Magic Lantern (ML) — неофициальная прошивка для фотоаппаратов Canon, которая обеспечивает повышенную функциональность (например, dual-iso, стекинг по фокусу, raw-видео, тонкая настройка параметров съемки и многое другое). Прошивка устанавливается непосредственно на flash-карту, что позволяет безболезненно удалить ее или обновить простой заменой файлов.

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

Все описанные действия производились с использованием камеры Canon 650D со стоковой (1.01) прошивкой.

28 марта. Началось все тогда, когда жажда исследования чего-то нового накопилась до критической массы и в сети была случайно обнаружена информация о возможности автоматической съемки фокус-стека на моем фотоаппарате. Но данные возможности требовали установки неофициальной прошивки Magic Lantern.

Быстрый поиск показал, что:
  • текущая прошивка фотоаппарата не поддерживает текущие сборки ML;
  • для модели 650D нет стабильной сборки, есть только ночные билды;
  • некоторые функции ML в 650D не работают/работают криво;
  • авторы предупреждают, что можно закирпичить фотоаппарат неверными действиями по прошивке.

После чего фотоаппарат был успешно перепрошит на последнюю официальную версию для Canon 650D 1.04. И строго по инструкции, со сбросом всех настроек и полным форматированием карты, был установлен последний ночной билд Magic Lantern (от 28 марта).
Читать дальше →
Total votes 143: ↑119 and ↓24 +95
Comments 92

Коллекционирую вредные советы для С++ программистов

Reading time 2 min
Views 22K
PVS-Studio corporate blog Abnormal programming *C++ *Delirium coding C *

Помогите, у меня лапки
Я пишу статьи, посвященные написанию качественного кода и про поиск ошибок с помощью инструментов статического анализа. Однообразие наскучивает, хочется пошалить. А давайте все вместе напишем статью "100 вредных советов для С++ программиста". Я начну, а вы подхватите.

Читать дальше →
Total votes 58: ↑48 and ↓10 +38
Comments 171