Многие кошельки биткоина при выборе монет для отправки предпочитают использовать крупную монету, баланс которой больше отправляемой суммы. После каждой такой транзакции образуется монета-сдача. Через какое-то время весь кошелёк зарастает такими монетами порядка 0.001 (~10 долларов на текущий момент), которые уже и не на что потратить. Когда в очередной раз мне понадобилось сделать транзакцию, мне пришла в голову мысль, а нельзя ли собрать транзакцию так, чтобы сдачи не было. Кошелёк упрямо предлагал «распилить» ещё одну более крупную монету, так что я решил руками выбрать монеты, чтобы насобирать необходимую сумму. Однако это оказалось не так просто: сумма или получалась меньше нужного значения или слишком сильно его превосходила. В итоге я решил, что должен быть алгоритм, с помощью которого из монет можно собрать нужную сумму или чуть больше. Оказалось, что это не только возможно, но работает настолько хорошо, что сподвигло меня написать эту статью. Но обо всём по порядку.
Boris Nagaev @starius
User
Блокчейн + распределённое хранилище = Sia
7 min
38KВсем привет! У всех нас есть данные, которые хочется держать под контролем. Мы не хотим потерять к ним доступ и не хотим, чтобы доступ был у кого-то ещё. Где хранить такие данные? Я считаю, что Sia может стать идеальным местом для этого и расскажу, почему.
+17
Библиотека эмуляции терминала ROTE и Lua привязки
6 min
7.3KROTE — простая библиотека на языке C, служащая для эмуляции терминала VT100. Она создает терминал и предоставляет доступ к его состоянию в виде структуры языка C. В терминале можно запустить дочерний процесс, «нажимать» в нем клавиши и смотреть, что он рисует на терминале. Кроме того, есть функция для отрисовки состояния терминала в окне curses.
Зачем на практике может потребоваться эмулировать терминал и взаимодействовать через него с дочерним процессом? В первую очередь это нужно для автоматического тестирования программ, рисующих что-то на терминале с помощью curses, по моему мнению. Как иначе написать тесты для программы, которая ждёт, что пользователь нажмёт клавишу, и выводит результаты в определенное место экрана средствами curses?
Несмотря на всё удобство и внутреннюю красоту ROTE, использовать её напрямую в тестах было бы громоздко. Поэтому я решил упростить задачу, привязав ROTE к языку Lua, который я очень люблю и знаю, как писать тесты. Так и родилась библиотека lua-rote, о которой я хочу рассказать.
+10
Tor Browser без Tor
2 min
33KTutorial
Tor Browser — сборка из Tor, Firefox и других полезных утилит, заточенная под анонимный серфинг. Трафик пользователя проходит через анонимную сеть Tor, а браузер настроен так, чтобы оставлять на сайтах как можно меньше следов (куки, время, разрешение экрана и ещё длинный список).
Так уж получилось, что не всегда есть возможность и необходимость пропускать трафик браузера через Tor, но хочется сохранить защиту от слежки, которую не предоставляет обычный браузер. Такая ситуация может возникать по разным причинам: сайты, блокирующие подключения из Tor (редиски!), плохое подключение к сети, из-за которого жизнь за Tor становится совсем медленной.
+13
Пошаговая инструкция: залог для сделок в bitcoin
6 min
36KTutorial
Bitcoin очень удобен и надёжен для хранения денег, но как проводить в нём сделки? Традиционные способы включают привлечение доверенной третьей стороны. Оказывается, bitcoin так могуч, что это вовсе не обязательно. Ниже я расскажу, как двум людям, не доверяющим друг другу, провернуть сделку в bitcoin без привлечения третьих сторон.
+29
Краткая инструкция: GitHub через Tor
2 min
91KПредлагаю использовать Tor для доступа к сайтам, к которым отсутствует прямой доступ.
+84
Свой tor2web-сервис при помощи Nginx и Lua
4 min
27KОбсудим, как сделать шлюз из Интернета в скрытые сайты Tor.
+18
Lapis: сайт на Lua в конфигах Nginx
7 min
45KTl;dr Lapis(Lua) = RoR(Ruby) = Django(Python)
+46
10 занимательных задач
5 min
100KИллюстрация к последней задаче.
Существуют задачи с простыми и, казалось бы, очевидными решениями, которые, однако, трудно найти. При их решении опасно полагаться на интуицию, ведь правильный ответ зачастую совсем не совпадает с тем, который она подсказывает. В данной статье я предлагаю подборку из 10 таких заданий, упорядоченных по возрастанию сложности; их решения убраны под спойлер. Для получения верных ответов не нужно обладать какими-то специальными знаниями, достаточно лишь находчивости и знания школьной программы.
+21
Wt, библиотека C++ для разработки веб-приложений
6 min
40KВсем привет!
Так случилось, что на Хабре не было ни одного упоминания Wt, C++ Web Toolkit, кроме одного комментария.
Библиотека Wt может заинтересовать тех, кто пишет на C++ и захотел посмотреть в сторону Web, но не хочет изучать и/или использовать HTML, CSS, JavaScript, SQL и дополнительные технологии, связанные с веб-разработкой и работой с БД. В данной статье моей целью было обратить внимание сообщества на Wt, а не освещать все его возможности.
Так случилось, что на Хабре не было ни одного упоминания Wt, C++ Web Toolkit, кроме одного комментария.
Библиотека Wt может заинтересовать тех, кто пишет на C++ и захотел посмотреть в сторону Web, но не хочет изучать и/или использовать HTML, CSS, JavaScript, SQL и дополнительные технологии, связанные с веб-разработкой и работой с БД. В данной статье моей целью было обратить внимание сообщества на Wt, а не освещать все его возможности.
+19
Information
- Rating
- Does not participate
- Registered
- Activity