Истории с тегом: веб-разработка

Всего историй: 342

9677

Бар «Двойной инкремент»

Нужно было добавить на одну из страниц проекта счётчик просмотров. Самый-самый простой: если кто-то запросил страницу, то увеличиваем на один предыдущее значение в базе. Но такая простая задача заняла ровно один вечер и одно утро, почти заставив меня поверить в сверхъестественное, прежде чем была реализована.

В качестве библиотеки для общения с базой MySQL на сайте используется библиотека ActiveRecord. Соответственно, весь код составил пару строк:

$faq = Faq::find($id);

$faq->views++;

$faq->save();

Получаем нужную запись, увеличиваем значение поля на единицу и сохраняем.

При тестировании выяснилось, что счётчик посещений при заходе увеличивается не на один, а на два. Перепроверил на всякий случай структуру таблицы в базе данных, попробовал на всякий случай обновить значение другим способом (вдруг ошибка в библиотеке?), погуглил по запросу «activerecord double increment problem» — всё без толку. Не понимая, что может быть не так в коде, ушёл спать, так как обычно это помогает — за ночь мозг переосмысляет проблему и утром выдаёт свежее решение.

Решения утром не оказалось, и я уже был готов поверить в сверхъестественное и выводить количество посещений как значение поля, делённое на два, но в очередной раз перезагружая страницу с этим адским счётчиком, в статусной строке браузера я заметил промелькнувшее на мгновение слово «yandex». Да, я тестировал сайт в Firefox с установленной панелью RDS bar, которая дёргала страницу синхронно со мной, увеличивая счетчик ещё на единицу.

9666

Артефактово-кракозябрьский словарь

Сижу ночью, пишу сайт. Перетаскиваю очередной файл в Notepad++, смотрю — с кодировкой что-то совсем плохо, вообще какая-то дикая кракозябра. Зову мужа. Подходит.

— Тебе дырку в стуле проделать и мышку на пол положить?

Показывает на расширение jpg. Видимо, спать пора, да вот теперь ржач не даст.

9658

А стулья потом

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

— Тут вот надо поставить котёл.

— Без проблем, деньги давай предоплатой, насяльника!

Поставили котёл.

— А теперь надо трубы ввести.

— Тут, насяльника, низзя ввести, стены мешать будут.

— Что делать?

— Котёл надо снимать, стену заделывать, котёл ставить туда. Или будет некрасиво, и кирдык трубам в мороз.

— Делайте!

— Без проблем, деньги давай предоплатой, насяльника!

Расплатились.

— Окно ставь сюда!

— Без проблем, деньги давай предоплатой, насяльника!

Поставил.

— Что-то низко… Повыше надо.

— Без проблем, деньги давай предоплатой, насяльника!

В очередной раз:

— А ты не видел или не знал, что ли?!

— Видел, знал, насяльника. Ты говоришь и платишь — я делаю.

9654

Сайт с верандой и трубой

— Добрый день. Я хочу построить у вас дом.

— Да, какая конструкция вас интересует?

— Я хочу такой, двухэтажный, как у всех!

— Как это — «как у всех»? Какая облицовка, планировка, какая крыша?

— Да я же не строитель! Вы профессионалы, вам виднее. Делайте, чтобы получше и как все делают.

— Хорошо! Вот вам макет.

— Да! Всё замечательно, делаем!

Проходит время.

— Ой! Что вы сделали! Там же окна с южной стороны в спальне!

— Всё сделано, как на макете. Вы же не давали пояснений.

— А сами что, не могли догадаться? А это что за пристройка? Разберите её!

— Но она же была на макете. Мы её месяц делали.

— Ну и что? Разберите! Вы же профессионалы, вам легко это сделать. А почему эта дверь открывается? Я хотел, чтобы она была замурована! А почему крыша черепичная?

— Вы сказали: «Как у всех». У большинства черепичная.

— Да я вам не за то, чтобы вы думали, плачу! Вот у моих знакомых…

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

9617

Скачать бы интернет

— А где взять программу *****?

— Это веб-приложение.

— Ну, а где его взять-то?

— Зайдите браузером по адресу *****.ru.

— Ясно. А как её установить?

Я обожаю наших клиентов.

9590

ЧСВ РЖД

На днях надо было срочно заказать подруге билет из Москвы в Уфу и обратно. Облазив интернет, принял решение всё-таки воспользоваться сайтом РЖД.

Я интернет-разработчик и каждый день придумываю интересные, а главное, удобные штуки для абсолютно обычных пользователей глобальной сети. У меня ушло полчаса, чтобы понять, что и как нужно сделать на официальном сайте РЖД. Всплытие каких-то подсказок, которые ещё больше вводят в ступор, разбитая сетка вёрстки, поломанные скрипты, исчезающие меню… Миллиардная компания не может позволить себе сделать удобный сайт, где архитекторами было бы всё продумано, дизайнерами отрисовано, верстальщиками выровняно, программерами реализовано, тестировщиками просмотрено под нагрузкой?

Но больше всего меня впечатлило окно-попап с расшифровкой заклинаний «У1», «2Л», «1Н». Руководство РЖД серьёзно считает, что я должен каждый раз открывать новое окошко и вычитывать, что означают эти маркировки? Напишите, блин, сразу доходчиво, что и как. Нет? Найдём другой способ доставки себя в Уфу.

Нафиг! Купили билет на самолёт, а РЖД со своим ЧСВ пусть ездит полупустым.

9583

Тяжела жизнь без App Store

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

Сайт первый обещает фри-загрузку. На деле требует платного SMS (конечно же, с заключением договора на месячную подписку за 900 рублей). Вам мимо.

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

Сайт третий. Страница полна истерично-восторженными комментариями загрузивших. Кнопка «Скачать» отсутствует.

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

Владельцы таких софтосайтов, по-моему, просто идиоты.

9563

Синий зуб звонит бревну

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

— Отсутствует 301-й редирект. Сайт работает только с WWW.

— Работает только под «ослом». Пришлось запускать через Wine.

— Отсутствует поиск.

— Имеется русская локализация, но переведённая в стиле «Синий зуб — Позвонить бревну».

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

И как тут не вспомнить бородатый анекдот, как программисты строили дом?

9546

Белое ничто

На днях решил попиратить — скачать нужную и довольно редкую книгу. Искал долго, но всё-таки нашел. Перехожу на сайт из поисковика.

Статья закрыта для незарегистрированных пользователей. ОК, мне не жалко. Нажимаю «Зарегистрироваться», всё заполняю, добираюсь до пункта «Введите код с картинки». Вместо картинки — её отсутствие. Обновляю саму картинку — ничего. Обновляю страницу — ничего.

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

9536

Благодарность за багодарность

Я работаю системным администратором, по вечерам пишу на PHP или Python, а для удовольствия ищу «дырочки» на сайтах. Первое, что я делаю, зайдя на новый сайт, — открываю исходники страницы. Мне нравится сам процесс поиска.

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

Блог-платформа N с элементами социальной сети. Долгое время пользовался, при нахождении бага рассказывал админам. После очередного захода нашёл серьёзную дыру. Решил попросить денег за работу — время всё же тратил. Пригрозили статьёй за вымогательство.

Очередной крупный сайт. Уязвимость, позволящая получить доступ в админку. Рассказываю админам. Грозят подать в суд.

И такое случается часто. Иногда уже думаешь: «А чёрт с ними! Всё равно никакой благодарности. Продам уязвимость на закрытых форумах, хоть деньги получу». Но я продолжаю сообщать админам о дырах.

Уважайте чужой труд и научитесь хотя бы говорить «спасибо».