Как стать автором
Обновить
355.69

Веб-разработка *

Делаем веб лучше

Сначала показывать
Порог рейтинга
Уровень сложности

8 ловушек программирования

Время на прочтение13 мин
Количество просмотров223K


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

Однако я верю в то, что их можно избежать, если знать в какие ловушки можно попасть и как из них выбираться. Возможно эта вера — очередная ловушка.
Читать дальше →
Всего голосов 276: ↑256 и ↓20+236
Комментарии83

О плохих словах, или Как написать текст, не сделав из него какашку

Время на прочтение8 мин
Количество просмотров64K
Здравствуйте.
В первой части статьи я расскажу о некоторых стилистических «косяках», которые придают текстам характерный канцелярский унылый стиль. Вторая часть посвящена более серьёзной ошибке, которая, к сожалению, грозит в ближайшее время стать правилом.
Читать дальше →
Всего голосов 204: ↑180 и ↓24+156
Комментарии167

История создания торрент-рендера для 3ds max

Время на прочтение5 мин
Количество просмотров61K


Всем привет, хочу поведать хабру об одном необычном сетевом сервисе и процессе его разработки. Но сперва пару слов непосредственно обо мне — я прикладной программист MAXScript (это встроенный в 3ds max скриптовый язык), а 3ds max это один из популярнейших пакетов для создания разнообразной 3d-графики и в нем, естественно, есть такая штука как рендеринг, из-за которой собственно все ниженаписанное и делалось.

Идея


Начался процесс с одной идеи, которая пришла мне в голову совершенно внезапно поздней ночью 30 ноября 2010 года и вылилась на следующий день вот в такой пост на форуме 3dcenter.ru:
01/12/2010, 12:49
Пришла эта мысль в голову и не вылазит. Хочу обсудить с сообществом полезность и целесообразность. Основную часть технических подробностей пока опускаю, но сделать сие вполне реально либо в качестве плагина (SDK), либо даже скрипта (MAXScript).
Итак, смысл в том, чтобы бесплатно (или не очень) использовать чужие компы для рендера своих сцен. Есть система рейтинга, т.е. нельзя долго рендерить свое («качать»), но не рендерить чужое («раздавать»). Для тех, кто боится, что его сцены или текстуры будут использовать чужие нехорошие люди, предусмотрена защита — координаты всех объектов сцены изначально обнуляются, правильные координаты шифруются и передаются на рендер отдельным файлом, текстуры бьются на маленькие квадратики и собираются в одну тоже только перед рендером. Показ самой визуализации (VFB) можно отключить, т.е. человек даже не видит, что он рендерит. Аналогичные действия происходят и после рендера — изображение автоматически разбивается на кусочки (либо просто перемешиваются пиксели по какому-то закону) и собрать его правильно можно только на стороне автора сцены. Для альтруистов есть возможность отключения защиты, т.е. сцена с барахлом передается в свободном доступе. Защита может быть и другая, и вообще все что я пишу еще до конца не обдумано — только варианты.

Ну вот в общем как-то так, прошу не кидаться помидорами, и, если велосипед я не изобрел, то обсудим, насколько вообще жизнеспособна эта идея.
Читать дальше →
Всего голосов 199: ↑192 и ↓7+185
Комментарии61

HTML по стандартам

Время на прочтение10 мин
Количество просмотров124K
Привет Хабр!

image Изначально хотел назвать статью «HTML по ГОСТ`у», но потом выяснилось что у большинства программистов не было предмета «Метрология и стандартизация» и о «стандартизации», «сертификации», «унификации» не все слышали.

В i-Free я много занимаюсь разработкой веб-приложений. А поскольку их много, они разные и работают в разных условиях, то само собой приходится задумываться о стандартизации. Есть такой проект «Пуленепробиваемый HTML5» (http://html5boilerplate.com/), в котором разработчики решили создать идеальный шаблон странички. Он мне очень нравился, и все свои проекты я начинал именно с него. Но, исправляя баг за багом, делая все новые и новые приложения, я пришел к выводу, что многого в нем не хватает. В этой статье я хотел бы рассказать о том, что обычно пропускают при написание страничек и веб-приложений и показать, чем и зачем я прокачал свой шаблон пустой странички.
Читать дальше →
Всего голосов 190: ↑167 и ↓23+144
Комментарии49

Истории

Только разработчики 90-х помнят это

Время на прочтение5 мин
Количество просмотров70K
Часто ли ты вставлял <blink> в <marquee> тег? Это сейчас Pixar получает все награды, а тогда в 90-х именно этот метод был наивысшим искусством в анимации. Ты был новатором, если совмещал эти теги; личностью, создающей инновацию; человеком, которому все подражали.

Ты был разработчиком в 1990-х.

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

Отложим jQuery в сторону, отвлечемся от нереляционных баз данных… У нас есть более важные вещи, о которых и пойдет разговор.
Читать дальше →
Всего голосов 219: ↑164 и ↓55+109
Комментарии188

Стрелочные функции (Arrow functions) в ECMAScript 6

Время на прочтение7 мин
Количество просмотров90K
Arrow functions madness
Одной из самых интересных частей нового стандарта ECMAScript 6 являются стрелочные функции. Стрелочные функции, как и понятно из названия определяются новым синтаксисом, который использует стрелку =>. Однако, помимо отличного синтаксиса, стрелочные функции отличаются от традиционных функций и в других моментах:
  • Лексическое связывание. Значения специальных переменных this, super и arguments определяются не тем, как стрелочные функции были вызваны, а тем, как они были созданы.
  • Неизменяемые this, super и arguments. Значения этих переменных внутри стрелочных функций остаются неизменными на протяжении всего жизненного цикла функции.
  • Стрелочные функции не могут быть использованы как конструктор и кидают ошибку при использовании с оператором new.
  • Недоступность «собственного» значения переменной arguments.

Было несколько причин для введения этих отличий. Первоочередная — это то, что связывание (binding) используется довольно часто в JavaScript. Очень легко потерять нужное значение this при использовании традиционных функций, что может привести к непредсказуемым последствиям. Другая причина, это то, что JS-движки смогут легко оптимизировать выполнение стрелочных функций за счет этих ограничений (в противоположность традиционным функциям, которые могут быть использованы в качестве конструктора и которые свободны для модификации специальных переменных).

Подробности
Всего голосов 118: ↑110 и ↓8+102
Комментарии62

Как я взломал Гитхаб еще раз

Время на прочтение3 мин
Количество просмотров88K
Это история о том, как я соединил 5 Low-severity багов в один большой баг, с помощью которого можно было читать/писать в приватные репы на Гитхабе (опять).

Несколько дней назад гитхаб запустил баунти программу. За 4 часа я смастерил такой URL после посещения которого я получал доступ к вашему гитхаб аккаунту и репозиториям. Хотите узнать как?
Читать дальше →
Всего голосов 440: ↑421 и ↓19+402
Комментарии56

DevDocs: вся документация разработчика в одном месте, с быстрым и удобным интерфейсом

Время на прочтение1 мин
Количество просмотров55K


Сайт devdocs.io — проект французского программиста Тибо Курубля. Здесь собрана и упорядочена документация по наиболее популярным веб-технологиям, фреймворкам и API, и многим другим средствам разработки. DOM, HTML, JavaScript, jQuery, Node.js, PHP, Ruby, Python, Git, Angular, Backbone, CoffeScript, Less, Sass, Redis и много чего ещё… Всё оформлено в едином стиле, по всей базе документации работает поиск, в том числе нечёткий. Есть возможность выбрать только необходимые технологии, по которым надо искать. Вообще, интерфейс DevDocs радует — ничего лишнего, всё очень понятно и функционально, доступно множество клавиатурных сокращений.
Читать дальше →
Всего голосов 166: ↑156 и ↓10+146
Комментарии31

Шпаргалка по шаблонам проектирования

Время на прочтение2 мин
Количество просмотров1.4M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Всего голосов 192: ↑179 и ↓13+166
Комментарии66

Трюки с CSS-анимациями: мгновенные изменения, отрицательные задержки, анимация transform-origin и другое

Время на прочтение14 мин
Количество просмотров221K
Применяя CSS-анимации в повседневной работе, я постепенно выработал привычку экспериментировать с ними в свободное время. Постоянно пытаясь реализовать очередную интересную задумку с использованием как можно меньшего числа элементов HTML, я обнаружил немало способов сделать с помощью CSS довольно неочевидные вещи. В этой статье я хочу поделиться некоторыми из них.

Быстрое изменение состояния посреди анимации

Обычно анимации используются для того, чтобы плавно менять свойства элементов со временем. Однако изменения могут также быть практически мгновенными. Для этого надо задать два ключевых кадра с очень маленьким интервалом, например в 0.001%:

@keyframes toggleOpacity {
  50% { opacity: 1; } /* Turn off */
  50.001% { opacity: 0.4; }

  /* Keep off state for a short period */

  52.999% { opacity: 0.4; } /* Turn back on */
  53% { opacity: 1; }
}

Вот как я использовал этот приём для имитации мигающей неоновой вывески с помощью прозрачности и свойства text-shadow:


Читать дальше →
Всего голосов 213: ↑211 и ↓2+209
Комментарии23

Обзор бесплатных сервисов для веб-разработки

Время на прочтение4 мин
Количество просмотров143K
Пост является личной подборкой полезных и нужных онлайн сервисов, которые позволяют бесплатно (или условно бесплатно) создавать действительно крутые вещи и разворачивать их в Сети. Не претендую на новизну или на полноту, но буду счастлив, если кому пригодится.

Всем нам иногда хочется попробовать новую идею, запилить какой-нибудь сайтик про манулов, но чтоб обязательно на node.js, хайлоад реди, с мемкешем, монго, фейловером и с претензией на мировое господство. У меня для Вас хорошие новости: благодаря щедрости проклятых западных капиталистов всё это можно получить совершенно бесплатно.
Читать дальше →
Всего голосов 157: ↑136 и ↓21+115
Комментарии113

Письмо дошло! Дума приняла изменения в законе о льготах для малых ИТ-компаний

Время на прочтение2 мин
Количество просмотров54K
Спустя три года (!) оно случилось: теперь для того, чтобы платить страховые взносы по сниженной ставке в 14%, нужно иметь 7 сотрудников в штате. Раньше минимальный порог равнялся 30. Пруфлинк на Минкомсвязь России.

Самая важная часть:
«Принятый закон меняет порог численности сотрудников в компаниях, претендующих на льготы, с 30 до 7 человек».

История


Три года назад, в 2010-м, Дума подготовила изменения в Федеральном законе «О страховых взносах в Пенсионный фонд Российской Федерации, Фонд социального страхования Российской Федерации, Федеральный фонд обязательного медицинского страхования». Суть изменений была прекрасна: для малых ИТ-компаний процент страховых отчислений снижался до 14% вместо стандартных 34%. Загвоздка была в самом определении малых ИТ-компаний, а именно:

  • Количество сотрудников компании — не менее 50 (потом снизили до 30, но в корне это ничего не поменяло).
  • Доля доходов от реализации ИТ-продуктов и оказания ИТ-услуг — не менее 90%


Со вторым у большинства веб-разработчиков проблем бы не возникло, а вот первое — фактически сводило на нет всю полезность закона. Мы решили пойти в наступление.
Читать дальше →
Всего голосов 110: ↑105 и ↓5+100
Комментарии123

Насколько долго можно делать браузерную игру, не имея огромного бюджета в кармане

Время на прочтение17 мин
Количество просмотров87K
Итак, в мае 2013 года на хабре появилась статья «Сколько стоит сделать браузерную игру», где господин viacheslavnu пробовал посчитать — какая сумма средств потребуется на создание и продвижение, казалось бы, простецкой игры для офисного потребителя. Если кто не помнит – сумма получилась в районе 25 миллионов рублей. На тот момент я сам несколько скептически отнесся к указанной сумме, но чем ближе подходила дата нашего старта, тем больше я убеждался, что даже для таких проектов нужны «особенные» вложения капитала, которые не всегда по карману разработчикам без инвестора со стороны.

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

Именно об этом способе я и хочу поведать свою историю. Историю создания одной из таких игр, о возникающих трудностях, о бюджете и некоторых интересных моментах.
Читать дальше →
Всего голосов 176: ↑170 и ↓6+164
Комментарии73

Ближайшие события

8 HTML элементов, которые вы не используете (а следовало бы)

Время на прочтение4 мин
Количество просмотров96K
image
Веб сегодня все больше и больше семантический. Но что означает «семантический»? Почему это важно?

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

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

Ок, итак семантическая разметка — это хорошо, но как ее использовать. Лучше всего начать с замены обычных тегов на более выразительные. Давайте посмотрим восемь элементов, которые позволят вам войти в эту игру.
Читать дальше →
Всего голосов 214: ↑175 и ↓39+136
Комментарии101

Тяжкое бремя одинокого Indie

Время на прочтение5 мин
Количество просмотров66K
Здравствуйте. Меня зовут Илья Михайлов, живу я в Казахстане в городе сАтоне. Хочу поделиться с вами своим опытом разработки собственной игры «The Woken Shadow».

Думаю, в данный момент будет правильней всего, если вы посмотрите этот короткий (меньше минуты) ролик.



Да, с одной стороны это наверно круто, что один человек и моделировал, и анимировал, и программировал, да ещё и музыку написал, но возникает один вопрос:

Зачем я всё это делал в одиночку?
Читать дальше →
Всего голосов 186: ↑172 и ↓14+158
Комментарии74

60 FPS? Легко! pointer-events:none!

Время на прочтение2 мин
Количество просмотров98K


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

.hover .element:hover {
  box-shadow: 1px 1px 1px #000;
}
Читать дальше →
Всего голосов 144: ↑138 и ↓6+132
Комментарии58

Стоит ли до верится спел чек еру? Про стой пять ни чинный пост до бра

Время на прочтение1 мин
Количество просмотров31K
image

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

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

По чувствуй себя граммар-наци
Всего голосов 237: ↑169 и ↓68+101
Комментарии66

В поисках потерянной эффективности

Время на прочтение4 мин
Количество просмотров39K
Все имена сохранены, все совпадения имеют под собой злой умысел.

Бонд оторвал взгляд от монитора, откинулся на спинку кресла и потянулся. Позвонки громко хрустнули, и кресло жалобно заскрипело в ответ. Агент 007 поморщился, и в который раз подумал, что ему пора на покой. Всем в этой конторе уже давно пора на покой. Даже креслу.

В комнату вошёл М.

— Пойдём в переговорку, Джеймс. И отчёт свой не забудь, — в голосе М звучали нотки обречённости.

— Может, ну его к чёрту? — спросил Бонд. — Я же достал этот чёртов чемоданчик с ядерной кнопкой. Мир спасён!

М скорчил кислую мину.

— Ты отстрелил палец китайскому психопату в тот момент, когда он запускал ракеты в сторону Лондона! Ещё бы полсекунды, и… — М не договорил, и в сердцах махнул рукой. — Пошли уже.
Читать дальше →
Всего голосов 151: ↑137 и ↓14+123
Комментарии29

Стражи ночи

Время на прочтение9 мин
Количество просмотров81K
Будучи высококвалифицированным исследователем, я потратил немало времени на продвижение науки вперёд. Но я родился на Юге и искренне убеждён, что прогресс — это выдумка, и что нужно готовиться к Судному дню, к жатве того, что мы посеяли и к появлению быстрых зомби, медленных зомби, и даже вежливых зомби, которые обращаются к вам «сэр» или «мадам», но в итоге пытаются съесть ваш мозг дабы заполучить ваши навыки. Когда нагрянет революция, нужно быть готовым; поэтому в моменты тишины и покоя, когда я не произвожу очередной прорыв в науке, я размышляю над тем, что же я буду делать, когда прогноз погоды изменится на «РЕКИ КРОВИ ЦЕЛЫЙ ДЕНЬ ДО СКОНЧАНИЯ ВРЕМЁН».

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

Но! Но… Самым важным членом моей банды будет системный программист, ибо в гоббсовском кошмаре невероятных масштабов умеющему отладить драйвер устройства или распредёленную систему человеку можно доверять; системный программист видел ужасы Вселенной и понимает безысходность бытия. Системный программист писал драйверы для устройств, прошивку которых создавал то ли пьяный ребёнок, то ли трезвый карась. Системный программист отлавливал проблему с сетью через восемь машин, три часовых пояса и с дружеским визитом в Омск, откуда ее перенаправили в левое переднее копыто той лошади, что избавила Трою от перенаселения.1 Системный программист читал исходники ядра для лучшего понимания процессов мироздания и видел комментарий «И ЭТО РАБОТАЕТ ЛОЛ» в коде планировщика, и не смеялся он, но плакал; и отправил он патч ядра для восстановления баланса Силы и устранения инверсии приоритетов, что приводила к зависанию MySQL. Системный программист знает, что делать, когда общество падёт, потому что он уже живет в мире, где царит беззаконие.
Читать дальше →
Всего голосов 157: ↑136 и ↓21+115
Комментарии50

Билл Гейтс финансирует создание тонких графеновых презервативов

Время на прочтение2 мин
Количество просмотров106K
image
Графен — тонкий, легкий и непроницаемый для всего кроме мельчайших молекул материал (он, например, является отличным водяным фильтром). Презервативы же, хотя и являются отличными барьером для болезней передающихся половым путем — не являются ни тонкими ни легкими, а это уменьшает чувствительность, из-за чего многие их не используют. Фонд Билла и Мелинды Гейтс считает, что мир станет лучше, если людям будет нравиться пользоваться презервативами. Поэтому они решили профинансировать разработку тонких, повышающих удовольствие графеновых кондомов.
Читать дальше →
Всего голосов 211: ↑179 и ↓32+147
Комментарии141

Вклад авторов