В одном из проектов мне понадобилось реализовать переключение валют с последующим реформатированием значений денежных сумм, встречающихся на странице.Как это у меня часто получается, я это реализовал и через пару недель наткнулся на небольшую библиотечку, которая позволяет довольно удобно выполнить именно эту операцию.
Пользователь
Когда антивирус бессилен
2 мин
8.9KМне зачастую приходится чинить домашние компьютеры знакомым и друзьям. Благо есть опыт и кое-какие навыки. От обычных вирусов спасают антивирусы. Но когда только-только появился Trojan.Winlock, это было большой проблемой, потому что модификаций у него море и ни один антивирус не справлялся оперативно с таким потоком. Пришлось учиться делать очистку вручную. Чтобы с этим разобраться в первый раз, было потрачено достаточно времени, часов 5, но теперь вся процедура занимает от силы 10 минут.
Но недавно я столкнулся с чем-то необычным, что было очень похоже на очередное Trojan.Winlock вымогательство. Для пользователя это выглядело так, что все сайты открываются нормально, но вот с сайтом «Вконтакте» прямо беда — вместо обычного входа требуют прислать денег. Это явно фишинговая атака!
Откуда же идет атака и почему ни антивирусы, ни ручная чистка не спасают?
Компьютер при тщательнейшей проверке оказался абсолютно чистым.
Но недавно я столкнулся с чем-то необычным, что было очень похоже на очередное Trojan.Winlock вымогательство. Для пользователя это выглядело так, что все сайты открываются нормально, но вот с сайтом «Вконтакте» прямо беда — вместо обычного входа требуют прислать денег. Это явно фишинговая атака!
Откуда же идет атака и почему ни антивирусы, ни ручная чистка не спасают?
Компьютер при тщательнейшей проверке оказался абсолютно чистым.
+149
REST vs SOAP. Часть 1. Почувствуйте разницу
6 мин
477KНекоторое время назад я гуглил интернет по поводу “REST vs SOAP”, прочитал пару статей и вроде бы все понял, но не почувствовал от этого никакого удовлетворения. Что-то было не так, то ли я не почувствовал основную идею, то ли просто читал, одновременно слушая новый музон и думая о новой фиче в проекте. Как появилось время, решил восполнить этот пробел, заодно написав полезную статью по этому поводу.
+95
SITH — техника CSS3 для плавной смены изображения
2 мин
17KДоброго времени суток, Хабр!
Хотел бы рассказать Вам, каким образом я добился плавной смены цветов иконок при наведении на них курсора. Подобная проблема часто встречается на Facebook. Если иконка представляет собой синий силуэт на белом фоне, то при наведении курсора оба цвета меняются местами, причём происходит это мгновенно и выглядит немного резко. Мои эстетические чувства были задеты, и я разработал своё решение.
Не встретив на просторах Интернета чего-либо подобного, я взял на себя ответственность назвать этот метод SITH (Soft Image Transition on :Hover) — плавный переход изображения при наведении.
Под хабракатом Вы найдёте полное описание техники, весь код, несколько скриншотов и ссылку на демонстрационную версию.
Хотел бы рассказать Вам, каким образом я добился плавной смены цветов иконок при наведении на них курсора. Подобная проблема часто встречается на Facebook. Если иконка представляет собой синий силуэт на белом фоне, то при наведении курсора оба цвета меняются местами, причём происходит это мгновенно и выглядит немного резко. Мои эстетические чувства были задеты, и я разработал своё решение.
Не встретив на просторах Интернета чего-либо подобного, я взял на себя ответственность назвать этот метод SITH (Soft Image Transition on :Hover) — плавный переход изображения при наведении.
Под хабракатом Вы найдёте полное описание техники, весь код, несколько скриншотов и ссылку на демонстрационную версию.
+98
Есть ли польза от кастомных ядер
4 мин
43KМногие слышали о различных оптимизированных и улучшенных ядрах, это — Zen Kernel и pf-kernel из известных мне. Кроме того, что они добавляют новые возможности (TuxOnIce, поддержка aufs), они могут улучшить производительность, благодаря улучшенному менеджеру задач (BFS) и планировщику (BFQ). В этом топике я хочу сравнить производительность pf-kernel со стандартными ядрами в Ubuntu и Arch Linux, а также описать процесс сборки и установки pf-kernel для Ubuntu. Тестировать Zen Kernel я не вижу особого смысла, т.к. во-первых, проект выглядит заброшенным, а во-вторых, набор патчей и там и там очень похожий.
+65
Тактика победителя: убеди врага, что он всё делает правильно
3 мин
10KПредставим, что вы владелец одной из 100500-миллионной доски объявлений по недвижимости. Вы чувствуете, что тема перспективная, бабла на рынке крутится много, вам хочется заработать и быть счастливым. Для монетизации вашего сайта у вас, допустим, есть распространённый приём: деление аккаунтов на «пользовательские» (публиковать можно только одно объявление), т.е. бесплатные, и «профессиональные», т.е. аккаунты продавцов, за деньги.
Некоторые нехорошие продавцы (поскольку они нехорошие, то будем и нехорошим словом их дальше называть — «мошенники»), в свою очередь, тоже хотят зарабатывать и не хотят вам платить.
В результате вы каждое утро получаете на свой сайт очередную тонну шлако-объявлений от «псевдочастников», которые только отпугивают пользователей вашего сайта (они же ищут частников, а в каждом втором объявлении попадают на очередного мошенника), а значит и ударяют по вашей прибыли.
Некоторые нехорошие продавцы (поскольку они нехорошие, то будем и нехорошим словом их дальше называть — «мошенники»), в свою очередь, тоже хотят зарабатывать и не хотят вам платить.
В результате вы каждое утро получаете на свой сайт очередную тонну шлако-объявлений от «псевдочастников», которые только отпугивают пользователей вашего сайта (они же ищут частников, а в каждом втором объявлении попадают на очередного мошенника), а значит и ударяют по вашей прибыли.
+137
Взгляд изнутри: светодиодные лампочки
17 мин
660KПредисловие
В последнее время был поднят ажиотаж вокруг светодиодных ламп, которые должны заменить собой обычные лампы Ильича. И как поведал главный нанотехнолог России, такие лампы скоро поступят в продажу в Москве и Санкт-Петербурге. Конечно, всё было обставлено с пафосом: первым оценил новинку В.В.Путин. Мне удалось достать лампочку от «Оптогана» одним из первых, к тому же в руках у меня оказались ещё одна лампочка российского производства («СветаLED» или «SvetaLED»), правда побитая жизнью, но рабочая, и китайский NoName, которую с лёгкостью можно купить на ebay или dealextreme.com.
+532
Паттерн «Обозреватель» и контекст вызова в Javascript
3 мин
13KХотя про паттерн «Обозреватель (Наблюдатель, Observer)» сказано достаточно, в том числе и на Хабре, вкратце повторюсь. Суть паттерна в наблюдении за состоянием неких субъектов системы и соответствующей реакции наблюдателей на изменения этих состояний. За одним субъектом может следить несколько наблюдателей, причём сам он об этом не знает (слабое связывание), но исправно оповещает всех об изменении состояния.
Удобно использовать Обозревателя на сайтах и в веб-приложениях, поэтому логично реализовать его с использованием самого популярного языка для веб-среды — Javascript.
Удобно использовать Обозревателя на сайтах и в веб-приложениях, поэтому логично реализовать его с использованием самого популярного языка для веб-среды — Javascript.
+29
Плагин для выделения последней строки
1 мин
3.2KВ моей текущей задаче нужно было расположить текст по ширине с выравниванием последней строки по центру. Решением могло быть CSS свойство text-align-last, но оно поддерживается только в Internet Explorer'е. Поиск подобных плагинов JQuery не дал результатов, поэтому был написан свой.
Готовый плагин я выложил сюда
Как видно из примера, в качестве параметра передаётся CSS для последней строки.
Готовый плагин я выложил сюда
Пример использования
$(selector).lastLine({
'display':'block',
'text-align':'center'
});
Как видно из примера, в качестве параметра передаётся CSS для последней строки.
+15
MySQL репликация one-slave-multi-master
3 мин
13KПредисловие.
Понадобилось сделать репликацию несколькими мастер-серверами с mysql, чтобы данные со всех них грузились на один слэйв-сервер. Готового решения стандартными средствами не нашлось. Но так как проблема оставалась актуальной, со временем подоспел немного усложненный, но работоспособный вариант c использованием средств самой mysql.
+28
Aspia 0.2.5
4 мин
6.9KПосле долгих месяцев разработки, я могу представить публике новую версию программы для сбора информации о компьютере для ОС Windows – Aspia 0.2.5. Дата релиза неоднократно сдвигалась с целью доделать все запланированные возможности, однако дальше тянуть с выходом я не мог. В связи с отсутствием железа для тестирования, я не смог сделать поддержки чтения данных SPD для DDR3 и получения температур с процессоров производства AMD. Однако, несмотря на все эти сложности, релиз получился достойным.
Что же нового удалось реализовать?
Что же нового удалось реализовать?
+107
Как начать работу над стартапом?
6 мин
14KТопик навеян впечатлениями от докладов на swpiter и постом о том, как не продать машину :)
Суть в чём, есть некая порция работы, которую нужно сделать перед тем, как начинать тратить свои деньги. Я попытался описать последовательность этих действий.
Картинка слева кликабельна, а ниже — текстовое описание в 12 шагах как инициировать стартап и при этом всегда оставаться в выигрыше.
И так, всё начинается с идеи, которая каким-то образом пришла к вам в голову. Идея выглядит интересной и соблазнительной. Она мотивирует вас.
Самое важное в идее — это не терять мотивацию вплоть до 10 шага и тогда вы в любом случае получите для себя выгоду.
Необходимо хотя бы примерно ответить на эти вопросы:
Как работать над стартапом и всегда оставаться в выигрыше?
Суть в чём, есть некая порция работы, которую нужно сделать перед тем, как начинать тратить свои деньги. Я попытался описать последовательность этих действий.
Картинка слева кликабельна, а ниже — текстовое описание в 12 шагах как инициировать стартап и при этом всегда оставаться в выигрыше.
1. Идея!
И так, всё начинается с идеи, которая каким-то образом пришла к вам в голову. Идея выглядит интересной и соблазнительной. Она мотивирует вас.
Самое важное в идее — это не терять мотивацию вплоть до 10 шага и тогда вы в любом случае получите для себя выгоду.
2. Детализация идеи
Необходимо хотя бы примерно ответить на эти вопросы:
- область применения
- какие задачи поможет решить
- какие инструменты применяются для решения задач
- что вы хотите получить в процессе и в результате реализации
- какие-то существенные моменты, которые вам просто необходимо изложить, чтобы не потерять в будущем
- сколько времени вы можете уделить (если идея вас реально интересует, вы перейдёте к следующим этапам)
- сколько на это нужно денег
- кто вам ещё нужен для реализации идеи
+113
Основы таргетинга и сегментации email-рассылок
5 мин
10KЕсли клиент подписался на нашу рассылку, это ещё не означает, что она точно будет соответствовать его интересам. Увы, некоторые компании не учитывают того, что потребности и интересы их потребителей могут сильно разниться. Предположим, вы продаете спортивную одежду и хотите доносить информацию о новинках до своих покупателей. Задайтесь вопросом, будет ли интересна мужчине новая линия женских спортивных костюмов? Хочет ли подросток знать больше о товарах для детей? Нужно ли человеку, купившему принадлежности для посещения спортзала, приобрести заодно и футбольный мяч?
Потребности клиентов так же разнообразны, как и ассортимент ваших услуг. Чаще всего им необходима лишь малая толика предлагаемых товаров, и созданная без учета этой простой истины вроде бы ожидаемая рассылка становится раздражающим спамом. Даже превосходное по форме и содержанию письмо будет без колебаний отправлено в мусор, если оно не содержит сведений, интересующих пользователя.
Потребности клиентов так же разнообразны, как и ассортимент ваших услуг. Чаще всего им необходима лишь малая толика предлагаемых товаров, и созданная без учета этой простой истины вроде бы ожидаемая рассылка становится раздражающим спамом. Даже превосходное по форме и содержанию письмо будет без колебаний отправлено в мусор, если оно не содержит сведений, интересующих пользователя.
+9
Traits в php 5.4. Разбираем детали реализации
8 мин
53KТуториал
Совсем недавно вышла первая beta php 5.4, а пока я писал топик подоспела и вторая. Одно из нововведений в 5.4 – это traits (типажи). Предлагаю разобраться во всех деталях в том, что же типажи из себя представляют в php.
Простой пример типажа, чтобы не заглядывать в Википедею:
Как видно, к классу
Но во всём есть свои детали.
Простой пример типажа, чтобы не заглядывать в Википедею:
//определение типажа
trait Pprint
{
public function whoAmI()
{
return get_class($this) . ': ' . (string) $this;
}
}
class Human
{
use Pprint; //подключаем типаж, ключевое слово use
protected $_name = 'unknown';
public function __construct($name)
{
$this->_name = $name;
}
public function __toString()
{
return (string) $this->_name;
}
}
$a = new Human('Nikita');
echo $a->whoAmI(), PHP_EOL; //=> Human: Nikita
Как видно, к классу
Human
было добавлено поведение из типажа Pprint
.Но во всём есть свои детали.
+147
Принцип цикады и почему он важен для веб-дизайнеров
6 мин
233KПеревод
Пару лет назад я прочитал интересные факты о жизненном цикле периодических цикад. Обычно мы не видим вокруг себя много этих насекомых, потому что бóльшую часть своей жизни они проводят под землёй и тихо сосут корни растений.
Однако, в зависимости от вида, каждые 7, 11, 13 или 17 лет периодические цикады одновременно массово вылезают на свет и превращаются в шумных летающих тварей, спариваются и вскоре умирают.
Хотя наши странные цикады весело уходят в иной мир, возникает очевидный вопрос: это просто случайность, или числа 7, 11, 13 и 17 какие-то особенные?
Однако, в зависимости от вида, каждые 7, 11, 13 или 17 лет периодические цикады одновременно массово вылезают на свет и превращаются в шумных летающих тварей, спариваются и вскоре умирают.
Хотя наши странные цикады весело уходят в иной мир, возникает очевидный вопрос: это просто случайность, или числа 7, 11, 13 и 17 какие-то особенные?
+668
Признаки плохого программиста
18 мин
68KПеревод
Неспособность рассуждать о коде
«Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.
Симптомы
- Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
- Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
- Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
- «Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
- «Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).
+220
Стратегия оптимизации веб-проекта с использованием MySQL
5 мин
8.2KВведение
В жизни любого крупного веб-проекта, особенно на PHP, но, в целом, это касается любого серверного ЯП, пригодного для веб-разработки, обычно наступает понимание, что «так дальше жить нельзя», и что настал момент, когда нужно провести оптимизацию работы сайта, чтобы он перестал тормозить (хотя бы на production).
Интересно, что, как правило, даже тяжелые фреймворки (вроде Symfony или RoR) на «медленных» языках, в production-окружении работают достаточно сносно по скорости, а основные «тормоза» вызываются SQL-запросами и неграмотным кешированием (к примеру, инициализация достаточно сложной и большой конфигурации проекта на Symfony занимает около 80 мс, а времена исполнения страницы, при этом, иногда достигают секунды и более).
Если вы смогли определить, что это — ваш случай, и ваш проект на MySQL, то эта статья может вам помочь принять конкретные меры и исправлению ситуации с закреплением результата и предотвращением возникновения откровенных проблем с СУБД впоследствии.
+78
Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install
5 мин
173KК написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install. |
Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Да, пишут. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и об
+293
Интерполяция: рисуем гладкие графики средствами PHP и GD
6 мин
59KРаспространенной задачей для программиста является рисование графиков. Входными данными является массив точек (xi;yi). Как правило, мы знаем только некоторые значения — в определенных точках графика. Чтобы построить непрерывный график кривой необходимо прибегнуть к интерполяции или аппроксимации.
Интерполяция — построение кривой, проходящей через заданные точки.
Аппроксимация — приближение кривой к исходной, но не обязательно проходящей через заданные точки.
В этом топике я хочу продемонстрировать свою библиотеку для PHP, которая производит интерполяцию с помощью многочлена Лагранжа, C-сплайна и сплайна Акимы, а также аппроксимацию кривой Безье. Дополнительно в ней реализована отрисовка отрезка со сглаживанием (антиалиасингом).
Кратко рассмотрим методы интерполяция и аппроксимации.
Интерполяция — построение кривой, проходящей через заданные точки.
Аппроксимация — приближение кривой к исходной, но не обязательно проходящей через заданные точки.
В этом топике я хочу продемонстрировать свою библиотеку для PHP, которая производит интерполяцию с помощью многочлена Лагранжа, C-сплайна и сплайна Акимы, а также аппроксимацию кривой Безье. Дополнительно в ней реализована отрисовка отрезка со сглаживанием (антиалиасингом).
Кратко рассмотрим методы интерполяция и аппроксимации.
+74
Обзор двадцати двух бесплатных шрифтов с сайта Open Font Library: 16 шрифтов с кириллицею + 6 орнаментальных и спецсимвольных шрифтов
4 мин
62KСегодня я упоминал ужé о трудностях, с которыми сталкивается всякий, кто желает разыскать на сайте Open Font Library шрифты с поддержкою кириллицы. Фильтра по языкам нет; поиск по слову «cyrillic», как dimitrymd успел убедиться, находит только десяток шрифтов.
Я ощущаю поэтому, что есть смысл составить да выложить более полный список тамошних шрифтов, имеющих поддержку кириллицы. Порядок шрифтов будет алфавитным:
«На закуску» я намерен также обозреть полдюжины шрифтов с различными спецсимволами да орнаментами:
Я ощущаю поэтому, что есть смысл составить да выложить более полный список тамошних шрифтов, имеющих поддержку кириллицы. Порядок шрифтов будет алфавитным:
- ConsolaMono
- Crimson
- Dataface
- Designosaur
- Didact Gothic
- GNUTypewriter
- Grana Padano
- Jura
- Neocyr
- NotCourierSans
- Old Standard
- Pfennig
- Press Start 2P
- Sansus Webissimo
- Triod Postnaja
- VDS
«На закуску» я намерен также обозреть полдюжины шрифтов с различными спецсимволами да орнаментами:
+137
Информация
- В рейтинге
- Не участвует
- Откуда
- Россия
- Зарегистрирован
- Активность