Pull to refresh
6
0

Senior Full Stack developer

Send message

Полезные трюки PostgreSQL

Reading time 3 min
Views 191K


В мануале есть всё. Но чтобы его целиком прочитать и осознать, можно потратить годы. Поэтому один из самых эффективных методов обучения новым возможностям Postgres — это посмотреть, как делают коллеги. На конкретных примерах. Эта статья может быть интересна тем, кто хочет глубже использовать возможности postgres или рассматривает переход на эту СУБД.
Читать дальше →
Total votes 55: ↑55 and ↓0 +55
Comments 28

Вредные советы при построении Аналитики (Data Lake / DWH / BI) – чего стоит избегать

Reading time 5 min
Views 6.3K

Всем привет! На связи Артемий, со-автор и преподаватель курсов Data Engineer, DWH Analyst.

Последние месяцы я много занимаюсь рефакторингом кодовой базы, оптимизацией процессов и расчетов в сфере Анализа Данных.

Появилось желание в формате “вредных советов” обратить внимание на набор практик и подходов, которые могут обернуться весьма неприятными последствиями, а порой и вовсе дорого обойтись Вашей компании.

В публикации Вас ожидает:

- Использование select * – всё и сразу

- Употребление чрезмерного количество CTEs (common table expressions)

- NOT DRY (Don’t repeat yourself) – повторение и калейдоскопический характер расчетов

Читать далее
Total votes 12: ↑12 and ↓0 +12
Comments 2

Tarantool vs Redis: что умеют in-memory технологии

Reading time 15 min
Views 35K

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

Для этого мы посмотрим на технологии в трёх частях:

  • Вначале посмотрим глазами новичка. Что такое БД в памяти? Какие задачи они решают лучше дисковых БД?
  • Потом посмотрим архитектурно. Как обстоит вопрос с производительностью, надёжностью, масштабированием?
  • В третьей части лезем в технические вещи поглубже. Типы данных, итераторы, индексы, транзакции, ЯП, репликация, коннекторы.

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

Поехали!
Читать дальше →
Total votes 69: ↑67 and ↓2 +65
Comments 81

PHP 8 — пробуем новые возможности

Reading time 6 min
Views 20K

PHP 8 уже на этапе release candidate, версия RC 3 вышла 29 октября, а полноценный релиз назначен на 26 ноября. Так что пора взглянуть на новые возможности, которые нас ждут в PHP 8. График релизов можно посмотреть здесь. А официальное руководство по обновлению на новую версию лежит тут.
Читать дальше →
Total votes 62: ↑59 and ↓3 +56
Comments 50

Гугл-программисты. Как идиот набрал на работу идиотов

Reading time 4 min
Views 172K
В стародавние времена я, на постоянной основе, занимался техническими собеседованиями – отбирал кандидатов на должность программиста в компанию. У меня была простая, понятная, шикарная методика (не мной придуманная). Чувак сначала проходил длинное собеседование по куче разнообразных вопросов, потом решал несколько задач. На бумаге, как мы делали в ВУЗе.

Оглядываясь назад, понимаю – отбор действительно работал шикарно. Все, кого я тогда отобрал, стали уважаемыми в нашей деревне специалистами. Больше половины из них давно открыли собственный it-бизнес, в самых разных сферах – от 1С до разработки CRM-систем.

Вот этот опыт и замутил моё сознание. Настолько, что я решил поменять методику – подумал, что дело не в ней, а во мне. Я есть великий специалист по техническим собеседованиям.
Читать дальше →
Total votes 386: ↑297 and ↓89 +208
Comments 648

Работа с API Яндекс.Вебмастер

Reading time 7 min
Views 41K
Каждый, кто отслеживает изменения отношения Яндекса к его сайту, знает о таком полезном сервисе Яндекса, как Яндекс.Вебмастер, но не многие знают, что сейчас появилась возможность автоматизировать этот процесс при помощи взаимодействия с API.

Т.к. я занимаюсь и разработкой и последующим продвижением сайтов, а продвигаемых сайтов довольно много, я сразу же уцепился за возможность автоматизировать процесс получения статистики с Яндекс.Вебмастера.
Во-первых, мы получаем все данные, даже если забыли это сделать или на это не было времени, ежедневно, ежечасно или еще чаще.
Во-вторых, работая через API, мы можем создать свой интерфейс просмотра данных, сделав его более удобным для себя.

Хотя документация по данному API на Яндексе существует, и даже снабжена примерами, лично я не смог «с разбегу» разобраться, что к чему. Поэтому, если вам также интересна эта тема, прошу под кат.
Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Comments 8

Генерируем красивые картинки для социальных сетей

Reading time 7 min
Views 16K


Код для генерирования именно этого изображения
$generator = new imgGenerator();
$textGenerator=new imgTextGenerator();
$textGeneratorTop=new imgTextGenerator();

$label=$textGeneratorTop
	->seTextShadow("#000000", 75, 1, 2, 2)
	->setText("Test Site","#ffffff",imgGenerator::position_center_top,"1/12",0 )
	->setBackground("#000000",'3%')
	->setFont($_SERVER["DOCUMENT_ROOT"]."/upload/fonts/fonts2_7/hinted-PTF55F.ttf");

$text=$textGenerator
	->seTextShadow("#000000", 75, 1, 2, 2)
	->setText("Морковь как двигатель прогресса человечества","#ffffff",imgGenerator::position_center_center,"1/7",array(0,'5%',0,'5%'))
	->setFont($_SERVER["DOCUMENT_ROOT"]."/upload/fonts/fonts2_7/hinted-PTF55F.ttf");

$generator
	->addText($text)
	->addText($label)
	->fromImg($_SERVER["DOCUMENT_ROOT"] . "/upload/dynamic/2016-08/15/carrot-big.jpg")
	->resizeFor("autodetect")
	->addOverlay(0.5,"#000000")
	->show();

Глядя на красивые картинки для соц. сетей, которые в последнее генерируют многие новостные (и не только) сайты — захотелось написать свой генератор.

Примеры картинок

Скрипт работает на PHP, с использованием модуля Imagick. Писать это на GD2 что-то я не решился.

Алгоритм работы предполагался такой:

  • Берем за основу картинку или цвет
  • Уменьшаем до нужного размера
  • Накладываем сверху полупрозрачный фон
  • Устанавливаем логотип
  • Добавляем надпись
  • Кешируем результат

Читать дальше →
Total votes 33: ↑23 and ↓10 +13
Comments 11

Создание видео трансляции на JS

Reading time 4 min
Views 38K
Доброго времени суток, дорогой хабрачитатель.
Сегодня я расскажу, как можно организовать прямую трансляцию изображения с веб-камеры с помощью HTML5/JS и NodeJS, а также PHP.

В статье наблюдается довольно большое количество кода. Также эта статья ориентирована скорей на начинающих веб разработчиков, чем на профессионалов.
Читать дальше →
Total votes 48: ↑43 and ↓5 +38
Comments 10

LiveReload на Node.js

Reading time 3 min
Views 45K

Что это такое?


LiveReload — это утилита, которая позволяет автоматически перезагружать страницу в браузере при изменение её кода и ресурсов(html, css, js, images, etc) на сервере. Кроме того LiveReload позволяет применять изменения в CSS и JavaScript без перезагрузки страницы.
Читать дальше →
Total votes 21: ↑18 and ↓3 +15
Comments 17

Эдвард Сноуден использовал дистрибутив TAILS

Reading time 2 min
Views 128K
Когда Эдвард Сноуден впервые появился перед видеокамерой летом прошлого года, многие обратили внимание на его ноутбук с наклейками анонимайзера Tor и Фонда электронных рубежей. Сейчас стало известно, какая операционная система установлена на этом ноутбуке: защищённый дистрибутив Linux под названием TAILS (The Amnesic Incognito Live System) на основе Debian.


Раньше дистрибутив назывался Amnesia и базировался на ОС Incognito

Загрузив образ TAILS с диска или флэшки, мы сразу получаем все необходимые инструменты для безопасной работы в интернете: Tor запускается автоматически, GPG для шифрования почты, OTR-чат, парольный менеджер KeePassX и другие программы, многие из которых модифицированы для безопасности. Дистрибутив спроектирован таким образом, что не хранит никакой информации локально (и вообще не обращается к накопителю), чтобы защитить секретные данные в случае, если компьютер попадёт в руки врага, и обезопасить систему от вредоносного ПО. Оперативная память стирается перед завершением работы с помощью sdmem, чтобы злоумышленник не мог восстановить её содержимое с недавно выключенного компьютера. Графический интерфейс может подделываться под Windows XP, чтобы не вызывать подозрений у окружающих.
Читать дальше →
Total votes 94: ↑82 and ↓12 +70
Comments 39

HackerSIM: мечта Неуловимого Джо

Reading time 15 min
Views 50K
В хакспейсе поселилась «симка всевластия».
Про мегафичу подмены любого номера написал на Хабре.

Анонс конкурса по социнженерным атакам с использованием HackerSIM

Заочный тур.
C 6 по 15 октября вы можете прислать в свободной форме модель угроз, которые возможны, если HackerSIM попадет в руки злоумышленника.
Приславшего материал с максимальной "hack value" ждет утешительный приз 10.000 рублей.

Очный тур.
16 октября, хакспейс «Нейрон». Начало в 19-00.
Каждому участнику предоставляется HackerSIM и в течении 3 часов он должен провести penetration test.
Участие индивидуальное или командное.
Приз — достойный.

Заявки на очный и заочный туры принимаются на почту hackersim@яндексточкару.
(Кому не терпится, у меня есть пара симок специально для хабрачитателей)

Помимо этого симка очень очень старается обеспечить анонимность своего владельца и конфиденциальность его разговоров:

  • скрывает реальный круг общения
  • маскирует местоположение, используя виртуальный номер
  • может искажать голос
  • принудительное использование шифрование
  • скрывает реальный IMSI

Читать дальше →
Total votes 30: ↑19 and ↓11 +8
Comments 19

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

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


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

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

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

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

Я начал разыгрывать своих хороших знакомых.
Читать дальше →
Total votes 92: ↑58 and ↓34 +24
Comments 103

Material Design и AngularJS

Reading time 6 min
Views 68K
Ни для кого не секрет, что Google повсюду в своих продуктах внедряет так называемый material design. Как и любой другой стиль он имеет сторонников и противников. Не буду касаться этих споров. Если вам нравится данный подход, Google подготовил полную спецификацию и описание особенностей: Material Design.

Для любителей angularjs появилась библиотека с набором директив, реализующих графические компоненты и позволяющих создавать разметку в соответствии с принципами material design. О ней и пойдет рассказ.

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

image
Читать дальше →
Total votes 37: ↑35 and ↓2 +33
Comments 20

Анатомия триггерных рассылок. Весь инструмент за 10 минут

Reading time 9 min
Views 9.8K
image

Хорошо ли вы разбираетесь в триггерных рассылках? Фокус интернет-маркетинга большими темпами сдвигается с привлечения массы новых посетителей на персональную работу с каждым привлеченным.

Какой смысл привлекать много посетителей, если большая их часть уйдет через несколько минут, а до покупки дойдут лишь 1-2%? Сначала стоит наладить удержание, убеждение и возвращение, а уже потом наращивать трафик. На этом успешные проекты и строят свою экономику. Главный инструмент, который поможет автоматизировать этот процесс — это триггерные рассылки.
Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Comments 2

Bootstrap 4 вышел в alpha версии

Reading time 3 min
Views 90K
image

Те кто так или иначе связан с веб разработкой скорее всего знает что такое Bootstrap.
Лично я познакомился с фреймворком Bootstrap версии 2.x и он на меня произвел неизгладимое впечатление. Можно было без участия дизайнера получить вполне сносный интерфейс. Встроенный перфекционист ликовал. Можно ругаться, что интернет стал очень уж бутстраповым, но нужно отдать должное, парни, работающие над ним в целом молодцы и делают нужное, а то, что народ ленивый – проблема другая.

Сегодня день рождения этого замечательного фреймворка. В свой день рождения был объявлен Bootstrap 4.


Читать дальше →
Total votes 55: ↑52 and ↓3 +49
Comments 46

Пишем Telegram бота на Ruby в 10 строк

Reading time 2 min
Views 54K

После выпуска Telegram Bot Platform многие задумывались о написании своего бота. Этот пост описывает минимальные шаги, необходимые для написания собственного бота на Ruby. Для этого потребуется только аккаунт в Telegram и машина с установленным Ruby на ней.
Читать дальше →
Total votes 38: ↑22 and ↓16 +6
Comments 35

Синхронизируем уведомления CI с Telegram

Reading time 3 min
Views 23K
Cегодня я хотел бы поделиться своим опытом синхронизации уведомлений Continuous Integration серверов (Bamboo, Jenkins, TeamCity и тп.) с бесплатным мессенджером от Павла Дурова — Telegram.

Данную проблему захотелось решить из-за того, что программисты на нашем проекте не реагировали на уведомления, присылаемые на почту, а телеграмм у нас корпоративный мессенджер. Подопытным CI является наш корпоративный Bamboo, с которого и должны приходить эти самые уведомления.

Для организации данной синхронизации мы будем использовать BOT API от телеграмма, Gmail API от Google, а также наш ubuntu сервер на Digital Ocean.
Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Comments 7

Information

Rating
Does not participate
Location
Рязань, Рязанская обл., Россия
Date of birth
Registered
Activity