Рубрика «ошибки» - 13

Программный сбой ценового сервиса привел к продажам тысяч товаров в британском Amazon по 1 пенсу - 1

Неожиданный подарок получили перед Рождеством британские пользователи Amazon. Из-за программного сбоя стороннего сервиса RepricerExpress система выставила цену тысяч товаров сотен продавцов всего по 1 пенсу. Этот сервис автоматически выставляет цену товара, сравнивая с ценой аналогичных товарах на других сайтах. Как только пользователи британского подразделения Amazon об этом узнали, многие стали тут же покупать десятки и сотни товаров по такой цене.

В то время, как покупатели совершали такие покупки, продавцы терпели тысячные убытки. Многие компании, которые продавали свои товары через Amazon, теперь собираются подавать на банкротство. К примеру, торговец игрушками всего за пару часов потерял более 150 тысяч долларов. Всего за час у продавца приобрели более 1,6 тысяч товаров.

Читать полностью »

Gangnam Style — это сингл южнокорейского музыканта Psy. Клип начал набирать миллионы просмотров сразу после выхода. Уже 21 декабря 2012 года видеоролик первым в истории набрал 1 миллиард просмотров.

Здесь этот медиафеномен можно было бы оставить в покое, если бы не маленький факт того, что недавно Gangnam Style вскрыл недостатки видеохостинга. Оказалось, что количество просмотров хранится в 32-битной целой переменной, и счётчик остановился на 2 147 483 647. Об этом разработчики сообщили в официальном аккаунте YouTube.

Читать полностью »

Содержание

Отладка изначально вдвое сложнее написания кода. Поэтому, если вы пишете код настолько заумный, насколько можете, то по определению вы не способны отлаживать его.
Брайан Керниган и П.Ж.Плауэр, «Основы программного стиля»

Юан-Ма написал небольшую программу, использующую много глобальных переменных и ужасных хаков. Ученик, читая программу, спросил его: «Вы предупреждали нас о подобных техниках, но при этом я нахожу их в вашей же программе. Как это возможно?» Мастер ответил: «Не нужно бежать за поливальным шлангом, если дом не горит».

Мастер Юан-Ма, «Книга программирования».

Программа – это кристаллизованная мысль. Иногда мысли путаются. Иногда при превращении мыслей в программу в код вкрадываются ошибки. В обоих случаях получается повреждённая программа.

Недостатки в программах обычно называют ошибками. Это могут быть ошибки программиста или проблемы в системах, с которыми программа взаимодействует. Некоторые ошибки очевидны, другие – трудноуловимы, и могут скрываться в системах годами.

Часто проблема возникает в тех ситуациях, возникновение которых программист изначально не предвидел. Иногда этих ситуаций нельзя избежать. Когда пользователя просят ввести его возраст, а он вводит «апельсин», это ставит программу в непростую ситуацию. Эти ситуации необходимо предвидеть и как-то обрабатывать.
Читать полностью »

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

На этом сайте есть список языков, ругательства на которых были внесены в «базу знаний». URL для доступа к каждому языку формировался так:
http://example.com/index.asp?language=[lang_name]#[чтотоеще]

Решил просмотреть доступные языки. Мало ли, может что-то интересное найдется.

Кто смотрел «Аватар», про синих больших человечков, помнит, что человечки, аватары, говорили на языке На'ви. Английский вариант — Na'vi. К моему огромному удивлению, в списке языков значился Na'vi и я, это было бы не Ъ, решил глянуть ругательства на этом языке. Однако, я не смог этого сделать.

MySQL запросов заботливо вывалил мне в браузер ошибку 80040e14. Построитель запросов, как оказалось, тупо одставлял значение [lang_name] в шаблон запроса и кавычку, используемую в назывании языка, он не экранировал, как так можно?

Пытливый мозг сразу же найдет для себя тут повод немного потестировать и не сможет удержаться от всевозможных испытаний.
Читать полностью »

Cornell University

Здравствуйте! Ввиду выросшего в последнее время интереса к образованию за рубежом, а конкретно к высшему образованию в США, хотелось бы поделиться своим опытом поступления на бакалавра в несколько американских вузов. Так как поставленной себе цели я не достиг, то рассказывать буду с тёмной стороны вопроса — анализ ошибок, которые может допустить абитуриент и способы их избежать. Я не буду углубляться в детали самого поступления, так как этого материала с лихвой хватает на том же хабре. Всех заинтересовавшихся прошу под кат.
Читать полностью »

Приветствую тебя, %USERNAME%!

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

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

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

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

Читать полностью »

Итак, подошел к концу наш хабра-конкурс «Истории, которые меня многому научили»:

Глядя на конкурс историй, мой коллега SlavaPankratov вспомнил две истории из своего прошлого, которые его многому научили:

Из этого видео вы узнаете:

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

P.S. В свое время мы все свои ошибки и инструменты, к которым пришли, свели в подробную интеллект карту «Формула работы с людьми», про которую SlavaPankratov как раз упоминает в видео. Скачать ее можно ниже – под катом.

Читать полностью »

imageЕсли вы собираетесь написать n-ную платежную систему, рекомендую ознакомиться с типичными ошибками в реализации API, которые я собрал в процессе написания модулей для своего проекта.

Читать полностью »

Вчера организация The Linux Foundation объявила о запуске проекта Core Infrastructure Initiative (CII) для финансовой поддержки бедствующих Open Source проектов вроде OpenSSL, который в последние годы жил на пожертвования $2000 в год.

В официальном пресс-релизе The Linux Foundation подчёркивает, что необходимость финансовой поддержке совершенно не связана с низким качеством кода OSS, совсем наоборот. Свободное ПО превосходит проприетарный софт по качеству кода и по безопасности. В подтверждение этого The Linux Foundation сослалась на последнее исследование Coverity Open Scan, результаты которого опубликованы 15 апреля, через неделю после публикации информации о баге Heartbleed.

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

В этой ситуации важно понимать, что качество кода СПО действительно объективно превосходит качество кода проприетарного софта. Условно говоря, если бы код OpenSSL не был открыт, мы могли вообще никогда не узнать об этой уязвимости.
Читать полностью »

Компания Apple недавно допустила крупную ошибку, забыв удалить лишнюю строчку с оператором безусловного перехода goto посередине функции SSLVerifySignedServerKeyExchange для проверки серверной подписи при установке SSL-соединения. В результате, функция успешно завершала работу, независимо от результата проверки подписи.

Однако, это не первый случай в истории, когда критическая ошибка объясняется единственной строчкой кода. Вот ещё несколько таких примеров.

X Server

В 2006 году было обнаружено, что X Server проверяет рутовые права у пользователя, но при этом разработчики в реальности забыли вызвать соответствующую функцию.

--- hw/xfree86/common/xf86Init.c
+++ hw/xfree86/common/xf86Init.c
@@ -1677,7 +1677,7 @@
   }
   if (!strcmp(argv[i], "-configure"))
   {
-    if (getuid() != 0 && geteuid == 0) {
+    if (getuid() != 0 && geteuid() == 0) {
        ErrorF("The '-configure' option can only be used by root.n");
        exit(1);
     }

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js