Search
Write a publication
Pull to refresh
48
0
Send message

Бизнес: как понять, что пора с этим завязывать

Reading time4 min
Views57K


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

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

И ещё одно. Провал — обычно не трагедия, а статистика. То есть он неминуемо случается у большей части проектов. Другое дело, что в случае вашего личного бизнеса ваш первый проект может стать единственным, поскольку денег на другое уже не будет.
Читать дальше →

$126 за 5 минут: как использовать ценовую разницу для стран против маркетологов

Reading time4 min
Views94K
Привет, Geektimes! Не за горами 12 июня, а значит, нас снова ждут длинные выходные. Как и в мае, многие россияне улетят в небольшой отпуск, чтобы отдохнуть от суеты. Поэтому в преддверии июньских выходных мы решили коснуться интересной и прикладной темы — как сэкономить деньги, используя VPN.

Самое простое — экономия на аренде автомобиля.

Пример: бронируем автомобиль в Брисбане (Австралия), сначала используя швейцарский IP:


Теперь меняем IP-адрес на США и пробуем снова:


Сэкономили $9 в день. Представьте, что вы едете путешествовать по Австралии на 2 недели. Соответственно, вы сэкономите $126, что очень неплохо. Сервисы по аренде автомобилей предлагают разные цены и предложения в зависимости от страны. Если вы попробуете забронировать автомобиль, допустим, из США, России и Бангкока, цены будут отличаться.

Разберем подробнее и другие примеры:
Читать дальше →

Синхронизация состояний в многопользовательских играх

Reading time13 min
Views47K
image

Проблема многопользовательских игр


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

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

Обычно программа игры должна симулировать следующее:

изменения в окружении с учётом времени и вводимых игроками данных.

Игра — это программа, хранящая состояние, поэтому она зависит от времени (реального или логического). Например, PACMAN симулирует окружение, в котором постоянно перемещаются призраки.

Многопользовательская игра не является исключением, однако из-за взаимодействия игроков её сложность намного выше.
Читать дальше →

Обзор исходного кода Quake 2

Reading time51 min
Views62K
image

Около месяца свободного времени я уделил чтению исходного кода Quake II. Это был удивительный и поучительный опыт, потому что в движок idTech3 внесено большое изменение: Quake 1, Quake World и QuakeGL объединены в одну красивую архитектуру кода. Особенно был интересен способ, которым достигли модульности, несмотря на то, что язык программирования C не обеспечивает полиморфизма.

Quake II во многих отношениях является блестящим образцом программного обеспечения, потому что это был самый популярный (по количеству лицензий) трёхмерный движок всех времён. На его основе было создано более 30 игр. Кроме того, он ознаменовал переход игровой индустрии от программной/8-битной системы цветов к аппаратной/24-битной. Этот переход произошёл примерно в 1997 году.

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

Процесс «подчистки» меня сильно увлёк: в статье теперь более 40 мегабайт видео, скриншотов и иллюстраций. Сейчас я не знаю, стоили ли мои труды того, и нужно ли публиковать в будущем необработанные заметки в ASCII, выскажите своё мнение.

В ответ на украинские (и не только) запреты: децентрализованная система EmerDNS против блокировок сайтов

Reading time3 min
Views22K
Скандальная тема запрета на Украине множества российских сайтов пока больше медийное, чем реальное событие: запрет есть — а как его исполнять, пока только решается. Украинцы спешно осваивают методы обхода блокировок, уже освоенные россиянами, но не менее актуален этот вопрос и для владельцев сайтов. Одним из действенных методов защиты от государственных атак будет запуск зеркал в альтернативных доменных зонах, поддерживающих децентрализованый DNS на технологиях Emercoin.



Что это такое: альтернативная система доменных имён с распределённым хранением DNS-записей в блокчейне Emercoin, что исключает возможность их централизованного отключения кем-либо по чьему бы то ни было запросу в принципе. Этот способ успешно используется библиотекой «Флибуста» и сами-знаете-что-за-сайтом Pornolab, которые используют зеркала в доменной зоне .lib.
Читать дальше →

Стандарты и шаблоны для ТЗ на разработку ПО

Reading time7 min
Views845K

Введение


Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…

И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):

• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.
Читать дальше →

Web crawler с использованием Python и Chrome

Reading time3 min
Views48K
Добрый день, дорогие друзья.

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

В моей голове всплыли такие интересные штуки, как Selenium, PhantomJS, Splash и всякое подобное. Все эти штуки были мне немного втягость. Вот какие причины я выявил:

  • Дело в том, что я хотел бы писать на своем любимом питоне, потому что очень не люблю JavaScript, а это уже означает, что большая часть уже не работала бы (или пришлось их как-то склеивать, что тоже отстой).
  • Еще эти безголовые браузеры обновляются как когда.
  • Но вот Selenium очень милая штука, но я не нашел, как там отслеживать загрузку страниц, или хотя бы адекватного способа выдрать куку или задать её. Слышал, что многие любители селениума инжектят в страничку JavaScript, что для меня дико, потому что где-то полгода назад я делал сайтик, который отрывал любые JavaScript вызовы с сайта и потенциально мог определять моего паука. Мне бы очень не хотелось таких казусов. Хочется чтобы мой паук выглядел как браузер максимально точно.

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

Магические жесты как вызов для электронщика

Reading time7 min
Views17K
Волшебная палочка — это круто, но куда круче творить волшебство просто движением рук. Чтобы это стало возможным, в 2014 году мы занялись распознаванием жестов и сделали перчатку на акселерометрах для ролевой игры. Проект получился сложным и с далеко идущими последствиями.


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

Корректирующие коды «на пальцах»

Reading time11 min
Views78K

Корректирующие (или помехоустойчивые) коды — это коды, которые могут обнаружить и, если повезёт, исправить ошибки, возникшие при передаче данных. Даже если вы ничего не слышали о них, то наверняка встречали аббревиатуру CRC в списке файлов в ZIP-архиве или даже надпись ECC на планке памяти. А кто-то, может быть, задумывался, как так получается, что если поцарапать DVD-диск, то данные всё равно считываются без ошибок. Конечно, если царапина не в сантиметр толщиной и не разрезала диск пополам.


Как нетрудно догадаться, ко всему этому причастны корректирующие коды. Собственно, ECC так и расшифровывается — «error-correcting code», то есть «код, исправляющий ошибки». А CRC — это один из алгоритмов, обнаруживающих ошибки в данных. Исправить он их не может, но часто это и не требуется.


Давайте же разберёмся, что это такое.


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


Внимание! Много текста и мало картинок. Я постарался всё объяснить, но без карандаша и бумаги текст может показаться немного запутанным.

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

Википедия неуязвима для цензуры в сети IPFS

Reading time3 min
Views35K
24 августа 2015 года Роскомнадзор распорядился заблокировать Википедию на территории России. Вскоре чиновники одумались и отменили решение. Но это может повториться в любой момент.

29 марта 2017 года турецкие власти последовали примеру российских братьев по разуму. Они тоже заблокировали Википедию. Турки пошли до конца — и с 8:00 по местному времени все версии Википедии были заблокированы в Турции в соответствии с административным решением No. 490.05.01.2017-182198 / 5651.

Как сказал в своё время Джон Перри Барлоу, Интернет по своей сути воспринимает цензуру как неисправность и старается обойти её. Есть много стандартных способов обойти обычную блокировку по IP. Два года назад Сеть породила концептуально новый проект IPFS (Inter-Planetary File System), который делает цензуру конкретных IP-адресов в интернете невозможной в принципе. Здесь вместо адресации по местоположению используется адресация по контенту. В пиринговой сети нет единого центра, который можно заблокировать. Копии распространяются от ноды к ноде. Даже если уничтожить все копии контента, кроме одной, информация снова пойдёт по сети.

IPFS — технология, которая работает уже сейчас, и она полностью готова выручить в ситуации, когда чиновники Роскомнадзора блокируют контент, пытаясь запретить гражданам получить какую-то информацию. Пример Турции отлично демонстрирует это.
Читать дальше →

Десять примеров того, как не нужно писать PAC-файлы

Reading time12 min
Views14K

image


Введение


Практически любое внедрение Web Security Gateway, будь то облачное SaaS решение, вроде Zscaler или on-premises appliance, такое, как Cisco WSA (IronPort), не обходится без конфигурирования прокси-серверов в браузерах при определенных кейсах и потому по работе мне часто приходится сталкиваться с файлами авто-конфигурации прокси-серверов (PAC, proxy auto configuration). В этой статье я бы хотел рассмотреть несколько примеров оптимизации их производительности.


Зачем нужна эта статья


Почему я решил написать эту статью и есть ли в ней польза? Надеюсь, что да, и вот почему. По сути, PAC-файл есть JavaScript функция поиска соответствия строки/подстроки полей url/host, которая возвращает имя прокси сервера для ресурса или предписывает браузеру использовать прямой доступ к ресурсу в обход прокси. Как и любой язык программирования, код JavaScript также можно оптимизировать для выполнения. В условиях крупных компаний/предприятий со сложной, распределенной инфраструктурой доступа к сети Интернет и, как следствие, PAC-файлами, состоящими из нескольких сотен строк кода, задача по оптимизации PAC-файлов уже не кажется чем-то абсолютно бесполезным, так как, например, проценты времени исполнения одной не оптимальной или используемой не к месту функции, очевидно, будут помножены на количество её вхождений (применений) её в коде.


Далее под катом.


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

Фазовая модуляция радиосигнала в ПЛИС

Reading time5 min
Views27K


Так иногда бывает, что занимаешься одной технической проблемой, но, по мере погружения в задачу и во время поиска ее решения, появляются «побочные продукты». Так случилось и в этот раз. Я исследовал различные методы измерения временных интервалов с помощью ПЛИС. В одном из предложенных методов измерений был использован динамический сдвиг фазы тактовой частоты с PLL. Позже пришла идея: используя свойства PLL можно попробовать сделать в ПЛИС простейший радиопередатчик с фазовой модуляцией.

И кое-что получилось!

UAC Bypass или история о трех эскалациях

Reading time14 min
Views36K
На работе я исследую безопасность ОС или программ. Ниже я расскажу об одном из таких исследований, результатом которого стал полнофункциональный эксплоит типа UAC bypass (да-да, с source-code и гифками).


Ах, да, в Майкрософт сообщили, они сделали вид, что им не интересно.
Алярм! Под катом около 4 мегабайт трафика – картинок и гифок.
Поднять права

Эмулятор БК-0010 на FPGA

Reading time8 min
Views18K


Большинство любительских проектов FPGA, опубликованных на Хабре, сделаны на оборудовании фирмы Altera (теперь Intel). Давайте для разнообразия посмотрим, что можно сделать на продукции его основного конкурента – Xilinx. Мы возьмём и сделаем достаточно большой и сложный проект, в процессе реализации которого нам понадобится:

  • Выбрать Development board и необходимые PMOD к ней
  • Определиться с дизайном проекта, выбрать clock domains и правила перехода между ними
  • Освоить основные функции Xilinx Vivado – создание проекта, работу с блочными схемами, компиляцию, симуляцию, отладку
  • Сделать несколько IP с интерфейсом AXI4
  • Поработать с внешними устройствами
  • Сделать с нуля собственный процессор с контроллером шины и обработкой прерываний
  • Написать модуль для верификации
  • Наконец собрать всё вместе и получить реализацию на FPGA легендарного (как минимум для тех, кто тогда жил) компьютера середины 80-х – БК-0010

Планируется цикл статей, в которых всё это будет подробно описано, сегодня первая из них. Проект написан на System Verilog с небольшими вставками Verilog и VHDL в тех местах, где это необходимо. От читателя требуется понимание базовых принципов языков Verilog/VHDL на уровне книжки Харрис&Харрис.
Читать дальше →

Реализация NetFlow сенсора на FPGA + CPU — гибко и быстро

Reading time12 min
Views12K

Добрый день!


Как вы поняли из названия, вас ждет очередная статья про NetFlow, но на этот раз с необычной стороны — со стороны реализации NetFlow сенсора на FPGA.



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

Роскомнадзор пытается добить Rutracker. Блокировки серверов-анонсеров и методы обхода

Reading time5 min
Views122K
image

Rutracker толком не потерявший свою аудиторию вполне закономерно вызывает недовольство Роскомнадзора и других ведомств. Они все-таки старались, деньги тратили, выступали с заявлениями, а оно все работает и помирать не собирается. Под блокировкой был основной сайт rutracker.org, который, по сути, был просто каталогом magnet-ссылок и torrent-файлов. Новый виток борьбы привел в добавлению в списки блокировок серверов-анонсеров. Именно они поддерживают инфраструктуру ресурса и позволяют отдельным пирам найти друг друга.

Update
2 мая СМИ запестрели заголовками о начале массовой блокировки всех анонсеров и зеркал Rutracker: lenta.ru, Вести, Известия, Ведомости. Однако в интервью Газете.Ру представитель Роскомнадзора сообщил, что блокировки проводятся в плановом режиме и ничего глобального в плане тотальных блокировок они не производили за последние дни.
«Мы не проводим никакие массированные атаки. Мы ведем целенаправленную работу по повышению эффективности блокировки пиратского контента», — подчеркнул пресс-секретарь Роскомнадзора в беседе с корреспондентом «Газеты.Ru».

Он уточнил, что ни о каком замедлении трафика для пользователей трекера речи не идет, а блокировка RuTracker проводится в плановом режиме.

Тем не менее проблема реальна, сервера блокируются, а в посте есть полезные ссылки на открытые трекеры. Поэтому решил не удалять материал.
Читать дальше →

Нельзя так просто взять и расширить каналы связи

Reading time11 min
Views29K
Вот этот график показывает, как сетевая задержка влияет на максимальную скорость при использовании TCP. Проще говоря, если у вас пинг 500 миллисекунд, то при доступной полосе пропускания 6, 10, 100, 500 и т. д. мегабит трафик между двумя хостами у вас не разгонится выше одного мегабита.


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

Что такое «оптимистичный» протокол? Очень примерно — это когда удалённый сервер ещё не ответил, что можно отправлять следующий фрейм, а железка уже говорит «посылай», потому что знает, что шанс успеха — 97%. Если вдруг что-то пойдёт не так, она уже сама дошлёт нужный пакет, не беспокоя отправляющий сервер.
Читать дальше →

Шифрование в EXT4. How It Works?

Reading time12 min
Views25K
image Паранойя не лечится! Но и не преследуется по закону. Поэтому в Linux Kernel 4.1 добавлена поддержка шифрования файловой системы ext4 на уровне отдельных файлов и директорий. Зашифровать можно только пустую директорию. Все файлы, которые будут созданы в такой директории, также будут зашифрованы. Шифруются только имена файлов и содержимое, метаданные не шифруются, inline data (когда данные файла, не превышающие по размеру 60 байт, хранятся в айноде) в файлах не поддерживается. Поскольку расшифровка содержимого файла выполняется непосредственно в памяти, шифрование доступно только в том случае, когда размер кластера совпадает с PAGE_SIZE, т.е. равен 4К.
Читать дальше →

Легальный вывод средств с Upwork в РФ

Reading time8 min
Views66K
На Хабре уже написано достаточно много статьей по теме, в частности:


В ответ на повторяющиеся просьбы написать статью, в которой:

  • разбросанные по разным статьям крупицы будут собранны в единое целое
  • всевозможные противоречия будут устранены
  • все сведения будут иметь актуальный характер
  • будут учтены пожелания такие как «а можно с картинками? :)»

родилось следующее руководство.

Information

Rating
10,549-th
Registered
Activity