Search
Write a publication
Pull to refresh
23
0
SinTeZoiD @SinTeZoiD

User

Send message

Введение в функциональное программирование на Python

Reading time10 min
Views154K
Рассуждая о функциональном программировании, люди часто начинают выдавать кучу «функциональных» характеристик. Неизменяемые данные, функции первого класса и оптимизация хвостовой рекурсии. Это свойства языка, помогающие писать функциональные программы. Они упоминают мапирование, каррирование и использование функций высшего порядка. Это приёмы программирования, использующиеся для написания функционального кода. Они упоминают распараллеливание, ленивые вычисления и детерменизм. Это преимущества функциональных программ.

Забейте. Функциональный код отличается одним свойством: отсутствием побочных эффектов. Он не полагается на данные вне текущей функции, и не меняет данные, находящиеся вне функции. Все остальные «свойства» можно вывести из этого.

Нефункциональная функция:

a = 0
def increment1():
    global a
    a += 1


Функциональная функция:

def increment2(a):
    return a + 1


Вместо проходов по списку используйте map и reduce
Читать дальше →

О возможностях RAW для новичков

Reading time9 min
Views115K
Камеры и разнообразнейшие мобильные гаджеты, умеющие фотографировать, уже стали привычными предметами повседневности. Кому сейчас придёт в голову, например, переписывать какой-то нужный текст, когда можно просто достать смартфон и отщёлкать нужные страницы? Зачем пытаться объяснить на словах, как выглядит что-то, если можно это что-то отснять и потом просто предъявить фото на планшете? Сегодня фотографировать не умеют разве что пылесосы — и то не факт, что скоро производители не научат делать это и их тоже. Вон, камеры, не требующие питания, уже сделали.



Совершенно закономерным этапом совершенствования цифровой техники стал тот факт, что формат RAW вырвался из рамок профессиональных зеркальных фотоаппаратов и стал появляться и в «мыльницах», компактах и даже в смартфонах/планшетах. И если вы являетесь обладателем девайса, поддерживающего функцию съёмки в RAW, но не знаете, что это и с чем это едят — вам под кат. Формат RAW — довольно интересная и дающая массу творческих возможностей штука, хотя и требующая умения с собой обращаться…

Пост расчитан на новичков и тех, кто совершенно не в теме RAW-файлов. Любители фотографии вряд ли найдут здесь для себя что-либо новое, но могут помочь новичкам в комментариях. ;)

Achtung! Под катом тяжеловесные GIF'ки.
Эх, куда делись полароиды...

Тест бесплатных программ для восстановления данных. Версия читателей Хабра

Reading time7 min
Views95K
Приветствую всех Хабровчан!

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

  1. R.Saver 2.8
  2. Handy Recovery 5.5
  3. GetDataBack 1.0
  4. PhotoRec/TestDisk 7.0
  5. RecoveRx 3.0
  6. DMDE 2.10.2
  7. Zero Assumption Recovery 9.2
  8. Active@ File Recovery 14

Мы протестировали их. Результаты тестов ниже.

Внимание! Много скриншотов.

UPD Добавлены тесты еще двух утилит.
Читать дальше →

Главное меню Redmine

Reading time2 min
Views21K
Сегодня возникло желание продолжить цикл статей о Redmine, о том, как мы используем эту систему и что сделали в ней нового. Какие в ней есть проблемы, и как мы их решили.

Речь пойдет о главном меню Redmine, о полоске со ссылками, которая открывает доступ к основным функциям системы.

Какие с ней есть проблемы!? Да по началу никаких. Выглядит она примерно вот так и вполне решает свои задачи. Но это не совсем так.


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

Почему не RemoteFX, а также подробнее о технологиии NVIDIA GRID VGPU

Reading time11 min
Views50K
Увеличение количества рабочих мест на предприятии и рост инфраструктуры ИТ в целом рано или поздно заставляет задуматься о ряде вопросов, связанных с более грамотным построением самой ИТ-инфраструктуры, нацеленной на решение следующих задач, стоящих перед сотрудниками ИТ-отдела:
  1. сокращение затрат на создание полноценных рабочих мест;
  2. создание более удобного механизма администрирования рабочих мест сотрудниками ИТ отдела и, как следствие, сокращение времени на выполнение тех или иных операций, связанных с технической поддержкой пользователей;
  3. реализация возможности резервного копирования и быстрого восстановления данных (или рабочих мест целиком).

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

2,5 млн.просмотров — неплохо поработали вроде бы? Пора идти дальше

Reading time3 min
Views20K
Все хорошее когда-нибудь заканчивается. Сегодня последний день нашего корпоративного блога на Хабре. Решили переехать на свой отдельный блог (осторожно, там может всплыть окно — ненавязчивое, но тем не менее!).

Честно говоря, не знаем, принято ли писать прощальные посты в корпоративных блогах Хабра, но решили написать. Просто хотим сказать СПАСИБО Хабру и всем, кто его читает. Отдельное спасибо поклонникам блога — у нас сложилось прямо небольшое сообщество. 2,300 человек — это сила!

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

Немного статистики, чтобы подвести черту под этим большим куском нашей жизни (метрики выбраны из интереса):
  • Опубликовано статей: 81
  • Общее количество просмотров: 2,598,237
  • Рейтинг статей: 76 позитивных, 5 негативных, 1 была пристрелена )
  • Суммарный рейтинг статей: 2,134
  • Средний рейтинг статей: +26
  • Максимальный рейтинг статьи: +177

Метрики никогда не были самоцелью, но сейчас смотришь — вроде и неплохо мы с вами поработали, а? Под катом:
  • 12 самых популярных статей блога Стратоплана, суммарно набравшие более 1,000,000 просмотров
  • Причины ухода и где нас можно найти

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

Централизованный сбор и обработка журналов печати Windows

Reading time12 min
Views64K
В небольших офисах далеко не всегда используются сетевые принтеры и МФУ, поэтому получить статистику использования печатающих устройств получить достаточно сложно. Тем более, если это требуется произвести с минимальными затратами. Такие данные смогут помочь определить наиболее активно используемые устройства, оценить нагрузку на них и принять своевременные решения по закупке расходных материалов, техническом обслуживании или даже замене на более экономичные и производительные. Данную задачу возможно решить без дополнительного ПО используя встроенные средства управления журналами Windows и скриптом на Powershell.
Читать дальше →

Играем мускулами. Методы и средства взлома баз данных MySQL

Reading time10 min
Views73K


MySQL — одна из самых распространенных СУБД. Ее можно встретить повсюду, но наиболее часто она используется многочисленными сайтами. Именно поэтому безопасность базы данных — очень важный вопрос, ибо если злоумышленник получил доступ к базе, то есть большая вероятность, что он скомпрометирует не только ресурс, но и всю локальную сеть. Поэтому я решил собрать всю полезную инфу по взлому и постэксплуатации MySQL, все трюки и приемы, которые используются при проведении пентестов, чтобы ты смог проверить свою СУБД. 0day-техник тут не будет: кто-то еще раз повторит теорию, а кто-то почерпнет что-то новое. Итак, поехали!
Читать дальше →

Хроники лаборатории: крыса в полимерном шлеме, спектральный анализ банкой чипсов и синяя изолента

Reading time10 min
Views48K

Знакомьтесь — подопытная крыса Теодор-младший.

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

Подсчет себестоимости часа разработки программного обеспечения

Reading time4 min
Views150K
Сегодня я расскажу о больной теме как для покупателей программного обеспечения, так и для провайдера этой услуги – себестоимости разработки. Понятно, что сейчас не самое лучшее время для того, чтобы разбрасываться бюджетами. Только это не значит, что производители должны работать себе в убыток. Многие говорят о жадности предпринимателей, но я вам вот что скажу: нет ничего постыдного в том, чтобы делать честный бизнес и адекватно считать свои косты.

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

Удаленный запуск в PyCharm Community Edition

Reading time4 min
Views28K
PyCharm — самая удобная, на мой взгляд, IDE для Python'a от авторов великолепного PhpStorm. В отличие от средства разработки на PHP, имеет бесплатную версию с несколько урезанным функционалом, в частности без шикарного модуля для запуска и отладки скриптов на удаленном сервере. Тем не менее, стандартных возможностей хватает и для создания настольных windows-приложений, и для скриптинга, и для серверного кода.

Критичной эта особенность стала в тот момент, когда мне захотелось писать скрипты на ПК и получать результат их выполнения на Raspberry Pi без копирования и запуска вручную. Дальше мой рецепт для Windows 8.1 (только запуск).
Читать дальше →

HP OpenStack Helion – первое знакомство

Reading time6 min
Views15K
Несмотря на растущую популярность облачных технологий, только небольшая часть компаний к настоящему времени перевела всю ИТ-инфраструктуру в частное или публичное облако. Помимо рисков для безопасности, применение использующих закрытую архитектуру публичных облаков означает полную зависимость от провайдера и серьезные проблемы при попытке компании перенести свои приложения и данные к другому «облачному» провайдеру. В то же время далеко не все даже крупные предприятия располагают высококвалифицированными ИТ-специалистами, способными спроектировать и быстро развернуть частное облако, а также необходимыми для его работы серверами и системами хранения. В последнее время многие предприятия рассматривают вариант использования гибридной модели облака, т.е. переноса критически важных приложений и их данных в частное облако, а остальных приложений – в публичное. Главная проблема при таком подходе – это обеспечение совместимости публичного и частного облаков, что практически невозможно реализовать, если каждое облако построено на базе своей закрытой фирменной архитектуры.



Стремясь уйти от использования закрытых проприетарных технологий при построении облаков, HP сделала ставку на начатый в 2010 году в рамках Open Source проект OpenStack, который согласно его сайту openstack.org нацелен «на создание облачной операционной системы, управляющей большими пулами вычислительных ресурсов, ресурсов хранения и сетевых ресурсов дата-центров. Управление всеми этими ресурсами осуществляется с помощью централизованной консоли администратора, а пользователи могут самостоятельно получать доступ к этим ресурсам с помощью Web-интерфейса.

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

Быстрое обнаружение поддерживаемых SNMP-устройством MIB-модулей

Reading time5 min
Views22K
При внедрении систем мониторинга и управления IT-инфраструктурой часто приходится сталкиваться с «нестандартными» устройствами. Нередко про такое устройство наверняка известно только то, что оно поддерживает SNMP. Подключение его к проекту придется начать с ответа на вопрос о том, какую информацию о себе оно предоставляет. Обычно для этого проводится полный опрос устройства, и полученные данные анализируются на предмет выявления полезной информации… Но тут, как говорится, есть нюансы. В этой заметке я расскажу об одном таком — о разработанном нами алгоритме быстрого определения «поддерживаемых» устройством MIB-модулей.
Читать дальше →

Checker — простой способ узнать, все ли в порядке с вашими вещами

Reading time2 min
Views15K


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

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

Как я сделал тренажер английского, которым пользуется не только моя мама

Reading time7 min
Views50K
Я расскажу о том, как мы с releu придумали, сделали и развиваем сервис мини-уроков английского языка, которым пользуются уже 4000 человек каждый день. Для затравки рост числа активных пользователей:

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

Централизованый сбор Windows event логов, без установки агента, с последующей визуазизацией средствами ELK

Reading time6 min
Views49K
Задача по централизованой обработке логов достаточно просто формулируется и возникает, когда требуется отслеживать работу большого количества серверов. Думаю, не стоит упоминать о том, что из логов можно получать массу информации о жизнедеятельности и самочувствии систем. О том, что писать и читать логи столь же важно как и уметь писать программы.

Соответственно для реализации такой системы перед администратором ставятся задачи: во-первых, каким образом эти логи собирать, во-вторых, каким образом с ними удобно и централизованно работать. Благодаря достаточно развитой связке ELK (Elasticsearch + Logstash + Kibana), уже не раз описанной на Хабре, у администратора имеются инструменты для удобного поиска и отображения всей присутствующей в логах информации. Поэтому ответ на вторую задачу имеется изначально, и остается лишь решить задачу по сбору логов.

Так как в моем случае требованием к системе было отсутствие клиента на серверах, и то, что логи требовалось вытаскивать с Windows-серверов, то в качестве инструмента сбора был выбран родной для Windows — powershell.
Исходя из этого была составлена следующая модель сбора и отображения информации из логов: логи удаленно собираются с серверов powershell-скриптом, после чего складываются в виде файлов на хранилище, далее средствами ELK (Elasticsearch + Logstash + Kibana) происходит их обработка и отображение.

Пример работы всей связки представлен на изображении:


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

Как работает мозг?

Reading time8 min
Views120K
Этот пост написан по мотивам лекции Джеймса Смита, профессора Висконсинского университета в Мадисоне, специализирующегося в микроэлектронике и архитектуре вычислительных машин.

История компьютерных наук в целом сводится к тому, что учёные пытаются понять, как работает человеческий мозг, и воссоздать нечто аналогичное по своим возможностям. Как именно учёные его исследуют? Представим, что в XXI веке на Землю прилетают инопланетяне, никогда не видевшие привычных нам компьютеров, и пытаются исследовать устройство такого компьютера. Скорее всего, они начнут с измерения напряжений на проводниках, и обнаружат, что данные передаются в двоичном виде: точное значение напряжения не важно, важно только его наличие либо отсутствие. Затем, возможно, они поймут, что все электронные схемы составлены из одинаковых «логических вентилей», у которых есть вход и выход, и сигнал внутри схемы всегда передаётся в одном направлении. Если инопланетяне достаточно сообразительные, то они смогут разобраться, как работают комбинационные схемы — одних их достаточно, чтобы построить сравнительно сложные вычислительные устройства. Может быть, инопланетяне разгадают роль тактового сигнала и обратной связи; но вряд ли они смогут, изучая современный процессор, распознать в нём фон-неймановскую архитектуру с общей памятью, счётчиком команд, набором регистров и т.п. Дело в том, что по итогам сорока лет погони за производительностью в процессорах появилась целая иерархия «памятей» с хитроумными протоколами синхронизации между ними; несколько параллельных конвейеров, снабжённых предсказателями переходов, так что понятие «счётчика команд» фактически теряет смысл; с каждой командой связано собственное содержимое регистров, и т.д. Для реализации микропроцессора достаточно нескольких тысяч транзисторов; чтобы его производительность достигла привычного нам уровня, требуются сотни миллионов. Смысл этого примера в том, что для ответа на вопрос «как работает компьютер?» не нужно разбираться в работе сотен миллионов транзисторов: они лишь заслоняют собой простую идею, лежащую в основе архитектуры наших ЭВМ.

Моделирование нейронов


Кора человеческого мозга состоит из порядка ста миллиардов нейронов. Исторически сложилось так, что учёные, исследующие работу мозга, пытались охватить своей теорией всю эту колоссальную конструкцию. Строение мозга описано иерархически: кора состоит из долей, доли — из «гиперколонок», те — из «миниколонок»… Миниколонка состоит из примерно сотни отдельных нейронов.



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

Systemd за пять минут

Reading time4 min
Views686K
Наша компания занимается администрированием веб-серверов на базе CentOS. Довольно часто наши клиенты используют веб-приложения на базе python, ruby или java. Для автозапуска подобных приложений есть готовые шаблоны для написания стартап-скриптов. Но прогресс не стоит на месте, вышел уже второй релиз CentOS 7 и, следуя старой традиции «не ставить dot-zero релизы на продакшен», мы начинаем предлагать клиентам сервера на базе CentOS 7.1 (1503).

В CentOS7, так же как и в его родителе RHEL7, используется systemd — менеджер системы и служб для Linux, совместимый со скриптами инициализации SysV и LSB. systemd обеспечивает возможности агрессивной параллелизации и много всего прочего.

image

Огромный монстр с множеством возможностей, гибкими настройками и мегабайтами документации…

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

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

Reading time4 min
Views37K
Здравствуйте, коллеги!

Хочу снова поделиться интересным случаем решения проблемы, и сэкономить вам время и нервы на её решении. Принесли мне тут на днях для реанимации ноутбук вот с такими же симптомами:



Сразу сделаю отступление — указанный в описании видео метод реанимации в данном случае не помог совершенно никак. Почему — описано ниже.

Предыстория проста: работали себе пользователи на ноуте спокойно, ничего страшного не делали. Система предложила обновиться до 8.1 — согласились. Система начала обновляться, ушла на перезагрузку и на этом всё. Неустранимый BSOD с кодом ошибки «ACPI_BIOS_ERROR». До меня ноутбук уже таскали к местному знатоку, он попробовал всё, что смог навскидку проверить, после чего развел руками и отправил ко мне, потому что в придачу к стабильному BSODу ноутбук категорически отказывался реагировать на горячие клавиши входа в меню UEFI и/или выбора загрузочного устройства. Совсем, абсолютно. При этом и с внешних устройств грузиться даже не пытался, упорно запускаясь с внутреннего винта и разумеется снова уходя в бесконечное кольцо попыток загрузки.

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

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity