Как стать автором
Обновить
90
Карма
0.2
Рейтинг

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

  • Публикации
  • Комментарии

Система скриптового 3д моделирования ZenCad

PythonРабота с 3D-графикой

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


Рецепт системы ZenCad довольно прост. Концепт скриптового 3д моделирования OpenScad, геометрическое ядро OpenCascade, python3 в качестве клея, библиотека ленивых вычислений evalcache для агресивного кеширования вычислений. Добавить специй еще из пары-тройки инструментов, приправить gui под соусом PyQt, и подать к столу перемешав, но не взбалтывая.


машинка.пнг

Читать дальше →
Всего голосов 42: ↑42 и ↓0 +42
Просмотры10.7K
Комментарии 71

Новости

Показать еще

Создаем TUI на python

PythonПрограммированиеГрафические оболочки
Tutorial

Привет, Хабр! В этой статье я расскажу про npyscreen — библиотеке для создания текстовых интерфейсов для терминальных и консольных приложений.



Читать дальше →
Всего голосов 63: ↑63 и ↓0 +63
Просмотры38.1K
Комментарии 40

Простейший измеритель CO2 за 2000 рублей и полчаса

LampTestРазработка под ArduinoDIY или Сделай самЗдоровье
Измеритель уровня углекислого газа (CO2) наверное самый недооценённый прибор, который на мой взгляд должен быть в каждой квартире, ведь он показывает, насколько воздух пригоден для дыхания и с помощью него всегда видно, когда пора проветривать.

Такой измеритель в квартирах большая редкость прежде всего из-за высокой цены. Свой первый измеритель AZ Instruments 7798 CO2 datalogger я покупал за $139 и это была самая дешёвая модель на рынке.

Сейчас готовый измеритель CO2 стоит около 4000 рублей, а самодельный обойдётся вдвое дешевле.

Читать дальше →
Всего голосов 100: ↑98 и ↓2 +96
Просмотры39.4K
Комментарии 249

Файловый сервер на Samba, видимый отовсюду

Настройка LinuxСистемное администрирование
В этой краткой заметке я не буду касаться настройки Samba, благо таких материалов в сети более, чем достаточно.

Я хотел бы рассказать о том, как сделать доступ к файловому серверу удобнее.



TL;DR: настройка Avahi и WSD, чтобы файловый сервер отображался в сетевом окружении в Windows, в MacOS и в Ubuntu (и в других дистрибутивах, разумеется, но в них я не проверял).
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Просмотры10.2K
Комментарии 3

Самые лучшие дистрибутивы Linux для десктопа в 2020 году

VDSina.ruНастройка LinuxOpen sourceСофтСтарое железо

Логотипы пяти лучших дистрибутивов для начинающих пользователей Linux

Linux традиционно считается операционной системой для инженеров и программистов, но уже давно прикладываются реальные усилия, чтобы сделать Linux привлекательнее для остальных людей. Это очень важно, поскольку неустранимые архитектурные проблемы безопасности Windows и закрытая экосистема Apple не позволяют рассматривать их как надёжные варианты для массового использования.

Linux представлен в разных видах. Здесь невероятные возможности настройки, поэтому дистрибутивы разрабатываются исходя из разных потребностей и интересов пользователей. Например, кто-то переходит с Windows или macOS — и есть дистрибутивы, которые в точности повторяют их интерфейс. Другие сосредоточены, например, на максимальной безопасности или эффективном использовании ресурсов.

Посмотрим на самые популярные дистрибутивы Linux в 2020 году для домашнего десктопа, что рекомендуют для начинающих пользователей, опытных специалистов и на легковесные варианты для старых машин x86. И проголосуем за самый популярный дистрибутив.
Читать дальше →
Всего голосов 77: ↑58 и ↓19 +39
Просмотры155.8K
Комментарии 180

Зачем ЯОП? Зачем Racket?

ПрограммированиеLispИзучение языков
Перевод
Это продолжение статьи «Зачем Racket? Зачем Lisp?», которую я написал примерно через год после того, как открыл для себя Racket. Будучи новичком, я не мог понять дифирамбов, которые со всех сторон сыпались в адрес Lisp. Я не знал, что и думать. Как понимать, что Lisp в конце концов вызовет «глубокое просветление». Окей, как скажешь, бро.

У меня был простой вопрос: какая польза? В прошлой статье я попытался ответить на него и обобщил причины, почему кто-то захочет изучить Lisp или, в частности, Racket.

Я составил список из девяти особенностей языка, наиболее ценных для меня как новичка в Racket. Например, особенность № 5 — «создание новых языков программирования». Этот метод также называется языково-ориентированным программированием, или ЯОП.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры7.8K
Комментарии 6

Тест старения светодиодных ламп

LampTestГаджеты
Я провёл один из самых длительных своих тестов, занявший четыре месяца: измерил, как меняются характеристики светодиодных ламп через 500 и 1000 часов работы.


Читать дальше →
Всего голосов 142: ↑142 и ↓0 +142
Просмотры45.5K
Комментарии 196

Стековая машина на моноидах

ПрограммированиеHaskellМатематикаФункциональное программирование
Tutorial

Не так давно на Хабре появилась отличная и вдохновляющая статья про компиляторы и стековые машины. В ней показывается путь от простой реализации исполнителя байт-кода ко всё более и более эффективным версиям. Мне захотелось показать на примере разработки стековой машины, как это можно сделать Haskell-way.


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


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

Читать дальше →
Всего голосов 49: ↑49 и ↓0 +49
Просмотры12.7K
Комментарии 28

68 непрошеных советов

Лайфхаки для гиков
Перевод
Это перевод самого недавнего поста Кевина Келли, со-основателя журнала Wired, писателя, фотографа, футуролога.


Сегодня мой день рождения. Мне 68. Хочется пододвинуть кресло-качалку и пораздавать советы юнцам. Вот 68 непрошеных советов, которые я предлагаю всем вам как подарок ко дню рождения.

  • Научитесь учиться у тех, с кем вы не согласны, или даже тех, кто вас раздражает. Нет ли истины в их убеждениях?
  • Энтузиазм эквивалентен 25 баллам IQ.
  • Всегда требуйте дедлайн. Дедлайн избавляет от лишнего и заурядного. Он останавливает попытки достичь совершенного, поэтому вам приходится делать необычное. Необычное лучше.

Читать дальше →
Всего голосов 92: ↑85 и ↓7 +78
Просмотры66.8K
Комментарии 105

Восстановление online-функций Microsoft Money. Котировки

APIРеверс-инжиниринг
Microsoft Money имеет давнюю историю. Начиная с первой версии вышедшей в 1991 году Windows 3.0 и заканчивая версией Plus 2007 года Money была удобным инструментом для управления личными финансами.

Помимо обычного ведения счетов Money предлагала и развитые online-сервисы.
Их можно разделить на три составляющие:

  1. Получение данных о котировках и конвертации валют.
  2. Синхронизация данных о счетах, как теперь модно говорить, с облаком.
  3. Работа с online-банкингом, в том числе оплата счетов через протокол OFX.

К сожалению, в 2011 году Microsoft поддержав моду на закрытие сервисов, закрыла online-сервис MSN Money, и первые две функции перестали работать.

А вышедшая в 2010 году бесплатная версия Money Plus Sunset уже не содержала поддержку online-функций став простым инструментом для offline-ведения счетов.

Я пользуюсь Microsoft Money 2004 Standard начиная с 2006 года. За это время были и попытки уйти на другие программы или online-сервисы, но тем не менее Money оказывалась удобней. Но вот не работающие функции откровенно расстраивали. И если online-банкинг в нашей стране бесполезен, т.к. насколько мне известно, даже ни один из крупных банков не поддерживает работу через OFX для частных лиц, то данных о обменных курсах очень не хватало. А уж online-синхронизация после работы с одним online-сервисом вообще была мечтой.

Сообществом было создано несколько инструментов разной степени костыльности, но они имеют один фатальный недостаток: они не интегрируются в Money и требуют ручного труда для получения результатов.

Ну а так как чуда ждать не приходилось, то воплощение мечты в реальность
является делом рук самих мечтающих.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры4K
Комментарии 5

Генерация кроссвордов с помощью SAT солвера

Логические игры
На Хабре было несколько статей про генерацию кроссвордов. В одной из них «Самый сложный кроссворд, составленный компьютером» говорилось про очень сложный кроссворд, составленный компьютером, которому «пришлось немного помочь» вручную. Во второй статье «Алгоритм формирования кроссвордов» рассказывается про алгоритм, созданный автором для составления кроссвордов, и отмечается, что этот «самый сложный кроссворд» остался непокоренным и говорится, что «может быть эта непокоренная вершина вдохновит кого-нибудь на новый штурм!». Что же, можно принять вызов. Что из этого получилось, смотрите под катом.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры7.5K
Комментарии 2

Объясняем современный JavaScript динозавру

Mail.ru GroupРазработка веб-сайтовJavaScriptNode.JSСистемы сборки
Перевод


Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


Я не понял ни слова из предложения и стал разбираться, как это может помочь мне как разработчику.


Цель статьи — рассказать о контексте, в котором инструменты в JavaScript развивались вплоть до 2017-го. Начнём с самого начала и будем делать сайт, как это делали бы динозавры — безо всяких инструментов, на чистом HTML и JavaScript. Постепенно станем вводить разные инструменты, поочерёдно рассматривая решаемые ими проблемы. Благодаря историческому контексту вы сможете адаптироваться к постоянно меняющемуся ландшафту JavaScript и понять его.

Читать дальше →
Всего голосов 174: ↑171 и ↓3 +168
Просмотры237.8K
Комментарии 505

Тюнинг сетевого стека Linux для ленивых

Настройка Linux*nixСерверная оптимизацияСетевые технологииСерверное администрирование
Tutorial

Сетевой стек Linux по умолчанию замечательно работает на десктопах. На серверах с нагрузкой чуть выше средней уже приходится разбираться как всё нужно правильно настраивать. На моей текущей работе этим приходится заниматься едва ли не в промышленных масштабах, так что без автоматизации никуда – объяснять каждому коллеге что и как устроено долго, а заставлять людей читать ≈300 страниц английского текста, перемешанного с кодом на C… Можно и нужно, но результаты будут не через час и не через день. Поэтому я попробовал накидать набор утилит для тюнинга сетевого стека и руководство по их использованию, не уходящее в специфические детали определённых задач, которое при этом остаётся достаточно компактным для того, чтобы его можно было прочитать меньше чем за час и вынести из него хоть какую-то пользу.

Читать дальше →
Всего голосов 94: ↑94 и ↓0 +94
Просмотры75.7K
Комментарии 45

Синхронный код в асинхронном Twisted, или сказ о том, как скрестить ежа с ужом

PythonDjangoTwisted
Всё хорошо

Twisted — асинхронный (событийно-ориентированный) фреймворк, написанный на Python. Мощное средство для быстрой разработки сетевых (и не только) сервисов. Он разработан с использованием паттерна проектирования Reactor. Сервисы созданные с использованием Twisted быстры и надежны, фреймворк позволяет не писать макаронный код, насыщенный непонятными коллбэками, имеет внутри себя красивые хелперы (Deferred, Transport, Protocol etc). Другими словами, делает нашу жизнь бекенд разработчиков лучше.

Но есть и проблемы

Основная проблема в том, что многочисленные, надежные, оттестированные, удобные библиотеки, использующие в своей основе синхронные модули Python (socket, os, ssl, time, select, thread, subprocess, sys, signal etc), просто возьмут и заблокируют нам основной процесс, цикл реактора и наступит беда. Такими библиотеками, к примеру, являются psycopg2, request, mysql и другие. В частности, psycopg2 используется в Django ORM как один из бекендов баз данных.

Что же делать?

Есть три пути. Сложный, приемлемый и хороший. Сложный — реализовать аналог библиотеки на Twisted. Приемлемый — использовать deferToThread и запускать синхронный код в отдельных потоках (используя пул потоков реализованный в Twisted). О хорошем пути (по моему мнению) и пойдет речь в заметке.
Скрестить ежа с ужом
Читать дальше →
Всего голосов 8: ↑6 и ↓2 +4
Просмотры8.8K
Комментарии 12

Как перестать отлаживать асинхронный код и начать жить

Конференции Олега Бунина (Онтико)JavaScriptПрограммированиеПараллельное программирование

Андрей Саломатин ( filipovskii_off )


Андрей Саломатин

Сегодня каждый день появляются новые языки программирования — Go, Rust, CoffeeScript — все, что угодно. Я решил, что я тоже горазд придумать свой язык программирования, что миру не хватает какого-то нового языка…

Дамы и господа, я представляю вам сегодня Schlecht!Script — чумовой язык программирования. Мы все должны начать им пользоваться прямо сейчас. В нем есть все то, к чему мы привыкли — в нем есть условные операторы, есть циклы, есть функции и функции высших порядков. В общем, в нем есть все, что нужно нормальному языку программирования.

Что в нем не очень обычно, что может даже оттолкнуть, на первый взгляд, — это то, что в Schlecht!Script функции имеют цвет.
Читать дальше →
Всего голосов 61: ↑47 и ↓14 +33
Просмотры25.5K
Комментарии 22

4 вида утечек памяти в JavaScript и как с ними бороться

Разработка веб-сайтовJavaScript
Перевод

В этой статье мы рассмотрим распространённые виды утечек памяти в клиентском JavaScript. Также мы узнаем, как их обнаружить с помощью Chrome Development Tools.


timeline в Chrome Dev Tools

Читать дальше →
Всего голосов 98: ↑98 и ↓0 +98
Просмотры102.3K
Комментарии 16

Автоматические жалюзи на Arduino

DIY или Сделай сам


Идея автоматизации жалюзи зародилась в моей голове достаточно давно. Особенно сильно этому способствовало специфичное расположение окон моей комнаты: после обеда в мои окна бьет яркий солнечный свет, мешающий работе за компьютером и отбивающий всяческое желание заниматься продуктивной деятельностью. В тоже время, находиться в комнате с закрытыми створками жалюзи удовольствие, на мой взгляд, сомнительное. Мне хотелось получить систему, позволяющую автоматически менять угол поворота створок, в зависимости от интенсивности солнечного света, а так же обладающую возможностью ручного управления с дистанционного пульта.
Читать дальше →
Всего голосов 99: ↑95 и ↓4 +91
Просмотры81.4K
Комментарии 71

МТС: яйцом к клиенту, или как бороться с заменой sim

Законодательство в IT
На хабра-сайтах не раз (см. тут и здесь) выходили статьи о том, как защитить себя от замены sim-карты. Но, не смотря на то, что все эти советы — дельные, в них есть одно слабое и при этом — очень значимое место, которое с юридической точки зрения называется добросовестность одной из сторон, т.е. провайдера.

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

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

При подготовке искового изучил несколько десятков форумов, на которых повторялись типовые вопросы по нормативной базе. Попробовал изложить их в систематизированном виде.
Читать дальше →
Всего голосов 40: ↑39 и ↓1 +38
Просмотры55.2K
Комментарии 134

Светодиодные лампы из магазина Леруа Мерлен

LampTestГаджетыКомпьютерное железо
Неделю назад я рассказал о свтетодиодных лампах из магазина Ашан. Напомню, я купил 48 ламп в Ашане и Леруа, протестировал их и вернул обратно в магазины.

Сегодня расскажу о 26 лампах из Леруа Мерлен.



Читать дальше →
Всего голосов 56: ↑55 и ↓1 +54
Просмотры73.7K
Комментарии 31

Возвращаем авто-логин в Wi-Fi-сеть московского метро в Android

Беспроводные технологии
С некоторого времени я стал замечать, что при подключении к московскому метровайфаю на Андроидах перестала вылезать нотификация о том, что необходимо залогиниться. Что было весьма удобно, так как встроенный андроидный HTTP-клиент никогда не показывал мне рекламу, и закрывался сразу же после авторизации, не грузя стартовую страницу wi-fi.ru, также обильно пестрящую рекламой.
Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Просмотры41.6K
Комментарии 11

Информация

В рейтинге
1,558-й
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность