Задать вопрос
  • Возможно ли написать сайт на питоне?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Серверную часть можно писать на чем угодно. Какие-то древние сайты писались на Perl, Bash, Tcl и еще бог
    знает на чем. С++ тоже поддерживается но с моей точки зрения фиксить баги сложнее и не так оперативно.
    Веб-сервер Apache настраивался так что можно было любой "экзешник" использовать как CGI скрипт
    (оракловый sqlplus можно было настроить). Ну Python на сервере и так норм работает.

    По поводу браузера.
    Python не поддерживается браузером. Поэтому клиентский скриптинг - отпадает.
    Хотя я где-то читал что на заре создания браузеров обсуждалась идея вместо
    JS использовать Lisp :) Забавно было бы на это посмотреть. Но... многие
    академические идеи на практике не взлетали.

    В качестве content-type браузер поддеживает text/plain поэтому можно отдавать плоский текст.
    Я так часто делал для отчетов. Поэтому без html/css можно обойтись. Хотя выглядит прозаично.
    Ответ написан
    Комментировать
  • Чем просмотреть xml файл с позиционированием по номеру строки и символа?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Illegal xml character. line: 52, position: 16420046

    Судя по ошибке - этот файл очень широкий в ширину. Длина строки за 10 млн.
    Действительно хрен перемотаешь.

    Его можно отформатировать через xmllint. В Linux можно так сделать.

    xmllint --format file.xml

    Если у тебя Windows - то установи себе WSL. Полезная штука. Для таких мелких манипуляций.

    Потом можно этот файл открывать через твой SDU и навигация к строке уже будет более привычной.
    Ответ написан
  • Стоит ли переписывать старый проект на .NET6 (на голом энтузиазме)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Бизнес должен понимать что вы ему предлагаете. По сути эту идею можно продвинуть только под соусом разработки новой фичи. В противном случае у вас будет сильное непонимание. Все что вы предлагаете - это NFR. Не-функциональные требования. Шестая версия дотнет. Асинки. Обжекты. Бизнес не понимает как ему это дальше продавать.

    Я-бы сказал что просто так взять всё и переписать - это гиблое дело. Пойдут баги и бизнес попросит либо срочно исправлять либо откатить это назад до старой версии. Это - фиаско. Очень часто бывает так что старый и плохой код завязывается на какое-то странное поведение API которое плохо документировано и чёрт-пойми-как-работает. Но работает. Я много таких аномалий видел. И ты его исправляешь по фень-шую как должно быть и становится ... (!) еще хуже. Особенно большая беда с мультипоточкой и интеграцией например с операционкой или сторонними нативными либами.

    Если вы имеете силы и смелость - то пишите план (желательно на пол-года) на рефакторинг. Шаг-за шагом. Сначала - покрытие всего тестами. Потом миграция версий тоже мелкими шажками. И все это (!) параллельно с разработкой новой фичи которую бизнес одобрит. Только так.
    Ответ написан
    Комментировать
  • Почему не выводится объект через сторонний класс?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Здесь создается новый экземпляр
    NameFind nameFind = new NameFind();
    который еще ничего не знает про "qqq"
    Ответ написан
  • Как сделать из комптютера прокси для планшета?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Типы проксей разные бывают. HTTP/Socks4/5. Несовместимые между собой.
    Ответ написан
    Комментировать
  • Android studui после обновления testImplementation 'junit:junit:4.13.2' не импортируется класс HdrImageCaptureExtender. Как исправить?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    По сегодняшним меркам технологии устарели. Так автор ставит
    testImplementation 'junit:junit:4.+'

    Каким сегодняшним меркам? Да эти зависимости еще 20 лет будут работать. Ты разобрался как знак "+" работает
    в данном контексте? Поставь конкретную версию junit (старую!) с которой все работало раньше и пускай так себе
    работает. А то у тебя как в анекдоте "лапы вытянул - хвост увяз".
    Ответ написан
  • Жесткий диск во время работы издаёт звук (такой как при включени и выключении) - «высокочастотный свист». Что может быть причиной?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это как в автомобиле. Если что-то застучало или загремело - срочно на СТО. Учитывая что это HDD механического типа - далее ситуация будет ухудшаться. Я-бы сделал сразу полный бекап всего. Чтоб потом не плакать слезами. И в ремонт.
    Ответ написан
    Комментировать
  • Кто нибудь видел табличку или статью с сравнением ЯП из ООПс точки зрения реализации типов/классов? И в каких случаях брать неООП?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Непонятно что вы хотите увидеть в этой табличке? Кейсы в которых надо брать ООП или не-ООП?

    Мы живем в эпоху мультикультурализма в разработке. Языки такие как C++/Scala в принципе - мультипарадигменные. Они являются одновременно ООП и ФП. И эта диффузия продолжается.
    И другие языки тоже идут в этом направлении.

    Есть хороший доклад Брагилевского где он просто напримере геометрических фигур (круг, квадрат)
    показвывает что ФП и ООП - это просто две ортогональные технологии которые одинаково ведут
    к успеху.

    По реализациям. 99% зависит от платформы. Например языки C#/F# будут скорее всего использовать
    платформу .Net и ее реализацию типов и классов. Языки Java/Kotlin/Scala - соотв будут опираться
    на JVM-представление классов и ее типы. Erlang/Elixir - своя реализация типов в beam-машинке.
    Нативные языки - кто во что гаразд.

    Когда использовать не-объектные языки. Ну не знаю. Я-бы опять уточнил - когда вам не стоит
    внедрять пользовательские типы/классы. Вот я щас пишу утилиту для копирования данных
    с продуктового ftp на тестовый. Там нужно файлы выбирать по датам. Код на scala. Состоит
    из 1 объекта Main и порядка 40 штук функций. Пользовательских типов нет. Вот мне как-то
    так хватило и этого. Если писать notebooks под Databricks то там тоже идет такой себе
    стиль программирования где нет явной декларации классов.

    Вобщем самый лучший язык - это тот который вы знаете. И профессионал может решить любую
    задачу в своём языке всегда. Поэтому я-бы не стал париться рисованием таких табличек.
    Тем более что она очень спорная и бесполезная.
    Ответ написан
    Комментировать
  • Как научиться делать безшовные фоны?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В родительском ресурсе https://habr.com/ есть очень хорошие статьи на эту тему. Поищи с тегами tile, textures, game e.t.c.
    Ответ написан
  • Как на основе данных с камеры, отправлять их в бд (python)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для отправки данных с камеры в базу данных в Python, вы можете использовать следующий подход:
    1. Получите данные с камеры: Используйте библиотеку OpenCV для получения данных с камеры. Вы можете использовать метод cv2.VideoCapture() для получения кадров с камеры.
    2. Подключитесь к базе данных: Используйте библиотеку Python для работы с базами данных, такую как sqlite3 или pymysql. Вы можете использовать метод connect() для подключения к базе данных и создания объекта подключения.
    3. Создайте таблицу в базе данных: Используйте SQL-запросы для создания таблицы в базе данных. Например, если вы используете SQLite, то можете создать таблицу следующим образом
    import sqlite3
    
    conn = sqlite3.connect('database.db')
    c = conn.cursor()
    
    c.execute('''CREATE TABLE frames
                 (frame BLOB)''')

    Вставьте данные в таблицу: Используйте SQL-запросы для вставки данных в таблицу. Например, если вы используете SQLite, то можете вставить данные следующим образом:
    import sqlite3
    
    conn = sqlite3.connect('database.db')
    c = conn.cursor()
    
    frame_data = # полученные данные с камеры
    c.execute("INSERT INTO frames VALUES (?)", (frame_data,))

    Закройте соединение с базой данных: Используйте метод commit() для сохранения изменений в базе данных, а затем метод close() для закрытия соединения.
    import sqlite3
    
    conn = sqlite3.connect('database.db')
    c = conn.cursor()
    
    frame_data = # полученные данные с камеры
    c.execute("INSERT INTO frames VALUES (?)", (frame_data,))
    conn.commit()
    
    conn.close()


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

    Ответ написан
    5 комментариев
  • Почему иногда выходит ошибка java.awt.HeadlessException: null?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Headless - это специальный релиз Java который ставится на сервера где никогда не будет подключенного
    монитора. Виртуалки. Фиксится это наверное установкой правильног десктопного релиза на десктоп
    где все графические библитеки в наличии.

    Почему у тебя что-то рандомно выскакивает - это вопрос.
    Ответ написан
    1 комментарий
  • Как увеличить стабильность интернета?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это особенно чувствуется в онлайн играх/трансляциях и тд.

    Значить по некоторым базовым вещам. Такого понятия как "скорость Интернета" не существует.
    Это метафора. Но есть конкретно скорость и лаг между двумя хостами интернета. Вот нужно
    мерять между конкретными точками. Зафиксировать ситуацию. Вот в момент тормоза в играх
    будет ли такая-же скорость связи с гугл-dns 8.8.8.8 ?

    Между провайдеров со скоростями обычно все хорошо. Там оптические каналы давно лежат
    и резервирование. Проблемой может быть т.н. последняя миля. Это то что у тебя в квартире. В подъезде.
    В домовой сети. Вот я-бы начал искать именно так. Есть ли такие-же проблемы у соседей дома?
    Ответ написан
  • Dbeaver не видит новые БД, что делать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Что там по сетевому доступу?

    Сделай в консоли

    $ nc -zv your-db-host 5432

    Александр Богдашкин, если нет - установи ее под Windows. Синоним - netcat. В данном случая я проверяю доступ к TCP-сокету.

    Если не найдешь - плохо. Но попробуй утилитой telnet подключиться также к хосту и порту.
    По тексту ответа можно определить открыт сокет для тебя или нет.

    Если сокет закрыт - то нет смысла делать эксперименты с Бивером. Тебя просто файрвол не пускает.

    UPD. Удалено лишнее.
    Ответ написан
  • Как реализовать распознавание объектов на python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Raspberry Pi - это игрушка для энтузиастов. Если вы на разработку модели потратили тера-флопы облаков с TPU то нет смысла такую модель запускать на детской конфигурации. Тем более что речь идет о рельсах. Это железная дорога. А железная дорога вполне себе способна оплатить нормальный десктоп. И я никогда не поверю в какую-то здесь в данном случае экономию.
    Ответ написан
  • Какой из способов создания оффлайн биткоин-кошелька самый безопасный?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У меня возникал аналогичный вопрос но не в части кошельков а в сервисах двухфакторной автентификации для мобил. Вот потеряю допустим телефон. Какова процедура восстановления? Это головняк. Даже чтоб восстанавливать что-то их бэкапа - надо себя идентифицировать или предьявлять мастер-пароли которые очень длинные.

    К слову я ничего не придумал. Немного замкнутый круг получается. Самый простой и надеждый способ - все таки использовать мнемонические фразы из стандартного bip39. Эти фразы выжечь у себя татуировкой на руке или блин заказать себе жетон на шею с гравировкой. Или как Киану Ривзу прошить в мозг под гипнозом. Вобщем нужно такое хранилище чтоб.... ну короче лучше сейфа и бумагами я пока ничего не придумал. Звучит смешно но бумага оказывается надежнее чем жесткие диски сидюки и кассеты стриммера.

    Археологи подтвердят.
    Ответ написан
    Комментировать
  • Самоучитель по Solidity?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Онлайн курсы : Udemy, Coursera, and edX

    Книги:
    "Mastering Ethereum" by Andreas M. Antonopoulos, Gavin Wood, and others
    "Building Ethereum Dapps" by Roberto Infante.
    Ответ написан
  • Хочу использовать компьютер одновременно как NAS так и Свитч вопрос в том возможно ли это?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Сеть без подключения к Интернету. Что это? Я могу предположить что Microsoft наличие интернета определяет по доступности какого-то интернет ресурса. Статус - вполне ожидаемый ведь у нас действительно там нет интернета. Мы-же делаем свитч?

    По поводу использования Windows в роли NAS/switch. Мы живем в эпоху челленджей. Когда люди например целый день швыряют карандаш в бутылку и снимают на телефон успешные попадания. Я думаю что эта задача тоже - безсмысленный челледж.

    Можно ли вообще это сделать? Я думаю можно.

    Для Linux/BSD сущесвтуют мануалы по конфигурации проксей, мостов и натов. Можно их брать и консольными командами идти к успеху. Для Windows десктовов я таких манов не знаю. Ну... может быть есть визуальные инструкции из серии - зайди в панель управления и нажми на Сеть и т.д. Но проблема в том что они датируются эпохой Windows-XP и безнадежно устарели. А дизайн Windows от версии к версии меняется так что сложно потом где-то искать нужный батон. Куда его производитель запихнул. Это знают инженеры по ремонту железа. Которые домохозяйкам ставят антивирусы и интернет. Но они NAS/router не делают. Невыгодно и хлопотно.

    Кроме того в эпоху экономии электроэнергии нам не очень выгодно держать включенный десктоп. Шумит. Тепловыделяет. Вибрации лишние. Для дома и для семьи лучше держать тихую технику. Чтоб ночью спать спокойно.

    А если делать медиацентр - то можно в обычный роутер tp-link включить portable-drive и пошарить медиа-сервер. И можно фильмы смотреть.
    Ответ написан
    1 комментарий
  • Как с помощью Python записать "внутренний" звук компьютера?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно с помощью youtube-dl отдельно скачать дорожку в mp3. Но в настоящий момент Youtube что-то поменял в ендпоинтах и эта утилита сломана. Ждем фикса здесь https://github.com/ytdl-org/youtube-dl/issues

    И тогда можно ее вызвать из Python. И сама она тоже написана на Python. Поэтому с интеграцией не будет проблем я думаю.
    Ответ написан
    Комментировать
  • В чем минусы событийно ориентированного подхода?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не претендую на правду. Просто несколько мыслей.

    В чем минусы событийно ориентированного подхода?
    Насколько я понимаю, Алан Кей (тот кто придумал термин Объекто-ориентированный) старался придерживаться именно этого подхода. т.е. кто-то отправляет сообщение, а объекты в системе на него реагируют, каждый по-своему.
    По сути у нас есть message bus, в который добавляется сообщение, а объекты системы слушают этот самый message bus.

    Мысль первая. Наследие.

    Когда мы говорим о наследии Алана Кея - надо просто глянуть что он создал практически.
    А создал он язык Smalltalk. Поэтому логично изучать минусы событийного подхода на
    примере софта который написан с использованием Smalltalk. Кто из коллег в топике
    знает примеры такого софта? Я - к сожалению не знаю.

    По ссылкам википедии https://en.wikipedia.org/wiki/Smalltalk можно видеть в категории
    influenced мы просто видим что Smalltalk
    влиял на Java, Go, Swift. Но я здесь не согласен потому что мы не можем измерить глубину
    этого влияния. Это все равно что сказать что Сталин влиял на Черчилля. Как влиял? На 10%?
    Или более чем половину? Сложно. Насчет Java я тут сказал-бы что сомнительно. ООП? Может быть.
    Акторы? Нет. В Java изначально нет акторов. Они существуют позже в виде фреймворков но
    языком не поддерживаются.

    По поводу MessageBus. Если брать технологию акторов которая используется в Erlang.
    то там скорее не message bus а очереди сообщений между потоками-акторами.
    Если про Smalltalk сказать нечего то про Erlang я могу сказать что на нем написаны
    две единицы софта такие как RabbitMq (очень надежная и неубиваемая система MQ).
    Может не супер-производительная. И CouchDb которая выделяется своей
    устойчивостью ко всяким сетевым сбоям. Реклама говорит что Кауч работает
    практически при мигающей сети, при обрывах и т.п. лучше чем аналогичый TCP-IP совт.

    Мысль вторая. Что Кей говорил про ООП.

    У меня есть цитатник. Я туда собираю некоторые слова на лытни. И иногда слова Кнута, Дейкстры
    и прочих it-академиков. Вот из цитатника Кея:

    I made up the term "object-oriented," and I can tell you
    I did not have C++ in mind.

    Что в этой прямой речи можно понять. Что господин Кей открещивается от современного ООП.
    А фактически все современное ООП зеркалит то что есть в С++. Здесь вы можете со мной спорить
    о первенстве (я не буду спорить я не знаю). Но абсолютно очевиден факт что мир пошел по пути
    жесткой синхронщины в 80х. И пока все еще идет. Будут ли примитивные типы int/double обьектами
    не суть важно. Тут важно что Кей постулирует среду в которой двигаются сообщения. Как сеть в миниатюре.
    А классическое ООП С++ - лишает нас этой среды и заменяет ее вызовом метода. Никакого сообщения
    в С++ нет и быть не может потому что сообщение НЕ существует в отрыве от основного потока который
    инициировал вычисления. Умрет поток - развалится весь стек и параметры и все. В противоположность
    в языке Erlang поток (процесс) приёмник может дохнуть много раз но стек сохраняет свою живучесть
    просто повторяя вычисления заново. И здесь мне кажется и идет развилка путей.

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

    Интересно почему в 80х Алан Кей проигрывал. Я думаю что победил прагматизм. В те далекие 80-е
    комьютеры были еще слабыми. Частота мерялась сотнями килогерц и мегагерцами. И в расчетах
    каждый такт был важен. И красивые и академические языки такие как Lisp, Prolog, Smalltalk
    просто проигрывали языку С в силу оверинжинеринга. А поскольку С++ был вначале действительно
    ООП-надстройкой над С - то он предлагал и ООП-подход и скорость портабельного ассемблера.
    И хотя я лично не люблю С++ (я считаю его перегруженным техническими долгами прошлого)
    я признаю что бизнес выбирая С++ выбирал просто скорость вычислений. Академизм и красивые
    доказательства правоты программ были тогда не нужны. Нужно чтоб банковское приложение
    быстро считало кредиты и выдавало зарплаты и пенсии.

    Сегодня, когда мы нежемся в сладкой неге мощных процессоров и даже (!) облаков - мы можем
    себе позволить любого уровня парадигмы и абстракции. Цена 1 абстракции стала настолько дешево
    стоить что нам дешевле в банках запускать Java/Net приложения и на ходу фиксить ошибки
    чем долго разрабатывать на С++ и иметь неопредленнное поведение и тяжелый анализ
    в случае падения. Даже такой уродец как Python взлетел как язык интеграции а не разработки.

    Мысль третья. Нестандартные и асинхронные архитектуры реализованные в железе.

    Недавно смотрел анонс нового процессора от Чака Мура (это тот самый Мур который создал закон имени себя).
    Мне кажется это пример той самой асинхронной клетки о которой мечтал Алан Кей.

    Мысль четвертая. На кого похож Алан Кей?

    Не знаю как вам. :) А мне он уж очень напоминает Боливара Траска из Люди Икс Дни Минувшего будущего.

    Мысль 5. Что делает Алан Кей на фото?

    Бренчит на музыкальных инструментах. Наверное блюз. Блюз потерянных архитектур :)
    Ответ написан
    Комментировать
  • Как в консоли выбрать файл не вводя его имя?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Bash поддерживает hexadecimal unicode символы

    Вот заглавная А.
    echo -e '\u0410'
    Если знаешь код следующей буквы то можещь ввести и снова нажать tab.
    Ответ написан
    2 комментария