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

Термодатчик из звуковой карты

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

Всем привет!

Как-то раз зимой у меня сгорел греющий кабель в водопроводе (он не даёт замёрзнуть воде в трубах, проложенных близко к поверхности). Кабель конечно пришлось заменить, водопровод отогрелся и снова заработал, однако возникло жгучее желание "что-то с этим сделать". Хотя бы узнавать о его неисправности заранее, а в лучшем случае - ещё и автоматически отогревать. Идея в общем-то несложная: надо мерять температуру трубы и включать обогрев (при помощи любого электрического обогревателя), если она мёрзнет. Всё просто, но датчика температуры под рукой нет. Конечно, можно его заказать на всем известном китайском сайте, или на не менее известном российском, но это совершенно неспортивно. Потому попробуем изготовить датчик из имеющихся под рукой компонентов. Для этого нам понадобится: звуковая карта (наверняка найдётся в компьютере), два jack-разъёма (от наушников или микрофонов), один терморезистор и пара резисторов.

Disclaimer: всё нижеизложенное просьба воспринимать как забавный способ размять мозги и развлечься. Само собой, "по-хорошему" надо обзавестись нормальным датчиком, а не придумывать велосипед. Однако мне было интересно собрать что-то не очень типичное, а заодно и разобраться в генерации и анализе звука в коде.

Читать далее
Всего голосов 33: ↑31 и ↓2+29
Комментарии22

Старые протоколы, которыми можно пользоваться и сегодня

Время на прочтение13 мин
Количество просмотров11K
Устали от тяжёлых веб-страниц, всплывающих окон, мерцающих баннеров, N-факторной аутентификации, слежки за пользователями и аналитики? Тогда вы можете попробовать поработать с протоколами, которые не менялись последние тридцать лет.


Примерно тридцать лет назад люди видели онлайн-страницы так.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии23

Производительность: нюансы против очевидностей

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

Приветствую, это текстовая версия моего доклада на JPoint-2021. Как обычно я сделал упор на случаи из жизни и на повседневные вещи, используемые каждым разработчиком. Под кат приглашаются интересующиеся производительностью и им сочувствующие.

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

Генерация родословного дерева на основе данных Wikipedia

Время на прочтение22 мин
Количество просмотров6.3K
В этой статье я хочу показать, как с помощью фреймворка Selenium Webdriver можно, исходя из данных Wikipedia, составить генеалогическое древо заданной персоны (например, легендарного основателя первой династии русских правителей Рюрика).

В статье будет рассказано, как определить имя персоны, вычислить ссылки на страницы детей персоны, а также будет построен алгоритм генерации генеалогического древа.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии8

Создаем плагин региона для Oracle Application Express

Время на прочтение8 мин
Количество просмотров7.5K
Данная статья предназначается всем тем, кто плотно работает с Oracle Application Express (в просторечии — APEX, а то и просто апекс). А так же тем, кто что-то слышал и подумывает начать использовать его в работе. После прочтения статьи, я надеюсь, у вас прибавится желания сделать это.

Вводная информация


Предполагается, что читатель знаком (или познакомится вскоре после прочтения) хотя бы в общих чертах со следующими вещами:

  • Что такое SQL и PL/SQL, и чем они друг от друга отличаются
  • Какие объекты бывают в СУБД Oracle и зачем они нужны (таблицы, пакеты, вью)
  • Основные компоненты приложения апекса: страница, регион, итем, процесс и т. д., как их создавать и удалять
  • Основы администрирования апекса: как создать в оракле таблицу, пакет, вью и как потом сделать их доступными для своего приложения
  • Как использовать значение итема в качестве параметра SQL-запроса

Ничего сверхсложного в этих пунктах нет, всеми этими вещами на базовом уровне можно более-менее овладеть за месяц неспешной работы. Пример предназначен для пятой версии апекса, которая вышла чуть меньше года назад.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

О судьбе отечественного оборудования для сетей 5G. Часть III Основные действующие лица

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

И снова здравствуйте!

Первая часть. Обзор Рынка

Вторая часть. Внешние и внутренние противоречия

Третья часть. Основные действующие лица

Четвертая часть. Что есть базовая станция 4G/5G?

В прошлый раз мы рассмотрели внешние и внутренние противоречия, которые, как мне кажется, и породили саму тематику создания отечественного оборудования для сетей 5G.

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

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

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

Немножко об амфибиях и психоактивных веществах

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

Колорадская речная жаба (Bufo alvarius) — вид бесхвостых амфибий, обитающий в засушливых, пустынных регионах южной части Аризоны, юго-запада Нью-Мексико, северо-западной Мексики. Считается одной из крупнейших бесхвостых амфибий, достигая 18 сантиметров в длину.

Читать далее
Всего голосов 19: ↑12 и ↓7+5
Комментарии23

Межпланетная файловая система — Простой блог в IPFS при помощи XSLT

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

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


Обычно формируют содержание страниц при помощи JavaScript. Это знакомая технология но у неё есть свои недостатки.


Я буду использовать XSLT. Это древняя технология шаблонов которая давно встроена в браузеры но мало кто ей пользуется. Возможно потому что шаблоны заставляют писать много текста и из за путаницы с пространствами имён и множества ошибок без внятного объяснения. Также не смотря на то что есть уже XSLT 3.0 в браузерах по прежнему доступен только XSLT 1.0.


XSLT работает так:


  1. Пользователь открывает в браузере XML документ.
  2. В заголовке XML документ содержит ссылку на XSLT шаблон.
    <?xml-stylesheet href="xslt/запись.xslt" type="text/xsl" ?>
  3. Шаблон в браузере на основе XML документа и других данных формирует xHTML документ.
  4. Браузер отображает полученный xHTML документ.

Привязав множество страниц к одному шаблону можно менять отображаемый xHTML документ не меняя XML документы. Таким образом при смене дизайна не будет меняться хеш XML документов а значит старые их копии будут источниками для новых в IPFS.


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


image

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

Организация интернет трансляции мероприятия бюджетными средствами

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

Вводная


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

В данной статье мы подробно опишем шаги, которые необходимо предпринять, чтобы организовать бесплатную онлайн трансляцию. Приведем список необходимого оборудования и дадим инструкцию, как его установить. Опишем основные проблемы, с которыми могут столкнуться организаторы при организации онлайн трансляций, и возможные пути их решения.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии1

Определяем все классы, которые использует приложение на Java

Время на прочтение12 мин
Количество просмотров19K
Без сомнения каждый, кто в своем резюме указывает опыт разработки на Java, хоть раз в жизни писал строки
public static void main(String[] args)
компилировал их и запускал на выполнение командой наподобие java HelloWorld.
Но многие ли знают, что происходит внутри JVM от момента выполнения этой команды до того как управление передается методу main, как Java находит и загружает необходимые пользователю классы? Возникшая однажды производственная задача заставила автора разобраться в этом вопросе. Результаты изысканий под катом. Сразу стоит оговориться, что статья не претендует на полноту охвата всех существующих JVM, тестирование проводилось только на Sun HotSpot JVM.
Читать дальше →
Всего голосов 65: ↑60 и ↓5+55
Комментарии12

Гугл тестирует новый поиск (Caffeine)

Время на прочтение2 мин
Количество просмотров1.3K
Странно но уже прошли сутки, а до сих пор на Хабре нет.

Google попросил всех желающих протестировать новый поиск

Что нового?
Читать дальше →
Всего голосов 142: ↑124 и ↓18+106
Комментарии44

AST, автоматизации, оптимизации или как прошла PiterJS conf #1

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

Прошло 2 месяца после первой (но конечно же не последней) конференции PiterJS conf. Для активистов сообщества это был своего рода праздник, к которому долго готовишься и столько же отходишь. В этой статье хочу подвести итоги, анонсировать публикацию докладов, понастальгировать и чуть-чуть похвастаться.

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

URL.js или дружим JavaScript с обработкой ссылок

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

Доброго времени суток, уважаемые хабравчане!

Возникла передо мной сегодня задача генерации GET-параметров и всего URL в целом, на стороне клиента, прям вот щас, без возможности «поговорить» с сервером. Сразу оговорюсь, про этот пост я узнал вот прям перед написанием данной статьи ибо сначала закончил писать, а потом уже прибег к поиску, да и пост тот — не со всем про то же самое, что у меня.

Итак, к делу.

Задача и проблемы


Проблемы — те же что и в посте, который я привел выше:
  • Невозможность использовать window.location для «приготовления» URL;
  • Нельзя работать сразу с несколькими window.location в силу политики безопасности браузеров;
  • Отсутствие известных готовых решений ( да и сейчас, уже апосля, я не нашел подобного кода )

Задачи которые я поставил перед собой:
  • Удобный синтаксис
  • Возможность как читать части URL так и изменять их
  • Работа с GET-параметрами
  • Кроссбраузерность и универсальность


Писал я на чистейшем JavaScript, причем без использования prototype.__defineGetter__ или prototype.__defineSetter__ в угоду кроссбраузерности ибо IE < 9 такого не умеет. Более подробно про getters/setters написано в этом посте.

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

Приступим! Раньше сядем — раньше выйдем.
Читать дальше →
Всего голосов 60: ↑47 и ↓13+34
Комментарии60

Размышления о Personal Information Management

Время на прочтение8 мин
Количество просмотров14K
Пару лет назад наткнулся на статью, в которой рассматривалась тема использования PIM в реальной жизни, с тех пор эта тема не покидает мои мысли. Прочитал и подумал: вот он Грааль личной эффективности. За это время прочитал достаточно много статей по этой интересной теме, но той единственной пока не нашел. Авторы статей размышляют на тему какой он, этот PIM, но четкого представления о том, что он из себя представляет, ни у кого нет, как нет и софта, который достаточно полно реализует идеи PIM.

Идеи в статьях на тему PIM:

1. PIM, как статичная, структурированная база материалов, интересующих пользователя.
2. Другие делают упор на организацию данных в виде MindMaps, на которых удобно отображать логические связи, генерировать идеи на основе отображенных данных.
3. PIM, как personal task manager, ориентированный чисто на реализацию принципов GTD.
4. PIM, как экспертная система, в которой накапливаются знания, которые получает пользователь в процессе своей профессиональной деятельности.
5. PIM, как дневник, в котором пользователь описывает свои идеи, ощущения. Такой «блог для себя самого».

Попробую сформулировать свои требования к «правильному» PIM, как я его представляю.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии4

Egret. Free open source HTML5 game engine

Время на прочтение5 мин
Количество просмотров31K
В данной статье будет рассмотрены вопросы, возникающие во время выбора Game Engine для разработки 2D игр. И, как вариант ответов на эти вопросы, будет предложено использовать Egret.


Читать дальше →
Всего голосов 20: ↑15 и ↓5+10
Комментарии26

ИТ-инфраструктура одной государственной бюджетной образовательной организации

Время на прочтение12 мин
Количество просмотров30K
Здравствуйте!
Основной целью статьи является осветить вопрос развития ИТ-инфраструктуры одной государственной бюджетной образовательной организации в условиях ограничения бюджета.

Цель публикации


1. поделиться опытом;
2. по возможности, получить отзывы и рекомендации.

Введение


Ни для кого не секрет, что движителем развития ИТ в организации могут быть:
А) отдел ИТ (или его представители).
Б) бизнес (или его представители).

В любом из двух крайних положений – это плохо! Решение находиться где-то посередине. На стыке бизнеса и представителей ИТ – тех, кто зарабатывает деньги и тех, кто создает условия для того, чтобы можно было зарабатывать деньги комфортно, безопасно, надежно, стабильно, много и т.д.

Для решения любой проблемы необходимо сделать первый шаг – признать ее существование (проблемы). Затем планомерно выполнить следующее:
А) описать ее, понять причины;
Б) поставить задачи по устранению причин и недопущению их в будущем;
В) решать поставленные задачи и отслеживать, контролировать состояние, поддерживая его в стабильном положении.
Это все лирика теория. Переходим к практике.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии21

Ошибка при создании ссылки

Время на прочтение1 мин
Количество просмотров559
При создании топика в виде ссылки не распознает кириллицу ни в явном виде, ни в виде кодов. Ругается, что ссылка неверная.
Не принимает ни
ru.wikipedia.org/wiki/Пищевые_добавки (автоматически распозналось в тексте)
ни
http://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D0%B8%D1%89%D0%B5%D0%B2%D1%8B%D0%B5_%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BA%D0%B8
(сделано с href)
ни
тег href с любой из них.
Может разрешить тегирование в заголовке при создании ссылок?
Всего голосов 4: ↑2 и ↓20
Комментарии3

Сравнительный анализ CMS: охота на оптимальную систему для создания корпоративных сайтов

Время на прочтение14 мин
Количество просмотров95K
Здравствуйте!

Хочу поделиться результатом собственного исследования, проводимого мной на протяжении недели в среде существующих CMS. Цель у меня была проста и прагматична — выбрать лучшую систему для создания корпоративных сайтов. Такая необходимость возникла в связи с постоянно растущим количеством заказов на сайты. С одной стороны, это не может не радовать, а с другой — заставляет максимально тщательно и с полной ответственностью отнестись к выбору движка, которому и предстоит сопутствовать не слишком опытному программисту в вопросе создания сайтов.
Читать дальше →
Всего голосов 110: ↑56 и ↓54+2
Комментарии188

Оптимизация mysql комплексная

Время на прочтение5 мин
Количество просмотров50K
Доброго времени суток, уважаемые хабровчане.

Сегодня речь пойдет опять и снова про mySQL. Разберемся в оптимизации и поговорим про множество параметров сервера.
Давайте приступать.

Начало


Сервер у нас пусть будет на ​ CentOS​. Оптимизировать будем методом правки конфига ​my.cnf​ .

Настройка некоторых параметров может повысить
производительность БД сервера в несколько раз!

Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии18

Флейты, программист и производство

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

Я запустил производство флейт Пана "Arra Lazur" и продолжаю его развивать по настоящее время.

Удалось достигнуть определенных успехов и я хочу поделиться ими, а также результатами проделанных экспериментов. И ответить на ряд вопросов:

Чем плохи существующие подходы к изготовлению?

При чем тут программирование?

Как удалось автоматизировать процесс производства?

С какими трудностями столкнулся?

Читать далее
Всего голосов 77: ↑77 и ↓0+77
Комментарии43
1
23 ...