Search
Write a publication
Pull to refresh
0
Лангольф Александр @langolfread⁠-⁠only

User

Send message

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

Reading time3 min
Views101K
Приветствую!

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

Статья рассчитана скорее на новичков и на людей, имеющих косвенное отношение к верстке, но которым по долгу службы часто приходится иметь с ней дело. Возможно, даже гуру верстки найдут в ней что-нибудь новое для себя, если давно не совершенствовали свои навыки.
Читать дальше →

Введение в разработку WinRT-приложений на HTML/JavaScript. Стилизация приложения

Reading time6 min
Views10K
Эта статья продолжает серию материалов (первая часть), посвященных азам разработки WinRT-приложений на HTML/JS для Windows 8. Мы последовательно пройдем путь от стартового практически пустого шаблона к полноценному приложению с серверной частью и живыми плитками.



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

В данной статье мы займемся внешним видом нашего приложения: добавим картинки, поменяем заголовки, стили, плитки и т.п. Всю работу можно провести в Visual Studio, хотя некоторые вещи удобнее и нагляднее менять в Expression Blend.

XAML/C#. Если вы заинтересованы в разработке с использованием XAML и C#, рекомендую обратить внимание на аналогичную серию статей моего коллеги — Стаса Павлова: Разбираемся с разработкой Windows 8 приложений на XAML/С#, реализуя простой RSS Reader.

Читать дальше →

WebRTC #1 — Знакомимся

Reading time3 min
Views154K


Многие уже слышали о проекте WebRTC, некоторые даже используют его (или пытаются применять в существующих проектах), а кто-то злобно потирает руки, предвкушая постепенную расправу со Skype и Flash.

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

Что же, я попытаюсь порадовать вас схемками, кодом. В общем, именно тем, что всем по вкусу. Так пройдем же под кат, мой любимый читатель.
Читать дальше →

История одного хабраспора

Reading time12 min
Views63K


    Не так давно, просматривая глубокой ночью достаточно интересную заметку о игре на основе JS/Canvas (со своими ошибками и заблуждениями, которые были и у меня, что уж греха таить, понастальгировал всласть), я наткнулся на очередную порцию откровенно холиварных комментариев, после прочтения которых мир за окном стал серым и безрадостным, еда потеряла вкус, а любимый чай оказался несладким. И в тот момент то ли звезды сошлись, то ли срочных и важных багов и фич на вчера стало немного меньше, но я решил ввязаться в спор с достаточно резкими тезисами и вступиться за любимую технологию, которую так откровенно поливали непонятно чем. Так бы и осталось все это на уровне беспредметного перебрасывания пакетов с доводами через забор, если бы в ту же ветку не решил написать RussianSpy, и не об абстрактных попугаях, которых легче переписать в 3D, а о вполне конкретной задаче. И промелькнувшая фраза «Могу прислать ТЗ...» плавно намекнула на то, что вечер обещает быть интересным.

Что из всего этого вышло...

Как устроены массивы в PHP

Reading time6 min
Views75K
В прошлой статье я рассказывал о переменных, теперь пойдет речь о массивах.

Что такое массивы на уровне PHP?


На уровне PHP, массив — это упорядоченный список скрещенный с мэпом. Грубо говоря, PHP смешивает эти два понятия, в итоге получается, с одной стороны, очень гибкая структура данных, с другой стороны, возможно, не самая оптимальная, точнее, как выразился Anthony Ferrara:
PHP arrays are a great one-size-fits-all data structure. But like all one-size-fits-all <anything>, jack-of-all-trades usually means master of none.

Ссылка на письмо



(на картине изображен HashTable с Bucket-ами, В. Васнецов)
Читать дальше →

Почему перемещать элементы с помощью translate лучше, чем с position:absolute top/left

Reading time2 min
Views37K
Для перемещения элемента по экрану есть два основных способа:

  • CSS 2D-преобразования и translate();
  • position:absolute и изменение top/left.

Крис Койер недавно писал, почему лучше и логичнее использовать translate (это быстрее, и свойство position имеет большее отношение к вёрстке, а не к визуальным эффектам и анимации, в отличие от translate).

Я хочу расширить его ответ и привести несколько хороших примеров. Я записал скринкаст, в котором помощью Chrome DevTools timline рассматриваю различия между этими подходами с точки зрения производительности, особенностей рендеринга и композитинга на GPU.



Если вам нужна сокращённая текстовая версия — продолжайте читать.
Читать дальше →

Подводные камни JavaScript

Reading time6 min
Views152K
Мне очень нравится JavaScript и я считаю его мощным и удобным. Но для большинства начинающих JS-программистов, много проблем создаёт недопонимание аспектов языка. Часто конструкции языка ведут себя «нелогично». В данной статье я хочу привести примеры «граблей», на которые я наступил; объяснить поведение языка и дать пару советов.

Читать дальше →

Своя игра с JavaScript и Canvas

Reading time9 min
Views106K
imageНе так давно мне стало любопытно, насколько сносно современные браузеры поддерживают HTML5 и я не нашел лучшего
способа, чем написать простейший 2D платформер. Помимо удовольствия от разработки игрушки и улучшения навыков в использовании JavaScript, в ходе развлечения кропотливой работы был накоплен определенный опыт и эмпирическим путем были найдены основные грабли, на многие из которых мне пришлось наступить. В этой статье я попробую кратко и с примерами резюмировать то, что вынес для себя из проделанной работы. Желающих создать свое высокопроизводительное JavaScript приложение, эффективно работающее с графикой, прошу под кат.
Читать дальше →

Всем, всем, всем: время обновлять свой CSS3

Reading time6 min
Views41K
Если Вы используете экспериментальный CSS на своих сайтах, в демках, статьях или инструментах, то это требует определенного рода поддержки. В связи с некоторыми недавними изменениями в мире браузеров, настало время пересмотреть и обновить Ваш код. Эта статья поможет Вам понять, что же начать обновлять уже сейчас.

Читать дальше →

Javascript: Рисуем с помощью кривых Безье

Reading time3 min
Views63K
Доброго времени суток, хабражители!
Мне очень нравятся барочные элементы. В очередной раз встретив подобный узор на одном из сайтов, представил, как бы он чудесно смотрелся в анимации, картинка бы ожила. Тем более с приходом html5 оживление должно стать гораздо проще в реализации. Но как по точкам нарисовать кривую? Тут как раз кстати вспомнилась кривая Безье!

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

На самом деле, как всегда, надо было лишь уделить немного времени теории. Все оказалось просто и довольно интересно. В итоге получилась реализация кривых на яваскрипте с использованием canvas.
Кому интересно как строится эта извилистая бестия добро пожаловать под кат!
Читать дальше →

Эффективная разработка игр и не только

Reading time2 min
Views13K
Инструменты, которые помогают облегчить жизнь и ускорить решение повседневных задач это слабость многих разработчиков. Этот рассказ, как раз про такие штуки. Несколько месяцев назад для комментария на хабре записал видео своего рабочего процесса разработки игры.
После чего я пообещал расписать, как там все устроено. Время пришло.
Читать дальше →

iOS Console App — пишем программу для iOS без GUI

Reading time7 min
Views18K
Доброго дня всем хабравчанам!

Сегодня я расскажу вам о том, как можно легко, быстро и просто написать консольную программку для запуска на iOS-девайсе. Разумеется, нам потребуется для этого jailbreak-нутый девайс, без него, увы, никак: iOS AppStore (он же iTunesStore) не позволяет распространять консольные утилиты.



Писать HelloWorld — дело не особо интересное. Поэтому, мы будем писать полезную утилиту, позволяющую просмотреть некоторую информацию о системе, полученную через приватные API.

К примеру, информацию об установленных программах и их версиях.

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

Итак, под катом — описание процесса создания консольной программки прямо в Xcode.
Поехали

Система достижений (achievements) в Linderdaum Puzzle

Reading time5 min
Views6.7K
Не так давно на Хабре поднимался вопрос о проектировании системы достижений для игры. В комментах шло бурное и плодотворное обсуждение различных вариантов. Тогда мы уже тестировали нашу игру, готовились к релизу и поучаствовать в дебатах я не смог. Но увидев топик сразу же подумал: «У нас же есть как раз такая работающая система. Почему бы о ней не рассказать?». Подумал и записал в todo-list. Сегодня настало время рассказать, как это работает в нашем игровом проекте Linderdaum Puzzle.

Читать дальше →

Репозиторий готовых решений MODx Evo

Reading time2 min
Views11K

Привет, я представляю студию «Диван.Дизайн». Вот уже больше пяти лет мы разрабатываем сайты на MODx Evo. Так уж сложилось, что проблемы мы всегда старались решать в общем виде и у нас скопилось множество различных готовых программных продуктов (всяких там сниппетов, плагинов, модулей, ну вы знаете). Практически всё это время мы хранили все эти штуки локально и никуда не выкладывали (по разным причинам, опустим их ;-). Потом мы как-то раз доработали и выложили парочку продуктов из официальной сборки (ManagerManager, например), и нам понравилось. Не понравился нам лишь официальный репозиторий MODx, какой-то он «не очень»… Мы сели, подумали и выявили несколько моментов, которые хотелось бы видеть в репозитории:
Читать дальше →

Dropbox: взгляд изнутри

Reading time6 min
Views88K
В этой статье я расскажу о внутреннем устройстве популярного сервиса облачного хранения Dropbox. В частности, будет затронуто устройство протокола Dropbox, а также показана статистика его использования в некоторых странах Европы. Кроме этого, я сравню его с другими сервисами, такими как iCloud, Google Drive и SkyDrive.

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

Текст основан на научной статье “Dropbox изнутри: Изучаем сервисы облачного хранения” (Inside Dropbox: Understanding Personal Cloud Storage Services). PDF
Подробнее

Плавная анимация интерфейса (easing)

Reading time5 min
Views20K
Приветствую всех читателей!
Хочу поделиться с вами простым, но эффектным способом анимировать юзер-интерфейс вашего приложения или сайта. В статье представлен готовый код на С++, который я использовал для анимирования iOS и Android приложений, основанный на анимационных слайдерах.


Читать дальше →

Сохранение игры в Unity3D

Reading time19 min
Views170K
Иногда сохранения просто не подразумевает жанр... Если вы пишете не казуалку под веб и не беспощадный суровый рогалик, без сохранения данных на диск не обойтись.
Как это делается в Unity? Вариантов тут достаточно — есть класс PlayerPrefs в библиотеке, можно сериализовать объекты в XML или бинарники, сохранить в *SQL*, можно, в конце-концов, разработать собственный парсер и формат сохранения.
Рассмотрим поподробнее с первые два варианта, и заодно попробуем сделать меню загрузки-сохранения со скриншотами.

Будем считать, что читающий дальше базовыми навыками обращения с этим движком владеет. Но при этом можно не подозревать о сущестовании в его библиотеке PlayerPrefs, GUI, и ещё в принципе не знать о сериализации. С этим всем и разберёмся.
А чтобы эта заметка не стала слишком уж увлекательной и полезной, ориентирована она самый неактуальный в мобильно/планшетно/онлайновый век вариант — сборку под винду (хотя, конечно, более общих моментов достаточно).

  • Кстати, пару недель назад на Хабре была статья, где автор упомянул, что Unity3D проходят в курсе компьютерной графики на кафедре информатики питерского матмеха. Занятный факт, немало говорящий о популярности движка.
    Хотя насколько это в целом хорошая идея — на мой взгляд, тема для дискуссии. Может быть, обсудить это было бы даже интереснее вопросов сериализации =)

Пройти на следующую локацию

Создаем адаптивную страницу портфолио с фильтрами

Reading time8 min
Views31K
Доброго времени суток уважаемые хабражители. На сегодняшний день уже многие знакомы с понятием адаптивный дизайн и я хочу поделиться интересной реализацией страницы портфолио с фильтрами.

Netcribe
ДЕМО

Читать дальше →

Собственный репозиторий для MODX Revolution

Reading time1 min
Views7.5K
Много писать не буду. Это скорее как новость, нежели мануал. Хотя вопрос собственных репозиториев для MODX Revolution — тайна, покрытая мраком (если кто видел готовые решения, дайте пожалуйста ссылку).

В общем создал я пакет, позволяющий создавать свои собственные репозитории для MODX Revolution.

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

Особенно это решение пригодится веб-студиям и фрилансерам.

Подробности в видео-ролике.
Читать дальше →

Как мы iOS приложение тестировали из-под Ubuntu

Reading time4 min
Views27K


В компании где я работаю наступила пора корпоративов тестирования нашего iOS приложения, и т.к. мако тут только у меня, а все остальные разработчики и, что самое главное, QA работают под Ubuntu, <irony>а значит айфонов у них нет</irony>, то пришлось придумать решение проблемы и избавить себя от мук передачи личного айфона в руки тестеров.

Если Вы сталкивались с подобной проблемой или просто интересуетесь темой шаринга одного мака с возможностью одновременной работы на нём, то прошу под кат.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity