Как стать автором
Обновить
4
0

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

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

Смертельная палитра: токсикология красителей

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

Сегодня мы знаем об окружающем нас мире достаточно много, но далеко не всё. Об этом вам с интересом расскажет любой генетик, астрофизик, микробиолог или химик. Возможно сейчас открытие, которое бы изменило наши представления о мире, перевернув всё, что мы знаем с ног на голову, сделать нелегко. Возможно, это практически невозможно. Но что если бы вам однажды сказали, что то, что вы знаете, - ложь. Что один из продуктов современной химии, который мы используем везде и во всём многие годы, убивает нас, а исследования, ученые статьи и всё, что мы наоткрывали, напридумывали, понаписали в книгах - всё это полный бред, а каждый второй предмет в вашей квартире отравлен. И так во всём мире - от главы государства до последнего бедняка с его скудным скарбом. Именно это однажды и произошло, и сегодня мы ненадолго погрузимся в историю токсикологии и удивительное открытие доктора Генри Летеби, в которое никто из его современников не поверил.

Изумрудно-зелёный.

Зелёный насыщенный цвет на самом деле не был таким уж прямо новым и необычным. С глубокой античности мы использовали истертый малахит или пигмент «зеленая земля» из разных соединений кремния. Цвета были бледноваты, и на полотнах до конца 18 столетия увидеть яркую сочную зелень у вас не выйдет. Всё изменилось, когда смогли добыть настоящий изумрудно-зеленый цвет. Он был получен в 1775 году из красителя «Зелень Шееле». Краситель назван в честь шведского ученого - Карла Вильгельма Шееля, того самого, который открыл молочную кислоту и хлор, и о которых я писал в статье про молоко. К несчастью, в те годы, описывая открытые вещества, нужно было указывать в том числе и вкус. К 1786 году исследования тяжёлых металлов и различных их соединений стали комбинироваться у Карла в симптомы. У него появились поражения кожи - потемнения эпителия дополнились утолщениями и язвами, появилась страшная комбинация диареи и сонливости. Вскоре талантливый химик умер. Предположительно, причиной смерти стало поражение почек.

Слева: фреска в церкви св.Франциско в Монтефалько, Италия, авторства Пьетро Ваннучи. Справа: автопортрет Пьетро. Начало 16 в., зеленые пигменты: малахит и кремний.

Читать далее
Всего голосов 103: ↑99 и ↓4+95
Комментарии63

Гигатрон — самодельный микрокомпьютер без процессора

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


Микрокомпьютер Gigatron — это минималистичный 8-битный ретро-компьютер построенный по необычному дизайну: в нём нет никаких сложных логических интегральных схем, нет даже микропроцессора! Его CPU построен на классических логических элементах серии 7400, также известных как микросхемы на ТТЛ-логике. По сути все элементы компьютера разом и есть процессор. Эти простые чипы не только формируют CPU, но ещё и выполняют все задачи, которые обычно требуют дополнительной периферии. Несмотря на простую и компактную конструкцию, Gigatron работает как 8-битный одноплатный микрокомпьютер, на котором можно играть в видеоигры.

Гигатрон — хобби-проект Уолтера Белгера, хакера, специалиста по информационной безопасности и ныне директора по информационной безопасности компании Philips. В этот понедельник 9 сентября Уолтер приезжает в наш Хакспейс, где будет рассказывать об устройстве Гигатрона, истории создания проекта и покажет его живьем.

Под катом подробнее про Гигатрон и анонс встречи с создателем в Москве.
Всего голосов 56: ↑55 и ↓1+54
Комментарии52

Как и зачем читать даташиты, если микроконтроллеры – ваше хобби

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


Микроэлектроника – модное увлечение последних лет благодаря волшебному Arduino. Но вот беда: при должном интересе перерасти DigitalWrite() получается быстро, а что делать дальше – не совсем ясно. Разработчики Arduino приложили немало усилий для снижения порога вхождения в свою экосистему, но за ее пределами по-прежнему колышется темный лес суровой схемотехники, малодоступный любителю.


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


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

Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии29

Фибоначчи на собеседовании

Время на прочтение8 мин
Количество просмотров124K
Вычисление ряда Фибоначчи — это классическая алгоритмическая задача, потому её нередко дают на собеседованиях, когда хотят проверить, что кандидат в принципе хоть как-то умеет в алгоритмы. Предположим, вы тот самый кандидат. Вам дали задание: на языке JavaScript написать функцию fib(n), возвращающую энное число Фибоначчи. Считаем, что нулевое число Фибоначчи — это нуль. Проверка корректности аргумента не требуется. Какие у вас есть варианты?

image
Выбирай мудро
Всего голосов 183: ↑177 и ↓6+171
Комментарии135

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

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


Читать дальше →
Всего голосов 54: ↑53 и ↓1+52
Комментарии11

Визуальное программирование — почему это плохая идея

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

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

Язык визуального программирования — это такой язык, который позволяет программисту создавать программы, манипулируя графическими элементами, а не печатая текстовые команды. Известным примером является Scratch, язык визуального программирования родом из MIT, который используется для обучения детей. Его преимущества заключаются в том, что он делает программирование более доступным для новичков и не-программистов.

В 1990-х годах было очень популярное движение по внедрению визуального программирования в корпоративную среду с помощью так называемых CASE-инструментов, где корпоративные системы можно было бы определять с помощью UML и генерировать [их код] без необходимости в привлечении обученных разработчиков программного обеспечения. Это связано с концепцией «round tripping» («туда и обратно»), где система может быть смоделирована визуально, программный код будет генерироваться из полученных моделей, а любые изменения кода могут быть возвращены обратно в модель. Увы, подобные инструменты так и не смогли выполнить свою миссию, и большинство из экспериментов [по их внедрению] в настоящее время в значительной степени заброшены.
Читать дальше →
Всего голосов 54: ↑45 и ↓9+36
Комментарии710

Как превратить «столетний» usb-хаб в «умный» управляемый и сэкономить при этом 300$

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

Как-то давно понадобился мне хаб, желательно с большим количеством портов и c достаточно удобной формой, пригодной для встраивания вместо флоппи-дисковода в отсек 3,5''. Беглый просмотр барахолки подкинул модель D-link DUB-H7, да еще и в комбинации «2 по цене 1». Внешний осмотр ничего особенного не дал, хаб как хаб, сделан добротно, капитальный «принтерный» USB AM-BM на оборотной стороне и 3 А блок питания. Как всегда первым делом разобрал, порадовался малому количеству пустых мест вместо элементов вкупе с качественной пайкой и успокоился. Правда на всякий случай зашел в интернет посмотреть, а что это за хаб и есть ли интересные проекты с его участием. Проектов не оказалось, отзывы пользователей 50/50, в общем, никакой динамики. Хаб на протяжении 5-7 лет довольно сносно работал и выполнял свою задачу, потом плавно переместился в коробку для электронного хлама и вполне возможно сгинул бы в итоге вместе с безызвестными переходниками, адаптерами и т. п. Но произошло у меня в жизни событие, которое заставило-таки меня покопаться в мешках со старым барахлом, найти этот, как оказалось уникальный D-link, и стряхнув пыль извлечь его на божий свет. Если интересно послушать зачем — добро пожаловать под cut.


миг-миг-миг
Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии34

Программирование с PyUSB 1.0

Время на прочтение15 мин
Количество просмотров50K
От переводчика:
Это перевод руководства Programming with PyUSB 1.0
Данное руководство написано силами разработчиков PyUSB, однако быстро пробежавшись по коммитам я полагаю, что основной автор руководства — walac.


Позвольте мне представиться


PyUSB 1.0 — это библиотека Python обеспечивающая легкий доступ к USB. PyUSB предоставляет различные функции:

  • На 100% написана на Python:
    В отличии от версий 0.x, которые были написаны на C, версия 1.0 написанна на Python. Это позволяет программистам на Python без опыта работы на C лучше понять как работает PyUSB.
  • Нейтральность платформы:
    Версия 1.0 включает в себя фронтенд-бэкенд схему. Она изолирует API от специфичных с точки зрения системы деталей реализации. Соединяет эти два слоя интерфейс IBackend. PyUSB идет вместе со встроенными бэкендами для libusb 0.1, libusb 1.0 и OpenUSB. Вы можете сами написать свой бэкенд, если хотите.
  • Портативность:
    PyUSB должен запускаться на любой платформе с Python >= 2.4, ctypes и, по крайней мере, одним из поддерживаемых встроенных бэкендов.
  • Простота:
    Взаимодействие с устройством USB никогда не было таким простым! USB — сложный протокол, а у PyUSB есть хорошие предустановки для наиболее распространенных конфигураций.
  • Поддержка изохронных передач:
    PyUSB поддерживает изохронные передачи, если лежащий в основе бэкенд поддерживает их.

Несмотря на то, что PyUSB делает программирование USB менее болезненным, в этом туториале предполагается, что у Вас есть минимальные знания USB протокола. Если Вы ничего не знаете о USB, я рекомендую Вам прекрасную книгу Яна Аксельсона «Совершенный USB» (Jan Axelson «USB Complete»).
Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии5

Почему «Юному технику» не удастся построить лазер

Время на прочтение8 мин
Количество просмотров86K
Приветствую всех снова. В комментариях к моей первой статье про cамодельную лазерную установку снова вспомнили статью из журнала «Юный техник», которая называлась «Строим лазер». В ней предложено поэтапное описание сборки импульсного лазера, работающего на жидком растворе органического красителя. Текст статьи доступен через 2 минуты гугления.

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

image
Читать дальше →
Всего голосов 121: ↑119 и ↓2+117
Комментарии179

Как я чуть не подхватил вирус, пытаясь продать сапоги

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


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

Размышляя о судьбе ненужных вещей, я прикидывал, что с ними делать: выкинуть, порезать на тряпки, отдать донашивать младшему брату? Но для одной вещи ни один из этих способов не годился: то были кожаные сапоги 44 размера приличного вида, но порядком мне надоевшие. Их я решил продать на Avito. Загрузил фотографии, указал ненастоящее имя (информационная безопасность же), выставил сапоги, пару других вещей и пошёл спать. Откуда мне было знать, что это обернётся длительным анализом приложения на предмет скрытых угроз?
Читать дальше →
Всего голосов 165: ↑154 и ↓11+143
Комментарии85

Настолько ли стар твой Windows?

Время на прочтение3 мин
Количество просмотров58K
Как показывает бурное обсуждение последних статей на Хабре, посвященных Windows системам, большое количество продвинутых и не очень пользователей отдает свое предпочтение «устаревшей» Windows 7 и не торопится переходить на Windows 10. Причины бывают очень разные — от недовольства политикой конфиденциальности и большим объемом телеметрии до банальной привычки и нежелания идти на поводу у маркетологов Microsoft.

В данной статье я хочу рассмотреть случай, когда Windows 7, да и более ранние версии, требуются разработчику для качественного решения своих рабочих обязанностей. Не секрет, что в корпоративном секторе доля Windows 7 все еще очень велика, а так как компания Microsoft продлила ее расширенную поддержку до 2023 года, в ближайшее время вряд ли что-то кардинально изменится. И это не говоря о том, что встречаются и совсем древние системы с Server 2003 и 2008, на которых работает какое-то старое, но крайне нужное ПО, портировать которое никто не берется исходя из принципа «работает – не трогай». Однако, обновить Вашу «устаревшую» операционную систему можно гораздо быстрее и проще, чем кажется.
Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии183

Быстрый Sin и Cos на встроенном ASM для Delphi

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

Возникла потребность написать быстрое вычисление Sin и Cos. За основу для вычислений взял разложение по ряду Тейлора. Использую в 3D-системах (OpenGL и графическая библиотека своей разработки). К сожалению свести ряд «идеально» для Double не получается, но это компенсируется хорошим ускорением. Код написан на встроенном в Delphi XE6 ассемблере. Используется SSE2.

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

В итоге:

  1. Достигнутая точность результата равна: 10.e-13
  2. Максимальное расхождение с CPU — 0.000000000000045.
  3. Скорость увеличена в сравнении с CPU в 4.75 раза.
  4. Скорость увеличена в сравнении с Math.Sin и Math.Cos в 2.6 раза.

Для теста использовал процессор Intel Core-i7 6950X Extreme 3.0 ГГц.
Исходный текст на Delphi встроен в комментарии к ассемблеру.
Читать дальше →
Всего голосов 34: ↑21 и ↓13+8
Комментарии73

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

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


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

Из-за этого большинство подобных материалов мало полезны, несмотря на то, что могут содержать толковые книги. Мне давно хотелось написать полезный обзор, который не станет навязывать определенные материалы, а позволит читателю выбрать наиболее подходящие.
Читать дальше →
Всего голосов 62: ↑55 и ↓7+48
Комментарии79

Взломщики генома продемонстрировали, что ни одна ДНК уже не будет анонимной

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

В 2013 году молодой специалист по вычислительной биологии, Янив Эрлих, шокировал исследовательское сообщество, показав, как можно раскрыть личности людей, перечисленных в анонимной генетической базе данных, используя только соединение с интернетом. Регуляторы отреагировали на это, ограничив доступ к наборам анонимных биомедицинских генетических данных. Представитель Национальных институтов здоровья сообщил тогда: «Шансы на то, что это случится, для большинства людей малы, хотя и не нулевые».

Перенесёмся через пять лет, и мы обнаружим, что количество информации о ДНК, хранящейся в цифровых базах, увеличился взрывообразно, и этот рост не собирается замедляться. Потребительские компании вроде 23andMe и Ancestry составили генетические профили на более 12 млн людей, согласно недавним оценкам. Пользователи, скачавшие свою информацию, могут по желанию добавить её на публичные генеалогические сайты, например, GEDmatch, приобретший в этом году дурную славу благодаря своей роли в наводке полиции на подозреваемого в деле «убийцы Золотого штата».
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии54

Мечта летать с электротехническим уклоном

Время на прочтение5 мин
Количество просмотров28K
Эта статья написана для обобщения моего опыта по самостоятельному изготовлению силовой установки для электропарамотора, а собственно: электродвигателя, контроллера, батареи, и прочего навесного оборудования.


Читать дальше →
Всего голосов 129: ↑128 и ↓1+127
Комментарии109

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

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

Встретил я как-то пост от ClusterM где он сделал виджет в виде старых индикаторов. Мне эта идея безумно понравилась так как есть приятное чувство винтажа в этом проекте. Но вот незадача — я никогда не работал с самим микроконтроллером и программирую я так себе, поэтому идею долго откладывал. Но недавно я натолкнулся на видео где Алекс доработал с помощью знакомых Open source программу и разработал алгоритм обработки данных со стороны Ардуино. В этой статье я хочу показать как я реализовал эту задачу.

Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии30

Как я делал анимации Солнечной системы для сына-второклассника

Время на прочтение5 мин
Количество просмотров31K
Когда-то давно я получил высшее образование по физике. Позже еще самостоятельно выучился на веб-программиста. С тех пор я преимущественно работаю программистом, но продолжаю уделять время и физике, и технике (что-нибудь рассчитываю или конструирую), и науке в целом. Подобное «раздвоение» приносит интересные результаты. Оказалось, что некоторые факты в физике можно хорошо объяснить с помощью программирования.

Откуда вообще возник такой вопрос? У старшего ребенка в школе было занятие про планеты Солнечной системы. В целом, он их знает, и на вечернем небе мы видели некоторые (Юпитер, Марс, Сатурн). Но многие интересные факты остаются за пределами понимания. Не хватает наглядности, движения, может быть, интерактивности. Вот именно этот пробел в подаче материала я и захотел заполнить с помощью веб-программирования, следуя известной мудрости «лучше один раз увидеть, чем сто раз услышать».

Как вы уже догадались, в статье речь пойдет о фактах, касающихся Солнечной системы (не только о планетах). Давайте посмотрим, что есть такого любопытного в нашем галактическом уголке.
Читать дальше →
Всего голосов 42: ↑41 и ↓1+40
Комментарии37

96-ядерный суперкомпьютер на одноплатниках NanoPi Fire3

Время на прочтение14 мин
Количество просмотров66K
Создание высокопроизводительного кластера с 12 узлами NanoPi-Fire3 менее чем за £100 (£550, включая двенадцать Fire3)

Мой прошлый кластер на Raspberry Pi 3 в прошлом году немало заинтересовал публику, так что я попробовать сделать аналогичные проекты на других отличных одноплатных компьютерах, которые есть на рынке. FriendlyARM из Китая очень щедро отправила мне 12 своих последних 64-битных ARM плат NanoPi-Fire3, на каждой из которых восьмиядерный ARM A53 SoC, работающий на частоте 1,4 ГГц, с гигабитным Ethernet.


Читать дальше →
Всего голосов 89: ↑88 и ↓1+87
Комментарии55

Разработчик! Прекрати считать себя недостаточно хорошим специалистом, это неправда

Время на прочтение7 мин
Количество просмотров62K
Около месяца назад мы подготовили большую статью с невыдуманными историями об IT-самозванцах, где рассказали об ушлых ребятах из Азии, которые любыми путями пытались устроиться к нам на удаленную работу. Весь текст был посвящен разного сорта авантюристам — людям, которые чаще всего ничего не смыслили в IT и разработке, но выдавали себя за девелоперов. В той статье мы упоминали, что подобных Остапов на территории СНГ практически нет. Ну как-то не тянет наших соотечественников и людей из ближнего зарубежья пытаться кого-то обмануть таким образом. Но на другом берегу этой истории с самозванцами стоят настоящие разработчики — люди умные, компетентные, опытные, одним словом, хорошие специалисты. И как раз они, чаще всего, формируют вторую сторону медали поднятой нами истории.


Стив поверил в себя, так и ты поверь

Все дальнейшие рассуждения, советы и пояснения строятся на одном простом факте: очень часто при трудоустройстве через Crossover выходцев из СНГ мы сталкиваемся с ситуацией, когда специалист заявляется на позицию с более низкими требованиями по сравнению с его реальной квалификацией. То есть представители русскоязычного IT-сообщества систематически себя недооценивают. И это — массовая проблема.
Читать дальше →
Всего голосов 74: ↑66 и ↓8+58
Комментарии184

The Kernel-Bridge Framework: мостик в Ring0

Время на прочтение7 мин
Количество просмотров9.4K
Хотели ли Вы когда-нибудь заглянуть под капот операционной системы, посмотреть на внутреннее устройство её механизмов, покрутить винтики и посмотреть на открывшиеся возможности? Возможно, даже хотели поработать напрямую с железом, но считали, что драйвера — rocketscience?

Предлагаю вместе пройтись по мостику в ядро и посмотреть, насколько глубока кроличья нора.

Итак, представляю драйвер-фреймворк для kernel-хакинга, написанный на C++17, и призванный, по возможности, снять барьеры между ядром и юзермодом или максимально сгладить их присутствие. А также, набор юзермодных и ядерных API и обёрток для быстрой и удобной разработки в Ring0 как для новичков, так и для продвинутых программистов.

Основные возможности:

  • Доступ к портам ввода-вывода, а также проброс инструкций in, out, cli и sti в юзермод через IOPL
  • Обёртки над системной пищалкой
  • Доступ к MSR (Model-Specific Registers)
  • Набор функций для доступа к юзермодной памяти других процессов и к памяти ядра
  • Работа с физической памятью, DMI/SMBIOS
  • Создание юзермодных и ядерных потоков, доставка APC
  • Юзермодные Ob*** и Ps***-каллбэки и фильтры файловой системы
  • Загрузка неподписанных драйверов и ядерных библиотек

… и многое другое.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии15
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность