Pull to refresh
0
Артур Брутян @ArturBrutjanread⁠-⁠only

User

Send message

Никогда не проверяйте e-mail адреса по стандартам RFC

Reading time7 min
Views180K
Множество сайтов требуют от пользователя ввода адреса электронной почты, и мы, как крутые и щепетильные разработчики, всегда стремимся проверять формат введенных адресов строго по стандартам RFC. Благодаря этому наши приложения и сайты проверяют формат e-mail корректно и не имеют проблем с юзабилити, а мы сладко спим, потому что уверены, что все работает как надо.
Ага, как бы не так!
Total votes 141: ↑119 and ↓22+97
Comments103

Плагинная система на ASP.NET. Или сайт с плагинами, мадемуазелями и преферансом

Reading time9 min
Views23K
image

Вместо предисловия


Данный материал является исключительно результатом работы по сбору информации в сети и создания сайта, работающего на основе плагинов. Здесь я постараюсь описать идею работы такой системы и основные компоненты, необходимые для её работы.
Данная статья не претендует на оригинальность, а описанная система не является единственно правильной и красивой. Но если тебе, уважаемый $habrauser$, интересно, как создать такую систему, милости прошу под кат
Читать дальше →
Total votes 29: ↑24 and ↓5+19
Comments19

WOW CSS

Reading time2 min
Views38K
Доброго времени суток, уважаемые хабравчане. Не так уж давно, для того чтобы сделать что-то «округленное» с нефиксированной высотой приходилось создавать таблицу и крайним ячейкам в бэкграунд задавать нарезанные углы. Вообще любое «непрямоугольное» могло быть только графическим изображением. Сейчас же современные стандарты CSS позволяют создавать весьма интересные вещи. Но все нетипичные фигуры в большинстве своем дозволено сделать благодаря псевдо-селекторам :before и :after. Даже существуют некоторые «паттерны» для этого. А в недалеком будущем появится возможность задавать любые формы для элементов. С приходом CSS Masking я бы сказал наступит веб-дизайнерская сингулярность — веб-дизайн сможет быть любым. Единственное ограничение — это предел фантазии дизайнера. Но не будем о будущем. Все же я предлагаю вдохновиться прекрасным настоящим. В этом посте я собрал несколько крутых CSS реализаций. В некоторых из них спрятаны полезные техники, а в других любовь к CSS творчеству авторов этих подделок.

Не для таких же как и я каскадных зануд хочу добавить, что CSS изобретения могут быть и коммерчески выгодными. Только присутствие в CSSAWARDS, СSSWINNER, CSSREEL или CSSDESIGNAWARDS будет неплохой рекламой.

Таймер на чистом CSS




Читать дальше →
Total votes 82: ↑73 and ↓9+64
Comments14

Хотите распределить элементы, привязавшись к их количеству, на одних стилях? Да запросто

Reading time3 min
Views24K
Альтернативное название статьи – «почти :child-count(n)». Потому что именно так оно все и работает. На голом CSS и без каких-либо дата-атрибутов или чего-либо еще в верстке.

Представьте, что у вас есть, например, какая-нибудь лента новостей. Неважно, какая. Главное, что вы не знаете, сколько в ней будет элементов, и как их расставить так, чтобы было симметрично. И хочется сделать что-то бесполезное, но красивое: например, расставить все в две колонки, а некоторые блоки вставить во всю ширину. Каждый третий, или каждый пятый.

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



Как же это сделать?
Total votes 51: ↑43 and ↓8+35
Comments19

ActiveRecord и откат транзакций в Yii

Reading time5 min
Views17K
Хотелось бы рассказать об одной проблеме, с которой мы столкнулись при разработке нашего стартап-проекта для управленческого учета.

Для нашего проекта, как учетной системы, характерно производить изменения в других объектах после сохранения текущего, например, проведение документа по регистрам после сохранения. Суть в том, что после сохранения объекта в транзакции ActiveRecord будет считать, что все изменения прошли успешно, хотя это не гарантировано, ведь последующие изменения могут вызвать Exception, а он в свою очередь к откату транзакции. В нашем случае, это грозит тем, что при ошибочном создании записи, экземпляр ActiveRecord уже будет иметь статус существующей записи (флаг isNewRecord == false) или для новой записи уже будет присвоен primaryKey. Если вы при рендере опирались на эти атрибуты (как мы в нашем проекте), то в результате получите ошибочное представление.
Читать дальше →
Total votes 8: ↑4 and ↓40
Comments13

Что такое Entity System Framework и зачем он нужен в геймдеве?

Reading time18 min
Views52K
На Хабре уже есть очень много интересных статей про создание игры с нуля, но мало статей, описывающих что делать, чтобы своя любимая поделка не превратилась во Франкенштейна и дошла до вменяемого состояния. Автор оригинальной статьи рассказывает, как эволюционировал код игрового движка от кучи хлама в основном цикле к продуманной, расширяемой архитектуре, использующей Entity Component System. В статье много кода, который почти весь часто повторяется — но я не стал его выбрасывать, поскольку с ним будет понятнее, какие изменения вносит автор и как это отражается на всей структуре. Статья рассчитана на новичков, вроде меня, которые уже настрочили несколько «гениальных» прототипов, но теперь не знают, как разобраться в их коде.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments12

Полнотекстовый поиск в InnoDB

Reading time12 min
Views37K
Привет, Хабрачитатель!
Полнотекстовый поиск данных в InnoDB – это известная головная боль многих разработчиков под MySQL / InnoDB. Для тех, кто не в курсе дела я объясню. В типе таблиц MyISAM есть полноценный полнотекстовый поиск данных, однако сама таблица исторически имеет ограничения, которые являются принципиальными в отдельных проектах. В более «продвинутом» типе таблиц InnoDB полнотекстового поиска нет. Вот и приходится мириться бедным разработчикам либо с ограничениями MyISAM, либо с отсутствием поиска в InnoDB. Я хочу рассказать о том, какие есть способы организовать полноценный поиск в InnoDB без магии и исключительно штатными средствами. Также будет интересно сравнить скоростные характеристики каждого способа.
Читать дальше →
Total votes 79: ↑73 and ↓6+67
Comments55

Дерек Сиверс: «Метод интервального повторения — лучший способ изучения языков программирования»

Reading time6 min
Views115K
Краткая справка: в 1998 году Дерек Сиверс основал компанию CD Baby и превратил ее в крупнейшего онлайн-продавца независимой музыки. В 2008-ом вырученные от продажи компании $22 миллиона Дерек передал в благотворительный траст на нужды музыкального образования.
Речи Дерека на TED просмотрели более 5 миллионов раз, а его собственная книга занимала первую строку в чарте книг для предпринимателей на Amazon.
Сам себя Дерек считает «вечным учеником».


Я уже год использую этот метод обучения и могу сказать, что он – самый эффективный из тех, с которыми мне довелось столкнуться за 14 лет изучения программирования.
Читать дальше →
Total votes 74: ↑68 and ↓6+62
Comments45

Выходят бесплатные курсы от Iversity

Reading time2 min
Views26K
Как уже писал Tutufa, компания Iversity обещала выдать 10 грантов по €25000 на создание Массовых Открытых Онлайн Курсов (MOOC).

Сказано — сделано. Одни курсы вышли на английском, другие на немецком.

Выбор неплохой, хотя технических тем не так уж много.
Интересно, что дают?
Total votes 24: ↑22 and ↓2+20
Comments7

Руководство SimpleMembership в ASP.NET MVC 4

Reading time6 min
Views44K
С появлением ASP.NET MVC 4 и WebMatrix команда mvc стремиться сделать вещи проще для разработчика. Исходя из отзывов одно из направлений для улучшения была выбрана безопасность asp.net. 

ASP.NET MVC 4 шаблон проекта Internet добавил несколько новых очень полезных функций, которые построены с использованием SimpleMembership. SimpleMembership принес простую настройку ролей и пользователей, а также добавил поддержку OAuth. Однако новый провайдер не совместим с существующим ASP.NET Membership Provider.

В этом посте я расскажу о том, что такое SimpleMembership и как его использовать в проекте ASP.NET MVC 4.
Читать дальше →
Total votes 22: ↑17 and ↓5+12
Comments11

Корректная обработка проблем аутентификации AJAX-запросов для приложений ASP.NET MVC

Reading time5 min
Views14K
Для современных веб-приложений стало уже нормой использование AJAX при создании пользовательских интерфейсов. Однако, из-за этого, порой, возникают дополнительные сложности. Часто эти сложности связаны с аутентификацией и процессом обработки таких запросов на клиенте.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments12

Подробно о свойстве float

Reading time4 min
Views215K
Правильное использование CSS свойства float может стать непростой задачей даже для опытного верстальщика. В этой статье собраны варианты применения float, а также некоторые ошибки, с наглядными примерами.

Читать дальше →
Total votes 153: ↑140 and ↓13+127
Comments89

Понимание ООП в JavaScript [Часть 1]

Reading time16 min
Views338K
— Прототипное наследование — это прекрасно
JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

Одна из таких особенностей — это реализация прототипного наследования. Этот простой концепт является гибким и мощным. Он позволяет сделать наследование и поведение сущностями первого класса, также как и функции являются объектами первого класса в функциональных языках (включая JavaScript).

К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
Читать дальше →
Total votes 129: ↑119 and ↓10+109
Comments71

DLNA-сервер для дома и семьи

Reading time7 min
Views859K
Как-то так сложилось, что тег DLNA сервер чаще встречается в постах-вопросах, чем в ответах. И если в вопросах установки на домашний Windows-ПК какой-то пользовательский опыт накоплен, то определиться с выбором ПО для домашнего сервера/NAS-а/медиацентра — оказалось непросто. Распределившись по песочницам народ обособленно решает проблемы каждой программы в отдельности. А понять что из них чего стоит и нужно ли оно вообще — лично мне не удалось.

И вот, я вооружившись ссылкой с Википедии Как выбрать DLNA-сервер под Windows, Mac OS X или Linux — опробовал почти всё, что есть под Linux.

Читать дальше →
Total votes 70: ↑66 and ↓4+62
Comments65

Build 2013 для дизайнеров. Обновления в интерфейсе Windows 8.1 и обзор полезных докладов для дизайнеров и проектировщиков

Reading time5 min
Views25K


В этой относительно небольшой статье мы постараемся дать обзор изменений в интерфейсе Windows 8.1, на которые важно обратить особое внимание дизайнерам и проектировщикам приложений для Windows Store. В конце вы также найдете подборку докладов с конференции Build, полезных для дизайнерской аудитории (для разработчиков они, кстати, тоже полезны).
Читать дальше →
Total votes 48: ↑31 and ↓17+14
Comments14

Несколько полезных шаблонов для Android-разработки под eclipse

Reading time3 min
Views29K

Вступление


Привет, коллеги.

Сегодня я хочу поделиться с вами несколькими полезными шаблончиками (templates) для IDE Eclipse, которые помогут вам ускорить некоторые рутинные операции при разработке под Android. Я пока что использую Eclipse для разработки, но, я уверен, что Idea позволит создавать совершенно аналогичные шаблоны.

Что такое шаблоны? Это заранее заготовленные кусочки кода, которые IDE может быстро подставлять для вас при нажатии на Ctrl+Space. Например, введите «syso» в eclipse, нажмите Ctrl+Space. Бац, у вас появился System.out.println(), или «fore» — у вас появится готовый шаблон для цикла for each. Более того, данные кусочки параметризированы, и IDE предложит вам ввести имена для нужных переменных.

Если вам это интересно, приступим.
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments22

На TechDays.ru опубликованы видео докладов DevCon 2013 и записи интервью участников

Reading time5 min
Views9.4K
image
 
29-30 мая в Подмосковье, в традиционном загородном формате, прошла крупная конференция для разработчиков и тестировщиков ПО – DevCon 2013. Вы можете посмотреть отчетный ролик о конференции на TechDays.ru и еще раз погрузиться в воспоминания о том, как это было, быть может, вы даже найдете там себя или своих друзей.
В течение двух дней конференции каждый участник имел возможность:
  • Выбрать для посещения доклады из шести параллельно идущих треков (более чем 60 технологических сессий)
  • Изучить технологии на практике, приняв участие в различных мастер классах, тематических круглых столах
  • Прямо на DevCon, написать своё приложение под платформу Windows на «Night of Coding» (Ночь кодирования)
  • Посетить экспертные зоны и выставки решений партнеров Microsoft
  • В неформальной обстановки обсудить с коллегами и экспертами вопросы будущего технологий разработки
  • У тех, кто не смог присутствовать на конференции лично, была возможность увидеть все основные технологические доклады программы в режиме online.

Если вы не смогли присутствовать на конференции лично и пропустили трансляцию докладов, то теперь у вас есть возможность не только посмотреть все доклады онлайн, но и скачать их вместе с презентациями докладчиков на видео-портале TechDays.ru.
Там же уже опубликованы запись пленарного доклада, который вели Йонас Перссон, Джейсон Зандер и Александр Ложечкин, и видео докладов по восьми oсновным направлениям конференции – Visual Studio, Windows Azure, Windows 8, Windows Phone, корпоративная разработка, эффективная разработка приложений, командная разработка  и ALM. Кроме того, там также доступны записи всех интервью с участниками DevCon 2013.
Читать дальше →
Total votes 25: ↑19 and ↓6+13
Comments5

Основы IP-телефонии, базовые принципы, термины и протоколы

Reading time16 min
Views532K

Добрый день, уважаемые хабражители. В данной статье я постараюсь рассмотреть основные принципы IP-телефонии, описать наиболее часто используемые протоколы, указать способы кодирования и декодирования голоса, разобрать некоторые характерные проблемы.
Читать дальше →
Total votes 70: ↑64 and ↓6+58
Comments58

Бесплатный курс из 11 лекций про маркетинг, продажи и клиентский сервис в веб-студии/агентстве

Reading time2 min
Views44K
Всем привет! В течение последних пяти лет я (Андрей Терехов) периодически писал на Хабре (и в общие блоги, и с недавних пор в блог проекта Ruward) различные материалы про маркетинг, продажи и клиентский сервис в веб-студиях и агентствах. Как правило, эти статьи получали положительный отклик от пользователей. Мы решили пойти дальше и составили самый полный курс из всех, которые я когда-либо читал (включая оффлайн), по данной тематике.

Мы записали более 8 часов видео, разбитых на 11 лекций, подготовили презентации, кейсы, материалы по теме, кучу разного рода примеров, образцов и шаблонов, которые могут пригодится в жизни веб-студии. Это все превратилось в большой спецпроект, который мы и анонсируем сегодня – www.megaplan.ru/digital.

Итак, какие темы вошли в наш курс из 11 лекций (заодно дам ссылки на мои материалы с хабра по этим же темам там, где они есть):

  1. Структура интернет-агентства. Принципы проектного управления. Треугольник sales-pm-account. (по мотивам http://habrahabr.ru/post/66033/)

  2. Ценообразование в веб-студии. Формирование расчетной сметы. Оправдание цены. Виды демпинга и способы борьбы с ним. (по мотивам http://habrahabr.ru/company/ruward/blog/169559/)

  3. Функции службы маркетинга, основные каналы привлечения клиентов. Работа по разным сегментам ЦА.

  4. Позиционирование — ищем ключевые точки. Собственный сайт студии/агентства — типовые ошибки. (по мотивам http://habrahabr.ru/post/121053/)


Читать дальше →
Total votes 53: ↑39 and ↓14+25
Comments14

Путь JavaScript модуля

Reading time28 min
Views121K


На момент написания этой статьи в JavaScript еще не существовало официальной модульной системы и все эмулировали модули как могли.

Модули или подобные структуры это неотъемлемая часть любого взрослого языка программирования. Просто иначе никак. Модули позволяют ограничить область видимости, позволяют реиспользовать части приложения, делают приложение более структурированным, отделяют ресурсы от шума и вообще делают код нагляднее.

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

Дело в том, что раньше не думали, что на JavaScript можно делать огромные проекты, а не просто «пропатчить DOM», поэтому о модулях не думали. Да и вообще не думали о будущем. И тут Внезапно будущее нагрянуло! Все вроде-бы уже есть, а модули в JavaScript, мягко говоря, запаздывают. Поэтому разработчикам приходится крутиться и выдумывать какие-то эмуляторы модульности.

Думаю многие из вас читали прекрасную статью Addy Osmani Writing Modular JavaScript With AMD, CommonJS & ES Harmony, которая стала одной из глав его книги Learning JavaScript Design Patterns в этой статье рассказывается про «современные» JavaScript модули или же читали достаточно старую статью JavaScript Module Pattern: In-Depth 2010 года про «старые» модули.

Я не буду переводить эти статьи и не буду делать из них солянку. В своей статья я хочу рассказать о моем модульном пути. О том как я проделал путь от «старых» модулей к «новым» и что использую сейчас и почему.
Читать дальше →
Total votes 188: ↑185 and ↓3+182
Comments71

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity