Рубрика «open source» - 77

Avalonia — кроссплатформенный .NET UI-тулкит с открытым исходным кодом, вдохновлённый технологиями WPF и UWP. Он полностью поддерживает Windows, macOS и Linux, .NET Core 2.0-3.1, XAML, дата-биндинги, lookless-контролы и многое другое.

(на ВДПВ показана работа без XOrg)

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

За подробностями прошу под кат.

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

Rambler начал процедуру расторжения договора с Lynwood после иска к Nginx - 1

Согласно информации агентства «ТАСС», Rambler Group начала процедуру расторжения договора с компанией Lynwood, после ситуации, возникшей с компанией Nginx. Кипрской компании Lynwood Investments CY Ltd в 2015 году были переданы права на защиту интересов Rambler Group. Таким образом, Rambler именно Lynwood уступила права на предъявление претензий и исков, связанных с нарушением прав на Nginx. И дело против Nginx инициировала по факту Lynwood Investments.
Читать полностью »

image

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

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

Пошаговая инструкция под катом.
Читать полностью »

С прошлой недели все сообщество бурлит насчет уголовного дела против NGINX. И, наверное, нет людей, которые бы равнодушно смотрели, как обычного сисадмина, который сумел превратить свое увлечение в выдающийся финансовый успех, пытаются прессовать акулы Российского капитализма в стиле лихих 90-х.

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

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

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

Поэтому я предлагаю обсудить/дополнить возможную стратегию защиты Игоря от нападок Рамблера. А может быть, материал данной статьи пригодится не только ему, но и другим разработчикам Свободного ПО, которые невольно могут оказаться в похожей ситуации.

Мне кажется это будет полезней, чем просто сменить свою аватарку на «Я/МЫ NGINX» :-)

Стратегия защиты NGINX и просьба к Игорю Сысоеву - 1

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

Deep Fake Science, кризис воспроизводимости и откуда берутся пустые репозитории - 1
Я мирно сидел на семинаре, слушал доклад студента о статье с прошлого CVPR и параллельно гуглил тему.
— К достоинствам статьи можно отнести наличие исходного кода….
Пришлось вмешаться:
— Наличие чего, простите?
— Э-э-э… Исходного кода…
— Вы его смотрели? 
— Нет, но в статье указано… 
(мать-мать-мать… привычно отозвалось эхо)
ㅡ Вы ходили по ссылке?
В статье, действительно, предельно обнадеживающе написано: “The code and model are publicly available on the project page …/github.io/...”, — однако в коммите двухлетней давности по ссылке значится вдохновляющее «Код и модель скоро выложим»‎:
Deep Fake Science, кризис воспроизводимости и откуда берутся пустые репозитории - 2Ищите и обрящете, стучите и откроется… Может быть… А может быть и нет. Я бы, исходя из печального опыта, ставил на второе, поскольку ситуация в последнее время повторяется ну уж о-о-очень часто. Даже на CVPR. И это только часть проблемы! Исходники могут быть доступны, но, к примеру, только модель, без скриптов обучения. А могут быть и скрипты обучения, но за несколько месяцев с письмами к авторам не получается получить такой же результат. Или за год на другом датасете с регулярными скайп-звонками автору в США не удается воспроизвести его результат, полученный в наиболее известной лаборатории в отрасли по этой теме… Трындец какой-то.

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

Кому интересно, что стало со студентом куда катится научный мир, в том числе по «вине»‎ глубокого обучения, добро пожаловать под кат!
Читать полностью »

tl;dr

github.com/QratorLabs/fastenum

pip install fast-enum

Зачем нужно перечисление (enum)

(если вы все знаете — опуститесь до секции «Перечисления в стандартной библиотеке»)

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

# /path/to/package/static.py:
INITIAL = 0
PROCESSING = 1
PROCESSED = 2
DECLINED = 3
RETURNED = 4
...

… или как статические атрибуты класса:

class MyModelStates:
  INITIAL = 0
  PROCESSING = 1
  PROCESSED = 2
  DECLINED = 3
  RETURNED = 4

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

Однако, и константа модуля, и класс со статическими атрибутами страдают от внутренней природы объектов Python: все они изменяемы (мутабельны). Можно случайно присвоить значение своей константе во время выполнения, а отладка и откат сломанных объектов — отдельное приключение. Так что вы можете захотеть сделать пачку констант неизменяемыми в том смысле, что количество объявленных констант и их значения, на которые они отображаются, не будут изменяться во время выполнения программы.
Читать полностью »

tl;dr

github.com/QratorLabs/fastenum

pip install fast-enum

What are enums

(If you think you know that — scroll down to the “Enums in Standard Library” section).

Imagine that you need to describe a set of all possible states for the entities in your database model. You'll probably use a bunch of constants defined as module-level attributes:

# /path/to/package/static.py:
INITIAL = 0
PROCESSING = 1
PROCESSED = 2
DECLINED = 3
RETURNED = 4
...

...or as class-level attributes defined in their own class:

class MyModelStates:
  INITIAL = 0
  PROCESSING = 1
  PROCESSED = 2
  DECLINED = 3
  RETURNED = 4

That helps you refer to those states by their mnemonic names, while they persist in your storage as simple integers. By this, you get rid of magic numbers scattered through your code and make it more readable and self-descriptive.

But, both the module-level constant and the class with the static attributes suffer from the inherent nature of python objects: they are all mutable. You may accidentally assign a value to your constant at runtime, and that is a mess to debug and rollback your broken entities. So, you might want to make your set of constants immutable, which means both the number of constants declared and the values they are mapped to must not be modified at runtime.
Читать полностью »

imageФото: Пётр Аскинази/Flickr

В Кремле не стали комментировать историю конфликта Rambler Group и Nginx. При этом пресс-секретарь президента Дмитрий Песков считает, что данная ситуация никак не отразится на инвестиционном климате страны.

«Конечно, такие далеко идущие выводы вряд ли стоит делать. Россия сохраняет свою привлекательность, российский рынок — это рынок, где растут и новые стартапы, и потом, вы знаете, они получают международное признание», — заявил Песков.

Говоря об истории с Nginx, он отметил, что в Кремле не хотят комментировать эту историю, так как «не знают деталей», а также, так как это «не относится к нашей сфере». Читать полностью »

Data Science для начинающих

1. Sentiment Analysis (Анализ настроений через текст)

image

Посмотрите полную реализацию проекта Data Science с использованием исходного кода — Sentiment Analysis Project в R.

Sentiment Analysis — это анализ слов для определения настроений и мнений, которые могут быть положительными или отрицательными. Это тип классификации, при котором классы могут быть двоичными (положительными и отрицательными) или множественными (счастливыми, злыми, грустными, противными ...). Мы реализуем этот Data Science проект на языке R и будем использовать набор данных в пакете «janeaustenR». Мы будем использовать словари общего назначения, такие как AFINN, bing и loughran, выполнять внутреннее соединение, и в конце мы создадим облако слов, чтобы отобразить результат.

Язык: R
Набор данных/Пакет: janeaustenR
Читать полностью »

Корпорация F5 Networks рассылает своим клиентам письма, в которых информирует о текущей ситуации с NGINX - 1
Reddit-пользователь m8r-1975wk, работающий системным администратором в компании, которая сотрудничает с корпорацией F5 Networks, опубликовал письмо, пришедшее в рассылке от F5.

Данный пользователь имеет вполне высокий рейтинг на ресурсе reddit, карма его публикаций находится в пределах 1400, а карма комментариев — вблизи показателя 5700.Читать полностью »


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