Pull to refresh
0
0
Send message

Возможности интернет-магазина «средней руки» или Накрутили

Reading time3 min
Views1.8K
В последнем номере журнала ДЕНЬГИ появилась очередная статья о технологиях платежей с помощью банковских карт и о том, какие опасности поджидают там рядового пользователя (ссылка).

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

Приведу его полностью:
«…Или, допустим, оплачиваете вы покупку через некий интернет-магазин, продолжает директор по маркетингу компании Adscore.ru Сергей Шивалин, много лет изучающий рынок киберкриминала. «Средней руки интернет-магазин — это сотни тысяч карточек. Если там окажется кто-то нечистый на руку, ему будет технически не очень сложно получить номер и срок действия карты»,— говорит он. Кроме того, отмечает Шивалин, большинство сайтов делается бездумно, у доброй половины из них есть минимальные уязвимости: через эти «дырки» на сайтах можно загрузить некое вредоносное ПО, которое позволит злоумышленникам добыть данные о пластиковых картах…»

Тем кто не сходил по ссылке напомню, что, вообще говоря, статья данная написана про мошенничества через операторов связи, и интернет-магазины к озвученной теме отношение имеют не слишком большое. Впрочем, это как раз дело автора. Беда в другом:

Во-первых: «Средней руки интернет-магазин — это сотни тысяч карточек». Эта фраза вначале напрягла. Затем заставила потянуться к калькулятору. Итак:
Читать дальше →
Total votes 117: ↑106 and ↓11+95
Comments81

MagickWand — тени и скругленные углы

Reading time4 min
Views1.4K
Навеяно топиком хабраюзера apelsyn Фотошопим на PHP
Я взялся за написание движка для сервиса открыток — для знакомых, бесплатно. Такая работа хороша тем, что можно ставить эксперименты и в процессе что-то новое и интересное узнавать — благо никто не может торопить и напоминать о сроках.
В этой работе впервые мне пришлось столкнутся с интерфейсом к ImageMagick под названием MagickWand
Как делать превьюшки я разобрался быстро, несмотря на то, что документация, мягко говоря, очень лаконичная. Так же практически не вызвало вопросов добавление надписей и фонов к картинке.
Но душа хотела прекрасного.
В частности, закругленных уголочков и теней под превьюшками.
Я знал, что таки вещи делать можно, но вся загвоздка в том, что в упомянутом посте все делалось с помощью Imagick, а у меня-то уже стояла MagickWand! Гугл, хабр и тематические блоги ничего не дали, поэтому пришлось изобретать велосипед самостоятельно.
После некоторых проблем, непродолжительного битья головой о стену и экспериментов с режимами наложения изображений в MagickWand родилось
следующее решение
Total votes 12: ↑10 and ↓2+8
Comments8

Установка Windows 8 Developer Preview для ленивых

Reading time3 min
Views51K
Задача: поставить Windows 8 Developer Preview поиграться.

Условия: старая винда должна выжить, привода DVD нет, большой флешки на десять гигов тоже.

Классические решения:

  1. Поставить в виртуалку. Это медленно, нужен дополнительный софт и без хардварной виртуализации ничего не заработает.
  2. Поставить на другой жёсткий диск. Увы, в ноутбук второй винт не вставишь, да и нету его у меня.
  3. Выделить отдельный раздел на винте. А это ставить лишний софт, танцевать с бубнами вокруг разделов… Лениво!

К тому же последние два варианта обычно требуют физический DVD, которого нет. Выход? VHD!

Кроме ISO образа Windows 8 нам также понадобится установленная Windows 7 — более ранние версии не умеют работать с VHD. А из под Linux мы не сможем так просто запустить инсталлятор.

Читать дальше →
Total votes 216: ↑181 and ↓35+146
Comments139

Лекториум запускает направление MOOC

Reading time5 min
Views13K
Друзья! Мы шли к этому чертовски долгие 5 лет. ЛЭТИ, ИТМО, Политех и ЕУСПб запускают свои первые онлайн-курсы на Лекториуме. Итак, мы открываем регистрацию на следующие курсы:

Инженерное дело


Санкт-Петербургский государственный политехнический университет (СПбГПУ)
Автор: Игорь Асонов iasonov



Этот курс для людей, у которых есть тяга к физике или математике или информатике или созданию чего-то своими руками, но в тоже время есть боязнь слова «инженер». Данный курс расскажет и покажет, какие есть инженерные профессии и как они оплачиваются, кто такой инженер по своей натуре и какие перед ним встают задачи в повседневной деятельности.
Подробное описание курса на Лекториуме.
Хочу курсы про киборгов, биткоины и звёзды!
Total votes 50: ↑47 and ↓3+44
Comments14

Автоматическое оповещение читателей о новостях с помощью ВКонтакте. Часть 4

Reading time2 min
Views15K
На хабре уже было несколько статей о работе с вконтактом (раз, два, три), однако оно производилось через простые запросы на страницы с последующим ее парсингом. Это ужасно неправильно, так как если верстка страницы либо порядок запросов поменяется — скрипт перестанет работать. Кроме того, если не ошибаюсь, это запрещено правилами сайта.
Для этого есть официальный API от вконтакте.

Читать дальше →
Total votes 45: ↑24 and ↓21+3
Comments43

Текст любой ценой: WCBFF и DOC

Reading time9 min
Views28K
Несколько позже, чем хотелось, но продолжаем наш разговор о получении текста из разных форматов данных. Мы с вами уже познакомились с тем, как работать с изначально XML-base файлами (docx и odt), прочитали текст из pdf, преобразовали содержимое rtf в plain-text. Теперь перейдём в вкусненькому да сладенькому — формату DOC.
Читать дальше →
Total votes 72: ↑67 and ↓5+62
Comments25

Отдаем файлы эффективно с помощью PHP

Reading time3 min
Views281K
Если Вам потребовалось отдавать файлы не напрямую веб сервером, а с помощью PHP (например для сбора статистики скачиваний), прошу под кат.
Три способа отправить пользователю файл и не повесить сервер
Total votes 132: ↑108 and ↓24+84
Comments59

Умная адаптация ширины блочных элементов на чистом CSS 2.0

Reading time3 min
Views174K
Верстая очередной проект (или ещё только проектируя макетную сетку) многие сталкивались с дилеммой — использовать фиксированную ширину макета или «резиновую» сетку, адаптируемую под размер окна браузера.

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

Фиксированная ширина макетной сетки

Вёрстку загоняют в горизонтальный габарит 960—980 пикселей (чтобы на большинстве устройств в большинстве разрешений всё входило), что при больших горизонтальных размерах окна выглядит как-то зябко — тонкая вертикальная полоса полезного содержимого страницы и огромные бесполезные поля неиспользуемого пространства по бокам.

«Резиновая» макетная сетка по ширине окна

Опять же при больших горизонтальных размерах окна есть другая проблема: строки текста становятся очень длинными, и читать их становится совсем не так комфортно, как хотелось бы.
Ещё одна распространённая проблема этого решения — боковые отступы при больших горизонтальных размерах окна уже не так удачно визуально согласуются с горизонтальными размерами элементов, что также не добавляет комфорта при взгляде на свёрстанный макет.
Хочу предложить нехитрый вариант решения
Total votes 12: ↑6 and ↓60
Comments22

Что если бы Google выпустил свой Bootstrap?

Reading time2 min
Views19K
Поздравляю всех с пятницей и в качестве небольшого развлечения предлагаю представить, как бы выглядел популярный CSS-фреймворк Twitter Bootstrap, если бы он был от Google? Встречайте Plusstrap.


Читать дальше →
Total votes 216: ↑200 and ↓16+184
Comments91

arcticModal — jQuery-плагин для модальных окон

Reading time1 min
Views60K
Для реализации модальных окон и диалогов существует немало плагинов jQuery. Перепробовав многие из них, я не нашёл ни одного, который бы достаточно просто и, что важно, правильно решал поставленную задачу.

Недавно SamDark писал о правильных модальных окнах и представил сообществу плагин The Modal. Полностью согласен с его виденьем модальных окон, но в представленном плагине не хватало функционала. У меня уже давно из проекта в проект кочевали наработки по этой же теме, вот решил тоже оформить их в виде плагина.
Подробнее
Total votes 46: ↑39 and ↓7+32
Comments62

Торрент лекций Лекториум

Reading time1 min
Views35K
image

В связи с неддавней темой Лекториум записал почти тысячу лекций за год сайт Лекториума уже несколько дней не покидает хабраэффект.

Дабы облегчить дальнейшее скачивание лекций выкладываю некоторые из ник как торренты.

Читать дальше →
Total votes 133: ↑131 and ↓2+129
Comments102

jQuery.Tree

Reading time2 min
Views24K
Товарищ caffeine искал плагин к jQuery, который делает дерево с чекбоксами, которые имеют три состояния — установленный, снятый и «чуть-чуть установленный». Не нашел, попросил меня написать. Я написал и делюсь со всеми желающими.
Ой, как интересно
Total votes 72: ↑67 and ↓5+62
Comments59

Текст любой ценой: DOCX и ODT

Reading time4 min
Views62K
Недавно возникла задача получения чистого текста из различных форматов документооборота — будь-то документы Microsoft Word или PDF. Задача была выполнена даже с чуть более широким списком возможных входных данных. Итак, этой статьёй я открываю список публикаций о чтении текста из следующих типов файлов: DOC, DOCX, RTF, ODT и PDF — с помощью PHP без использования сторонних утилит.

Читать дальше →
Total votes 113: ↑98 and ↓15+83
Comments60

Плагин для «живых» форм

Reading time4 min
Views15K
Статья посвящена плагину, который упрощающает жизнь client-side программиста.

При заполнении формы случается так, что учитывая введенные данные, форму нужно менять (прятать и показывать поля). Простейший пример: при заказе доставки товара пользователь выбрал «самовывоз», значит поля про адрес доставки можно спрятать, зато было бы здорово показать карту проезда для самовывоза.

И что дальше

Часто такая логика остается без реализации, однако если вы заботитесь о своих пользователях, то делать это нужно.

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

Второй подход это писать «портянки» javascript'а который всю эту логику реализует на стороне клиента. Особенно грустно писать «каскадную» логику типа «если ввели a в поле A, показать B, если ввели c в поле B, то показать D. Если в A ввели что-то другое, спрятать B, а потом D».

Оба варианта нельзя назвать удобными. Прежде всего потому что логика реализуется императивным стилем вместо уместного для таких случаев декларативного. Но выход есть!
Читать дальше →
Total votes 114: ↑112 and ↓2+110
Comments67

Аутентификация на базе ЭЦП

Reading time2 min
Views20K
Уже в нескольких топиках рассматривались проблемы построения безопасного механизма аутентификации при небезопасном соединении. Ниже предлагается к обсуждению схема с использованием асимметричной криптографии. Такой подход позволит аутентифицироваться на сервере, никогда не передавая серверу пароль, ни при регистрации, ни при аутентификации. Как всегда, будет демонстрация и исходные коды. Кому данная тема интересна, прошу под кат.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments48

SSH-туннель домой без необходимости оставлять включённым домашний ПК

Reading time5 min
Views211K
Disclaimer
Этот пост появился здесь по нескольким причинам:
1) Меня попросил сам Boomburum
2) Есть предположение, что на хабре всё-таки есть люди, имеющие прямое отношение к IT, но при этом имеющие весьма отдалённое представление о пользе SSH и её извлечении из обычного домашнего роутера, и которым, надеюсь, будет весьма интересно и полезно об этом узнать.

Хабралюдям, познавшим Дао IOS, tun, VPN, *wrt, WOL… etc, предлагается на выбор:
А) Закрыть топик, заняться делом и не выводить себя из нирваны чтением этой любительской фигни.
Б) Потратить время на конструктивную критику и полезные дополнения в комментариях.
Специально для GrammarNazi:
Пишите пожалуйста об ошибках в личку — обещаю исправиться.
Бла-бла-бла, а топик-то о чём?
Итак, я обещал рассказать «как поднять ssh-туннель домой без необходимости оставлять включённым домашний ПК» и, как правильно догадался peter23 речь пойдёт про ssh-сервер на роутере.
Читать дальше →
Total votes 259: ↑234 and ↓25+209
Comments100

Новый пуленепробиваемый синтаксис @font-face

Reading time3 min
Views71K
С самого начала «вебошрифтовой революции» мы полагались на неизящные хаки деклараций @font-face, чтобы шрифты из Паутины загружались во всех браузерах. Может ли существовать лучший путь? Вполне изящный и совместимый с будущими браузерами?

Вкратце об истории вопроса


В сентябре 2009 года Пол Айриш (Paul Irish) огласил пуленепробиваемый синтаксис для записи деклараций @font-face. Синтаксис был компактным и в то время действовал во всех браузерах. Недавно стали поступать, со временем усиливаясь, жалобы на отказ шрифтов загружаться в Android — поэтому мы стали вместо того рекомендовать синтаксис «Mo' Bulletproofer», сочинённый Ричардом Финком (Richard Fink). К сожалению, синтаксису «Mo' Bulletproofer» требуется двойная запись деклараций, так что поддержка его сложнее.

Синтаксис Fontspring @Font-Face


А вот таким этому коду следовало бы быть с самого начала. Чистым, ясным и простым:
@font-face {
	font-family: 'MyFontFamily';
	src: url('myfont-webfont.eot?') format('eot'), 
	     url('myfont-webfont.woff') format('woff'), 
	     url('myfont-webfont.ttf')  format('truetype'),
	     url('myfont-webfont.svg#svgFontName') format('svg');
	}

Что? Я не понял.


Хак Трюк, заставляющий этот код заработать — символ «?» вслед за именем файла EOT. Без шуток.

Как это срабатывает


Читать дальше →
Total votes 141: ↑132 and ↓9+123
Comments42

jPlayer — плагин для проигрывания аудио и видео

Reading time2 min
Views56K
imageЯ уже писал про скрипт audio.js, позволяющий проигрывать аудио файлы использую возможности html5 и flash. Пост был встречен хорошо, поэтому сейчас я хочу рассказать про jPlayer — jQuery плагин для проигрывания аудио и видео.
Читать дальше →
Total votes 90: ↑85 and ↓5+80
Comments43

HTML в PDF

Reading time2 min
Views120K
html to pdf

В далеком 2008 году уже была написана подобная статья и я попытался применить знания, но, к сожалению, не справился с русским языком (на denwer-е работал, на хостинге нет). Возможно сказалось отсутствие опыта. А недавно нашел хорошую библиотеку и решил поделиться. Топик, скорее всего, адресован начинающим программистом и ни на, что не претендует.
Читать дальше →
Total votes 144: ↑129 and ↓15+114
Comments81

Nano — миниатюрный JavaScript фреймворк

Reading time3 min
Views6.1K
Привет, читатель. Есть много прекрасных и мощных JavaScript-фреймворков. JQuery, MooTools, ExtJS, и множество других. Они кроссбраузерны и громадны. И пользоваться ими — одно удовольствие.

Но иногда, бывает, хочется написать какой-нибудь небольшой скриптик на 5 килобайт и как-то совесть мучает подключать JQuery, который весит в сжатом виде 75 килобайт. И каждый раз начинаешь писать свой мини-фреймворк:
var dom = {
	id  : function (id)  { return document.getElementById(id); },
	tag : function (tag) { return document.getElementsByTagName(tag); },
};


Вроде бы, больше для начала и не надо. А потом вспоминаешь про createElement, легкий способ присвоить CSS, наследование, расширение прототип. И в общем каждый раз пишешь свой велосипед.
В этот раз я решил написать миниатюрный фреймворк, который можно было бы без зазрений совести подключать даже к самым маленьким проектам. В сжатом виде он весит всего 4 килобайта (в 20 раз меньше JQuery).
И в нём есть еще одно преимущество по сравнению со всеми современными фреймворками — полный отказ от устаревших браузеров, за счёт чего в эти 4 килобайта вместилася половина JQuery.

Итак, приветствуйте, JavaScript-фреймворк Nano

Читайте актуальную вторую часть!



Читать дальше →
Total votes 82: ↑72 and ↓10+62
Comments158
1

Information

Rating
Does not participate
Registered
Activity