LINUX.ORG.RU

Сообщения cdshines

 

БД с поддержкой версионности

Форум — Development

У нас есть свой велосипед, который умеет «умно» апдейтить сущности, при необходимости создавая новые версии с сохранением отношений между ними (если B как-то связана с A и потом A апдейтится в A', связь между A' и В автоматически хендлится в заисимости от типа апдейта).

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

Что есть такого, чтобы можно было из джавы юзать? Или хотя бы по ресту, если оно будет достаточно производительное.

 , ,

cdshines ()

Swift IDE

Форум — Development

В связи с большим открыванием, хотелось бы иметь IDE или хотя бы какой-то блокнот с кнопкой для запуска/компиляции и автодополнением. Гуглятся какие-то заброшенные плагины для sublime и все. Если есть не-мертвые проекты по созданию плагинов для idea/sublime, могу присоединиться. Даже что-то для vim или emacs подойдет.

 ,

cdshines ()

True multiple dispatch!

Форум — Development

[слоупок][капитан][anonimous-на-связи]

Оказывается, у нас благодаря MethodHandles еще с 7 йавы можно было не городить простыни из инстансофов (https://en.wikipedia.org/wiki/Multiple_dispatch#Java).

Вместо тысячи слов: https://ideone.com/4qdGV5

[1] https://docs.oracle.com/javase/8/docs/api/java/lang/invoke/MethodHandle.html#...

Давайте ваши ненужно. И заодно хотя бы один пример IRL, когда вам этого не хватало.

 

cdshines ()

Почему во многих плеерах такой убогий шафл-режим?

Форум — Development

Есть такие плееры, что если у тебя 1000 музыки, они будут играть от силы 100 в режиме случайного воспроизведения, причем одно и то же.

Если бы вы писали рендомайзер, как бы вы закодили случайный выбор песни и почему такое случается? Есть какие-то неочевидные подводные камни?

 , , ,

cdshines ()

Равномерный, быстрый, короткий (до 64 бит), криптографически несекьюрный хэш

Форум — Development

Есть что-то быстрее Адлера-32? Ссылки на вайтпейперы приветствуются.

 ,

cdshines ()

Как бы отрефакторить свое собственное говнецо?

Форум — Development

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

Есть один класс-менеджер, который отвечает за инициализацию/конфигурирование базы и индексов. Из него наружу торчат методы для создания классов, которые оборачивают сущности базы и позволяют сверху налепливать свою логику. (делал тогда еще по этому ману: http://neo4j.com/docs/stable/tutorials-java-embedded-entities.html), оказалось, что зря.

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

Если база падает, можно ее перезапустить и все будет в порядке, казалось бы, но! Поскольку каждый наш объект внутри держит какой-то примитив базы, после перезапуска эти примитивы будут ссылаться на старую базу, и, соответственно, весь перезапуск бесполезен.

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

Можно было бы сделать все на исключениях (типа словить что-то в стиле «БазаВыключенаИсключение» и отрефрешить объект), но из-за того, что нет единой точки оперирования хренями, пришлось бы это совать всюду, где может быть взаимодействие с примитивами базы.

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

 , , , ,

cdshines ()

leave, уходи

Форум — Linux-org-ru

Есть ли что-нибудь тонкое и длинное, что может извиваться?

Чем ответ «тентакли для анимешниц» в ответ на вопрос про что-то такое:

начинает мягко подталкивать руки в нужное положение.

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

 

cdshines ()

Помогите повысить производительность MySQL

Форум — Development

Пишу игру суть токова

Нужно много (~120KK записей) сдампить в MySQL, железо - 32ГБ RAM/Core i5 какой-то на 2 ядра + ssd. Кода под рукой нет, описываю суть: в тредпуле открывается 8(или 16) соединений, из файла читается построчно инфа, парсится и суется в БД. Загрузка CPU 25-60%, iostat показывает, что на диск пишется 16MiB/sec, загрузка 80%+. Дело в том, что я нубло еще то, и не понимаю, что тюнить. Нашел что-то здесь (https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_...), увеличил размер буфера - не помогло. Прошелся по опциям, запутался, попробовал комбинировать что-то - не помогает, все та же фигня. Сейчас происходит запись в 2 таблицы (в одну - 2К строк, во вторую - 15-20K в секунду, по грубым оценкам). Я так понимаю, мне нужно сделать так, чтобы оно писалось реже, но большими порциями, ибо база расположена на ссд и скорость записи не должна быть ботлнеком. Вопрос в том, почему увеличенный размер buffer pool (еще поднимал к-во самих buffer_pool_instances) не привел к ожидаемому результату.

Что читать, что пробовать, что крутить?

Может, уменьшить кол-во конкурентных тредов? (они читают все из разных файлов (как раз 16 файлов), т.е. по треду на файл, но могу сделать что-то вроде по 1 треду на 2-4 файла, хотя вряд ли в этом дело, да и задержка должна увеличиться)

 , ,

cdshines ()

Дерево с быстрым доставанием родителей ноды

Форум — Development

Дерево произвольного количества нод на каждой ветке. Допустим, у каждой ноды есть какой-то набор какого-то добра, т.е. добро ноды на уровне k + 1 состоит из ее добра и добра всех ее предков.

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

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

(добавил в теги «математика», ибо математики обычно и подстказывают годные идеи, но если вас зацепило - простите)

 , , , математика.,

cdshines ()

\[уймись, болезный\] Хочу написать виджет для KDE на Java

Форум — Development

В /девелопмент kde все ссылки на тулчейны для джавы мертвы. Кто-то занимался еще таким извратом? СтОит ли пробовать?

Перемещено mono из desktop

 , ,

cdshines ()

Micro$oft толсто тр-лит Google

Форум — Talks

http://www.scroogled.com/

http://www.microsoftstore.com/store?Action=cat&Locale=en_US&Scroogled...

Ъ: на чашках и кепках, которые выпускает и продает МС в своем магазине - логотип Хрома и надписи типа KEEP CALM WHILE WE STEAL YOUR DATA.

P.S. Ставим ставки на параноиков ЛОРа: кто первым поставит себе это в качестве аватарки? http://dri1.img.digitalrivercontent.net/Storefront/Company/msintl/images/Engl...

 , ,

cdshines ()

лор, объясни мне

Форум — Talks

Я иду по улице с линейкой длиной 2 метра и ценой деления 1мм. Смотрю - на стене кто-то написал «Ваня лох» и наприсовал квадрат. Я померял сторону квадрата, оказалось, что ее длина составляет ровно 1 метр (моя линейка измеряет невероятно точно, равно как и я снимаю показания). Я решил померять диагональ. Приложил линейку, но край диагонали оказался между двумя миллиметровыми черточками. На следующий день я пришел с линейкой с ценой деления 0,1мм. Все равно не вышло. Я так ходил-ходил и у меня ничего не получалось долгое время. Вопрос (здесь все уже поняли, что я хочу поговорить про иррациональные числа): если так дробить деления на линейке, то рано или поздно мы получим размер деления, сопоставимый, а затем и меньший, чем величины, с которыми имеет дело квантовая механика. У меня от этого когнитивный диссонанс. Я понимаю, что все логично - это же иррациональное число, в конце концов, но вот когда начинаешь представлять себе все это деление шкалы и оказывается, что _вообще_ не существует физической возможности хотя бы приблизиться к такому понятию, то прямо как-то неудобно становится.

P.S. drBatty, зная твою любовь к объяснению всем принципов деления на ноль с ИСПОЛЬЗОВАНИЕМ вот такого ЗАБОРА, вангую твое непременное участие в треде. Так вот, не пиши ЗДЕСЬ хотя бы В ТАКОМ стиле. И в «как бы», «хотя бы» не лепи дефис.

 , ,

cdshines ()

Посоветуйте книжек по ...

Форум — Development

(можно просто какие-то курсы или маны разного рожа сложности и длины)

1. распределенным системам (общее: архитектура, best practices etc)

2. sql: основы для нуба, и чтоб потом про всякие транзакции и т. д. (транзакции - обязательно)

3. что-нибудь вроде effective java на ваш вкус.

Навскидку: sudo cast vertexua, stevejobs, maxcom.

 , ,

cdshines ()

Как в Openbox сделать такое?

Форум — Desktop

Сменил тут тормозное кде на openbox, все летает, все хорошо, только скучаю по таким действиям - когда таскаешь мышью окно и подтягиваешь к краям экрана, оно тайлится, а если к верхней кромке - максимизируется. Как сделать?

 ,

cdshines ()

ужу, get a life

Форум — Linux-org-ru

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

Да, такие теги нарочно.

cdshines ()

Как канонічно-функционально это пишется?

Форум — Development
  def foo(thisSet: BitSet, thatSet: BitSet): BitSet = {
    var ts = thisSet
    while (!ts.isEmpty && ts.max >= thatSet.max) {
      ts = ts ^ thatSet.map(_ - thatSet.max + ts.max)
    }
    ts
  }

Я имею в виду не рекурсию (ну, с хвостовой оптимизацией можно, на крайняк), а flod/map/etc.

Если что - это я так в полиномиальном базисе собираюсь производить редукцию многочлена. Если есть менее костыльные способы, прошу их в студию. Про ОНБ знаю, это не считается.

 ,

cdshines ()

{пропаганда добра} {a monad is just a monoid in the category of endofunctors}

Форум — Development

Если кто-то пропустил, напоминаю на всякий случай, что на курсере начался курс по reactive programming, где вам расскажут такое. Ведут Одерский (Scala), Кан (Akka tech lead) и Мейер (до-диез, собственно reactive buzzword etc.). Нужно уметь писать на каком-угодно ФЯП, желательно на скале. Первая неделя вроде несложная.

P.S. Не прошло и полгода, как я узнал, что у идеи тоже есть worksheets для скалы :( :( :( а я-то все ручками :( :( :(

 , , ,

cdshines ()

Крикуны в advisory board :(

Форум — Talks

Все помнят эту Сару Шарп, которая пыталась качать права в лкмл? Кто-то ее выбрал в technical advisory board: http://lwn.net/Articles/571999/rss

Полный состав:

Elected to the TAB for a two year term at the National Museum of Scotland event were:

Greg KH <greg@kroah.com>

Thomas Gleixner <tglx@linutronix.de>

Jonathan Corbet <corbet@lwn.net>

Sarah Sharp <sarah.a.sharp@linux.intel.com>

Matthew Garrett <mjg59@srcf.ucam.org>

Вопрос: как?!

p.s. Запилите новость.

 ,

cdshines ()

Не превращаю лор в филиал stackoverflow, поэтому все под кат!

Форум — Development

Кто-то может высказаться по делу? http://stackoverflow.com/questions/19589002/how-can-i-keep-record-of-individu...

 , ,

cdshines ()

Что, частота зависит еще и от объема?

Форум — Linux-hardware

В общем, есть тут древний компьютер позапозапрошлого поколения, там было 2х256МБ памяти ддр-400 (т.е. 200МГц), но я в биосе ставил множитель fsb на 240 и процессор работал на 2ГГц вместо 1.6. А потом я купил две планки по 1ГБ, и множитель не поднимается. То есть при подъеме множителя не проходится post. Тайминги те же (CL3), ничего больше не трогал. Можно ли что-то покрутить?

 , ,

cdshines ()

RSS подписка на новые темы