Search
Write a publication
Pull to refresh
0
0
Артур @m4dn3ss

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

Send message

«Разгоняя голову», не перегрейтесь!

Reading time4 min
Views144K
Проблема недостаточной умственной работоспособности и утомления, как выяснилось, заботит очень многих. На «Хабре» нашлись граждане, которые, кто в шутку, кто всерьез советовали в комментариях амфетамины, прозак, ноотропил, гинкго, винпоцетин.

Уровень невежества некоторых «советчиков» зашкаливает. В этой заметке я расскажу о том, что не надо делать. О том, что надо делать, расскажу в следующей.
Читать дальше →

Эффективный способ повысить умственную работоспособность

Reading time13 min
Views222K
В прошлой заметке я писал о том, чего не стоит делать, если у вас проблемы с работоспособностью. В этой части я расскажу об эффективном способе, не требующем медикаментов. Медикаменты — это только поддержка, дополнение. Но способ этот требует организованности и силы воли, а потому так нелюбим большинством из нас.
Читать дальше →

Как получить инвайт на what.cd

Reading time3 min
Views107K
what.cd logo Как получить приглашение на торрент-трекер what.cd? What.cd — закрытый трекер с кучей музыки в хорошем качестве. Выпрашивать инвайт в форумах и популярных блогах в топиках «Инвайты на what.cd» с тысячей комментариев мне не по душе.

Есть простой официальный способ. Для этого надо знать английский язык, уметь пользоваться IRC и иметь представление об аудио-форматах и кодеках. Ну, и как пользоваться торрентами, конечно.

Кратко: чтобы получить инвайт надо подключиться к IRC-каналу #what.cd-invites на сервере irc.what.cd и пройти несложное собеседование.

Далее в деталях.
Читать дальше →

Поиск в строке. Реализация в CPython

Reading time4 min
Views8.3K
Довольно давно на одной из презентаций выпускников одной из так называемых ИТ-академий докладчика спросили о деталях реализации поиска подстроки в строке толи в Java, толи в .Net. Выпускник конечно не смог ничего вразумительного ответить, а я отложил вопрос в и без того длинный todo-лист.

Прошло время, Python стал для меня актуальней enterprise платформ, так что вашему вниманию разбор алгоритма поиска подстроки в Python.
Читать дальше →

Еще немного про P и NP

Reading time7 min
Views30K
image

Существует большая разница между задачами непростыми и задачами сложными. Задача может не иметь эффективных решений в самых худших случаях, но может оставаться легко решаемой для большинства случаев, или для случаев, возникающих на практике. Поэтому общепринятые определения сложности задач могут оказаться относительно бессмысленными в терминах реальной сложности, так как две задачи могут быть NP-полными, но одна при этом в большинстве случаев может решаться быстро, а другая нет. Как следствие, важную роль в теории сложности играет понятие «сложности в среднем» (здесь под «средним» понимается математическое ожидание времени решения).

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

Слушайте хабр по «радио»

Reading time1 min
Views563
На одном сайте, который мне внутренний голос нашептал одним воскресным утром, нашёл ссылку на RSS радио. В настройках помимо всего прочего есть и хабр, и тот самый сайт.
Мне понравилось.

Есть приложение для iPhone или iPad
image
Сделано в Центре речевых технологий.

Описание работы алгоритма Shift-OR для поиска подстроки в строке

Reading time3 min
Views8.3K
1. Вместо вступления.

Недавно пришлось разбираться в работе алгоритма Shift-Or, который позволяет найти подстроку в строке. По результатам этого разбора я и решил написать этот пост в надежде, что кому-то он поможет понять, как работает этот алгоритм, быстрее чем мне.

Собственно, главное отличие алгоритма от, например, «наивного сравнения», заключается в том, что в его основе лежит логические операции, а именно логическое умножение (оно же AND, оно же конъюнкция).
Читать дальше →

std::stringstream и форматирование строк

Reading time3 min
Views251K
Ввод и вывод информации — критически важная задача, без выполнения которой любая программа становится бесполезной. В C++ для решения данной задачи традиционно применяются потоки ввода-вывода, которые реализованы в стандартной библиотеке IOStream.

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

В библиотеке IOStream есть также класс stringstream, который позволяет связать поток ввода-вывода со строкой в памяти. Всё, что выводится в такой поток, добавляется в конец строки; всё, что считыватся из потока — извлекается из начала строки.

Он позволяет делать весьма забавные вещи, например, осуществлять преобразование типов:

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

Как закрывают ботнеты

Reading time7 min
Views49K
В последнее время о ботнетах в рунете говорят очень много. В основном это связано с DDoS-атаками на известные и посещаемые ресурсы. Ниже мы обсудим опыт крупных компаний в области борьбы с этой напастью.

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

О сетях: всего понемногу

Reading time7 min
Views41K
Недавно у нас были небольшие обучающие курсы для повышения нашей компетенции в сетевой части нашей инфраструктуры. Основную идею этих курсов, покрывающую OSPF/BGP/MPLS я тут повторять не буду ибо:
  • Пока ещё явно недостаточно компетентен.
  • Есть много более объективные ресурсы рассказывающие об этих темах.

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

Ссылки на вики зачастую более примечательны секциями «External links» и «References» нежели самим содержанием

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

Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install

Reading time5 min
Views177K
К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install.
Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя.

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

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

Пишем консольный переводчик для *nix на Python

Reading time4 min
Views17K
Здравствуйте. Наверняка Вам встречались незнакомые английские слова или фразы, и Вам постоянно приходилось лезть в браузер, открывать сайт с онлайн переводчиком и переводить, при этом думая как хорошо было бы, если это было реализовано бы в виде софта под *nix.
Читать дальше →

Ещё более современный C++

Reading time6 min
Views49K
“C++11 feels like a new language.” – Bjarne Stroustrup

Не так давно Герб Саттер открыл на своём сайте новую страничку — Elements of Modern C++ Style, где он описывает преимущества нового стандарта и то, как они повлияют на код.
А под катом прячется вольный перевод содержимого этой странички.

Google AI Challenge. Как написать своего бота. Часть 1, 2

Reading time5 min
Views3K
Этот топик — перевод первых двух частей руководства по написанию своего бота для Google AI Challenge.
Весь код написан на языке Python.


Шаг 1: Как избежать столкновений


План

Чтобы муравьи не сталкивались надо:
1) Предотвратить перемещение одного муравья на другого;
2) Предотвратить перемещение двух муравьев в одну и ту же точку;
3) отслеживать информацию о местонахождении всех наших муравьёв.
Читать дальше →

Автоматизация работы интернет-радио на Linux

Reading time18 min
Views33K
Привет, `whoami`.

В этом посте я расскажу тебе об одном из методов автоматизации интернет-вещания – не самом надежном, но самом бюджетном. Сразу предупреждаю, что эта система заточена на использование ее под Linux, хотя с помощью знакомого многим «столярного инструмента», можно и под Windows реализовать. Эта статья расчитана на начинающих IT-шников, поэтому многие моменты я постарался «разжевать». Как у меня это получилось, решать тебе, мой дорогой читатель, но если мне удалось заинтересовать тебя, прошу под кат.
Читать дальше →

Вычисления с фиксированной точкой. Основные принципы (ч.1)

Reading time11 min
Views96K

Введение или зачем этот топик


Читая Хабрахабр, я натолкнулся на два топика, «выводящие на чистую воду» вычисления с плавающей запятой.
В одном из них достаточно подробно и качественно дана выжимка из стандарта IEEE754 и основные проблемы при вычислениях с плавающей запятой, другой — короткий топик-заметка про то, что не все так хорошо при вычислениях на ПК. При этом даются рекомендации в случае, когда важна математическая точность результата, использовать целочисленные вычисления, «фиксировать запятую» или как минимум проверять результаты, выдаваемые платформой (компилятор + процессор).
Несмотря на то, что советы дельные, понять, как использовать целочисленные вычисления там, где до этого была плавающая запятая, не так просто, особенно без математической подготовки. Достаточно занимательна в этом смысле попытка одного из «хабровчан» разобраться с фиксированной точкой методом экспериментов.
Данный топик — краткое введение, которое должно дать представление о вычислениях с фиксированной точкой. Математика в данной статье не должна никого напугать — все очень примитивно. Сразу прошу простить: среди моих знакомых устоявшимся выражением является именно «фиксированная точка» (от англ., fixed-point), а не «запятая», поэтому я буду придерживаться именно этого термина.
Читать дальше →

Siri отпирает дверь

Reading time1 min
Views5.3K
Вы подходите к запертой двери своей квартиры и говорите в телефон: «Скажи двери открыться!», ждёте около 15 секунд — и замок открывается. Такие «чудеса» технологий вполне реальны с использованием Siri, SMS и WiFi-замка с самодельной схемой Arduino.



Американские разработчики опубликовали инструкцию, как это сделать. Система отпирает дверь через Siri или нажатием кнопки на телефоне, через SMS или веб-приложение. Кроме того, можно в удалённом режиме проверять открытость/закрытость двери, получать SMS, если кто-то стучится в дверь, и отпирать дверь без ключа секретным стуком.
Читать дальше →

Как понять почему упал сервер не подключая к нему монитор и клавиатуру?

Reading time2 min
Views13K
Так бывает что сервер зависает, но к нему не подключена ни клавиатура, ни монитор.

У меня нет лишнего монитора, и обнаружив, что сервер не отвечает по сети,
снимать монитор с моего компьютера и подключать к серверу в кладовке нет никакого желания и сил.

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

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

Как я собрал первый аналоговый клиент для твиттера

Reading time4 min
Views15K
Однажды у нас с друзьями появилась идея, почему бы не сделать так, чтобы на старом дисковом телефоне можно было набрать какое-то сообщение и отправить его. А и правда, подумал я, тем более мне давно хотелось сделать что-нибудь на базе Arduino, ведь платформа доступная и простая в изучении. Да и идея с вдыханием новой жизни в винтажный телефонный аппарат показалась привлекательной. В результате получился Tweephone.

Небольшая видео-демонстрация, а ниже расскажу о процессе создания.


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

На Хабре есть ещё «торт», несмотря на «сыр»

Reading time3 min
Views653
Отличная весть для всех использующих дополнительные скрипты и стили, наработанные за последние год-два (2010-2011), пока существовала старая вёрстка Хабра. Оказывается, есть страницы, не тронутые разработчиками — просто они существовали под другим адресом!

Итак, старая «Главная» — это habrahabr.ru/all. Содержит блоги тематические + блоги компаний, в точности как в традиционном Хабре.
Cтарая «Все — новые» — это habrahabr.ru/all/new. Содержит блоги тематические + блоги компаний, захабренные и отхабренные (т.е. все) за последние сутки. (Работают только при авторизации.)

Не менее важно в этих страницах то, что дизайн их не затронут нововведениями, поэтому все наработанные скрипты и стили множества (10-15) разработчиков продолжат работать на этих страницах. В противном случае, им придётся срочно, в пожарном порядке приспосабливать их к новой вёрстке.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity