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

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

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

Сравнительное тестирование JavaScript-календарей

Время на прочтение3 мин
Количество просмотров11K
Долгое время использовал в своих проектах, различные готовые JavaScript-календари для ввода дат, в частности Dynarch jsCalendar, и они полностью устраивали. Но в ходе разработки одного проекта, связанного с автострахованием, возникла необходимость довольно частого ввода дат из прошлого (дни рождения, дата выдачи паспорта и водительских прав, пенсионного и т.п.). Оказалось, что использовать календари в таких случаях не так уж и удобно, так как приходится отматывать несколько десятков лет назад и для этого приходится делать много действий мышкой.
Читать дальше →
Всего голосов 57: ↑53 и ↓4+49
Комментарии56

Индикатор выполнения на CSS3

Время на прочтение2 мин
Количество просмотров3.7K
Сегодня мы будем воссоздавать прогресс-бар из программы установки Adobe Flash Player средствами CSS3, используя градиенты и тени.



Под хабракатом весь код и ссылка на рабочий пример.
Читать дальше →
Всего голосов 120: ↑94 и ↓26+68
Комментарии67

Первый блин комом, или Как начать писать под Android и не бросить

Время на прочтение3 мин
Количество просмотров50K
На написание статьи вдохновили несколько жалоб на разных ресурсах о том, что во время написания или установки sdk что-то не получалось или что-то повисло и поэтому «забил на Android». Действительно, человек, который хочет заняться разработкой под эту платформу, может потеряться в обилии статей и мануалов о том, как написать свое первое «Hello, Adroid» или как сделать конкретное приложение, особенно если недостаточно опыта в программировании. В этой статье я попробую охватить по возможности все способы, которые помогут в процессе самообучения и не дадут потерять энтузиазм из-за появившихся трудностей. Надеюсь, эта статья поможет сэкономить начинающим время и нервы.

Тех, кому этого ресурса достаточно, данная статья вряд-ли заинтересует.

Установка и настройка инструментов для разработки хорошо описана в Android Development Tutorial, поэтому это я могу пропустить.

Где тестировать свое приложение


Сначала нужно определиться, на что устанавливать и где тестировать свой проект. Можно ставить на эмулятор, как это описано в выше указанной статье. Как многие замечают, работает он очень медленно. К тому же, частое заблуждение – перед запуском приложения новички закрывают каждый раз эмулятор и снова его запускают. Этого делать не надо.
Другой способ — можно установить на VirtualBox Android-x86.
Но настоящий девайс рано или поздно понадобится – хотя бы по той причине, что писать приложения, где задействована камера или видео, или очень неудобно, или просто невозможно. Поэтому, если есть возможность приобрести устройство с Android – лучше использовать его. Я ставлю на свой HTC Wildfire, не смотря на то, что в нем появляется ненужный хлам, но я экономлю свое время (и нервы).

Какую литературу использовать

Читать дальше →
Всего голосов 66: ↑42 и ↓24+18
Комментарии12

APNG (анимированный PNG) в Google Chrome, Safari и IE

Время на прочтение1 мин
Количество просмотров14K
В последние дни при веб-сёрфинге мне попадаются разнообразные полезные «костыли», и я тотчас же пишу о них на Хабрахабре. Вот ещё один.

Как известно, анимированные PNG в формате APNG не включены в стандарт PNG, из-за чего ряд браузеров (IE, Safari, Google Chrome) анимацию в этих изображениях не поддерживают (а вместо неё показывают статический кадр). Чтобы преодолеть эту проблему, предприимчивый Lord_D даже пробовал засовывать кадры по одному в сжатый SVG. Надеюсь, его смелость даёт полное представление о том, до каких крайностей способен в отчаянии дойти веборазработчик.

К счастью, можно обойтись и без крайностей. Евгений Степанищев упомянул о том, что Давид Мзареулян сочинил и выложил на Github библиотеку apng-canvas, обеспечивающую кроссбраузерное отображение APNG во всех тех браузерах (включая стандартный браузер Android), которые сами по себе APNG не понимают. Отображение достигается отрисовкою на холсте (<canvas>).

Объём этой библиотеки — чуть больше 4 Kb.

Читать дальше →
Всего голосов 108: ↑89 и ↓19+70
Комментарии52

Анимация меню при помощи CSS3

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


В данной статье я хотел бы показать вам некоторые приёмы создания эффектов при помощи CSS3 на примере меню. Идея заключается в простой композиции элементов: иконки, основного названия и вторичного названия, которое будет анимировано при наведении курсора, используя только CSS-переходы и CSS-анимацию. Мы рассмотрим несколько различных эффектов для элементов.
Читать дальше →
Всего голосов 195: ↑188 и ↓7+181
Комментарии49

Проблемы передачи списка перечислений или Почему абстракции «текут»

Время на прочтение7 мин
Количество просмотров5.9K
Все нетривиальные абстракции дырявы

Джоэл Спольски – Закон дырявых абстракций


А иногда дырявятся и довольно простые абстракции

Автор этой статьи



Большинство современных разработчиков знакомы с «законом дырявых абстракций» по знаменитой заметке Джоэла Спольски с одноименным названием. Заключается этот закон в том, что как бы ни был хорош протокол взаимодействия, фреймворк или набор классов, моделирующих предметную область, рано или поздно нам приходится спускаться на уровень ниже и разбираться с тем, как же эта абстракция устроена. Внутреннее устройство абстракции должно быть проблемой самой абстракции, но возможно это только в наиболее общих случаев и лишь до тех пор, пока все идет хорошо (*).

Когда-то давно, в «небольшой» мелкомягкой компании решили, а почему бы нам не «абстрагироваться» от местоположения объекта и сделать сам факт того, является ли объект локальным или удаленным, лишь «деталью реализации». Так появились технологии DCOM и ее наследник .NET Remoting, которые скрывали от разработчика, является ли объект удаленным или нет. При этом появились все эти «прозрачные прокси», которые позволяли работать с удаленным объектом, даже не зная об этом. Однако, со временем выяснилось, что эта информация архиважна для разработчика, поскольку удаленный объект может генерировать совершенно другой перечень исключений, да и стоимость работы с ним несравнимо выше, чем взаимодействие с локальным объектом.

Читать дальше →
Всего голосов 51: ↑44 и ↓7+37
Комментарии47

Взгляд изнутри: светодиодные лампочки

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


Предисловие


В последнее время был поднят ажиотаж вокруг светодиодных ламп, которые должны заменить собой обычные лампы Ильича. И как поведал главный нанотехнолог России, такие лампы скоро поступят в продажу в Москве и Санкт-Петербурге. Конечно, всё было обставлено с пафосом: первым оценил новинку В.В.Путин. Мне удалось достать лампочку от «Оптогана» одним из первых, к тому же в руках у меня оказались ещё одна лампочка российского производства («СветаLED» или «SvetaLED»), правда побитая жизнью, но рабочая, и китайский NoName, которую с лёгкостью можно купить на ebay или dealextreme.com.
Читать дальше →
Всего голосов 542: ↑537 и ↓5+532
Комментарии202

Шаблонная библиотека cxxtools

Время на прочтение1 мин
Количество просмотров1.7K
Начиная рабочий проект под Linux, я застрял в поисках С++ библиотеки, которая бы 1) была free, 2) умела работать с сокетами и можно быстро было поднять свой сервер, 3) нужна была оббёртка над потоками для плюсов. Сперва я наткнулся на Qt, но через некоторое время Qt стал слишком тяжелым для поставленной цели. В итоге поиски подтолкнули к cxxtools.

Кратко
Кратко о том, что умеет делать библиотечка:
  • умеет работать с TCP сокетами и поднимать на их основе слушающий сервер;
  • умеет парсить http запросы и отдавать ответы;
  • умеет работать с SSL;
  • реализован быстрый механизм сигналов (как раз похожий на Qt);
  • имеется похожий на boost-овский, но более удобный шаблон Function / Method; необходим для callback-функционала
  • умеет работать с потоками (threads): attached и detached threads;
  • удобный шаблон пула (pool);
  • гораздо удобнее smart pointer (ну имхо конечно), чем тот же std::smart_ptr и auto_ptr. Позволяет использовать разные политики управления классом и подсчёта ссылок, что удобно и необходимо для многопотоковых реализаций
  • удобный механизм логирования
  • ini-парсер
Читать дальше →
Всего голосов 49: ↑45 и ↓4+41
Комментарии33

Признаки плохого программиста

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

Неспособность рассуждать о коде


«Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.

Симптомы

  • Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
  • Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
  • Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
  • «Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
  • «Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).

Читать дальше →
Всего голосов 374: ↑297 и ↓77+220
Комментарии260

Баг в хостинге или как делать деньги из воздуха

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

Приветствую!


В то время как зарубежные компании платят за баги, Российские говорят спасибо или вообще нечего не говорят, молча исправив найденную другим человеком ошибку.
Хочу поделиться тем что происходило на протяжении августовского дня.
А теперь ближе к делу…
Читать дальше →
Всего голосов 106: ↑92 и ↓14+78
Комментарии45

Вызов managed кода из unmanaged

Время на прочтение4 мин
Количество просмотров7K
В данной статье будет рассматриваться вызов управляемого C# — кода(.Net) из неуправляемого С — кода.
Как-то раз на работе дали проект, точнее даже не сам проект, а только его часть. Сам же проект состоял из двух частей: функционал, написанный на С (unmanaged code) и интерфейсная часть, написанная на C# (managed code). Моей задачей было написать интерфейс и связать его с функционалом.
Читать дальше →
Всего голосов 33: ↑27 и ↓6+21
Комментарии25

Использование ActiveRecord для работы с Core Data

Время на прочтение4 мин
Количество просмотров6.5K
Введение


Active Record — это паттерн проектирования приложений, использующих для хранения информации базу данных. Таблица базы данных отображается в виде класса приложения, а отображением объекта класса является строка таблицы.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии14

CSS Shaders: 3D-эффекты для веба

Время на прочтение3 мин
Количество просмотров12K
Компании Adobe, Apple и Opera совместно разработали спецификации CSS Shaders для генерации качественных видеоэффектов в браузере, причём фильтры можно накладывать на любой HTML-элемент. Они выглядят знакомо для всех, кто применял эффекты в редакторе Flash-анимации, или для тех, кто знает элемент filter из стандарта Filter Effects 1.0 для SVG. Здесь то же самое, только гораздо лучше.



Читать дальше →
Всего голосов 80: ↑69 и ↓11+58
Комментарии47

Анимация спрайтов при помощи CSS, JS и Canvas

Время на прочтение4 мин
Количество просмотров25K
Всем привет. Пару дней назад совершенно случайно наткнулся в залежах дисков на «Космические рейнджеры 2: Доминаторы». Устанавливать не стал, так как сейчас не хватает времени, чтобы как следует в неё погрузиться. А решил посмотреть, что на диске находится. Посмотрел «Фан-Арт» и там увидел программку для ковыряния ресурсов рейнджеров. Вот и решил посмотреть, из чего же сделаны наши доминаторы. Покликав немного, нашел файлики с анимацией в формате GAI. Начал любоваться той анимацией. Захотел их сохранить в «гифки», но не как не давала та программка сохранить анимацию? Можно либо сохранить текущий кадр, либо все файлы в PNG. Я решил сохранить все кадры, а их было — 150. Картинки все есть, а почему бы не сделать с ними ту же анимацию.
Читать дальше →
Всего голосов 60: ↑51 и ↓9+42
Комментарии20

Отладка драйверов под Windows: VirtualBox+WinDbg

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

Предисловие


Однажды мне понадобилось написать драйвер под Windows XP SP2. Сразу встал вопрос отладки. Уж очень не хотелось использовать мудреный SoftIce, ребутиться при кадждой ошибке или делать откаты. Поэтому было решено использовать виртуалку VirtualBox, которой я частенько пользуюсь и характеристиками которой вполне доволен, и отладчиком Windows Debugger от Microsoft. Через несколько часов в окошке WinDbg радостно замаячили строчки на Си, и было решено сделать «напоминалку», которая получилась неплохим «HowTo». Итак, начнем…
Читать дальше →
Всего голосов 52: ↑50 и ↓2+48
Комментарии11

Установка Asp.Net на Linux (nginx+mono+xsp)

Время на прочтение7 мин
Количество просмотров39K
В этой статье я покажу, как настроить простую связку nginx + Asp.Net. Под простой надо понимать, что какие-то специфические особенности проектов, разграничение прав пользователей, высокие нагрузки и т.п. нужно настраивать отдельно (особенно это касается Asp.Net). Статья написана по просьбе хабраюзера mace.

В свое время озадачившись проблемой хостинга маленьких Asp.Net-проектов я осознал одну простую вещь: покупать лицензию на Windows Server, а потом и арендовывать достаточно мощный выделенный/виртуальный сервер для каких-то домашних поделок/экспериментов — крайне неразумно. Решение как-то сразу всплыло в моей лысой голове: есть же Mono! Непродолжительный поиск по mono-project.com вывел на FAQ об Asp.Net. Фактически, документация показала мне три возможных варианта:
Читать дальше →
Всего голосов 88: ↑74 и ↓14+60
Комментарии36

Пишем веб сервис используя gSOAP

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

О чем речь?


Иногда в старом и добром C++ возникает потребность в реализации SOAP сервисов. Конечно, истинные любители программирования бросаются писать сервер самостоятельно, я же предпочитаю не тратить время впустую и использовать готовые библиотеки. Сегодня я хочу осветить (совсем чуть-чуть) тему использования библиотеки gSOAP в своих приложениях на C++ в качестве сервера.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии17

Полезные ресурсы для проектировщиков интерфейсов в Axure RP

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


Довольно давно на Хабре не было статей про такой удобный и эффективный инструмент для быстрого прототипирования как Axure RP.
Решил выложить свою подборку закладок по «Акшуре» в виде сводного списка ресурсов.
Читать дальше →
Всего голосов 83: ↑78 и ↓5+73
Комментарии29

Снова используем Unmanaged С++ код в .NET программах

Время на прочтение7 мин
Количество просмотров4.8K
.NET C++

Около года назад я писал статью о том, как можно вызывать методы классов написанных на чистом Си++ из любой .NET программы не прибегая к регистрации COM библиотек, C++/CLI и т.п.

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

Читать дальше →
Всего голосов 70: ↑61 и ↓9+52
Комментарии7

Бесплатные книги

Время на прочтение3 мин
Количество просмотров60K
Несколько книг по разным темам, которые находятся в открытом доступе.

Основы программирования
Читать дальше →
Всего голосов 243: ↑239 и ↓4+235
Комментарии32

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность