Search
Write a publication
Pull to refresh
17
0
Send message

Распознаём изображение с токена при помощи камеры

Reading time3 min
Views34K
В организации, где я тружусь в свободное от отдыха время, очень высокие требования к безопасности. Везде, где только можно, для аутентификации пользователей используются токены. Мне выдали вот такую вот штуку:

и сказали: жмёшь кнопку, смотришь цифры, вводишь пароль и радуешься. «Безопасность, конечно, превыше всего, но и о комфорте забывать не следует» — примерно так подумал я и провёл ревизию имеющегося у меня электронного хлама.
Читать дальше →

Проблемы MySQL оптимизатора

Reading time3 min
Views29K
Что я успел понять про MySQL за несколько лет его разработки:
  • развивать не ломая обратной совместимости его нельзя
  • MySQL со сломанной обратной совместимостью никому не нужен.


Я опишу две серьёзные проблемы ДНК MySQL, с которыми косвенно сталкивается любой пользователь MySQL 5.1 и 5.5 (насчёт 5.6 не проверял, но не думаю, что этот момент поменялся).

Как вообще MySQL работает?

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

Загружаем Kaspersky Rescue Disk 10 по сети

Reading time12 min
Views26K
Предлагаемая к ознакомлению статья расскажет как из популярного инструмента лечения от компьютерных вирусов сделать загружаемый по сети (pxe-bootable) вариант. Материал будет полезен системным администраторам, работникам сервис-центров и, возможно, кому-то еще, кому часто приходится реанимировать зараженные вирусами компьютеры.

Статья актуальна для версии Kaspersky Rescue Disk 10.0.31.4 (последняя на момент публикации версия).

Постановка задачи



Задача сводится к нескольким пунктам:
  1. Адаптировать Kaspersky Rescue Disk 10 (далее просто KRD10) к загрузке по сети.
  2. Предусмотреть локальное зеркало обновлений, из которого можно было бы периодически обновлять антивирусные базы, не скачивая каждый раз свежий iso-образ.
  3. Изменить кое-какие настройки антивируса по-умолчанию. Например, проверка архивов подчас занимает много времени, а каждый раз снимать перед сканом одну и ту же галку в настройках утомительно.
  4. Максимально автоматизировать выполнение перечисленных выше пунктов, сведя количество необходимых к нажатию кнопок до минимума.
Читать дальше →

Масштабирование производительности PostgreSQL с помощью партицирования таблиц

Reading time13 min
Views33K

Классический сценарий


Вы работаете над проектом, где транзакционные данные хранятся в базе данных. Затем вы развёртываете приложение в рабочей среде, и производительность великолепна! Запросы проходят шустро, и задержка при их вводе практически незаметна. Через несколько дней/недель/месяцев база данных становится всё больше и больше, и скорость запросов замедляется.

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

Администратор базы данных (DBA) посмотрит и проследит, чтобы база данных была оптимально настроена. Он предложит добавить определённые индексы, убрать логирование на отдельную партицию, подправить параметры движка базы данных и убедиться, что база данных здорова. Можно также добавить выделенных IOPS (Input/Output Operations Per second) на EBS диске, чтобы увеличить скорость дисковых партиций. Это даст вам выиграть время и даст возможность решить главную проблему.

Рано или поздно вы поймёте, что данные в вашей базе данных являются узким местом (botleneck).
В базах данных многих приложений важность информации уменьшается со временем. Если вы сможете придумать способ избавиться от этой информации, ваши запросы будут проходить быстрее, время создания бэкапов уменьшится, и вы сэкономите кучу места. Вы можете удалить эту информацию, однако тогда она пропадёт безвозвратно. Вы можете послать множество DELETE запросов, вызвав создание тонн логов, и использовать кучу ресурсов движка базы данных. Так как же мы избавимся от старой информации эффективно, но не потеряв её навсегда?
В примерах мы будем использовать PostgreSQL 9.2 на Engine Yard. Вам также нужен git для установки plsh.

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

Тратите всю зарплату за месяц?

Reading time1 min
Views178K


Знакома ли Вам ситуация, когда конец месяца и сумма на карточке пустеет? А если еще аванс/зарплату задерживают на день-два, приходится даже занимать?

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

Пост дискуссионный, интересно знать Ваш опыт решения этой проблемы. Мой вариант дальше.
Читать дальше →

Собеседование на junior позицию. Антипатерны собеседующих

Reading time12 min
Views300K
Добрый день хабраюзеры! Не так давно я начал искать работу на позицию junior разработчика. Даже благодаря моему скромному резюме мне удалось побывать на не малом количестве собеседований за сравнительно малый промежуток времени. Из каждого собеседовании я выносил для себя что-то новое, где-то были мои проколы, но гораздо интереснее было замечать фэйлы меня собеседующих. Собственно о таких проколах я и хотел бы рассказать.
Читать дальше →

Почему я не верю в простые алгоритмы для NP-полных задач

Reading time3 min
Views12K
На днях в этом блоге было опубликовано открытое письмо учёным по поводу предполагаемого полиномиального алгоритма для задачи 3-SAT. Обсуждение в том топике ещё далеко не закрыто и говорить о том, что в алгориме найдены ошибки пока преждевременно, но мне хочется написать почему «граждане учёные» не выстраиваются в очередь чтобы поскорее проверить это доказательство.

Примерно полгода назад, в августе 2010-го была опубликована попытка доказать что P≠NP. Тогда один математик-блогер, Скотт Оронсон, чтобы не казаться голословным в своём недоверии к этому доказательству поставил свой дом на то, что доказательство окажется ошибочным. Пожалуй, я ничего не потеряю если последую (с меньшим размахом) его примеру и поставлю на то, что нынешний алгоритм неправилен свой автомобиль (Auris 2008-го года выпуска).

По-моему, Оронсон немного рисковал. Винод Деолаликар, автор того доказательства — относительно известный математик, задача P≠NP входит в область его компетенции, и само доказательство использовало несколько принципиально новых идей, дающих надежду на то, что с помощью них удастся обойти трудности, с которыми сталкивались те кто пытался доказать этот факт до него. С нынешним доказательством ситуация немного иная.
Читать дальше →

LinkMeUp. Выпуск 0

Reading time6 min
Views18K
Всё началось с очень долгой дороги домой.
Это время нужно было чем-то занимать. Когда-то это были ESL (English is a Second Language) – весьма полезный в плане изучения языка, но обычные выпуски приедаются быстро, а интересные – English Cafe – выходят недостаточно часто. Потом я открыл для себя CBT-Nuggets – интереснейшая вещь, но курс довольно короткий. И наконец Радио-T, который, вроде бы, и ИТшный, но как-то сильно уж яблочный и программистский.
Был ощутимый голод по телекомовским темам. Спрос в количестве нескольких человек по крайней мере был, а предложения не было – ни одного подкаста в этой сфере. Были околосвязисткие вещи, но всё не то.
А там, где есть спрос, будет и предложение, пусть даже создавать его буду я.

Итак, мы рады представить нулевой выпуск подкста для связистов ЛинкМиАп.
В этом выпуске обсуждаем:
1) Переносимость мобильных номеров между операторами и регионами. MNP – Mobile Number Portability.
2) Технологии для осуществления голосовых вызовов в сетях LTE: CSFB, IMS.
3) Практическая тема: как ведёт себя маршрутизатор, если настроить интерфейс в качестве Next Hop, вместо IP-адреса.

Нас можно слушать на нашем сайте или на rpod.

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

Если у вас есть предложения, какие темы было бы интересно обсудить в следующих выпусках, с удовольствием принимаем их в комментариях.

Шоуноуты

Как подключить сторонний браузер в приложении на C#

Reading time3 min
Views100K
image

В определенный момент мне стало некомфортно использовать стандартный контрол WebBrowser, предлагаемый Visual Studio.
Причин было несколько:
1. Использовался IE-движок, что само по себе уже сильный аргумент.
2. Кривая работа с JS.
3. Отсутствие масштабирования.
4. Если запустить на машине, где стоит IE6, то все его «достоинства» переносятся на приложение.

В итоге был начат поиск альтернативных решений.
Было рассмотрено 2 SDK. xulrunner(Mozilla) и Awesomium(Chrome)

Подключение обоих происходит примерно одинаково, но на всякий случай опишу оба.
Читать дальше →

Интерактивная обучалка ветвлению в Git

Reading time1 min
Views80K
Некий Питер Коттл (Peter Cottle) сделал интерактивную обучалку по основам ветвления в Git. Есть несколько простых обучающих уровней, где нужно сделать пару коммитов, а затем merge или rebase, есть и сложные уровни, над которыми придется подумать. Можно также сохранять уровни и делиться ими с друзьями.

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

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

Simple-Science — Простые опыты с микроволновкой (дайджест #16)

Reading time3 min
Views211K
image

Этот дайджест "Простых опытов" не совсем похож на все предыдущие. И дело тут не в микроволновке. Сегодня мы постарались дать каждому опыту объяснение: "Почему так происходит". Если у кого будут замечания или комментарии, будем признательны за них.

Сегодня в «микроволновке»:


  • лампа накаливания и люминесцентная;
  • мыло хозяйственное и туалетное;
  • пачки с чипсами;
  • лазерные диски;
  • металлические булавки;
  • воздушный шарик.

Внимание:
Опыты могут быть опасны не только для здоровья, но и для микроволновой печи.

Ниже смотрите 6 видео.
Читать дальше →

Парсинг сайтов-магазинов. Личный опыт и немного how-to

Reading time3 min
Views190K
Разделим парсинг (скраппинг) сайтов на две подзадачи.
  1. Собственно сам парсинг – поиск данных, которые нам интересны на страницах.
  2. Осмысливание полученных данных.

Рассмотрим эти задачки подробнее

Бездисковая загрузка с использованием PXE и iSCSI на примере Ubuntu

Reading time17 min
Views53K
Здравствуйте.

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

Что необходимо?


Для загрузки системы нужны три компонента: ядро, initramfs и корневая файловая система.
Ядро и initramfs мы передадим по TFTP, а корневую файловую систему — по iSCSI.

iSCSI-таргеты


Небольшой ликбез по iSCSI
iSCSI — реализация протокола SCSI поверх TCP. Сам протокол SCSI весьма универсален, теоретически с его помощью можно подключить устройство любого типа. Тем не менее, в большинстве случаев SCSI используется для доступа к тем или иным устройствам хранения данных (жёсткие диски, приводы CD и DVD и т. п.). Для примера Mass Storage Device, использующийся в USB-устройствах, является реализацией SCSI поверх USB. Поэтому, кстати, флешки в Linux опознаются как /dev/sdX-устройства. Использующаяся на серверах шина SAS также является реализацией SCSI (собственно, это видно из названия — Serial Attached SCSI).
В iSCSI различаются понятия таргета (target, целевое устройство, осуществляет приём и выполнение запросов) и инициатора (initiator, порождает запросы). В более привычных терминах таргет — это сервер, а инициатор — клиент.
Таргеты и инициаторы бывают разных видов. iSCSI-таргетом может выступать обычный компьютер, сервер или система хранения данных. Инициаторами обычно выступают сетевые карты (в их ROM бывает прошит необходимый код) или software-реализации.

Для Ubuntu возможно использовать различные iSCSI-таргеты. Вот неполный их список:
  • ISCSI Enterprise Target — одна из самых старых реализаций iSCSI-таргета на Linux. Насколько мне известно, жива и здравствует, однако требует установки (в Ubuntu) через DKMS и совсем лёгкого дребезга бубнов. На opennet.ru есть рабочий HOWTO, применимый и к более поздним версиям ОС (Precise)
  • SCSI Target Framework (STGT/TGT) — реализация iSCSI-таргета, портированная из BSD-систем. В отличии от IET, позволяет использовать не только iSCSI, но и другие родственные технологии (такие, как, например, SRP). К сожалению, код STGT в части iSCSI в линуксе работает в userspace. Как следствие, производительность получается где-то в районе плинтуса.
  • SCST — новая реализация универсального таргета для Linux. По заявлениям разработчиков обладает массой преимуществ и фишек. В ядро не включена, для установки требует патчей исходников ядра и продолжительного зубодробительного секса. По слухам, мила, прекрасна и похожа на сакуру. Когда-то давно ее использовали, например, в Оверсан-Скалакси (их опыт вкратце описан на хабре). Пакеты для Ubuntu перестали поддерживаться около полутора лет назад, в SVN есть некоторая активность, то есть проект жив и здравствует. Кстати, разработчики — русские парни :)
  • LIO — Linux Unified Target, универсальная система, реализующая iSCSI, SRP, FCoE и несколько других вариантов экспорта устройств в сеть. Официально включена в ядро и является стандартным таргетом, начиная с версии 2.6.38. К ней есть определенные претензии в плане того, что на официальном сайте активно продвигается проприетарная сборка, обладающая большим функционалом, но оставим вопли RMS.

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

Применение процедурных генераторов в создании контента для real-time 3D приложений: Часть 1. Oil Rush

Reading time18 min
Views109K
Игра Oil Rush


В данной статье, состоящей из двух частей, речь пойдёт об использовании возможностей процедурных генераторов при создании контента для компьютерной игры Oil Rush и бенчмарка Valley (выйдет в феврале), разработанных на нашем собственном движке Unigine.
Читать дальше →

Как установить Debian Linux с USB flash

Reading time3 min
Views204K
В этой статье вы узнаете, как создать USB flash диск, с которого можно будет установить Debian Linux.

Введение


Здесь я расскажу, как подготовить загрузочную USB флешку с Debian Lenny и установить с неё Debian на любой накопитель (IDE/USB HDD). Заметьте, что в этой статье описывается не то, как установить Debian на USB диск/флешку, а то, как создать «Инсталляционный USB диск». То есть результатом станет то, что вы сможете установить Debian Lenny с USB накопителя, вместо традиционного CD-ROM.

Существует несколько путей установки Debian Lenny:
Читать дальше →

Еще один взгляд на Entity Framework: производительность и подводные камни

Reading time10 min
Views44K
Ни для кого не секрет, что адаптация Entity Framework проходит очень медленно. Огромное количество компаний продолжают использовать Linq2Sql и не планируют менять его на что-то новое в обозримом будущем, несмотря на то, что EF – официально рекомендуемая Microsoft технология доступа к БД, а Linq2Sql уже почти не поддерживается.

Тех, кто всё еще сомневается, можно ли использовать EF (и особенно – code first) на реальных проектах, приглашаю под кат.
Читать дальше →

Что нам стоит Git настроить!

Reading time3 min
Views107K

Дарова, хабр! (ничего оригинальнее не придумал)

Сомневаюсь что эта заметка тянет на полноценный пост, но я все же оставлю ее здесь. О чем же пойдет речь?

Все мы слышали о Git. Все мы знаем что он — хорош. Но лишь немногие пытаются что-то с ним делать, как-то его протвикерить. Сразу говорю, тут не будет ничего паранормального, только немного работы с файлом .gitconfig. Да-да, именно с тем файлом, который так трепетно пылится у вас в домашней директории.

Так, мне уже немного надоело писать этот, по сути, бессмысленный вступительный текст, так что давайте уже начнем что-то делать.
Читать дальше →

Nginx+php-fpm+perl под Debian Squeeze

Reading time10 min
Views125K

Для чего эта заметка, ведь похожих уже полно? Если кратко, то когда я взялся настроить связку пришлось перечитать огромное количество документации и разных статей, все сразу и в одном месте найти не получилось. Данная статья попытка систематизировать накопленные знания, а также максимально подробная помощь тем, кто только начинает осваивать nginx.

В качестве теста решил перевести все свои сайты на nginx, до этого все работало на Apache из состава ZendServerCE. Интересно было пробовать насколько сложно будет полностью переехать на новый для себя веб-сервер, ведь используется несколько CMS (DLE, Wordpress, самописныеCMS).

Задачи:
  • базовая работа web сервера — обработка html;
  • запуск php скриптов;
  • корректная работа phpmyadmin для всех сайтов на сервере;
  • запуск cgi и pl скриптов;
  • использование кеширования и подбор оптимальных параметров для увеличения производительности.


Имеем свежеустановленный сервер Debian 6 в минимальной установке из netinstall. И так поехали.
Читать дальше →

Ninite. Облегчаем жизнь начинающему админу-эникейщику

Reading time4 min
Views79K
Привет Хабр!

Спешу поделиться с вами недавно открытым для себя сайтом — Ninite.com. Удивительно, насколько мало он известен, при этом предлагая просто нереальное удобство и существенно облегчая жизнь начинающим админам-эникейщикам, в обязанностях которых входит «переставлять винду» в небольших фирмах по 10-40 рабочих мест под виндой. Где по каким-то загадочным причинам не стоит AD, деятельность организована в рабочей группе, своих сил и знаний это всё организовать не хватает — в общем всё печально, а хочется сделать красиво. А впрочем, Linux-любители и матёрые админы, возможно, тоже найдут этот сервис интересным.
Читать дальше →

Запуск услуги «Управляемый фаервол»

Reading time3 min
Views5.4K
Управляемый фаервол

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



Что это?


Управляемый фаервол — услуга предоставления защищенного интернет-канала с управляемым межсетевым экраном. Основной задачей услуги является осуществление контроля и фильтрация проходящих через него сетевых пакетов в соответствии с заданными политиками и опциями экрана.


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

Information

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