Search
Write a publication
Pull to refresh
73
0
Дмитрий @depp

User

Send message

Radmin. Приветствие

Reading time2 min
Views33K
Добрый день, уважаемые хабравчане!

Каждый из вас, должно быть, знает, что такое программы удаленного доступа и зачем они нужны. Этот блог посвящен одной из таких программ, которая, думаю, в особом представлении не нуждается. Появившись 11 лет назад, Radmin стал очень популярен как в России, так и далеко за ее пределами. Он говорит на 27 языках всему миру о том, что удаленное управление компьютерами может быть безопасным, быстрым и простым как нажатие клавиши.
Читать дальше →

Как открыть отдел интернет-магазина в торговом центре или почему мы теперь стоим рядом с отделом PocketBook

Reading time8 min
Views49K
В прошлом материале я рассказывал про то, как выбирать место для интернет-магазина в реале. В нём были базовые теоретические выкладки, после которых многие запросили продолжения с конкретными числами. В этом топике — конкретные советы по открытию в торговом центре на примере одной из наших точек.

Топик будет полезен тем, кто:
  • Имеет свой интернет-магазин и хочет реальный;
  • Не знает, как открывать точку в ТЦ;
  • Выбирает между точкой самовывоза и разными вариантами магазинов.

Выжимка:
  • ТЦ хорош аудиторией, но плох жесткими условиями и высокими стартовыми затратами;
  • В ТЦ сложно, но реально встать;
  • Как презентоваться;
  • Персонал нанимается до открытия;
  • Какие бывают подставы;
  • Как делали открытие мы и как его нужно было делать.
Читать дальше →

Watir: простой парсинг сложных сайтов

Reading time4 min
Views51K
imageКаждый, кто пишет парсеры, знает, что можно распарсить сто сайтов, а на сто-первом застрять на несколько дней. Структура очередного отмороженного сайта может быть сколь угодно сложной, и, когда дело касается сжатых javascript-ов и ajax-запросов, расшифровать их и извлечь информацию с помощью обычного curl-а и регекспов становится дороже самой информации.

Грубо говоря, проблема в том, что в браузере работает javascript, а на сервере его нет. Нужно либо писать интерпретатор js на одном из серверных языков (jParser и jTokenizer), либо ставить на сервер браузер, посылать в него запросы и вытаскивать итоговое dom-дерево.

В древности в таких случаях мы строили свой велосипед: на отдельной машине запускали браузер, в нем js, который постоянно стучался на сервер и получал от него задания (джобы), сам сайт грузился в iframe, а скрипт извне отправлял dom-дерево ифрейма обратно на сервер.

Сейчас появились более продвинутые средства — xulrunner (crowbar) и watir. Первый — безголовый firefox. У crowbar есть даже ff-плагин для визуального выделения нужных данных, который генерит специальный парсер-js-код, однако там не поддерживаются cookies, а допиливать неохота. Watir позиционируется разработчиками как средство отладки, но мы будем его использовать по прямому назначению и в качестве примера вытащим какие-нибудь данные с сайта travelocity.com.

Читать дальше →

Ускоряем раздачу фоток

Reading time8 min
Views14K

С проблемой медленной отдачи статического контента рано или поздно сталкивается каждый сисадмин.

Проявляется это приблизительно так: иногда 3Kb картинка грузится так, как будто бы она весит 3Mb, на ровном месте начинают «залипать» (отдаваться очень медленно) css-ы и JavaScript-ы. Вы нажимаете ctrl + reload — и уже, вроде, проблемы нет, потом спустя всего несколько минут все повторяется опять.

Не всегда истинная причина «тормозов» очевидна и мы косо поглядываем то на nginx, то на хостера, то на «забитый» канал, то на «тормозной» или «глючный» браузер :)

На самом деле проблема в несовершенстве современного винчестера, который до сих пор не расстался с механическими подсистемами вращения шпинделя и позиционирования головок.

В этой статье я предложу Вам свое решение этой проблемы, основанное на практическом опыте использования SSD дисков совместно с web-сервером nginx.
Читать дальше →

Настройка и оптимизация MySQL сервера

Reading time9 min
Views317K
В этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.
Читать дальше →

Еще раз об архитектуре сетевых демонов

Reading time13 min
Views20K
Во многих статьях, в том числе на хабре, упоминаются и даже описываются разные способы построения архитектуры сетевых сервисов (демонов). При этом мало у кого из авторов есть реальный опыт создания и оптимизации демонов, работающих с десятками тысяч одновременных соединений и/или гигабитным трафиком.

Так как большинство авторов не удосуживается хотя бы залезть в документацию, то обычно в таких статьях вся информация базируется на неких слухах и пересказах слухов. Эти слухи бродят по сети и поражают википедию, хабрахабр и другие уважаемые ресурсы. В результате получаются опусы вроде "Вы наверное шутите, мистер Дал, или почему Node.js" (пунктуация автора сохранена): она, в основном, верная по сути, но изобилует неточностями, содержит ряд фактических ошибок и изображает предмет с какого-то непонятного ракурса.

Мне было сложно пройти мимо статьи, изобилующей фразами вроде «эффективные реализации polling'а на сегодняшний день имеются лишь в *nix-системах» (как будто poll() есть где-то, кроме некоторых *nix). Этот пост начинался как комментарий, разъясняющий уважаемому inikulin ошибки в его статье. В процессе написания оказалось, что проще изложить предмет с самого начала, что я собственно и делаю отдельным постом.
В моем очерке нет срыва покровов или каких-то неизвестных трюков, здесь просто описываются преимущества и недостатки разных подходов человеком, который проверял, как всё это работает на практике в разных операционных системах.
Для желающих просветиться — добро пожаловать под кат.
Читать дальше →

Пикселькит теперь можно купить

Reading time2 min
Views3.4K
Летом я уже рассказывал Хабру о том, как можно втиснуть все ваши старые приставки внутрь геймпада от любой из них. Если кто-то забыл о чём речь, у нас с тех пор осталось демонстрационное видео:



В комментариях к тому посту я пообещал вам в течение 3х недель сделать комплект для самостоятельной сборки этого устройства. И вот, спустя 3 месяца, он готов к продаже.) Это отличный DIY–проект на выходной день для тех, у кого руки давно тянулись к паяльнику, но он не знал с чего начать. Если вы один из них — добро пожаловать под кат за подробностями.

Читать дальше →

Персональные данные (Краткий FAQ)

Reading time8 min
Views232K

Что такое персональные данные?


Персональные данные - любая информация, относящаяся к определенному или определяемому на основании такой информации физическому лицу, в том числе:  
— его фамилия, имя, отчество, 
— год, месяц, дата и место рождения, 
— адрес, семейное, социальное, имущественное положение, образование, профессия, доходы, 
другая информация (см. ФЗ-152, ст.3).
Например: паспортные данные, финансовые ведомости, медицинские карты, год рождения (для женщин), биометрия, другая идентификационная информация личного характера.
В общедоступные источники персональных данных (адресные книги, списки и другое информационное обеспечение) с письменного согласияфизического лица могут включаться его фамилия, имя, отчество, год и место рождения, адрес, абонентский номер и иные персональные данные (см. ФЗ-152, ст.8).
Персональные данные относятся к информации ограниченного доступа и должны быть защищены в соответствии с законодательством РФ. При формировании требований по безопасности систем персональные данные разделяют на 4 категории.
Читать дальше →

Визуализация модели данных

Reading time1 min
Views4K
Для django есть хорошая утилитка, которая анализирует описание модели данных и рисует её графическое представление в dot-формате graphviz.
Сегодня переписал эту утилитку под appengine.

image

Утилита распознаёт Expando (добавляет многоточие в список атрибутов),
наследование от PolyModel (рисует стрелки наследования),
а также ссылочные свойства (в том числе самодельные, типа ManyToManyProperty).

Как пользоваться:
  1. засунуть скрипт в каталог с sdk
  2. запустить её из корневого каталога приложения, указав аргументами список модулей для анализа (в формате имён дя import):
    python path/to/modelviz.py models.foo models.bar > models.dot
  3. сконвертить полученный dot-файл во что-нибудь более удобное, например, в png:
    dot models.dot -Tpng > models.png
  4. наслаждаться неземной красотой

Впечатления от Startup Weekend в Петербурге

Reading time5 min
Views890
Startup Weekend в Петербурге прошёл бодро и весело, были интересные проекты. В следующий раз думаю, а не напроситься ли в эксперты, благо хоть и не был экспертом, но некоторые проекты проконсультировал :)

И так, ближе к проектам, что запомнилось.

Видео


Касательно видео жёг Туганбаев. Рассказывал, что телевизионщики заборят интернет и все мы всё равно будем смотреть телевизор! Он хочет соцсеть для умных телевизоров, и даже, обещал её запуск в 11 году (СТС-Медиа). Ходил, искал идеи и приложения для этой сети.

Идея такова:

Техническое ограничение телеканалов — формат вещания 4:3, года этак до 17 изменить формат из-за оборудования нельзя. А на рынке и по домам полно телеков с wide screen и по бокам такого экрана при показе ТВ остаются две полосы. И он не прочь заполнить эти две полосы виджетами и приложениями. Достаточно поставить телеприставку и по бокам будут:
  • фоточки
  • скайп
  • мамба (смотришь ты, значит, ночной канал, а там тебе – таргетированные объявления!)
  • игры
  • социальное общение (сделай подлянку соседу: разбери его телеканал на паззл во время футбола, пусть собирает)

Так же обмолвился, что вчера за рюмочкой чая встречался со вконтактовцами и о чём-то с ними договаривался. С учётом того, что это было на halloween-party, у меня зреют страшшшные опасения!

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

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

Соцсети

Читать дальше →

Анонимность, доступная каждому

Reading time7 min
Views61K
imageВсем привет, давайте знакомиться.

Мы – Kebrum, сейшельская компания с русскими мозгами. Наш профиль – анонимность и безопасность в интернете, на данный момент мы запустили VPN сервис и не собираемся останавливаться на этом. Сначала расскажу коротко о сервисе для тех, кто не участвовал в бета-тестировании, а потом пару прохладных историй, как это полагается на Хабре.






Да, давайте знакомиться

Настоящее скругление углов картинок на клиенте

Reading time3 min
Views27K
О скруглении углов в html-верстке сказано уже столько, что я пойму тех кто прочитав заголовок иронично улыбнется и подумает «опять 25, ну сколько можно...». Поэтому я постараюсь кратко изложить суть, и сразу предупрежу, что этот метод вы едва ли могли видеть раньше.
Читать дальше →

Бизнес планирование. Статья 2. Бизнес-план — это попытка убедить себя, что вам не стоит начинать этот бизнес

Reading time5 min
Views17K
Итак, уважаемые читатели, учитывая успех предыдущей статьи по бизнес-планированию, думаю, продолжению быть. В прошлый раз мы остановились на вступительной теме по бизнес планированию, где обсуждали особенности идей, как они возникают и сколько они стоят. Также я предложил вам задаться вопросами (если вы только планируете начать свое дело), и подумать.

Хочу выделить следующие важные моменты, касающиеся бизнес плана в целом:
• Бизнес-план – это не только попытка проанализировать ваш бизнес и его шансы, но и ваше руководство к действию в ближайшем будущем после запуска бизнеса.
• Лучший способ писать бизнес-план, особенно на начальных стадиях – с листком бумаги и карандашом. И подальше от раздражителей. И только потом упорядочивание и перенос на компьютер.

Взгляд сверху


Сегодня мы продолжим уже более точечно рассматривать процесс бизнес планирования, но прежде я бы хотел ознакомить вас со списком тем, котрые обычно включаются в бизнес-план, и каждой теме я планирую посвятить по одной статье. Довольно амбициозная задача, так как обычно бизнес-план включает в себя около 15-20 разделов, и каждый важен по-своему. То есть, в идеале у нас с вами должно получиться около 20 статей.

Итак, список:
Читать дальше →

Tableless justification или inline-blocks revisited

Reading time6 min
Views6.8K
Все давно знают про кроссбраузерную реализацию инлайн-блоков, но не все знают, что данная реализация не такая уж и кроссбраузерная и полная, как кажется. Что, как и почему рассмотрим на простом примере: сделаем меню, пункты которого равномерно распределены по всей ширине экрана.
Читать дальше →

Когда не нужна тригонометрия

Reading time4 min
Views54K
Просматривая различный код по выводу на экран какой-нибудь даже примитивной графики, я заметил чрезмерную любовь некоторых программистов к тригонометрии. Часто код пестрит синусами, косинусами и арктангенсами там, где без них можно обойтись. Этим грешат даже хорошие программисты, которые способны спроектировать сложную систему, но почему-то не освоили вектора в объёме школьной программы. Буквально азов векторной алгебры хватает для решения многих насущных проблем. В этом топике я хочу провести краткий ликбез, напомнить основные действия с векторами на плоскости и в качестве примера решить две задачи без тригонометрии: поиск отражённого луча по падающему лучу и произвольно расположенному зеркалу, а также рисование наконечника стрелки. Если вы можете представить в голове рисование произвольно направленной стрелки без синусов и косинусов, смело пропускайте этот топик. Для остальных постараюсь объяснять попроще.
Читать дальше →

Война с роботами: склонение существительных после числительных

Reading time3 min
Views60K
Робот в кармашкеВ первой части Терминатора Рис Кайл рассказывает о том, как круто роботы научились маскироваться под людей. Что сейчас у них настоящие кожа и волосы, они потеют и т. п. Про предыдущие же модели он говорил, что их легко было отличить по резиновой коже.

Думаю, что ещё более ранние модели отличались совсем просто — они говорили: «Солдат Крис Катарн, убил 10 враг, потратил 342 патрон, получил 0 ранение» и т. п., чем сразу палились.

Ведь до сих пор, несмотря на развитие веба, на многих сайтах можно встретить «50 пользователи», «1 комментарии», «0 сообщения» и т. п. А ведь насколько приятней, когда сайт говорит с тобой на человеческом языке и правильно спрягает слова по числам.

И ведь сделать это совсем несложно.
Готовые функции для PHP и JavaScript

Метод динамического программирования для подсчёта числа циклов на прямоугольной решетке

Reading time11 min
Views13K
Эта статья адресована тем читателям, кто занимается программированием алгоритмов, и особенно интересуется труднорешаемыми задачами. Тем хабралюдям, которые против размещения алгоритмов на Хабре следует немедленно прекратить читать данную работу.

В статье я покажу как использовать метод динамического программирования по профилю для решения задачи о подсчёте количества гамильтоновых циклов на прямоугольной решётке размером m на n. На Хабре есть несколько статей, посвященных теме динамического программирования (например, эта), но нигде не идёт речь о более сложном применении метода. Данный подход также можно называть методом матрицы переноса, кому как нравится.

Предупреждаю, что статья содержит около 2000 слов (8 страниц А4), но дорогу осилит идущий.

Читать дальше →

Penisland, или как написать спеллчекер

Reading time7 min
Views12K
Есть хорошая статья Питера Норвига, в которой он рассказывает как написать спеллчекер в 20 строк кода. В этой статье он показывает как поисковые системы могут исправлять ошибки в запросах. И делает это довольно элегантно. Однако, у его подхода есть два серьезных недостатка. Во-первых, исправление более трех ошибок требует больших ресурсов. А гугл, кстати, неплохо справляется и с четырьмя ошибками. Во-вторых, нет возможности проверки связного текста.



Итак, хочется исправить эти проблемы. А именно, написать корректор коротких фраз или запросов, который:
  • умел бы выявлять три (и более) ошибки в запросе;
  • умел бы проверять «разорванные» или «слипшиеся» фразы, например expertsexchange — experts_exchange, ma na ger — manager
  • не требовал много кода для реализации
  • мог бы достраиваться до исправления ошибок на других языках и других типов" ошибок

Остальное — под катом.
Читать дальше →

Получение основного контента веб-страниц программно

Reading time3 min
Views1.4K
Задача очищения веб-страниц от информационного шума — это одна из актуальных задач информационного поиска. Суть ее заключается в том, чтобы очистить информационный шум и получить лишь основной контент.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity