Как стать автором
Обновить
7
0.1
Андрей Абакумов @ScratchBoom

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

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

1989: Марс атакует или символы-фантомы оранжевой плазмы лэптопа Toshiba T3100E

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров6.5K
image

Здравствуйте, уважаемые ценители старого компьютерного железа!

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

Первое, что бросается в глаза — это дисплей с его морковно-апельсиновым свечением и технологией GAS-Plasma. Он привлекает и притягивает взор. Его я и вынес на заставку для красоты. В статье узнаем принцип работы газо-плазменного дисплея и заодно измерим температуру его поверхности, глянув на экран в тепловизор.

Из аппаратных «вкусностей», описываемый лэптоп оснащен внешней полноценной 8-ми битной ISA — шиной, которую я использовал, загрузившись с ее помощью и проприетарным слотом для подключения модема.

Ради эксперимента были загружены следующие операционные системы: MS-DOS, оболочка Windows 3.0 и крошечный Linux ELKS v0.7.0, а также MS-DOS игры.

Под катом ряд фотографий, отражающих процедуру профилактики, видеоработы, «видеовзгляд» через тепловизор. Фото кликабельны.

Надеюсь, будет интересно!
Читать дальше →
Всего голосов 56: ↑56 и ↓0+56
Комментарии28

Компилятор за выходные: избавляемся от переменных

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

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

Продолжаем разговор о минималистичном компиляторе, который вполне реально написать за выходные. Задачей стоит транслировать код из придуманного мной языка в x86 ассемблер. Мой компилятор состоит из 611 строк кода, при этом не имеет ни единой зависимости:

ssloy@khronos:~/tinycompiler$ cat *.py|wc -l

611

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

Итак, тема сегодняшнего разговора: генерация кода на питоне без использования переменных.

Читать далее
Всего голосов 43: ↑42 и ↓1+41
Комментарии35

Postmortem, или как разобрать инцидент и ни с кем не разругаться (ну… или почти ни с кем)

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров8.9K

Цель Postmortem'a - исследовать некую новую, неочевидную или неожиданную ситуацию или ошибку, с которыми вы / компания не хотите сталкиваться снова. Рассмотрение инцидента, или проблемы для того, чтобы понять, что всё-таки произошло, и предотвратить это в будущем, ну, или по крайней мере научиться раньше обнаруживать, минимизировать ущерб и пр.

К делу
Всего голосов 27: ↑24 и ↓3+21
Комментарии1

Патчим байт-код для просмотра логов в Android. Подробная инструкция и примеры кода

Время на прочтение8 мин
Количество просмотров3.1K

Привет, Хабр! Меня зовут Саша Лепехин, я разрабатываю мобильное приложение СберИнвестор под Android. Во время разработки и тестирования мобильного приложения мне часто нужно  просматривать логи внутри приложения, причем без подключения по adb.

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

Читать далее
Всего голосов 21: ↑20 и ↓1+19
Комментарии3

Автоматическая расстановка мебели: миф или реальность?

Время на прочтение6 мин
Количество просмотров11K

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

Есть много статей о решении этой задачи: с применением GAN, который генерирует на плане помещения цветовую область для размещения мебели; с помощью классических методов на основе набора правил; или с помощью более редких графовых методов. Но все существующие методы объединяет объединяет то, что все они или не реализованы (либо находятся в закрытом доступе), или не учитывают, например, окна и двери, а также тип помещения (гостиная, спальня, детская, кухня, санузел и т.д.). Мы постарались избавиться от этих недостатков в своём инструменте.

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии7

Опыт организации диалога с модулями ICP DAS I-7000 по RS-485 используя только bash

Время на прочтение4 мин
Количество просмотров2.8K

В моем конкретном случае все казалось нерадужно, я опускал руки, думал о неизбежности начать писать на Си, компилировать ядро, уходить в отшельники для отладки приложения и т.п. Нельзя сказать что результата в Bash не было, он просто не устраивал. Пока программированием по несколько строк, не отрываясь от повседневных задач сисадмина, код не "созрел" до удовлетворительного результата.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии5

Визуализация данных в интерфейсе

Время на прочтение8 мин
Количество просмотров12K

Меня зовут Илона, я Senior Experience Designer в EPAM. Я проектирую сложные интерфейсы для зарубежных заказчиков, выступаю с докладами, менторю дизайнеров. В свободное время преподаю проектирование интерфейсов в магистратуре Университета ИТМО и веду Телеграм-канал о UX-дизайне.

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

Читать далее
Всего голосов 15: ↑13 и ↓2+11
Комментарии7

Android — запрещенные приемы

Время на прочтение8 мин
Количество просмотров9.8K

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

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

Читать далее
Всего голосов 13: ↑9 и ↓4+5
Комментарии4

Нет комарам! Обзор антимоскитных «фитобоеприпасов»

Время на прочтение15 мин
Количество просмотров30K
Написав статью про растения отпугивающие клещей я получил большое количество вопросов по поводу других насекомых. И тут уж комары — лидеры. Им этот обзор и посвящается, объединил в одно сообщение все заметки из своего канала с хэштегом #mosquitocide


Скажем НЕТ Комарам!
Всего голосов 60: ↑58 и ↓2+56
Комментарии74

Java и Linux — особенности эксплуатации

Время на прочтение23 мин
Количество просмотров60K
Java — очень распространённая платформа, на ней пишут очень разные вещи, начиная от Big Data, заканчивая микросервисами, монолитами, enterprise и прочим. И, как правило, всё это развёртывают на Linux серверах. При этом, соответственно, те люди, которые пишут на Java, зачастую делают это совсем на других операционных системах. Там они:

  • пишут код;
  • отлаживают, тестируют;
  • после этого упаковывают в jar;
  • отправляют на Linux, и оно работает.

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



С другой стороны, есть те, кто занимается администрированием серверов, на их сервера устанавливают JVM, отправляют jar и war-файлы, а с точки зрения мира Linux все это:

  • чужеродное;
  • проприетарное;
  • собирается не из исходников;
  • поставляется какими-то jar-архивами;
  • «отъедает» всю память на сервере;
  • вообще, ведёт себя не по-человечески.

Цель доклада Алексея Рагозина на Highload++, расшифровка которого идет далее, была в том, чтобы рассказать особенности Java для «линуксоидов» и, соответственно, Linux — Java-разработчикам.
Всего голосов 55: ↑53 и ↓2+51
Комментарии18

Что можно продиагностировать в глазу на сто рублей

Время на прочтение8 мин
Количество просмотров33K


Тут Milfgard недавно пост про очки делал, и как-то всплыл в обсуждениях вопрос «А зачем платить за диагностику в клинике, если в любой оптике вам ее сделают за сто рублей. Или вообще бесплатно.» После пятиминутного ступора и пары нервно выпитых чашек кофе пришло осознание того, что многие просто не представляют, из чего состоит полноценное обследование глаз. Короче говоря, сейчас расскажу, как все должно выглядеть, если в клинике есть хорошие врачи и правильное оборудование. Под катом много фотографий, мы постарались показать то, что обычно пациент не видит — непосредственно рабочие интерфейсы приборов, с которыми работает врач. А в конце публикации мы приготовили небольшой приятный бонус.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии93

Самое опасное слово в разработке программного обеспечения

Время на прочтение2 мин
Количество просмотров37K
«Просто размести это где-нибудь на сервере».

«Просто добавь кнопку “Избранного” справа от элемента».

«Просто добавь [вставьте здесь сложную опцию] в экране настроек».

Использование слова «просто» указывает на множество сделанных допущений. Несколько месяцев назад Брэд Фрост поделился некоторыми мыслями, какое отношение к знанию имеет это слово.

Слово «просто» заставляет меня чувствовать себя идиотом. «Просто» предполагает, что у меня есть определённый бэкграунд, что я изучал определённые предметы в университете, что я хорошо разбираюсь в определённых технологиях и прочитал все правильные книги, статьи и справочные ресурсы.
Читать дальше →
Всего голосов 68: ↑58 и ↓10+48
Комментарии87

Автоматическое дифференцирование

Время на прочтение3 мин
Количество просмотров12K
imageВ программировании один из заветов — не дублировать функциональность. Иначе мы получаем код, в котором одни участки нетривиально зависят от других. При реализации части задач этому принципу легко следовать, но в других возникают проблемы: рассмотрим софт, который использует не очень хитрые математические алгоритмы, требующие работы с функциями и их производными.
Читать дальше →
Всего голосов 55: ↑43 и ↓12+31
Комментарии50

Ваш язык программирования — отстой

Время на прочтение54 мин
Количество просмотров139K
1 Почему JavaScript отстой
• 1.1 Плохая конструкция
• 1.2 Система типов
• 1.3 Плохие функции
• 1.4 Отсутствующие функции
• 1.5 DOM
2 Почему Lua отстой
3 Почему PHP отстой
• 3.1 Исправлено в поддерживаемых в настоящее время версиях
4 Почему Perl 5 отстой
5 Почему Python отстой
• 5.1 Исправлено в Python 3
6 Почему Ruby отстой
7 Почему Flex/ActionScript отстой
8 Почему скриптовые языки отстой
9 Почему C отстой
10 Почему C++ отстой
11 Почему .NET отстой
12 Почему C# отстой
13 Почему VB.NET отстой
15 Почему Objective-C отстой
16 Почему Java отстой
• 16.1 Синтаксис
• 16.2 Исправлено в Java 7 (2011)
• 16.3 Модель
• 16.4 Библиотека
• 16.5 Обсуждение
17 Почему Backbase отстой
18 Почему XML отстой
19 Почему отстой XSLT/XPath
20 Почему CSS отстой
• 20.1 Исправлено в CSS3
21 Почему Scala отстой
22 Почему Haskell отстой
23 Почему Closure отстой
24 Почему Go отстой
• 24.1 Базовые средства программирования (базовый язык)
• 24.2 Взаимосовместимость
• 24.3 Стандартная библиотека
• 24.4 Набор инструментальных средств
• 24.5 Сообщество
25 Почему Rust отстой
• 25.1 Безопасность
• 25.2 Синтаксис
• 25.3 Конструкция API и система типов
• 25.4 Сообщество
• 25.5 Набор инструментальных средств

Почему JavaScript отстой


Учтите, что некоторые положения относятся не к самому JavaScript, а к программным интерфейсам веб-приложений (https://developer.mozilla.org/en/docs/Web/API).

Плохая конструкция

• Каждый скрипт исполняется в едином глобальном пространстве имён, доступ в которое возможен в браузерах с оконным объектом.
• Camel-регистр никуда не годится:

XMLHttpRequest
HTMLHRElement

Читать дальше →
Всего голосов 314: ↑167 и ↓147+20
Комментарии353

Программирование&Музыка: понимаем и пишем VSTi синтезатор на C# WPF. Часть 1

Время на прочтение26 мин
Количество просмотров50K

Занимаясь музыкальным творчеством, я часто делаю аранжировки и записи на компьютере — используя кучу всяких VST плагинов и инструментов. Стыдно признаться — я никогда не понимал, как "накручивают" звуки в синтезаторах. Программирование позволило мне написать свой синтезатор, "пропустить через себя" процесс создания звука.


Я планирую несколько статей, в которых будет пошагово рассказано, как написать свой VST плагин/инструмент: программирование осциллятора, частотного фильтра, различных эффектов и модуляции параметров. Упор будет сделан на практику, объяснение программисту простым языком, как же все это работает. Теорию (суровые выводы и доказательства) обойдем стороной (естественно, будут ссылки на статьи и книги).


Обычно плагины пишутся на C++ (кроссплатформенность, возможность эффективно реализовать алгоритмы), но я решил выбрать более подходящий для меня язык — C#; сфокусироваться на изучении самого синтезатора, алгоритмов, а не технических деталей программирования. Для создания красивого интерфейса я использовал WPF. Возможность использования архитектуры .NET дала возможность библиотека-обертка VST. NET.


Ниже представлен обзорный ролик моего простого синтезатора, полученных интересных звучаний.



Предстоит нелегкий путь, если вы готовы — добро пожаловать под кат.


Всего голосов 55: ↑54 и ↓1+53
Комментарии20

Аудиодайджест 7: Научный подход к изучению звука

Время на прочтение3 мин
Количество просмотров8K


Фото brett jordan / CC

[Аудиодайджест #6]

Звук – обширная площадка для исследований. В нашем блоге «Мир Hi-Fi» мы уже рассказывали о влиянии музыки на физиологию и продуктивность. На этот раз мы решили сделать подборку из 12 источников, в которых приводятся результаты научных исследований в областях акустики, аудиотехники и восприятия звука.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии1

Гильоши

Время на прочтение11 мин
Количество просмотров40K
Гильоши — это характерные узоры на деньгах и ценных бумагах. Они красивы, и сочетают в себе одновременно заметную сложность с внутренней простотой — когда кажется, что ты вот-вот уловишь принцип, но он каждый раз от тебя ускользает. Возможно, именно это и есть определение красоты.
Читать дальше →
Всего голосов 123: ↑123 и ↓0+123
Комментарии56

40 туториалов для создания векторных иллюстраций

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

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

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

Приступая к работе


1. Изучение векторной иллюстрации за 10 шагов



В этом уроке объясняется, каким образом создавать векторные иллюстрации используя Adobe Illustrator. Приводится объяснение ключевых параметров и инструментов, которое дополняется советами экспертов.

Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии8

Отладка шейдеров на Java + Groovy

Время на прочтение5 мин
Количество просмотров11K


Подсветка синтаксиса шейдеров. Связь между шейдерами и внешними структурами данных. Юнит-тесты для шейдеров, дебаг, рефакторинг, статический анализ кода, и вообще полная поддержка IDE. О том, как всё это получить, в чём подвох, и что прописать в мавене…
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии11

Фильтр Маджвика

Время на прочтение38 мин
Количество просмотров131K

Предисловие от переводчика


Здесь представлен один из новейших методов расчёта ориентации в пространстве по показаниям датчиков акселерометра, гироскопа и компаса — фильтр Маджвика, который, по словам автора, даёт результат лучший, чем применение фильтра на основе метода Калмана в результатах и производительности. Автор — Себастьян Маджвик (его интернет-магазин). Метод описан в статье на английском. Данная работа защищена в Университете г. Бристоля Перевода я не нашёл. Переводчик из меня так себе, особенно таких сложных текстов. Но нам же интересно, что за метод?

Кое-где буду от себя добавлять — там текст выделен курсивом. Мною найдено более 10 опечаток в оригинальном тексте. Вообще было довольно трудно, поэтому помощь приветствуется — пишите в комментариях, где перефразировать нужно, в общем, где что не так.


Читать дальше →
Всего голосов 66: ↑64 и ↓2+62
Комментарии17
1
23 ...

Информация

В рейтинге
2 570-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность