Mais

Como fazer botão com html e mapfile?


Eu tenho várias camadas raster definidas no mapfile:

NOME DA CAMADA "01" TIPO raster STATUS desligado OPACIDADE 30 DADOS "01.png">

Vários maneiras de tirar a pele do gato.

Uma maneira fácil é primeiro, mudar todos os seus Camada entradas para STATUS ON.

Em seguida, exponha tudo como um serviço WMS. IMHO, a documentação faz com que pareça mais difícil do que é. Você só precisa adicionar entradas de metadados para cada entrada LAYER, como:

LAYER NAME "01_name" TYPE raster STATUS ON OPACITY 30 DATA "01.png"> usando OpenLayers, crie camadas individuais para cada camada que você especificou em seu WMS

var wms_layer1 = new OpenLayers.Layer.WMS ("NASA Global Mosaic", "http://myserver.net/cgibin/mapservmap=/srv/mapserver/amigo_imagery.map", {camadas: "01_name"}); var wms_layer2 = new OpenLayers.Layer.WMS ("NASA Global Mosaic", "http://myserver.net/cgibin/mapservmap=/srv/mapserver/amigo_imagery.map", {camadas: "02_name"});

e adicione-os ao mapa. Você poderá então usar openlayers para ligar ou desligar como achar melhor.


Como funciona o Solar?

A quantidade de luz solar que atinge a superfície da Terra em uma hora e meia é suficiente para lidar com o consumo de energia do mundo inteiro por um ano inteiro. As tecnologias solares convertem a luz do sol em energia elétrica por meio de painéis fotovoltaicos (PV) ou de espelhos que concentram a radiação solar. Essa energia pode ser usada para gerar eletricidade ou ser armazenada em baterias ou armazenamento térmico.

Abaixo, você pode encontrar recursos e informações sobre noções básicas de radiação solar, tecnologias fotovoltaicas e concentradoras de energia solar-térmica, integração de sistemas de rede elétrica e os aspectos não-hardware (custos suaves) da energia solar. Você também pode aprender mais sobre como ir para a energia solar e a indústria de energia solar. Além disso, você pode mergulhar mais fundo na energia solar e aprender sobre como o Escritório de Tecnologias de Energia Solar do Departamento de Energia dos EUA está conduzindo pesquisas e desenvolvimento inovadores nessas áreas.

Energia Solar 101

A radiação solar é a luz - também conhecida como radiação eletromagnética - emitida pelo sol. Embora cada local na Terra receba alguma luz solar ao longo de um ano, a quantidade de radiação solar que atinge qualquer ponto da superfície da Terra varia. As tecnologias solares captam essa radiação e a transformam em formas úteis de energia.


O segredo do sudoeste

Como a Southwest teve sucesso no difícil setor de aviação civil?

Foto de Scott Olson / Getty Images.

A indústria aérea é notoriamente brutal. Como Warren Buffett escreveu certa vez em uma carta aos acionistas, “[Se] se um capitalista de visão estivesse presente em Kitty Hawk, ele teria feito um grande favor a seus sucessores atirando em Orville”. Mesmo assim, a Southwest Airlines acaba de registrar seu 39º ano consecutivo de lucratividade - em um setor de negócios onde os lucros podem ser terrivelmente difíceis de obter.

Como a Southwest faz isso? Em parte, mantendo as operações simples. Operações mais simples significam menos coisas que podem dar errado e atrapalhar todo o processo.

Considere, por exemplo, a frota de jatos da Southwest. Enquanto outras frotas de companhias aéreas podem empregar 10 ou mais tipos de aeronaves, a Southwest usa apenas um, o Boeing 737. Como V.P. de operações terrestres Chris Wahlenmaier explicou para mim, isso resulta em todos os tipos de eficiência de economia de custos: “Nós só precisamos treinar nossos mecânicos em um tipo de avião. Precisamos apenas de estoque extra de peças para aquele tipo de avião. Se tivermos que trocar um avião no último minuto para manutenção, a frota é totalmente intercambiável - todas as nossas tripulações a bordo e de terra já estão familiarizadas com ela. E não há desafios em como e onde podemos estacionar nossos aviões no solo, uma vez que são todos do mesmo formato e tamanho. ”

A Southwest também não atribui números de assento. O que significa que se um avião for trocado e um novo for trazido com uma configuração de assento diferente (mesmo no mundo dos 737s, pode haver algumas variações), não há necessidade de ajustar toda a disposição dos assentos e emitir novos cartões de embarque . Os passageiros simplesmente embarcam e sentam-se onde quiserem.

A maioria das outras companhias aéreas cobra para despachar bagagens atualmente. A Southwest resistiu à tendência. Sim, esta política de “malas voam gratuitamente” é um bom marketing. Mas também traz benefícios operacionais: “Quando você cobra das pessoas para despachar as malas, elas tentam carregar mais coisas, às vezes mais do que cabe no compartimento superior”, diz Wahlenmeier. “Isso resulta em mais malas sendo despachadas no portão, logo antes da partida. E isso é uma perda de tempo. ”

Outras operadoras usam um sistema hub-and-spoke, no qual os aviões são canalizados para alguns dos principais aeroportos de conexão antes de se ramificarem para seus destinos finais. Isso permite mais cobertura geográfica. Um passageiro vindo de Des Moines não pode pegar um voo direto da United de Iowa para Tóquio, mas pode chegar ao Japão por meio do hub da United em Chicago.

No entanto, os hubs também geram backups, à medida que os aviões ficam enfileirados aguardando o retorno - limpeza, reabastecimento e assim por diante. “Você pode ter 25 ou 30 aviões chegando a um hub ao mesmo tempo”, diz Wahlenmeier. “Isso pode levar a muito tempo em solo, e só ganhamos dinheiro com nossos aviões quando eles estão no ar.” Os hubs também criam um único ponto de falha: tente chegar a qualquer lugar no mapa de voo da Delta, por exemplo, quando há mau tempo em seu hub em Atlanta. Todo o sistema interdependente fica maluco à medida que os aviões param de chegar ao lugar certo na hora certa.

Os voos da Southwest são geralmente ponto a ponto. O avião pousa, passa por uma reviravolta e muitas vezes volta para o lugar de onde veio. Com menos interdependência, a rede pode sobreviver a um problema em um único aeroporto. O sistema foi projetado para facilitar voos de curta distância, não viagens internacionais - a Southwest visa o viajante doméstico, não o viajante a jato. Mas a companhia aérea se limitou intencionalmente, para manter suas operações funcionando perfeitamente. “Podemos fazer a volta dos aviões em cerca de 25 minutos”, diz Wahlenmeier, “a última vez que verifiquei é líder do setor”. Uma rede mais simples também significa que menos bagagem se perde na confusão. Wahlenmeier diz que a Southwest tem uma taxa de conclusão de 99,6% nas malas, o que significa que elas "aparecem do outro lado".

Outras companhias aéreas imitaram a abordagem da Southwest. Recentemente, a Azul - lançada pelo fundador da JetBlue David Neeleman - trouxe o modelo para o Brasil. A Azul concentra-se em rotas domésticas ponto a ponto e usa apenas dois tipos de aeronaves (Embraer E-Jets e aviões a hélice ATR). A Azul não roubou participação de mercado de outras companhias aéreas brasileiras. Em vez disso, com sua estratégia de operações mantendo os custos baixos, tornou o voo acessível para pessoas que poderiam pegar um ônibus. A Azul tem como alvo os pares de cidades para os quais a viagem de ônibus dura 30 horas ou mais e, em seguida, define o preço da passagem igual à tarifa de ônibus equivalente.

A Azul existe apenas desde 2008, então ainda não se sabe se terá sucesso no longo prazo. Mas não há dúvida de que a Southwest provou que seu modelo é um vencedor. Às vezes, as operações mais simples também são as mais inteligentes.


Mapeando nossa pegada humana

Os alunos aprendem sobre o conjunto de dados da Pegada Humana, analisam um mapa que mostra onde e em que medida os humanos influenciaram a Terra e participam de uma discussão em classe.

Geografia, Geografia Humana, Geografia Física

Exploração madeireira

A madeira de uma operação de corte raso é empilhada na lateral de uma estrada de acesso, pronta para o transporte para a planta de processamento.

Esta lista os logotipos de programas ou parceiros da NG Education que forneceram ou contribuíram com o conteúdo desta página. Programa

Links

Local na rede Internet

1. Apresente o conjunto de dados.
Diga aos alunos que os cientistas da Sociedade de Conservação da Vida Selvagem e do Projeto Pegada Humana da Universidade de Columbia mapearam graus de influência humana sobre cada quilômetro quadrado da superfície da Terra (1 quilômetro quadrado = 0,39 milhas quadradas). Quatro fatores foram avaliados: população, rotas de viagem, uso do solo e iluminação. Embora os humanos afetem a Terra de várias maneiras, esses quatro têm o impacto mais imediato na vida selvagem e nas terras selvagens. Perguntar: Por que você acha que esses quatro fatores têm o impacto mais imediato?

2. Exiba a camada de dados da pegada humana no MapMaker interativo.
Exiba o MapMaker interativo com a camada pegada humana selecionada. Clique na guia de legenda no lado superior direito do mapa e revise a legenda. Explique que verde significa áreas menos impactadas por humanos. Roxo significa áreas mais afetadas por humanos. Perguntar: Qual é a cor predominante na América do Norte? Que nível de impacto isso significa? Convide voluntários para apontar quaisquer padrões que notem, como maior impacto humano perto de áreas urbanas.

3. Peça aos alunos que façam uma conexão pessoal.
Peça aos alunos que encontrem sua cidade natal. Perguntar: Qual é a cor do mapa? Quão grande é o impacto humano?

4. Discuta as áreas de menor impacto humano.
Reduza o zoom para a escala global. Perguntar: Quais áreas são menos afetadas pela atividade humana? (Possíveis respostas: Floresta Amazônica, Deserto do Saara, Norte do Canadá, Norte da Rússia e centro da Austrália) Que conexões você pode fazer entre áreas de menos impacto e fatores geográficos, como clima ou paisagem física? Incentive os alunos a perceber que essas áreas tendem a ter um clima rigoroso e são remotas ou inacessíveis devido às características físicas. Por exemplo, o Círculo Polar Ártico, o Deserto do Saara, o Himalaia e a Floresta Amazônica são todos remotos e / ou inacessíveis. Perguntar: As áreas com menor grau de impacto humano permanecerão assim? Lembre aos alunos que este mapa reflete quatro fatores: população, rotas de viagem, uso do solo e iluminação. Perguntar: Quais fatores tendem a mudar com o tempo? (Cada fator pode aumentar, diminuir ou permanecer inalterado ao longo do tempo.)

5. Discuta as áreas de maior impacto humano.

Perguntar: Em quais áreas o grau de impacto humano é maior? (Possíveis respostas: Europa, Índia, Sudeste Asiático e costa oriental da América do Sul.) Que conexões você pode fazer entre áreas de maior impacto e fatores geográficos, como clima ou paisagem física? Incentive os alunos a perceber que essas áreas tendem a ter um clima moderado, terras cultiváveis ​​e proximidade com oceanos. Eles também estão próximos a fontes de água doce e são facilmente acessíveis.

6. Peça aos alunos que comparem a camada de dados da pegada humana e a camada de dados de densidade populacional no mapa interativo.

Clique no segundo slide do mapa no carrossel de mídia para carregar o mapa interativo com a camada de densidade populacional selecionada. Explique aos alunos que a camada de dados da Pegada Humana não mostra a população, ela mostra as áreas que foram afetadas por populações humanas. Peça aos alunos que comparem as duas camadas de dados no mapa interativo. Peça-lhes que identifiquem as diferenças que veem.

Estendendo o Aprendizado

Acesse o site da National Geographic Society para descobrir onde você pode obter o Pegada humana DVD.


PRINCIPAIS / MENORES

Graus de M.S./M.A

CERTIFICADO GIS

Assista a um vídeo para saber mais sobre o Departamento de Geografia da PSU


Símbolo de HTML de sinal de grau

Html grau hexadecimal

Grau html nomeado

Grau html decimal

Os usuários podem criar facilmente o símbolo de grau no computador, bem como muitos ícones, símbolos e sinais diferentes de uma forma muito prática e fácil. Os usuários podem fazer isso usando um dos diferentes métodos. Ou seja, é possível usar o método de combinação de teclas padrão atribuído no teclado, bem como usar métodos alternativos, como mapeamento de caracteres. Da mesma forma, usando o recurso Mapa de caracteres, os usuários podem fazer ícones de graus no computador, respectivamente Iniciar / Todos os programas / Acessórios / Ferramentas do sistema / Mapa de caracteres. Seguindo essas etapas, os usuários precisam encontrar o ícone de grau na janela Mapa de caracteres que é aberta. O ícone do personagem na página Mapa de Caracteres precisa ser copiado e colado pelos usuários para usá-lo em qualquer lugar. De acordo com isso, os usuários podem copiar o símbolo de grau que encontrarem na janela Mapa de caracteres clicando com o botão direito e clicando em & lsquoCopy den. Em seguida, ele precisa abrir as opções clicando com o botão direito do mouse na palavra que deseja usar e clicando & lsquoPaste & rsquo. Desta forma, o mapa de caracteres e o símbolo de grau podem ser usados ​​em qualquer lugar. Além disso, os usuários podem encontrar o ícone de grau no Mapa de caracteres, aponte para ele e clique com o botão esquerdo e pressione & lsquoCTRL & rsquo + & lsquoC & rsquo no teclado para copiá-lo. Após a cópia, ele pode ser movido para o local onde será usado e pode ser colado aqui pressionando & lsquoCTRL & rsquo + & lsquoV & rsquo combinação de teclas no teclado do computador. Dessa forma, você pode usar facilmente o ícone de grau em seu computador ou na Internet.


5 respostas 5

As fontes padrão do Computer Modern estão na codificação OT1, portanto, quando você solicitar a codificação de fonte T1, fontes bitmap são usadas. Instale o pacote cm-super para obter fontes Computer Modern com suporte T1.

Não há necessidade de alterações em seu documento. Basta instalar o cm-super usando o MiKTeX Package Manager ou o TeX Live Manager. O gerenciador de pacotes atualizará os arquivos de mapa de fontes para você. Em seguida, recompile.

Pacote Debian, funciona em Debian e Ubuntu, por exemplo com

Embora esta seja uma solução para corrigir a aparência padrão, considere o uso de uma fonte de suporte T1, como Latin Modern, que foi projetada como sucessora do Computer Modern e, portanto, é muito semelhante, mas pretende ser melhor. Para a decisão, isso pode ajudar:


Como fazer botão com html e mapfile? - Sistemas de Informação Geográfica

Mais de 85 ideias para computação

Esta é uma lista de novas ideias desde minhas últimas 100 ideias. Espero que goste deles tanto quanto eu gostei de pensar neles e anotá-los.

1. Contratos digitais e GUIs corretas

Os contratos devem ser digitalizados para que qualquer pessoa em qualquer parte de qualquer contrato possa ver pelo que é responsável e quaisquer ações que possa tomar dentro do contrato. Deve haver uma IU para interagir com o contrato. Se eu tiver um contrato com uma empresa e puder buscar legalmente meus dados privados, poderei solicitar esses dados por meio da IU. Ou se eu tiver um contrato por telefone e for elegível para um upgrade, devo ser capaz de fazer o upgrade por meio da IU.

2. Criação de negócios jurídicos móveis e ERP pessoal

Alguém com um telefone deve ser capaz de criar um negócio que atenda a todos os requisitos de relatórios e seja uma entidade legal. Quero ver um aplicativo para celular que implemente o planejamento de recursos empresariais para a economia de gigs.

Problemas computacionais podem ser renderizados em fluxos de vídeo gráficos rotulados nos quais as pessoas votam. As pessoas podem então resolver problemas computacionais com uma tela de televisão, monitor ou telefone, olhando para gráficos numerados e usando um teclado no qual elas inserem sequências de números. Problemas como programação eficiente de carros para caronas ou entregas são solucionáveis ​​por seres humanos rapidamente com uma interface de usuário que permite laçar pontos no mapa e adicionar carros. Isso é para problemas que não são estritamente numéricos. O objetivo é dar uma fonte de renda a todos que têm uma tela, um monitor ou uma televisão.

Precisamos de uma maneira de definir o trabalho. Todo o trabalho pode ser representado digitalmente: leve A para B, monte X com Y. Este padrão é que uma peça de trabalho deve caber em uma folha de papel A4. Um pouco como uma descrição de trabalho, mas cada página representa uma tarefa. Portanto, você tem uma folha de papel A4 descrevendo um trabalho a ser feito. Cada peça de trabalho pode depender de outras peças de trabalho. Pode ser integrado em um pipeline de integração contínua para seres humanos. Trabalho aparece em sua caixa de entrada de trabalho.

5. Abra o mapeamento de demanda e deseje mercados

As pessoas podem inserir demandas por produtos e serviços em um mercado de demanda dentro de uma localização geográfica. Exemplos:

  • Quero um dentista a 5 minutos a pé da minha casa.
  • Quero um supermercado a 5 minutos a pé da minha casa.
  • Quero estar no trabalho a 10 minutos a pé.

No total, muitas pessoas criam demandas em torno de áreas geográficas. Esses dados podem ser visualizados como um punhado de círculos ao redor de vários pontos centrais que representam a casa de cada pessoa. As demandas de intersecção em que várias pessoas desejam a mesma coisa na mesma área deve ser óbvio o que satisfaz os desejos da maioria das pessoas. Esses dados devem estar disponíveis e disponíveis para download.

Um aplicativo de desejo expõe o mercado de desejos e permite que as pessoas entrem em contato com outras com base em seus desejos. Se as pessoas publicadas desejam bens com precisão e rastreiam, eles podem organizar automaticamente trocas com outras pessoas com base no que desejam.

6. Assinaturas de estilo de vida

Existe um único aplicativo para seguir qualquer sonho ou estilo de vida com conteúdo criado pelo usuário. Você paga dinheiro por mês por alguma coisa que deseja fazer, talvez um estilo de vida de uma alimentação saudável, comendo de uma determinada maneira, aprendendo um idioma, um hobby de nicho, esportes ou ginástica. Talvez você queira se tornar um músico ou um estilo de vida no subúrbio. A empresa envia a você decisões recomendadas, materiais e equipamentos de que você precisa para o seu nível de assinatura. Usuários e empresas criam e mantêm caminhos de estilo de vida para acomodar todos os níveis de habilidade e combinação de estilo de vida.

Portanto, se você disser que deseja um estilo de vida em que possa começar a trabalhar em 10 minutos a pé, o aplicativo dirá para onde se mudar e com quem se candidatar. Você pode se inscrever para tomar um café todos os dias. Ou se quiser comer fora regularmente em um restaurante sofisticado, você pode, porque seu nível de assinatura inclui uma determinada quantidade de refeições por mês em um restaurante premium. Pode implantar futuros para atender à demanda, como futuros nas mesas de restaurantes. Pode pesquisar estilos de vida em uma loja digital online.

Uma caixa de entrada preenchida com perguntas a serem respondidas e perguntas geradas com base em minhas respostas às perguntas anteriores. Usa listas aleatórias de palavras para fazer perguntas interessantes, como "É coisaA melhor que coisaB"ou" É coisaA significativo com coisaB? "ou" Quanto dinheiro você tem em sua conta bancária? ". Os dados coletados podem ser usados ​​para implementar o motor de vida e podem ser usados ​​para estudo.

Deve ser possível tomar decisões em uma empresa e administrar uma empresa por meio de um software de apresentação se os slides representarem com precisão os processos da empresa e puderem controlar uma empresa. O software de apresentação pode ser um sistema interativo. Imagino dispositivos móveis se conectando por Wifi. As pessoas podem administrar uma empresa por meio de apresentação, criando modelos (diagramas de fluxo) e estruturas (smartart) que são executáveis ​​por mecanismos de fluxo de trabalho. Como as empresas dizem que vão funcionar, é realmente como elas funcionam. Pode haver uma loja de aplicativos de integrações de back-end com apresentações para mostrar informações atualizadas e dinâmicas, como obter dados de vendas de sistemas internos e fazer alterações em sistemas de back-end.

9. Sociedade programada e canais virtuais

O sofrimento humano poderia ser eliminado se todos tivessem uma colocação virtual atribuída. Todos podem ter o que precisam e desejam se todas as outras coisas estiverem no lugar certo na hora certa. O lugar é virtual. Existem lugares virtuais como receber X quantidade de comida Y em Z, fazer compras em X, dormir em X, estar em X, receber X, ir para X, levar A para B, Completar X quantidade de Y de trabalho. Faça Y no tempo X. Todo mundo tem um conjunto de lugares em um determinado momento. Nem todo mundo precisa de um lugar virtual o tempo todo. Se os lugares virtuais forem programados, o tráfego, o deslocamento e a espera podem ser eliminados. A colocação é a representação de uma posição a assumir no mundo - pode ser um lugar na fila. Todos podem comprar e vender canais e programações. Basicamente, tudo é um mercado e pode ser financeirizado.

Dependendo de uma biblioteca, também pode envolver o ping da infraestrutura de software das bibliotecas para que, sempre que a biblioteca for alterada, os dependentes também sejam reconstruídos. Isso capturaria o código que causa alterações downstream nas APIs. As mudanças de API são caras.

GUIs podem ser declarativas. As GUIs podem ser representadas como um conjunto comutativo de instruções. Na forma de widgetA leftOf widgetB. Representar os comandos que geram GUIs como um conjunto monotonicamente crescente de instruções sobre a GUI e renderizar declarativamente uma GUI com base em proposições de widgets em relação entre si. Tem a propriedade de estender GUIs existentes simplesmente fazendo mais instruções. Veja guis aditivos Imagine se um conjunto de tweets pudesse renderizar uma GUI.

12. Música recomendada para página da web

Não seria bom se você pudesse recomendar uma música para tocar em uma página da web como música de fundo? Talvez uma metatag com um URL para um vídeo do YouTube.

A GUI inteira pode ser gerada como uma consulta combinável.

Uma GUI é uma representação bidimensional de uma estrutura de dados multidimensional, portanto, uma consulta é um plano que corta uma estrutura de dados de alta dimensão.

Conforme o usuário passa o mouse pela GUI, uma URL deve ser gerada, que é uma representação do que o usuário está fazendo a qualquer momento, incluindo todo o contexto da perspectiva do usuário. É como um link muito profundo para um aplicativo, pois o usuário é um recurso. Veja os urls dos usuários no github

Substitua as entrevistas de emprego em empresas individuais por entrevistas com uma empresa de aplicativos de credenciamento para examinar pessoas para um determinado tipo de função. As pessoas podem olhar para o exterior da loja e ver o logotipo de uma empresa de credenciamento e trabalhar lá, caso tenham sido examinadas pelo aplicativo. O transporte pode ter a marca da empresa de credenciamento e as empresas de aplicativos de credenciamento podem se especializar na qualidade das pessoas que contratam.

16. Desktops acelerados em nuvem

Os computadores desktop podem ser acelerados fazendo coisas remotamente. Se o sistema de arquivos de um usuário for espelhado em outro lugar, ele pode ser pesquisado remotamente e os resultados servidos localmente sem incorrer em qualquer penalidade de desempenho localmente. Veja meu repositório de desktop em nuvem no github

Um aplicativo que baixa dados de várias fontes online para preencher 1 gigabyte de dados (reddit, postagens de blog, artigos, livros gratuitos), implementa um visualizador e sempre oferece algo para ler enquanto você está offline.

18. CMS para construir aplicativos da web

Um CMS para webapps: crie rotas do lado do servidor e do lado do cliente, registre manipuladores para as rotas do lado do servidor e do cliente, crie fatos sobre a GUI.

Seria mais bem integrado com 11. GUIs aditivos

O modelo OSI faz muito sentido, uma camada adiciona promessas em cima das camadas abaixo para criar uma complexidade emergente. A pilha de rede consegue oferecer algum comportamento muito complicado com a ilusão de simplicidade nas camadas superiores. Cada camada faz promessas a outras camadas. E se o software normal pudesse tirar vantagem dessa propriedade das pilhas de rede, dividindo cada responsabilidade em camadas e usando a passagem de mensagens agrupadas para resolver problemas.

E se tivéssemos a visualização de uma planilha em várias camadas em que cada camada é uma camada da arquitetura do software. Em vez de fórmulas que calculam uma resposta, temos mensagens passando entre as células que representam cumpridores de promessas. Portanto, se você quiser um sistema CRUD, deverá enviar uma mensagem para um serviço CRUD e configurar o serviço CRUD com suas mensagens. Você pode explorar diferentes camadas subindo e descendo a pilha, em que a comunicação entre os serviços está em uma camada diferente de mensagens.

20. Cartões de crédito para acessar edifícios

Os cartões de crédito podem ser usados ​​para acessar os edifícios.

21. Breakless Software - Dependendo das promessas

O churn é doloroso no desenvolvimento de software. As coisas mudam sem aviso e não são mais compiladas ou funcionam juntas. Eu gostaria de ver uma estratégia mais madura para interromper as mudanças e como elas se propagam por meio de um ecossistema de software. A mudança de software não é barata. Python 2 a Python 3 é algo que eu gostaria de evitar no futuro. Quero depender de algo que não deve quebrar, ou seja, depender de uma abstração ou de uma interface, mas depende de algo muito maior do que uma única interface no código. Eu chamo isso dependendo de uma promessa. A interface da qual dependo não deve falhar entre os principais lançamentos, é estável e está bloqueada no software. Javascript no navegador continua funcionando, mas meus projetos NodeJS, Ruby e Java quebram o tempo todo devido à refatoração sendo feita nas dependências subjacentes. Os desenvolvedores precisam de estatísticas precisas de cobertura de código de quem está usando o quê. Eles também precisam saber se quebraram algo posterior com suas alterações.

Proponho que as ferramentas de cobertura de código sejam usadas para criar um rastreamento de usos de API e os projetos de software podem depender desses rastreamentos para funcionar compartilhando o arquivo de rastreamento com o upstream. O conjunto de ferramentas garantiria que uma API nunca quebraria porque estamos dependendo de uma promessa de uma API.

Sistemas modernos como Elasticsearch e Consul exigem clusters de computadores para instalação. O que precisamos é de instaladores que possam ser configurados para instalação em várias máquinas, não apenas em máquinas independentes.

23. Texto de saída como uma interface mutável

Você já olhou para a saída de um comando e quis alterar a saída do comando diretamente? Talvez seja a saída do Kubernetes ou a saída do ip a.

Você clica em um pedaço de texto de saída, ele aparece em um editor e você o altera. Em seguida, é informado do que você precisa executar para tornar a saída alterada uma realidade.

24. Linguagem de programação projetada para refatoração de máquina - equivalências de refatoração

Uma linguagem de programação poderia ser projetada para simplicidade de refatoração? Java se sai muito bem por ser uma linguagem que oferece suporte a refatorações automatizadas. Quero que a quebra de software causada pela refatoração termine. Talvez o autor de uma refatoração de uma alteração de assinatura quebrada possa fornecer um trecho de código equivalente que atue como uma ponte entre a velha maneira de fazer uma coisa e a nova maneira de fazer a coisa. Dessa forma, as pessoas que fazem upgrade podem adquirir o código que faz a ponte e não há quebra de software.

25. Editor de validação YAML aninhado

YAML profundamente aninhado é difícil de editar porque você não sabe em que contexto está. Se você está modificando o Kuberentes YAML, é difícil saber o que é válido e onde. Se você recuar um bloco para a esquerda, tornará o documento inválido. Editores YAML aninhados impedem que você recue para a esquerda por acidente. Validar significa que o editor tenta desserializar o YAML na estrutura de dados usada pelo programa e mostra a interpretação desse programa do YAML de entrada para dizer que é válido ou não.

Cada coisa digitada em um navegador da web deve ser salva em um novo documento que é indexado por site. Dessa forma, podemos ter um arquivo de nossas contribuições para qualquer site. Com a sincronização do navegador, nenhum dado deve passar despercebido. Não precisamos nos preocupar se um site não permite o backup de nossos dados.

Em um sistema com vários microsserviços e uso de bibliotecas compartilhadas, é difícil realizar refatorações nas bases de código. O refatorador de site de chamada é um sistema que permite a refatoração em bases de código. Ele faz isso identificando todos os usos de uma assinatura específica e, em seguida, mostrando cada site de chamada em uma lista. Para que isso funcione, refatorações automatizadas devem ocorrer contra a assinatura do site de chamada. Refatorações automatizadas, como a variável de extração, devem funcionar em cada site de chamada simultaneamente, um pouco como o suporte a vários cursores em editores de texto.

28. Documentação baseada em exemplos executáveis ​​realistas

Todas as bibliotecas e sistemas devem ser documentados por exemplos. Exemplos que incluem instruções de importação, nomes de arquivos e qualquer outro conhecimento básico de precursor que deve ser conhecido para executar o exemplo a ser incluído para que qualquer pessoa possa executá-lo. Eu diria que o Flask e outras bibliotecas simples são muito bem-sucedidas porque têm um exemplo minimalista simples e fácil de executar em suas páginas iniciais.

29. Aplicativos móveis baixam bancos de dados SQLite

Você tem muitos dados para transferir para um cliente móvel para criar uma interface útil? Basta enviar um banco de dados sqlite pela rede para propagar o cliente. Em seguida, transmita atualizações por HTTP.

Eu quero um editor que se pareça com o editor de problemas do Github, mas renderize em texto simples - no formato deste documento de ideia e aceite este documento como entrada. Assim, posso clicar em Nova ideia e fazer com que seja processada neste formato de marcação de texto simples.

Eu gostaria que meu ambiente de trabalho fosse social. Uma área de trabalho não deve parecer tão sozinha. Quero que cada tela fornecida pela área de trabalho tenha uma sala de bate-papo associada. As pessoas podem discutir a área de trabalho e votar em coisas relacionadas à GUI.

32. Idéia da comunidade: Faz certo e errado

Já pensou que um software fazia algo certo? Não existe um conjunto central de padrões de software executado da maneira certa. Eu gostaria de ver um site que reúna cada parte do processo de instalação de software e diga o que está certo sobre isso. O processo de instalação é apenas um exemplo. Há outras coisas que podemos discutir sobre quem faz algo certo ou errado.

33. Bots de bate-papo que fazem perguntas geradas aleatoriamente

Como um bot de bate-papo que envia mensagens para você em vez de você enviar mensagens. Como parte do Human Query Engine.

34. Keylogger para coleta de dados pessoais

Execute um key logger que registra os dados inseridos em cada programa em um computador para manter um registro dos dados pessoais.

35. Desenvolvimento de conversação

O desenvolvimento de software pode ser feito em conversação? Aumente os contêineres do Docker em uma sala de bate-papo. Escreva SQL. Escreva componentes JSX React no chat. Escreva ações Redux na sala de chat. Todos executam o mesmo código e qualquer um pode fazer alterações em qualquer lugar. Sem tocar em um editor de texto.

Um wiki integrado a um ambiente kubernetes ou docker swarm com páginas para vários problemas. Posso simplesmente começar a usar diferentes tipos de software que posso encontrar por meio do wiki sem uma etapa de implantação ativa. Posso navegar em algum software. A página de computação distribuída fornece implementações e várias interfaces para computação distribuída que posso usar. Posso escrever código que depende de uma página de problema. Cada página é como uma API. Devo conseguir importar uma página em uma linguagem de programação.

37. Secrets-login e secrets-logout

Armazene seus segredos baseados em arquivos inevitáveis ​​em / home / $/ secrets e tem um script de shell chamado secrets-logout que usa tar e GPG para criptografar seus segredos baseados em arquivo quando você for para casa. De manhã, faça login com secrets-login para reverter o processo.

38. Gere aleatoriamente seus nomes de usuário para segurança

Não use seu nome ou endereço de e-mail pessoal para fazer login em sites. Seu nome de usuário é 50% do que é necessário para entrar em sua conta. Em vez disso, gere um novo alias de e-mail e use-o para fazer o login, como [email protected]

As promessas em um anúncio digital podem ser compradas diretamente e aparecer em uma conta especial com um clique. Se eu vir uma oferta para um produto por um determinado preço, posso clicar em comprar e comprar imediatamente o serviço ou produto. Você poderia estar dirigindo em uma rodovia e ver um anúncio de um produto em um banner e comprá-lo instantaneamente com um botão no volante do carro. O que você está comprando é a promessa especificada no anúncio. Pode ser um produto com determinado preço ou, mais provavelmente, uma capacidade. Cada compra é em si um mercado, pois pode ser que você esteja comprando de um revendedor, esteja comprando uma promessa, o que significa que qualquer produto que cumpra a promessa pode ser fornecido a você.

Compre um anúncio instantaneamente. Anúncios de software que contêm código para serem instalados e um instalador de quebra-cabeças que descobre como integrar o software à sua infraestrutura. Instalação e integração com um clique em integração contínua.

Um bilhete serve para dizer para onde você está tentando ir, não que você pagou. A viagem sem tíquetes é possível por meio de cartões de crédito carregados com tíquetes digitais e NFC.

Imagine if a web request response had to be constructed by a human being. The incoming request sits on a queue. The UI has conveyor belts that take relevant information to the human operator. The human operator interacts with these request objects and constructs a response object

42. Depend on language feature

A programming language whereby you import language features to depend upon. Python has a PEP process and Java has JSRs. You directly depend on named groups of functionality and this determines your language experience. Perhaps the fist line of the file after the shebang says what language features to enable, such as "feature1,feature2,feature3"

Territories can be occupied by people who believe in the same things. If enough people used an app and voted for what they wanted on the app and agreed to move towards where other people believe the same things, people could begin to get what they want. This idea is called world splitting because you divide the world in half when you agree with a policy.

Society learns that borders delineate acceptability. It's what a neighbourhood is. What is acceptable or what people like within a set of borders, block level, strip mall level, street level, floor level. People bet on what they want, not what makes the most money and it becomes a form of voting which provides funding for said ideas for both sides. Betting forms the basis of rules that you have chosen to live by. Parallel societies - societies can fragment by what is wanted by each neighbourhood. You can create a new neighbourhood by living in a place with a set of beliefs, a placement company would try place you near to people who believe the same things as you. Everyone gets what they want.

44. General Thing Object Editor

A general purpose CRUD editor with the flexibility and power of a file explorer.

45. One giant JSON structure

Can the state of an organisation be ran as a giant JSON structure?

Headless CMSes such as Strapi require expensive migrations to keep up-to-date. I'd like a CMS that promises to be compatible from early versions with minimal impact.

47. Single file visualized as a directory

Take a single file with special comments to delineate directories and render in an editor as a folder with multiple files.

48. Continuous deployment integrated into the desktop

Titlebar of running applications reflects state of an upcoming build of the same application that is being compiled on CI.

When I open a number of programs, I would like this list of programs to be persisted so that I can shut down the computer and return to them again. I'd like the same for the terminal too.

The ability to schedule disk space to various purposes and to schedule files to different regions of empty space.

I have OneDrive, Google Drive, Box and six hard drives. I want my data to be synced across all of them.

My virtual disks in my VMs should also resize (to grow) automatically.

51. Tips should be crowdsourced

When an application wants to show a tip, it should be crowdsourced.

52. Digital open source organisation

Open source community could come up with an organisation that is digital and runs every thing via code.

53. Open source customer service application

Integrate with chatops and case management ops to offer jobs to people on mobile phones to do customer support via chat.

54. An IDE that guarantees buildability

An IDE that guarantees if you can open the project, you can build it reliably the way others build it. Dependencies are fetched.

55. Generalized API client

Like CURL but for querying APIs and handling pagination for you.

Every form of information collected by a corporation to go to a GUI server whereby data forms can be monitored and centrally tested.

Another program in an Office suite: An editor for streams, such as Bash pipelines or Kafka streams. Would allow you to replay data between points in the pipeline and test each stage independently.

What can your computer do for you? The operating system and IDE advertises features and things it can do based on what is installed.

My computer and software I interact with raises events all the time. I'd like to be able to hook into events that are raised and add behaviour to them.

An interface to create asynchronous tasks definitions. I'm thinking of complicated workflows in the backends of controllers whereby multiple services need to be contacted and queried and where there are complicated error handling.

A office suite application for allocating resources to problems.

  • Schedule SSH keys and schedule public keys to be in different locations in a network.
  • Schedule files to be present on certain servers.
  • Schedule people in a company to receive things.

People should be able to do work via a mobile phone and be paid for it. We need to convert problems to be runnable by mobile phone.

63. Title Finder - Vote on the division of work

People with the same title do different things. We could decentralize by voting what tasks constitutes a newly named role and eliminate burnout by creating accurate titles. We could identify who does most of the work in society.

64. Crowd database that doesn't break between releases

Imagine a database of personal information, facts about yourself and various collected resources. I want to crowd source queries to this database to create interesting GUIs and for the data in the database not to require manual migrations. Development should always be carried out with an example dataset, so developers do not get used to started from empty all the time.

65. Automate job descriptions

We can automate job descriptions by building GUIs and workflow rule engines.

66. Open source food ordering

Ordering food could be a commodity like web server software. We need an open source food ordering platform.

67. Stem cell servers and communication libraries for monolith to microservice

Monoliths can be stem cell servers - they can startup and choose what kind of servers to be. When software needs to communicate with a service boundary, it should go through a library. The library is configured to transform requests into either method calls, REST calls or MQ messages based on configuration to talk to other deployed instances of the service.

Communication libraries can be configured with retry logic and circuit breakers.

Use a web interface to render desktop environment screens.

Active network design software. Build a cloud network with a network designer GUI and render to Terraform or cloud API calls.

I want to allocate computing resources to different purposes. I'd like a GUI like spreadsheet that lets me allocate work to different CPUs and to different machines perhaps running containers.

71. Community Idea: Workloads

My computer has lots of spare resources. My computer is powerful enough to run demanding applications because it is multicore. What my computer needs is models that take resources to run. I'd like a community of people generating workloads for computers to run.

There should be a menu in a desktop that is like a search for a task. So if you want to add numbers, you might be guided towards a spreadsheet. A shop of things that people can do with their computers. Not necessarily apps but the interoperation of multiple services installed to create some behaviour. For example, you could be guided through the process to create a website and then the following things happen:

I can search for ways of doing things, such a search for "track spending" and then I am introduced to someone's technical solution to this problem which is to show forms that collect spend amounts. If I don't like this approach, I can try another one. The line between software installation and use of someone's software is blurred.

73. Personal overlay network (VPN)

My phone should be contactable via my desktop and by my laptops.

74. Community idea: System Administration

A reddit or forum like website for managing large fleets of servers in a peer to peer driven way. Each post represents an administration task or some thing that can be executed on a server such as an Ansible task. For example, in the backup part of the website, there's a post for beginning a general system backups and a nested tree of actual backups. There's a post for each system resource such as listening ports and active connections.

Create machines in the cloud as easily as creating a post.

75. Community Idea: Optimist community

A community of thoughts around "wouldn't it be nice if".

See my repository https://github.com/samsquire/society for an optimistic view of the future.

76. Configuration Trialler

A tool that either generates configuration files or command line options to try out different combinations of configuration options together. Use a hill climbing algorithm to see how each option affects run time performance or some other property of the system such as file size or safety. I had such a script that experimented with compression and encryption options of GPG but I have since lost it.

77. Devops Data Flow Model and Execution

Model dataflow between infrastructure provisioning tools such as Terraform, Ansible, Packer, Kubernetes and execute the resulting graph in parallel.

78. CSV with embedded YAML to Cloud/Containers

CSV of VMs/images to spin up in the cloud.

Embed a sub-spreadsheet in a row.

80. Distributed Assertions

Log rich data structures and assert across the data structures that were logged by each machine. Could be used to test distributed systems. Use Complex event processing (CEP) to do unit tests across logs.

81. Structured Logging Based Development

Write an end-to-end flow example log for your software and assign what machines carries out which log line so that communication between machines can be inferred by log entries by jumping between machines. For example, the following log definition CSV handles registration whereby the server contacts the email service to send an email.

The log lines act as an interface to implement against and automatically pass context information automatically to the next service.

82. New Environment by Name

The ability to create a new environment by changing a single string. See devops-pipeline https://github.com/samsquire/devops-pipeline

Use things that are on the screen by right clicking on them and selecting 'Use'.

84. Communication Code Slices

Slice a block of contiguous code up and specify where each slice should run using comments. Introduces implicit communication calls to convey context data through the code. Write one program and split it up between servers via communication slices. You specify where each side should run, on the client, on a server or in a microservice.

A spreadsheet of objects, rather than numerical cells. The code for a web application can live in a cell and communication to database and other services can be threaded through different cells. Would have a GUI where each cell can act like a REPL to your database, ORM system and CLI.

A reader that you can keep open on a monitor while eating without any mouse or keyboard input and it shows content and scrolls through content.

87. Personalised Advice Stream

With data from the Human Query Engine and user generated opinions, we can produce highly personalised advice for people in the form of notifications in an advice feed. The advice should be highly personalised based on previous answers.

88. Spaced repetition feed

Take surfed pages and turn them into a spaced repetition feed.

When you need to make a decision, you open a program in your office suite called Decision. You fill out what needs to be decided and file it in a system. The people who need to approve the decision can do so as they get notified. Automated decisions based on rules can be defined.

90. Achievable things my computer can do for me while idle

My CPU has 64 threads in order to do things in parallel. I am looking for things I can use my CPU for.

  1. Path finding algorithm
  2. Semantic Reasoning
  3. Compiling
  4. Running test builds (with coverage)
  5. Packaging up Linux distributions with packages pre-installed
  6. @Home projects like [email protected], [email protected]

Ideas that are not large enough for their own section.

  • Baked in development environments A Linux distribution could come with a working development environment already configured to write applications in.
  • A package manager for Nginx files. Installs different virtual hosts with different server names for hosting multiple apps on the same nginx server
  • Community Idea: GUI Vote: Vote what should be visible in a GUI screen. Used to implement a drill-down interface.
  • Data structure browser Browse trees, lists and other data structures being used to render GUIs or programs.
  • Entrypoints folder Every source repository should have an entrypoints folder whereby the various entry points for the application is obvious.
  • Download and install simultaneously When downloading multiple packages, Apt-get currently downloads, then installs. It could run a download and installation in parallel.
  • Content for Desktop environments Desktops should be filled with content to browse and peruse.
  • Messaging Topology format It would be nice if messaging systems supported a generic format for creating a messaging topology. For publish/subscribe and distribution lists.
  • Single file GUI A GUI format that bundles rendering information with data queries.
  • Digital magazines A personal computer inbox of automatically updating magazines about your machine. For example, you'll receive a disk space magazine which shows how disk space is being used in the same format as SequoiaView.
  • Community Idea: Secret Sauce Understand what a project does by looking at what API calls a piece of software uses. The secret sauce of Kubernetes is that it runs Docker run for you.
  • Visual package manager Cards to represent each package. Example use in the cards.
  • Write code single threaded and single host synchronously execute and multihost multithreaded asynchronously Write code as if it executes as a single thread of communication.
  • Data flow control Flow control implemented from the database through to the frontend for suction of data.
  • Preserving window manager and desktop environment codebase purity There are some ideas that require interaction between the desktop manager and the window manager but we do not want to pollute any of these codebases by crossing the boundary. We can instead run a daemon and have a daemon and a network call to implement integrations across
  • Design language mapping Write your application to one design language. When a new design language comes out, someone writes a mapping between the old design language to the new language. So that people get design upgrades for free.
  • Community Idea: Digestible documents Complicated documents distilled to Tweets that you can consume at your own pace.

Operations can be visually queued by interacting with objects that represent a pending operation as if it had been completed. See https://github.com/samsquire/gui-thunks

93. Distributed spreadsheets

Spreadsheets that run across multiple machines for performance and parallelism. Cells can be configured to come from other computers.

94. Spreadsheet web designer

A development server that can be the destination of any web form. Using the primitives map, filter, reduce, a spreadsheet that lets you see incoming data and transform it into a web page.

95. Open database as spreadsheet

Spreadsheets are helpful views of data. Can open a database with a spreadsheet viewer and convert spreadsheet formulas into SQL.

96. Data structure configurer

A language where you can request properties of your data structure to select an implementation. This could enhance cost aware computing.

Imagine needing to import a sort algorithm, I can pass properties to the import command such as needing to import a sort algorithm that doesn't care about stable sorting and can deal with partially presorted data:

97. Telemetry enabled desktop

Every UI container should be tracking how many items are inside it. From this data we can decide what data structures and widgets to use for every UI widget on the screen. From this we can collect:

  • View performance (timings)
  • View lifetimes
  • View recycling
  • Bitmap caching
  • View invalidation
  • Flamegraphs
  • Performance profiling

A marketplace of business space, business services, employment, products and services that can be provisioned by data and code through the commodisation of all business plans so that real life businesses can be created by software. Schedule people, buildings, vehicles from one central place.

A coffee shop can be represented as code and data structures and the systems needed to provision a coffee shop should be provisionable by code.

99. Deep Lever & Action at distance

I am still working on this idea.

Imagine you have a very long lever, you can cause action at a distance. Deep Lever means to use a data structure to drive out behaviour far from where the data structure is defined to exert control over it. Examples:

  • You're an operating system company and you have a desktop application or an office application. Every dialogue, menu should be catalogued in a CMS for those things. So you can manage shortcut keys centrally and generate documentation easily.

Have a table of data? Use Pivottables to change the shape of the data until it is convenient to process.

A GUI that is a live system that takes declarative rules of what should be where.

Every thing on the screen originates from streams that have been mapped and filtered.


Freelance Writing

Freelance writing is one of the most popular ways to earn money online. Many successful freelancers can earn an average of 50 cents to a dollar per word. Some are earning twice that!

Of course, it doesn&rsquot start out like that. You&rsquove got to build your portfolio and your résumé, blah blah blah. If you&rsquore interested in writing, I&rsquom sure you know this. If you&rsquore not interested in writing, I wouldn&rsquot recommend traveling down this road just for the money.

It takes dedication and time, though it can be highly profitable if it&rsquos what you love. Assuming it is what you love, let&rsquos talk about making money with it.

Before you decide to start reaching out to all of these freelance writing companies, you need to have a web presence. You need a blog (in my humble blogger opinion, of course).

Or you could just have an online portfolio. Even a LinkedIn profile works to get started. When you&rsquore ready to start, here are 150 resources to help you write better, faster and more persuasively.

If that&rsquos intimidating, just start with these 50 resources.

Now for what you&rsquove all been waiting for once you&rsquore ready to actually start making money, here are 10 websites you can start with:

7. Listverse &ndash Listverse pays $100 for each accepted post. The article must be a list, it must be at least 1,500 words and you must include at least 10 things. Other than that, you can get pretty creative with it.

8. TopTenz &ndash TopTenz pays $50 for each accepted post. Again, the article has to be in a list format and it must be at least 1,500 words, with few exceptions. They post often so your chances of getting accepted are fairly high.

9. A List Apart &ndash A List Apart pays $200 for each accepted post. They&rsquore not first on the list, because they tend to publish less articles, which means you have a smaller chance of getting accepted. Same guidelines as above, 1,500 word minimum.

10. International Living &ndash International Living pays $75 for each accepted post. They are mostly looking for travel experiences from countries you have visited. For this site, it&rsquos more about your experience than your writing ability.

11. FundsforWriters &ndash FundsforWriters pays $50 for each accepted post. They are looking for articles about writing and making money with it. They only accept articles between 500-600 words, but they want you to make each word count.

12. Uxbooth &ndash Uxbooth pays $100 for each accepted post. They do tend to take four to eight weeks to accept and post articles, so don&rsquot count on this being a quick money maker. They take so long, because they pair with editors to only publish amazing content.

13. iWriter &ndash iWriter pays up to $15 for each accepted post. That may seem small, but they aren&rsquot as strict as many of the others above and they also allow you to pick exactly what you write. You can write as many or as few articles as you want.

14. Textbroker &ndash Textbroker pays up to five cents per word, if you&rsquore a 5-star writer. You&rsquoll start by submitting a short sample article and you will most likely start as a 3-star writer, but you can work your way up by writing more and writing great content.

15. Matador Network &ndash Matador Network pays up to $60 for each accepted post, but standard pay is around $20-$25. They don&rsquot really focus on a minimum word count, but they have a maximum count of 1,500 words.

16. The Penny Hoarder &ndash The Penny Hoarder pays up to $800 (rarely), depending upon the number of page views you receive. The pay starts at $100 for 50,000 page views, so this isn&rsquot a guaranteed paid article, but it can potentially be highly rewarding.

There&rsquos no doubt that you can make money with freelance writing, but it&rsquos a process. Once you start building your portfolio and your writing skills, you can start making some serious money. If you&rsquore not an experienced writer, expect to put some time in before you really start to see some dough.


6. Writing your own Nagios plugins

Plugins are executable files run by Nagios to determine the status of a host or service. By default, Nagios comes with a very rich set of official plugins that should cover most people's needs in addition, you can find lots of contributed plugins on the Nagios Exchange website, some of which are also available via OpenBSD's packages and ports system.

However, despite the abundance of plugins, there may be occasions in which no existing plugin is suitable for monitoring a particular service, thus forcing you to write a fully custom plugin, tailored to your exact needs. Luckily, this is a very simple task!

Nagios doesn't bind you to a specific programming language: plugins may be either compiled C programs or interpreted scripts, in Perl, shell or Python. Nagios doesn't mess with the internals of plugins however, it asks developers to follow a few basic guidelines, just for standard's sake.

6.1 Command line options

A plugin's command line must follow some specific requirements:

  • positional arguments are strongly discouraged
  • all plugins should provide a "-V" command-line option (and "--version" if long options are enabled) to display the plugin's revision number
  • a "-?" option, as well as any incorrect option, displays a short usage statement that should fit on a standard 80x25 terminal
  • a "-h", or "--help", option displays detailed help information
  • a "-v", or "--verbose", option adjusts the verbosity level multiple "-v" options (up to 3) should increase the verbosity level, as described in the official guidelines
  • There are a few other reserved options that should not be used for other purposes:
    • "-t" ou "--timeout" (plugin timeout)
    • "-w" ou "--warning" (warning threshold)
    • "-c" ou "--critical" (critical threshold)
    • "-H" ou "--hostname" (name of the host to check).

    6.2 Plugin return codes

    Nagios determines the status of a host or service based on the return code of the plugin. Valid return codes are:

    Valor numérico Service/Host status Service Status description Host status description
    0 Ok/Up The plugin was able to check the service and it seemed to work correctly The host is up and replied in acceptable time
    1 Aviso The plugin was able to check the service, but it didn't seem to work correctly or it exceeded some "warning" threshold The host is up, but some "warning" threshold was exceeded
    2 Critical/Down The service was not running or it exceeded some "critical" threshold The host is down or some "critical" threshold was exceeded
    3 Desconhecido Invalid command line arguments were supplied or an internal error occurred Invalid command line arguments were supplied or an internal error occurred

    The and thresholds are usually set via command line options (see above).

    6.3 A sample plugin script

    Just a couple of notes before moving to a practical example:

    • plugins can access macros as environment variables such variables have the same name as the corresponding macros, with "NAGIOS_" prepended. For instance, the "$HOSTNAME$" macro will be accessible through the "NAGIOS_HOSTNAME" environment variable
    • always specify the full path of any system commands run from your plugins.

    Well, so let's see, as an example, what a plugin to monitor the amount of free memory on the local machine could look like: