Search
Write a publication
Pull to refresh
0
Сергей @sav6622read⁠-⁠only

Пользователь

Send message

Как я мониторил Avito по SMS

Reading time8 min
Views62K
Как известно, на «Авито» периодически появляются товары очень хорошего качества и при этом очень дешевые. Но появляются они редко, висят там мало и исчезают быстро.

Поэтому возникла у меня идея: а не поискать ли сервис, который раз в несколько минут проверяет объявления, и если появилось что-то интересное для меня — оповещает об этом? При этом оповещать лучше всего по смс, а то почту я не всегда проверяю оперативно.

Гуглинг выдал несколько таких сервисов, «всего» от 3 руб за смс или от 4 руб в сутки.

В итоге, я решил написать такой сервис самостоятельно, но об этом дальше…
Читать дальше →

Пудра для мозга или как сделать порошок для посудомойки в 9,7 раз дешевле

Reading time11 min
Views293K


Update
Новый вариант порошка и более подробный разбор во второй части: DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт

Сейчас расскажу, как из соды и стирального порошка сделать порошок для посудомоечной машины. Такой же по составу, только дешевле на порядок.

Есть очень много областей нашей жизни, где наше представление формирует исключительно маркетинговый буллшит. Увы, большинство людей даже не пытаются задумываться о том, что лежит в основе всего этого. Очень часто рыночная ситуация приводит к тому, что себестоимость продукта составляет 0.5% от его цены. Остальное маркетинг, наценки, логистика, упаковка и тому подобное. Почти все в курсе про концепцию продажи чернил для принтера по цене слез гималайских девственниц и настойчивые рекомендации производителей использовать только оригинальные расходные материалы. Например, совсем недавно меня озарило, что 1.5 грамма сухого вещества во флаконе удобрений для растений не могут стоить 200-250 рублей. А ведь именно такое количество может уместиться в относительно стабильном состоянии в виде раствора. Я сразу представил себе гектары полей и грузовики, которые везут тонны порошка. В результате перешел на расфасовки по 1 кг Буйских комплексных сухих удобрений. Можно ванну раствора приготовить.

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

TLDR:

70% прокаленной соды и 30% стирального порошка вместо моющего средства.
Если очень лень возиться с содой, то просто порошок Биолан или его аналоги. Сода удешевляет.
Пищевая соль «Экстра» вместо соли.
Да начнутся адские эксперименты!

HackerSIM: подделка любого телефонного номера. CTF по социальной инженерии

Reading time5 min
Views174K
«Народ не должен бояться своего правительства, правительство должно бояться своего народа»
«Privacy is ultimately more important than our fear of bad things happening, like terrorism.»


Уверены ли вы, что вам звонит тот, за кого себя выдает? Даже если высвечивается знакомый номер.

Недавно я обзавелся "хакерской симкой всевластия". Которая помимо лютой анонимности имеет фичу — подделка номера. Расскажу как это происходит.

Чак на своем телефоне, куда вставлена HackerSIM, набирает команду *150*НомерАлисы# и через секунду получает подтверждение, что номер успешно «подделан». Затем Чак звонит со своего телефона Бобу. Телефон Боба принимает вызов, и на нем высвечивается, что ему звонит… Алиса. Profit.

Далее события разворачиваются в зависимости от социнженерного (или чревовещательного) таланта Чака.

Я начал разыгрывать своих хороших знакомых.
Читать дальше →

Почему Интернету нужен IPFS, пока ещё не поздно

Reading time9 min
Views67K
[узлы к узлам]

IPFS не совсем ещё сделалась хорошо известной технологией, даже в Кремниевой долине многим она ещё не известна, однако вести о ней быстро расходятся из уст в уста в сообществе открытого исходного кода. И многие рады потенциальным возможностям IPFS в области улучшения передачи файлов и ускорения потокового вещания их по Интернету.

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

Как и почему это? Для ответа на этот вопрос придётся вдаваться в подробности.
Читать дальше →

Что нужно знать про арифметику с плавающей запятой

Reading time14 min
Views1M


В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →

Делаем обычную микроволновку умнее с IFTTT и OpenHAB

Reading time4 min
Views21K

«Умные дома» и «умные офисы» сегодня тренд. А как сделать самое обычное бытовое устройство чуть «умнее»? А что если при этом вы не умеете или не хотите ничего паять? Я например отношусь к тем, кто паять не умеет, а пользу от умных устройств получать хочет.

Под катом я расскажу, как легко и без паяльника можно быстро превратить абсолютно любую микроволновку в самую настоящую smart-микроволновку, которая будет оповещать вас о готовности еды и своем текущем статусе самыми разнообразными способами.
Читать дальше →

Django на production. uWSGI + nginx. Подробное руководство

Reading time7 min
Views225K
Перед вами руководство по настройке production окружения для Django. Здесь будут описаны необходимые шаги по настройке Django, uWSGI и nginx. Руководство охватывает все три компонента — полный стек серверного ПО для веб-приложений.

Подразумевается, что вы используете Unix-подобную операционную систему и менеджер пакетов, эквивалентный aptitude. Найти эквивалент aptitude почти для любой операционной системы, в том числе и для Mac OS X, для вас не составит никакого труда.

Руководство написно для версий Django 1.4 или выше. Если вы используете более раннюю версию, то вам придется самостоятельно найти wsgi модуль для нее. Также вы заметите, что файловая структура проекта будет немного отличаться от представленной здесь.

Общая идея


Веб-сервер может по запросу отдавать пользователям файлы из своей файловой системы, однако он не может напрямую работать с Djangо приложениями. Веб-серверу нужен интерфейс, который будет запускать Django приложение, передавать ему запрос от пользователя и возвращать ответ.

Для выполнения этих задач был разработан Web Server Gateway Interface — WSGI — стандарт взаимодействия Python программ и веб-сервра.

uWSGI — одна из реализаций WSGI. В этом руководстве мы установим и настроим uWSGI для создания Unix сокета и взаимодействия с веб-сервером по протоколу WSGI.
Читать дальше →

Apache vs Nginx: практический взгляд

Reading time12 min
Views385K
Apache vs Nginx

Введение


Apache и Nginx — 2 самых широко распространенных веб-сервера с открытым исходным кодом в мире. Вместе они обслуживают более 50% трафика во всем интернете. Оба решения способны работать с разнообразными рабочими нагрузками и взаимодействовать с другими приложениями для реализации полного веб-стека.

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

Хакнуть АЭС намного проще, чем вы думаете

Reading time5 min
Views24K
2007-й год – успешная попытка вывода из строя учебного генератора электростанции. 2010-й год – масштабная кибератака на центрифуги в Иране. 2013-й год – рекордная активность хакеров на инфраструктурных объектах США. 2015 год – особый акцент на угрозах энергетическому комплексу США в национальной Стратегии кибербезопасности. Похоже шансы изменить историю в соответствии со своим сценарием у азартных киберспортсменов растут с каждым годом. О том, насколько реальны опасения и какие меры предпринимаются, чтобы предотвратить управляемую катастрофу читайте ниже.

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

19 советов по повседневной работе с Git

Reading time14 min
Views289K


Если вы регулярно используете Git, то вам могут быть полезны практические советы из этой статьи. Если вы в этом пока новичок, то для начала вам лучше ознакомиться с Git Cheat Sheet. Скажем так, данная статья предназначена для тех, у кого есть опыт использования Git от трёх месяцев. Осторожно: траффик, большие картинки!

Содержание:
  1. Параметры для удобного просмотра лога
  2. Вывод актуальных изменений в файл
  3. Просмотр изменений в определённых строках файла
  4. Просмотр ещё не влитых в родительскую ветку изменений
  5. Извлечение файла из другой ветки
  6. Пара слов о ребейзе
  7. Сохранение структуры ветки после локального мержа
  8. Исправление последнего коммита вместо создания нового
  9. Три состояния в Git и переключение между ними
  10. Мягкая отмена коммитов
  11. Просмотр диффов для всего проекта (а не по одному файлу за раз) с помощью сторонних инструментов
  12. Игнорирование пробелов
  13. Добавление определённых изменений из файла
  14. Поиск и удаление старых веток
  15. Откладывание изменений определённых файлов
  16. Хорошие примечания к коммиту
  17. Автодополнения команд Git
  18. Создание алиасов для часто используемых команд
  19. Быстрый поиск плохого коммита

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

Прикручиваем мультимедиа-клавиши в Яндекс.Радио

Reading time3 min
Views20K
Не так давно открыл я для себя сервис Яндекс.Радио, и вполне успешно им пользуюсь. Но вот чего не хватает: возможности включить следующий трек или поставить на паузу, не переключаясь на вкладку.

Мое решение под катом.
Читать дальше →

Распознавание речи с помощью CMU Sphinx

Reading time4 min
Views85K
CMU Sphinx сейчас является крупнейшим проектом по распознаванию человеческой речи. В инструментарий входят следующие программы и библиотеки:

  • Pocketsphinx — небольшая программа, которая принимает на вход произвольные акустические модели, грамматики и словари, а также звуковой поток(либо звуковой файл, либо сам берет поток с микрофона). На выходе получается распознанный текст. Написана на C, работает быстро.
  • Sphinxbase — библиотека необходимая для работы Pocketsphinx
  • Sphinx4 — гибкая библиотека для распознавания, написана на Java.
  • Sphinxtrain — программа для обучения акустических моделей.

Для работы со CMU Sphinx важно запомнить несколько определений и понять их отличия.

  • Акустическая модель — отвечает за сопоставление звуку произнесенной фонемы. Акустическую модель для русского языка можно скачать на сайте проекта. Русская акустическая и языковая модели. А также словарь.
  • Словарь — это файл, в котором написаны сопоставлены лексемы и фонемы (слово и его транскрипция). Например, калькулятор (k ay ll k u ll ja t ay r). Он необходим для преобразования фонем, распознанных акустической моделью в лексемы.
  • Грамматика — это формальные правила, которые описывают простые правила построения предложений. Лексемы, полученные на предыдущем шаге пытаются сопоставиться с грамматикой и если удачно, то выводится результат.
  • Языковая модель — это статистическая модель языка. Она описывает вероятности слов и их комбинаций. Таким образом распознавание лексем — это максимизация правдоподобности распознанной фразы.

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

Мифы и рецепты Docker

Reading time5 min
Views91K
Вокруг постоянно говорят про Docker. Я знаю что вы отвечаете: «Это что-то про контейнеры, виртуализацию, облака», «У нас все и так работает», «Это все баловство», «Он не запустится на нашем старом ядре линукса», «Точно так же можно подготовить образ для облака и запустить его», «Можно просто настроить LXC, chroot или AppArmor». Вы знаете, что он вам не нужен. Очередная модная штука. В конце концов, просто лень разбираться. Но любопытно! Тогда, читайте. Это серия из шести заметок.

Если вы не слышали о контейнерах в Линуксе, вот список страниц, которые надо прочитать, чтобы понимать о чем речь:


Поставьте Docker, он небольшой. Для Windows и Mac можно просто поставить Toolbox: www.docker.com/toolbox. Создавать виртуальную машину и настраивать лучше из командной строки, а не через графическую обертку. Прочитайте несколько уроков из мануала. Здесь я пишу о том, чего в документации нет.

Docker — это не виртуализация.


Вот какой у меня линукс:

Welcome to Ubuntu 15.04 (GNU/Linux 3.19.0-15-generic x86_64)

Last login: Tue Aug 18 00:43:50 2015 from 192.168.48.1
gri@ubuntu:~$ uname -a
Linux ubuntu 3.19.0-15-generic #15-Ubuntu SMP Thu Apr 16 23:32:37 UTC 2015 x86_64 x86_64 x86_64 GNU/                                       Linux
gri@ubuntu:~$ free -h
             total       used       free     shared    buffers     cached
Mem:          976M       866M       109M        11M       110M       514M
-/+ buffers/cache:       241M       735M
Swap:         1.0G       1.0M       1.0G

Запускаю CentOS:

gri@ubuntu:~$ docker run -ti centos
[root@301fc721eeb9 /]# uname -a
Linux 301fc721eeb9 3.19.0-15-generic #15-Ubuntu SMP Thu Apr 16 23:32:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@301fc721eeb9 /]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@301fc721eeb9 /]# free -h
              total        used        free      shared  buff/cache   available
Mem:           976M         85M        100M         12M        790M        677M
Swap:          1.0G        1.0M        1.0G

Docker — это не chroot, их функционал частично совпадает. Это не система безопасности вроде AppArmor. Docker использует те же контейнеры, что и LXC, но интересен он не контейнерами. Docker — это ничего из того, что я думал о нем до того, как прочитал документацию.

То же ядро, память, файловая система, а дистрибутивы, библиотеки и пользователи — разные.

Docker — это инструмент объекто-ориентированного проектирования


Регулярно возникает вопрос, является ли конфигурация nginx частью веб-приложения. Системные администраторы спорят с разработчиками. Но недавно в мире появились devops и захотели вместо последовательно-процедурного вызова команд из bash думать привычным OOP. Docker дает инкапсуляцию, наследование и полиморфизм компонентам системы, таким как база данных и данные. Это значит, что можно провести декомпозицию всей информационной системы, выделить приложение, web-сервер, базу данных, системные библиотеки, рабочие данные в независимые компоненты, внедрять зависимости из конфигов, и заставить все это работать одной группой, одинаково на разных компьютерах.

Такой подход можно использовать, чтобы снизить потери рабочего времени дорогих front-end разработчиков на настройку базы данных и Nginx. Чтобы уйти от vendor lock-in. Не обломаться когда openssl на сервере не поддерживает cipher, используемый в API госучреждения. Чтобы приложение работало независимо от версии PHP или Python на сервере заказчика. Создавать open source не только в виде кода, но и настройкой пакетов из нескольких приложений, написанных на разных языках, работающих на разных слоях OSI.
Читать дальше →

Оттачиваем мастерство работы в консоли

Reading time3 min
Views64K
После того, как у меня появился новый монитор на рабочем месте, я начал новую итерацию улучшения своего «безмышечного» (mouse-less, прим. пер.) опыта. Вы же знаете, что это значит, не так ли? Это значит, что каждый раз, когда вы беретесь за мышку, убирая руку с клавиатуры, вы тратите немного времени и энергии. Если вам нужно набирать много текста (а я много пишу кода), это становится существенным.

Так же существует следующий уровень «безмышечного» опыта, когда вы стараетесь избежать труднодоступных клавиш, например Delete, Backspace, Escape или даже Enter.

Если вы держите руки в стандартной позиции для 10-пальцевой слепой печати, более удобно нажать Ctrl-m вместо того, чтобы тянуться мизинцем к энтеру.

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

Цветной man или как разукрасить вывод echo

Reading time8 min
Views116K
Когда пишешь даже минимальный скриптик, часто используешь echo — подсказки.
Согласитесь "цветной man" ведь намного приятнее читать, так почему бы не раскрасить вывод echo?
это достаточно легко.
Итак…

Задача:
Раскрасить текстовую строку выводимую на экран через команду echo
т.е. раскрасить эти самые подсказки
Читать дальше →

Солнечная энергия на плоту, или Как я провел лето

Reading time2 min
Views34K
Довелось мне в этом году поучаствовать в довольно интересном проекте. Сразу скажу, что удовольствие от реализации проекта перекрыло все потраченные нервные клетки, а результат даже превзошел ожидания. Итак, начинаем.
Тут не раз проскакивали посты о солнечной энергетике и солнечных батареях, в частности. Но описывались обычно стационарные объекты, вроде дачных участков или коттеджей. В этот раз задача была сложнее и интереснее, а звучала она так: необходимо обеспечить плот, площадью 100 квадратных метров, электричеством на несколько недель. Количество обитателей ~10 человек, 3 холодильника, 2 термопода, 15-20 ламп\прожекторов, строительный инструмент, бойлер, порядка 20 телефонов\ноутбуков\планшетов. В резерве есть генератор 2 кВт.



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

A-SIM, настройся! Специальная сим-карта и много-много входящих номеров

Reading time6 min
Views29K
Мобильная связь, пожалуй, самая консервативная и, как это ни парадоксально звучит, самая малоподвижная отрасль в бущующем и текучем телеком-мире. За последние 20 лет в технологиях радиосвязи революций так и не случилось — сим-карты остались сим-картами, базовые станции базовыми станциями, а стандарт GSM- стандартом GSM. Понятно, что сервисы на мобильных устройствах мигрируют в сторону передачи данных и голосовые услуги постепенно уходят в небытие, вытесняемые безжалостными каннибаллами — вайберами/ватсапами. Но ведь голосовые услуги никто не отменял и отменять не собирается: звонок клиента — это всегда звонок клиента, а номер рекламного телефона на сайте — неизменный атрибут любого бизнеса.

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



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

Почти 2500 регистраций за месяц. Как это было

Reading time6 min
Views5.3K


Сервис обратного звонка CallbackKILLER мы запустили 3 августа 2015 года. За месяц мы сделали 2500 регистраций и вышли на операционную прибыль. Как мы это сделали читайте в статье.
Читать дальше →

IDE от JetBrains теперь доступны только в аренду

Reading time2 min
Views86K
Сегодня PyCharm предложил обновиться до IntelliJ IDEA Ultimate Edition, чему я, мягко говоря, удивился.
Перейдя по предложенной ссылке я обнаружил объявление об изменении модели лицензирования для сред разработки от JetBrains:
What products are affected?
IntelliJ IDEA Ultimate, AppCode, CLion, PhpStorm, PyCharm Professional, RubyMine, WebStorm, ReSharper, ReSharper C++, dotTrace, dotCover, and dotMemory. No changes apply to the family of server tools including YouTrack, TeamCity, Upsource, and Hub.
www.jetbrains.com/toolbox


Суть изменений сводится к тому, что вводится новый тип лицензии, позволяющий арендовать несколько сред в одной пачке (даже все вместе), добавляется модель лицензирования по подписке (то есть аренда продуктов) и отменяется бессрочная модель лицензирования (perpetual) при которой можно было приобрести продукт в пользование навсегда:
What is changing?
Perpetual licenses will no longer be available for purchase as of November 2, 2015 for selected products. A new subscription-based licensing model will replace the existing model.
www.jetbrains.com/toolbox

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

Мой опыт фриланса на Upwork

Reading time5 min
Views67K
Впервые я столкнулся с Upwork (тогда еще oDesk) в 2011м году, когда брат прислал на них ссылку в скайпе. Я только начинал работать на русских биржах, и подумал — почему бы не попробовать еще и на зарубежной. Но тогда все закончилось ничем. Результаты были слабыми, и, разочаровавшись во фрилансе как таковом, я бросил это дело.

Вернулся на Upwork только спустя два года, когда узнал, что есть те, кто серьезно занимаются фрилансом, и отлично живут на этом. Решил в этот раз ориентироваться только на зарубежных заказчиков, т. к. по первому опыту у них бюджеты были больше, а также они выше ценили свое и мое время. Так я снова оказался на Upwork.
Читать дальше →

Information

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