Как стать автором
Обновить
1
0

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

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

Bash-скрипты, часть 7: sed и обработка текстов

Время на прочтение9 мин
Количество просмотров605K
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

В прошлый раз мы говорили о функциях в bash-скриптах, в частности, о том, как вызывать их из командной строки. Наша сегодняшняя тема — весьма полезный инструмент для обработки строковых данных — утилита Linux, которая называется sed. Её часто используют для работы с текстами, имеющими вид лог-файлов, конфигурационных и других файлов.


Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии34

React.js: понятное руководство для начинающих

Время на прочтение19 мин
Количество просмотров433K
Автор статьи, перевод которой мы публикуем, считает, что, к несчастью, в большинстве из существующих руководств по React не уделяется должного внимания ценным практическим приёмам разработки. Такие руководства не всегда дают тому, кто по ним занимается, понимание того, что такое «правильный подход» к работе с React.

image

В этом руководстве, которое рассчитано на начинающих разработчиков, имеющих знания в области HTML, JavaScript и CSS, будут рассмотрены основы React и самые распространённые ошибки, с которыми может столкнуться программист, пользующийся данной библиотекой.
Читать дальше →
Всего голосов 30: ↑25 и ↓5+20
Комментарии17

Приложение на python kivy для разнообразия рациона питания. От кода и до получения .apk файла для Android

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

Изучаю python kivy и для себя решил написал маленькое приложение, чтобы разнообразить свое питание. Решил поделиться. Статья рассчитана на новичков в kivy. Приложение занимает около 100 строк кода.

Цель создания велосипеда приложения:

  1. Избежать частых повторений в питании. Чтобы не употреблять одно и то же блюдо слишком часто.
  2. Не забывать блюда, которые ел, потом забыл и годами к ним не возвращался, потому что банально не помнил. У меня такое бывает.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии15

Как ООО заплатить в 133 раза меньше налогов

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

Тема, которую сегодня хотелось бы осветить, довольно сложная и объёмная, поэтому пришлось потрудиться, чтобы представить её в более-менее наглядном и понятном виде. Те, кто доберётся до конца статьи, узнают ответ на вопрос в заголовке. Поверьте, там так оно и есть.
Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии12

Работаем в консоли быстро и эффективно

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

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

Читать дальше →
Всего голосов 88: ↑85 и ↓3+82
Комментарии117

«Для нас уже нет смысла использовать Retrofit»: об Android-разработке в Сбербанк Онлайн

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


У скольки российских приложений в Google Play написано «50 000 000+ установок»? Очевидно, что каждый такой случай — уникальная история со своей спецификой, так что было бы интересно поговорить с разработчиками. А когда у такого приложения ещё и оценка 4,6, это усиливает интерес.

Владимир Теблоев — один из людей, работающих над Android-приложением Сбербанк Онлайн. Весной, когда Сбербанк-Технологии участвовали в нашей конференции Mobius, он выступил там с докладом, а теперь мы решили расспросить Владимира об особенностях его работы.
Читать дальше →
Всего голосов 47: ↑39 и ↓8+31
Комментарии79

Открытый вебинар «Механизмы контейнеризации Linux»

Время на прочтение1 мин
Количество просмотров6.1K
Всем привет!

Делимся новым открытым уроком, который провёл Александр Румянцев — преподаватель курса «Администратор Linux». На вебинаре разбиралось современное состояние механизмов контейнеризации и контейнеризация cgroups и cgroups-based, как она реализована в ядре, что такое namespace и почему cgroups — это группы.


Ждём комментарии и вопросы тут или можете задать их преподавателям сегодня на дне открытых дверей.
Всего голосов 23: ↑21 и ↓2+19
Комментарии1

Iptables: немного о действии REDIRECT, его ограничениях и области применения

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

Данная заметка повествует о действии REDIRECT в iptables, его ограничениях и области применения.

Iptables и REDIRECT


Действие REDIRECT предназначено для перенаправления пакетов с одного набора портов на другой внутри одной системы, не выходя за пределы хоста.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии2

ДНК глазами программиста

Время на прочтение15 мин
Количество просмотров90K
От переводчика: Так как я не являюсь биологом, возможны неточности в переводе терминов (и не только :). Оригинал находится здесь.

Если ты – молоток, то во всём увидишь гвоздь


Это всего лишь размышления программиста о ДНК. Я не являюсь молекулярным генетиком.

Исходный код


Находится здесь. Это не шутка. Исходники можно просмотреть с использованием замечательного набора скриптов Perl под названием "Ensembl". Геном человека занимает приблизительно 3 гигабайта, которые можно сократить до 750 мегабайт, если отбросить шелуху. Немного печалит, что это всего лишь 2.8 браузеров Mozilla Firefox.

ДНК похожа скорее не на исходники на языке C, а на байт-код для виртуальной машины под названием «ядро клетки». Крайне сомнительно, что существуют исходники, которые можно скомпилировать в этот байт-код: то, что мы видим, – это всё, что у нас есть.
Читать дальше →
Всего голосов 115: ↑114 и ↓1+113
Комментарии309

Проблемы безопасности почты Mail.ru

Время на прочтение1 мин
Количество просмотров41K
Два года назад мной был написан несложный PHP-скрипт для формы обратной связи. Письма приходили на почту mail.ru. Как выяснил позднее, в скрипте была ошибка. В «From» я вставлял емэйл-адрес клиента (по сути, подделывал отправителя), однако письма приходили, и ладно.

Исходный код:

$email = $_POST['email'];
$headers .= "From: " . $email . "\r\n";

А не так давно заметил, что заявки перестали приходить… Проверил форму — не работает. Вызвало недоумение, ибо никто ничего не трогал, и два года всё работало нормально. По ходу экспериментов выяснилось, что если использовать такой код:

$email = "Сбербанк <help@sberbank.ru";
$headers .= "From: " . $email . ">>\r\n";

то можно совершенно спокойно подделывать любого отправителя (в данном случае Сбербанк).

image
Читать дальше →
Всего голосов 86: ↑57 и ↓29+28
Комментарии98

Сокеты в Python для начинающих

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

Предисловие


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



Что это


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

Существуют клиентские и серверные сокеты. Вполне легко догадаться что к чему. Серверный сокет прослушивает определенный порт, а клиентский подключается к серверу. После того, как было установлено соединение начинается обмен данными.

Читать дальше →
Всего голосов 75: ↑50 и ↓25+25
Комментарии28

Простой личный анонимайзер

Время на прочтение2 мин
Количество просмотров90K
В свете последних событий и вероятного будущего, нам всем может понадобиться удобная утилита, которая позволяет смотреть на Web глазами цивилизованного европейца, а лучше голландца. Это может быть нужно для проверки доступности сайта, обхода слишком навязанного геотрекинга, неуместного черного списка или для осуществления любой другой легитимной законной деятельности в интернетах, которую нам не позволяют в данной сети неправильно сконфигурированный шлюз или прокси-сервер.

Конечно, можно воспользоваться публичным анонимайзером, ТОРом или VPN'ом, но это не всегда удобно и не всегда возможно: например, публичный терминал в интернет-кафе или любой компьютер, на котором у нас нет прав, не позволит нам воспользоваться TOR'ом или VPN, а «анонимные прокси» вообще вещь в себе: никогда не знаешь как монетизирован именно этот хост. Личный анонимайзер же будет работать на любом устройстве и с большой вероятностью не будет заблокирован на бордере. Предлагаемый метод не отменяет TOR или VPN (или SSH), а дополняет их возможностью доступа с чужих хостов.

Нулевое необязательное требование: домен. Это около 10 долларов в год, в принципе не обязательно, но удобно и желательно.

Во-первых, нам понадобится личный экзит-поинт в нужной стране. К нашим услугам www.leaseweb.com, где всего за 9 евро в месяц можно пользоваться VPS'кой. Очень полезный в хозяйстве инструмент для многих нужд! На этом хосте должен быть настроен Apache и PHP, я опущу этот вопрос, так как он достаточно подробно освещен другими.

Во-вторых, нам понадобится скрипт, который будет показывать собственную адресную строку, искомый сайт во фрейме ниже и будет обладать другими полезными опциями вроде скрэмблера URL'ов, выкидывания всего embedded-хлама и кукисов, хранение кукисов на стороне сервера и т.п. Решений несколько, простое и работающее — Glype Proxy, который можно взять на glype.com.

Установка скрипта проста.
Читать дальше →
Всего голосов 91: ↑73 и ↓18+55
Комментарии46

Взлом каптчи файлообменника

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

Введение



В данной статье коротко рассказывается о процессе взлома captcha с ifolder.ru. Применение в процессе языка Python и сторонних библиотек. Применение алгоритма преобразований Хафа в составе библиотеки Open Computer Vision © Intel позволит нам избавиться от шума на изображении, простая в использовании и быстрая библиотека FANN (Fast Artificial Neural Network) сделает возможным применение искусственной нейронной сети для задачи распознавания образа.

Моя мотивация состояла, прежде всего, в том, чтобы попробовать язык Python. Как известно, лучший способ изучить язык — решить на нём какую-нибудь прикладную задачу. Поэтому параллельно описанию процесса обработки изображения я буду рассказывать о том, какие библиотеки и для чего я использовал.
Сломать мозг
Всего голосов 183: ↑178 и ↓5+173
Комментарии68

Простой классификатор на PyBrain и PyQt4 (Python3)

Время на прочтение12 мин
Количество просмотров34K
Изучая Python3, я портировал (как смог) библиотечку PyBrain. Об этом я уже писал здесь.
image
Теперь же я хочу немного «поиграть» с данной библиотечкой. Как я уже говорил в предыдущем посте, питон я только начал изучать, так что все написанное в этой статье не стоит воспринимать как Истину. Изучение — это путь, и он извилист.

Задачу поставим перед искусственной нейронной сетью (ИНС) весьма простую — классификацию, а именно: распознавание букв латинского алфавита.

Вроде бы классический пример, про него уже писали на хабре неоднократно: «Что такое искусственные нейронные сети?», «Нейронные сети и распознавание символов» и т.д.
Но моей целью стоит изучение питона на не самых простых примерах. Т.е. учимся сразу на сложном и незнакомом. Так мы найдем в два раза больше граблей, что позволит нам копнуть в глубины языка, разбираясь с «почему не работает?».

Под хабракатом вас ждёт: описание способа подготовки данных на PyQt4, использование модуля argparse, ну и конечно же PyBrain!
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии29

Декодирование капчи на Python

Время на прочтение12 мин
Количество просмотров80K
Это перевод и форма повествования от первого лица сохранена. Автор — Бен Бойтер, бакалавр информационных технологий в Университете Чарльза Стерта (CSU).


Большинство людей не в курсе, но моей диссертацией была программа для чтения текста с изображения. Я думал, что, если смогу получить высокий уровень распознавания, то это можно будет использовать для улучшения результатов поиска. Мой отличный советник доктор Гао Джунбин предложил мне написать диссертацию на эту тему. Наконец-то я нашел время написать эту статью и здесь я постараюсь рассказать о всем том, что узнал. Если бы только было что-то подобное, когда я только начинал…

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

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

У меня неплохо получалось — более 60% изображений было успешно разгадано из моей небольшой коллекции. Довольно неплохо, учитывая количество разнообразных изображений в интернете.

Читать дальше →
Всего голосов 72: ↑63 и ↓9+54
Комментарии65

Async/await: 6 причин забыть о промисах

Время на прочтение7 мин
Количество просмотров161K
Если вы не в курсе, в Node.js, начиная с версии 7.6, встроена поддержка механизма async/await. Говорят о нём, конечно, уже давно, но одно дело, когда для использования некоей функциональности нужны «костыли», и совсем другое, когда всё это идёт, что называется, «из коробки». Если вы ещё не пробовали async/await — обязательно попробуйте.

image

Сегодня мы рассмотрим шесть особенностей async/await, позволяющих отнести новый подход к написанию асинхронного кода к разряду инструментов, которые стоит освоить и использовать везде, где это возможно, заменив ими то, что было раньше.
Читать дальше →
Всего голосов 55: ↑48 и ↓7+41
Комментарии182

Простой парсинг сайтов с помощью SlimerJS

Время на прочтение2 мин
Количество просмотров68K
В виду отсутствия хорошего материала по парсингу с помощью скриптового браузера SlimerJS и наличия свободного времени решил написать небольшую статью.


Читать дальше →
Всего голосов 47: ↑41 и ↓6+35
Комментарии15

Web scraping при помощи Node.js

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

Это первая статья в цикле про создание и использование скриптов для веб-скрейпинга при помощи Node.js.


  1. Web scraping при помощи Node.js
  2. Web scraping на Node.js и проблемные сайты
  3. Web scraping на Node.js и защита от ботов
  4. Web scraping обновляющихся данных при помощи Node.js

Тема веб-скрейпинга вызывает всё больше интереса как минимум потому, что это неисчерпаемый источник небольших, но удобных и интересных заказов для фрилансеров. Естественно, что всё больше людей пытаются выяснить, что это такое. Однако, довольно трудно понять, что такое веб-скрейпинг по абстрактным примерам из документации к очередной библиотеке. Гораздо проще разобраться в этой теме наблюдая за решением реальной задачи шаг за шагом.


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


Цель этой статьи – показать весь процесс создания и использования такого скрипта от постановки задачи и до получения конечного результата. В качестве примера я рассмотрю реальную задачу вроде тех, какие часто можно найти, например, на биржах фриланса, ну, а в качестве инструмента для веб-скрейпинга будем использовать Node.js.

Читать дальше →
Всего голосов 23: ↑17 и ↓6+11
Комментарии44

Снова про WebDAV и Облако Mail.Ru

Время на прочтение2 мин
Количество просмотров101K
В каждой теме, касающейся Облака Mail.Ru, имеются комментарии — «когда будет WebDAV?» и родственное «Как подключить Облако Mail.ru как сетевой диск?». Судя по тому, что обещают уже несколько лет (хотя в облаке для бизнеса webdav имеется), бесплатные пользователи его не дождутся.

В общем, гора к Магомету не идёт, но и Магомет как-то не торопился, хотя, казалось бы, все для этого есть — и реализации API, и реализации webdav-серверов. Вполне логично было бы взять и то, и другое и объединить.
Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Комментарии94

Гарвардский курс CS50 «Основы компьютерных наук и искусства программирования»

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


Вот уже несколько месяцев специально для JavaRush мы переводим и озвучиваем самый популярный в мире университетский курс о CS50 — «Основы компьютерных наук и искусства программирования» (трейлер). Его уже много лет очно читают для студентов Гарварда и для воспитанников Йельского университета, а в последнее время ещё и заочно для многомиллионной аудитории интернета.
Это перевод самой новой версии курса, который стартовал осенью 2015 года. В курсе 24 лекции и постепенно мы переведём их все. Намедни мы перевели 15-ю лекцию, её вы найдёте под катом в списке всех переведённых на сегодняшний день лекций.

Что вы узнаете, прослушав этот курс:

  • Основы компьютерных наук и программирования;
  • Концепции алгоритмов и алгоритмичности мышления. Какие задачи можно решать с помощью программирования и каким образом;
  • Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
  • Основы языка программирования C и Scratch;
  • Основы баз данных и SQL;
  • Веб-разработка: основы CSS, HTML, JavaScript и PHP;
  • Основы подготовки презентации проектов по программированию.

Читать дальше →
Всего голосов 30: ↑26 и ↓4+22
Комментарии11

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность