Я никому не открою Америку, не удивлю публику новым фокусом и не взорву мозг тем, кто в CSS3 плавает, как аквалангист. Расскажу простой способ, как создать слайдер с помощью простых функций CSS3 без необходимости использовния javascript.
User
Visual Studio Extensibility. Часть первая: MSBuild
19 min
28KTutorial
Привет Хабр, в этих статьях я попытаюсь осветить тему расширений Microsoft Visual Studio(а попутно ещё и MSBuild), т.к. эта сфера является крайне плохо документированной и вообще покрыта пеленой какой-то загадочности.
+30
Lock-free структуры данных. Concurrent map: разминка
9 min
57KМне оказали честь — пригласили выступить на первой конференции C++ 2015 Russia 27-28 февраля. Я был насколько наглым, что запросил 2 часа на выступление вместо положенного одного и заявил тему, наиболее меня интересующую — конкурентные ассоциативные контейнеры. Это hash set/map и деревья. Организатор sermp пошел навстречу, за что ему большое спасибо.
Как подготовиться ко столь ответственному
Конечно, надо записать свои мысли, глядя на слайды. А если что-то написано, то не худо бы и опубликовать. А если публиковать, — то на хабре.
Итак, по следам C++ 2015 Russia! Авторское изложение, надеюсь, без авторского косноязычия, без купюр и с отступлениями по теме, написанное до наступления события, в нескольких частях.
+49
Указатели, ссылки и массивы в C и C++: точки над i
10 min
613KTutorial
В этом посте я постараюсь окончательно разобрать такие тонкие понятия в C и C++, как указатели, ссылки и массивы. В частности, я отвечу на вопрос, так являются массивы C указателями или нет.
Указатели. Что такое указатели, я рассказывать не буду. :) Будем считать, что вы это знаете. Напомню лишь следующие вещи (все примеры кода предполагаются находящимися внутри какой-нибудь функции, например, main):
Обозначения и предположения
- Я буду предполагать, что читатель понимает, что, например, в C++ есть ссылки, а в C — нет, поэтому я не буду постоянно напоминать, о каком именно языке (C/C++ или именно C++) я сейчас говорю, читатель поймёт это из контекста;
- Также, я предполагаю, что читатель уже знает C и C++ на базовом уровне и знает, к примеру, синтаксис объявления ссылки. В этом посте я буду заниматься именно дотошным разбором мелочей;
- Буду обозначать типы так, как выглядело бы объявление переменной TYPE соответствующего типа. Например, тип «массив длины 2 int'ов» я буду обозначать как
int TYPE[2]
; - Я буду предполагать, что мы в основном имеем дело с обычными типами данных, такими как
int TYPE
,int *TYPE
и т. д., для которых операции =, &, * и другие не переопределены и обозначают обычные вещи; - «Объект» всегда будет означать «всё, что не ссылка», а не «экземпляр класса»;
- Везде, за исключением специально оговоренных случаев, подразумеваются C89 и C++98.
Указатели и ссылки
Указатели. Что такое указатели, я рассказывать не буду. :) Будем считать, что вы это знаете. Напомню лишь следующие вещи (все примеры кода предполагаются находящимися внутри какой-нибудь функции, например, main):
int x;
int *y = &x; // От любой переменной можно взять адрес при помощи операции взятия адреса "&". Эта операция возвращает указатель
int z = *y; // Указатель можно разыменовать при помощи операции разыменовывания "*". Это операция возвращает тот объект, на который указывает указатель
+26
Обзор железок для занятий робототехникой с детьми
5 min
124KUPD: к нижеприведенному материалу поступило множество дельных замечаний, поэтому он был полностью переработан: habrahabr.ru/company/makeitlab/blog/252015
Сейчас мы готовим новую площадку для детских занятий. В процессе подготовки стал вопрос выбора платформы, на которой будем обучать. По такому случаю мы подготовили обзор имеющихся платформ с обоснованием выбора. Документ, вроде, интересный получился, решил его здесь опубликовать. Некоторые вещи изложены сильно упрощенно, поскольку текст предназначен не только для хардкорных технарей.
Сейчас мы готовим новую площадку для детских занятий. В процессе подготовки стал вопрос выбора платформы, на которой будем обучать. По такому случаю мы подготовили обзор имеющихся платформ с обоснованием выбора. Документ, вроде, интересный получился, решил его здесь опубликовать. Некоторые вещи изложены сильно упрощенно, поскольку текст предназначен не только для хардкорных технарей.
+24
Подборка интересных CSS-рецептов «Голые пятницы #4»
5 min
60KTutorial
Здравствуй, дорогой читатель хабра!
Сегодня мы поговорим о «липких» блоках, новом свойстве для изображений object-fit, продвинутом использовании CSS-счетчиков, ключевом слове currentColor, и о том, есть ли анимация в z-index.
+33
Архитектурный дизайн мобильных приложений: часть 2
7 min
48KTutorial
Чтобы направить всю энергию системы в необходимом направлении, нужно эту систему ограничить правилами.
Привет, Хабр! Продолжаем серию статей об архитектурном дизайне мобильных приложений. Под катом поговорим о проектировании слоёв UI. Добро пожаловать!
Привет, Хабр! Продолжаем серию статей об архитектурном дизайне мобильных приложений. Под катом поговорим о проектировании слоёв UI. Добро пожаловать!
+22
Android для разработчиков
5 min
22KДоброго времени!
Мы издали книгу Харви, Пола и Эбби Дейтелов:
Прототип: Android for Programmers: An App-Driven Approach (2nd Edition) (Deitel Developer Series) Paperback – January 6, 2014
В основу книги заложен принцип разработки, ориентированной на приложения, — концепции разработки продемонстрированы на примере полностью работоспособных приложений Android, а не фрагментов кода. Каждая глава начинается с вводной части, в которой вкратце описано разрабатываемое приложение. Затем приводятся результаты тестирования приложения и обзор технологий, применяемых в процессе его разработки. Далее выполняется подробный анализ исходного кода приложения. Исходный код всех приложений доступен на сайте www.deitel.com/books/AndroidFP2. Во время чтения книги мы рекомендуем держать исходный код открытым в среде разработки.
Мы издали книгу Харви, Пола и Эбби Дейтелов:
Прототип: Android for Programmers: An App-Driven Approach (2nd Edition) (Deitel Developer Series) Paperback – January 6, 2014
В основу книги заложен принцип разработки, ориентированной на приложения, — концепции разработки продемонстрированы на примере полностью работоспособных приложений Android, а не фрагментов кода. Каждая глава начинается с вводной части, в которой вкратце описано разрабатываемое приложение. Затем приводятся результаты тестирования приложения и обзор технологий, применяемых в процессе его разработки. Далее выполняется подробный анализ исходного кода приложения. Исходный код всех приложений доступен на сайте www.deitel.com/books/AndroidFP2. Во время чтения книги мы рекомендуем держать исходный код открытым в среде разработки.
+9
Простой webdev на Java 8
6 min
18KХочу рассказать о том, как мне пришла в голову идея заняться веб-разработкой на Java.
Итак, как только я созрел для этого дела, составил небольшой список, которому должны соответствовать выбранные мною инструменты разработки:
Усиленно погуглив, я нашел то, что мне нужно: Spark, jade4j и OrmLite.
Итак, инструменты выбраны, рассмотрим каждый из них в отдельности.
Итак, как только я созрел для этого дела, составил небольшой список, которому должны соответствовать выбранные мною инструменты разработки:
- Сборка при помощи maven;
- Простой процесс деплоя и запуска;
- Библиотеки должны быть легковесны;
- Возможность использования шаблонизатора.
Усиленно погуглив, я нашел то, что мне нужно: Spark, jade4j и OrmLite.
Итак, инструменты выбраны, рассмотрим каждый из них в отдельности.
+8
Общение скриптов из разных вкладок браузера
3 min
19KTranslation
Мне захотелось наладить общение скриптов из разных вкладок браузера. Будущий API SharedWorker позволяет передавать данные между разными iframe и даже вкладками или окнами. В Chrome он работает давно, в Firefox – недавно, а в IE и Safari его не видать. Но существует кроссбраузерная альтернатива, о которой мало кто знает. Давайте разбираться.
Представьте, что на одной вкладке человек залогинился, затем открыл другую, и там разлогинился. На первой он вроде как залогинен, но когда он сделает там что-либо, ему выдадут ошибку. Хорошо было бы хотя бы показать ему диалог о том, что он разлогинился и ему надо войти ещё раз.
Представьте, что на одной вкладке человек залогинился, затем открыл другую, и там разлогинился. На первой он вроде как залогинен, но когда он сделает там что-либо, ему выдадут ошибку. Хорошо было бы хотя бы показать ему диалог о том, что он разлогинился и ему надо войти ещё раз.
+23
Konva.js — HTML5 2d canvas framework
5 min
55KПриветствую. Представляю сообществу проект Konva.js.
Konva.js — это фреймворк, который позволяет работать c canvas 2d в объектном стиле с поддержкой событий.
Кратко список особенностей выглядит так:
- Объектное API
- Вложенные объекты и «всплытие» событий
- Поддержка нескольких слоёв (нескольких canvas элементов)
- Кэширование объектов
- Поддержка анимаций
- Настраиваемый drag&drop
- Фильтры
- Готовые к использованию объекты, включая прямоугольник, круг, изображение, текст, линия, SVG путь, ..
- Простое создание собственных фигур
- Событийная архитектура, которая позволяет разработчикам подписываться на события изменений аттрибутов, отрисовки, и так далее
- Сериализация и десериализация
- Продвинутый поиск с помощью селекторов stage.get('#foo') и layer.get('.bar')
- Десктоп и мобильные события
- Встроенная подержка HDPI устройств
- и еще много разного
Далее подробней рассмотрим возможности фреймворка с примерами кода.
+30
Реализация обмена сообщениями между вкладками браузера
6 min
17KЭто первая статья в нашем корпоративном блоге. На этот раз я расскажу о нашем решении задачи обмена сообщениями между вкладками браузера.
К примеру, мне потребовалось решить эту задачу при реализации JavaScript API к Comet сервису. Эта задача встречается достаточно часто и её уже рассматривали на хабре раньше здесь и здесь, но я решил написать своё решение задачи исходя из следующих требований к коду:
К примеру, мне потребовалось решить эту задачу при реализации JavaScript API к Comet сервису. Эта задача встречается достаточно часто и её уже рассматривали на хабре раньше здесь и здесь, но я решил написать своё решение задачи исходя из следующих требований к коду:
- Кросбраузерность
- Отсутствие зависимостей
- Минимальный размер кода
- Простота и удобство
+14
Липкий эффект
5 min
31KTranslation
Буквально недавно Крис написал про «Эффект капельного преобразования в CSS». Эффект реально крутой и сама техника реализована по-умному, но данный подход через обычные CSS фильтры имеет определенные недостатки: нельзя использовать непрозрачность, добавлять контент внутрь капель, проблемы с фоновыми цветами.
В последние дни я достаточно много экспериментировал с SVG фильтрами и заметил, что с их помощью можно решить вышеописанные проблемы в CSS реализации. Посмотрите на липкое меню, которое я сделал для демонстрации:
CodePen
В последние дни я достаточно много экспериментировал с SVG фильтрами и заметил, что с их помощью можно решить вышеописанные проблемы в CSS реализации. Посмотрите на липкое меню, которое я сделал для демонстрации:
CodePen
+35
Что каждый программист должен знать про оптимизации компилятора
17 min
79KTranslation
Высокоуровневые языки программирования содержат в себе много абстрактных программистских конструкций, таких как функции, условные операторы и циклы — они делают нас удивительно продуктивными. Однако одним из недостатков написания кода на высокоуровневом языке является потенциальное значительное снижение скорости работы программы. Поэтому компиляторы стараются автоматически оптимизировать код и увеличить скорость работы. В наши дни логика оптимизации стала очень сложной: компиляторы преобразуют циклы, условные выражения и рекурсивные функции; удаляют целые блоки кода. Они оптимизируют код под процессорную архитектуру, чтобы сделать его действительно быстрым и компактным. И это очень здорово, ведь лучше фокусироваться на написании читабельного кода, чем заниматься ручными оптимизациями, которые будет сложно понимать и поддерживать. Кроме того, ручные оптимизации могут помешать компилятору выполнить дополнительные и более эффективные автоматические оптимизации. Вместо того чтобы писать оптимизации руками, лучше бы сосредоточиться на дизайне архитектуры и на эффективных алгоритмах, включая параллелизм и использование особенностей библиотек.
Данная статья посвящена оптимизациям компилятора Visual C++. Я собираюсь обсудить наиболее важные техники оптимизаций и решения, которые приходится применить компилятору, чтобы правильно их применить. Моя цель не в том, чтобы рассказать вам как вручную оптимизировать код, а в том, чтобы показать, почему стоит доверять компилятору оптимизировать ваш код самостоятельно.
Данная статья посвящена оптимизациям компилятора Visual C++. Я собираюсь обсудить наиболее важные техники оптимизаций и решения, которые приходится применить компилятору, чтобы правильно их применить. Моя цель не в том, чтобы рассказать вам как вручную оптимизировать код, а в том, чтобы показать, почему стоит доверять компилятору оптимизировать ваш код самостоятельно.
+38
Аннотация к «Effective Modern C++» Скотта Майерса. Часть 2
18 min
23KПродолжение предыдущего поста.
В этой части мы будем рассматривать не столько технические изменения в С++, сколько новые подходы к разработке и возможности которые дают новые средства языка. Предыдущий пост был с моей точки зрения просто затянувшимся вступлением, тогда как здесь можно вволю подискутировать.
В этой части мы будем рассматривать не столько технические изменения в С++, сколько новые подходы к разработке и возможности которые дают новые средства языка. Предыдущий пост был с моей точки зрения просто затянувшимся вступлением, тогда как здесь можно вволю подискутировать.
+36
Visual Studio + Roslyn = конфигуратор для 1С: Предприятие
6 min
14KRoslyn позволяет C# проект преобразовать в открытый XML-формат конфигурации 1С: Предприятие. C#-проект при поддержке Visual Studio автоматически снабжается Intellisense, интерактивной проверкой синтаксиса и типов, рефакторингом, расширенным поиском по проекту, поддержкой XmlDoc. Настраиваемое расположение документов проекта на диске и более выразительный и экономный формат делает C#-проект на Visual Studio лучшим выбором в системах версионирования.
Понятно, что от чистой теории до реализации всех особенностей 1С очень далеко. Приведенный в статье пример обладает следующими ограничениями. В примере реализована поддержка нескольких типов объектов и нескольких часто встречающихся свойств. Атрибуты объектов могут быть одного типа, хотя 1С допускает составной тип. Трансляция кода в код 1С не поддерживается. Реализованы англоязычные наименования.
Понятно, что от чистой теории до реализации всех особенностей 1С очень далеко. Приведенный в статье пример обладает следующими ограничениями. В примере реализована поддержка нескольких типов объектов и нескольких часто встречающихся свойств. Атрибуты объектов могут быть одного типа, хотя 1С допускает составной тип. Трансляция кода в код 1С не поддерживается. Реализованы англоязычные наименования.
+12
Как создать веб-сайт, используя видео с YouTube в качестве фона?
9 min
86KTranslation
Большие видео на заднем плане веб-сайтов — довольно популярный тренд в веб-дизайне. Умело примененные видео могут сделать веб-сайт более драматичным и привлекательным для пользователей.
Кроме того видео-фоны могут воспроизводиться плавно и без «тормозов» в отличие от фонов, созданны с помощью JavaScript, которые требуют загрузить определенный код и изображения прежде чем пользователь увидит результат анимации.
Существуют компании, как, например, Powerhouse или Adidas, которые используют видео в качестве заднего плана сайта, чтобы донести до пользователя определенное сообщение или историю о продукте или услуге.
Хотя и наиболее популярным способом создания видео-фона является использование HTML5 видео тега вместе с некоторыми параметрами CSS, стоит также обратить внимание на альтернативные источники видео, например, YouTube. В этом случае, вам не придется переживать о медленном ответе сервера, потому что запрос будет отправляться напрямик в YouTube.
В этой статье, я покажу вам, как можно построить клевый сайт, использующий видео с YouTube в качестве фона. Мы будем использовать jQuery.mb.YTPlayer.js для редактирования и управления внешним видом нашего видео. Итак, приступим!
Скачать исходники
Демо
+15
История создания одной социальной флэш-игры
8 min
2.4KВ этой статье я хочу поделиться историей создания нашей флэш-игры для соц. сетей. Сразу обращу внимание, что у нас не было ни опыта, ни вообще каких-либо знаний, что, как и где.
Так что все пришлось пробовать на своем опыте. До этого был только опыт создания различных сайтов — от простых, до довольно сложных (базы знаний по играм — см. раздел «ссылки»), т.е. по сути, опыт ограничивался HTML/PHP/MySQL. Но мы из тех людей, которые не боятся нового.
Я расскажу о создании, затратах, подводных камнях и профите.
Но обо всем по порядку…
Так что все пришлось пробовать на своем опыте. До этого был только опыт создания различных сайтов — от простых, до довольно сложных (базы знаний по играм — см. раздел «ссылки»), т.е. по сути, опыт ограничивался HTML/PHP/MySQL. Но мы из тех людей, которые не боятся нового.
Я расскажу о создании, затратах, подводных камнях и профите.
Но обо всем по порядку…
+55
Запуск приложения во Вконтакте
8 min
48K Статья нацелена на начинающих разработчиков, которые хотят запустить свое приложение в социальной сети.
В статье описывается личный опыт создания IFrame-приложения, с нуля, для «Вконтакте», а так же все события которые произошли во время запуска и после, ну и конечно же совершённые ошибки. Можно даже сказать что это не совсем статья, а скорее рассказ.
Помимо рассказа, здесь присутствуют отчеты о нагрузке, попытка монетизации, информация о сервере и разбор кода. Поэтому вы можете переключаться, к интересующим вас пунктам.
В статье описывается личный опыт создания IFrame-приложения, с нуля, для «Вконтакте», а так же все события которые произошли во время запуска и после, ну и конечно же совершённые ошибки. Можно даже сказать что это не совсем статья, а скорее рассказ.
Помимо рассказа, здесь присутствуют отчеты о нагрузке, попытка монетизации, информация о сервере и разбор кода. Поэтому вы можете переключаться, к интересующим вас пунктам.
+25
Закат эры иконок от FatCow (выборка по цветам, топ 30 и прочая арифметика)
8 min
35KИтоговый выпуск иконок
Пять лет тому назад мы начали рисовать набор пиксельных иконок. Мода была на Vista. К концу 2013 года набор FatCow дорос до 3926 иконок. Это на 356 иконок больше, чем у Fugue, который весной того же года остановился на цифре 3570 (размер: 16х16). 352 иконки из бонуса Fugue (32х32 и 24х24) не в счет (как повторы). Но дальнейшее развитие иконок FatCow заморожено. Увы, мы не увидим круглой цифры из 4000 иконок (работы осталось на месяц), не увидим выпуска для ретины дополнительных размеров уже существующих иконок, разработки прекращены из-за отсутствия бюджета. Успели сделать пробу для retina и только.
Да, это не мега-фото-реалистичные-3D еще-одни-никому-не-нужные-иконки, это старая пиксельная школа. Где в почете был маленький размер и ограничение цветовой гаммы. Пройдут еще 10 лет… и, мы искренне верим, пиксельные иконки так и останутся в ходу. И если Вы ценитель древних видов искусства, дней зарождения компьютерной графики, пожалуйста за ширмой!
+60
Information
- Rating
- Does not participate
- Location
- Москва и Московская обл., Россия
- Registered
- Activity