Pull to refresh
1
0
Старостин Андрей @STAR

User

Send message

Двигаем биты — или как реализовать свой стандарт UUID

Reading time8 min
Views5.1K

Я работаю над открытой реализацией предложенного стандарта идентификаторов UUIDv7. На данный момент спецификация существует в виде IETF черновика. Черновик уже пережил два переиздания, и мы постоянно обновляем спецификации. Но сам документ — это дело простое. Для того чтобы кто-то мог воспользоваться новыми UUIDv7, нам надо написать как можно больше открытых имплементаций на различных языках.

Мне выпала стезя писать клиент на Golang. И всё бы было достаточно просто, если бы не сам стандарт. Для создания UUIDv7 вам нужно будет постоянно двигать различные биты в разных направлениях.

В этой статье я расскажу, с чем столкнулся, помогая с разработкой на golang.
Читать дальше →

Борьба за миллисекунды. Как выбрать сервер с наименьшим пингом

Reading time5 min
Views47K
Для многих задач задержки между клиентом и сервером критически важны, например в онлайн играх, видео/голосовых конференциях, IP телефонии, VPN и т.д. Если сервер будет слишком удален от клиента на уровне IP-сети, то задержки (в народе «пинг», «лаг») будут мешать работе.

Географическая близость сервера не всегда равна близости на уровне IP маршрутизации. Так, например, сервер в другой стране может быть «ближе» к вам, чем сервер в вашем городе. Все из-за особенностей маршрутизации и построения сетей.



Как выбрать сервер максимально близкий ко всем потенциальным клиентам? Что такое связность IP-сетей? Как направить клиента на ближайший сервер? Разберемся в статье.
Читать дальше →

Library.nu всё

Reading time1 min
Views13K
Борьба с пиратством, ранее затрагивавшая, в основном, аудио и видео контент, добралась и до других видов информации. На днях стало известно о том, что впервые закрыт однин из крупнейших сайтов электронных книг.

Библиотека Library.nu, известная до 2011 года как Gigapedia.com, обрела широкую популярность благодаря огромной коллекции научной и специальной литературы. Всего на сайте было представлено более 400 тысяч книг высокого качества.

Под давлением Ассоциации американских издателей (AAC) закрылся как Library.nu, где хранились ссылки на пиратские книги, так и сервис ifile.it, где электронные книги размещались физически. В иске говорится об ущемлении авторских прав семнадцати издательств.

Принстон будет бороться с платной подпиской на научные статьи

Reading time2 min
Views3.4K
Принстонский университет, один из старейших и престижных университетов США, предпринимает меры для обеспечения открытого доступа к научным публикациям. Для этого создан специальный комитет по наблюдению за Open-Access Policy, а 19 сентября 2011 года на заседании комитета утверждены новые правила, действующие для всех сотрудников университета, которые ведут научные разработки и публикуют научные статьи.

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

Принстон будет стимулировать своих сотрудников к публикации статей в открытых и бесплатных научных архивах, таких как Arxiv или университетская база данных.
Читать дальше →

Системы оплаты в Украине

Reading time5 min
Views6.5K
Примерно год назад мы с партнером открыли свой интернет магазин, занимающийся продажей преимущественно англоязычной литературы и учебников.

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

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

Итак, доступных для физических лиц систем оплаты в Украине ограниченное количество:
  • Оплата картами Visa и MasterCard
  • Предоплата банковским переводом
  • Оплата наличными
  • WebMoney
  • Наложенным платежом


Разберем более подробно каждую из них.

Как из дешевого и простенького роутера сделать полнофункциональный сервер.

Reading time4 min
Views147K

Введение


Первым роутером, который попал ко мне, был D-Link DI-524, у меня не было времени что либо выбирать, просто купил первый попавшийся недорогой роутер с wi-fi. Так как по натуре я люблю всё ломать, я почти сразу полез в интернет искать, как его можно усовершенствовать.
Но в то время почти ничего не нашел кроме советов просверлить в нем дырок. Да действительно он частенько перегревался и поэтому нестабильно работал, но на такой рискованный шаг я не пошел.
Благо я его почти сразу продал своему другу.
Когда мне снова понадобилось такое устройство, я уже знал какие функции мне действительно необходимы, для меня это было QoS. Я как обыденный покупатель начал смотреть на маркетинговые описания возможностей и фишек устройств. Для меня это тогда казалось единственно верным. Оказалось это не совсем так.
Я купил asus w520gu, я им в целом доволен (об этом позже), но считаю правильным поделиться опытом и информацией как я его усовершенствовал.
Кому интересно читаем дальше

Правильная сумка для правильного гика

Reading time7 min
Views185K
Есть вещи, от которых, попробовав раз, невозможно отказаться. Я говорю о хороших наушниках, хорошем телефоне, удобном ноутбуке и о хорошей сумке. Да-да, именно о сумке. Мы тратим много времени на выбор самого-самого прекрасного и производительного девайса, а потом кладем его в первый попавшийся рюкзак или портфель. И живем, не подозревая, что может быть иначе. В то время как правильная, продуманная сумка может принести немногим меньше удовольствия и пользы, чем дополнительная память или более быстрый процессор.

Помните пост «Что хабровчане носят с собой», где народ хвастался содержимым своего рюкзака? Меня, если честно, больше интересовало не содержимое, а то, в чем народ носит свои вещи. Вот так, к слову, выглядела одна из наиболее интересных вещей — фотосумка Boomburum.



Сегодня мне бы хотелось зайти к той теме с другой стороны и показать десяток отличных (действительно отличных) сумок на разный вкус, цвет и кошелек.
Читать дальше →

Байес

Reading time3 min
Views98K
В левой руке Морфеуса лежит 7 синих и 3 красных таблетки, а в правой 5 синих и 8 красных. Вы закрываете глаза и берете таблетку — она оказывается красной, однако вы не знаете из какой руки ее взяли. Какова вероятность, что вы взяли ее из правой руки?


image

17 апреля 1761 — день смерти Томаса Байеса.
Под катом результаты того, что есть в рунете, помимо стандартных вещей типа Теорема Байеса, Байесовская сеть, Наивный байесовский классификатор , Байесовская фильтрация спама
Читать дальше →

Производительный сетевой сервер на PHP

Reading time9 min
Views29K
Вы пробовали заказать в Макдональдсе жаренного на орудийном шомполе поросенка с домашним вином и, на десерт, девушку рядом с вами за столиком, для приятной беседы во время трапезы? Даже не думали об этом?? Вот-вот — статья как раз об этом, о стереотипах программиста и лени, двигающей прогресс. А если серьезно — в статье мы напишем очень полезный многим высокопроизводительный сетевой сервер на PHP за пару часов. Я совершенно серьезно :-)

Читать дальше →

Верстка: два блока одинаковой высоты

Reading time5 min
Views52K

Задача


Заданы два блочных элемента – один с текстом статьи (ширина 75% от ширины документа), другой с перечнем ссылок для навигации по первому элементу (ширина 25%, расположен слева от первого блока). Высота элемента содержащего статью задается динамически, в зависимости от наполнения блока текстом. Необходимо сделать так, что бы второй блок с навигацией обладал таким же значением параметра высоты как и первый содержащий основной текст статьи.
Читать дальше →

Как начать летать самостоятельно, без риска для жизни

Reading time12 min
Views119K
Прочитал я недавно тут пост Как начать летать, хоть на чем-то, самостоятельно. Вдохновляет. Несомненно. Но мне кажется, что рисков для жизни в этом деле много больше, чем описывает автор. Это мое личное мнение, и, возможно, оно ничем не подкреплено. В комментариях к посту про это сказано не мало слов и останавливаться на этом я не буду.

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

Как не нужно писать большие сервера

Reading time8 min
Views104K
Те, кто мог видеть мою прошлую статью (а она довольно related к данной теме), знают, что вот уже больше полутора лет я разрабатываю собственную реализацию сервера Minecraft, рассчитанную, в первую очередь, на высокие нагрузки. Тем не менее, в своей работе мы используем так же и стандартный сервер (Bukkit) для нескольких мини-серверов, просто чтобы было разнообразие. И вот, столкнувшись с очередной версией сервера, которая стала раз в 5 хуже предыдущих, я уже не выдержала, и решила написать эту статью.

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

Вам не нужно знать ничего о майнкрафте и особенно о его сервере, в данной статье я хочу просто рассказать, как работает оригинальный сервер Minecraft, а так же его «обвязка» — Bukkit, рассказать, почему такая система не работает и не должна. Я не претендую на идеальные знания о разработке серверов и не утверждаю, что мой сервер написан правильно и лучше всех. Я просто делюсь своим опытом, основанным на двух годах работы с сервером от всем известной Mojang и на полутора годах разработки своего сервера. Вся представленная здесь информация является моим личным мнением, а статья предназначена для расширения кругозора или даже обучения и может быть интересна как новичкам, так и продвинутым профессионалам.
Читать дальше →

Паяем «умный» автомобильный БП на 5v с USB-зарядкой и автоматическим включением/выключением

Reading time9 min
Views471K
Я человек ленивый и люблю комфорт, поэтому люблю всяческого рода автоматизацию. В машине у меня есть видеорегистратор, иногда использую навигатор, часто нужно зарядить телефон или планшет себе или семье/знакомым. Как результат указанных потребностей — вся машина окутана проводами и зарядками, при этом всегда надо думать, что выдернуть из тройника прикуривателя и не потеряла ли контакт в прикуривателе очередная зарядка. Конечно, потихоньку в машине образовался клубок проводов и зарядок, а это мало того, что не эстетично, так еще и может привлечь наркоманов.

В один прекрасный момент это всё достало и было принято решение сделать что-то универсальное.
Будем паять

Сервис поиска комплектующих для коптеров и не только

Reading time1 min
Views10K
Собирая квадрокоптер столкнулся с проблемой: выбор комплектующих огромный, а вот поиск по ним никудышный.
В свободное от работы время потихоньку клепаю поисковик по комплектующим: www.rcdetails.info
Сейчас БД уже содержит информацию о товарах с hobbyking.com, goodluckbuy и towerhobbies:
  • более 800 бесколлекторных моторов;
  • более 300 ДВС;
  • примерно 400 регуляторов для бесколлекторных моторов;
  • более 1300 литиевых аккумуляторов;
  • почти 800 сервоприводов;
  • почти 1000 винтов;


Читать дальше →

Сайт для программиста. Часть 2. Публикация

Reading time4 min
Views39K

В первой части я рассказал, как программисту относительно просто запустить с нуля свой личный сайт с использованием Github, Heroku и Twitter Bootstrap.

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

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

Читать дальше →

Java Native Interface. C++. Linux. Первые шаги

Reading time5 min
Views9K
На хабре уже были подобные статьи, но для Windows и «ничего не понятно» для новичков вроде меня. В принципе ничего сложного нет, но есть где споткнуться и на долго засесть в поисковиках, как было со мной.
Читать дальше →

Строим Nested Set дерево без рекурсии

Reading time3 min
Views82K
Деревья в базах данных можно хранить тремя основными методами: Adjacency List, Matherialized Path & Nested Set. Когда мы хотим переехать с AL на NS, это можно сделать с помощью рекурсии (если БД расово верная). Но что делать в случае MySQL?
Переехать с AL на NS

JSON-RPC 2.0 и PHP

Reading time8 min
Views62K
Если вы разработчик, и у вас есть проект на PHP, и ему наконец-то понадобилось реализовать собственное API — эта статья определенно для вас ;).

JSON-RPC v1.0 появился в 2005 году, спустя 5 лет появилась и вторая версия. В век javascript'а и мобильных приложений многие разработчики до сих пор используют свои собственные велосипеды вместо готового простого стандарта.
Попробуем разобраться в вопросе

Список Full-Mesh VPN решений

Reading time2 min
Views235K

Введение


Многие интересуются Full-Mesh (или P2P) VPN, хотят использовать их для игр с друзьями, для связи удаленных офисов, серверов, да для чего угодно. Обычные VPN, вроде OpenVPN или PPTP, пропускают весь трафик через центральный сервер, а Full-Mesh соединяются непосредственно с нодами, зачастую пробивая NAT.
Читать дальше →

Пишем сложное приложение на knockoutjs

Reading time8 min
Views47K
Есть такая библиотека knockout.js. Она отличается от прочих хорошим туториалом для начинающих и кучей понятных рабочих примеров. Еще там стройная MVVM модель, декларативные связи и так далее.

Короче, если вы, как и я, поиграли с этой библиотекой, понаписали красивых формочек, и вам это понравилось, то все это дело захотелось применить на реальном проекте. И тут проблема — в реальном проекте формочек больше чем одна. А раз такие инструменты, то хочется single web page application и никак иначе. А делать один контроллер и все темплейты заверстывать на одну страницу тоже тупо и тормозно.

Под катом приведу основу своего сложного приложения. Само оно совсем не сложное, но модульное и допускает расширения, а темплейты и модели подгружаются динамически. Идея была подсмотрена в этой презентации — http://www.knockmeout.net/2012/08/thatconference-2012-session.html, код презентации выложен на github — https://github.com/rniemeyer/SamplePresentation — на базе этого кода будем писать свой.
Читать дальше →

Information

Rating
Does not participate
Location
Донецк, Донецкая обл., Украина
Date of birth
Registered
Activity