Как стать автором
Обновить
6
Карма
0
Рейтинг
Ераков Валерий @evkin

Java програмист

  • Подписчики
  • Подписки 5
  • Публикации
  • Комментарии

Печатные платы с помощью фотополимерного 3D-принтера

Производство и разработка электроники3D-принтерыDIY или Сделай сам

3D-принтерами сейчас уже никого не удивишь. А в последние год-два благодаря сильному снижению стоимости бурно расцветает и их фотополимерный подвид. Сейчас такой принтер доступен уже практически каждому и число их моделей на рынке множится каждый месяц.

Еще когда я несколько лет назад только узнал о появлении нового типа фотополимерных принтеров - у которых изображение слоя для засветки формируется ЖК-дисплеем, у меня уже тогда мелькнула мысль "Хм, а если им подставить фоторезист на текстолите?". Но тогда это был чисто теоретический вопрос - цены на них были немалыми, а разрешение и площадь дисплея оставляли желать лучшего. Однако на сегодня эти принтеры уже могут похвастаться и приличным разрешением - от 30 мкм пиксель, и вполне нормальной площадью дисплея.

И как оказалось, с помощью недорогого современного фотополимерного принтера вполне можно делать платы с дорожками/промежутками от 0.15 мм :)

И что получилось?
Всего голосов 53: ↑52 и ↓1+51
Просмотры19K
Комментарии 105

Эксперименты с карбидом кремния (SiC): замедление переключения SiC-MOSFET

СхемотехникаПроизводство и разработка электроникиФизикаDIY или Сделай самЭлектроника для начинающих
На этот раз рассказываю про карбид кремния (SiC) и свои разработки и эксперименты с ним.
Из статьи вы узнаете особенности применения карбид-кремниевых MOSFET-транзисторов и диодов, как выбрать элемент и сравнение с кремниевыми (Si) приборами, и, самое главное результаты моих экспериментов и исследований в замедлении переключения SiC-транзисторов, проведённых на моей недавней разработке – источнике питания для солнечной энергетики.



Под катом немного аналитики и практики в области силовой электроники – добро пожаловать.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Просмотры7.3K
Комментарии 46

Небольшой гайд по выбору 3D-принтера для начинающих

3D-принтеры

Поводом для написания данной статьи послужила статья “Я хотел купить недорогой 3D-принтер, но посмотрел YouTube и расхотел”, в конце которой автор просит ответить на несколько вопросов. Попробую ответить с точки зрения своего семилетнего опыта 3D-моделера и 3D-печатника. Для начала небольшие предостережения.

В данной статье не будет советов: “Покупайте принтер производителя Х - он хороший, а производителя Y - не берите ни в коем случае”, только общие рекомендации.

Классификация принтеров неформальная, принятая в отечественном сегменте печатников.

Все написанное основано на личном опыте автора и является его личным мнением.

Если данные предостережения вас не пугают - добро пожаловать под кат.

Поехали
Всего голосов 23: ↑22 и ↓1+21
Просмотры14K
Комментарии 70

Проектирование импульсного источника питания с активным ККМ. Эпизод I

DIY или Сделай самЭлектроника для начинающих
Tutorial

Предисловие


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

Еще одной причиной отсутствия статей была моя работа в одной «современной успешной IT-hardware-компании», сейчас наконец-то я ее покинул и окончательно пересел на фриланс, так что время для статьи появилось))

Недавно ко мне обратился мой старый наставник и просто очень хороший человек. Естественно я не мог отказать в помощи, а оказалось все достаточно просто — меня попросили сделать блок питания для КВ трансивера FT-450, который будет более стабильный в работе, особенно при пониженном входном напряжении, чем уже имеющийся Mean Well. Прошу заметить, я не говорю о том, что Mean Well плохая фирма, просто в данном случае нагрузка достаточно специфическая, а так продукция у них вполне себе хорошая.

Диагноз примерно такой:


— Заявлен выходной ток в 40А, на деле при потреблением в 30-35А (на передаче) блок уходит в защиту;
— Наблюдается сильный нагрев при длительной нагрузке;
— Совсем становится плохо, когда использует его на даче, где напряжение в сети 160-180В;
— Напряжение максимальное 13,2-13,4В, а хотелось бы 13,8-14В с возможностью подкрутить +-20%.

Особенностью данной статьи будет то, что проект продвигается вместе с ней. Я за него только засел и поэтому смогу рассказать обо всех этапах разработки: от ТЗ до готового прототипа. В таком формате статей с наскоку на гике я не нашел, обычно люди пишут уже проделав всю работу и забыв половину мелочей, которые часто несут в себе главный интерес. Так же эту статью я хочу написать доступным для новичков языком, поэтому местным гуру стоит чуточку проще относиться к «неакадемичности» моего слога.
Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Просмотры136K
Комментарии 289

DC/AC инвертор: принцип работы, схемотехника, встроенное ПО

Программирование микроконтроллеровСхемотехникаПроизводство и разработка электроникиЭлектроника для начинающих
Из песочницы
Импульсные преобразователи и силовая электроника в целом, всегда оставались чем-то сакральным для большинства любителей и профессионалов в области разработки электроники. В статье освещается пожалуй самая интересная тема в среде DIY-щиков и фанатов альтернативной энергетики — формирование синусоидального напряжения/тока из постоянного.

Думаю многие из вас наверняка видели рекламу, либо читали статьи, где была фраза «чистый синус». Вот именно о нем и пойдет речь, но не о маркетинговой составляющей, а о исключительно технической реализации. Я постараюсь максимально понятно рассказать о самих принципах работы, о стандартных (и не очень) схемотехнических решениях и самое главное — напишем и разберем ПО для микроконтроллера STM32, которое и сформирует нам необходимые сигналы.

Почему STM32? Да потому, что сейчас это самый популярный МК в СНГ: по ним много обучающей русскоязычной информации, есть куча примеров, а главное эти МК и средства отладки для них — очень дешевые. Скажу прямо — в коммерческом проекте я бы поставил только TMS320F28035 или подобный DSP из серии Piccolo от TI, но это уже совсем другая история.

Важно одно — STM32 позволяет стабильно управлять простыми «бытовыми» силовыми преобразователями от которых не зависит судьба мира работа какой-нибудь АЭС или ЦОДа.



Вот такую картину управляющих сигналов необходимо получить, чтобы превратить ток постоянный в переменный. И да — тут именно синус! Как в том фильме: «Видишь суслика? — Нет. — А он есть...»

Интересно узнать каким образом формируется синус? Хочется узнать как все-таки качают нефть киловатты энергии? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 65: ↑65 и ↓0+65
Просмотры147K
Комментарии 259

Программирование GPU на Java

ПрограммированиеJavaGPGPU
Перевод
Recovery mode
Получение доступа к GPU из Java раскрывает огромную мощь. Здесь рассказывается как GPU работает и как получить доступ из Java.

Программирование устройства графического процессора (GPU) является заоблачным миром для Java программистов. Это понятно, так как обычные задачи для Java не подходят для GPU. Тем не менее, GPU обладают терафлопсами производительности, так давайте исследуем их возможности.
Для того чтобы сделать топик доступным, я потрачу некоторое время объясняя архитектуру GPU вместе с небольшой историей, которая облегчит погружение в программирование железа.

Однажды мне показали отличия GPU от CPU вычислений, я покажу как использовать GPU в мире Java. Наконец, я опишу главные фреймворки и библиотеки доступные для написания кода на Java и запуска их на GPU, и я приведу некоторые примеры кода.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Просмотры9K
Комментарии 6

Lombok возвращает величие Java

JavaПроектирование и рефакторинг
Перевод


Мы в Grubhub почти во всём бэкенде используем Java. Это проверенный язык, который за последние 20 лет доказал свою скорость и надёжность. Но с годами возраст «старичка» всё-таки начал сказываться.

Java — один из самых популярных языков JVM, но не единственный. В последние годы конкуренцию ему составляют Scala, Clojure и Kotlin, которые обеспечивают новую функциональность и оптимизированные функции языка. Короче говоря, они позволяют делать больше с более лаконичным кодом.
Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Просмотры80K
Комментарии 28

О чем молчит EXPLAIN, и как его разговорить

Блог компании ТензорPostgreSQLАдминистрирование баз данных
Из песочницы
Классический вопрос, с которым разработчик приходит к своему DBA или владелец бизнеса — к консультанту по PostgreSQL, почти всегда звучит одинаково: «Почему запросы выполняются на базе так долго?»

Традиционный набор причин:

  • неэффективный алгоритм
    когда вы решили сделать JOIN нескольких CTE по паре десятков тысяч записей
  • неактуальная статистика
    если фактическое распределение данных в таблице уже сильно отличается от собранной ANALYZE'ом в последний раз
  • «затык» по ресурсам
    и уже не хватает выделенных вычислительных мощностей CPU, постоянно прокачиваются гигабайты памяти или диск не успевает за всеми «хотелками» БД
  • блокировки от конкурирующих процессов

И если блокировки достаточно сложны в поимке и анализе, то для всего остального нам достаточно плана запроса, который можно получить с помощью оператора EXPLAIN (лучше, конечно, сразу EXPLAIN (ANALYZE, BUFFERS) ...) или модуля auto_explain.

Но, как сказано в той же документации,
«Понимание плана — это искусство, и чтобы овладеть им, нужен определённый опыт, …»
Но можно обойтись и без него, если воспользоваться подходящим инструментом!
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Просмотры14K
Комментарии 77

Одинадцать скрытых жемчужин Java 11

Java
Перевод
Tutorial

Java 11 не представил никаких новаторских функций, но содержит несколько жемчужин, о которых вы могли ещё не слышать. Уже смотрели на новинки в String, Optional, Collection и других рабочих лошадках? Если нет, то вы пришли по адресу: сегодня мы рассмотрим 11 скрытых жемчужин из Java 11!

Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Просмотры9.3K
Комментарии 2

Подключение Micrometer для веб-приложения на Java

Java
Tutorial
Micrometer используется для сбора метрик приложения JVM и позволяет экспортировать данные в различные системы мониторинга. В этой статье я расскажу, как подключить Micrometer для spring web приложения и экспортировать данные в Prometheus (хороший пост о нем). Так как мое приложение написано на Spring 3, то возможности использовать Spring boot без апгрейда в нем нет. Поэтому придется поработать руками.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Просмотры12K
Комментарии 0

Альтернативный Slf4j логгер «Бобина»

Java
Из песочницы
Приветствую, дорогие друзья!

Хочу поделиться своими рассуждениями на тему логирования и тем к чему они привели.

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

  • Log4j
  • Java Util Logging
  • Commons Logging
  • Logback
  • Log4j2
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Просмотры3.3K
Комментарии 31

Nginx cache: всё новое — хорошо забытое старое

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

Но что делать, когда ваш код “идеален”, все тяжелые запросы вынесены в фон, все, что можно, было закэшировано, а сервер все так же не дотягивает до нужных нам показателей SLA? Если есть возможность, то конечно можно докупить новых машин, распределить часть трафика и забыть о проблеме еще на некоторое время.

Но если вас не покидает чувство, что ваш сервер способен на большее, или есть магический параметр, ускоряющий работу сайта в 100 раз, то можно вспомнить о встроенной возможности nginx, позволяющей кэшировать ответы от бэкенда. Давайте разберем по порядку, что это, и как это может помочь увеличить количество обрабатываемых запросов сервером.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Просмотры52K
Комментарии 27

Как наконец-то начать писать тесты и не пожалеть об этом

Блог компании CUSTISТестирование IT-системПрограммированиеJavaТестирование веб-сервисов
Tutorial


Приходя на новый проект, я регулярно сталкиваюсь с одной из следующих ситуаций:

  1. Тестов нет совсем.
  2. Тестов мало, их редко пишут и не запускают на постоянной основе.
  3. Тесты присутствуют и включены в CI (Continuous Integration), но приносят больше вреда, чем пользы.

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

Что можно сделать, чтобы изменить сложившуюся ситуацию? Идея использования тестов не нова. При этом большинство туториалов напоминают знаменитую картинку про то, как нарисовать сову: подключаем JUnit, пишем первый тест, используем первый мок — и вперед! Такие статьи не отвечают на вопросы о том, какие тесты нужно писать, на что стоит обращать внимание и как со всем этим жить. Отсюда и родилась идея данной статьи. Я постарался кратко обобщить свой опыт внедрения тестов в разных проектах, чтобы облегчить этот путь для всех желающих.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Просмотры27K
Комментарии 43

Принципы SOLID, о которых должен знать каждый разработчик

Блог компании RUVDS.comРазработка веб-сайтовООП
Перевод
Объектно-ориентированное программирование принесло в разработку ПО новые подходы к проектированию приложений. В частности, ООП позволило программистам комбинировать сущности, объединённые некоей общей целью или функционалом, в отдельных классах, рассчитанных на решение самостоятельных задач и независимых от других частей приложения. Однако само по себе применение ООП не означает, что разработчик застрахован от возможности создания непонятного, запутанного кода, который тяжело поддерживать. Роберт Мартин, для того, чтобы помочь всем желающим разрабатывать качественные ООП-приложения, разработал пять принципов объектно-ориентированного программирования и проектирования, говоря о которых, с подачи Майкла Фэзерса, используют акроним SOLID.



Материал, перевод которого мы сегодня публикуем, посвящён основам SOLID и предназначен для начинающих разработчиков.
Читать дальше →
Всего голосов 42: ↑33 и ↓9+24
Просмотры106K
Комментарии 31

Boot yourself, Spring is coming (Часть 1)

Блог компании JUG Ru GroupПрограммированиеJavaКонференции
Евгений EvgenyBorisov Борисов (NAYA Technologies) и Кирилл tolkkv Толкачев (Циан.Финанс, Твиттер) рассказывают о самых важных и интересных моментах Spring Boot на примере стартера для воображаемого Железного банка.



В основе статьи — доклад Евгения и Кирилла с нашей конференции Joker 2017. Под катом — видео и текстовая расшифровка доклада.
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Просмотры28K
Комментарии 2

Взлет Хелидона

Java
Из песочницы
Привет, Хабр! Представляю вашему вниманию перевод статьи Дмитрия Корнилова Helidon Takes Flight. Я не являюсь сотрудником Oracle, но мне показалась интересной статья о новом, набирающем популярность, типе фреймворков. Итак, поехали…

Сегодня хороший день. Сегодня мы представляем новый Java-фреймворк из семейства MicroProfile для реализации микросервисов. Проект Helidon — это новый Java-фреймворк от Oracle.

Helidon, с греческого перевода ласточка, тип птиц, согласно Википедии, с стройным обтекаемым телом и заостренными крыльями, которые обеспечивают большую маневренность и… очень эффективный полет. Идеально подходит для полета в облаках.


Введение


Некоторое время назад началась работа над тем, чем сейчас является проект Helidon. Когда мы вошли на рынок облачных решений, а архитектура микросервисов стала очень популярной для создания облачных сервисов, мы поняли, что экспертизу разработки также необходимо расширять. Возможно создание микросервисов с использованием Java EE, но лучше иметь инфраструктуру, разработанную с нуля для создания микросервисов. Мы хотели создать легковесный набор библиотек, не требующих сервера приложений и облака для Java SE приложений. Эти библиотеки могут использоваться отдельно друг от друга, но при совместном использовании обеспечат разработчику создание каркаса микросервиса: начальную конфигурацию, подсистему безопасности и веб-сервер.

Уже предпринимаются попытки создать стандартные микросервисные системы из MicroProfile. MicroProfile довольно популярен в сообществе Java EE / Jakarta EE и предоставляет опыт разработки, подобный Java EE. Нам нравится идея и мы поддерживаем эту инициативу. Helidon реализует MicroProfile 1.1. Мы продолжим работу над внедрением новых версий MicroProfile и намерены поддерживать соответствующие стандарты Jakarta EE в этой области, поскольку они уже описаны.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Просмотры4.9K
Комментарии 1

Постгресовая стата без нервов и напрягов

Системное администрированиеPostgreSQLАдминистрирование баз данныхGo
Пару-тройку лет назад, разбираясь с очередной проблемой в производительности постгреса, мне надо было покопаться в постгресовой статистике. Копаясь во вьюхах и функциях я поймал себя на мысли что работать с тем что есть по дефолту, довольно не удобно.

И в самом деле, в постгресе довольно большая куча всяких метрик, все они представлены в виде представлений и функций. С одной стороны это очень удобно, написал SELECT и получил данные. С другой стороны, такая периодическая писанина слегка утомляет.

В тот же раз, мне нужно было не просто так разово посмотреть на какую-то стату, мне нужно было отслеживать её изменение. Не помню что это было точно, возможно надо было смотреть на изменение лага репликации, или с какой частотой вызывался какой-то конкретный запрос…
Так вот, поймав себя на мысли что мне мне хватает инструмента я начал поиски утилит под свою задачу, но увы, не нашел ничего того что мне бы зашло. Так появился pgCenter.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Просмотры11K
Комментарии 19

Реактивное программирование с JAX-RS

Блог компании OTUSПрограммированиеJava
Перевод
Всем привет!

Последний в этом году курс «Разработчик Java Enterprise» успешно запущен и у нас остался последний материал по данной теме, которым мы хотим поделиться с вами, где разбирается использование асинхронного подхода и стейджинга для разработки отзывчивых реактивных приложений.

Поехали.

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

Почти все языки и фреймворки используют этот подход в своей экосистеме, и последние версии Java — не исключение. В этой статье я объясню как можно применить реактивное программирование, используя последнюю версию JAX-RS в Java EE 8 и функционал Java 8.

Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Просмотры4.9K
Комментарии 1

Интеграция web-приложений с помощью Spring Cloud Contract

JavaТестирование веб-сервисов
Tutorial


В статье речь пойдет об интеграции веб-приложений, написанных с помощью Spring и работающих по HTTP. Название Spring Cloud Contract, на мой взгляд, вводит в заблуждение, так как не имеет ничего общего с cloud.


Речь пойдет об API контрактах.

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

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность