Уже 3 с лишним года занимаюсь дизайном и версткой почтовых рассылок, которые ориентированы на англоязычных пользователей. За время работы перелопатили огромную кучу информации, перепробовали много вариантов верстки, набили достаточное количество шишек. Были найдены и исправлены типичные баги, которые в той или иной мере повторялись во всех почтовых клиентах. Также нашлись проблемы с некоторыми CSS свойствами — различные почтовые клиенты интерпретировали их по разному. Каждое письмо тестировалось на самых популярных почтовых клиентах: Gmail, Outlook, Yahoo, Android, iOS, MozillaThunderbird, Microsoft Outlook, The Bat. Рассылки ходят на сотни миллионов пользователей и приносят очень хорошие результаты. Итак, приступим к изучению.
Paulskit @Paulskit
Пользователь
Продолжаем кромсать CLR: пул объектов .Net вне куч SOH/LOH
6 мин
19KДобрый день, уважаемые разработчики (просто не знал, с чего начать пост). Предлагаю перед тем как начнется трудовая неделя немного подразмять мозги (совсем немного) и построить свой Small Objects Heap для .Net. Вернее даже не Small Objects Heap, а Custom Objects Heap.
Как все мы знаем, в .Net существует две группы куч: для больших и малых объектов. Как выяснить, во сколько нам обойдется объект можно при помощи кода из этой статьи (он нам пригодится): Ручное клонирование потока, а получить указатель на объект и по указателю получить сам объект можно научиться, прочтя эту статью: Получение указателя на объект .Net. Также нам понадобится статья корейского (южно-) программиста по перенаправлению указателя на скомпилированную часть метода на другой метод: 실행 시에 메서드 가로채기 — CLR Injection: Runtime Method Replacer 개선
Так что давайте поэкспериментируем и напишем библиотеку, которая позволит:
Ссылка на проект на GitHub: DotNetEx
Как все мы знаем, в .Net существует две группы куч: для больших и малых объектов. Как выяснить, во сколько нам обойдется объект можно при помощи кода из этой статьи (он нам пригодится): Ручное клонирование потока, а получить указатель на объект и по указателю получить сам объект можно научиться, прочтя эту статью: Получение указателя на объект .Net. Также нам понадобится статья корейского (южно-) программиста по перенаправлению указателя на скомпилированную часть метода на другой метод: 실행 시에 메서드 가로채기 — CLR Injection: Runtime Method Replacer 개선
Так что давайте поэкспериментируем и напишем библиотеку, которая позволит:
- Аллоцировать участок памяти
- Разметить его как набор объектов определенного .Net типа
- Выделять объекты с этой памяти
- Возвращать их обратно
Ссылка на проект на GitHub: DotNetEx
Для начала, полный список выложенных на Хабре статей данного цикла
Делаем отгружаемые сборки: взаимодействуем между доменами без маршаллинга
Получение указателя на объект .Net
Ручное клонирование потока. Когда Assembler + C# или Java = Love
Изменение кода системных сборок или «утечка» .Net Framework 5.0
Как работает декомпиляция в .Net или Java на примере .Net
Продолжаем кромсать CLR: пул объектов .Net вне куч SOH/LOH
Снимаем дамп объектов с памяти .Net приложения
Получение указателя на объект .Net
Ручное клонирование потока. Когда Assembler + C# или Java = Love
Изменение кода системных сборок или «утечка» .Net Framework 5.0
Как работает декомпиляция в .Net или Java на примере .Net
Продолжаем кромсать CLR: пул объектов .Net вне куч SOH/LOH
Снимаем дамп объектов с памяти .Net приложения
+17
О глупости умных людей
3 мин
347KПеревод
Для затравки — простая математическая загадка. Бейсбольный мяч и бита вместе стоят 1 доллар и 10 центов. При этом бита стоит на 1 доллар дороже мяча. Сколько стоит мяч?
+131
Концепт UI для Windows 8
1 мин
26KДизайнер Sputnik8 (Phyek) на форумах The Verge вынес на суд публики концепт дизайна для десктопной версии Windows 8 (все скриншоты кликабельны).
На скриншотах изображены разные версии Explorer, браузера IE (с переделанными сайтами Windows.com и Bing), Media Center/Player и Skype. Автор подчёркивает, что он не стремился строго соблюдать новый стиль Metro, в общем, его работа — это скорее фантазия на тему, как может выглядеть Windows 8.
На скриншотах изображены разные версии Explorer, браузера IE (с переделанными сайтами Windows.com и Bing), Media Center/Player и Skype. Автор подчёркивает, что он не стремился строго соблюдать новый стиль Metro, в общем, его работа — это скорее фантазия на тему, как может выглядеть Windows 8.
+154
Простой RSS-клиент на Android
14 мин
110KПошаговое руководство по созданию RSS-клиента на Android. Статья для начинающих разработчиков.
Android – операционная система для мобильных устройств от Google.
Система очень перспективная и динамично развивается. Базовые навыки разработки будут совсем не лишними.
Осторожно много скриншотов!
Android – операционная система для мобильных устройств от Google.
Система очень перспективная и динамично развивается. Базовые навыки разработки будут совсем не лишними.
Осторожно много скриншотов!
+61
Выдуманная история открытия собственного дела с печальным концом
13 мин
3.6KВечер, пятница. Почему бы не почитать одну историю с печальным концом? На Хабре ведь не приняты такие?
На днях мной был оставлен комментарий, в котором я в двух словах написал, что мой бизнес уничтожили в зачаточном состоянии. Судя по вопросам в личку на Хабре и в vk тема актуальная. Что-ж, попробую написать о том, как все было, хотя точности не обещаю. Писать о том, что я Д'Артаньян, а все негодяи — не буду, ведь вам нужна поучительная история, а не история-оправдание еще одного неудачника.
Сразу оговорюсь, я не помню о каком городе/районе идет речь, и в каком государстве это происходило, если было. Также не могу вспомнить имен и точных должностей. А потому любые совпадения случайны и не имеют никакого отношения ни к какой власти — официальной и неофициальной.
На днях мной был оставлен комментарий, в котором я в двух словах написал, что мой бизнес уничтожили в зачаточном состоянии. Судя по вопросам в личку на Хабре и в vk тема актуальная. Что-ж, попробую написать о том, как все было, хотя точности не обещаю. Писать о том, что я Д'Артаньян, а все негодяи — не буду, ведь вам нужна поучительная история, а не история-оправдание еще одного неудачника.
Сразу оговорюсь, я не помню о каком городе/районе идет речь, и в каком государстве это происходило, если было. Также не могу вспомнить имен и точных должностей. А потому любые совпадения случайны и не имеют никакого отношения ни к какой власти — официальной и неофициальной.
+135
Я хочу работать в Google! Телефонное интервью (часть 1)
4 мин
31KПривет Хабр! Давно не писал. Да это и понятно. Защита диссертации, получение PhD, а сейчас ещё и активный поиск работы — всё это занимает очень много драгоценного времени. Но разговор сегодня пойдёт не о том. Хотелось бы поделиться с Вами, уважаемые хабралюди, ресурсами и описанием процесса подготовки к телефонному техническому интервью с Гуглом, первый технический этап которого я уже прошёл, и теперь готовлюсь ко второму, который будет в пятницу.
+157
Остановите крушение плана проекта — вы эксперт
3 мин
774Перевод
Представьте. Сейчас 22:30 и самолет готовится к вылету на большое расстояние. В кабине самолета пилот и первый помощник пилота заняты проверкой систем самолета перед вылетом. Они сверяются с прогнозом погоды, проверяют уровень топлива и целый ряд технических индикаторов и показателей. Они начинают подготавливать детальный маршрут полета.
Вдруг генеральный директор авиакомпании врывается в кабину.
+67
Что делать, если вам грозят 38 млрд. (или меньше) за нарушение авторских прав
5 мин
11K38 млрд. рублей! Этой суммы вполне бы хватило для закрытия внешнего долга — ну, например Албании. Оказалось — это ущерб, нанесенный известным отечественным и зарубежным компаниям.
Сумма фантастическая, особенно для супружеской пары с фамилией отличное от «Абрамович». Хочу заметить, что если все и далее пойдет по строгой букве закона, с буквальным трактованием и отсутствием вопросов суда к обвинению, то сумма может вырасти.
Сумма фантастическая, особенно для супружеской пары с фамилией отличное от «Абрамович». Хочу заметить, что если все и далее пойдет по строгой букве закона, с буквальным трактованием и отсутствием вопросов суда к обвинению, то сумма может вырасти.
+259
Интуиция, головоломки и вычислимость
5 мин
4.7KВ этой статье я хочу рассказать об одном парадоксе, который был подмечен давно, но который до сих пор является таинственной загадкой — одной из тех, о которых рассказывают преподаватели, чтобы заинтересовать студентов своим предметом. Этот парадокс непосредственно связан с проблемой искусственного интеллекта, поэтому данная статься опубликована в соответствующем блоге.
Но об этом после, а для начала я расскажу, как уделал собственную программу в решении простой, на вид, головоломки из игры Still Life.
Но об этом после, а для начала я расскажу, как уделал собственную программу в решении простой, на вид, головоломки из игры Still Life.
+27
Добавляем рекламные баннеры iAd в ваши приложения для iPhone
7 мин
35KВ апреле этого года во время презентации новой операционной системы iOS 4 (бывшая iPhone OS) Стив Джобс также представил и новую платформу компании Apple для мобильной рекламы – iAd. По заверению Apple, их главная задача — дать возможность заработать разработчикам бесплатных и недорогих приложений за счет размещения в последних рекламных баннеров. Оплата будет идти как за показ рекламного баннера, так и за клики по нему. Во втором случае оплата будет существенно выше.
Основная идея iAd – соединение интерактивности, которую дает использование смартфона или планшета, с эмоциональностью рекламного объявления, в котором задействованы и аудио, и видео. Для этих целей при создании рекламы используются Java Script, HTML5, CSS3 и мультитач. Все это позволяет создавать интересные и привлекающие внимание рекламные ролики-приложения. Примеры таких реклам мы могли видеть на презентации новой операционной системы (на английском языке).
Основной проблемой мобильной рекламы сегодня, по мнению Apple, является то, что кликая по рекламному баннеру, пользователь покидает приложение – переходя, чаще всего, на сайт рекламодателя. С помощью iAd мы можем обойти эту неприятность. После клика по баннеру рекламное объявление появляется поверх вашего приложения. Пользователь может в любой момент закрыть его и вернуться в ваше приложение точно в тот момент, в котором он его покинул.
На основе iAd Programming Guide и видео с WWDC 2010 я набросал краткий обзор-перевод этой новой технологии. Речь пойдет не о создании самих красочных рекламок, а именно о размещении таковых в ваших приложениях.
Основная идея iAd – соединение интерактивности, которую дает использование смартфона или планшета, с эмоциональностью рекламного объявления, в котором задействованы и аудио, и видео. Для этих целей при создании рекламы используются Java Script, HTML5, CSS3 и мультитач. Все это позволяет создавать интересные и привлекающие внимание рекламные ролики-приложения. Примеры таких реклам мы могли видеть на презентации новой операционной системы (на английском языке).
Основной проблемой мобильной рекламы сегодня, по мнению Apple, является то, что кликая по рекламному баннеру, пользователь покидает приложение – переходя, чаще всего, на сайт рекламодателя. С помощью iAd мы можем обойти эту неприятность. После клика по баннеру рекламное объявление появляется поверх вашего приложения. Пользователь может в любой момент закрыть его и вернуться в ваше приложение точно в тот момент, в котором он его покинул.
На основе iAd Programming Guide и видео с WWDC 2010 я набросал краткий обзор-перевод этой новой технологии. Речь пойдет не о создании самих красочных рекламок, а именно о размещении таковых в ваших приложениях.
+16
Ebay. Украина. О таможне и пересылках
5 мин
65KО работе с Ebay написано много. Зачастую русскоязычные ресурсы описывают российские реалии и большая часть написанного применима к Украине, однако есть нюансы, на которые стоит обратить внимание.
+112
Куда идут жалобы в Приватбанке — 2
3 мин
812Предыстория
Через два часа после публикации предыдущего поста про Приватбанк раздался звонок с неизвестного мне номера.
Звонок первый
Звонили из откуда-то в Привате. «А я по поводу вашей публикации на хабрахабре» — отлично. Спросили «ой, а что у вас случилось» — вопрос заведомо глупый – вы ж читали все. «А скажите, как именно вас оскорбили» — еще более глупая просьба, на что я ответил, что не хочу повторять того, что она сказала. После чего, сотрудник чего-то там в Привате сказал «а в вашей публикации вы не стеснялись» — это уже полностью вывело из себя.
Из полезной нагрузки попросили уточнить, когда именно произошел инцидент, с какого номера звонили и подобную информацию.
Пообещали провести расследование и наказать всех виноватых. И перезвонить мне. Через две недели, кажется.
+29
Куда идут жалобы в Приватбанке
2 мин
1.1KИстория длинная
Как-то пошел я в Приватбанк перевыпускать стипендиальную карточку взамен поломанной. Подождал две недели, прихожу в день и час Ч в отделение и прошу выдать мне карту. Мне отвечают — «Не вопрос, но вам нужно будет еще получить карту-копилку». Все хорошо, но у меня таких карточек уже две дома лежит — с прошлых перевыпусков.
Диалог с С(сотрудником) Привата:
Я: Спасибо не нужно, у меня уже 2 дома лежит.
С: Ничего не знаю, положено получать.
Я: Но у меня есть 2 и я ими не пользуюсь.
С: Ничего не знаю, получайте копилку или я вам не выдам студенческую.
Я: Где написано что я обязан ее получать?
С: Это потому, что вы потеряли свою карточку уже 2 раза.
+20
+180
Рекомендации для начала карьерного роста
7 мин
17KПо мотивам недавно прошедшей конференции в ЯрГУ 25 марта, на которую пришло уж очень немного народу, решил я написать небольшой мотивирующий пост для студентов и начинающих программистов/IT специалистов. Мою презентацию с доклада можно посмотреть на skydrive. Здесь же я постараюсь вкратце, на сколько это возможно, осветить этот доклад.
Это чисто мой полет мыслей, ни на какое откровение или новизну я не претендую. Начал я его писать сразу же после конференции (месяц назад), но все как-то не мог закончить. Радует безумно, что кроме меня со студентами и начинающими разработчиками хотят делиться все. Вот только в последние пару недель замечено два топика с похожими темами (и тоже стенограммы с конференций):
Ну и до нас не раз еще поднимали эту тему. Рекомендую читать и заряжаться всеми этими топиками.
Это чисто мой полет мыслей, ни на какое откровение или новизну я не претендую. Начал я его писать сразу же после конференции (месяц назад), но все как-то не мог закончить. Радует безумно, что кроме меня со студентами и начинающими разработчиками хотят делиться все. Вот только в последние пару недель замечено два топика с похожими темами (и тоже стенограммы с конференций):
Ну и до нас не раз еще поднимали эту тему. Рекомендую читать и заряжаться всеми этими топиками.
+100
О неадекватности отбора программистов
5 мин
22KВ ближайшее время мне вновь предстоит озаботиться поиском рабочего места, в связи с чем я вспоминаю свой драматический опыт трудоустройства и прочитанное насчёт собеседований на должность программиста. В частности, удручающее впечатление на меня произвела статья Алексея Колупаева «Нехитрый вопрос на собеседовании или как не попадают в стартапы».
Автор позиционирует себя как безусловного эксперта в подборе программистского персонала, иллюстрируя это разбором реальных и гипотетических ответов на одну даваемую им на собеседованиях задачку: составить PHP-скрипт, переставляющий в произвольной строке символы в обратном порядке. В конце он пишет:
Парадоксально, что демонстрируемый им подход соответствует сему посылу с точностью до наоборот. Выстроенная им иерархия ответов — от самого отстойного до самого ценного, на самом деле, прямо противоположна истинной, и я берусь это показать.
Автор позиционирует себя как безусловного эксперта в подборе программистского персонала, иллюстрируя это разбором реальных и гипотетических ответов на одну даваемую им на собеседованиях задачку: составить PHP-скрипт, переставляющий в произвольной строке символы в обратном порядке. В конце он пишет:
«Уверяю вас — пользуясь этой задачкой (и, конечно, еще многими другими) я ещё ни разу серьёзно не ошибся с кандидатом. Ведь формальное знание PHP в кандидате — поверьте, далеко не главное. Значительно важнее — отношение к своему занятию, стремление к развитию, способность играть в команде, видение мира, если угодно. Мне гораздо интереснее, как человек решает задачу, чем её фактическое решение».
Парадоксально, что демонстрируемый им подход соответствует сему посылу с точностью до наоборот. Выстроенная им иерархия ответов — от самого отстойного до самого ценного, на самом деле, прямо противоположна истинной, и я берусь это показать.
+223
Как обсуждать деньги с руководством или почему иногда останавливаются карьеры?
11 мин
214KКак и обещали в нашем недавнем опросе про проблемы в переговорах, мы решили опубликовать несколько материалов по алгоритмам переговоров в разных рабочих ситуациях. И сегодня первый материал из этого цикла.
Ровно 10 лет назад в одной питерской компании произошли загадочные и удивительные события, повлиявшие на карьеры сотен людей, и нагревшие рынок зарплат в городе в два раза.
Возможно, эти события и не были такими удивительными для опытных ИТ-гуру (эка невидаль, когда одна компания покупает 700 инженеров у другой), но для автора, на тот момент управлявшего небольшим отделом о 17 человеках, эти события послужили источником многочисленных наблюдений и выводов о работе с людьми.
В частности о том, как обсуждать собственную зарплату с руководством – на эту тему сегодня и поговорим, потому что из того, что приходится наблюдать на тренингах – 90% людей совершают одни и те же ошибки, получая минусы в карму и тормозя собственную карьеру (правильный ответ на вопрос, как это делать – в конце статьи).
Ровно 10 лет назад в одной питерской компании произошли загадочные и удивительные события, повлиявшие на карьеры сотен людей, и нагревшие рынок зарплат в городе в два раза.
Возможно, эти события и не были такими удивительными для опытных ИТ-гуру (эка невидаль, когда одна компания покупает 700 инженеров у другой), но для автора, на тот момент управлявшего небольшим отделом о 17 человеках, эти события послужили источником многочисленных наблюдений и выводов о работе с людьми.
В частности о том, как обсуждать собственную зарплату с руководством – на эту тему сегодня и поговорим, потому что из того, что приходится наблюдать на тренингах – 90% людей совершают одни и те же ошибки, получая минусы в карму и тормозя собственную карьеру (правильный ответ на вопрос, как это делать – в конце статьи).
+177
Фильтры захвата для сетевых анализаторов (tcpdump, Wireshark, Paketyzer)
18 мин
203KТуториал
1. Фильтры захвата
Анализаторы трафика являются полезным и эффективным инструментом в жизни администратора сети, они позволяют «увидеть» то что на самом деле передается в сети, чем упрощают диагностику разнообразных проблем или же изучение принципов работы тех или иных протоколов и технологий.
Однако в сети зачастую передается достаточно много разнообразных блоков данных, и если заставить вывести на экран все, что проходит через сетевой интерфейс, выделить то, что действительно необходимо, бывает проблематично.
Для решения этой проблемы в анализаторах трафика реализованы фильтры, которые разделены на два типа: фильтры захвата и фильтры отображения. Сегодня пойдет речь о первом типе фильтров – о фильтрах захвата.
Фильтры захвата, это разновидность фильтров, позволяющая ограничить захват кадров только теми, которые необходимы для анализа, уменьшив, таким образом, нагрузку на вычислительные ресурсы компьютера, а также упростив процесс анализа трафика.
+63
Трюки с CSS-анимациями: мгновенные изменения, отрицательные задержки, анимация transform-origin и другое
14 мин
221KПеревод
Применяя CSS-анимации в повседневной работе, я постепенно выработал привычку экспериментировать с ними в свободное время. Постоянно пытаясь реализовать очередную интересную задумку с использованием как можно меньшего числа элементов HTML, я обнаружил немало способов сделать с помощью CSS довольно неочевидные вещи. В этой статье я хочу поделиться некоторыми из них.
Обычно анимации используются для того, чтобы плавно менять свойства элементов со временем. Однако изменения могут также быть практически мгновенными. Для этого надо задать два ключевых кадра с очень маленьким интервалом, например в 0.001%:
Вот как я использовал этот приём для имитации мигающей неоновой вывески с помощью прозрачности и свойства
Быстрое изменение состояния посреди анимации
Обычно анимации используются для того, чтобы плавно менять свойства элементов со временем. Однако изменения могут также быть практически мгновенными. Для этого надо задать два ключевых кадра с очень маленьким интервалом, например в 0.001%:
@keyframes toggleOpacity {
50% { opacity: 1; } /* Turn off */
50.001% { opacity: 0.4; }
/* Keep off state for a short period */
52.999% { opacity: 0.4; } /* Turn back on */
53% { opacity: 1; }
}
Вот как я использовал этот приём для имитации мигающей неоновой вывески с помощью прозрачности и свойства
text-shadow
:+209
Информация
- В рейтинге
- Не участвует
- Откуда
- Украина
- Зарегистрирован
- Активность