Как стать автором
Обновить
3
0
Сергей @Seldon

Пользователь

Отправить сообщение

Багобезопасный код: шаблон проектирования Null Safe

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

Содержание


I. Описание проблемы
II. Обзор существующих решений
III. Вариант решения без применения аспектов.
IV. Решение на AspectJ
V. Динамические аспекты
VI. Послесловие.
VII. Ссылки и литература
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии38

Flight — новый js-фреймворк от Twitter

Время на прочтение4 мин
Количество просмотров52K
Сегодня команда Twitter представила общественности собственный фреймворк. Flight — это легкий компонентный javascript фреймворк, каждый компонент которого описывает поведение элементов на странице. На самом деле, вы скорее всего уже видели Flight в действии, потому что Twitter использует его для своих приложений. Вы можете посмотреть демонстрацию возможностей фреймворка в виде простейшего почтового клиента (код на github).

Новый фреймворк использует ES5-Shim для поддержки ES5 в старых браузерах и jQuery для манипуляции DOM. Также потребуется одна из реализаций AMD, например require.js или loadrunner.
Зачем нам еще один фреймворк?!
Всего голосов 145: ↑141 и ↓4+137
Комментарии39

В поисках идеального css-фреймворка. Требования, реализация, maxmertkit

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


Я обожаю twitter bootstrap. Прост, местами логичен, достаточно красив, подходит для быстрого прототипирования веб-интерфейсов. Но этого оказалось недостаточно. Взяв twitter bootstrap в большой проект, мне пришлось целиком его разобрать и переосмыслить css-фреймворки как боевые единицы в веб-проектах. В результате переосмысления родились требования к любому css-фреймворку, удобному как верстальщику, так и frontent-разработчику.
Требования и реализация
Всего голосов 208: ↑199 и ↓9+190
Комментарии135

Счетчик скорости вращения колеса белкой

Время на прочтение11 мин
Количество просмотров128K
Поселилась у меня дома обычная аналоговая белка.
Жила в клетке, жила себе жила, крутила свое колесо. С разной скоростью. С утра, обычно, энергичнее, к вечеру, подустав, помедленнее. И все это время не давал мне покоя один вопрос. А с какой скоростью бежит белка в колесе?
Я долго думал и однажды…
Решил я сделать счетчик скорости вращения колеса.

На фото — прототип. Поэтому не все еще сделано аккуратно.

image

Сорцы, видео и итоговые результаты измерений под катом.
Читать дальше →
Всего голосов 113: ↑105 и ↓8+97
Комментарии99

Селектор обобщенных родственных элементов

Время на прочтение4 мин
Количество просмотров22K
В последующих нескольких абзацах я хочу подробнее рассмотреть селектор обобщенных родственных элементов (или ~) и область его возможного применения.
На написание данной статьи меня натолкнула малая распространённость информации о нём.

Что это такое?

Основная задача селектора обобщённых родственных элементов — выбор элемента (-ов), идущего после заданного элемента, и имеющего с ним общего родителя.
Читать дальше →
Всего голосов 49: ↑46 и ↓3+43
Комментарии26

Использование Media Queries в Sass 3.2

Время на прочтение4 мин
Количество просмотров64K
С выходом Sass 3.2 начал продвигаться в массы путь объектно-ориентированного CSS (OOCSS), принося с собой принцип DRY и программистское мышление. Media queries и OOCSS стали жизненно важны для современной фронтенд разработки.


Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии5

CSS3 поддержка в браузерах

Время на прочтение1 мин
Количество просмотров35K
imageХотя CSS3 ещё не является стандартом W3C, последние версии браузеров имеют его частичную поддержку. Можно встретить примеры реализующие те или иные свойства CSS3. Но вместе с восторгом многих не покидает также чувство опасения. Связано это в первую очередь с тем, что нет чёткого понимания в поведении браузера при обработке этих свойств. Под катом собрана таблица в которой сравниваются поддерживаемые CSS3 свойства во всех основных браузерах. Кроме этого указывается версия браузера и префикс для кодирования. Шпаргалка в форме изображения, поэтому её удобно скачать к себе на компьютер или мобильное устройство для дальнейшего использования.

Показать таблицу
Всего голосов 60: ↑46 и ↓14+32
Комментарии32

Хитрости Chrome DevTools

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


Илья Григорик из компании Google собрал подборку малоизвестных функций Chrome DevTools, которые можно использовать для оптимизации производительности. Илья также упоминает несколько сторонних плагинов и библиотек, полезных для разработчика, и многочисленные другие хитрости: например, возможность дебаггинга iOS-приложений или кода, исполняемого на подключённом Android-устройстве.
Всего голосов 36: ↑28 и ↓8+20
Комментарии14

ECT — новый JavaScript шаблонизатор со вкусом кофе

Время на прочтение2 мин
Количество просмотров12K
ECT — это логическое развитие существующих подходов к шаблонизации под соусом высокой производительности. В начале года я публиковал свою разработку — шаблонизатор JUST. ECT начинался как его развитие, но через некоторое время различие в них стало слишком большим, поэтому появился новый продукт.

Синтаксис


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

Логичным решением в данной ситуации стало использование CoffeeScript в качестве встраиваемого языка.
Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии96

3D-трансформации средствами CSS

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

Увидев на просторах сети пару впечатляющих примеров 3D-трансформаций средствами CSS — заинтересовался, решил разобраться в теме, прочитал несколько статей, вроде бы что-то понял. Но, как известно, теория без практики – как зомби — мертва, хоть и может съесть мозг.

Для усвоения материала необходимо самому сделать что-нибудь любопытное с использованием прочитанного. Какой трехмерный объект сделать легче всего? Пожалуй, кубик. А чтобы результат получился интереснее и красивее, пусть это будет игральный кубик с точками на гранях. Поехали.

Для нетерпеливых и тех, кто смотрит Хабр ради забавных картинок – конечный результат. Работает в Chrome, последних версиях Firefox, Safari. Opera 12.01 — пока никак, ну а про IE вы и сами все знаете.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии27

web и MVC: разбор полетов

Время на прочтение3 мин
Количество просмотров11K
Навеяно топиком о смерти MVC.

Чтобы разобраться в том, что происходит, давайте пойдем от принципов ООП.
Класс объектов в ООП инкапсулирует данные объекта с его поведением.
Вся сложность в разделении предметной области на объекты.
Здесь под «предметной областью» я понимаю также техническое окружение (БД, сеть и т.д.)

Распространенной практикой в наши дни стало создание легковесных POJO-объектов и их proxy, нам которыми работает некоторая логика, разнесенная по всем частям MVC (по M, V и C соответственно).
Это удобно с точки зрения реализации различных технологий для M, V и C частей приложения соответственно. На выходе имеем M-framefork'и, V-framefork'и и C-framefork'и (иногда наблюдается смешение). В этой парадигме переносить логику в POJO-классы модели, которые отражаются (mapping) на БД, было бы самоубийством.

Какие у нас есть альтернативы?

Расследование здесь
Всего голосов 12: ↑6 и ↓60
Комментарии26

Grunt, инструмент для сборки javascript проектов

Время на прочтение4 мин
Количество просмотров132K
Grunt — это инструмент для сборки javascript проектов из командной строки с использованием задач. Релиз вышел совсем недавно, автор Ben «Cowboy» Alman, проект есть на github. В этой статье я рассмотрю основы Grunt, его установку и использование.
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии15

Калькулятор для Android с рукописным вводом

Время на прочтение1 мин
Количество просмотров31K
Совершенно магическое приложение — калькулятор, который распознает рукописные формулы.

MyScript Calculator может распознавать +, -, ×, /, √, число Pi, скобки, возведение в степень и выдавать результат вычислений в реальном времени.

Формулы можно писать прямо на экране (для смартфонов — пальцем, для падофонов — стилусом, например) и это настоящее развлечение — почище, чем сочетание рогатки и птиц.



Приложение доступно на Android, бесплатно.
Всего голосов 57: ↑51 и ↓6+45
Комментарии64

Работа с изометрическими матрицами. Часть 1

Время на прочтение4 мин
Количество просмотров21K
Изометрия — вещь, стара как компьютерные игры.
Сейчас пришло время, когда интернет и игры стали совмещаться в браузере (flash не в счет).
Примеров браузерных игр много, большая часть из них казуалки, но для гиков более интересны жанры action, RTS и RPG, а для разработчиков — их реализация.



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

Под катом я расскажу:
  1. Как рисовать изометрическую матрицу
  2. Как нарисовать fullscreen изометрическую матрицу

Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии32

Tecart — новая тема для OpenCart

Время на прочтение1 мин
Количество просмотров15K
Хочу поделиться с хабрасообществом отличной новостью. Мы закончили работу над фришной темой для популярного e-commerce движка OpenCart! Тема называется Tecart и она отлично подходит для магазинов электроники, компьютерной техники, мобильной техники.

Вот так выглядит главная страница магазина



Читать дальше →
Всего голосов 43: ↑29 и ↓14+15
Комментарии24

finalize и Finalizer

Время на прочтение5 мин
Количество просмотров54K
Сегодня немного поэкспериментируем с методом finalize() и уничтожением объектов. Хотя даже начинающие Java-программисты примерно представляют, что finalize() вызывается, когда сборщик мусора решит уничтожить ваш объект, некоторые вещи могут всё-таки оказаться неожиданными. К примеру, зададимся вопросом: что случится с вашим приложением, если метод finalize() работает очень долго?
Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии26

HTML5 History API уже сегодня и без ограничений

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

Библиотека для работы HTML5 History API


Изначально этот проект был задуман добавить поддержку HTML5 History API в старые HTML4 браузеры. Первые версии библиотеки были нацелены именно на эти потребности, но с учетом прошедшего времени и пожеланий многоуважаемых разработчиков использующих эту библиотеку, она выросла до уровня того, что выполняет некие промежуточные действия по добавлению/исправлению того функционала что описаны в спецификациях по интерфейсу History.

На сегодняшний день библиотеку я могу смело назвать, на мой взгляд, полноценно законченной. Конечно же, ошибкам в работе библиотеки думаю, место будет, тестировалась библиотека мною в разных условиях и браузерах, но как вы понимаете, все не уловишь, да что-то упустишь. И так давайте приступим к описанию возможностей и тонкостей библиотеки.
Читать дальше →
Всего голосов 85: ↑84 и ↓1+83
Комментарии49

jParser: анализ двоичных файлов работает просто

Время на прочтение4 мин
Количество просмотров8.5K
jParser делает простым чтение структур данных из двоичных файлов джаваскриптом.

  • Вы один раз описываете структуру, анализ её происходит автоматически.
     
  • Процесс анализа данных может быть расширен самописными функциями. Чем упрощается разбор нетривиальных файлов.
     
  • jParser действует и во браузере, и в NodeJS, потому что работает на основе jDataView.

API

Элементарные структуры:

  • Целые числа без знака: uint8, uint16, uint32
     
  • Со знаком: int8, int16, int32
     
  • Дробные с плавающей точкой: float32, float64
     
  • Строковые: char, string(len)
     
  • Массив: array(type, len)
     
  • Положение: tell, skip(len), seek(pos), seek(pos, func)

Методы jParser:

Читать дальше →
Всего голосов 43: ↑33 и ↓10+23
Комментарии29

Самые простые техники адаптивной верстки

Время на прочтение2 мин
Количество просмотров462K
Сайтов с адаптивной разметкой с каждым месяцем становится все больше, заказчики кроме кроссбраузерности все чаще требуют адаптивность, но многие разработчики не спешат обучаться новым техникам. Но адаптивный дизайн — это просто! В этой статье представлено 5 примеров адаптивной разметки различных элементов веб-страниц.


Читать дальше →
Всего голосов 168: ↑152 и ↓16+136
Комментарии51

Вся правда о Chrome (и не только) Web Inspector. Часть 1

Время на прочтение9 мин
Количество просмотров152K
Я постараюсь сделать самое полное и подробное описание возможностей Web Inspector, на русском языке.
В первой серии мы залезем в настройки, посмотрим, что умеет консоль и поиграемся с панелью «Elements».

Так как Web-Inspector не переведен на Русский, я буду сохранять оригинальные названия.


В качестве бонуса, приложу скриншот одной и самых первых версий, из далекого 2006го.
Читать дальше →
Всего голосов 165: ↑154 и ↓11+143
Комментарии36

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность