Как стать автором
Обновить
11
0
Алексей @LexxXell

Программист и немного IT-журналист

Отправить сообщение

Создаем свой VPN с защищенным от блокировок протоколом AmneziaWG, или WireGuard на максималках

Время на прочтение4 мин
Количество просмотров144K


Всем привет! Возможно уже совсем скоро разные новостные и  IT-ресурсы будут подчищать информацию о способах обхода блокировок. А пока этого не случилось, запасаемся полезными гайдами и разворачиваем свои собственные VPN с защищенными от блокировок протоколами. Расскажу как это сделать, как изменилась Amnezia и как мы защитили WireGuard от блокировок.

Читать далее
Всего голосов 115: ↑113 и ↓2+111
Комментарии123

Ругательства на английском, за которые не побьют (но это не точно)

Время на прочтение6 мин
Количество просмотров106K
Ругательства — это важная часть любого языка. Правильно и к месту материться — это настоящее искусство, которым далеко не все владеют на своем родном языке.

В прошлой статье мы рассказали о mild curses — эмоциональных выражениях, которые матами не считаются. Сегодня же речь пойдет о матюках. Нормальных таких ругательствах на английском, но без жести. Встречайте medium curses во всей красе.


Всего голосов 57: ↑54 и ↓3+51
Комментарии71

Bloody hell, или Как ругаться на английском, чтобы тебя приняли за культурного человека

Время на прочтение6 мин
Количество просмотров109K
Ругательства — это неотъемлемая часть любого языка. И даже если вы не собираетесь их использовать в жизни, их нужно изучать и знать.

Но есть ситуации, когда без «крепкого словца» не обойтись. И чтобы не потерять свой имидж культурного человека, мы предлагаем вам целую коллекцию «mild curses» — легких ругательств и идиоматических выражений на английском языке, которые не считаются матами, но при этом помогут выразить всю палитру эмоций. Поехали!


Всего голосов 93: ↑87 и ↓6+81
Комментарии143

5 устаревших оскорблений на английском, которые сегодня звучат изысканно и необычно

Время на прочтение6 мин
Количество просмотров52K

Английский язык богат ругательствами и оскорблениями. Это в американском кино можно услышать только «фак», «щит» и «бич», а на самом деле бранных слов там куда больше. Интеллигентные люди ругаются изощреннее.

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

Читать далее
Всего голосов 58: ↑52 и ↓6+46
Комментарии42

Запускаем полноценный кластер на Kubernetes с нуля на Ubuntu 16.04

Время на прочтение8 мин
Количество просмотров63K
Уже довольно много написано статей, по установке и запуску Kubernetes, однако, не всё так гладко (я потратил несколько суток на запуск своего кластера).

Данная статья призвана дать исчерпывающую информацию не только по установке k8s, но и объяснить каждый шаг: зачем и почему мы делаем именно так, как написано (это очень важно для успешного запуска).

Что нужно знать


Серверы:
Кластер подразумевает, что у Вас более одного физического сервера, между которыми и будут распределятся ресурсы. Серверы называются нодами (nodes).

Диски:
Обычные харды в k8s не поддерживаются. Работа с дисками происходит по средствам распределенных файловых хранилищ. Это необходимо для того, чтобы k8s мог «перемещать» контейнеры docker на другие ноды в случае необходимости, без потери данных (файлов).

Начинать создание кластера нужно именно с создания своего распределенного файлового хранилища. Если вы уверены, что диски вам никогда не понадобятся, то этот шаг можно пропустить.
Я выбрал Ceph. А еще рекомендую почитать эту замечательную статью.

Минимальное разумное количество серверов для Ceph — 3 (можно построить и на одном, но в этом мало смысла из-за высокой вероятности потерять данные).

Сеть:
Нам понадобится Flannel — он позволяет организовать программно определяемую сеть (Software Defined Network, SDN). Именно SDN позволяет всем нашим контейнерам общаться с друг другом внутри кластера (установка Flannel производится вместе с k8s и описана ниже).

Подготовка серверов


В нашем примере мы используем 3 физических сервера. Установите Ubuntu 16.04 на все сервера. Не создавайте swap партиции (требование k8s).

Предусмотрите в каждом сервере как минимум один диск (или партицию) для Ceph.

Не включайте поддержку SELinux (в Ubuntu 16.04 он выключен по-умолчанию).

Мы назвали сервера так: kub01 kub02 kub03. Партиция sda2 на каждом сервере создана для Ceph (форматировать не обязательно).
Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии43

Автоматическое оповещение об изменениях статуса почтовых посылок через SMS

Время на прочтение6 мин
Количество просмотров24K
В последнее время я стал делать много покупок в интернет-магазинах, и нередко ловлю себя на том, что очень часто проверяю статус своих посылок (с нашей почтой не беспокоиться не получится).
Поиск готовых решений приводил только к платным сервисам. В результате было принято решение сообразить что-нибудь свое.
Под катом список используемых сервисов и подробная инструкция.
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии89

В bash безобидная с виду конструкция [[ $var -eq 42 ]] умеет выполнять и произвольный код

Время на прочтение4 мин
Количество просмотров17K
Знали ли вы о том, что следующий bash-скрипт способен выполнять произвольный код, который предоставит ему пользователь в ответ на запрос скрипта о вводе данных?


Читать дальше →
Всего голосов 77: ↑75 и ↓2+73
Комментарии60

Разработка веб-приложения для транскрибирования аудиозаписей с использованием Python, Streamlit и AssemblyAI

Время на прочтение13 мин
Количество просмотров11K
Автор статьи, перевод которой мы публикуем сегодня, хочет рассказать о том, как, пользуясь Streamlit, создать веб-приложение, которое позволяет пользователям транскрибировать аудиозаписи, выгружая их на специальный сервер. В проекте будет использован API AssemblyAI, позволяющий преобразовывать звукозапись речи в текст. Интерфейс проекта, достаточно строгий, будет украшен анимациями.

Приложение, о котором тут пойдёт речь, можно испытать здесь.

image

Веб-приложение в действии
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии2

Создание Discord-бота, используя библиотеку discord.js | Часть №1

Время на прочтение12 мин
Количество просмотров190K

Введение


В этой статье я подробно расскажу о том, как работать с библиотекой discord.js, создать своего Discord-бота, а также покажу несколько интересных и полезных команд.

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

Начало работы


Если вы уже знакомы с приведёнными ниже материалами, — смело можете пролистать этот раздел.

Установка среды разработки
Для начала работы с кодом нам нужно установить среду разработки, это может быть:


… и так далее.

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

Для установки переходим по этой ссылке.


Выбираем свою операционную систему и запускаем скачивание.

Установка среды выполнения
Для создания бота мы используем среду выполнения node.js. Для её установки нам необходимо перейти на этот сайт.



На данный момент нас интересует версия долгосрочной поддержки (LTS), скачиваем её.

Установка полезных расширений
В Visual Studio Code присутствует возможность устанавливать расширения.
Для этого, кликните по отмеченной ниже иконке.



В открывшемся окне вписываем название название/идентификатор нужного нам расширения, после чего устанавливаем его.



Из полезных расширений могу отметить:

  1. Discord Presence — расширение, позволяющее отображать рабочую область и файл, в котором вы работаете в вашей игровой активности (функция работает только при использовании приложения Discord).

    Идентификатор расширения: icrawl.discord-vscode
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии21

Однобитный компьютер

Время на прочтение6 мин
Количество просмотров39K

Картинка для привлечения внимания:

Внимание! Под катом много картинок!

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

Читать далее
Всего голосов 113: ↑112 и ↓1+111
Комментарии54

Полезные трюки при работе с netcat

Время на прочтение3 мин
Количество просмотров190K
image

 
В данной статье я рассмотрю популярную сетевую утилиту netcat и полезные трюки при работе с ней.

Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии12

Домашний DPI, или как бороться с провайдером его же методами

Время на прочтение16 мин
Количество просмотров238K

Долгое время я терпел ограничения РосКомНадзора и соответствующие действия провайдеров по различным ограничениям доступа к сайтам - но с определённого момента устал, и начал думать как бы сделать так, чтобы было и удобно, и быстро, и при этом с минимумом заморочек после настройки... Хочу оговориться, что цель анонимизации не ставилась.

Вообще, эта проблема имеет несколько решений... Но я решил бороться с провайдером их же методом.

...При помощи NGINX!
Всего голосов 246: ↑245 и ↓1+244
Комментарии187

Всё, о чём должен знать разработчик Телеграм-ботов

Время на прочтение15 мин
Количество просмотров598K

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

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

Подробный гайд о том, как работать с ботами — под катом.

Читать далее
Всего голосов 127: ↑127 и ↓0+127
Комментарии73

Беспроводная мини погодная станция с e-paper экраном на батарейках

Время на прочтение4 мин
Количество просмотров21K
Приветствую всех читателей Habr! В своей сегодняшней статье хочу поделиться с вами своим новым устройством – датчиком температуры, влажности и давления с функцией предсказания погоды. Датчик работает на микроконтроллерах nRF52. Данный проект это логическое продолжение этого проекта. В новом датчике используется дисплей на электронных чернилах размером 2.9 дюймов. В датчике установлен сенсор BME280, так же есть место под установку датчиков SI7021, HTU21D. Работает от батареек CR2450. Может передавать данные в системы Умного Дома, так же может работать в режиме “без сети”.


Всего голосов 97: ↑96 и ↓1+95
Комментарии61

Разработка под Docker. Локальное окружение. Часть 1

Время на прочтение3 мин
Количество просмотров70K
Возможно, одна из самых основных причин почему мне нравится докер это то, что он позволяет избавиться от необходимости установки на компьютер различных сервисов. К их числу можно отнести и сам веб-сервер Apache или Nginx, базы данных и прочие компоненты инфраструктуры приложения. Вся инфраструктура прописана в конфигурационном файле docker-compose.yml и запускается одной командой вместе с вашим приложением. Все что нужно разработчику работающему с докером, это по сути сам докер и любимая среда разработки и ВСЕ!
Читать дальше →
Всего голосов 47: ↑38 и ↓9+29
Комментарии82

Скулятчер

Время на прочтение6 мин
Количество просмотров33K

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



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

Читать дальше →
Всего голосов 106: ↑106 и ↓0+106
Комментарии103

Китайский мозг, или в защиту Яровой

Время на прочтение4 мин
Количество просмотров24K
(не политика). В качестве эпиграфа хочется выбрать строфу “Видит горы и леса, Облака и небеса. Но не видит ничего, Что под носом у него” – впервые я ее прочитал у Стругацких в “Волны гасят ветер”. Ее говорил колдун с планеты Саракш, который понял, что земляне не видят кое-что важного у них самих на Земле. Стругацкие это вроде скопипастили у Хармса. Возможно это перевод. Но дело не в этом.

Мы часто обсуждаем, когда у нас будет полноценный ИИ. И пока до него довольно далеко. Разницу между “ребята готовы к обеду” и “цыплята готовы к обеду” ИИ еще плохо видит, потому что мало данных из внешнего мира. Это меняется, хоть и небыстро. Однако я утверждаю, что ИИ уже существует (хотя первая буква И — не верна). Мы просто смотрим не туда.


Читать дальше →
Всего голосов 51: ↑43 и ↓8+35
Комментарии167

Игра для программистов FuncBall

Время на прочтение3 мин
Количество просмотров8.9K
Многие, как и я, любят футбольные симуляторы и многие увлекаются программированием. Когда-то, в далёком 2004 году, наигравшись в ФИФУ я подумал, что было бы неплохо совместить два моих увлечения в одной игре, в которой игроки управлялись бы не вручную, а написанным для них скриптом. Этакая игра для программистов, а-ля «RoboCup Simulation Soccer», только на свой лад. Я тогда был начинающим программистом и написал уже несколько простеньких игр, но реализовать свою задумку в полной мере не смог, так как не придумал, как написать подходящий интерпретатор языка программирования игроков. Игр для программистов сейчас стало больше, но такую, как я хотел не нашёл, и спустя много лет и тонны написанного кода, я решил вернуться к своей давней задумке.

Игра получилась такой, как я и хотел — funcball.com.

игра для программистов FuncBall
Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии12

Обфускация JavaScript

Время на прочтение5 мин
Количество просмотров195K
В статье собраны всем известные методы и предельно извращенные. Эту статью я решил написать после недавнего прочтения поста в блоге Badass JavaScript и решил её дополнить своими находками.

Первый способ


Он всем известен — обфускация минимизаторами такими как JS Packer, JSmin, YUI Compressor, Closure compiler или можно просто пугуглить «JavaScript Obfuscator» и найдется ещё сто штук разных обфускаторов.
Они превращают существующий код
function MyClass(){
    this.foo = function(argument1, argument2){
        var addedArgs = parseInt(argument1)+parseInt(argument2);
        return addedArgs;
    }
    var anonymousInnerFunction = function(){
        // do stuff here!
    }
}

В какой-то такой вид:
function MyClass(){this.foo=function(c,b){var d=parseInt(c)+parseInt(b);return d};var a=function(){}};

Или такой:
var _0xd799=["\x66\x6F\x6F"];function MyClass(){this[_0xd799[0]]=function (_0xefcax2,_0xefcax3){var _0xefcax4=parseInt(_0xefcax2)+parseInt(_0xefcax3);return _0xefcax4;} ;var _0xefcax5=function (){} ;} ;

Или вот такой:
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4 0="3 5!";9 2(1){6(1+"\\7"+0)}2("8");',10,10,'a|msg|MsgBox|Hello|var|World|alert|n|OK|function'.split('|'),0,{}))

Но ничего не стоит его восстановить с помощью jsbeautifier.org либо просто убрать eval и получить исходный код, многое потеряем, но смысл кода восстановим. Ну и с первого взгляда мы видим, что перед нами JavaScript.

Все это были цветочки под катом жесткие методы обфускации.
Читать дальше →
Всего голосов 171: ↑165 и ↓6+159
Комментарии85

Автоматизация криптоторговли с Django и Celery

Время на прочтение4 мин
Количество просмотров12K

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


Trade

Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии2
1

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность