Mais

Existe algum projeto OpenSource ArcObjects?


Um dos maiores benefícios de desenvolver aplicações GIS baseadas em bibliotecas de código aberto é que muitos projetos surgem em cima delas, que também são de código aberto.

Projetos de código aberto bem projetados são ótimos para ver:

  • quais padrões de codificação devem ser usados
  • quais estilos de codificação seguir
  • como estruturar projetos maiores
  • quais testes de unidade incluir
  • ferramentas e procedimentos de autodocumentação
  • fluxos de trabalho de controle de origem

A ArcObjects Code Gallery parece o melhor lugar para procurar, mas a maioria dos exemplos que eu vi são peças muito pequenas de funcionalidade ou ferramentas únicas, em vez de aplicativos completos.

O projeto SharpGIS é um bom exemplo .NET para seguir, mas há algum projeto específico do ArcObjects?


Atualizado com exemplos:

http://eagl.codeplex.com/

A Biblioteca Easy ArcGIS é um conjunto de classes C # .net que envolvem a funcionalidade comum de ArcObjects, que ajudam os desenvolvedores de ArcGIS a fazer muitas funções comuns em menos tempo e de maneira direta.

E do mesmo desenvolvedor:

http://arcgisslcontrols.codeplex.com/

ArcGISSLControls é um conjunto de controles ArcGIS Silverlight que é construído sobre o ArcGIS Silverlight SDK, desenvolvido em linguagem de programação C #.


O GDAL tem um driver ArcObjects e você pode ver o código-fonte no SVN da árvore. O projeto Ziggis é baseado em ArcObject e de código aberto. Eu sei que eles têm uma versão mais recente que também é de código aberto, mas não consigo encontrar o local da fonte.

Caso contrário, o site do Arcscript da ESRI é outro lugar para se olhar.


Hy, eu criei um Java Print SOE para impressões de alta qualidade com um widget Flex.

O código está disponível na CodeGallery:

http://www.arcgis.com/home/item.html?id=6809086326ea4c76bf026a32bb9dd698

Tom


Eu não tive a chance de jogar com Earthworm - um ORM para Esri Geodatabase (via ArcObjects), mas parece bom.


Há algum projeto de código aberto escrito em APL? [fechado]

Quer melhorar esta questão? Atualize a pergunta para que fique no tópico do Stack Overflow.

Estou tentando aprender APL (Kona) e estou procurando exemplos de projetos para entender como um APL experiente organizaria seu código.

Qualquer projeto de código aberto seria útil, mas não financeiro ou qualquer coisa sem matemática pesada seria incrível.


5 respostas 5

Existe um ransomware de código aberto chamado Hidden Tear. O código criptografa arquivos com as seguintes extensões: ".txt", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".odt", " .jpg "," .png "," .csv "," .sql "," .mdb "," .sln "," .php "," .asp "," .aspx "," .html "," .xml "," .psd "por padrão com criptografia AES de 256 bits.

Ele é de código aberto, portanto, pode ser facilmente personalizado não apenas para procurar arquivos adicionais, mas também para a forma como a criptografia é feita.

Duvido que você encontre o código-fonte do ransomware circulando entre o público em geral. Eu acho que há um código de saída lá em algum lugar mas eu não arriscaria visitar sites obscuros na "Darknet" (eu realmente odeio esse termo).

(In) felizmente, o ransomware não é muito complexo. Para um projeto universitário, simplesmente criptografar e substituir arquivos em

/ Documentos provavelmente é bom o suficiente. O truque é fazer com que a chave de descriptografia só possa ser obtida por meio de você.

  1. Gerar chave simétrica K
  2. Criptografar todos os arquivos em

Obtivermos K do servidor.

Descriptografar arquivos com K

Eu sei que ransomware notório usa criptografia assimétrica, mas na verdade não é necessário. Por exemplo, RSA implementado indevidamente pela CryptoDefense, na verdade, mais fácil para escrever ferramentas de descriptografia automatizadas, porque eles não perceberam que uma API de criptografia do Windows mantém cópias locais das chaves privadas RSA geradas. Colocar fé cega em um sistema criptográfico não o tornará seguro. O importante é que a chave de descriptografia não pode ser recuperada no sistema. Se isso é feito zerando ou não a memória ou criptografando K com uma chave pública RSA realmente não importa.

Não. Não há e estou certo de que nunca haverá: imagine armas nucleares disponíveis para compra na loja.

Felizmente, o espírito da comunidade de código aberto está investindo esforços positivos para desenvolver ferramentas que protejam os usuários, desde antivírus como o ClamAV a verificadores de vulnerabilidades da web como o Grabber, passando por ferramentas que visam avaliar os sistemas dos usuários, como aqueles que você pode encontrar em Kali Linux usado para pentesting (claro, você sempre pode usar a faca para matar alguém).

Mas é verdade que existem algumas fontes de código aberto nefasto ferramentas como ZombieBrowserPack, que é um plugin, podem ser manipuladas remotamente para roubar credenciais de autenticação e até ignorar mecanismos de autenticação de dois fatores, como os implementados pelo Yahoo e Google, ou simplesmente sequestrar sua conta do Facebook e muito mais. No entanto, isso não deve levar a mal-entendidos: este plugin foi desenvolvido por Zoltan Balazs como um POC para fins acadêmicos como outras ferramentas semelhantes no mesmo contexto: o código de vírus está presente gratuitamente na Internet, mas destina-se a fins acadêmicos e não pode prejudicar porque qualquer malware cujo código é liberado sua vida é encerrada quando as empresas de antivírus concebem uma proteção contra ele.


Resposta curta: Não. Os binários Java (JRE e JDK) fornecidos pela Oracle vêm com tantas strings anexadas que são praticamente inadequados para qualquer uso ou redistribuição com software proprietário ou licenciado de código aberto, incluindo software licenciado GPL.

A única alternativa sensata é considerar o OpenJDK que está usando uma combinação de licenças e está principalmente sob a GPL 2.0 com exceção de Classpath, que normalmente é considerada adequada para qualquer código aberto ou uso proprietário. Veja abaixo algumas dicas para binários pré-compilados do OpenJDK ou crie-os você mesmo.

Os JREs e JDKs da Oracle (ou seja, NÃO o OpenJDK) são lançados sob uma licença proprietária chamada Contrato de Licença de Código Binário da Oracle.

Esta licença evoluiu bastante ao longo dos anos, desde seu início na Sun até o ponto em que mal pode ser usada para desenvolvimento interno e provavelmente não muito mais. A Oracle deseja que você compre uma licença comercial para a maioria dos usos.

Em particular, como um dos muitos problemas nesta licença, o campo de restrições de uso evoluiu para ser tão vago e abrangente que faz você se perguntar se algum uso é permitido (ênfase minha):

"Computadores desktop e servidores de uso geral" significa computadores, incluindo desktops e laptops ou servidores, usados ​​para funções gerais de computação sob controle do usuário final (como, mas não especificamente limitado a e-mail, navegação na Internet de propósito geral e ferramentas de produtividade de suíte de escritório) . O uso de software em sistemas e soluções que fornecem funcionalidade dedicada (diferente dos mencionados acima) ou projetados para uso em aplicativos de software incorporados ou específicos de função, por exemplo, mas não se limitando a: Software incorporado ou agrupado com sistemas de controle industrial, sem fio telefones celulares, dispositivos portáteis sem fio, quiosques, TV / STB, dispositivos de disco Blu-ray, equipamentos de comutação de controle de telemática e rede, impressoras e sistemas de gerenciamento de armazenamento e outros sistemas relacionados estão excluídos desta definição e não licenciado sob este Acordo.

Esse tipo de restrição não funcionaria muito com qualquer redistribuição de código aberto e com a GPL em particular.

Isso torna essencialmente qualquer concessão de "LICENÇA PARA DISTRIBUIR" na seção C e D discutível na maioria dos casos. Você pode ter um caso de uso muito restrito que pode se enquadrar nessas restrições, mas todos os advogados que consultei sobre esta licença estão bastante desconfortáveis ​​com seus termos para a maioria dos casos práticos.

A única alternativa sensata é considerar o OpenJDK para uso em conjunto com FOSS ou software proprietário. Estranhamente, é essencialmente a mesma base de código.

O projeto OpenJDK em si não redistribui binários e construir um OpenJDK pode ser um processo bastante complicado. As distros Linux possuem pacotes para isso. Para outros sistemas operacionais, existem alguns pré-construídos disponíveis, por exemplo, da Azul.

Atualização 2016-12: Na verdade, a notícia mais recente é que a Oracle agora está aplicando o licenciamento comercial e as auditorias comerciais se você não usar um OpenJDK.


3 respostas 3

Os projetos de código aberto são muito diversos. Existem alguns onde uma abordagem semelhante ao Scrum pode funcionar, mas não no caso geral.

Os timeboxes do Scrum funcionam em sprints de tamanho fixo. Existem muitos projetos de código aberto com um cronograma de lançamento fixo. Mas normalmente, esta programação é sobre integrando trabalho que já foi feito, não sobre fazer o desenvolvimento.

Scrum espera que a equipe se comprometa com uma meta de sprint. Mas a maioria dos projetos de código aberto são conduzidos por voluntários. A contribuição é voluntária e flutuante. Seria tóxico para esses projetos se sentirem no direito a um compromisso confiável e repetido de voluntários. O projeto não pode dizer aos voluntários o que fazer. É claro que ele pode se recusar a aceitar contribuições que não façam parte do backlog do sprint, mas isso é um desperdício idiota de boa vontade e recursos de desenvolvimento. Falando como mantenedores de código aberto, as solicitações únicas de pull com uma correção de bug são tremendamente valiosas. Mas essa contribuição não é de forma alguma planejável.

É claro que há cenários em que isso não seria um problema. Por exemplo, algum desenvolvimento pode ser pago por meio de doações. Essas concessões podem especificar uma meta e / ou prazo. Mas as bolsas geralmente são concedidas a uma única pessoa, não a uma equipe. Às vezes, os projetos são liderados por contribuintes pagos, por exemplo, para um projeto que foi iniciado por uma empresa. A empresa pode, é claro, usar o Scrum para planejar suas contribuições.

Presumo que por projeto de código aberto você faça não referem-se a projetos que são trabalhados por funcionários remunerados. O Scrum "pelo livro" geralmente não funciona, porque há algumas dificuldades:

  • Sprints requerem compromissos de tempo firmes e se beneficiam muito de compromissos de tempo firmes regulares e repetidos.
  • O Scrum se beneficia da interação frequente da equipe, o que é mais fácil se a maioria da equipe estiver no mesmo escritório ou pelo menos em um fuso horário semelhante.
  • Com base na minha experiência, os Proprietários do Produto - em média - tendem a ser significativamente melhores se não estiverem ativamente escrevendo o código para o projeto.
  • Muitos contribuidores têm um interesse específico em recursos específicos que desejam desenvolver, poucos ou nenhum interesse em alguns outros recursos e nenhum incentivo para ouvir quem deseja dizer a eles em quais recursos trabalhar.
  • Compromissos de tempo diferentes criam dificuldades em organizar uma reunião diária em pé

Os problemas podem ser contornados e, com o projeto certo e as pessoas certas, o Scrum pode funcionar de qualquer maneira. Mas, mesmo assim, provavelmente existem processos melhores.

Eu recomendo que você divida o Scrum e pegue o que você precisa, e então implemente de uma forma que se adapte ao projeto e à equipe:

  • Tenha uma visão clara do projeto que seja conhecida e aceita por todos.
  • Tenha uma lista compartilhada de prioridades de coisas que devem ser feitas antes das outras.
  • Certifique-se de que as pessoas saibam quem está trabalhando no quê.
  • Ter metas compartilhadas regulares de curto a médio prazo e avaliações depois de alcançadas.

Dizer que o Scrum não pode funcionar por causa desses argumentos é como dizer que o Scrum não pode funcionar em uma empresa, porque atualmente eles estão usando o waterfall. Embora Scrum e cascata não funcionem bem um com o outro (ou melhor, se contradigam), isso não significa que você não pode estabelecer Scrum lá, E se todo mundo vai junto. Da mesma forma, eu não diria que o Scrum não pode funcionar em um projeto de código aberto per se, mas ele vem com seus próprios dilemas.

As pessoas tendem a não trabalhar em projetos de código aberto em tempo integral

Embora isso seja verdade, o Scrum abraça esse tipo de incerteza também. Como temos um ciclo muito curto de uma semana, todos que quiserem contribuir terão que se comprometer por pelo menos aquela semana e planejar quanto tempo poderão dedicar ao projeto. Com base em quanto tempo cada colaborador pode pagar, é possível planejar as histórias para trabalhar. De qualquer forma, fazer Scrum não será realmente possível, se os colaboradores tendem a se afastar das reuniões obrigatórias.

É claro que isso não se restringe aos ciclos de sprint semanais.

Embora alguns projetos tenham um grupo de colaboradores principais, muitas solicitações pull são ad-hoc, com pessoas enviando solicitações pull que muito provavelmente não contribuirão para qualquer objetivo de sprint acordado

O código aberto não significa necessariamente que todos podem contribuir como quiserem. Existem projetos de código aberto com regras muito rígidas sobre como contribuir (Linux por exemplo). As pessoas que planejam contribuir com o projeto deverão comparecer ao planejamento do sprint, etc. Você pode tornar isso um requisito para contribuir com o projeto. É claro que as pessoas que não gostam disso podem criar uma bifurcação e trabalhar nisso como quiserem, mas este será outro projeto, então.

As comunidades costumam ser administradas por meio de sistemas de mensagens, blogs e fóruns, em vez de reuniões formais como sessões de planejamento, retrospectivas e revisões de sprint

Você pode ter as reuniões formais por telefone ou videoconferências. Embora isso não torne o Scrum mais fácil, é bem possível. Só porque não é feito nos projetos, não significa que não possa ser feito.

A direção dos projetos costuma ser mais democrática (ou quem mais contribui), em vez de ser focada por um Product Owner

Sim, você terá que ter alguém que atue como proprietário do produto. Novamente, a prática usual não o impede de fazer de forma diferente. Além disso, há exemplos de pessoas solteiras conduzindo um projeto e direcionando-o em uma direção (de novo, pense no Linux).

Resumindo, embora você provavelmente esteja certo de que é tudo menos a regra, não acho que seja impossível. Se você tem um proprietário competente escolhendo e priorizando as histórias de usuários e colaboradores que desejam contribuir dessa forma, nada o impedirá de fazer Scrum.

De qualquer forma - como foi apontado pelos comentaristas - é bem provável que seja uma bagunça e provavelmente não é uma boa ideia. Apenas para mencionar alguns pontos por que pode falhar:

  • Será difícil conseguir um núcleo duro de contribuidores - sem ele, o Scrum não jogará seus pontos fortes
    • Sem uma equipe muito estável, você poderia lançar dados para estimar os pontos da história - pode funcionar igualmente bem

    (Nota: Uma abordagem do tipo Kanban pode funcionar melhor se você quiser dar alguma estrutura ao seu projeto de software de fonte aberta. Não depende de funções, o buy-in é muito mais baixo e é muito mais flexível em termos de tempo, mas ainda oferece uma boa visão geral do WiP.)


    A Zubra desenvolve aplicativos e soluções GIS customizados que permitem aos clientes interagir e analisar informações espaciais, editar dados, mapas e visualizar os resultados de todas essas operações para solucionar as necessidades estratégicas dos negócios. De grandes sistemas AM / FM à localização do ponto de interesse mais próximo, a Zubra oferece uma ampla gama de serviços. Oferecemos suporte técnico especializado em GIS e serviços de mapeamento, oferecendo uma alternativa econômica e confiável para implementar ou expandir seus próprios recursos de GIS

    • Crie mapas de dados e da Web de código aberto usando Leaflet, PostgreSQL e outras tecnologias de código aberto
    • Serviços de criação de mapas e rotas: mapas personalizados projetados a partir de materiais fornecidos pelo cliente, bancos de dados e / ou conjuntos de dados espaciais existentes. Mapas são frequentemente criados para marketing, desenvolvimento imobiliário, exploração de energia ou publicação. Localizações de clientes, territórios de vendas personalizados e mapas de rotas são adaptados às suas necessidades
    • Criação de dados: crie conjuntos de dados prontos para GIS a partir de arquivos AutoCAD, dados demográficos, endereços, pontos de dados coletados por GPS, etc.
    • Georreferenciamento: retificação de imagens e dados vetoriais para um sistema de coordenadas do mundo real
    • Integração de dados: aquisição de dados, vinculação de dados de vários sistemas
    • Digitalizando
    • Conversão / migração de dados: converta dados de um ou mais formatos diferentes
    • Geocodificação / Geocodificação reversa
    • Design de banco de dados: crie bancos de dados personalizados para seu aplicativo específico
    • Requisitos e design do aplicativo
    • Desenvolvimento de aplicativos personalizados: crie aplicativos personalizados com geo-habilitados para automatizar fluxos de trabalho e aumentar a eficiência dos negócios
    • Integração do sistema GIS
    • Treinamento
    • Suporte operacional

    1 resposta 1

    Existem várias opções, mas eu recomendo que você vá com Redmine.

    Redmine é um aplicativo da web flexível de gerenciamento de projetos. Escrito usando a estrutura Ruby on Rails, é multi-plataforma e multi-banco de dados.

    Redmine é open source e lançado sob os termos da GNU General Public License v2 (GPL).

    Ele tem os recursos que você solicita e é muito escalonável, pode lidar facilmente com grandes organizações e vários projetos, mas é bastante integrado para pequenas equipes. Alguns dos recursos que podem interessar a você:


    6 Respostas 6

    Se você pode ou não ganhar dinheiro com um projeto de código aberto, depende de muitas coisas. Com base na experiência, vejo três fatores que são importantes:

    1. Qual licença você escolheu? Dê uma olhada no esquema nesta resposta e você verá que, por um lado, você tem licenças permissivas e por outro lado você tem licenças com um copyleft forte.
    2. Que tipo de produto você está oferecendo? Há uma grande diferença entre oferecer uma ferramenta para os consumidores (algo que eles podem simplesmente baixar, executar e usar) e oferecer uma biblioteca em um contexto B2B, por exemplo: um software que analisa XML, mas que não funciona a menos que você escreva algum código em torno dele.
    3. Qual é o seu negócio? Você está no negócio de vendendo software (por exemplo, você vende um jogo que pode ser baixado e jogado off-line) ou está no ramo de vendendo um serviço (por exemplo, um jogo que não pode ser baixado e que é jogado online).

    Quando usar uma licença com copyleft forte?

    Embora fosse diferente no passado, vejo que pequenas empresas & quotdirigidas pelo desenvolvedor & quot, querendo criar um Programas negócios em um contexto B2B, muitas vezes se beneficiam de uma licença como a AGPL.

    Aviso: os autores originais do AGPL consideram o que vou escrever a seguir como uso nefasto da AGPL, mas é assim que empresas como MongoDB, SugarCRM e outras ganham dinheiro.

    Tenho meu próprio projeto de código aberto e, nos últimos 15 anos, tentei ganhar dinheiro das seguintes maneiras:

    • Doações: Nos primeiros anos, os usuários do meu software compravam Lego para meus filhos. Eu receberia livros no meu dia de nascimento. Alguém até me mandou biscoitos. Embora isso certamente tenha sido apreciado. Isso não faz um negócio. Além disso: Eu moro na Bélgica: quando alguém me enviou um DVD dos EUA, (1) eu tive que pagar impostos sobre ele (a alfândega pode ser excessiva), (2) eu não pude reproduzi-lo porque o DVD não podia ser reproduzido na minha região (a menos que eu tenha mexido no meu DVD player).
    • Ganhar dinheiro com anúncios: Fui um dos primeiros a adotar o Google AdSense. Em 2004, ganhei $ 8.900 com anúncios, em 2005 $ 14.500, mas a receita caiu para $ 6.200 em 2006, $ 2.350 em 2007 e $ 1.900. Tive mais conteúdo, mais cliques, mas menos receita. Percebi duas coisas: (1) a maioria das pessoas que anunciam em meu site eram concorrentes, (2) se você quer ganhar dinheiro com anúncios, precisa se especializar em ganhar dinheiro com anúncios. Como resultado, removi todos os anúncios. Os anúncios como modelo de negócios estão mortos. Veja, por exemplo, o que a Codehaus escreveu quando fechou seu negócio: o custo de hospedagem estava excedendo o custo da receita de anúncios. Você também pode ver que SourceForge tomou o caminho errado
    • Documentação de escrita: Escrevi dois livros para a Manning Publications sobre meu projeto. Manning vendeu cerca de 11.600 cópias da primeira edição e quase 9.200 da segunda edição. Cópias ilegais do livro já estavam disponíveis antes que a FedEx tivesse a chance de me entregar minhas primeiras cópias em papel. Como autor, recebi 10% sobre os lucros. Ganhei aproximadamente $ 33K com o primeiro livro e aproximadamente $ 30K com o segundo livro. Usei esse dinheiro como capital inicial para minha empresa. Escrever documentação é um trabalho árduo e quando você compara o tempo que você gasta escrevendo um livro com o dinheiro que você ganha vendendo o livro, você logo entende que esta não é uma fonte de dinheiro sustentável.
    • Venda de suporte e manutenção: isso funciona, mas é difícil. Não é algo que você pode fazer sozinho, porque não é escalonável: quanto mais clientes você tem, mais funcionários você precisa para responder a tíquetes de suporte. Além disso: você enfrenta a concorrência de jogadores profissionais que oferecem suporte para uma pilha de produtos de código aberto. Ao oferecer suporte a mais de um produto, essa empresa pode se dar ao luxo de contratar mais funcionários. No meu caso: não consegui competir com a OpenLogic quando comecei a fazer negócios com meu produto. Tive que encontrar um modelo de negócios diferente.
    • Oferecendo serviços profissionais: você oferece o software gratuitamente, mas vende serviços profissionais para instalar o software e integrar seu produto em um projeto feito sob medida. Isso é ainda mais difícil do que oferecer suporte, porque você tem que competir com todos os grandes integradores de software que têm mais dinheiro, mais funcionários, mais tudo do que você. Seu negócio será ainda menos escalonável do que o suporte e pior: todo o tempo que você gasta em projetos para clientes é tempo que você não gasta no desenvolvimento de seu produto. O desastre Heartbleed é um exemplo de como isso pode dar errado.

    Se você é um único desenvolvedor procurando começar um negócio, ganhando dinheiro com código aberto Programas, sua melhor chance de ser bem-sucedido é oferecer o software sob uma licença dupla.

    Qual licença? Bem, você tem que evitar Ser esquecido por um contribuidor mais poderoso, então apenas uma licença com copyleft forte faz sentido. Você entenderá o que isso significa quando ler a seção Eat me do guia ZeroMQ. Eu cito:

    Na indústria de software, existem amigos, inimigos e comida. O BSD faz com que a maioria das pessoas nos veja como um almoço. O código fechado faz com que a maioria das pessoas nos veja como inimigos. A GPL, entretanto, torna a maioria das pessoas nossos aliados.

    Como alguém ganha dinheiro com uma licença copyleft? Isso é explicado neste vídeo. Você oferece o software como um software de código aberto gratuito para todos que obedecerem às regras da licença. As empresas que não desejam seguir essas regras, ainda podem usar o software, desde que o comprem sob outra licença comercial. Este modelo é denominado licenciamento duplo. Quanto mais fraco for o copyleft da licença, mais difícil será vender seu produto.

    Quando usar o código aberto com uma licença permissiva?

    Se você não é um desenvolvedor e deseja iniciar um negócio oferecendo um serviço. Ou, se você trabalha em uma grande empresa (digamos Google, Amazon), provavelmente não gostará do que escrevi na seção anterior.

    Você deseja usar o software e fazer o que quiser com ele. Você não gosta de licenças do estilo GPL, porque elas limitam o que você pode fazer com o software. Você pode até ter que pagar para o software que você está usando! O horror!

    Nesse caso, é do seu interesse que os desenvolvedores façam uma lavagem cerebral para que pensem que o software de código aberto deve ser gratuito como a cerveja grátis, que a GPL é ruim e que o software de código aberto não deve ser oferecido comercialmente. Você patrocinará os fanáticos mais radicais que são populares entre os desenvolvedores que procuram um modelo. Como resultado, esses desenvolvedores começarão a produzir software sob uma licença permissiva que você pode usar da maneira que quiser.

    Sua tarefa será fazer escolhas: separar o joio do trigo. Não é seu negócio vender software:

    • Você está oferecendo software como serviço (por exemplo, Google)
    • Você tem um negócio totalmente diferente que depende de software (por exemplo, Amazon)
    • Você vende produtos de código fechado e proprietários e ganha muito dinheiro em serviços profissionais (por exemplo, IBM ou Wipro)
    • Seu negócio principal são os anúncios, seus usuários são o seu produto (por exemplo, Facebook)

    Depois de ter sucesso o suficiente em uma das opções acima, você pode se dar ao luxo de distribuir seu software de graça (como na cerveja grátis). Como você ganhou um monopólio, não importa se os concorrentes também podem usar o seu software. Se eles forem pares, eles podem melhorar o código e redistribuí-lo, caso em que você também se beneficia. Se eles são concorrentes apenas começando um novo negócio, você os esmaga (porque sua marca é rei e seu orçamento de marketing é maior) ou os compra (e possivelmente os mata depois).

    Essa é uma ótima maneira de ganhar dinheiro com software de código aberto, mas vejo algumas desvantagens. No momento em que uma grande corporação decide que o valor criado por um projeto não justifica o investimento, o & quotcaridade & quot Vai parar. A Oracle abandonou o GlassFish, a IBM se afastou de Geronimo, a Pivotal deixou o Groovy. Somente quando ocorre um desastre (como foi o caso com Heartbleed), essas empresas de repente começam a arrecadar dinheiro para & quotsave os desenvolvedores. & Quot

    Esse não é um modelo sustentável de código aberto, não é?

    Não sei se há números sobre isso, mas não me surpreenderia se você visse que a maior parte do software distribuído sob uma licença permissiva é escrita por funcionários (pessoas que trabalham para uma grande empresa), enquanto a maioria do software distribuído sob uma licença copyleft é escrita por empresários (pessoas que possuem ou trabalham para uma empresa de pequeno e médio porte).

    Sempre foi assim?

    Não, o software livre e de código aberto passou por uma enorme mudança. Grandes empresas costumavam distribuir FUD sobre o software oferecido de graça. Freqüentemente, essas são as mesmas empresas que agora afirmam que o software de código aberto deve ser gratuito como a cerveja gratuita. Se você quiser saber como era nos primeiros dias, recomendo assistir o OS Revolution.

    Como estou ganhando dinheiro hoje?

    Se você quiser ler mais sobre minha história no código aberto, recomendo a leitura do blog 1M / 1M de Sramana Mitra. Fundei minha primeira empresa de código aberto em 2008, 8 anos após o primeiro lançamento de código aberto do meu produto. Em 2014, o grupo foi rentável com uma receita de 5 milhões de euros e um EBITDA de 43%. A empresa ficou em 28º lugar no Technology Fast 500 da Deloitte na região EMEA e ganhou o primeiro lugar como a empresa de tecnologia de crescimento mais rápido na Bélgica no período de 2009-2014.

    Atualização 2021

    Nesse ínterim, percebi uma saída. Logo depois de deixar a empresa, escrevi um livro compartilhando minha experiência: Entreprenerd: Construindo um Negócio Multi-Million-Dollar com Software Livre.


    2 respostas 2

    Se alguém tiver um projeto de código aberto implantado em algum lugar da nuvem por meio de um pipeline de entrega contínua, como as credenciais programáticas necessárias para o CI / CD implantar o aplicativo podem permanecer privadas?

    Realmente depende de qual CI / CD você usa.

    Por exemplo, eu uso Travis e Appveyor. Ambos oferecem suporte para criptografar "segredos" em seus manifestos.

    Por exemplo, neste loop de construção, eu construo rodas Python no Appveyor e elas são carregadas para bintray, que seria uma espécie de pipeline semelhante a Ci / CD. O mesmo se aplica aqui com Travis (para Linux e Mac).

    Este outro loop tem a mesma abordagem, mas também usa Docker e as coisas terminam em bintray também.

    Se eu fosse implantar, por exemplo, um aplicativo da web em um servidor ativo, provavelmente usaria exatamente a mesma abordagem. por exemplo.:

    1. se minha construção for bem-sucedida e for para uma tag.
    2. . criptografar como segredos as credenciais de implantação, conforme mostrado acima.
    3. e fazer com que meu CI lide com a descriptografia e faça a implantação adequada.

    Mas o ponto é que, para ter essas credenciais ocultas em sua máquina de compilação de CI / CD, você deve, de alguma forma, fornecer à máquina de compilação uma maneira de acessá-las. O que significa dar a ele creds que acabarão no repo novamente.

    O que acontece aqui é que minhas credenciais regulares para o Ci (que NÃO estão no repo) são o que é usado pela ferramenta Ci para criptografar e descriptografar em tempo de compilação meus segredos criptografados.

    Então, sim, o Ci sabe como descriptografar essas credenciais. Mas um invasor precisaria ter controle do Ci / CD e de seu banco de dados de autenticação, eventualmente também criptografado, para comprometer meus "segredos".

    Se você usar um Ci / Cd desenvolvido em casa ou implantado internamente, como um Jenkins, poderá usar a mesma abordagem. Por exemplo, use uma chave GPG ou algum outro mecanismo e forneça ao Ci / CD a maneira de descriptografar em tempo de execução. Em todos os casos, em algum nível, você precisa confiar em algumas das máquinas no pipeline. Você pode torná-lo mais complexo adicionando intermediários, cada um com suas próprias credenciais, para torná-lo mais difícil.


    Encontramos pelo menos 10 Listagem de sites abaixo ao pesquisar com projetos de gis fáceis no motor de busca

    Projetos e dados GIS simples gratuitos

    • SimpleUSA Projeto & amp Dataset é um conjunto de dados abrangente dos limites dos estados dos EUA, cidades, estradas, vias navegáveis ​​e muito mais, incluindo um banco de dados completo de geocodificação e roteamento de ruas, disponível para download gratuito abaixo
    • The SimpleUSA projeto é grátis projeto para usar com o GIS simples Aplicativo cliente
    • Baixar Simple USA Projeto e conjunto de dados

    Procurando por uma ideia divertida (e relativamente simples) de projeto GIS: gis

    Reddit.com DA: 14 PA: 50 Classificação MOZ: 65

    • Procurando diversão (e relativamente simples) projeto GIS ideia
    • Estou procurando um tópico divertido para fazer um Projeto GIS para a minha introdução a GIS classe, tendo em mente que estou procurando dados bons e gratuitos para usar
    • Novos comentários não podem ser postados e votos não podem ser emitidos

    Quais são os tópicos de projeto interessantes usando GIS

    Quora.com DA: 13 PA: 50 Classificação MOZ: 65

    • Este é um procedimento muito difícil de fato em todo o M
    • Para a escolha do tema da sua tese, em primeiro lugar você deve percorrer as matérias teóricas e encontrar aquele que é mais interessante e viável de ser realizado (wi

    As 25 melhores visualizações de GIS StateScoop

    Statescoop.com DA: 14 PA: 35 Classificação MOZ: 52

    • Servindo como centro de transporte e infraestrutura projetos, o portal de dados do Departamento de Transporte de Utah (UDOT) é um dos mais abrangentes GIS- portais de dados habilitados no país
    • Combinado com o mapa de desenvolvimento econômico do estado e o portal de mapas de acidentes, os esforços GIS de Utah são impressionantes por sua amplitude com projetos

    O que devo fazer para o meu projeto GIS

    • Hello Joseph! Eu encontrei esta postagem do blog enquanto procurava Ideias para chegar a um Projeto GIS no meu nível 300 GIS classe na Montclair University
    • Eu sou um membro da Sociedade de Conservação GIS de que você faz parte e percebeu que é o autor desta postagem do blog (e de várias outras!).

    Mapeamento e GIS para Absolute Beginners Mango

    Mangomap.com DA: 12 PA: 45 Classificação MOZ: 62

    • O termo GIS é um termo comum para qualquer sistema que pode armazenar, manipular e exibir dados de mapas digitais, eles variam de sistemas de desktop poderosos, como QGIS e ArcGIS da Esri, até sistemas baseados na web, como Mango
    • Os dois principais tipos de dados usados ​​em um GIS sistema são vetor e raster.

    Projetos independentes de GIS e como iniciá-los

    Gislounge.com DA: 17 PA: 32 Classificação MOZ: 55

    Independente Projetos GIS e como iniciá-los quando o assunto é GIS independente funcionar, o ArcGIS Online é uma ótima opção para quem procura criar mapas para ajudar suas comunidades - sem ter que gastar quantias exorbitantes em taxas de licenciamento.

    Como construir um projeto simples de GIS

    Youtube.com DA: 15 PA: 6 Classificação MOZ: 28

    Como construir um Projeto GIS Simples para o planejamento e desenvolvimento de um determinado assentamento rural usando gratuitamente GIS software - QGIS E Google EarthApós assistir a este

    O que devo fazer pelo meu projeto GIS

    Essas metas que abordam a pobreza, saúde, educação e outros tópicos (1) podem se beneficiar da perspectiva espacial e da análise espacial que GIS habilita e (2) fornece uma maneira de ancorar seu projeto em & quot o que realmente importa & quot. Não desanime e pense que seu projeto pode não ser & quotgrande o suficiente & quot, mas pode estar focado na água

    GIS projetos GIS aplicações GIS e Watershed GIS

    Nchse.org DA: 13 PA: 23 Classificação MOZ: 45

    • Obtenha aqui orientações sobre GIS aplicações com estudos de caso e exemplos
    • MIS ao nível da aldeia em GIS é uma ferramenta certa para o planejamento e implementação eficaz
    • Seleção do local, planejamento de conservação de terra / água facilmente
    • GIS MIS on Health also makes it easy to identify areas of need and further scope of providing services
    • GIS application techniques with proven examples.

    GIS Project Ideas topics Collection For Engineering

    As a project, students can develop a GIS application or tool that allow users to create interactive queries (user-created searches), analyze spatial information, edit …