• Откуда происходит название «сериализация»?

    StrangeAttractor
    @StrangeAttractor
    Мне всегда (с тех пор, как я познакомился с этим понятием программируюя на C++ под Windows NT 4) казалось очевидным, что слово сериализация означает преобразование объекта в детерминированную последовательность (отсюда и «serial» — «последовательный», как «serial port») байтов (раньше это были двоичные последовательности, теперь чаще текстовые типа XML или JSON), которые можно сохранить на диск или передать по сети для последующего воспроизведения состояния объекта.
    Ответ написан
    2 комментария
  • Pub/Sub с персистентными сообщениями?

    @kastigar
    Может вам подойдёт Akka? Насколько я знаю для очередей сообщений можно указывать storage (уже есть немало адаптеров). Заодно и более-менне лёгкую масштабируемость получить с помощью akka-remote. Но назвать это 100% готовым решением трудно. Да и важно какого рода вам pub/sub нужен, под одни задачи akka даже лучше будет, под другие вообще не подойдёт.
    Есть ещё vert.x. С реалтаймом там всё хорошо, а вот с персистентностью — не в курсе. Под vert.x есть разные модули, не удивлюсь если уже реализовано, но придётся поискать или поспрашивать в их коммьюнити.
    Ответ написан
    Комментировать
  • Pub/Sub с персистентными сообщениями?

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

    Я бы использовал sockjs + redis со своей логикой.
    Ответ написан
    Комментировать
  • Как наименее накладно обрабатывать 5-6М очень мелких запросов в сутки?

    @Moxa
    можно поставить tomcat, реализовать апи на яве… простенький сервлет у меня на ноуте обрабатывает ~12к реквестов в секунду… в таком случае все скорее упрется в скорость записи монги…
    Ответ написан
    Комментировать
  • Во что переименовать хабрафуршет?

    @MikhailEdoshin
    То есть вы спросили у Лебедева разрешения использовать слово «фуршет» и он не разрешил? Это прекрасно. Вы знаете, я, скорее, сторонник интеллектуальной собственности, но тут, на мой взгляд, никакой интеллектуальной собственности нет и никакого преступления или даже просто неэтичного поступка вы не совершаете. Фуршет а-ля Лебедев — хорошая идея, отдаю должное г. Лебедеву, но запретить другим организовывать такие же фуршеты этим он не имеет права. Ни в каком смысле — ни по закону, ни по этическим соображениям.
    Ответ написан
    3 комментария
  • Программирование. С чего начать ребенку?

    ntkt
    @ntkt
    Потомственный рыцарь клавиатуры и паяльника
    10 лет это, вроде, уже в 5-й класс пора?
    !!! СРОЧНО !!! в достойный маткружок, натаскиваете как раз к сентябрю, когда обычно идут вступительные испытания. Мозги вправляет только так. Программирование потянется само, скорее всего расскажут/заинтересуют прямо там.

    Если достойного кружка в радиусе дневного перехода нет (или не возьмут, или еще что), то берем материалы, например, здесь: zaba.ru/ и учим сами.

    Даю такой совет, опираясь на выборку людей, прошедших через маткружок 239 и/либо СПбГДТЮ на рубеже миллениума.
    Ответ написан
    1 комментарий
  • Программирование. С чего начать ребенку?

    Arktos
    @Arktos
    Школьные олимпиады по программированию. Необходимая база по математике и алгоритмы. Язык Pascal или C++, но только функции, без структур или классов. В 11 лет уже серебро на IOI берут
    Ответ написан
    Комментировать
  • Олимпиады или соревнования по JAVA?

    WNeZRoS
    @WNeZRoS
    На Codeforces можно решать олимпиады на java.
    Ответ написан
    Комментировать
  • Выбрать по координатам наименьшее расстояние

    @Zlobober
    Господи, баянистая же задачка по алгоритмическому программированию.
    Разбили точки на две половины с одинаковым количеством точек вертикальной прямой. Рекурсивно нашли ответ для двух половин — пусть такой минимальный периметр по двум половинам равен P.
    Осталось разобрать треугольники, у которых одна вершина в одной половине, а две других — во второй. Нам достаточно рассматривать только точки на расстоянии <= P / 2 от прямой деления.
    Теперь идём по точкам в этой полосе сверху вниз, поддерживая набор точек, которые находятся по вертикали от нашей на расстоянии не более P / 2. Т. е. идём эдаким плывущим окошком ширины P / 2 — получаются два вида событий — точка попала внутрь окна и точка вышла из окна.
    Если внутри окна не существует треугольника, который периметром меньше P, то в этом окне (навскидку) никак не может быть больше 7 точек (раз окно — прямоугольник P x P / 2). Эти 7 точек можно уже за кубическую сложность перебрать. Иначе там обязательно есть треугольник периметром меньше P, на который мы наткнёмся. Каждый раз, натыкаясь на такой треугольник будем попросту уменьшать P до нового значения.

    Тем самым, получился алгоритм со сложностью, удовлетворяющей оценке T(n) = 2T(n / 2) + O(nlogn), решением которой является O(n*log^2(n))
    Ответ написан
    2 комментария