Страницы

Поиск по вопросам

Показаны сообщения с ярлыком opensource. Показать все сообщения
Показаны сообщения с ярлыком opensource. Показать все сообщения

суббота, 11 апреля 2020 г.

Документация для open-source проекта

#документация #php #yii #веб_программирование #opensource

                    
Привет всем!

Написал небольшую библиотеку на PHP. Теперь встал вопрос о создании сайта  для нее.
Сайт я решил делать с использованием Yii Framework. Ну и само собой разумеется, что
на сайте должна быть документация по работе с этой библиотекой: использование, написание
плагинов и прочее.

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


хранение всей документации в базе данных, а не в статичных HTML-файлах;
наличие веток или версионности. Например, есть документация для версии библиотеки
1.0. Но в версии 1.1 добавились некоторые возможности, которых нет в 1.0. Мне бы хотелось
не делать копию всей документации, а выбирать статьи, которые относятся только к определенным
версиям;
мультиязычность. Причем желательно, чтобы каждая отдельная статья, а не вся документация,
имела разные переводы. Чтобы в случае отсутствия перевода, показывать оригинал статьи;
подсветка или простое выделение кода.


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

P.S. В общем-то, все мои требования отражены на самом сайте Yii: Только, как я понимаю,
отдельных модулей и их исходников для создания такой документации самому нигде нет.

UPD:

Я думал, что таких систем видимо-невидимо в инете должно быть. А начал искать - не
нашел. Может, у них какое-то название есть специальное и я не так ищу?
    


Ответы

Ответ 1



Better late than never http://readthedocs.org/ + Версионность + Многоязычность + Автобилд - Все располагается на чужих серверах, можно забрать себе проект с github, но там вряд ли будет подробнейшая документация по поддержке своего сервера + Можно тарнслировать на своем сайте с помощью простого DNS + Подсветка кода + Поиск

Ответ 2



https://ru.wikipedia.org/wiki/PhpDocumentor - это отличный инструмент. Он позволит Вам и документацию вести, и подсказки для IDE будут генерироваться, и поддержка версий есть.

вторник, 17 марта 2020 г.

Как найти open source проект под себя [закрыт]

#java_ee #java #opensource


        
             
                
                    
                        
                            Закрыт. Этот вопрос не по теме. Ответы на него в данный
момент не принимаются.
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            Хотите улучшить этот вопрос? Переформулируйте вопрос,
чтобы он соответствовал тематике «Stack Overflow на русском».
                        
                        Закрыт 4 года назад.
                                                                                
           
                
        
Здравствуйте, помогите, пожалуйста, найти не большой и не слишком сложный open source
проект на java. Я хочу получить опыт, перед тем как устраиватся на джуниора, и считаю,
что open source лучшее решение. Но, к сожалению, никак не могу найти проект, который
мне бы подошел. Желательно, чтобы там был спринг и мавен. Извините за столь глупый
вопрос)    


Ответы

Ответ 1



Пробовали искать на GitHub? Что-нибудь вроде вот этого.

Ответ 2



Можете попробовать на JavaTalks стукнуться. Там пишут форум. Со спрингом и мавеном, как вы хотите )

пятница, 21 февраля 2020 г.

Переход на OpenSource

#linux #active_directory #opensource #samba


Доброго дня. Работаю системным администратором в гос. структуре. Нам поставили задачу
"перенести" инфраструктуру на опенсорсные решения, а именно AD и Exchange. Более 1500
пользователей. С линухами работаю относительно недавно, и соответственно, малоопытный. 
Для решения задачи пытался поставить Samba4 в роли контроллера домена и привязать
всех пользователей к OpenLDAP на Debian 8. Ничего не вышло. Эти двое видимо не дружат,
так по крайней мере написано на Samba Wiki.
А вообще, что нам требуется от контроллера домена:


Пользователи (Win 7 и XP, планируется в будущем постепенный перевод пользователей
на линукс машины) распределены по поддоменам (region.asdf.com,
city.asdf.com, office.asdf.com и т.д.)
Доступ к сетевым принтерам в домене.
Общие папки и расшаренные папки на компах пользователей (доступ через "Сетевое окружение"
на винде)
Групповые политики.


Samba вроде как всё это умеет, по описанию.. но без LDAP он не нужен..

А вместо Exchange хотим поставить почтовик с веб клиентом и отучить пользователей
от Outlook. 

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


Ответы

Ответ 1



Я не сисадмин, но на люнихе живу уже почти 20 лет и моё мнение таково: Когда кто-то пытается перейти на "опенсорсные решения", то самое первое и (казалось бы) самое естественное - попытаться перенести всё, как есть, используя аналоги из люниха. В первую очередь - самбу. Т.е. смоделировать винду на люнихе. Я убеждён, что это - самый тяжёлый и неэффективный путь. Рабочие группы, AD и прочие "гениальные" изобретения Билла Гейтса никак не вписываются в идеологию *NIX систем. Достаточно вспомнить такие проблемы, как : Разный подход к использованию имён файлов и каталогов Разных подход к понятию "пользователь" и его права Разный подход к понятию "свойства (режим)" файла / каталога. Ну и так далее... Выполнить адекватный перенос очень сложно! Гораздо проще забить на все эти рабочие группы и AD и использовать нативные возможности люниха - файловую систему NFS (которая позволит создавать сетевые структуры гораздо более простыми методами) и права пользователей, предоставляемые самим люнихом. Если у Вас какая-то супер-безопасная контора, можно использовать Linux SE (Например: https://xakep.ru/2015/09/15/astra-linux-se/). Это даст Вам уровень безопасности намного превышающий виндовозный. Если Вам нужен стандартный набор сетевых сервисов, сделайте один сервер под nas4free (https://www.gotoadm.ru/network-storage-using-nas4free-part-1-installation/) - там одним щелчком запускаются все типовые сервисы: Файловая помойка с любым уровнем RAID FTP сервер WEB сервер Самба контроллер Почтовый сервер ... Я не помню, что там ещё. Короче : продумайте структуру системы и сделайте всё с нуля!

Ответ 2



Добрый день! То что пишу - сугубо мое мнение. На вашем месте я бы использовал Samba(https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller) в качестве контроллера домена управлять можно из mmc консоли установив RSAT для windows. Если на сервере то для создания\удаления и редактирования пользователей phpldapadmin можно использовать. С exchange посложнее но есть вариант развернуть на схему SAMBA AD DC - openchange (правда проект вроде как закрылся) или как вариант посмотреть в сторону SOGo (https://sogo.nu/) в качестве фронтенда для postfix(или exim кому как удобнее)\dovecot. Есть еще kolab (https://kolab.org/) он в себе содержит DirSrv(это реализация LDAP) почтовик(postfix\dovecot\spamassasin\postgrey) и в качестве фронтенда - roundcube Но самый простой вариант для вас взять Zentyal он на убунте с самбой все в нем и почтовик и прокси и сого и файерволл. А вообще начинание крутое! успехов! (подумайте сразу чем можно MS Office заменить)

воскресенье, 16 февраля 2020 г.

Переход на OpenSource

#linux #active_directory #opensource #samba


Доброго дня. Работаю системным администратором в гос. структуре. Нам поставили задачу
"перенести" инфраструктуру на опенсорсные решения, а именно AD и Exchange. Более 1500
пользователей. С линухами работаю относительно недавно, и соответственно, малоопытный. 
Для решения задачи пытался поставить Samba4 в роли контроллера домена и привязать
всех пользователей к OpenLDAP на Debian 8. Ничего не вышло. Эти двое видимо не дружат,
так по крайней мере написано на Samba Wiki.
А вообще, что нам требуется от контроллера домена:


Пользователи (Win 7 и XP, планируется в будущем постепенный перевод пользователей
на линукс машины) распределены по поддоменам (region.asdf.com,
city.asdf.com, office.asdf.com и т.д.)
Доступ к сетевым принтерам в домене.
Общие папки и расшаренные папки на компах пользователей (доступ через "Сетевое окружение"
на винде)
Групповые политики.


Samba вроде как всё это умеет, по описанию.. но без LDAP он не нужен..

А вместо Exchange хотим поставить почтовик с веб клиентом и отучить пользователей
от Outlook. 

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


Ответы

Ответ 1



Я не сисадмин, но на люнихе живу уже почти 20 лет и моё мнение таково: Когда кто-то пытается перейти на "опенсорсные решения", то самое первое и (казалось бы) самое естественное - попытаться перенести всё, как есть, используя аналоги из люниха. В первую очередь - самбу. Т.е. смоделировать винду на люнихе. Я убеждён, что это - самый тяжёлый и неэффективный путь. Рабочие группы, AD и прочие "гениальные" изобретения Билла Гейтса никак не вписываются в идеологию *NIX систем. Достаточно вспомнить такие проблемы, как : Разный подход к использованию имён файлов и каталогов Разных подход к понятию "пользователь" и его права Разный подход к понятию "свойства (режим)" файла / каталога. Ну и так далее... Выполнить адекватный перенос очень сложно! Гораздо проще забить на все эти рабочие группы и AD и использовать нативные возможности люниха - файловую систему NFS (которая позволит создавать сетевые структуры гораздо более простыми методами) и права пользователей, предоставляемые самим люнихом. Если у Вас какая-то супер-безопасная контора, можно использовать Linux SE (Например: https://xakep.ru/2015/09/15/astra-linux-se/). Это даст Вам уровень безопасности намного превышающий виндовозный. Если Вам нужен стандартный набор сетевых сервисов, сделайте один сервер под nas4free (https://www.gotoadm.ru/network-storage-using-nas4free-part-1-installation/) - там одним щелчком запускаются все типовые сервисы: Файловая помойка с любым уровнем RAID FTP сервер WEB сервер Самба контроллер Почтовый сервер ... Я не помню, что там ещё. Короче : продумайте структуру системы и сделайте всё с нуля!

Ответ 2



Добрый день! То что пишу - сугубо мое мнение. На вашем месте я бы использовал Samba(https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller) в качестве контроллера домена управлять можно из mmc консоли установив RSAT для windows. Если на сервере то для создания\удаления и редактирования пользователей phpldapadmin можно использовать. С exchange посложнее но есть вариант развернуть на схему SAMBA AD DC - openchange (правда проект вроде как закрылся) или как вариант посмотреть в сторону SOGo (https://sogo.nu/) в качестве фронтенда для postfix(или exim кому как удобнее)\dovecot. Есть еще kolab (https://kolab.org/) он в себе содержит DirSrv(это реализация LDAP) почтовик(postfix\dovecot\spamassasin\postgrey) и в качестве фронтенда - roundcube Но самый простой вариант для вас взять Zentyal он на убунте с самбой все в нем и почтовик и прокси и сого и файерволл. А вообще начинание крутое! успехов! (подумайте сразу чем можно MS Office заменить)

четверг, 13 февраля 2020 г.

Куда выложить свой исходный код?

#opensource


Необходимо выложить свой исходный код. Пару раз качал с github, только что-то не
понимаю как залить туда своё. Есть что нибудь попроще?  Можно без социальных плюшек
как у github. Мне они всё равно не нужны. Просто выложить код в открытый доступ и всё.
Спасибо.    


Ответы

Ответ 1



Я бы порекомендовал https://bitbucket.org/ - он поминималистичнее гитхаба и главное - там есть приватные репозитории. Но в гите все равно разбираться придется =)

воскресенье, 26 января 2020 г.

Аналог JetBrains dotTrace Performance

#c_sharp #оптимизация #opensource #jetbrains


Не подскажите бесплатный аналог сабжа? Есть ли он вообще в природе?    


Ответы

Ответ 1



Посмотрите на правила лицензирования JetBrains для студентов: https://www.jetbrains.com/student/ Также можете написать им в тех. поддержку, в т.ч. на русском языке.

Ответ 2



Аналог есть – ANTS Performance Profiler. Бесплатного нет, был бы бесплатный аналог, dotTrace бы не было. С большинством задач профилирования справляется и Visual Studio.

Принять участие в разработке wordpress

#php #wordpress #opensource


Довольно плотно занимаюсь разработкой сайтов на WordPress. CMS мне нравится, но сказать
что в ней нет недостатков я не могу. Поскольку это opensource проект, то  мне хотелось
бы помочь исправить те недостатки которые я вижу. Собственно вопрос - что для этого
нужно сделать? На каком сайте нужно писать исправленные фрагменты кода, и вообще интересно
как происходит весь этот процесс.    


Ответы

Ответ 1



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

воскресенье, 12 января 2020 г.

Пишу проект на Qt. Где нужно указать, что используется ПО с открытым исходным кодом?

#лицензирование #opensource


Здравствуйте. Пишу проект для себя (если кому-то будет интересно, то и для людей)
с использованием Qt. Qt под GPLv3, мой проект под MIT. Так вот, где мне нужно указать,
что используется ПО с открытым исходным кодом (в данном случае Qt)?    


Ответы

Ответ 1



Если я правильно читал документацию, то нужно сделать так в корневой каталог положите копии лицензий Qt и MIT (той, которую Вы используете) создайте файл LICENSE.txt, где напишите, что это Ваш проект под лицензией MIT и Вы используете Qt под GPLv3 во всех своих файлах в верху добавьте короткую вставку с указанием авторства, даты создания, лицензии и подобного. там, где добавить вставку невозможно (к примеру, папка с картинками), вставьте текстовый документ с подобных текстом (картинки созданы таким то, лицензия такая то). также, неплохо добавить в пункт меню "помощь" рядом с " о программе" пункт "о Qt", с вызовом стандартного окошка. в любом случае, всегда можно им написать напрямую и уточнить детали - http://qt.digia.com/licensing/

Вопрос по лицензии GPL 2+

#opensource #лицензирование


Хочу инструкцию. Пошаговую и однозначную :)

Локально возникла дискуссия, но все пришли к тому, что неоднозначно понимают GPL.

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

Синопсис: некоторые файлы были оставлены без изменений, некоторые модифицированы
(часть - почти до неузнаваемости, разве что на уровне прототипов функций что-то осталось),
добавлены другие.
    


Ответы

Ответ 1



Нужно тоже распространять под GPL версии 2+. Коротко по шагам: В каждом файле разместить требуемую лицензией шапку. Не забыть в шапке также указать всех владельцев авторских прав. К библиотеке приложить текст лицензии. Полезные ссылки: Как применять лицензии GNU со своими программами Лицензия для вашего open-source проекта Практическое руководство по соответствию GPL Ответы на вопросы о лицензиях GNU GNU GPL 3 человеческим языком Мир лицензий: разбираемся с GNU GPL Как GPLv3 совмещается с другими GNU лицензиями => http://копилефт.рф/лицензии/гну-гпл/совместимость-гну-лицензий (увы, ссылка на такой адрес не создается)

вторник, 31 декабря 2019 г.

Исходный код Google Chrome

#google_chrome #opensource


Все знают, что Google Chrome - браузер с открытым исходным кодом, т.е OpenSource.
Корпорация Google даже организовывает конкурсы, в которых участники ищут баги в исходном
коде. Багов с момента выхода самой первой версии браузера было исправлено очень много:
и серьёзных и не особо( Null-Byte в адресной строке, например ).

Так вот, хотелось бы взглянуть на исходный код браузера и попытаться что-либо понять
в нем =). Посмотреть, как бравые разработчики гугла реализовали те или иные вещи...но
исходники браузера я нигде найти не могу, даже на самом сайте разработчика( google.com
) выдается 404 ошибка. Может кто уже скачивал исходники и смотрел? В таком случае хотелось
бы узнать, откуда вы скачивали. 
    


Ответы

Ответ 1



Собственно вот так вот можно получить исходник chromium ( именно на основе chromium, был написан google chrome ). Так-же, не менее интересно, копаться в исходниках webkit и v8

Ответ 2



Идите по этому адресу и изучайте материалы. Сам исходный код в режиме онлайн можно посмотреть тут

пятница, 27 декабря 2019 г.

Open source проект [закрыт]

#java #opensource


        
             
                
                    
                        
                            Закрыт. На этот вопрос невозможно дать объективный ответ.
Ответы на него в данный момент не принимаются.
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            Хотите улучшить этот вопрос? Update the question so it
can be answered with facts and citations by editing this post.
                        
                        Закрыт 1 год назад.
                                                                                
           
                
        
Доброго времени суток!
Мне очень хотелось бы принять участие в open source проекте на java.
Может, кто-нибудь знает такие проекты?
Если не сложно, скиньте, пожалуйста, ссылки.
Спасибо :)    


Ответы

Ответ 1



Частным образом, могу предложить тот, в котором я участвовал. Ребята из России (и не только) пилят форумно-блоговый движок http://wiki.jtalks.org/display/jtalks/How+to+join+us Более глобально - любые популярные фреймворки/библиотеки. Можно поискать на гитхабе по языку и популярности.

среда, 25 декабря 2019 г.

Посоветуйте опенсорсный проект на C - образчик хорошего проектирования

#c #модульность #проектирование #opensource


Моя проблема в том, что я, начиная с какого-то момента, начинаю закапываться в собственном
коде. Отдельные части я пишу хорошо, а как надо свести их воедино - начинаю буксовать.
Очень хотелось бы посмотреть, как профессионалы применяют модульное программирование в C.
Конечно, можно писать все функции так, чтобы их как можно проще было использовать
"в вакууме". Собственно, так все стандартные функции и написаны (тот же strcmp, например).
Но в реальном проекте очень часто это порождает функции с десятком параметров, да ещё
и возвращающие несколько параметров, для чего надо городить какие-нибудь самодельные
тьюплы.
Подозреваю, что я делаю что-то совсем не то и не так. Читал книги, которые учат писать
продукты (а не куски кода), но там везде ООП. Книг по процедурному проектированию не
нашёл.    


Ответы

Ответ 1



https://github.com/google/gumbo-parser Возможно вам поможет эта ссылка. Думаю гугл все еще способен быть образцом.

суббота, 21 декабря 2019 г.

Каким образом компании зарабатывают на opensource?

#лицензирование #opensource #it_бизнес


Меня всегда интересовал вопрос, каким образом компании зарабатывают на opensource
проектах? У меня существует две догадки (к сожалению я в вопросах лицензирования не силен).


Должна существовать лицензия, которая позволяет распространять коммерческое по на
базе открытого (например без предоставления исходного кода по требованию). Тогда вполне
логично, что на этом можно заработать. 
Можно продавать услуги по обслуживанию открытого по, но тогда непонятно, кто будет
готов заплатить за услуги подобного рода? (хотя тут как по мне можно привести пример
обслуживания серверов, использующих открытое по)

    


Ответы

Ответ 1



Варианты: ПО с откодом может быть разделено на базовый функционал и на дополнительный (модули, пакеты и прочее). Дополнительные делают платным, а базовый так и остаётся бесплатным, но ограниченным в возможностях, и для того чтобы эти возможности расширить, клиенты покупают доп. возможности. Если, как сказано в вопросе, продукт хотят распространять без предоставления кода, то можно купить такую расширенную лицензию у разработчиков откод проекта. Платное консультированию и внедрение ПО. Написание и продажа учебных пособий для ПО. Реклама в основном ПО, куда же без неё. Написание (создание) обучающих уроков или каких-либо других ресурсов (сайтов, видео и т.п), где также можно встретить рекламу. Спонсирование, бывает и такое. Разновидность ПО: открытое-бесплатное и корпоративное. Продажа атрибутики (логотипов, символов): наклейки, игрушки и т.п.

среда, 18 декабря 2019 г.

Ищется интересный OpenSource проект [закрыт]

#php #java #opensource #cpp #qt


        
             
                
                    
                        
                            Закрыт. Этот вопрос не по теме. Ответы на него в данный
момент не принимаются.
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            Хотите улучшить этот вопрос? Update the question so it's
on-topic for Stack Overflow на русском.
                        
                        Закрыт 4 года назад.
                                                                                
           
                
        
Доброго времени суток!
Ищется интересный, активно развивающийся OpenSource проект для участия в качестве
разработчика. Сфера профессиональных интересов и навыки (базовые):

C++ (STL, знаком с Qt)
Java (знаком с платформой Android,
    очень интересует Java EE, - но в
    этом пока нет знаний)
Web-технологии (HTML, CSS, JS,
    jQuery, PHP, ZF, Apache)
SQL

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


Ответы

Ответ 1



code.google.com и конечно sourceforge.net . Там весьма удобный поиск, так что легко выберете проект по возможностям и желаниям. Смотрите, разбирайтесь, участвуйте и добро пожаловать в Open Source ;)

Ответ 2



PokerTH можете посмотреть - он на Qt/c++ написан, развивается активно.

Ответ 3



Можете заглянуть сюда http://jtalks.org/.

Ответ 4



http://www.concrete5.org/ - интересная open source система. Свяжись со мной. Напиши письмо на feedback@aristarhovnikita.ru. Расскажу про свой проект.

Ответ 5



Мы разрабатываем open source LBS платформу смотрие тут http://geo2tag.org/. Если интересно пишите kirill [dot] krinkin [at] gmail [dot] com

Ответ 6



Мы сейчас делаем чат на C#.

Научиться писать документацию и хорошо комментировать код [закрыт]

#документация #javascript #opensource #комментарии


        
             
                
                    
                        
                            Закрыт. На этот вопрос невозможно дать объективный ответ.
Ответы на него в данный момент не принимаются.
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            Хотите улучшить этот вопрос? Update the question so it
can be answered with facts and citations by editing this post.
                        
                        Закрыт 1 год назад.
                                                                                
           
                
        
Хочу создать свой проект на JavaScript (уже в работе), затем хочу создать для него
(хоть и бесплатный) сайт где можно будет им поинтересоваться скачать и т.д. Может размещу
на code.google (уже занял место). Суть: Мне рано или поздно придётся написать документацию
(объекты,методы входящие в состав). И мой код должен быть доступен для скачивания (opensource)
и соответственно красив. Где можно найти статьи (или стандарты) для написания документации
и статьи про хорошее комментирование кода.    


Ответы

Ответ 1



Документирование кода не может быть "хорошим" - оно может быть правильным и соответствующим стандартам. Например один из них и всесторонне поддерживаемый - JSDoc По поводу "контроля качества кода" - тут немного сложнее. Дело в том что для разных спецификаций и диалектов языка - разные стандарты. И то что мы сейчас понимаем под JavaScript - это не сам язык, а различные скриптоязыки и диалекты из спецификации ECMAScript и другое - например JSX итд. Поэтому выбор "стандарта" - зависит от конкретного проекта. Использовать для контроля можно 'lint' или 'eslint' - пакеты в npm. А какие плагины и какие настройки к нему использовать - зависит от используемой спецификации языка, платформы и фреймфорков.

воскресенье, 15 декабря 2019 г.

Как грамотно составить Roadmap

#python #panda3d #opensource #cpp


Есть у меня идея, на мой взгляд, хорошая. Но, как справедливо заметил товарищ Сиверс,
идеи ничего не стоят без реализации. Идея довольно сложная с точки зрения программирования,
и я пока ещё ничего сложнее 500 строк кода не писал, но всё случается в первый раз. 
На данном этапе я занимаюсь (громко сказано) разработкой архитектуры (ещё громче
сказано) программы: разбиваю основную задачу на подзадачи и составляю график выполнения
работ. Вот тут-то и начинаются проблемы. Если с разбиением я худо-бедно справляюсь
(на бумаге составил граф, что с чем связано), то вот с графиком у меня проблемы: хочется
взяться за всё и сразу, а так нельзя. Нужен совет более опытного мастера.
Ну и вообще любая помощь приветствуется.
Ещё два месяца спустя
Желание реализовать эту задумку не утихает, скорее даже наоборот: зреет и крепнет.
За это время со мной много чего случилось и не всегда было время на то, чтобы исследовать
панду и заниматься проектом. Но я всё-таки успел пройти туториал на MyGameFast (к сожалению,
незавершённое автором), наговнокодить змейку, которая вполне себе играбельная. Правда,
в ней нет ни меню, ни возможности изменить скорость, ни таблицы результатов, в неё
можно просто играть. Сейчас думаю над тем, стоит ли приводить её в более опрятный (с
точки зрения кода и особенностей панды) вид или бросить её как есть и начать вплотную
работать уже с Mad Lab.
Худо-бедно список фич, которые должны быть в версии 0.1 я набросал, но прежде всего
нужно грамотно определить общую архитектуру программы с учётом особенностей панды,
чтобы потом всё заново переписывать не пришлось.
UPD OCT 
Отчёт за сентябрь
Отчёт за октябрь
Долго думал выкладывать тут эти ссылки или нет. Если прочитаете, то поймёте почему.
Даже не знаю, буду ли выкладывать тут отчёт за ноябрь. В этом вопросе, пожалуй, лучше
уже ничего не писать, если вдруг захотите со мной связаться, то пишите в джаббер: montreal@jabber.ru
или на почту, указанную в профиле. Лучше будет сразу указать причину, по которой пишете.
UPD NOV
Отчёт за ноябрь. Точнее, ноябрьский отчёт за октябрь. Написан, разумеется, в большей
степени для себя и там вы найдёте все мои мысли о прошедшем месяце.
PS Не знаю, насколько всё это соответствует правилам хэшкода. Если мой вопрос сильно
им противоречит, то я его переработаю.
PPS Если эта идея всё ещё кому-то интересна, то я могу завести бложик на blogspot'e,
где можно писать "новости" 1-2 раза в месяц.    


Ответы

Ответ 1



Вообще, после составления 5-6 графов, которые изображали бы архитектуру программы, у меня получилась вот такая штука. И, честно говоря, она мне не очень нравится. Вот почему: все остальные модули зависят от ядра и если вдруг придётся его изменить, то изменения могут затронуть всю программу, а это явный признак плохой архитектуры. И потом: данный рисунок не отражает степень связанности разных модулей с ядром. Пожалуй, наиболее сильно с ядром связаны модули Input, GUI, Save/Load и AI. Чуть слабее связан 3D Render, так как он просто отрисовывает картинку, ну а генератор карт вообще почти никак с ядром не связан, от него требуется только генерировать карту по сигналу. Возвращаясь к вопросу о том, как грамотно составить Roadmap, теперь я понимаю, что нужно начать с ядра, как бы это не было банально. После чего перейти к модулям ввода и рендера. Дальше GUI, Save/Load, генератор карт и AI. Пока как-то так. Два месяца спустя За прошедшие два месяца в моей жизни поменялось довольно много: я переехал в другой город и нашёл работу. Мысли о Mad Lab не покидали мою голову и тут, ВНЕЗАПНО, случился невероятный прорыв: в сети я наткнулся на замечательный игровой движок, именуемый Panda3D. Написан он на С++, но все функции можно вызывать из питона. Открыт для любого использования и включает в себя очень обширный набор инструментов, таких как работа с GUI, физикой и звуком! Знакомиться с движком я только начал, но уже написал по инструкции своеобразный helloworld, в котором по небольшой сценке туда-сюда бродит панда, а камера вращается вокруг центра сцены. Всё это счастье укладывается в 45 строк кода на питоне, что не может не радовать. В голове уже начинает складываться пресловутый roadmap: "так сейчас нам нужно реализовать перемещение человечка по карте при помощи point-and-click, затем добавить врагов,NPC, шмот и всё заверте..." А вот, собственно, и код: from math import pi, sin, cos from panda3d.core import Point3 from direct.task import Task from direct.actor.Actor import Actor from direct.showbase.ShowBase import ShowBase from direct.interval.IntervalGlobal import Sequence class MyApp( ShowBase ): def __init__( self ): ShowBase.__init__( self ) self.disableMouse( ) self.environ = self.loader.loadModel( "models/environment" ) self.environ.reparentTo( self.render ) self.environ.setScale( 0.25, 0.25, 0.25 ) self.environ.setPos( -8, 42, 0 ) self.taskMgr.add( self.spinCameraTask, "SpinCameraTask" ) self.pandaActor = Actor( "models/panda-model", { "walk": "models/panda-walk4" } ) self.pandaActor.setScale( 0.005, 0.005, 0.005 ) self.pandaActor.reparentTo( self.render ) self.pandaActor.loop( "walk" ) pandaPosInterval1 = self.pandaActor.posInterval( 13, Point3( 0, -10, 0 ), startPos=Point3( 0, 10, 0 ) ) pandaPosInterval2 = self.pandaActor.posInterval( 13, Point3( 0, 10, 0 ), startPos=Point3( 0, -10, 0 ) ) pandaHprInterval1 = self.pandaActor.hprInterval( 3, Point3( 180, 0, 0 ), startHpr=Point3( 0, 0, 0) ) pandaHprInterval2 = self.pandaActor.hprInterval( 3, Point3( 0, 0, 0 ), startHpr=Point3( 180, 0, 0 ) ) self.pandaPace = Sequence( pandaPosInterval1, pandaHprInterval1, pandaPosInterval2, pandaHprInterval2, name="pandaPace") self.pandaPace.loop( ) def spinCameraTask( self, task ): angleDegrees = task.time * 6.0 angleRadians = angleDegrees * ( pi / 180.0 ) self.camera.setPos( 20 * sin( angleRadians ), -20.0 * cos( angleRadians ), 3 ) self.camera.setHpr( angleDegrees, 0, 0 ) return Task.cont app = MyApp( ) app.run( )

Ответ 2



Ну ёлки, а сама идея где, ведь если как вы правильно заметили: "идея ничего не стоит без реализации", то страха опубликовать быть не должно. А в остальном: Плюсы - плохо, потому что тяжело. Нужно быстро прототип написать (рекомендую Grails, ну для python'а есть что-то похожее Django), если идея будет стоящая её потом сто раз перепишут. Ваша цель прототип (должен основную фишку показывать), такой чтобы было понятно для чего это нужно и кому В первую очередь те этапы которые позволят проекту запускаться, работать и предоставлять ту функциональность ради которой писали, а потом украшать и удобство. Причём удобным в первую очередь должен быть процесс позволяющий отразить замысел.

воскресенье, 1 декабря 2019 г.

Выбор правильной лицензии для open-source проекта на Objective-C, чтобы не было проблем с App Store?

#лицензирование #objective_c #github #opensource


В связи с приближающейся аттестацией iOS-приложения в App Store, я задумался о том, 

какую лицензию выставить простому open-source проекту, расположенному на Github-е?


В силу неведения я представляю, что мне нужна какая-то самая простая, самая свободная
лицензия:


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


Если таких простых лицензий несколько, буду рад увидеть описание их различий. Также
приветствуются любые дополнительные разъяснения по поводу лицензирования простого и
безамбициозного open-source кода на github.

ОБНОВЛЕНО ПОЗЖЕ:

Да, мне известно, что существуют сайты, подобные http://www.tldrlegal.com/browse.

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

Другими словами, узнать, какие конкретно простые лицензии люди успешно используют
для своих проектов (примеры приветствуются) да так, что эти проекты одобряются App Store.

ОБНОВЛЕНО ЕЩЁ ПОЗЖЕ:

Я разобрался с тем, какие бывают лицензии и, более точно, какую лицензию мне следует
выбрать.

Судя по тому, что ни одного развёрнутого содержательного ответа так и не появляется,
я делаю вывод, что должен написать ответ на этот топик сам. И я обязательно сделаю
это после того, как проект в составе приложения окажется на App Store.
    


Ответы

Ответ 1



Наконец, дошли руки написать ответ по теме лицензирования. С момента создания этого топика прошло 1,5 года, и хотя за это время лично мне ни разу не пришлось столкнуться с проблемами лицензирования своего или использования чужого кода, мне кажется, что минимальные представления о лицензировании необходимы любому разработчику. Попробую отметить несколько моментов, которые считаю для себя ключевыми: Отсутствие лицензии у проекта - плохо Эта вещь может быть совершенно неочевидной, но проект, который не содержит лицензии, максимально защищен: все права принадлежат автору, и вы никак не можете его использовать. Точка. No license То есть, если вы используете проект без лицензии, вы подвергаете себя неопределенных размера и качества риску, который пропорционален "серьезности" проекта и случайному стечению обстоятельств. Если вы публикуете куда-либо, например, на Github, свой собственный проект-фреймворк-библиотеку без лицензии, вы подвергаете риску кого-то другого. В одной из статей, ссылки на которые я привожу ниже, есть совет (цитирую вольно): "если вы заметили, что в некоем проекте на Github отсутствует лицензия, создайте pull request и предложите автору какую-нибудь свободную лицензию вроде Apache License v2. Если он в своем уме, то он задумается, если нет, то по крайней мере вы попытались". Алгоритм разбора лицензий, который используется в процессе AppStore review как бы не суров, но все равно пренебрегать им не стоит Теперь, имея чуть больше знаний о лицензировании, я понимаю, что Apple многих огрешностей в лицензировании или не видит, или "сознательно" игнорирует. Например, в одно из своих приложений я несколько раз включал очень сильно модифицированную мной версию third-party библиотеки, распространяемой по лицензии Apache License v2. Согласно этой лицензии, я должен был задокументировать все свои изменения в заголовках модифицированных файлов. Я этого по незнанию, конечно же, не сделал. Очевидно, что на это никто не обратил внимание, и я пока ни разу не слышал от коллег, чтобы они столкнулись с вниманием Apple к такого рода мелким огрехам. Здравый смысл и отсутствие сведений о противоположном заставляют думать, что AppStore пропускает приложения и с гораздо более грубыми нарушениями лицензирования, и что зависит это скорее всего от того, насколько "рыба крупная": количества денег, завязанных на приложении, размера целевой аудитории и т.д. Несмотря на отсутствие видимой строгости со стороны Apple, теперь я достаточно строго следую правилам лицензий, которые указаны в third-party проектах и теперь уже автоматически всегда обращаю внимание на то, какая именно лицензия передо мной, есть ли у нее специальные добавления, правки и.т.п. Необходимость наличия файла лицензии в проекте (и в исходных файлах проекта) Например, если ваш проект использует лицензию MIT, то простого указания "этот проект использует лицензию MIT" будет недостаточно. Вот отрывок из Лицензии MIT: Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения. Поэтому в случае с MIT необходимо наличие файла с лицензией LICENSE в корне проекта, и очень желательно присутствие текста лицензии в заголовке каждого файла исходного кода, Пример: Alamofire. В случае с Apache License 2.0 также необходимо наличие файла с лицензией, но нет необходимости включать текст самой лицензии в файлы исходного кода, будет достаточно лишь ссылки на лицензию, Пример: Realm. Выбор лицензии MIT License - это самая распространенная лицензия для проектов под iOS/OSX на Github. Если совсем нет желания разобраться в лицензировании, можно абсолютно спокойно выбирать ее и считать, что вопрос решен, однако лучше знать хотя бы о следующих видах лицензий: Apache License 2.0 и BSD 2-clause “Simplified” License. Полезно знать, что лицензии GPL не совместимы с AppStore: Is it possible to have GPL software in the Mac App Store? iOS/OSX dynamic frameworks / CocoaPods / Carthage Вопрос с лицензированием, возможно, становится слегка более острым в связи с тем, что в связи с появлением iOS dynamic frameworks сейчас все большее количество iOS-разработчиков начинает использовать CocoaPods с опцией use_frameworks!, многие переходят на Carthage, а некоторые и вовсе переходят на ручное управление фреймворками. Все эти три способа предполагают, что есть множество папок с расширением .framework, которые лежат внутри архива приложения, отдельно от него, что автоматически как бы намекает на необходимость наличия в папках этих фреймворков файлов LICENSE. Хороший пример: база данных Realm, поддерживающая все перечисленные виды распространения и содержащая в своих Realm.framework/Resources файл составной лицензии. Кстати, в этой лицензии есть очень интересные строки, согласно которым, если я правильно понимаю, пользователь Realm не может находиться в странах Cuba, Iran, North Korea, Sudan, or Syria: EXPORT COMPLIANCE You understand that the Software may contain cryptographic functions that may be subject to export restrictions, and you represent and warrant that you are not located in a country that is subject to United States export restriction or embargo, including Cuba, Iran, North Korea, Sudan, or Syria, and that you are not on the Department of Commerce list of Denied Persons, Unverified Parties, or affiliated with a Restricted Entity. (теперь я очень легко могу представить себя гражданином Ирана, который по поводу этой лицензии напишет письмо разработчикам Realm с просьбой прояснить этот пункт). Ссылки Помимо сервиса для выбора лицензии, который порекомендовал @aknew: Software Licenses in Plain English, есть еще один, тоже интересный: Choosing an OSS license doesn’t need to be scary. А вот две статьи, которые я очень советую прочитать всем, кто заинтересовался этой темой: Github needs to take open source seriously Using CocoaPods Without Going to Court

Ответ 2



есть такой классный сайт www.tldrlegal.com, на нем можно выбрать лицензии по параметрам

Ответ 3



За мой код, его модификацию и использование никто не отвечает передо мной ;) Мой выбор: WTFPL. Разумеется, как только вы захотите, чтобы люди, использующие ваш код, оставляли ваши копирайты в нём и всё такое прочее — нужно будет использовать более строгую лицензию, но это уже другой вопрос.

Ответ 4



WTFPL в корректной форме: CC0 (CC Zero) — универсальный, действующий во всём мире инструмент для отказа от своих авторских прав и передачи произведения в общественное достояние.

четверг, 28 ноября 2019 г.

Как присоединиться к opensource-разработке? [закрыт]

#работа #opensource


Как известно, существует масса уже написанного либо находящегося в стадии разработки
свободного программного обеспечения, либо же ПО с открытым исходным кодом, с открытыми
для всех желающих репозиториями SourceForge, GitHub, и других ресурсах.
Собственно говоря, возник вопрос, как можно присоединиться к работе над подобными
проектами?
Что для этого нужно, какая квалификация, где можно найти документацию по коду?
Кто будет осуществлять проверку написанного мной кода?
Спасибо.
    


Ответы

Ответ 1



Для того, чтобы стать полноценным участником опен-сорсного проекта надо получить статус коммиттера. Путь к получению статуса коммиттера довольно долгий и муторный. Рекомендованный способ это: Сначала стать контрибутором (то есть человеком вносящим какой-то вклад). Обычно это написание какой-нить статейки в wiki проекта. Лучше всего начать с перевода какого-то раздела документации на русский :) Полезно на этом этапе выкачать бинарники проекта, погонять и найти баг. Далее надо сделать баг-репорт. У каждого проекта своя система отслеживания багов: часто это что-то вроде Bugzilla или какие-нибудь новомодные веб системы. Далее подробно изучаем стиль кодирования принятый в проекте. Обычно руководители проектов оч. придирчивы к стилю кодирования. Шаг влево-шаг вправо расстрел на месте Изучаем список багов проекта. Выбираем целевой баг который вы будет фиксить. Лучше всего взять какой-нибудь легонький бажочек не критический и не дай бог new feature - корифеи проекта все равно растерзают по каким-нибудь идейным соображениям Делаем чекаут исходников прожекта (обычно это SVN или Git) - естественно надо изучить целевой VCS - особливо место где рассказывается про транк и ветки репозитория Фиксим баг и выкладываем его либо в виде отдельной ветки в VCS (если это дозволяется правилами проекта) или создаем patch файлик который постится в специальное место проекта. Если все пройдет удачно то с энной попытки ваш коммит будет принят и внедрен в trunk (основной ствол разработки) проекта. Несколько таких успешных багфиксов и можно уже подавать заявку на получение статуса коммиттера. В общем как-то так. P.S. Инструкция верхнего уровня для контрибуторов проектов Apache лежит здесь - удачи.

Ответ 2



На мой взгляд проект должен быть вам интересен, на одном желании "влиться в OpenSource проект" вы далеко не уедете - просто надоест. Найдите OpenSource продукт которым пользуетесь, найдите в нем какие-либо изъяны или вещи которые вы считаете менее удобными, или фичи которых там нет и допилите их. Квалификация фактически роли не играет, никто перед merge'м не будет спрашивать над чем вы работали или где учились, главное чтобы код был хорошим, а то что вашего уровня еще не достаточно вы и сами поймете, когда увидите код. Еще есть вариант начать писать что-то свое, и быть этот проект будет замечен community.

Ответ 3



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

суббота, 23 марта 2019 г.

Как они зарабатывают? [закрыт]

Наверное многие люди, которые имеют отношение к ИТ, хоть раз интересовались каким способом производиться получение прибыли с созданных программируемых объектов. Как зарабатывают на большинстве продуктов созданных такими гигантами как Microsoft или Apple, надеюсь ни у кого не вызывает вопросов(ведь софт они просто продают), а вот как обстоит ситуация с бесплатными программами, которые ко всему прочему не толкают рекламу? Взять к примеру ОС Ubuntu. Ubuntu в настоящее время финансируется Марком Шаттлвортом и основанной им компанией Canonical. Цитата из википедии. Так вот, как Марк получает прибыль или хотя бы компенсирует свои денежные вложения? Пы.Сы.: Я не собираюсь подсчитывать чужие деньги, меня интересует способ заработка на подобных проектах.


Ответ

Приведем пример RedHat. Да, сам линукс от них бесплатный, но продается поддержка. Большие дяди в больших корпорациях любят это. Почему? А все очень просто. Покупает он Линукс у Редхата, все работает и все прекрасно. А в один день админы все резко заболели, а сервера стали. Минута простоя - куча денег. Дядя просто звонит в Редхат и говорит "не работает" и Редхат высылает своих спецов, которые постараются все починить, и админов научить. В любое время суток. И пусть такое может случится раз в год, но платить будут каждый месяц. Понятно, что цены гибкие и максимальное кол-во вызовов зависит от этого. Вариант два. Обнаружена мегауязвимость. Сервера дяди под вопросом. Он звонит в Редхат и говорит "что делать?", а те - "а мы сейчас патчик делаем, через день будет накатывать". Следующим средством прибыли является сертификация и обучение. Тут все понятно. И ещё один способ. Припустим компания X (тут и далее все имена компаний выдуманные и любое совпадение случайно и не преднамеренное) решила сделать суперноутбук. Начинила его самой последней техникой. Поставила туда Linux, а он "из коробки" не работает. Нужно настраивать и настраивать. Понятно, что это очень плохо (ну кроме как для некоторых гиков, которым только дай понастраивать). И они идут в компанию Y, которая делает Linux и говорят "а сделайте так, что бы ваш линукс на нашем ноутбуке заводился с пол пинка, из коробки! Инструкций для старых версий наделайте, патчей. А мы вам за это денежки подкинем". В результате все счастливы. И напоследок, не нужно забывать о благотворительных фондах и пожертвованиях. Вот так, с миру по нитке и зарабатывают производители Linux.

среда, 20 марта 2019 г.

Принять участие в разработке wordpress

Довольно плотно занимаюсь разработкой сайтов на WordPress. CMS мне нравится, но сказать что в ней нет недостатков я не могу. Поскольку это opensource проект, то мне хотелось бы помочь исправить те недостатки которые я вижу. Собственно вопрос - что для этого нужно сделать? На каком сайте нужно писать исправленные фрагменты кода, и вообще интересно как происходит весь этот процесс.


Ответ

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