LINUX.ORG.RU

Избранные сообщения b0c0813f

Установить определённый байт в n байтном целом числе

Форум — Development

Можно как-то в c++ сделать сабж, чтоб прям красиво с обмазыванием типа как в boost?

Как на C то понятно сделать.

 , ,

fornlr
()

Пост отчаяния... о Linux и играх в целом. Глава 2: Вы все офигели

Форум — Games

Всем привет! После моего предновогоднего поста отчаяния прошло довольно много времени. Я продолжал бороться с разработчиками и жесточайшим потоком багов. Я продолжал верить в то, что хоть кто-то тестит под дистры, отличные от Ubuntu и ее DE. Я выслал десятки баг-репортов. Но вот мое терпение опять на исходе. Офигевшие и ожиревшие вконец разработчики иногда отвратительно тестят даже под Ubuntu от Canonical, и то что игры не работают или плохо работают под остальные дистры семейства *buntu - это теперь в порядке вещей.

Но последняя неделя оказалось для меня особо богатой на дерьмовые баги в играх, которые наверняка работают на Ubuntu 14.04 LTS (раз их продают), но не работают в Kubuntu 14.04 LTS.

За последнюю неделю я купил 5 новых игр на GOG, из них 4 (т.е. 80%) не работает нормально или не запускается в Kubuntu 14.04 LTS, при том что ядро взято из аналогичной версии Ubuntu! 4 игры из 5 - это что-то новое.

1. Mount and Blade: Warband - не запускается, висит 10 сек. в панели окно, потом закрывается.

2. Inherit the Earth - не запускается, вылезает ланчер, в котором не нажимается кнопка PLAY.

3. Transistor - не работает звук. Когда-то я играл в Bastion в Kubuntu 12.04 LTS, и все было нормально. Теперь в их новой игре нет звука на новой LTS-версии Kubuntu, ребята деградировали.

4. Lords of Xulima - снова нет звука, хотя в остальных UNITY-играх он есть. И еще движения персонажа (особенно при беге) жестко тормозные/дерганые, чего нет под Windows.

Теперь абсолютно понятно, что они даже не запускали свои поделия в дистрах, отличных от Ubuntu. Пропустить такие баги просто невозможно - не запускается или нет звука!

Хочется собрать всех этих разработчиков говнокодеров и наказать как маленьких щенков, заставить краснеть за свои ошибки, а затем послать на переаттестацию по программированию под Linux. Бороться с этими багами больше нет сил, это невозможно - столько времени просто не бывает, отсылать баг-репорты по каждой игре, они теперь в каждой игре! Как привлечь к ответственности всех этих козлов и заставить их работать по совести?

В прошлой теме кто-то писал, что ситуация с играми в Linux становится лучше - но это не так.

Они даже не хотят тестить под LTS.

 , ,

i-want-a-fix
()

Пост отчаяния... о Linux и играх в целом.

Форум — Games

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

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

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

С чего бы мне начать?

Все знают, какая была ситуация с играми в Linux еще 4 года назад. Помимо тех опенсорсных поделок, из нормальных (проприетарных) игр не было практически ничего, кроме нескольких инди. Опенсорсных игр было тоже мало, некоторые завлекали даже больше, чем на два-три вечера, и все же - по сравнению с Windows, на которой были тысячи и тысячи игр - в Linux было по нолям. И это правда.

И лед тронулся.

Почти 4 года назад появилась такая интересная вещь, как Humble Indie Bundle - распродажа инди-игр, которые отличались тем, что были кроссплатформенны. Я помню первые распродажи HiB - это было что-то вроде взрыва в сообществе линуксоидов. Нормальные игры под Linux! Не опенсорсные, не вечные беты. Игры, в которые интересно играть, в которых есть графика. Это было далеко от ААА-хитов, там не было «графона», до него вообще еще было далеко. Но игры появились.

Следом пошла разработка клиента Desura под Linux, затем и его релиз. Эта платформа похожа на Steam, только предназначена полностью для инди-игр. Тысячи их там. Таким образом игр под Linux становилось все больше, и это началось 4 года назад. Но все это были инди.

Затем, кажется в конце 2012 года, шло тестирование клиента Steam под Linux. И вот тогда сообщество просто порвало от эмоций. Как же так - Гейб, который столько раз говорил, что никакой разработки клиента под Linux нет и в помине - зарелизил свой клиент! Это не было внезапно, но для многих стало сюрпризом, если не сказать больше.

2013й год стал годом игр под Linux. Наплыв был колосальный, если сравнить со всем что было до этого. Были портированы движки SOURCE, UNITY и Serious Engine, кол-во игр в Steam приблизилось к 400.

Появились сотни игр на краудфандинговой платформе Kickstarter, 70-80% которых так или иначе поддерживали Linux. Так же портированы различные более мелкие движки, включая движки визуальных новелл и различные Maker'ы.

2014й год стал прорывным в игровом плане для Linux. Портированы ВСЕ основные движки, включая CRY ENGINE 4, UNREAL ENGINE 4 и 4А Engine. Кол-во игр в Steam приблизилось к 1000. Игр в HiB и KS стало еще больше.

2014й год так же стал знаменателен поддержкой такой замечательной платформы, как GOG. Пока только около 100 игр под Linux, но начало положено. Многие игры с KS оказываются там, помимо Steam.

И вроде бы все хорошо, кол-во игр под Linux растет, движки портированы, разработчики от мала до велика забросали нас обещаниями принести ААА-хиты. Но можно ли радоваться и ликовать?

Нет, нельзя.

Что же пошло не так?

А теперь хотел бы рассказать немного о себе. Я - простой парень, 5 дней в неделю (а иногда и 7) работаю, после работы люблю немного поиграть. Так сложилось, что люблю отовариваться на всякого рода распродажах игр - HiB, GOG, предзаказы KS. В моей коллекции более 500 игр под Linux. Начал я это дело для того, чтобы не на словах, а на деле убедиться в том, что Linux - действительно становится игровой платформой. Но не спешите называть меня задротом. Прошел я от силы 20-30 игр, хотя запускал практически все.

Я всегда собирал системник сам, потому что так намного дешевле. Вот и 3 года назад я собрал хороший системник за нормальные деньги. Это процессор Intel core i5-2500K, видюха nVidia GTX 560 Ti, 16 GB оперативки - не самая отстойная конфига по тем временам. Моя любимая ОС - Kubuntu, которая была выбрана после того, как в свое время наигрался с Debian, Fedora, Slackware и много чем еще, и понял что от идеала хорошей домашней ОС они далеки. Ubuntu не понравилась тем, что в ней Gnome, да и Unity тоже не понравился.

Последние 3 года я только и делал, что убеждал себя и других людей в том, что в с играми под Linux «все хорошо». Что достаточно купить nVidia, и никаких проблем! Но сегодня, после очередной проблемы в очередной игре я понял - что не могу больше врать себе и другим. Я разочарован. Хотя чувство, которое я испытываю щас - намного глубже простого разочарования. Мне стыдно, что я обманывал людей. Под Linux с играми ничего не хорошо.

Поиграв в более чем 500 игр хотя-бы 30 минут я понял, что почти в 20% игр есть проблемы и огрехи под Linux, которые скорее всего никто и никогда не исправит. Среди тех 20-30 игр, в которые я достаточно поиграл, есть многие, баги в которых не исправляются годами - я сменил множество версий Kubuntu, и множество драйверов nVidia. Но ничего не поменялось. Речь здесь о графических багах, артефактах, глитчах. И так же речь о обычных багах, которые тоже никто не пофиксит.

Но самое печальное - на «разборки» и переписки с каждым разработчиком уходят недели, иногда целые месяцы. Это просто невыносимо, и от всего этого с каждым разом становится все противнее. При этом - те же игры под Windows работают хорошо. Я специально поставил Windows рядом и протестил эти игры - там не было никаких проблем. Но напоминаю - речь не о винде, и оставлять ее или пользоваться я не собираюсь.

Речь вот о чем:

1. Игровая индустрия обещает нам тонны игр под Linux, но похоже такая вещь как тестирование под Linux - это слабое звено. Иногда мне кажется, что некоторые игры вообще не тестировали под Linux. Так - бросили в магазин «на, жри что дают!».

2. Пользователей Linux всего по разным меркам 3-5%, этого слишком мало, чтобы заставить разработчиков нести ответственность за качество продуктов. И этого достаточно, чтобы плевать нам в лицо. Им просто на нас насрать. Мы для них не более, чем мешки с деньгами. Призвать к ответственности большинство разработчиков - это просто что-то с чем-то. Тестирование и багфиксинг под Linux для них - дело последнее в приорити лист. Та же самая ситуация, кстати, под Mac OS. На многих форумах можно просто зачитаться эпичных историй отвратительных портов.

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

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

А можете просто описать свой игровой Linux-экспериенс... но просьба только серьезно, и по теме.

 , ,

i-want-a-fix
()

AJAX/Websocket + БД

Форум — Web-development

Привет!

Пишу небольшую вебморду, которая будет просто отдавать данные из БД. Данные в БД - информация о работе некоторых скриптов - они пишут в одну таблицу время запуска\окончания работы, exit code и т.д., в другую - данные по промежуточным этапам своей работы, принцип тот же. С учетом того, что большой нагрузки не предвидится (максимум 3..4 простых инсерта в секунду в «пике») я взял sqlite (да и полноценный сервер БД тащить совсем не хочется).

В вебморде есть несколько вариантов отображения информации - текущие выполняемые скрипты, небольшая статистика - например, сколько из последних 10 скриптов отработали успешно, а сколько «упали», и т.п. Другой случай - отображение информации по текущему выполняемому скрипту (те самые промежуточные шаги).

Хочется сделать это все в реалтайме, но не могу понять как это делать правильно. Изначально планировал взять AJAX, с ним я уже сталкивался, да и сама технология, на мой взгляд, довольно простая - отправляй запросы, сервер его обрабатывает (селект в БД делает) и отдает ответ. Но потом почитал интернеты (и тут тоже топик завел), где и узнал о websocket'ах. WS показался интересным, решил в качестве сервера использовать tornado (python). С учетом того, что у меня планируются постоянные соединения клиент<>сервер и отправка данных не только по запросу пользователя, мне кажется что лучше будет не на каждый поток по определенному таймеру выполнять селекты той же статистики, а выбрать ее один раз и разослать клиентам. Не будет ли это слишком «тяжелой» задачей по сравнению с AJAX (там то клиентские запросы «размазаны» по времени) или все-таки каждый поток обрабатывать отдельно? Стоит ли использовать ws везде? То есть, например, статистику по текущим таскам и «лог» текущей задачи лучше показывать в реалтайме, а вот информацию о «последних 10 задачах» может вынести в AJAX и дергать раз в какие-нибудь 10 секунд (тут реалтайм не критичен)? Опять же везде пишут что ws хорошо работает с маленькими частыми порциями данных, но тут у меня получится что одна строчка из бд будет весить минимум байт 200 (хотя все равно меньше размера заголовков в случае AJAX получается). Всякую статику, я так понимаю, вообще нет смысла отдавать через websocket? В общем с виду технология крутая, но как правильно использовать - не пойму.

Ну и еще один вопрос вдогонку - стоит ли как-то кэшировать данные из sqlite, и если да то может что-то посоветуете?

Заранее спасибо!

 ,

alozovskoy
()

gt — python-библиотека для Google Translate, плюс CLI- и libnotify-клиенты

Форум — Development

Собственно, $subj: https://github.com/shdown/gt (скриншоты — там же).

Покритикуйте, что ли.

Из аналогов нашёл только скрипты на bash с парсингом через cut -d\" и это (написано на awk (!), не умеет вытаскивать ничего, кроме перевода).

Работает через запрос к http://translate.google.com/translate_a/single?client=t ­(то же, что запрашивает клиентский JS на translate.google.com) и препроцессинг полученных массивов в JS-синтаксисе в валидный JSON.

«libnotify-клиент» переводит содержимое иксового выделения и показывает перевод, варианты и пр. в уведомлении: выделил где угодно (консоль, браузер, …) слово, нажал хоткей — и готово. Может показывать слова из списка «См. также» в «actions» уведомления и переводить их по клику.

 

shdown
()

Вышел Ranger 1.7.0 — небольшой python/ncurses консольный файловый менеджер

Новости — Open Source
Группа Open Source

Ranger — небольшой python/ncurses консольный файловый менеджер. Каталоги отображаются в одной панели с тремя столбцами. Управление и хоткеи в стиле vim, mc

Что нового:

  • Теперь редактор по умолчанию Vim, а не Nano.
  • Добавлено автоматическое обновление тегов, если файл переименовывается с помощью рейнджера.
  • Добавлены команды ":rename_append", ":linemode", ":filter_inode_type", ":meta", ":flat".
  • Добавлена новая цветовая схема «solarized».
  • Добавлена возможность просмотра превью фото и видео используя scope.sh.
  • ":mkdir" теперь может создавать дерево директорий (аля mkdir -p).
  • и другое, подробнее тут.

Скриншоты

Скачать

Github

Wiki

>>> Подробности

 ,

Deleted
()

Хочу версию из гита

Форум — Development

Юзаю вот что:

include(GetGitRevisionDescription)
git_describe(VERSION_LONG)

#parse the version information into pieces.
string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${VERSION_LONG}")
string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${VERSION_LONG}")
string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${VERSION_LONG}")
string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+(.*)" "\\1" VERSION_SHA1 "${VERSION_LONG}")
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")

git_describe возвращает в CMake вывод git describe. Возвращает верно. Но при этом в VERSION лежит не распарсенный вывод, а тупо утроенная VERSION_LONG. Как фиксить?

 , ,

Athor
()

Обратная сторона Unix way

Форум — Development

Есть программа, функции которой можно сделать независимыми и разбить на части, как завещал юникс вей. С одной стороны возможность сменить любой кирпичик является интересной и практичной идеей, но насколько сильно пайпы будут тормозить всю конструкцию, нежели реализованной нормально статически?

 , ,

zusazo
()

Кто-нибудь использует TPM/Токены/SecureBoot/IMA/TXT?

Форум — Security

Используете ли Вы TPM/Токены/SecureBoot/IMA/TXT?

Интересно, есть ли на ЛОРе люди, которые используют криптографию и безопасность для чего-то большего, чем SSH-ключи и подпись сообщений.

 , ,

ktulhu666
()

Уже есть какие-то туториалы по созданию защищенных систем с SecureBoot?

Форум — General

Я знаю, что UEFI SecureBoot вызывает бугурт, особенно, если мать не может (обычно, это проблема обладателей говнонетбуков) грузить ОСь в старом стиле (MBR-загрузчик), да ещё и подписанный загрузчик требует. Но я в данном обсуждении не хотел бы поднимать вопросы пользователей чайников, разделочных досок и кофеварок, и прочих рабов устройств за 300$, а поговорить о использовании этой технологии для обеспечения безопасности (целостности) системы (не в MS-стиле, когда это только кряк мешает поставить, а в плане реальной безопасности).

Практически все из нас знают о проекте Linux Integrity Subsystem ( http://linux-ima.sourceforge.net/ ), который представляет средства всеобъемлющей (проверка загрузчика, проверка ядра и initrd, проверка модулей ядра, проверка исполняемых, обычных и конфигурационных файлов) проверки системы на повреждения целостности или подмены её частей. Т.е. компьютер со всеми активированными прослойками LIS невозможно взломать подменой файлов, если нет доступа к TPM (хотя, это не значит, что нужно открываться от шифрования).

Есть очень большое количество документации по IMA и EVM, есть документация по GRUB-IMA, но вопросы использования Signed modules ( http://unix.stackexchange.com/questions/74022/sign-a-module-after-kernel-comp... , http://www.oracle.com/technetwork/articles/servers-storage-admin/signed-kerne... ) и самого биоса UEFI SecureBoot остаются нераскрытыми.

В частности по signed modules я не смог найти нормальной документации (а интеграции с TPM, вероятно, вообще нет). По созданию и прошивке ключей для grub2 (grub-ima) вообще очень мало информации, особенно в случае конкретных материнских плат. Большая часть обсуждений этих технологий сводится к пространному рассуждению об их устройстве и профитах для юзера.

Прошу указать мне на источники (или из своего опыта), как (и как какую, самое главное) использовать мать с secureboot с grub2 с собственными ключами. И как использовать signed modules с TPM.

 , , ,

ktulhu666
()

Помогите переписать руби скрипт на шелл(или баш)

Форум — Development

Я тут перебрался на ссд и решил наконец-то сделать автобекап для конфигов. следующий код вешается на ".bash_logout" (а кстати есть шелло-независимый «что-то_logout»?)

`vcsh list`.strip().split(/\n/).each do |repo| 
    repo = repo.strip() 
    lines = `vcsh status #{repo}`.split(/\n/) 
    next if lines.empty?() 
 
    lines.each do |line| 
        filePath = line.sub(' M ', '') 
        message = "autoupdate of '#{filePath.gsub('../', '')}'"  
        `vcsh run #{repo} git commit #{filePath} -m "#{message}"` 
    end 
 
    `vcsh push > /dev/null` 
end 

ах, да. желательно не использовать башизмы

upd: поточный вариант на шелл можно посмотреть здесь

 , posix shell,

ZuBB
()

Пропатчить GOT таблицу на MIPS.

Форум — Development

Как пропатчить KDE2 под FreeBSD GOT-таблицу на MIPS?

Более практически меня интересует перехватить вызов функции xxx() скажем. При условии, что мой код стартует после загрузки всех .so и линковки. LD_PRELOAD — нельзя.

Т.е. на x86 понятно как. Я беру адрес xxx — он же является адресом внутри PLT, откуда я извлекаю адрес ячейки GOT, в которой записан реальный адрес функции, и подменяю его на свой.

Проблемы MIPS: во-первых нет PLT. В момент вызова функции генерируется код, который сразу лезет в GOT, извлекает адрес, кладёт в t9 и делает jalr t9. Из этого следствие, что непонятно как получить адрес ячейки GOT: если, на уровне ассемблера, я использую символ xxx, например, то команда la xxx мне сразу генерит код лезущий в GOT (оканчивающийся на lw t9, offs(gp)) — и в регистре сразу у меня адрес самой xxx. А мне нужно не значение символа xxx, а адрес ячейки GOT (не адрес функции xxx, а адрес адреса в GOT). И вот здесь я не понимаю — возможно ли, и если возможно то как записать такую конструкцию. Складывается впечатление, что невозможно. Но меж тем задача инжекции своей функции в чужой код она же можно сказать типовая. Должно же быть какое-то решение. Наконец, как-то же это делает линкер, на момент загрузки (хотя, он может читать ELF, а я не очень-то хочу).

 , ,

fk0
()

Правильная реализация клиента на питоне.

Форум — Development

Нужен tcp клиент, решил делать на питоне. Клиент посылает на сервер сообщения вводимые с консоли и как то обрабатывает результат. Вопрос следующий : для прослушивания ответов сервера нужно ли создавать отдельный поток или можно как то обойтись без этого (ну или как то в не явном виде). Также буду благодарен за пример подобной программы на питоне

 , ,

mio
()

Правильное использование исключений

Форум — Development

Я в учебных целях и из спортивного интереса разрабатываю класс для работы с bmp картинками. Функционал пока что примитивный - чтение из файла, запись в файл, вывод на в консоль (да, я упоролся), в дальнейшем будет еще что нибудь, например рисование примитивов на открытом изображении. О всяческих ошибках по моей задумке класс должен сообщать использующей его программе с помощью исключений. Например, если перед вызовом функции read() имя открываемого файла указано не было, выбрасывается исключение, или при чтении файл внезапно кончился, хотя должен был продолжаться, опять выбрасывается исключение.

Является ли частое использование хорошим тоном? Или может быть лучше вообще не использовать исключения, а просто сделать bool read(), который вернет false если случилась ошибка, и другие функции переписать в таком же духе? Какие еще особенности бывают при работе с исключениями?

 ,

WRG
()

STM32 bootloader

Форум — Development

Привет,

Хочу добавить в свой девайс возможность обновления (via UART),
Нашел вот такой мануал. В прицнипе все понятно, и на этом можно было бы остановиться, но ... там предполагается, что у нас примерно такая схема флешки:
1KiB, bootloader | other, Firmware
Т.е. у нашей firmware точка входа 0x8000400, а у загрузчика 0x8000000 и всем хорошо.
Я же хочу иметь еще и резервную firmware, т.е. что-то вроде:
1KiB, bootloader | 30KiB, Firmware1 | 30KiB, Firmware2.
И вот тут-то и проблема, Я хочу единую firmware, с одной точкой входа, а не две разных (в случае с firmware2 нам нужна точка входа 0x8007c00), иначе же оно работать не будет ...
Вопрос, как можно избавиться от этой привязки (т.е. что бы firmware не была привязана к какой либо точке входа), или высчитывать её в runtime и «что-то» делать ?

 , ,

joy4eg
()

Ceph 0.94 - распределенное отказоустойчивое хранилище данных

Новости — Open Source
Группа Open Source

7 апреля стала доступна новая версия отказоустойчивого распределенного хранилища данных Ceph.

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

  • RADOS Gateway (RGW) — S3- и Swift-совместимый RESTful интерфейс;
  • RADOS block device (RBD) — блочное устройство с поддержкой тонкого роста и снэпшотами;
  • Ceph FS — распределенная POSIX-совместимая файловая система.

Для горячих голов: CephFS пока ещё не рекомендуется использовать для хранения информации, которую будет жалко потерять. :)

Основные изменения:

  • увеличено быстродействие RADOS: в OSD (Object Storage Daemon) и в библиотеку librados внесён ряд улучшений, направленных на улучшение работы на flash-накопителях, а также на улучшение параллелизма и масштабируемости системы на быстрых узлах;
  • добавлено версионирование объектов RGW: добавлена поддержка S3 obect versioning API;
  • добавлено шаридирование бакетов RGW: индексы бакетов теперь поддерживают разнесение на разные узлы, что увеличивает быстродействие для больших бакетов;
  • добавлены карты объектов RBD: создан механизм, отслеживающий аллокации частей образов блочных устройств, что увеличивает производительность операций клонирования, удаления и др.
  • много улучшений в механизме создания снэпшотов CephFS;
  • много улучшений направленных на повышение скорости и стабильности в утилитах восстановления и диагностики CephFS;
  • улучшения в CRUSH*): добавлен новый алгоритм (straw2), который позволяет снизить количество миграций при переконфигурировании кластера.

*) CRUSH - Controlled Replication Under Scalable Hashing; алгоритм определяющий распределение данных по узлам и, соответственно, их извлечение.

исходный код

>>> Подробности

 block storage,

shty
()

Теплый, ламповый, ролевой воркплейс.

Галерея — Рабочие места

Основное рабочее место, что бы неспешно кодить, лениво писать модуль к AD&D:FR и лампово поигрывать в NetHack.

Клавиатуры: Razer BlackWidow и культовая планктонская Dell Minimalist SK-8115.

Мыши: Razer Abyssus (не знаю ни чего другого, такого же надёжного и точного за эти деньги)

Ноут: Alienware M11x (rev. 1)

Микрофон: Samson C01U (для скринкастов)

vsh
()

В 15.10 закапывают второй пайтон

Форум — Talks

 ,

GoNaX
()

Реквестирую аналог DIP для JavaScript

Форум — Web-development

Привет, LOR. Случилось тут одному программисту на Scala / Java, вдовесок свободно владеющему C++ и Python, довольно плотным образом обмазаться front-end разработкой на JavaScript. И дабы не кидаться с голым пузом на амбразуру (хоть и игрушечную), было принято решение приобрести какой-нибудь годный учебник, да не простой, а золотой без сотен воды вида «что такое циклы» и «что такое объекты», напоминающий всем известный Dive into Python. Диагональное гугление каталога Amazon вменяемых результатов не дало, может быть, ты поможешь?

Языки: english, русский
Годы издания: 2013-2015
Желательно без jQuery и всяких MooTools.
AngularJS и Node.js при этом допустимы, даже приветствуются.

 , ,

Nashorn
()

Spring по-человечески

Форум — Development

Раньше пользовался спрингом как быдло - ну, навешать всякие @Component, обвернуть черным хлебом, и типа оп - вдруг из маминой из спальни ололо DI риальне! Пару раз в жизни постпроцессор написал, и даже уже не помню - какой.

На самом деле, всё то же самое можно сделать на коленке с хэшмапом и такой-то матерью за пару часов.

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

Посоветуйте литературы или других ресурсов по Спрингу.

Думаю, мне нужно вот что:
- описание внутренней механики Спринга
- логика создателей этого поделия, чтобы понять как в нем копаться, проследить ход мыслей
- реальные юзкейзы, отличающиеся от быдло-использования (поясню, я могу написать BeanFactoryPostProcessor, но зачем в реальной жизни мне это может быть нужно?

Гугл наш товарищ, но проблема в том, что большинство туториалов написано без тени мысли в глазах, и представляют собой очередной эпос на тему, как над классом надписать @Component. А нужно что-то четкое и по сути.

Пока что я забил в гуголь «spring framework sucks», там есть немного конкретики.

Это первый из серии глупых вопросов, остальные coming soon xD

 

stevejobs
()