Search
Write a publication
Pull to refresh
4
0
Lev Lybin @lybin

Разработчик Python / Team Lead Ведущий (Lead)

Send message

“АвтоУскорение”: как попасть без денег в Топ-100 Google Play и что делать дальше?

Reading time10 min
Views35K
Все началось 19 мая 2011 года, когда друзья на день рождения подарили мне новенький смартфон Google Nexus S. До этого я долгое время я работал программистом, потом специфика моей деятельности поменялась, но «руки то помнят». Поэтому я сразу задумал что-нибудь запрограммировать для моего нового классного смартфона, и написал приложение Авто-ускорение. Сегодня хочу рассказать, что я узнал, понял и сделал за два месяца с момента старта.
Читать дальше →

Почему нельзя превращать прототип в итоговую программу

Reading time2 min
Views43K
Всем привет! Сколько уже статей было про говнокод, но я считаю, их поток нельзя сокращать, потому как поток говнокода только увеличивается.
Внимание: статья полна субъективизма и сюрреализма. Автор не претендует на истину в последней инстанции
Очень часто, создавая новое приложение, программу, веб-сайт, мы сначала экспериментируем, а затем создаем из наших экспериментов конечный продукт.
Но дайте ответ на следующие вопросы не задумываясь:
  1. сколько раз, получая исходники от других разработчиков, вы находили их крайне непривлекательными?
  2. сколько раз, передавая исходники другим разработчикам вам было стыдно за свой код?

Мои ответы: постоянно, довольно часто.
Почему так происходит?


Давайте попробуем разобраться

Построение цепочки восстановлений баз данных MS SQL

Reading time3 min
Views12K
Часто возникает задача восстановить базу по цепочке бэкапов на резервном/тестовом сервере, на котором непосредственный бэкап базы не проводился, отсутствуют записи в msdb, но есть сами бэкапы, снятые с продуктивного сервера. Вариант с восстановлением копии базы msdb может не подойти если должны существовать разные наборы джобов для основного сервера и того, на котором мы планируем восстановление. Если файлов с бэкапами немного, то восстановить логический порядок следования файлов нетрудно, особенно если бэкапы принадлежат логшиппингу. В этом случае все тривиально — в имени файла хранятся и время, и дата (стоит только помнить, что время в именах файлов хранится в UTC). Но что делать, если в бэкапах нет структуры или файлов очень много, и организовать их простым способом не представляется возможным или как можно просто определить начиная с какого файла логшипинга начинать донакатку?
Читать дальше →

Настройка Asterisk 1.8 + FreePBX 2.10 с нуля

Reading time9 min
Views345K
Данная статья является продолжением статьи по установке системы.
Наконец тем или иным образом у нас появился установленный Asterisk и FreePBX.

Опишу ситуацию немного подробнее для сравнения подойдет ли Вам наша схема работы. Мы небольшой интернет провайдер, нам нужна запись разговоров, очереди звонков на городские и мобильные телефоны, голосовое меню рассказывающее про акции с выбором в какой отдел попасть, и возможность быстро поставить перед всем этим сообщение об авариях на определенных улицах города, чтобы люди не перенапрягали тех поддержку, причем желательно бесплатно. Чтобы не покупать дорогие шлюзы мы решили сменить городские телефонные номера и купить пару номеров + десяток каналов у провайдера ip-телефонии. Кто то скажет что это ненадёжно и т.д. Только скажите- какая разница интернет провайдеру на городские телефоны, если у него упал весь интернет? Зато это дешево. Подключение нам обошлось всего то в 38 $, каждый телефонный номер в 2$ и линия в 1,2$ в месяц. После чего мы получили настройки даже без авторизации и к нашему ip адресу привязали аккаунт. Сразу хотелось бы оговорить как будет построена эта статья, чтобы не перегружать её тоннами скринов я опишу создание каждого элемента по одному разу(что советую проделать т.к. они понадобятся для ваших же последующих экспериментов), а потом уже распишу схему что на что ссылается в нашей схеме работы. Наверняка схема у вас будет другая, но зато сможете понять смысл. Описывать буду только те элементы, которые непосредственно понадобились при настройке.
Читать дальше →

Подборка сервисов для расширения возможностей вашего Dropbox

Reading time1 min
Views80K
Сервис Dropbox любим многими хабровчанами, поэтому предагаю вашему вниманию подборку полезностей для работы с этим облачным сервисом.

Backup Box умеет синхронизировать разные облачные сервисы, а также делать бэкапы сайтов (FTP и MySQL).

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

MySQL. Выбор случайных строк в один запрос

Reading time3 min
Views19K

Что имеем?


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

Таблица(test) имеет следующую структуру:
  • — pk_id ( первичный ключ )
  • — id ( поле заполненное разными числами )
  • — value ( поле заполненной с помощью rand() )

Первичный ключ не имеет дыр и начинается с 1.
Читать дальше →

AndroidKickstartr — создай современный проект в пять кликов

Reading time2 min
Views41K

На днях появился новый веб-сервис, позволяющий в несколько кликов создавать новый проект для андроид со всеми современными вкусностями сторонних библиотек.
Название AndroidKickstartr.com отлично описывает его задачу — максимально быстро и просто сконфигурировать новый проект, добавив туда все самое необходимое.
Читать дальше →

Опыт использования IP ATC Askozia в нашем офисе

Reading time4 min
Views36K
Первое знакомство

Пару лет назад меня захватила идея интеграции 1С и телефонии, я перечитал множество форумов, сайтов и пришел к выводу, что самым «простым» способом будет изучение IP PBX Asterisk. На тестовый сервер был установлен AsteriskNOW, и началось изучение с параллельным внедрением в моей компании. С тех пор я получил достаточно серьезные компетенции в этой области, перепробовал множество дистрибутивов, научился компилить и даже править исходные коды Asterisk под свои цели. Параллельно мы выпустили ряд решений для интеграции 1С и телефонии Asterisk. К сожалению столкнулись с огромными проблемами при внедрениях -у каждого нового клиента стоял Asterisk, настроенный по-своему. В этот момент мы познакомились с решением Askozia от наших немецких коллег.
Askozia — это операционная система Linux+ Asterisk+удобный web интерфейс. Из дистрибутива было вырезано все лишнее, и для его запуска достаточно записать образ на флешку и загрузиться с нее.
Читать дальше →

О технологиях показа кино в 3D

Reading time7 min
Views152K

3D кинотеатры за последнее время расплодились в больших количествах. Не сильно в последнее время от них отстают в распространённости и 3d-телевизоры. Однако, что именно стоит за маркетинговым “3D” в каждом случае не всегда ясно и очевидно.
Стоит отметить, что правильнее было бы назвать это “стерео”-кино, но термин “стерео” уже давно и прочно (просто, видимо, по праву первенства) закрепился за звуком (в этом плане показательно, например, название журнала “Стерео и видео”). Поэтому маркетологам пришлось использовать термин “3D”, который ассоциируется с объёмным изображением в том или ином смысле. В данном случае понимается восприятие мозгом объёма за счёт подачи каждому из глаз изображения, чуть отличающегося от изображения для другого глаза, аналогично тому, как отличаются получаемые глазами изображения в жизни.
Читать дальше →

Когнитивное радио — первые опыты

Reading time4 min
Views31K
Приветствую всех хабровчан.
Вашему вниманию предлагается перевод статьи о когнитивном радио.
Оригинал здесь.

image

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

Попытка номер раз создать почти идеальный htaccess

Reading time14 min
Views250K
    - Google выше ранжирует сайты, которые загружаются быстрее.
    - Если на eBay или Amazone увеличить время загрузки страниц на 9% они теряют 1% прибыли.
    - Сделать свой сайт быстрее, чтобы сэкономить на клиентском трафике и на числе обращений к серверу.


.htaccess — наш герой


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

Зачем нам .htaccess ?


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

Или другой пример. Скажем ваш ресурс начинает набирать популярность, но переезжать на выделенный сервер ещё рано, а мощностей VPS уже не хватает. Вас очень может выручить htaccess.

А ещё htaccess может решить некоторые вопросы с безопасностью вашего сайта.

А ещё…

Полезные советы по htaccess с разжевыванием для новичков

Готовим Sublime Text 2 для front-end

Reading time7 min
Views268K
Ни для одного опытного программиста или верстальщика не секрет, что настроенная под себя среда разработки (не в смысле IDE, а в более общем) — жизненная необходимость. Было время, когда я делал очередную верстку в практически голом Notepad++ на единственном мониторе, поочередно открывая Photoshop, браузер и редактор. Сегодня, в эпоху «автоматизации всего», мне сложно представить, как вообще можно было так работать.

Sublime Text 2 — популярный расширяемый кроссплатформенный текстовый редактор, для которого написано множество плагинов если и не на все случаи жизни, то на многие. В этом посте я попытаюсь рассказать как из этого конструктора сложить удобный инструмент front-end разработчика для работы с HTML, CSS и JavaScript.
Читать дальше →

Почему пинг к 192.168.072 возвращает ответ от 192.168.0.58

Reading time2 min
Views47K
Если совершить опечатку в IP-адресе, то результат будет странным, на первый взгляд. Например, пинг к 192.168.72 распознаётся как 192.168.0.72, а 192.168.072 уже распознаётся как 192.168.0.58.

Народ слишком усложняет здесь из-за разных RFC, IP-классов и тому подобных вещей. Просто запустите пару тестов и посмотрите, как команда ping парсит входящие значения.

ping
C:\>ping 1
Pinging 0.0.0.1 with 32 bytes of data:

C:\>ping 1.2
Pinging 1.0.0.2 with 32 bytes of data:

C:\>ping 1.2.3
Pinging 1.2.0.3 with 32 bytes of data:

C:\>ping 1.2.3.4
Pinging 1.2.3.4 with 32 bytes of data:

C:\>ping 1.2.3.4.5
Ping request could not find host 1.2.3.4.5. Please check the name and try again.

C:\>ping 255
Pinging 0.0.0.255 with 32 bytes of data:

C:\>ping 256
Pinging 0.0.1.0 with 32 bytes of data:
Читать дальше →

Видеообзор планшета Google Nexus 7

Reading time1 min
Views20K


Nexus 7 — совместная разработка Google и ASUSTeK, представляющая планшет с 7-дюймовым IPS дисплеем, работающим на базе четырехъядерного процессора Nvidia Tegra 3. Устройство управляется операционной системой Android последней версии — Jelly Bean (4.1). Объем встроенного накопителя 8 или 16 Гб.
Встроенного аккумулятора хватает на 8-9 часов просмотра HD-видео. К сожалению, отсутствует модуль 3G, так же как и поддержка сменных карт памяти. Тем не менее, устройство весьма любопытно и мы рекомендуем вам с ним ознакомиться.

Оптимизируем производительность JavaScript для V8

Reading time6 min
Views28K

Предисловие


Дэниел Клиффорд сделал на Google I/O прекрасный доклад, посвященный особенностям оптимизации кода JavaSсript для движка V8. Дэниел призвал нас стремиться к большей скорости, тщательно анализировать отличия между С++ и JavaScript, и писать код, помня о том, как работает интерпретатор. Я собрал в этой статье резюме самых главных моментов выступления Дэниела, и буду обновлять её по мере того, как движок будет меняться.
Читать дальше →

Обзор бесплатных инструментов для пентеста web-ресурсов и не только v2

Reading time8 min
Views195K
Как-то давно я уже писал об этом, но немного скудно и сумбурно. После я решил расширить список инструментов в обзоре, добавить статье структуры, учесть критику (большое спасибо Lefty за советы) и отправил ее на конкурс на СекЛаб (и опубликовал ссылку, но по всем понятным причинам ее никто не увидел). Конкурс закончен, результаты объявили и я с чистой совестью могу ее (статью) опубликовать на Хабре.

Бесплатные инструменты пентестера веб-приложений


В данной статье я расскажу о наиболее популярных инструментах для пентестинга (тестов на проникновение) веб-приложений по стратегии «черного ящика».
Для этого мы рассмотрим утилиты, которые помогут в данном виде тестирования. Рассмотрим следующие категории продуктов:

  1. Сетевые сканеры
  2. Сканеры брешей в веб-скриптах
  3. Эксплойтинг
  4. Автомазация инъекций
  5. Дебаггеры (снифферы, локальные прокси и т.п.)

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

Как ускорить загрузку своего сайта при помощи compress.php, который объединит и сожмёт JS + CSS в Gzip

Reading time3 min
Views62K
Ускоряем сайт при помощи GoogleПодробные инструкции, которые даются на code.google позволят вам:

  • Сжать все многочисленные скрипты JS и стили CSS
  • Соединить все полученные файлы в один JS и в один CSS
  • Сжать полученные два файла в формат GZIP, который понимают почти все браузеры и умеют распаковывать на лету
  • Прописать такой .htaccess, который заставляет браузеры кэшировать данные два файла

Всё это будет происходить при запуске единственного скрипта compress.php

Для примера, результат сжатия скриптов моего сайта:
  • JS: сжато в gzip 26 698 B, сжато без gzip 95 796 B, было 120 147 B
  • CSS: сжато в gzip 46 049 B, сжато без gzip 160 001 B, было 281 870 B

Получается, что экономия трафика составляет 329 270 B. Но основной выигрыш для скорости загрузки в том, что теперь загружается не 14 файлов, а всего 2 (а это намного быстрее, так как браузер не тратит время на запросы). Причём делается это один раз, а не динамически силами самого сервера (тем более, что не все сервера поддерживают подобное конфигурирование сжатия для экономии ресурсов процессора).

В итоге, получится:
<link rel="stylesheet" type="text/css" href="min/styles_1349888114.cssgz" />
<script src="min/all_1349888114.jsgz" /></script>

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

Прекрасная украинская игра Contre Jour портирована на HTML5

Reading time1 min
Views28K
Contre Jour — популярная украинская игра, с прекрасной графикой, отличным дизайном и замечательной музыкой была портирована в веб на базе современных стандартов с поддержкой HTML5 и тач-функций. Игра завоевала несколько наград после выхода в свет на iPad.

Смотрите ролик с анонсом:



Игра была портирована в веб благодаря инициативе команды Internet Explorer и прекрасно работает на планшетах с Windows 8 и IE10.

Попробуйте игру на ContreJour.ie

Оптимизация сложных запросов MySQL

Reading time5 min
Views70K

Введение


MySQL — весьма противоречивый продукт. С одной стороны, он имеет несравненное преимущество в скорости перед другими базами данных на простейших операциях/запросах. С другой стороны, он имеет настолько неразвитый (если не сказать недоразвитый) оптимизатор, что на сложных запросах проигрывает вчистую.

Прежде всего хотелось бы ограничить круг рассматриваемых проблем оптимизации «широкими» и большими таблицами. Скажем до 10m записей и размером до 20Gb, с большим количеством изменяемых запросов к ним. Если в вашей в таблице много миллионов записей, каждая размером по 100 байт, и пять несложных возможных запросов к ней — это статья не для Вас. NB: Рассматривается движок MySQL innodb/percona — в дальнейшем просто MySQL.
Читать дальше →

Строим Android x86

Reading time7 min
Views63K
Существует множество задач, для которых требуется пересборка ядра и операционной системы Android в целом. Например, создание и отладка собственных модулей, включение поддержки профилирования системы и просто тестирование своих приложений на новой версии Android.
Возможность запуска Android x86 внутри виртуальной машины VirtualBox позволяет энтузиастам и создателям прошивок покопаться в настройках системы, настроить и пересобрать ядро и при этом не «кирпичизировать» настоящее устройство. VirtualBox предоставляет возможность использования привычных для Linux-разработчика средств отладки ОС. Для рядовых разработчиков Android-приложений отлично подходит эмулятор, использующий технологию Intel Hardware Accelerated Execution Manager. (подробнее можно прочесть здесь)
В статье приведен ряд практических советов по сборке образа Android x86 для запуска под виртуальной машиной VirtualBox и сборке эмулятора. Исходный код Android взят из официального репозитория проекта AOSP (Android Open Source Project), в качестве ядра использована адаптированная версия ядра Linux 2.6 от Intel.
Читать дальше →

Information

Rating
Does not participate
Location
Бангкок, Таиланд, Таиланд
Registered
Activity