Обновить
-4
@andmerk93read⁠-⁠only

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

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

Сервер отчетов на django

Время на прочтение18 мин
Охват и читатели20K
Доброго времени суток.

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

Вначале наш отдел делал отчеты,
— Принимая задачи по outlook
— Составляя sql-запрос
— Отправляя результаты заказчику в xls
— В лучшем случае, сохраняя sql-код куда-то в папку (а иногда и не сохраняя)

Но это было скучно и неинтересно. Так появилось простейшее приложение на PHP,
в котором каждый отчет был представлен в виде php-файла с одним классом, имеющим единственный (помимо конструктора) метод show()

В таком виде, система прожила 5,5 лет, за которые мной и еще одним человеком было написано более 500 различных отчетов.
В процессе появился опыт и стало понятно, что многое (если не все) сделано не так, да и PHP уже не устраивал.

Сервер отчетов был переписан на django, где была «админка» и код приложения уже не правился.
В процессе работы снова накопилось несколько мыслей,
в итоге сервер был снова переписан.

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

Это рабочий инструмент, который вы можете (если захотите) использовать в работе,
который нам использовать просто нравится.

Итак, поехали

Простой монитор системы на Flask

Время на прочтение4 мин
Охват и читатели16K
Привет, Хабр!

Недавно возникла необходимость сделать простой и расширяемый монитор использования системы для сервера на Debian. Хотелось строить диаграммы и наблюдать в реальном времени использование памяти, дисков и тп. Нашел много готовых решений, но в итоге сделал скрипт на python + Flask + psutil. Получилось очень просто и функционально. Можно легко добавлять новые модули.


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

Немного об электродвигателях

Время на прочтение11 мин
Охват и читатели27K

Все, кто более-менее знаком с электротехникой, знают, насколько это консервативная сфера: большинство законов, принципов (и даже устройств!) были разработаны чуть ли не сто, а то и более лет назад! 

Тем не менее, иногда даже в такой консервативной сфере случаются серьёзные прорывы и, одному из них, многие из нас, были свидетелями: на рубеже между 1980 и 1990 годами благодаря открытию и широкому внедрению редкоземельных магнитов  NdFeB (неодим-железо-бор) , SmCo (самарий-кобальт) произошла тихая революция в электродвигателях, где, благодаря таким магнитам удалось кардинально улучшить их характеристики: в те годы даже ходила поговорка, что «электродвигатель никогда не будет летать», из-за большого веса старого типа двигателей (особенно это поговорка касалась малой, беспилотной авиации), а повсюду властвовали исключительно двигатели внутреннего сгорания. 

И вот, нынешнее поколение уже даже, наверное, и не представляет, что «а разве когда-то было иначе?», видя, как лавинообразно распространяется беспилотная авиация, дроны. 

В свете всего этого, имеет смысл ещё раз взглянуть на историю электродвигателей, как таковых…

Читать далее

Дефицита нет, платить не нужно

Время на прочтение14 мин
Охват и читатели97K

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

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

Я берусь доказать, что основной тезис ошибочен. В РФ нет дефицита кадров. 

Читать далее

Использование Lua скриптов в .NET с LuaInterface

Время на прочтение4 мин
Охват и читатели42K
Привет, Хабрахабр!

Этот небольшой пост родился после того, как я решил узнать, как можно запускать скрипты Lua совместно с игрой на C# (либо на другом .NET-языке). с использованием библиотеки LuaInterface. Я был впечатлен легкостью этого интерфейса по сравнению с lua.h на C++

image

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


C# на приличном уровне, иметь понятие об основах программирования, а также о подключении ссылок в проекте на Visual Studio

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

Реверс-инжиниринг веб-сайтов для самых маленьких

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели9.1K

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

Перейти к статье

Схемы электрические. Типы схем

Время на прочтение4 мин
Охват и читатели823K
КДПВ


Привет Хабр!
Чаще в статьях приводят вместо электрических схем красочные картинки, из-за этого возникают споры в комментариях.
В связи с этим, решил написать небольшую статью-ликбез по типам электрических схем, классифицируемых в Единой системе конструкторской документации (ЕСКД).
Читать дальше →

Доктор Алан Кей о смысле «объектно-ориентированного программирования»

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели12K

Оригинал

В 2003 году Алан Кей, признанный автор термина «объектно-ориентированное программирование», ответил на вопросы исследователя Штефана Рама. В этом письме он раскрывает первоначальный замысел ООП, который значительно отличается от того, чему большинство из нас учат сегодня. Публикуем перевод этого исторического документа.

Читать далее

Как мир вернулся в «классический веб» — взлет и падение эпохи мобильных приложений

Время на прочтение7 мин
Охват и читатели23K

Помните, одно время тематические площадки заполонили статьи вида: «Я устал от [плохих] приложений для изучения английского, поэтому сделал своё» или «Я устал от [неправильных] трекеров продуктивности, поэтому создал собственный»? В реалиях современных аппсторов заголовок можно сократить до: «Я устал».

Статистика говорит, что app fatigue is real. А мы в Beeline Cloud решили посмотреть, как менялось отношение к приложениям — от «эры пост-ПК» до настоящего времени.

Читать далее

Страх и ненависть в RouterOS: что такое сетевое соединение в ядре Linux (часть 1 — теория)

Время на прочтение6 мин
Охват и читатели41K

В статье рассмотрено понятие «соединение» для TCP и UDP протоколов в ядре операционной системы Linux на примере работы оборудования MikroTik. Дополнительно рассматриваются особенности работы технологии NAT в указанном контексте. Материалы носят в основном теоретический характер и предназначены для людей, тонко настраивающих Firewall, Qos и маршрутизацию, где им придётся непосредственно работать с рассматриваемыми connections.

В этой части статьи подробно описана сущность сетевого соединения глазами ядра маршрутизатора. В практической части закрепим информацию в результате рассмотрения работы прикладного протокола DNS через подсистемы RouterOS. В заключительной части речь пойдёт о диаграмме потока пакетов, при работе с которой важно понимать сущность рассматриваемого сетевого соединения, а также о не документированной в явном виде особенности работы NAT. Материала достаточно много, и чтобы читатель не потерял смысловую нить к концу статьи, она разделена на 3 части: теория, практика и особенность NAT.
Цикл статей не предназначен для новичков и может их только запутать. Полагаю, что читатель хорошо знаком с предметом разговора.
Читать дальше →

Как я базы 1С в Германии прятал

Время на прочтение6 мин
Охват и читатели62K

image alt text


Когда руководство переживает за свои данные (как бы не попали куда не следует), то это или к изучению шифрования, или к покупке кислоты для диска, или к поиску заморских ЦОД. Если выбор пал на перенос сервера подальше из страны, то возникает целый ворох неочевидных проблем с его использованием остальным офисом. В статье будет про сценарий переноса 1С в европейский дата-центр и про настройку "самонаводящегося" IPSec.


Ведь дьявол кроется в деталях.

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

Проданы IBM: история двух компаний

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели6.4K

Я наткнулся на эту статью, когда проходил практику в IBM Almaden Research Center. Женщина, сдававшая мне комнату в Сан‑Хозе, в прошлом сотрудница IBM, время от времени получала небольшую бумажную газету под названием «Think twice!». Я даже не уверен, какой у неё был тираж. Сто экземпляров? Двести? Но статья настолько мне понравилась, что я не поленился и вручную перепечатал её. 20 лет я прятал этот текст в самых тайных папках, перенося с одного компьютера на другой (как те золотые часы, которые носили в своих задних проходах герои фильма «Криминальное чтиво»), и сегодня решился наконец выложить его перевод на всеобщее обозрение. Если верить гуглу, то я — единственный в мире обладатель этого текста.

Желаю приятного прочтения.

Подумай дважды!

Читать далее

Паттерны проектирования в Python, о которых следует забыть

Время на прочтение8 мин
Охват и читатели19K

Попробуйте поискать в Интернете «Паттерны проектирования на Python» — и получите целую простыню туториалов, демонстрирующих, как в точности воспроизвести на Python паттерны проектирования из книги «Банды четырёх». Там же будут диаграммы классов, иерархии фабрик и столько шаблонного кода, что выхлопа хватит, чтобы отопить маленькую деревню. Так вам внушают, будто вы пишете «серьёзный» код. Умно. Профессионал ьно. Готово для корпоративного использования.

Но вот в чём проблема: большинство из этих паттернов решают проблемы, которые в Python просто отсутствуют. Паттерны разрабатывались для таких языков как Java и C++, где для выполнения самых базовых вещей требуется настоящая эквилибристика — нет ни функций первого класса, ни динамической типизации, ни модулей в качестве пространств имён. Разумеется, вам потребуется Фабрика или Синглтон, если без них в вашем языке просто не с чем работать.

Слепо копировать эти паттерны в Python — не признак большого ума. Из-за них ваш код сложнее читать, тестировать, а также объяснять очередному бедняге, которому этот код придётся поддерживать. Возможно, через три месяца этим беднягой станете вы..

Читать далее

Паттерны проектирования в Python, о которых следует забыть. Часть вторая

Время на прочтение9 мин
Охват и читатели9.3K

С тех пор, как «банда четырёх» ещё в 90-е выпустила свою легендарную книгу «Паттерны объектно-ориентированного проектирования», сами «паттерны проектирования» стали краеугольным камнем всевозможных рассуждений о программной архитектуре. Однако, со временем этот термин становится всё более размытым. Сегодня при упоминании паттернов может иметься в виду:

Назначение этого паттерна: та проблема, для решения которой он предназначен Реализация: точная структура класса или код для воплощения этого паттерна

Рассказывая о «паттернах проектирования в Python, о которых следует забыть», мы имеем в виду как раз реализации. В самом деле, эти паттерны решают реальные задачи. Но в Python решение этих задач ничуть не напоминает те варианты, которые предлагаются на C++ или Java.

Держа в уме эту идею, делаем простой вывод:

Мишка учится лазать по деревьям, чтобы добраться до мёда. Но орлы никуда не лазают, они летают.

Читать далее

Ваш Xiaomi — это не Xiaomi. Кто делает китайские телефоны на самом деле?

Время на прочтение10 мин
Охват и читатели102K

И почему они стоят так дёшево?

Многие в курсе, что Xiaomi, Honor, Tecno или Realme не делают телефоны сами. Но что если я скажу, что они их даже не разрабатывают? Многие бюджетные модели лишь продаются под этими шильдиками, а всю разработку и производство “от и до” делают совсем другие компании. Эти компании не на слуху, но без них не было бы никакого “топа за свои деньги”. Давайте разбираться, что всё это значит, и как так вышло.

Читать далее

Как начать вайбкодить и снова полюбить программирование

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели16K

Сегодня я и моя командой заняли первое место на хакатоне гражданских проектов. Сделали бота, ищущего контракты на капремонт по адресу, и выкачивалку-парсилку Госзакупок для него. Можно использовать как референс или брать готовый код в свои проекты, он в Public Domain: https://github.com/unxed/crwatch

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

Читать далее

Программист embedded лезет в FPGA (часть 1, hello blink)

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели10K

Любой программист микроконтроллеров, Imho, рано или поздно (сейчас, скорее, рано) от одного из коллег или из статьи в интернете слышит загадочное ПЛИС или FPGA, CPLD, ПВМ — что-то такое. Если честно, то я услышал вот это загадочное, занырнул чуть-чуть, и теперь думаю, что мой опыт пригодится кому-то ещё. Если совсем честно, то статья ещё планируется как небольшая (всего в трёх частях) заметка для себя. Я когда погружался, делал пометки в текстовом файле, здесь получится их хорошо отредактированная версия.

Очень много вещей в подобных этому туториалах, которые я читал, пропускаются как сами собой разумеющиеся. Подробные инструкции куда и как тыкать есть в документации к плате разработки. Но там не хватает ответов на вопросы зачем и почему. Здесь я хочу скомбинировать 2 подхода.

Лезем в FPGA

Как адаптировать аналитику для тех, кто не хочет разбираться в графиках

Время на прочтение7 мин
Охват и читатели10K

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

Звучит логично и понятно, пока вы не начнете плотно работать с цифрами и графиками. И тут, как и почти в любой сфере, кто-то рано или поздно должен был внедрить AI-ассистента. Под катом посмотрим, что из этого получилось.

Читать далее

«Хакеры и Художники». Как мы 13 лет всем рунетом Пола Грэма переводили

Время на прочтение5 мин
Охват и читатели57K
«Это началось как желание, стало приключением, а закончилось как уникальное дорожное путешествие.»
— к/ф «Трасса 60»



Пол Грэм написал книгу «Hackers and Painters» (оригинал в PDF на английском) когда еще был больше программистом, чем инвестором. С тех пор некоторые моменты устарели (да и arc не взлетел), но большинство мыслей остались актуальными (роль и место ботанов «хакеров» в современном мире, свободомыслие, критическое мышление, способность бросать вызов большим системам и пр). Лично я планирую перечитать всю книгу еще пару раз.

Спасибо Байраму Аннакову за «наводку» на Пола Грэма и Николаю Кононову, который подтвердил, что я на правильном пути.

Содержание


Глава 1 Why Nerds Are UnpopularЗа что не любят ботанов.
Глава 2 Hackers and PaintersХакеры и художники (Habr edition)
Глава 3 What You Can't SayО чем вы не можете сказать.
Глава 4 Good Bad AttitudeСлово «хакер».
Глава 5 The Other Road AheadДругая дорога в будущее, Другая дорога в будущее, продолжение.
Глава 6 How to Make WealthКак стать богатым.
Глава 7 Mind the GapОсторожно, разрыв.
Глава 8 A Plan for SpamПлан для спама.
Глава 9 Taste for MakersВкус — созидателям.
Глава 10 Programming Languages Explained — Языки программирования «в разрезе».
Глава 11 The Hundred-Year LanguageЯзыки программирования через сто лет.
Глава 12 Beating the AveragesLisp: побеждая посредственность.
Глава 13 Revenge of the Nerds — Месть ботанов 1, 2, 3.
Глава 14 The Dream LanguageБыть Популярным, часть 2.
Глава 15 Design and ResearchПроектирование и исследование.

Под катом хронология переводов и благодарности.
Читать дальше →

Пол Грэм: Глава 2. Хакеры и художники (Habr edition)

Время на прочтение18 мин
Охват и читатели16K
image

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

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

Перевод Анастасии Грызуновой, Яны Щекотовой. Приведение текста в порядок — CaptainCrocus.

Оригинал — Hackers and Painters (May 2003)


Закончив аспирантуру по computer science, я пошел на художественный факультет изучать живопись. Многие удивились, что компьютерщик вдруг заинтересовался живописью. Эти люди, видимо, считали, что хакерство и художество — очень разные занятия: хакерство — холодное, точное и методичное, а художество — яростное выражение некого первобытного порыва.

Оба представления неверны. У хакерства и художества масса общего. Из множества различных типов людей хакеры и художники — едва ли не самые похожие.
1
23 ...

Информация

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

Специализация

Инженер АСУТП
SQL
Python
Администрирование сетей
Системное администрирование
Администрирование серверов
PLC
Программирование ПЛК
Scada
АСУ ТП