Архив за 31 августа 2017 - 5

Автор материала рассказывает об устройстве системы управления версий, которая реализована в компании Stripe.

image

Когда дело доходит до API, изменения — вещь непопулярная. В то время как многие разработчики ПО привыкли к работе в режиме частых и быстрых итераций, разработчики API теряют эту гибкость как только у них появляется хотя бы первый пользователь их интерфейса. Многие из нас знакомы с историей эволюции операционной системы Unix.

В 1994 году была издана книга «Настольное пособие Unix-ненавистника» (Unix-Haters Handbook), в которой затрагивался целый список самых разных острых тем, от имен оптимизированных под телетайпы команд с совершенно непонятной историей происхождения до необратимого удаления данных, непонятных интуитивно программ с избытком опций. Более 20 лет спустя, подавляющее большинство этих жалоб по-прежнему актуальны несмотря на все многообразие доступные сегодня систем-наследников и ответвлений. Unix стал настолько широко популярен, что изменение его поведения может привести к далеко идущим последствиям. Хорошо это или плохо, но между ним и его пользователями уже сложились определенные договоренности, определяющие поведение Unix-интерфейсов.

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

Онлайн-рителер Ozon начал продавать крупную бытовую технику. Как пояснила представитель компании Мария Назамутдинова, до недавнего времени Ozon хранил товар на складе в Твери и местный партнер установил ограничения по габаритам товара — 25 кг и 120 см.

В мае 2017 года Ozon арендовал новый склад на северо-западе Подмосковья, благодаря чему компания смогла запустить продажи крупногабаритного товара. Ozon надеется, Читать полностью »

Как узнать свой внешний IP из программы - 1

При написании различных программ для работы с сетью, особенно p2p систем, время от времени возникает необходимость узнать внешний IP своего компьютера из программы (тот адрес, по которому Ваш компьютер доступен из Большого Интернета). Часто возникает искушение пойти легким путем и использовать внешние WEB-сервисы, которые по http возвращают Вам IP, или самому развернуть таковой. Хотя такой способ решения задачи и работоспособен, он тем не менее, имеет ряд недостатков:

  • При использовании собственного сервера – нужно где-то его держать и поддерживать, заодно и c соответствующим доменным именем. В случае выхода его из строя, или принудительного отзыва домена, вся Ваша p2p сеть выходит из строя.
  • При использовании внешнего сервера – Вы вводите зависимость своей системы как от его работоспособности, так и от формата ответов, который вообще никак не стандартизирован, и который владелец сервера может поменять в любой момент. С теми же последствиями для вашей сети.
  • http, которым советуют пользоваться – базируется на tcp, то есть протокол сравнительно тяжеловесный, требующий установки соединения и тп. В общем, пользоваться можно, но перерасход ресурса как компьютера, так и сети налицо.

Читать полностью »

Пролог

Все началось год назад, когда один из моих товарищей с форума T предложил переписать известную всему читерскому миру программу l2phx за авторством многоуважаемого xkor`а.
Сам l2phx (l2 packet hack, пакетник, хлапа) представляет из себя сниффер входящих и исходящих пакетов (все реализовано через LSP) клиента lineage 2 (существуют версии для других mmorpg), с возможностью отправки/подмены отдельных пакетов. Xkor постарался как следуют: реализовал методы обхода шифрации, красивый gui и тп. Но злобным админам фришек такое приложение не понравилось: оно существенно убивало их доход на старте очередных однодневок. Да-да, были времена когда любой нонейм мог зайти на любой сервер и устроить полную вакханалию этим инструментом. Тогда же и появились всяческие коммерческие защиты, которые безуспешно блокировали использование пакетника, а самые хитрые из них еще дополнительно шифровали трафик. Одна из таких защит живет на последнем издыхании и по сей день: встречайте, защита S. Сегодня защита S стоит на всех топовых серверах lineage 2. К слову, xkor предусмотрел такой исход и реализовал возможность самостоятельно написать модуль расшифровки пакетов (newxor.dll). Да только писать его было не рационально: новый сервер == новый newxor. Читерство по l2 постепенно начало умирать, ибо новички были не в состоянии отправлять пакеты методами изменения памяти клиента (HxD, cheat engine и тд).

Тогда я отнесся к этой затеи не очень серьезно: написал модуль перехвата пакетов клиент -> сервер и забросил. Почему? Потому. Но буквально 3 дня назад я решил возобновить работу над этим проектом и опубликовать данную статью. Почему? Комьюнити читеров l2 на данный момент мертво. Все баги и отмывы к ним находятся в руках 10 человек, которые общаются между собой в скайпе и на форуме T. И я тоже решил уйти. А если уходить, то лишь красиво)) Два года назад я мечтал о работающем пакетнике, а сегодня он мне не нужен.
Читать полностью »

В чат Skype внедрили редактор кода для проведения собеседований - 1

Проведение технических собеседований через Skype станет проще благодаря новой функции, которую внедрили в веб-версию мессенджера Skype. Это редактор кода, работающий параллельно с видеочатом. Встроенный редактор поддерживает семь популярных языков программирования: C, C++, C#, Java, JavaScript, Python и Ruby, есть встроенная подсветка синтаксиса, чтобы предотвратить синтаксические ошибки во время собеседования.
Читать полностью »

На конференциях часто на стендах раздают подарки. Обычно нужно решить какую-то задачку.

Невинная головоломка

Некоторые из задач предусматривают решение головоломки с кодом, вроде такой:

Каким будет результат выполнения следующего кода:

public class Sum {

    public static void main(String[] args) {
        System.out.println(0123 + 3210);
    }
}

  1. 3293
  2. 3333
  3. Этот код не компилируется
  4. Этот код приводит к ошибке IllegalArgumentException
  5. Ничего из вышеперечисленного

Моя обычная реакция — или немедленно покинуть стенд, или, если время позволяет, набрать код на ноутбуке, чтобы посмотреть результат (или поискать в Google). Вы можете упрекнуть меня в лености, но я предпочитаю представлять себя экспертом по тайм-менеджменту.
Читать полностью »

«Яндекс» и издательство «Просвещение» рассказали о подоробностях совместного проекта по созданию образовательной платформы, о котором компании сообщили в июне этого года на Петербургском международном экономическом форуме. До конца года компании договорились вложить в развитие проекта по 60 млн рублей. Специалисты «Читать полностью »

image
Покадровая съёмка напоминает нам, что фотографии – это снимки, сделанные в определённом месте в определённое время, и каждый следующий момент отличается от предыдущего

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

Меня всегда удивлял континуум, состоящий из 3+1 измерения, пространства и времени. Почему всегда пишут о трёх пространственных измерениях и одном временном?

Начнём с изучения известных нам трёх измерений пространства.
Читать полностью »

Дальневосточные ученые придумали лечебный напиток из морских ежей

В Дальневосточном федеральном университете придумали новый лечебный напиток, уникальный по своему составу и свойствам. Сотрудники Школы медицины сделали свой продукт растворимым. В него входит много полезных ингредиентов. Среди них морские ежи, водоросли, свекла и лимонник.

Читать полностью »

SLA на облако: как читать и на что обратить внимание - 1

Сегодня хочу поговорить о том, как читать Service Level Agreement в договоре на облачные сервисы. SLA – это норма: клиенты требуют его на этапе запроса, провайдеры указывают заветные девятки во всех материалах. Отрицать не буду – без SLA плохо, но какие зоны ответственности затрагивает соглашение, не всегда понятно. Попробуем разобраться, что же это такое и когда бежать к провайдеру, размахивая договоров, а когда искать проблему на месте.

Простой пример: у клиента перестает работать ВМ, клиент сразу думает, что проблема в инфраструктуре. И смотрит, что же там в SLA по поводу доступности. А может, на самом деле зависла ОС, клиентская сеть лагает, — предположить можно всё что угодно. Если проблема внутри ОС, то провайдер ресурсов тут не поможет.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js