Pull to refresh
0
0
Артем Седых @sedyh

Backend / ML Developer

Send message

TKGate — open-source симулятор цифровых схем: проект снова жив

Reading time4 min
Views24K
TKGate ( tkgate.org ) — это симулятор цифровых схем на базе Verilog с открытым исходным кодом. Он работает в ОС Linux. Симулятор написан на связке C и Tk/Tcl. Автором проекта является Jeffery P. Hansen (неактивен). Сейчас разработкой занимается наш соотечественник Андрей Скворцов. На прошлой неделе после шестилетнего (!) перерыва в разработке вышла новая версия симулятора TKGate-2.0. Вот так выглядит TKGate:





Под катом более подробный разбор TKGate.
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments3

За что я не люблю Go

Reading time5 min
Views49K
На нынешней работе приходится использовать Go. Я хорошо познакомился с этим языком. Мне он не нравится, и меня озадачивает его популярность.

Эргономика разработки

Никогда не встречал языка, настолько открыто противостоящего удобству для разработчика. К примеру, Роб Пайк неоднократно и открыто враждебно относился к любому обсуждению подсветки синтаксиса на Go Playground. В ответ на разумно сформулированные вопросы пользователей его публичные ответы отсвечивали пренебрежением и неуважением:

Gofmt написан специально чтобы уменьшить количество бессмысленных дискуссий о форматировании кода, что отлично удалось. К сожалению, это никак не повлияло на количество бессмысленных дискуссий о подсветке синтаксиса или, как я предпочитаю её называть, spitzensparken blinkelichtzen.

И снова в ветке 2012 Go-Nuts:

Подсветка синтаксиса — для маленьких. В детстве меня учили арифметике на цветных палочках. Сейчас я вырос и использую чёрно-белые цифры.
Читать дальше →
Total votes 122: ↑100 and ↓22+78
Comments749

[Пятничное] ASCII граффити на ретро мониторах и других поверхностях

Reading time4 min
Views35K
Если человек, которому нравится пиксель арт – стар, то человек, понимающий эстетику ASCII – суперстар! Конечно, это – шутка, и возраст тут, скорее всего, не причем. Мой сын, например, любит играть в ASCII игры, которые я делаю. По крайней мере, он так говорит.

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

image

Под катом вы увидете множество ASCII композиций на мониторах древних компьютеров и терминалов, а также на других поверхностях, например, на почтовой марке. Возможно, некоторые сделанные мной изображения найдут отклик в ваших сердцах.
Total votes 75: ↑70 and ↓5+65
Comments53

Как киту съесть Java-приложение и не подавиться

Reading time8 min
Views62K
Здравствуйте, уважаемые хабравчане! Сегодня я хотел бы рассказать о том, как «скормить» Java-приложение докеру, как при этом лучше действовать, а чего делать не стоит. Я занимаюсь разработкой на Java более 10 лет, и последние года три провёл в самом тесном общении с Docker, так что у меня сложилось определённое представление о том, что он может и чего не может. Но ведь гипотезы надо проверять на практике, не так ли?

Я представил весь процесс как старую добрую компьютерную игру с тёплым ламповым пиксель-артом.

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

На сайте докера можно ознакомиться с рядом рекламных посулов – а именно, с обещанием увеличить скорость разработки и развертывания аж в 13 раз и повысить портативность в разработке (в частности, избавиться о сакраментального «работает на моей машине»). Но соответствует ли это реальности?

Сейчас мы попробуем доказать/опровергнуть эти утверждения.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments31

Чтобы разрешить труднейшие задачи по оптимизации, просто добавьте лазеры

Reading time10 min
Views10K

Странное устройство, известное, как «оптическая машина Изинга», способно управлять воздушным трафиком и помогать NFL составлять график игр




В прошлом году сбой в системе распределения работы между сотрудниками American Airlines мог привести к нарушению графика тысяч полётов в праздничный сезон. Ошибка позволяла пилотам отказываться от полётов без того, чтобы его заменял другой пилот, и под угрозой оказалось порядка 15 000 полётов. И хотя авиакомпании удалось вовремя отследить проблему и распределить сотрудников, этот бардак стал напоминанием о том, как сильно мы зависим от компьютеров в деле организации графика работы огромного количества сервисов и функций, от которых наше сообщество теперь зависит полностью.

К примеру, у всех крупных авиалиний работают сложные алгоритмы оптимизации графика, сопоставляющие пилотов и полёты. И хотя инцидент с American Airlines произошёл не напрямую по вине алгоритма, итог мог бы быть схожим. Такой отказ привёл бы к тому, что сотни тысяч людей оказались бы в затруднительном или очень неудобном положении, пока авиакомпания искала бы выход из ситуации.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments7

Ад своими руками

Reading time19 min
Views173K
Многие говорят – рассказывать надо не только об успехах, но и о неудачах. Полностью с этим согласен — понимание своих неудач, их причин и последствий, иногда ценнее любых успехов.

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

Но компанию, ее культуру это внедрение превратило в ад — бюрократический, системный и бессмысленный.

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

Обо всем по порядку.
Читать дальше →
Total votes 294: ↑285 and ↓9+276
Comments313

Orange Pi PC — полноценный мини-пк за 15 долларов на Linux

Reading time11 min
Views264K
image

Уже не раз замечал интерес к новой плате-клону всем известной Raspberry Pi от китайских энтузиастов из компании Xunlong под звучным названием Orange Pi PC. Прославилась она, в основном, своим неплохим «железом» (4-ядерный процессор Allwinner H3, 1Gb RAM и GPU Mali-400MP2 600MHz), наличием неплохого функционала (HDMI, AV, Ethernet, 3 USB, microUSB-OTG, инфракрасный порт для управления с пульта и GPIO-гребенка, по словам разработчиков, якобы «100% совместимая с Raspberry Pi), а главное — ЦЕНА. Создатели оценили свой девайс всего лишь в $15, ПЯТНАДЦАТЬ долларов, Карл! (скоро мы увидим, что это на самом деле весьма лукавое заявление, и конечный девайс стоит дороже).

Итак, давайте рассмотрим данную плату повнимательнее.

В рунете уже есть на нее обзоры, но все они представляли из себя нечто вида „установил андроид и подключил к телеку на кухне“. Я предлагаю взглянуть на плату с другой стороны, а именно — установить туда линукс, поюзать её как настоящий ПК, и даже немного поиграть.

Для тех, кому лень читать полностью, прорезюмирую:

Интересная штука, на данный момент вполне юзабельная, но имеется огромное количество огрехов и косяков, требующих допиливания напильником. Покупать только на свой страх и риск! Простому пользователю, рассчитывающему иметь готовое решение „из коробки“, я бы посоветовал обратить внимание на ТВ-боксы на базе Android или Windows. Продвинутому пользователю, знакомому с Linux, который не боится неизведанных челенджей в сыром продукте, и которому хотелось бы иметь неттоп для интернет-серфинга, работы с документами, программирования и скромных игр — must have! Особенно с учетом цены.
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments56

Топ книг по фреймворку Django

Reading time4 min
Views118K


Веб-фреймворк Django подробно документирован на официальном сайте: там и теория, и справочная информация, и руководства для новичков. Однако, несмотря на качество, далеко не всем новичкам эта документация приходится по душе. Что ж, у вас есть два пути. Первый — записаться на обучающие курсы. Второй — в очередной раз заглянуть на полки интернет-магазинов. Этим мы сегодня с командой GeekBrains и займёмся.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments10

Первоисточник: «закон Конвея»

Reading time14 min
Views17K
image

Примечание автора спустя 42 года после публикации:

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

Любая организация, проектирующая систему (трактуется здесь шире, чем просто информационная система), неизбежно создаст такую модель, которая будет повторять коммуникационную структуру самой организации.

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

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

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


Как комитеты создают новое?

Мелвин Конвей (Melvin E. Conway)
Оригинал PDF.
Total votes 15: ↑15 and ↓0+15
Comments5

Изучаем Latency: теория массового обслуживания

Reading time27 min
Views47K
Тема latency со временем становится интересной в разных системах в Яндексе и не только. Происходит это по мере того, как в этих системах появляются какие-либо гарантии по обслуживанию. Очевидно, дело в том, что важно не только пообещать какую-то возможность пользователям, но и гарантировать её получение с разумным временем отклика. «Разумность» времени отклика, конечно, сильно различается для разных систем, но базовые принципы, по которым во всех системах проявляется латентность, — общие, и их вполне можно рассматривать в отрыве от конкретики.

Меня зовут Сергей Трифонов, я работаю в команде Real-Time Map Reduce в Яндексе. Мы разрабатываем платформу для обработки потока данных в реальном времени с секундным и субсекундным временем отклика. Платформа доступна для внутренних пользователей и позволяет им выполнять прикладной код над постоянно поступающими потоками данных. Я попытаюсь сделать краткий обзор основных концепций человечества на тему анализа latency за последние сто десять лет, и сейчас мы попробуем понять, что именно про latency можно узнать, применяя теорию массового обслуживания.
Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments3

Все, что вы хотели знать об обработке запросов, но стеснялись спросить

Reading time12 min
Views19K

Что такое сетевой сервис? Это программа, которая принимает входящие запросы по сети и обрабатывает их, возможно, возвращая ответы.


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


Выбор способа обработки запросов имеет далеко идущие последствия. Как сделать чат-сервис, выдерживающий 100.000 одновременных соединений? Какой подход выбрать для извлечения данных из потока слабоструктурированных файлов? Неправильный выбор приведет к пустой трате сил и времени.


В статье рассмотрены такие подходы как пул процессов/потоков, событийно-ориентированная обработка, half sync/half async паттерн и многие другие. Приводятся многочисленные примеры, рассматриваются плюсы и минусы подходов, их особенности и области применения.

Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments5

Интеграция Raspberry Pi с NetBeans 8.0

Reading time3 min
Views9.6K
В марте этого года вышла новая версия NetBeans 8.0. Одной из её особенностей стала возможность работы через интерфейс NetBeans с встроенными версиями Java SE и ME. Разработчиками IDE от Oracle в качестве тестовой платформы предлагается использовать Raspberry Pi с устанавливаемой удалённо Java SE Embedded. Прежде я уже публиковал два перевода из журнала MagPi о Java программировании на Raspberry Pi, но в основном они были восприняты негативно, так как читатели не увидели в них чего-то особенного, характерного именно для такой связки, как Java и Raspberry Pi. Надеюсь, что после знакомства с этим уже оригинальным руководством, мне удастся немного смягчить позицию читателей в вопросе особенности подхода к Java программированию на встроенных системах типа Raspberry Pi.

Подготавливаем Raspberry Pi


Настроек Raspberry Pi немного. Ваш Raspberry Pi должен быть доступен в сети через SSH, а для вас на нём для чтения и записи должна быть доступна рабочая директория.

Подготавливаем NetBeans


Перед тем, как устанавливать новую платформу Java в NetBeans, я рекомендую прослушать небольшой доклад Льва Приймы по теме Java SE Embedded 8.


Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments0

Введение в реактивное программирование

Reading time11 min
Views50K
Здравствуйте. В этой статье я пробегусь галопом по Европам, а именно — расскажу, что понимают под реактивным программированием, познакомлю с акторами, реактивными потоками, и наконец, при помощи реактивных потоков мы сделаем распознавание мышиных жестов, как в старой Opera и её духовном наследнике — Vivaldi.

Цель — познакомить с основными концепциями реактивного программирования и показать, что не всё так сложно и страшно, как может показаться на первый взгляд.

image
Источник
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments20

Зачем нужна эмпатия в мире технологий

Reading time4 min
Views5.2K

Все, что мне нужно как разработчику, — навыки программирования, верно?




От переводчика: публикуем для вас статью веб-девелопера Джо Франкетти об эмпатии в мире программирования и значении этого чувства для всей индустрии IT.

При разработке софта мы практически всё внимание уделяем технологиям. Программисты стараются использовать наиболее современные методы, новые библиотеки и пакеты. Но в этом стремлении они порой забывают о своих пользователях — тех, кто будет работать с программой или сервисом.
Total votes 21: ↑17 and ↓4+13
Comments2

Нужно больше разных Blur-ов

Reading time5 min
Views14K
Размытие изображения посредством фильтра Gaussian Blur широко используется в самых разных задачах. Но иногда хочется чуть большего разнообразия, чем просто один фильтр на все случаи жизни, в котором регулировке поддаётся только один параметр — его размер. В этой статье мы рассмотрим несколько других реализаций размытия.


Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments11

Зависимые типы — будущее языков программирования

Reading time7 min
Views27K
Всем привет!

Несмотря на диковинность и некоторую отвлеченность рассматриваемой сегодня темы — надеемся, что она сможет разнообразить вам выходные. В конце поста помещаем три ссылки от автора, позволяющие познакомиться с зависимой типизацией в Idris, F* и JavaScript
Читать дальше →
Total votes 40: ↑35 and ↓5+30
Comments107

Отладка бага, который не воспроизводится

Reading time6 min
Views18K
10 октября 2018 года наша команда выпустила новую версию приложения на React Native. Мы рады и гордимся этим.

Но ужас-то какой: через несколько часов внезапно увеличивается количество сбоев под Android.


10 000 сбоев под Android

Наш инструмент мониторинга сбоев Sentry сходит с ума.
Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments22

Математика в Gamedev по-простому. Матрицы и аффинные преобразования

Reading time7 min
Views31K
Всем привет! Меня зовут Гриша, и я основатель CGDevs. Сегодня хочется продолжить тему математики в геймдеве. В предыдущей статье были показаны базовые примеры использования векторов и интегралов в Unity проектах, а сейчас поговорим о матрицах и аффинных преобразованиях. Если вы хорошо разбираетесь в матричной арифметике; знаете, что такое TRS и как с ним работать; что такое преобразование Хаусхолдера – то вы возможно не найдёте для себя ничего нового. Говорить мы будем в контексте 3D графики. Если же вам интересна эта тема – добро пожаловать под кат.


Читать дальше →
Total votes 31: ↑24 and ↓7+17
Comments24

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity