Open source — TechCave

Открытое программное обеспечение (англ open-source software) — программное обеспечение с открытым исходным кодом.


Открытое программное обеспечение (англ open-source software) — программное обеспечение с открытым исходным кодом.

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

Стена группы

Загрузка...
8 месяцев назад
#

Как новичку сделать вклад в open source проект с 20К звездами?



На хабре публикуют перевод статей про участие в open source продуктах и складывается впечатление что жизнь, полная энтузиастов, где-то за границей. Что новичку страшно участвовать в крупных проектах, что у него обязательно должны быть там кураторы и его pull request вместе с ним точно пройдет
через все круги ада.

Опыт друга, новичка в open source, говорит об обратном. Первый его pull request
#11680 приняли в звездный spring-boot без обсуждения и без единого комментария от мейнтейнеров. Его исправления будут доступны уже в версии 2.0.0.RC1



Не боги горшки обжигают. Рассуждения о возможности стать контрибьютором крупного проекта на github…

Источник
Загрузка...
8 месяцев назад
#

Rust: качаем ленту и парсим JSON



Я покажу вам, как написать небольшую программу, которая скачивает ленту(feed) в формате JSON, парсит и выводит список заметок на консоль в форматированном виде.



У нас все вылилось в очень лаконичный код. Как? Смотрите под катом.



Источник
Загрузка...
9 месяцев назад
#

McSema и декомпиляция в исходный код LLVM: реально ли это?



Представьте себе, что есть некая очень полезная программа, но она, например, существует только в версии Windows и только 64 бита. А вам нужно, например, под ARM64 и под другую ОС, соответственно. Причём исходников у вас нет, и достать их невозможно.

image

Что делать? Существует проект MCSema (пост на хабре про mcsema:
https://habrahabr.ru/post/232871/). Его создатели (а они на финансировании DARPA, между прочим), обещают сказочные вещи: перевод бинарников в LLVM IR, оптимизации, семантический анализ кода и т.д. И конечно же, перекомпиляцию на любые архитектуры, которые поддерживает LLVM. Проект опенсорсный (ссылка на гитхаб:
https://github.com/trailofbits/mcsema)

А теперь посмотрим, что происходит на самом деле.

Источник
Загрузка...
9 месяцев назад
#

Питер Хинченс: Психология архитектуры программного обеспечения



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


imageДиркжан Октман (Dirkjan Ochtman) обратил мое внимание
на определение архитектуры программного обеспечения в Википедии: «совокупность структур, требуемых для понимания системы, которая объединяет элементы программного обеспечения, связи между ними и их принадлежность». Для меня эта бессодержательная и цикличная болтовня служит хорошим примером того, как унизительно мало мы знаем о том, что на самом деле важно при создании масштабной архитектуры программного обеспечения.

Архитектура — это искусство и наука создания крупных искусственных структур, используемых человеком. Если я что и понял и успешно применял на протяжении тридцати лет при создании все более крупных систем программного обеспечения, так это то, что
программное обеспечение — это все о людях. Крупные структуры сами по себе бессмысленны. Важно то, как они функционируют для использования их людьми. А в программном обеспечении, человеческое начинается с программистов, которые делают его.

Основные проблемы в архитектуре программного обеспечения кроются в человеческой психологии, а не в технологиях. Наша психология по-разному может влиять на нашу работу. Я могу привести примеры того, как группа людей словно становится глупее по мере того, как она расширяется, или когда им приходится работать, будучи разделенными огромным расстоянием. Значит ли это, что чем меньше команда, тем она эффективней? Как же тогда такое крупное глобальное сообщество как ZeroMQ умудряется успешно работать?

Источник
Загрузка...
9 месяцев назад
#

JUndo — undo библиотека для Java





Введение

В конце прошлого года мне потребовался undo/redo инструмент для Java-проекта, который, помимо стандартных для этого концепта задач, умел бы сохранять историю команд и корректно обрабатывать привязку к меняющемуся адресному контексту (это с прицелом на мой готовящийся проект для Android и его регулярное пересоздание вьюшек). Поискал, не нашел, взялся.
Результатом стала библиотека JUndo.



Источник
Загрузка...
9 месяцев назад
#

Как новичку поучаствовать в опенсорс разработке?



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



Источник
Загрузка...
Den
9 месяцев назад
#

Скрестить ежа (Marathon) с ужом (Spring Cloud). Эпизод 2



В первом эпизоде у нас получилось вытянуть информацию из Mesos Marathon прямиком в бины Spring Cloud-а. Вместе с тем у нас появились первые проблемы, одну из которых мы разберём в текущей части повествования. Давайте вспомним нашу конфигурацию подключения к Marathon-у:



spring:  
    cloud:
        marathon:
            scheme: http       #url scheme
            host: marathon     #marathon host
            port: 8080         #marathon port


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



Источник
Загрузка...
9 месяцев назад
#

Как мы выбирали между Elastic и Tarantool, а сделали свою (самую быструю) in-memory БД. С Join и полнотекстовым поиском



Всем привет.



С середины 2016 года мы проектируем и разрабатываем новое поколение платформы. Принципиальное отличие от первого поколения — поддержка API «тонкого» клиента. Если старая платформа предполагает, что на клиента при запуске загружается метаинформация о всем контенте, который доступен для абонента, то новая платформа должна отдавать срезы данных отфильтрованные и отсортированы для отображения на каждом экране/странице.



Высокоуровневая архитектура на уровне хранения данных внутри системы — постоянное хранение всех данных в централизованном реляционном SQL хранилище. Выбор пал на Postgres, тут никаких откровений. В качестве основного языка для разработки — выбрал golang.



У системы порядка 10м пользователей. Мы посчитали, что с учетом профиля теле-смотрения, 10М пользователей может дать сотни тысяч RPS на всю систему.





Это означает, что запросы от клиентов и близко не стоит подпускать к реляционной SQL БД без кэширования, а между SQL БД и клиентами должен быть хороший кэш.



Посмотрели на существующие решения — погоняли прототипы. Данных, по современным меркам у нас немного, но параметры фильтрации (читай бизнес-логика) — сложные, и главное персонализированные — зависящие от сессии пользователя, т.е. использовать параметры запроса как ключ кэширования в K-V кэше будет очень накладно, тем более пейджинг и богатый набор сортировок никто не отменял. По сути, под каждый запрос от пользователя формируется полностью уникальный набор отфильтрованных записей.



Источник
Загрузка...
9 месяцев назад
#

Моделирование автопилота на авиасимуляторе



Можно ли использовать продольно расположенный полупроводниковый гироскоп, который измеряет угловую скорость разворота самолета, для удержания крена? Проверим это на авиасимуляторе с внешним автопилотом. А также хотелось бы проверить алгоритмы управления самолетом. Такую возможность предоставляет авиасимулятор XPLANE.





Рис.1



Почему именно XPLANE? Он позволяет выводить данные с датчиков симулируемого самолета



Источник
Загрузка...
9 месяцев назад
#

Как построить сообщество. Перевод книги «Социальная архитектура»: Глава 3. Сообщество ZeroMQ



Можем ли мы целенаправленно строить сообщества?


imageМеня иногда спрашивают, что такого особенного в ZeroMQ. На это я всегда отвечаю, что ZeroMQ — возможно лучший ответ, который у нас есть на злободневный вопрос
«Как создавать распределенные программные средства, которые требуются от нас 21 век?». Но, помимо этого, ZeroMQ выделяется благодаря своему сообществу. Что и отличает волков от овец.

Есть три основных open source паттерна. Во-первых, когда крупная фирма выбрасывает на рынок код, чтобы расправится с конкурентами. Это модель Apache Foundation. Во-вторых, когда крошечные команды и маленькие компании строят свою мечту. Это наиболее распространенная open source модель, которая может быть наиболее коммерчески успешна. И наконец, агрессивные и разнообразные сообщества, всей толпой пробирающиеся сквозь дебри проблем. Это модель Linux, и вот к ней мы и стремимся в ZeroMQ.

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

Источник
Загрузка...
9 месяцев назад
#

Интервью с главным digital-стратегом Adblock Plus: «Отлично мне спится, Бурумыч, отлично!»



image

Вопрос от Бурума: Как вам спится?

Лаура Софи Дорнхайм,
главный диджитал-стратег eyeo: Я сплю и вижу, как бы я поубивала всех журналистов… Шучу. Мне отлично спится.

На кого вы учились, что взламывали в детстве?

Лаура: Давным-давно, В 14-15 лет я начала интересоваться интернетом. В то время крупнейший в Германии интернет-провайдер работал так: когда пользователь логинился, создавался URL, который имел
timestamp, который было легко воссоздать, зная только e-mail адрес и алгоритм конструирования URL. Так я получила доступ ко входящим сообщениям моих друзей. Это была моя самая крупная хакерская атака, и с тех пор я ни-ни.

Я поступила на бизнес-информатику, но там было ооочень уныло. Я поклялась, что не буду заниматься PR и маркетингом, но для ЭТОЙ компании я счастлива заниматься этими направлениями.

Источник
Загрузка...
Den
9 месяцев назад
#

Еще раз о SWAP в Linux «на горячую» на AWS EC2 Instance



Все мы знаем, как важен SWAP. И как без него бывает плохо. Особенно когда ОЗУ не так много, а на сервере появился «прожорливый» процесс.



В данной статье хочу рассмотреть способы добавления SWAP на AWS EC2 серверах «на горячую», без перезагрузки сервера.



Источник
Загрузка...
Den
9 месяцев назад
#

Rust: «Назад к корням»



Мне приходит в голову множество разных целей для Rust в текущем 2018 году, к слову, 2017 год прошел для меня очень быстро, так что я задался следующим вопросом: если бы я мог выбрать одну-единственную цель для Rust в 2018 году, то что бы я выбрал?



Я буду пристрастен, и вот мое мнение:



Источник
Загрузка...
9 месяцев назад
#

Как начать создание Open Source проекта





Меня зовут Дима и я Ruby разработчик. Сегодня я хочу поделиться своим опытом создания open source решения, в этой статье вас ждет:

  • Мой опыт создания Open Source проекта

  • Определение целей и планирование

  • Тонкости оформления

  • Мои ошибки



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

Источник
Загрузка...
Den
9 месяцев назад
#

Почему я до сих пор не занимаюсь опенсорсом



В предыдущей опубликованной мной на Хабре статье ("Так почему же ты не участвуешь в разработке Open Source программного обеспечения?") автор поднимал вопрос — почему разработчики не участвуют в опенсорс проектах. Сегодня предлагаю посмотреть на ситуацию глазами разработчика желающего помочь опенсорсу, но раз из раза откладывающему этот шаг. Что ему мешает?

Брендон Хейс (Brandon Hays) еще в 2011 году написал на эту тему
отличную статью перевод которой я публикую ниже. Через опыт автора мне хотелось выйти на системное понимание проблем, делающих опенсорс “недружелюбным” для новичков. Буду очень рад, если читатели поделятся свои опытом: изменилось ли что-то за последние годы? как вы решали/решаете обозначенные проблемы? что нужно сделать, чтобы в опенсорс проектах было легче участвовать?

И да — несмотря на все сказанное, лично я считаю, что Open Source — это единственно возможное будущее для разработки ПО. Многие со мной не согласятся — прошу не кидаться камнями, я постараюсь подробнее развить эту мысль в наших следующих статьях.

Источник
Загрузка...
1 3 4

Авторизация

Пользователи

Георгiй Москвитинъ
Andpyxa Tutunnik
Andrey_fox
Jane linch
genagy
Pasha Radiuk
KotikBSD
Эрик Имашев
Амир Исмагилов