Search
Write a publication
Pull to refresh
5
0

Экспериментальное велосипедостроение

Send message

Русские в Apple: как наши заполучили контракт на миллионы с помощью песен Beatles и «какого-то Джерри»

Reading time12 min
Views24K
Есть такой известный факт в истории российского IT: в 1991 году московской фирме «Параграф» удалось заключить крупный контракт с Apple.

image

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

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

О том, что произошло между двумя этими событиями, и пойдет речь ниже.

Все записано со слов очевидцев и восстановлено по материалом публикаций в прессе.
Меня зовут Максим Котин, я автор книг «Чичваркин Е… гений» и «И ботаники делают бизнес». И я продолжаю публиковать на «Хабре» глав из своей книги о «Параграфе» — первом стартапе из России, покорившем мир. В целом о замысле можно прочитать здесь.

Книга называется «Пионеры Кремниевой долины». Она еще в работе, но вы можете получить все написанные главы (в epub или pdf), подписавшись на мою бесплатную рассылку — на текущий момент закончено 13 глав.

Новые главы я присылаю подписчикам по мере готовности. Иногда я также делюсь в рассылке своими наблюдениями о бизнесе, стартапах и саморазвитии, но не чаще раза в неделю (например: Как справляться с адовыми задачами). Добро пожаловать, если что.

Глава 8, приведенная ниже, публикуется с небольшими сокращениями.
Читать дальше →

Bonsai: фамильный вики-движок

Reading time13 min
Views22K

Лирическое вступление


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

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



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

Идеальным решением для хранения семейных данных мне представлялся гибрид вики-движка и фотоальбома. Готовых подходящих решений не оказалось, поэтому пришлось написать собственный. Он называется Bonsai и доступен с открытым кодом по лицензии MIT. Дальше будет история о том, как он устроен и как им пользоваться, а также история его разработки и немного ДРАМЫ.
Читать дальше →

Побеждаем прокрастинацию игровой зависимостью

Reading time3 min
Views28K
Всем вам, безусловно, знакомо явление прокрастинации. Психологическая неспособность покинуть зону комфорта и начать заниматься каким-то делом здесь и сейчас съела немало человеко-часов представителей самых разных профессий. Под её влиянием, не занимаясь ни делом, ни отдыхом, а только каким-нибудь бесцельным занятием вроде сёрфинга сети, мы зарабатываем только лишний стресс. Это история о том, как одна случайная идея позволила мне не только избавиться от этой проблемы, но и повысить свою продуктивность до уровня, о котором я раньше мог только мечтать.

Существует категория проектов, которым прокрастинация наносит, пожалуй, наибольший возможный урон. Речь, конечно же, о собственных проектах, ещё не приносящих, либо вовсе не подразумевающих прибыли. Когда у тебя нет ни дедлайна, ни дохода, ни какой-либо обязанности перед кем-либо, очень легко отложить работу на потом, да так к ней толком и не притрагиваться. Именно таким проектом для меня стала моя попытка удариться в инди-геймдев.
Читать дальше →

Диагностика почтовых протоколов

Reading time16 min
Views127K
Эта статья о методах диагностики почтовых протоколов. Она предназначена для начинающих администраторов, желающих больше узнать об инструментах для быстрого тестирования авторизации/отправки/приема почтовых сообщений как сервером, так и клиентом. Но также может служить хорошей памяткой соответствующих команд и для более опытных администраторов.

Материал разбит следующим образом:

1. Введение
2. Примеры сессий
3. Проверка авторизации на сервере (LOGIN, PLAIN, CRAM-MD5), Base64
4. Проверка шифрования SSL/TLS
5. Анализ почтового трафика при помощи tshark. Расшифровка SSL/TLS
6. Ссылки на материалы



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

На что способен PC Speaker

Reading time12 min
Views75K
Известный теперь как «системный динамик», а то и просто «пищалка», PC Speaker появился на свет в 1981 году вместе с первым персональным компьютером IBM. Наследник нескольких поколений больших компьютеров для серьёзных дел, он с рождения был предназначен лишь для подачи простейших системных сигналов, и не мог достойно проявить себя в озвучивании главенствующих на домашнем рынке развлекательных программ. Сильно уступая звуковым чипам специализированных игровых систем, пропадая в тени вскоре появившихся продвинутых звуковых карт, он поддерживался многими разработчиками по остаточному принципу — как опция, выдающая хоть какой-нибудь звук при отсутствии лучших альтернатив. За нечастыми исключениями, через спикер проигрывались грубо упрощённые, полностью одноголосые версии мелодий, изначально сочинённых для гораздо более мощных устройств.

Музыкальный альбом «System Beeps» написан для PC Speaker с использованием той же базовой техники из старых игр, и, согласно типичной формуле ретро-компьютерного около-демосценового творчества, призван раскрыть на многие годы оставшийся неисследованным потенциал этого простейшего звукового устройства. Собственно, послушать результат и составить своё мнение об успешности данного мероприятия можно на Bandcamp или в видео ниже, а дальнейший текст углубляется в устройство спикера, историю проекта и способы достижения подобного результата для тех, кто хочет знать больше.

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

Цивилизация Пружин, 3/5

Reading time10 min
Views60K

Часть 3. Цивилизация пружин



[Image credit: By Lothar Spurzem — Own work, CC BY-SA 2.0 de, commons.wikimedia.org/w/index.php?curid=39574590]

Предыдущая часть. Краткое содержание предыдущей серии.

Итак, какие же ещё есть способы хранения энергии, помимо химического топлива? Пусть даже не для ракет, а вообще?

Начнём с электрической батареи. Вот хотя бы литиево-ионной. Откуда в ней берётся энергия?

Всё просто, там идёт[210] электрохимическая реакция:

LiC6 + CoO2 <-> C6 + LiCoO2

Идёт налево — песнь за заряжается. Направо — разряжается.
Вы, конечно, уже догадались

Полное руководство по профессиональному поиску скрытых камер и шпионских устройств

Reading time9 min
Views114K


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

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

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

В статье мы опишем точный пошаговый процесс, который мы используем для поиска скрытых устройств слежения и камер. Начнём!
Читать дальше →

ЧПУ в хоббийной мастерской (часть 1)

Reading time6 min
Views43K


→ Первая часть
Вторая часть
Третья часть

Работа программиста имеет один существенный недостаток: как правило, мы не можем потрогать результат своего труда. Можем наслаждаться красотой кода, восторгаться оригинальностью алгоритма, но пощупать программу, увы, никак. Меня этот нюанс профессии всегда расстраивал. Чтобы как-то компенсировать виртуальность результата в основной сфере деятельности, несколько лет назад я завел себе вполне материальное хобби — столярничество. По началу все шло хорошо, но очень скоро стали сказываться профессиональные болезни любого программиста — лень и перфекционизм. Особенно, добивал тот факт, что когда нужно сделать 10 одинаковых деталей я не мог качественно сделать одну и скопировать ее еще 9 раз. В общем, вы поняли, через некоторое время в мастерской появился ЧПУ. Этот рассказ о двухлетнем опыте владения этим чудом техники.
Читать дальше →

Возобновляемая энергетика: слова и их значение

Reading time12 min
Views12K
Справа на КДПВ вы видите мою машину. При расходе 5 литров солярки на сто километров (на самом деле несколько меньше) и среднем для России пробеге в 16,7 тысяч километров в год она выбрасывает в атмосферу приблизительно 2.2 тонны углекислоты за год (литр солярки образует 2.66 кг углекислоты (.pdf)). Количество зарегистрированных автомобилей на планете превысило миллиард. Сжигание ископаемого топлива личным автотранспортом считается одной из основных причин антропогенной эмиссии CO2.



Слева на КДПВ вы можете видеть мою печку. Весь холодный сезон, с осени до весны я топлю ее дровами. Как говорит нам ВОЗ (.pdf), около трех миллиардов людей на планете пользуются твердым топливом для обогрева или приготовления пищи. За не самый долгий, потому как южный, отопительный сезон я сжигаю порядка пятнадцати кубометров дров, выбрасывая в атмосферу приблизительно 9 — 10 тонн углекислого газа*. Поскольку дрова относятся к возобновляемому биотопливу, отопление ими считается углерод-нейтральным и не вносящим вклада в антропогенную эмиссию CO2.

*Готовых чисел для пересчета дров в углекислоту я не нашел, и в любом случае это гораздо менее точные значения. Впрочем, исходя из массы кубометра дров и массовой доли углерода в древесине, расчет количества углекислоты не представляется особо сложной задачей.
Read more →

Алгоритм Верхуффа для произвольной чётной системы счисления

Reading time4 min
Views12K
КДПВ Иногда возникает задача защитить строку-идентификатор от случайных ошибок, сделанных человеком. Например, номер платёжной карты. Для этого к строке добавляется вычисленная специальным образом контрольная цифра, и когда человек вводит этот номер, можно сделать первичную проверку на ошибки без обращения к базе данных. Самый простой вариант — добавить остаток от деления суммы всех цифр на 10, в таком случае искажение любой одной цифры (в том числе контрольной) будет легко обнаружить, и такая строка не пройдёт проверку. Но некоторые другие ошибки такая контрольная сумма пропустит, например, перестановку двух цифр местами, а это тоже довольно распространённая ошибка.
Читать дальше →

Так ли страшен Rust, как его малюют

Reading time10 min
Views41K

Некоторое время назад я начал понимать необходимость разнообразить мой опыт программирования исключительно на C#. После некоторого изучения различных вариантов, таких как Haskell, Scala, Rust и некоторых других, выбор пал на последний. Со временем я начал обращать внимание, что Rust всё больше и больше рекламируется исключительно как "системный язык", который нужен для вырвиглазно сложных компиляторов и супер-нагруженных систем, с особыми требованиями к безопасности и многопоточности, а для вариантов попроще есть Go/Python/Java/..., в то время как я с удовольствием и весьма успешно использовал его как замену моей рабочей лошадке C#.



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

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

Ещё один простой процессор на verilog

Reading time7 min
Views14K

В статье описан очередной примитивный процессор и ассемблер для него.
Вместо обычных RISC/СISC, процессор не обладает набором инструкций как таковым, есть только единственная инструкция копирования.


Подобные процессоры есть у Maxim серия MAXQ.


https://github.com/pavel212/cpu

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

Формула фана или почему мы играем в игры

Reading time6 min
Views66K


Предупреждение: возможно уменьшение удовольствия от игр и фильмов, так как появится осознание и понимание как они устроены.

Как-то захотелось мне сделать игру и у меня возникли вопросы.
Почему мы играем? Из-за каких элементов игры мы получаем фан?

Далее, под словом «фан», имеется ввиду положительные эмоции.

Поиск в интернете точного ответа не дал. Кто-то пишет, что игрокам нравится делать то, что в реальном мире они не могут. Другие пишут, что важен сюжет. По таким описаниям хорошую игру не сделать.

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

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

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

В поисках перспективных теней для roguelike

Reading time3 min
Views4K


Уважаемые Хабровчане, представляю вашему вниманию продолжение изысканий на тему поиска подходящих теней для 2D рогалика.

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

Генерация Close call в играх: «На волосок от поражения» или «Чуть-чуть не победил»

Reading time8 min
Views12K
Эффект «на волосок от» используется в играх для формирования у игрока эмоций, для разжигания азарта. Это всё необходимо для того, чтобы игрок как можно больше погрузился в игровой поток, не заскучал в нём от лёгкого выигрыша и не выбросил мышку/джойстик от безнадёжности своего проигрыша. А также потому, что игрок запоминает игру благодаря сильным эмоциям и переживаниям. Потом именно об эмоциях он будет рассказывать другим игрокам. А спустя год он даже сможет вспомнить о чём была игра, если она вызывала в нем эйфорию от победы еле-еле или гнев от частых поражений «на последних жизнях». В расслабленном состоянии наш мозг редко старается что-то запомнить.

Источник: 1877 Harpers Weekly November 24-MA barely saves GOP [1]

Многие игры специально создают (или провоцируют) такие ситуации, чтобы встряхнуть своих игроков. Конечно, об использовании таких методик в пресс релизах не говорят. А особенно талантливые разработчики умело прячут эти свои «грязные хаки» даже от опытных игроков.
Далее я перечислю известные мне примеры таких хаков, чтобы разработчики смогли взять из них самое хорошее, а игроки научились распознавать самое плохое и коварное.
Читать дальше →

Консистентность и ACID-гарантии в распределенных системах хранения данных

Reading time8 min
Views31K
Распределенные системы используют, когда возникает необходимость в горизонтальном масштабировании, чтобы обеспечить повышенные показатели производительности, которые не способна обеспечить за адекватные деньги вертикально масштабированная система.

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

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

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

Эта статья основана на наших материалах по консистентности и ACID-гарантиям в распределенных системах.
Читать дальше →

Как я создавал карты континентов для своей игры

Reading time23 min
Views48K
image

Часть 1. SVG и системы координат


До недавнего времени размеры карт в моей игре Dragons Abound были фиксированными и несколько недетерминированными. Я считал их «региональными» — не картами всего мира, но его значительными частями, такими например, как западное побережье США или часть Европы. Меня вполне устраивал этот масштаб, но я хотел немного поэкспериментировать с игрой, чтобы посмотреть, смогу ли я генерировать карты целого мира (или хотя бы большего размера). Но прежде чем я приступлю к этому, давайте немного поговорим о картах фэнтези-миров.

Мир — это большое пространство. Большинство карт фэнтезийных «миров» даже близко не походят на истинный размер. Возьмём, например, Средиземье, в котором происходит действие «Властелина колец»:


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

Как создать надёжную игровую механику в Excel. Часть 2

Reading time21 min
Views16K

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

Задачи о размещении объектов


Электронные таблицы для этой части можно скачать здесь: (SuperTank) (телепорты, часть 1) (телепорты, часть 2)

SuperTank: задача решена!


В первой статье серии мы рассказали о примере задачи для игры под названием SuperTank. Во второй её части, мы познакомились с основными концепциями моделирования решений и я рассказал о решении простого примера с помощью инструмента «Поиск решений» в Excel.

Теперь мы можем применить полученные во второй части знания к задаче SuperTank, и доказать, что с их помощью можно решить эту задачу легко и быстро. Освежу вашу память: SuperTank — это игра, в которой вы можете сражаться на настраиваемом танке.
Читать дальше →

Прага как место, достойное переезда из Питера — 3 года спустя

Reading time24 min
Views21K

"… Не может чуждой славянину
Быть чехов доблестных земля.
"
П.А. Вяземский


Небольшое предисловие


Нашего коллегу Андрея Дмитриева, как-то рассказавшего Хабру свою историю развития от бездомного до Senior Developer'a, недавно позвал поучаствовать в подкасте linkmeup наш другой коллега Loxmatiymamont. В рамках проекта "По'уехавшие" он общается с IT специалистами, которых объединяет одна деталь: когда-то они уехали работать из России в другую страну. Но, дабы не повторять миллион и тысячу подобных проектов, в этом подкасте нет разговоров про мотивацию, рассуждений "зачем и почему", а также поиска высших смыслов. Нет, здесь упор делается на бытовую часть вопроса жизни обычного человека в совершенно новом для него месте, без скучных сравнений а-ля "где огурцы дороже".


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



— Всем привет!
Нас
[linkmeup] раньше любили обвинять в какой-то предвзятости и то, что наш проект периодически продается [выпуски с представителями вендоров — ред]. И вот сегодня у вас будет новый повод это сделать, потому что в гости я позвал своего коллегу – это Андрей Дмитриев, он сейчас работает в Праге. Привет, Андрей!


— Привет!

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

«Монстры в играх или как удивить игрока»

Reading time5 min
Views18K
Привет, друзья! Уже подошёл третий материал в цикле статей, который вы встречаете очень положительно, за что вам огромное спасибо! Сегодня продолжим разбирать монстров по кусочкам Knee Deep In The Dead!


И так, сегодня статья будет наполнена массой примеров и отлично подходит, для начинающих геймдизайнеров.
С места в карьер: Возьмем 50 шариков и…
Читать дальше →

Information

Rating
4,652-nd
Registered
Activity