Search
Write a publication
Pull to refresh
0
Dolgov Roman @rdolgovread⁠-⁠only

User

Send message

PhpStorm 4: результат с первой попытки!

Reading time1 min
Views31K
Сделайте еще шаг к идеальной продуктивности ;)

image

Представляем вниманию хабрасообщества PhpStorm 4.0:

  • Полная поддержка PHP 5.4
  • Встроенный Code coverage для PHPUnit
  • Новые PHP code inspections
  • Сообщения PHP Code Sniffer прямо в редакторе
  • Встроенный Drupal-стиль
  • Лучшая в индустрии поддержка JavaScript (включая ECMAScript Harmony)

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

Linux клиент VMWare View 5.0 c «пробросом USB»

Reading time4 min
Views8.1K
В продолжение моей предыдущей заметки Дружим Thinstation 5.0 и клиент VMWare View 5.0 c полноценным USB-redirect'ом, для тестов необходимо было собрать клиент версии 5.0 с «пробросом USB», который бы работал в Linux. Так как я лучше всего знаю Ubuntu — пакет собирал для нее. Готовый пакет версии 5.0 под катом.
Читать дальше →

JavaScript на сервере, 1ms на трансформацию

Reading time8 min
Views32K

Зачем?



Вопрос “Зачем?” — самый главный при принятии любого решения. В нашем случае причин было несколько.

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

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

Но в Mail.Ru Group есть целая команда высококвалифицированных людей, знающих JS, способных самостоятельно написать инструмент, а самое главное — они же им и будут пользоваться.

Во-вторых, задачи. Возьмем проект Почта@Mail.ru. Мы не можем отказаться от шаблонизации на сервере – нам нужна быстрая загрузка при первом входе. Мы не можем отказаться от шаблонизации на клиенте – люди должны видеть высокую скорость реакции на их действия, а значит, обязателен AJAX и шаблонизация на клиенте.

Проблема очевидна: два набора совершенно разных шаблонов на сервере и на клиенте. А самое обидное, что решают они одну и ту же задачу. Дублирование логики нас просто измотало.

v8 — это интерпретатор JavaScript, а значит, мы можем получить один шаблон, который работает как на сервере, так и на клиенте.

В-третьих, скорость. Прочитав много статей, в которых хвалят скорость v8, решили, что надо проверить их справедливость. Но сначала нужно было понять, каким мы хотим видеть новый шаблонизатор.
Читать дальше →

60+ средств для разработки мобильных приложений

Reading time19 min
Views150K
Появилось желание сделать свое приложение — быстро дешево и максимально полезно. Начал собирать информацию о современных инструментах разработки. Чтобы не потерять, а так же получить отзывы, мнения, комментарии и вообще любую полезную информацию, оформил в виде статьи.
Планирую использовать некоторые инструменты, и позже написать по ним более развернутый обзор. Итак, встречайте

1. Appmakr
appmakr.com
Платформы: iOS
Стоимость: free-$999, FREE- if you submit yourself to your own app store
Дополнительные услуги: Бесплатный доступ к ресурсам сайта.
Описание: Appmakr.com — веб-приложение, которое поможет вам создать приложения для айфона быстро и просто.
Замечания: Если вы не знаете как создать приложение для айфона, вы можете запросить помощь по телефону.
Владельцы могут размещать рекламу в своих приложениях и зарабатывать на ней.
Читать дальше →

Удаленная замена корневой ФС в GNU/linux

Reading time9 min
Views16K
image
Иногда мне приходится сталкиваться с заменой корневой файловой системы. Имея загрузочный диск и доступ к серверу, это не сложно. Однако, я хочу поделиться опытом замены корневой ФС удаленно, через ssh, без перезагрузки.

Причины для замены коневой ФС бывают разные:
  • перевод / в LVM
  • перевод / в mdraid
  • замена типа файловой системы (ext3 => btrfs)
  • уменьшение размера ФС (resize2fs)

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

Как работает yield

Reading time6 min
Views729K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ

Войны с Citrix XenServer

Reading time3 min
Views13K

Введение


На днях мой сотрудник удалил случайно несколько виртуалок в Citrix XenServer.
Все осложнилось тем что виртуальные машины оказались на snapshot дисках.
Под катом рассказываю как я их оттуда вынимал в отсутствии каких либо резервных копий и переносил на KVM.
Примеров команд много не делал, так как целью статьи было описание концепции. Внизу привел необходимые ссылки.
Читать дальше →

Ещё один из способов failover-а серверов: ip sla и enhanced object tracking

Reading time4 min
Views5.7K
image Иногда, а скорее всего довольно часто, возникает необходимость обеспечения отказоустойчивости серверов или ещё лучше приложений, запущеных на этих самых серверах.

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

Но к сожалению иногда, и таки довольно часто в моей личной практике, возникает ситуация выходящая за рамки этих возможностей: денег нет, сеть есть, приложение самописное на коленке — кластер не соберешь, клиентская часть умеет ходить только на один сервер. И вдруг это приложение стало критичным, надо сделать 25x8x366. Под катом один из довольно безобидных способов.
Читать дальше →

Github включил ассемблер DCPU-16 в список официально поддерживаемых языков

Reading time1 min
Views2.2K
В игре 0x10c — новом проекте Нотча (автора Minecraft) — для управления космическим кораблём игроку придётся программировать мифический древний процессор DCPU-16. Сама игра ещё на ранних стадиях разработки, но сообщество будущих игроков уже активно формируется вокруг опубликованных на официальном сайте спецификаций вымышленного процессора. На Гитхабе существуют уже десятки эмуляторов DCPU-16, llvm-backend, операционная система, среда исполнения и даже неофициальный комитет по стандартам.
Читать дальше →

N+2 полезные книги для бизнеса, которые обязательно стоит прочитать

Reading time5 min
Views96K
В прошлом году я делал обзор книг, на которых реально растут люди и реально улучшаются процессы.



Тогда понадобился год, чтобы прочитать в десять раз больше бумаги и сделать выборку, которая оказалась неожиданно полезной многим. Вот результаты ещё одного года — ещё N+2 книги для бизнеса, которые реально помогают.

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

Ломаем банк в стиле smash the stack!

Reading time7 min
Views52K

Не только XSS…


Последнее время многие обращают внимание на уязвимости ПО, используемого в банковском секторе: в частности, недавно прошумела новость об уязвимостях класса XSS на веб-сайтах различных банков. Общественность негодует, и СМИ шумят. Но ведь банки богаты не только веб-составляющей. Начиная с конца 2000-х я собирал уязвимости в модулях ActiveX, которые банки гордо раздают своим пользователям, а именно клиентам системы дистанционного банковского обслуживания (ДБО). Раз в год я брал одну или две системы и ковырял их. Начиная просто так, любопытства ради (начал это дело, еще будучи сотрудником банка) и продолжая уже из исследовательского интереса. В итоге за 3–4 года я выявил уязвимости в системах от таких производителей, как BSS, Inist, R-Style, ЦФТ. Под катом находится информация об одной такой уязвимости. Большая часть описания уделена созданию простенького эксплойта для выполнения произвольного кода на стороне клиента (Windows7, IE +DEP/ASLR). Возможно, это будет полезно тем, кто хотел бы понять принципы эксплуатации старых ‘strcpy’ багов и создания ROP-эксплойтов.


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

Плезиохронная цифровая иерархия и поток E1

Reading time7 min
Views176K
Приветствую вас, друзья!

В ходе изучения Цифровых систем передачи, а так же по рекомендации наставника, дабы лучше разобраться в изучаемом материале и разложить всё по полочкам, я постараюсь объяснить этот материал Вам, если это у меня получится, то можно считать, что я его усвоил хорошо. Надеюсь Вам будет интересно.
В статье расскажу кратко о ЦСП и особенностях их построения, ПЦИ(PDH) и более подробно о потоке Е1 и его структуре.
Читать дальше →

Из чрута — на поверхность: как, почему и что делать?

Reading time2 min
Views26K
Основано на реальных событиях.

Представьте себе, что у вас есть крупный проект, для которого необходимо собирать софт. А ещё у вас есть желание замутить сборочную ферму, на которой ваши подчинённые будут собирать нужный софт. А ещё это всё происходит под Linux-ом, и каждому надо организовать «чистое» окружение с минимумом затрат. Как это сделать?

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

А через неделю после интеграции этого решения и после увольнения сотрудника «икс» вы просыпаетесь — а на сервере девственно чистый жёсткий диск. Злодей уничтожил труды разработчиков, работа встала.

Почему же он сумел удалить всё, если был в «защищённом» «запертом» чруте?
Читать дальше →

10 миллионов хитов в день с WordPress на сервере за $15

Reading time1 min
Views17K
Английский разработчик Эван Лейт (Ewan Leith) опубликовал пошаговую инструкцию, как поднять виртуальный микросервер на Amazon, Linode или другом облачном хостинге, который сможет крутить блог WordPress и выдерживать 10 миллионов хитов в сутки (отчёт составлен с помощью Blitz.io), при этом будет стоить всего пятнадцать долларов в месяц.

Инструкция описывает, как последовательно установить Ubuntu 11.10 (Oneiric), MySQL, PHP с PHP FPM, APC и модулем MySQL, Nginx с конфигурацией для WordPress, ну и сам WordPress. После этого сервер работает ещё довольно медленно, но всё меняет установка W3 Total Cache и Varnish, которые вместе с Nginx способны сотворить настоящее чудо.

Выполнить действия из инструкции способен даже человек, не являющийся техническим специалистом.
Читать дальше →

CSRF уязвимость в Wordpress — комментарии

Reading time3 min
Views5.4K

Введение


Читал я вчера про Егора Хомякова. Подумал — может и я так смогу? И начал со своего блога на Wordpress. Адрес приводить не буду, иначе сам блог ляжет от Хабраэффекта, а меня обвинят в рекламе :).

Теория


Итак, где имеет смысл искать CSRF в Wordpress? На ум приходит только одно — комментарии. Там и начнём.
Осторожно, под катом две PNG картинки среднего размера.
Читать дальше →

Защита в виртуальной среде: чеклист угроз

Reading time19 min
Views49K

Защита данных в виртуальной среде — это «дивный новый мир», означающий серьёзное изменение мировоззрения в отношении понимания угроз.

Я работаю с защитой персональных данных, у меня и коллег собралась огромная таблица возможных угроз безопасности, по которой можно проверять, что не так на конкретных объектах.
Читать дальше →

Прячем Bash скрипты

Reading time2 min
Views18K
Очень часто на фрилансе бывает, так что заказчик просит сделать некоторую работу, получив тестовую версию, принимает её и отказывается платить
Я на фрилансе достаточно часто делаю скрипты под заказ, администрирование серверов и тд, автоматизация неких процессов на сервер, уловив основную идею написания, как правило, заказчик пропадает, решив что это все так просто и не за что платить.
Столкнувшись с понятием Обфуска́ция в С, решил поискать аналогичное решение и для своего любимого Bash.
Читать дальше →

Балансировка нагрузки между двумя каналами в динамической маршрутизации EIGRP

Reading time5 min
Views17K
Рад приветствовать всех хабражителей.
В соответствии с новыми требованиями, на работе стали создаваться резервированные каналы связи, при первичной настройке которых, балансировка траффика в EIGRP не заработала, пришлось разбираться с этим интересным вопросом.

Схема сетиimage

Дано:
У нас есть сеть 172.18.230.224/27, назовем её «нашей сетью», из нее передаются очень важные данные в две других сети ID и IE соответственно. Передача должна осуществляться по резервированным каналам связи, то есть у нас есть основной и резервный каналы. Два интересных нюанса:
1) В сеть ID настроена статическая маршрутизация и, sla-monitors и ip load-sharing per-packet, балансировка работает исправно;
2) В сети IE работает протокол динамической маршрутизации EIGRP и при первичной настройке балансировка не заработала, а почему, разберемся далее.
Читать дальше →

Аудит таблиц с пространственными объектами в PostGIS/PostgreSQL

Reading time2 min
Views4.1K
imageВ предыдущей статье был рассмотрен пример с пространственными объектами и разделением доступа к ним по пользователям.
Теперь рассмотрим пример аудита данной базы. Нас интересует: кто, когда и что сделал с таблицей. Какую запись (читай «объект») добавил, какую удалил, какую изменил, чтобы в дальнейшем не было различных «недоразумений».
Читать дальше →

BIND: храним зоны в mysql (Dynamically Loadable Zones — BIND DLZ)

Reading time4 min
Views15K
Возможность Berkeley Internet Name Daemon (BIND) хранить зоны DNS в базе mysql не шибко известна и крайне плохо документирована. Документация заморожена на моменте включения отдельного патча DLZ в основную ветку BIND, а это BIND 9.4.* и 2005-2006 годы. Я постараюсь хотя бы частично восполнить этот пробел, выложив под хабракатом рабочие на данный момент инструкции с примерами. Мое описание совершенно не претендует на полноту, но простейшую зону прописать позволит.
Отдельно хочу заметить, что DLZ поддерживает не только mysql, список поддерживаемых хранилищ также под хабракатом.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity