Mais

Usando o cursor de pesquisa para determinar a renomeação da classe de recurso

Usando o cursor de pesquisa para determinar a renomeação da classe de recurso


O que estou tentando fazer é criar uma lista de shapefiles com base em valores de nome de campo. A partir daí, gostaria de pesquisar em 1 campo (cada shapefile conterá apenas 1 linha) e se o valor nesse campo for maior que X, o código deve renomear o shapefile. O que eu tenho até agora é:

polyFCs = arcpy.ListFeatureClasses ("* _ Value.shp", "POLYGON") para polyf em polyFCs: field = "Area" com arcpy.da.SearchCursor (polyf, (field)) como cursor: para linha no cursor: linha. getValue (field) if field> X: arcpy.Rename_management (polyf, polyf.replace ('. shp', ") +" _NewValue ")

Quando executo meu código (e estou perdendo ou entendendo algo errado), recebo um erro de tempo de execução informando 'Foi especificada uma coluna que não existe'. Estou em 10.1. Obrigado pela ajuda.


Sua renomeação não funcionará porque você está substituindo a extensão por nada. Usaros.path.splitext ()para remover a extensão e, em seguida, você pode adicioná-la novamente.

polyFCs = arcpy.ListFeatureClasses ("* _ Value.shp", "POLYGON") field = "Area" # Não precisa ficar redefinindo isso a cada loop. field = "SHAPE @ AREA" #Ou use isto para capturar a área do recurso. para polyf em polyFCs: com arcpy.da.SearchCursor (polyf, field) como cursor: para linha no cursor: if row [0]> X: base, ext = os.path.splitext (polyf) arcpy.Rename_management (polyf, "{0} _NewValue {1}". Formato (base, ext))

Tente isso para o seu cursor (como afirmei, o parâmetro do campo do cursor precisa ser uma string ou uma lista e, usando o da.cursor, use a linha [0] para obter o valor):

com arcpy.da.SearchCursor (polyf, field) como cursor: para linha no cursor: se linha [0]> X: # você renomeia aqui

Você tem um campo real denominado 'Área' ou está usando um campo shape_area?

Supondo que você tenha um campo real 'Área', você precisa verificar o valor de row.getValue em relação a X (embora de onde vem o valor de X?). Você está verificando a string 'Área'.

Experimente algo como:

para linha no cursor: if row.getValue (field)> X: # Eu não uso getValue, pessoalmente, veja abaixo

ou

para linha no cursor: se linha. [0] > X:

Como desativar o recurso de auto-renomear tag / espelho HTML do VS Code?

Eu queria ser capaz de editar tags HTML facilmente juntos. Pareceu-me que isso é uma coisa muito fácil de implementar hoje em dia, então instalei esta extensão auto-rename-tag, e acabou não sendo útil para mim: em vez de me ajudar na edição de código html / jsx, ele quebra tudo e eu tenho que desfazer o que ele faz e tentar editar a coisa para evitar acioná-lo.

A coisa lógica aqui seria obviamente remover essa extensão do meu sistema. O único problema aqui, entretanto, é que eu não consigo fazer isso - eu desinstalei, até reinstalei o VS Code, tentei o VS Code Insiders, mas aqui está, ainda habilitado:

Já está integrado? Como faço para desativá-lo?

Versão do VSCode: 1.41.0, commit 9579eda04fdb3a9bba2750f15193e5fafe16b959


Conteúdo

Comparada com uma interface gráfica de usuário, uma interface de linha de comando requer menos recursos do sistema para ser implementada. Como as opções dos comandos são fornecidas em alguns caracteres em cada linha de comando, um usuário experiente pode frequentemente achar as opções mais fáceis de acessar. A automação de tarefas repetitivas é simplificada pela edição de linha e pelos mecanismos de histórico para armazenar sequências usadas com frequência, o que pode se estender a uma linguagem de script que pode receber parâmetros e opções variáveis. Um histórico de linha de comando pode ser mantido, permitindo a revisão ou repetição de comandos.

Um sistema de linha de comando pode exigir manuais em papel ou online para referência do usuário, embora muitas vezes uma opção de "ajuda" forneça uma revisão concisa das opções de um comando. O ambiente de linha de comando pode não fornecer melhorias gráficas, como fontes diferentes ou janelas de edição estendidas encontradas em uma GUI. Pode ser difícil para um novo usuário familiarizar-se com todos os comandos e opções disponíveis, em comparação com os ícones e menus suspensos de uma interface gráfica do usuário, sem referência repetida aos manuais.

Interfaces de linha de comando do sistema operacional Editar

As interfaces de linha de comando do sistema operacional (SO) geralmente são programas distintos fornecidos com o sistema operacional. Um programa que implementa tal interface de texto é freqüentemente chamado de interpretador de linha de comando, processador de comando ou shell.

Exemplos de intérpretes de linha de comando incluem DEC's DIGITAL Command Language (DCL) no OpenVMS e RSX-11, os vários shells Unix (sh, ksh, csh, tcsh, zsh, Bash, etc.), CP / M's CCP, DOS 'COMMAND .COM, bem como os programas OS / 2 e Windows CMD.EXE, os últimos grupos sendo fortemente baseados nos CLIs RSX-11 e RSTS do DEC. Na maioria dos sistemas operacionais, é possível substituir o programa shell padrão por exemplos alternativos que incluem 4DOS para DOS, 4OS2 para OS / 2 e 4NT / Take Command para Windows.

Embora o termo 'shell' seja freqüentemente usado para descrever um interpretador de linha de comando, estritamente falando, um 'shell' pode ser qualquer programa que constitui a interface do usuário, incluindo aqueles totalmente orientados graficamente. Por exemplo, a GUI padrão do Windows é um programa de shell denominado EXPLORER.EXE, conforme definido na linha SHELL = EXPLORER.EXE no arquivo de configuração WIN.INI. Esses programas são shells, mas não CLIs.

Interfaces de linha de comando do aplicativo Editar

Os programas de aplicativos (em oposição aos sistemas operacionais) também podem ter interfaces de linha de comando.

Um programa de aplicativo pode suportar nenhum, nenhum ou todos estes três tipos principais de mecanismos de interface de linha de comando:

  • Parâmetros: A maioria dos sistemas operacionais oferece suporte a um meio de passar informações adicionais a um programa quando ele é iniciado. Quando um programa é iniciado a partir de um shell de linha de comando do sistema operacional, o texto adicional fornecido junto com o nome do programa é passado para o programa iniciado.
  • Sessões interativas de linha de comando: Após o lançamento, um programa pode fornecer a um operador um meio independente para inserir comandos na forma de texto.
  • Comunicação entre processos: A maioria dos sistemas operacionais oferece suporte a meios de comunicação entre processos (por exemplo, fluxos padrão ou canais nomeados). As linhas de comando dos processos do cliente podem ser redirecionadas para um programa CLI por um desses métodos.

Alguns aplicativos suportam apenas um CLI, apresentando um prompt CLI ao usuário e agindo de acordo com as linhas de comando à medida que são inseridas. Outros programas suportam CLI e GUI. Em alguns casos, uma GUI é simplesmente um invólucro em torno de um arquivo executável CLI separado. Em outros casos, um programa pode fornecer uma CLI como alternativa opcional à sua GUI. CLIs e GUIs geralmente oferecem suporte a diferentes funcionalidades. Por exemplo, todos os recursos do MATLAB, um programa de computador de análise numérica, estão disponíveis por meio da CLI, enquanto a GUI do MATLAB expõe apenas um subconjunto de recursos.

Os primeiros jogos da Sierra, como os três primeiros King's Quest games (1984–1986), usavam comandos de uma linha de comando interna para mover o personagem na janela gráfica.

A interface de linha de comando evoluiu de uma forma de diálogo conduzida por humanos em máquinas de teleimpressão (TTY), em que operadores humanos trocavam informações remotamente, geralmente uma linha de texto por vez. Os primeiros sistemas de computador freqüentemente usavam máquinas de teletipo como meio de interação com um operador humano. O computador tornou-se uma ponta do modelo de teletipo de humano para humano. Então, em vez de um humano se comunicar com outro humano por meio de um teleimpressor, um humano se comunicava com um computador.

A teleimpressora mecânica foi substituída por um "tty de vidro", um teclado e tela emulando a teleimpressora. Os terminais "inteligentes" permitiam funções adicionais, como o movimento do cursor em toda a tela ou a edição local de dados no terminal para transmissão ao computador. À medida que a revolução do microcomputador substituiu a arquitetura tradicional - minicomputador + terminais - de compartilhamento de tempo, os terminais de hardware foram substituídos por emuladores de terminal - software de PC que interpretava os sinais de terminal enviados pelas portas seriais do PC. Normalmente, eles eram usados ​​para fazer a interface dos novos PCs de uma empresa com seus minicomputadores ou mainframe existentes, ou para conectar PC a PC. Alguns desses PCs estavam executando o software Bulletin Board System.

Os primeiros CLIs do sistema operacional foram implementados como parte dos programas de monitoramento residentes e não podiam ser substituídos facilmente. A primeira implementação do shell como um componente substituível era parte do sistema operacional de compartilhamento de tempo Multics. [1] Em 1964, o membro da equipe do MIT Computation Center, Louis Pouzin, desenvolveu a ferramenta RUNCOM para executar scripts de comando enquanto permite a substituição de argumentos. [2] Pouzin cunhou o termo "shell" para descrever a técnica de usar comandos como uma linguagem de programação e escreveu um artigo sobre como implementar a ideia no sistema operacional Multics. [3] Pouzin voltou para sua França natal em 1965, e a primeira concha Multics foi desenvolvida por Glenda Schroeder. [2]

O primeiro shell Unix, o shell V6, foi desenvolvido por Ken Thompson em 1971 no Bell Labs e foi modelado após o shell Multics de Schroeder. [4] [5] O shell Bourne foi introduzido em 1977 como um substituto do shell V6. Embora seja usado como um interpretador de comandos interativo, também foi concebido como uma linguagem de script e contém a maioria dos recursos comumente considerados para produzir programas estruturados. O shell Bourne levou ao desenvolvimento do KornShell (ksh), do Almquist shell (cinza) e do popular Bourne-again shell (ou Bash). [5]

Os primeiros microcomputadores eram baseados em uma interface de linha de comando como CP / M, DOS ou AppleSoft BASIC. Durante as décadas de 1980 e 1990, a introdução do Apple Macintosh e do Microsoft Windows nos PCs viu a interface de linha de comando como a interface de usuário primária substituída pela Interface de usuário gráfica. A linha de comando permaneceu disponível como uma interface de usuário alternativa, freqüentemente usada por administradores de sistema e outros usuários avançados para administração de sistema, programação de computador e processamento em lote.

Em novembro de 2006, a Microsoft lançou a versão 1.0 do Windows PowerShell (anteriormente codinome Mônada), que combinava recursos de shells Unix tradicionais com seu .NET Framework proprietário orientado a objetos. MinGW e Cygwin são pacotes de código aberto para Windows que oferecem uma CLI semelhante ao Unix. A Microsoft fornece a implementação ksh da MKS Inc. MKS Korn shell para Windows por meio do complemento Services for UNIX.

Desde 2001, o sistema operacional Macintosh macOS foi baseado em um sistema operacional semelhante ao Unix chamado Darwin. Nesses computadores, os usuários podem acessar uma interface de linha de comando semelhante ao Unix executando o programa emulador de terminal denominado Terminal, que se encontra na subpasta Utilitários da pasta Aplicativos, ou efetuando login remotamente na máquina usando ssh. O shell Z é o shell padrão para macOS Bash, tcsh e o KornShell também são fornecidos. Antes do macOS Catalina, o Bash era o padrão.

Uma CLI é usada sempre que um grande vocabulário de comandos ou consultas, juntamente com uma ampla (ou arbitrária) gama de opções, pode ser inserido mais rapidamente como texto do que com uma GUI pura. Normalmente, esse é o caso com shells de comando do sistema operacional. CLIs também são usados ​​por sistemas com recursos insuficientes para oferecer suporte a uma interface gráfica de usuário. Alguns sistemas de linguagem de computador (como Python, Forth, LISP, Rexx e muitos dialetos do BASIC) fornecem um modo de linha de comando interativo para permitir uma avaliação rápida do código.

CLIs são freqüentemente usados ​​por programadores e administradores de sistema, em ambientes científicos e de engenharia, e por usuários de computadores pessoais tecnicamente avançados. Os CLIs também são populares entre as pessoas com deficiência visual, uma vez que os comandos e as respostas podem ser exibidos em telas Braille atualizáveis.

O padrão geral de uma interface de linha de comando do sistema operacional [6] [7] é:

    - gerado pelo programa para fornecer contexto para o cliente.
  • Comando - fornecido pelo cliente. Os comandos são geralmente uma das três classes:
    1. interno os comandos são reconhecidos e processados ​​pelo próprio interpretador de linha de comando e não dependem de nenhum arquivo executável externo.
    2. Incluído comandos executam arquivos executáveis ​​separados geralmente considerados parte do ambiente operacional e sempre incluídos com o sistema operacional.
    3. Externo os comandos executam arquivos executáveis ​​que não fazem parte do sistema operacional básico, mas são adicionados por terceiros para fins e aplicativos específicos.
  • param1… paramN - Parâmetros opcionais fornecidos pelo cliente. O formato e o significado dos parâmetros dependem do comando emitido. No caso de comandos Incluídos ou Externos, os valores dos parâmetros são entregues ao programa (especificado pelo Comando) à medida que é iniciado pelo SO. Os parâmetros podem ser Argumentos ou Opções.

Neste exemplo, os delimitadores entre os elementos da linha de comando são caracteres de espaço em branco e o delimitador de fim de linha é o delimitador de nova linha. Esta é uma convenção amplamente usada (mas não universal) para interfaces de linha de comando.

Geralmente, uma CLI pode ser considerada consistindo em sintaxe e semântica. O sintaxe é a gramática que todos os comandos devem seguir. No caso de sistemas operacionais, DOS e Unix definem cada um seu próprio conjunto de regras que todos os comandos devem seguir. No caso de sistemas embarcados, cada fornecedor, como Nortel, Juniper Networks ou Cisco Systems, define seu próprio conjunto proprietário de regras que obedecem a todos os comandos em sua CLI. Essas regras também determinam como um usuário navega pelo sistema de comandos. O semântica definir quais tipos de operações são possíveis, em que tipo de dados essas operações podem ser realizadas e como a gramática representa essas operações e dados - o significado simbólico na sintaxe.

Duas CLIs diferentes podem concordar com a sintaxe ou semântica, mas é somente quando concordam em ambas que podem ser consideradas suficientemente semelhantes para permitir que os usuários usem ambas as CLIs sem a necessidade de aprender nada, bem como para permitir a reutilização de scripts .

Uma CLI simples exibirá um prompt, aceitará uma "linha de comando" digitada pelo usuário finalizada pela tecla Enter e, em seguida, executará o comando especificado e fornecerá a exibição textual de resultados ou mensagens de erro. CLIs avançados irão validar, interpretar e expandir o parâmetro da linha de comando antes de executar o comando especificado e, opcionalmente, capturar ou redirecionar sua saída.

Ao contrário de um botão ou item de menu em uma GUI, uma linha de comando é tipicamente autodocumentada, informando exatamente o que o usuário deseja que seja feito. Além disso, as linhas de comando geralmente incluem muitos padrões que podem ser alterados para personalizar os resultados. Linhas de comando úteis podem ser salvas atribuindo uma string de caracteres ou apelido para representar o comando completo, ou vários comandos podem ser agrupados para executar uma sequência mais complexa - por exemplo, compilar o programa, instalá-lo e executá-lo - criando uma única entidade , chamado de procedimento de comando ou script que pode ser tratado como um comando. Essas vantagens significam que um usuário deve descobrir um comando complexo ou uma série de comandos apenas uma vez, porque eles podem ser salvos para serem usados ​​novamente.

Os comandos dados a um shell CLI geralmente estão em uma das seguintes formas:

  • doSomething how toFiles
  • doSomething how sourceFile destinationFile
  • doSomething how & lt inputFile & gt outputFile
  • doSomething how | doSomething how | doSomething how & gt outputFile

Onde faça alguma coisa é, na verdade, um verbo, Como as um advérbio (por exemplo, se o comando for executado "com detalhes" ou "silenciosamente") e toFiles um objeto ou objetos (normalmente um ou mais arquivos) nos quais o comando deve atuar. O & gt no terceiro exemplo é um operador de redirecionamento, dizendo ao interpretador de linha de comando para enviar a saída do comando não para sua própria saída padrão (a tela), mas para o arquivo nomeado. Isso substituirá o arquivo. Usar & gt & gt redirecionará a saída e a anexará ao arquivo. Outro operador de redirecionamento é a barra vertical (|), que cria um pipeline onde a saída de um comando se torna a entrada para o próximo comando.

CLI e proteção de recursos Editar

Pode-se modificar o conjunto de comandos disponíveis, modificando quais caminhos aparecem na variável de ambiente PATH. No Unix, os comandos também precisam ser marcados como arquivos executáveis. Os diretórios na variável de caminho são pesquisados ​​na ordem em que são fornecidos. Ao reordenar o caminho, pode-se executar, por exemplo, OS2 MDOS E.EXE em vez de OS2 E.EXE, quando o padrão é o oposto. Renomear os executáveis ​​também funciona: as pessoas geralmente renomeiam seu editor favorito para EDIT, por exemplo.

A linha de comando permite restringir os comandos disponíveis, como o acesso a comandos internos avançados. O Windows CMD.EXE faz isso. Freqüentemente, os programas shareware limitarão a gama de comandos, incluindo a impressão de um comando 'seu administrador desativou a execução de arquivos em lote' no prompt.

Algumas CLIs, como aquelas em roteadores de rede, têm uma hierarquia de modos, com um conjunto diferente de comandos com suporte em cada modo. O conjunto de comandos é agrupado por associação com segurança, sistema, interface, etc. Nestes sistemas, o usuário pode percorrer uma série de submodos. Por exemplo, se a CLI tivesse dois modos chamados interface e sistema, o usuário pode usar o comando interface para entrar no modo de interface. Neste ponto, os comandos do modo de sistema podem não estar acessíveis até que o usuário saia do modo de interface e entre no modo de sistema.

Prompt de comando Editar

Um prompt de comando (ou apenas incitar) é uma sequência de (um ou mais) caracteres usada em uma interface de linha de comando para indicar a prontidão para aceitar comandos. Ele literalmente solicita que o usuário execute uma ação. Um prompt geralmente termina com um dos caracteres $,%, #, [8] [9]:, & gt ou - [10] e geralmente inclui outras informações, como o caminho do diretório de trabalho atual e o nome do host.

Em muitos sistemas Unix e derivados, o prompt geralmente termina em $ ou% se o usuário for um usuário normal, mas em # se o usuário for um superusuário ("root" na terminologia Unix).

Os usuários finais geralmente podem modificar os prompts. Dependendo do ambiente, eles podem incluir cores, caracteres especiais e outros elementos (como variáveis ​​e funções para a hora atual, usuário, número do shell ou diretório de trabalho) para, por exemplo, tornar o prompt mais informativo ou visualmente agradável, para distinguir sessões em várias máquinas ou para indicar o nível atual de aninhamento de comandos. Em alguns sistemas, tokens especiais na definição do prompt podem ser usados ​​para fazer com que programas externos sejam chamados pelo interpretador de linha de comando durante a exibição do prompt.

No Command.com do DOS e no cmd.exe do Windows NT, os usuários podem modificar o prompt emitindo um comando PROMPT ou alterando diretamente o valor da variável de ambiente% PROMPT% correspondente. O padrão da maioria dos sistemas modernos, o estilo C: & gt é obtido, por exemplo, com PROMPT $ P $ G. O padrão de sistemas DOS mais antigos, C & gt é obtido apenas por PROMPT, embora em alguns sistemas isso produza o estilo C: & gt mais recente, a menos que usado em unidades de disquete A: ou B: nesses sistemas PROMPT $ N $ G pode ser usado para substituir o padrão automático e alternar explicitamente para o estilo mais antigo.

Muitos sistemas Unix apresentam a variável $ PS1 (Prompt String 1), [11] embora outras variáveis ​​também possam afetar o prompt (dependendo do shell usado). No shell do Bash, um prompt do formulário:

pode ser definido emitindo o comando

No zsh, a variável $ RPROMPT controla um "prompt" opcional no lado direito da tela. Não é um prompt real porque a localização da entrada de texto não muda. É usado para exibir informações na mesma linha do prompt, mas justificado à direita.

No RISC OS, o prompt de comando é um símbolo * e, portanto, os comandos CLI (OS) são freqüentemente chamados de "comandos estrela". [12] Também é possível acessar os mesmos comandos de outras linhas de comando (como a linha de comando BBC BASIC), precedendo o comando com um *.

Argumentos Editar

UMA argumento de linha de comando ou parâmetro é um item de informação fornecido a um programa quando ele é iniciado. Um programa pode ter muitos argumentos de linha de comando que identificam fontes ou destinos de informações ou que alteram a operação do programa.

Quando um processador de comando está ativo, um programa é normalmente invocado digitando seu nome seguido de argumentos de linha de comando (se houver). Por exemplo, em ambientes Unix e semelhantes ao Unix, um exemplo de argumento de linha de comando é:

"file.s" é um argumento de linha de comando que diz ao programa rm para remover o arquivo "file.s".

Algumas linguagens de programação, como C, C ++ e Java, permitem que um programa interprete os argumentos da linha de comando tratando-os como parâmetros de string na função principal. Outras linguagens, como Python, expõem a API específica do sistema operacional (funcionalidade) por meio do módulo sys e, em particular, sys.argv para "argumentos de linha de comando".

Em sistemas operacionais semelhantes ao Unix, um único hífen usado no lugar de um nome de arquivo é um valor especial que especifica que um programa deve lidar com dados provenientes da entrada padrão ou enviar dados para a saída padrão.

Opção de linha de comando Editar

UMA opção de linha de comando ou simplesmente opção (também conhecido como bandeira ou interruptor) modifica a operação de um comando, o efeito é determinado pelo programa do comando. As opções seguem o nome do comando na linha de comando, separados por espaços. Nem sempre é necessário um espaço antes da primeira opção, como Dir /? e DIR /? no DOS, que tem o mesmo efeito [10] de listar as opções disponíveis do comando DIR, enquanto dir --help (em muitas versões do Unix) faz exigem que a opção seja precedida por pelo menos um espaço (e faz distinção entre maiúsculas e minúsculas).

O formato das opções varia amplamente entre os sistemas operacionais. Na maioria dos casos, a sintaxe é por convenção em vez de um requisito do sistema operacional toda a linha de comando é simplesmente uma string passada para um programa, que pode processá-la da maneira que o programador quiser, desde que o intérprete possa dizer onde termina o nome do comando e seus argumentos e opções começam.

Alguns exemplos representativos de opções de linha de comando, todos relacionados à listagem de arquivos em um diretório, para ilustrar algumas convenções:

Sistema operacional Comando Alternativa válida Notas
OpenVMS diretório / proprietário Diretor / Proprietário instruir o diretório comando para também exibir a propriedade dos arquivos.
Observe que o nome do comando Directory não faz distinção entre maiúsculas e minúsculas e pode ser abreviado com o mínimo de letras necessário para permanecer exclusivo.
janelas DIR / Q / O: S d * dir / q d * / o: s exibe a propriedade de arquivos cujos nomes começam com "D", classificados por tamanho, o menor primeiro.
Observe que os espaços ao redor do argumento d * são obrigatórios.
Sistemas tipo Unix ls -lS D * ls -S -l D * exibir em arquivos de formato longo e diretórios que começam com "D" (mas não "d"), classificados por tamanho (o maior primeiro).
São necessários espaços de nota em torno de todos os argumentos e opções, mas alguns podem ser executados juntos, por exemplo, -lS é o mesmo que -l -S.
Dados gerais RDOS CLI lista / e / s 26-04-80 / b Lista / S / E 4-26-80 / B liste todos os atributos dos arquivos criados antes de 26 de abril de 1980.
Observe que / B no final do argumento de data é um troca local, que modifica o significado desse argumento, enquanto / S e / E são interruptores globais, ou seja, aplica-se a todo o comando.

Abreviando comandos Editar

No Multics, as opções de linha de comando e palavras-chave do subsistema podem ser abreviadas. Essa ideia parece derivar da linguagem de programação PL / I, com suas palavras-chave abreviadas (por exemplo, STRG para STRINGRANGE e DCL para DECLARE). Por exemplo, no subsistema "fórum" Multics, o -long_subject parâmetro pode ser abreviado -lgsj. Também é comum que os comandos do Multics sejam abreviados, geralmente correspondendo às letras iniciais das palavras que são agrupadas com sublinhados para formar nomes de comandos, como o uso de fez para delete_iacl_dir.

Em alguns outros sistemas, as abreviações são automáticas, como permitir o suficiente dos primeiros caracteres de um nome de comando para identificá-lo exclusivamente (como SU como uma abreviatura para SUPERUSER), enquanto outros podem ter algumas abreviações específicas pré-programadas (por exemplo, MD para MKDIR em COMMAND.COM) ou definido pelo usuário por meio de scripts em lote e aliases (por exemplo, alias md mkdir em tcsh).

Convenções de opções em DOS, Windows, OS / 2 Edit

No DOS, OS / 2 e Windows, diferentes programas chamados de seu COMMAND.COM ou CMD.EXE (ou internos de seus comandos) podem usar sintaxe diferente dentro do mesmo sistema operacional. Por exemplo:

  • As opções podem ser indicadas por um dos "caracteres de troca": /, - ou qualquer um pode ser permitido. Veja abaixo.
  • Eles podem ou não fazer distinção entre maiúsculas e minúsculas.
  • Às vezes, as opções e seus argumentos são executados juntos, às vezes separados por um espaço em branco, e às vezes por um caractere, normalmente: ou = assim Prog -fFilename, Prog -f Nome do arquivo, Prog -f: Nome do arquivo, Prog -f = Nome do arquivo.
  • Alguns programas permitem que opções de um único caractere sejam combinadas [10], outros não. A opção -fA pode significar o mesmo que -f -A, [10] ou pode estar incorreta, ou pode até ser um parâmetro válido, mas diferente.

No DOS, OS / 2 e Windows, a barra (/) é mais prevalente, embora o hífen-menos também seja usado às vezes. Em muitas versões do DOS (MS-DOS / PC DOS 2.xx e superior, todas as versões do DR-DOS desde 5.0, bem como PTS-DOS, Embedded DOS, FreeDOS e RxDOS) o mudar de personagem (às vezes abreviado switchar ou switchchar) a ser usado é definido por um valor retornado de uma chamada de sistema (INT 21h / AX = 3700h). O caractere padrão retornado por esta API é /, mas pode ser alterado para um hífen-menos nos sistemas mencionados acima, exceto em Datalight ROM-DOS e MS-DOS / PC DOS 5.0 e superior, que sempre retornam / deste chamada (a menos que um dos muitos TSRs disponíveis para reativar o recurso SwitChar seja carregado). Em alguns desses sistemas (MS-DOS / PC DOS 2.xx, DOS Plus 2.1, DR-DOS 7.02 e superior, PTS-DOS, Embedded DOS, FreeDOS e RxDOS), a configuração também pode ser pré-configurada por um SWITCHAR diretiva no CONFIG.SYS. O DOS Embutido do Software Geral fornece um comando SWITCH para o mesmo propósito, enquanto 4DOS permite que a configuração seja alterada via SETDOS / W: n. [13] No DR-DOS, se a configuração foi alterada de /, o primeiro separador de diretório na exibição do parâmetro PROMPT $ G mudará para uma barra / (que também é um separador de diretório válido no DOS, FlexOS , 4680 OS, 4690 OS, OS / 2 e Windows) servindo assim como uma pista visual para indicar a mudança. [10] Além disso, a configuração atual é refletida também nas telas de ajuda integradas. [10] Algumas versões do DR-DOS COMMAND.COM também suportam um token $ / PROMPT para exibir a configuração atual. COMMAND.COM desde DR-DOS 7.02 também fornece uma variável de pseudo-ambiente chamada% /% para permitir a gravação de batchjobs portáteis. [14] [15] Vários comandos DR-DOS externos também suportam uma variável de ambiente% SWITCHAR% para substituir a configuração do sistema.

No entanto, muitos programas são programados para usar apenas /, em vez de recuperar a configuração da chave antes de analisar os argumentos da linha de comando. Um número muito pequeno, principalmente portas de sistemas semelhantes ao Unix, são programadas para aceitar "-" mesmo se o caractere de switch não estiver definido para ele (por exemplo, netstat e ping, fornecidos com o Microsoft Windows, aceitarão a opção /? Para listar opções disponíveis e, ainda assim, a lista especificará a convenção "-").

Convenções de opções em sistemas tipo Unix Editar

Em sistemas semelhantes ao Unix, o ASCII hyphen-minus inicia as opções que a nova convenção (e GNU) deve usar dois hífens, em seguida, uma palavra (por exemplo, - criar) para identificar o uso da opção, enquanto a convenção antiga (e ainda disponível como uma opção para opções usadas com frequência) é usar um hífen e depois uma letra (por exemplo, -c) se um hífen for seguido por duas ou mais letras, pode significar que duas opções estão sendo especificadas ou pode significar que a segunda letra e as subsequentes são um parâmetro (como nome de arquivo ou data) para a primeira opção.

Dois caracteres de menos hífen sem as letras seguintes (-) podem indicar que os argumentos restantes não devem ser tratados como opções, o que é útil por exemplo se o nome de um arquivo começar com um hífen ou se outros argumentos forem destinados a um comando interno (por exemplo, sudo). Hífen-menos duplos também são usados ​​às vezes para prefixar "opções longas" onde nomes de opções mais descritivos são usados. Este é um recurso comum do software GNU. O getopt função e programa, e o getopts command são geralmente usados ​​para analisar opções de linha de comando.

Os nomes de comandos, argumentos e opções do Unix diferenciam maiúsculas de minúsculas (exceto em alguns exemplos, principalmente onde comandos populares de outros sistemas operacionais foram portados para o Unix).

Convenções de opções em outros sistemas Editar

O Conversational Monitor System (CMS) usa um único parêntese esquerdo para separar as opções no final do comando dos outros argumentos. Por exemplo, no comando a seguir, as opções indicam que o arquivo de destino deve ser substituído, se existir, e a data e hora do arquivo de origem devem ser retidas na cópia: COPIAR arquivo de origem um arquivo de destino b (REPLACE OLDDATE

A CLI da Data General em seus sistemas operacionais RDOS, AOS, etc., bem como a versão da CLI que veio com seu Business Basic, usa apenas / como o caractere de alternância, não diferencia maiúsculas de minúsculas e permite "alternâncias locais" em alguns argumentos para controlar a maneira como eles são interpretados, como MAC / U LIB / SABC $ LPT / L tem a opção global "U" para o comando do montador de macro para anexar símbolos do usuário, mas duas opções locais, uma para especificar LIB deve ser ignorada passe 2 e o outro para listagem direta à impressora, $ LPT.

Ajuda de uso integrada Editar

Uma das críticas a um CLI é a falta de dicas ao usuário quanto às ações disponíveis. [ citação necessária ] Em contraste, as GUIs geralmente informam o usuário sobre as ações disponíveis com menus, ícones ou outras dicas visuais. [ citação necessária ] Para superar essa limitação, muitos programas CLI exibem um breve resumo de seus parâmetros válidos, normalmente quando chamados sem argumentos ou um de? , -? , -h, -H, /? , / h, / H, / Help, -help ou --help. [10] [16] [17]

No entanto, inserir um nome de programa sem parâmetros na esperança de que ele exiba ajuda de uso pode ser perigoso, pois os programas e scripts para os quais os argumentos da linha de comando são opcionais serão executados sem aviso prévio.

Embora desejável pelo menos para o parâmetro de ajuda, os programas podem não suportar todos os caracteres de introdução de opção exemplificados acima. No DOS, onde o caractere da opção de linha de comando padrão pode ser alterado de / para -, os programas podem consultar a API do SwitChar para determinar a configuração atual. Portanto, se um programa não estiver conectado para oferecer suporte a todos eles, um usuário pode precisar saber a configuração atual até mesmo para ser capaz de solicitar ajuda de forma confiável. Se o SwitChar foi alterado para - e, portanto, o caractere / é aceito como delimitador de caminho alternativo também na linha de comando do DOS, os programas podem interpretar incorretamente opções como / h ou / H como caminhos em vez de parâmetros de ajuda. [10] No entanto, se fornecido como primeiro ou único parâmetro, a maioria dos programas DOS irá, por convenção, aceitá-lo como um pedido de ajuda, independentemente da configuração atual do SwitChar. [10] [13]

Em alguns casos, diferentes níveis de ajuda podem ser selecionados para um programa. Alguns programas que suportam isso permitem dar um nível de detalhamento como um argumento opcional para o parâmetro de ajuda (como em / H: 1, / H: 2, etc.) ou eles fornecem apenas uma pequena ajuda sobre os parâmetros de ajuda com ponto de interrogação e um tela de ajuda para as outras opções de ajuda. [18]

Dependendo do programa, ajuda adicional ou mais específica sobre os parâmetros aceitos às vezes está disponível, fornecendo o parâmetro em questão como um argumento para o parâmetro de ajuda ou vice-versa (como em / H: W ou em / W :? (assumindo / W seria outro parâmetro suportado pelo programa)). [19] [20] [17] [16] [18] [nb 1]

De forma semelhante ao parâmetro de ajuda, mas muito menos comum, alguns programas fornecem informações adicionais sobre si mesmos (como modo, status, versão, autor, licença ou informações de contato) quando chamados com um parâmetro "sobre" como -! , /! , -about ou --about. [16]

Desde o ? e ! caracteres normalmente também servem a outros propósitos na linha de comando, eles podem não estar disponíveis em todos os cenários, portanto, eles não devem ser as únicas opções para acessar as informações de ajuda correspondentes.

Se uma ajuda mais detalhada for necessária do que a fornecida pela ajuda interna embutida de um programa, muitos sistemas suportam uma ajuda externa dedicada " comando "command (ou similar), que aceita um nome de comando como parâmetro de chamada e invocará um sistema de ajuda externo.

Na família DR-DOS, digitar /? ou / H no prompt COMMAND.COM em vez do próprio comando exibirá uma lista gerada dinamicamente de comandos internos disponíveis [10] 4DOS e NDOS suportam o mesmo recurso digitando? no prompt [13] (que também é aceito por versões mais recentes do DR-DOS COMMAND.COM), os comandos internos podem ser individualmente desabilitados ou reabilitados via SETDOS / I. [13] Além disso, algumas versões mais recentes do DR-DOS COMMAND.COM também aceitam um comando?% Para exibir uma lista de variáveis ​​de pseudo-ambiente embutidas disponíveis. Além de seu propósito como referência de ajuda rápida, isso pode ser usado em batchjobs para consultar os recursos do processador de linha de comando subjacente. [10]

Sintaxe da descrição do comando Editar

A ajuda de uso integrada e as páginas do manual geralmente empregam uma pequena sintaxe para descrever a forma de comando válida: [21] [22] [23] [nb 2]

  • colchetes angulares para requeridos parâmetros: ping & lthostname & gt
  • colchetes para opcional parâmetros: mkdir [-p] & ltdirname & gt
  • elipses para repetido itens: cp & ltsource1 & gt [source2…] & ltdest & gt
  • barras verticais para escolha de itens: netstat

Observe que esses caracteres têm significados diferentes de quando usados ​​diretamente no shell. Os colchetes angulares podem ser omitidos quando não for provável confundir o nome do parâmetro com uma string literal.

O caractere de espaço Editar

Em muitas áreas da computação, mas particularmente na linha de comando, o caractere de espaço pode causar problemas, pois tem duas funções distintas e incompatíveis: como parte de um comando ou parâmetro, ou como um parâmetro ou separador de nome. A ambigüidade pode ser evitada proibindo espaços embutidos em nomes de arquivos e diretórios em primeiro lugar (por exemplo, substituindo-os por sublinhados _), ou colocando um nome com espaços embutidos entre aspas ou usando um caractere de escape antes do espaço, geralmente uma barra invertida (). Por exemplo

Caminho longo / nome de programa longo Parâmetro um Parâmetro dois ...

é ambíguo (é "nome do programa" parte do nome do programa, ou dois parâmetros?) no entanto

Long_path / Long_program_name Parameter_one Parameter_two…, LongPath / LongProgramName ParameterOne ParameterTwo…, "Long path / Long program name" "Parameter one" "Parameter two"…

Long path / Long program name Parameter one Parameter two ...

não são ambíguos. Os sistemas operacionais baseados em Unix minimizam o uso de espaços incorporados para minimizar a necessidade de aspas. No Microsoft Windows, muitas vezes é necessário usar aspas porque os espaços incorporados (como em nomes de diretório) são comuns.

Embora a maioria dos usuários pense no shell como um interpretador de comandos interativo, na verdade é uma linguagem de programação em que cada instrução executa um comando. Como deve satisfazer os aspectos interativos e de programação da execução do comando, é uma linguagem estranha, moldada tanto pela história quanto pelo design.

O termo intérprete de linha de comando (CLI) é aplicado a programas de computador projetados para interpretar uma sequência de linhas de texto que pode ser inserida por um usuário, lida de um arquivo ou outro tipo de fluxo de dados. O contexto de interpretação geralmente é o de um determinado sistema operacional ou linguagem de programação.

Os intérpretes de linha de comando permitem que os usuários emitam vários comandos de uma maneira muito eficiente (e geralmente concisa). Isso requer que o usuário saiba os nomes dos comandos e seus parâmetros, e a sintaxe da linguagem que é interpretada.

O Unix #! O mecanismo e o comando OS / 2 EXTPROC facilitam a passagem de arquivos em lote para processadores externos. Pode-se usar esses mecanismos para escrever processadores de comando específicos para usos dedicados e processar arquivos de dados externos que residem em arquivos em lote.

Muitas interfaces gráficas, como o OS / 2 Presentation Manager e as primeiras versões do Microsoft Windows, usam linhas de comando para chamar programas auxiliares para abrir documentos e programas. Os comandos são armazenados no shell gráfico [ esclarecimento necessário ] ou em arquivos como o registro ou o arquivo OS / 2 OS2USER.INI.

Editar história primitiva

Os primeiros computadores não suportavam dispositivos interativos de entrada / saída, muitas vezes contando com interruptores e luzes sensoriais para se comunicar com o operador do computador. Isso era adequado para sistemas em lote que executavam um programa por vez, geralmente com o programador atuando como operador. Isso também tinha a vantagem de reduzir a sobrecarga, já que luzes e interruptores podiam ser testados e configurados com uma instrução de máquina. Posteriormente, um único console do sistema foi adicionado para permitir que o operador se comunique com o sistema.

A partir da década de 1960, a interação do usuário com os computadores era principalmente por meio de interfaces de linha de comando, inicialmente em máquinas como o Teletype Model 33 ASR, mas depois nos primeiros terminais de computador baseados em CRT, como o VT52.

Todos esses dispositivos eram baseados puramente em texto, sem capacidade de exibir gráficos ou imagens.[nota 3] Para programas de aplicativos de negócios, menus baseados em texto foram usados, mas para uma interação mais geral, a linha de comando era a interface.

Por volta de 1964, Louis Pouzin introduziu o conceito e o nome Concha no Multics, com base em recursos anteriores e mais simples do Compatible Time-Sharing System (CTSS). [25] [ melhor fonte necessária ]

Desde o início dos anos 1970, o sistema operacional Unix adaptou o conceito de um ambiente de linha de comando poderoso e introduziu a capacidade de tubo a saída de um comando como entrada para outro. O Unix também tinha a capacidade de salvar e executar novamente strings de comandos como "scripts de shell" que agiam como comandos personalizados.

A linha de comando também foi a principal interface para os primeiros computadores domésticos, como o Commodore PET, Apple II e BBC Micro - quase sempre na forma de um interpretador BASIC. Quando microcomputadores mais poderosos voltados para negócios chegaram com CP / M e computadores DOS posteriores, como o IBM PC, a linha de comando começou a tomar emprestado algumas das sintaxes e recursos dos shells Unix, como globbing e piping de saída.

A linha de comando foi seriamente desafiada pela primeira vez pela abordagem PARC GUI usada no Apple Lisa de 1983 e no Apple Macintosh de 1984. Alguns usuários de computador usaram GUIs como GEOS e Windows 3.1, mas a maioria dos usuários de IBM PC não substituiu seu shell COMMAND.COM por uma GUI até o lançamento do Windows 95 em 1995. [26] [27]

Uso moderno como um shell de sistema operacional Editar

Embora a maioria dos usuários de computador não especialistas agora use uma GUI quase exclusivamente, os usuários mais avançados têm acesso a ambientes de linha de comando poderosos:

  • O shell de comando VAX / VMS padrão, usando a linguagem DCL, foi transferido para sistemas Windows pelo menos três vezes, incluindo PC-DCL e Acceler8 DCL Lite. Os shells de comando Unix foram portados para os tipos de sistemas operacionais VMS e DOS / Windows 95 e Windows NT. é o interpretador de linha de comando do MS-DOS, IBM PC DOS e clones como DR-DOS, SISNE plus, PTS-DOS, ROM-DOS e FreeDOS.
  • O Windows Resource Kit e o Windows Services for UNIX incluem shells Korn e Bourne junto com um interpretador Perl (Services for UNIX contém ActiveStateActivePerl em versões posteriores e Interix para versões 1 e 2 e um shell compilado pela Microsoft)
  • IBM OS / 2 (e derivados como eComStation e ArcaOS) tem o processador cmd.exe. Isso copia os comandos COMMAND.COM, com extensões para REXX.
  • cmd.exe faz parte do fluxo de sistemas operacionais do Windows NT.
  • Ainda outro cmd.exe é um shell simplificado para Windows CE 3.0.
  • Um interpretador de tipo MS-DOS chamado PocketDOS foi portado para máquinas Windows CE; a versão mais recente é quase idêntica ao MS-DOS 6.22 e também pode executar Windows 1, 2 e 3.0, QBasic e outras ferramentas de desenvolvimento, 4NT e 4DOS. A versão mais recente inclui vários shells, nomeadamente MS-DOS 6.22, PC DOS 7, DR DOS 3.xx e outros.
  • Os usuários do Windows podem usar a interface CScript para alternar programas, a partir da linha de comando. O PowerShell fornece uma interface de linha de comando, mas seus miniaplicativos não são escritos em script Shell. Implementações do shell Unix também estão disponíveis como parte do subsistema POSIX, [28] Cygwin, MKS Toolkit, UWIN, shell Hamilton C e outros pacotes de software. Os shells disponíveis para essas ferramentas de interoperabilidade incluem csh, ksh, sh, Bash, rsh, tclsh e menos comumente zsh, psh
  • As implementações de PHP possuem um shell para uso interativo chamado php-cli.
  • O Tcl / Tk padrão tem dois shells interativos, Tclsh e Wish, sendo o último a versão GUI. , Ruby, Lua, XLNT e outros interpretadores também têm shells de comando para uso interativo. usa tcsh como seu shell interativo padrão para o superusuário e ash como shell de script padrão.
  • Muitas distribuições Linux têm a implementação Bash do shell Unix.
  • Apple macOS e algumas distribuições de Linux usam zsh. Anteriormente, o macOS usava tcsh e Bash. (e outros dispositivos semelhantes ao Unix embutidos) geralmente usam a implementação Ash do shell Unix, como parte do Busybox. usa o shell mksh, [29] [30] que substitui um shell derivado de ash [31] que era usado em versões mais antigas do Android, complementado com comandos do Caixa de ferramentas[32] binário.
  • Roteadores com Cisco IOS, [33] Junos [34] e muitos outros são normalmente configurados a partir da linha de comando.

A maioria dos intérpretes de linha de comando oferece suporte a scripts, em várias extensões. (Eles são, afinal, intérpretes de uma linguagem de programação interpretada, embora em muitos casos a linguagem seja exclusiva para o interpretador de linha de comando específico.) Eles interpretarão scripts (chamados de shell scripts ou arquivos em lote) escritos na linguagem que eles interpretar. Alguns intérpretes de linha de comando também incorporam os motores de interpretação de outras linguagens, como REXX, além dos seus próprios, permitindo a execução de scripts, nessas linguagens, diretamente no próprio interpretador de linha de comando.

Por outro lado, as linguagens de programação de script, em particular aquelas com uma função eval (como REXX, Perl, Python, Ruby ou Jython), podem ser usadas para implementar interpretadores e filtros de linha de comando. Para alguns sistemas operacionais, mais notavelmente DOS, esse interpretador de comandos fornece uma interface de linha de comando mais flexível do que a fornecida. Em outros casos, tal interpretador de comandos pode apresentar uma interface de usuário altamente personalizada, empregando a interface de usuário e os recursos de entrada / saída do idioma.

A linha de comando fornece uma interface entre programas e também para o usuário. Nesse sentido, uma linha de comando é uma alternativa a uma caixa de diálogo. Editores e bancos de dados apresentam uma linha de comando, na qual processadores de comando alternativos podem ser executados. Por outro lado, pode-se ter opções na linha de comando, que abre uma caixa de diálogo. A versão mais recente do 'Take Command' possui esse recurso. O DBase usou uma caixa de diálogo para construir linhas de comando, que poderiam ser editadas antes do uso.

Programas como BASIC, diskpart, Edlin e QBASIC fornecem interfaces de linha de comando, algumas das quais usam o shell do sistema. Básico é modelado na interface padrão para computadores Intel de 8 bits. Calculadoras podem ser executadas como interfaces de linha de comando ou de diálogo.

O Emacs fornece uma interface de linha de comando na forma de seu minibuffer. Comandos e argumentos podem ser inseridos usando o suporte de edição de texto padrão do Emacs, e a saída é exibida em outro buffer.

Existem vários jogos em modo texto, como Aventura ou King's Quest 1-3, que dependia dos comandos de digitação do usuário na parte inferior da tela. Um controla o personagem digitando comandos como 'get ring' ou 'look'. O programa retorna um texto que descreve como o personagem o vê ou faz a ação acontecer. A aventura do texto O Guia do Mochileiro das Galáxias, uma peça de ficção interativa baseada no livro de Douglas Adam de mesmo nome, é um jogo de linha de comando no estilo teletipo.

A mais notável dessas interfaces é a interface de streams padrão, que permite que a saída de um comando seja passada para a entrada de outro. Os arquivos de texto também podem servir para ambos os fins. Isso fornece as interfaces de tubulação, filtros e redirecionamento. No Unix, dispositivos são arquivos também, então o tipo normal de arquivo para o shell usado para stdin, stdout e stderr é um arquivo de dispositivo tty.

Outra interface de linha de comando permite que um programa shell inicie programas auxiliares, seja para lançar documentos ou iniciar um programa. O comando é processado internamente pelo shell e, em seguida, passado para outro programa para iniciar o documento. A interface gráfica do Windows e do OS / 2 depende fortemente das linhas de comando passadas para outros programas - console ou gráfico, que normalmente processam a linha de comando sem apresentar um console de usuário.

Programas como o editor OS / 2 E e alguns outros editores IBM podem processar linhas de comando normalmente destinadas ao shell, a saída sendo colocada diretamente na janela do documento.

O campo de entrada de URL de um navegador da web pode ser usado como uma linha de comando. Ele pode ser usado para "lançar" aplicativos da web, acessar a configuração do navegador, bem como realizar uma pesquisa. O Google, que tem sido chamado de "linha de comando da internet", fará uma pesquisa específica do domínio ao detectar parâmetros de pesquisa em um formato conhecido. [35] Esta funcionalidade está presente se a pesquisa é acionada a partir de um campo do navegador ou no site do Google.

Existem bibliotecas JavaScript que permitem escrever aplicativos de linha de comando no navegador como aplicativos da Web autônomos ou como parte de um aplicativo maior. [36] Um exemplo de tal site é a interface CLI para DuckDuckGo. [37] Existem também aplicativos SSH baseados na Web, que permitem dar acesso à interface de linha de comando do servidor a partir de um navegador.

Muitos videogames no PC apresentam uma interface de linha de comando geralmente chamada de console. É normalmente usado pelos desenvolvedores de jogos durante o desenvolvimento e por desenvolvedores de mod para fins de depuração, bem como para trapacear ou pular partes do jogo.


Vantagens de seguir o processo na patente do modelo Langauge

A precisão do reconhecimento de voz pode ser aumentada levando-se em consideração a situação do usuário que está falando.

Os modelos de linguagem podem fornecer estimativas usando informações contextuais linguísticas e não linguísticas.

Os modelos de linguagem podem ser acessados ​​para gerar vários componentes de modelo específicos de domínio com base em dados de treinamento que podem incluir informações contextuais linguísticas e não linguísticas.

Os componentes do modelo de domínio específico podem melhorar a precisão do reconhecimento de voz para um domínio particular, enquanto permanecem independentes dos modelos de linguagem iniciais.

Além disso, a quantidade de tempo e computação necessária para gerar um modelo que corresponde a um determinado contexto pode ser diminuída, enquanto fornece melhor precisão com menos dados de treinamento.

Por exemplo, usando um modelo de linha de base, uma quantidade relativamente pequena de dados de treinamento para um contexto específico pode ser usada para personalizar o reconhecimento para esse contexto.

As técnicas descritas neste pedido de patente para muitas técnicas de modelagem.

A técnica de formar um modelo log-linear com um componente de linha de base e componentes de adaptação específicos de domínio e o processo de treinamento são amplamente aplicáveis.

Embora a modelagem de linguagem para reconhecimento de fala seja discutida em detalhes, as mesmas técnicas podem ser usadas para qualquer aplicativo que envolva modelagem de linguagem, incluindo tradução automática, análise e assim por diante.

Também somos informados de que, além da modelagem de linguagem, as técnicas podem ser usadas para gerar, treinar e usar modelos para:

  • Detecção de spam
  • Classificação de imagem
  • Análise visual
  • Em modelos de campo aleatórios condicionais.

Esta patente pode ser encontrada no seguinte local:

Modelos de linguagem usando componentes de modelo específicos de domínio
Inventado por: Fadi Biadsy e Diamantino Antionio Caseiro
Cessionário: Google LLC
Pedido de patente dos EUA: 20210020170
Publicado em 21 de janeiro de 2021
Arquivado: 1 de outubro de 2020

Métodos, sistemas e aparelhos, incluindo programas de computador codificados em um meio de armazenamento de computador, para modelos de linguagem usando componentes de modelo específicos de domínio.

Em algumas implementações, os dados de contexto para um enunciado são obtidos.

Um componente de modelo específico de domínio é selecionado entre vários componentes de modelo específicos de domínio de modelos de linguagem com base no contexto não lingüístico do enunciado.

Uma pontuação para uma transcrição candidata para o enunciado é gerada usando o componente de modelo específico de domínio selecionado e um componente de modelo de linha de base de modelos de linguagem independentes de domínio.

A transcrição do enunciado é determinada usando a pontuação em que a transcrição é fornecida como uma saída de um sistema de reconhecimento de fala automatizado.

Esta patente começa com um sistema de reconhecimento de fala com modelos de linguagem usando um contexto não linguístico.

O sistema inclui um dispositivo cliente, um sistema de computação e uma rede.

O sistema de computação pode fornecer pontuações determinadas a partir de dados de contexto não linguísticos para um modelo de linguagem, que fornece uma saída que o sistema de computação usa para determinar uma transcrição para os dados de áudio.

As funções executadas pelo sistema de computação podem ser executadas por sistemas de computador individuais ou podem ser distribuídas em vários sistemas de computador.

Um sistema de computação pode receber dados de áudio indicando características de um enunciado e dados de contexto indicando o contexto não linguístico do enunciado.

Pontuações para os recursos não linguísticos podem ser geradas com base nos dados de contexto.

Essas pontuações podem ser fornecidas a modelos de linguagem treinados para estimar as probabilidades com base, pelo menos em parte, nas pontuações para características não linguísticas.

As informações dos modelos de linguagem podem ser recebidas e usadas para determinar uma transcrição para o enunciado.

O modelo de linguagem é log-linear.

O modelo de linguagem é um modelo de entropia máxima, um modelo de máquina de vetores de suporte, uma rede neural, um conjunto de classificadores ou outro tipo de modelo.

Durante o estágio (A), um usuário fala e o dispositivo do cliente detecta a expressão do usuário & # 8217s.

O dispositivo do cliente pode gravar a expressão usando um microfone.

O usuário pode fornecer a expressão como entrada de voz para qualquer uma de uma variedade de aplicativos, incluindo aplicativos para:

Assim, o enunciado pode representar qualquer um de uma variedade de tipos de entrada:

  • Consultas
  • Mensagens
  • Corpo de mensagens
  • Comandos de voz
  • Endereços
  • Números de telefone
  • Em breve

No exemplo, o usuário dita o conteúdo de uma mensagem de e-mail enquanto um aplicativo & # 8220Mail & # 8221 está sendo executado no dispositivo cliente.

O pesquisador inseriu anteriormente o texto & # 8220Let & # 8217s meet at & # 8221 como parte da mensagem, e o enunciado inclui as palavras & # 8220Hermosa beach & # 8221 como entrada adicional para adicionar à mensagem.

Durante o segundo estágio (B), o dispositivo cliente coleta informações e envia informações de contexto não linguísticas para o sistema de computação pela rede. As informações podem ser enviadas com, por exemplo, a solicitação de transcrição do enunciado.

O dispositivo cliente envia dados de áudio para o enunciado para o sistema de computação.

Os dados de áudio podem ser, por exemplo, uma gravação do enunciado ou informações derivadas do enunciado detectado, como valores de energia do banco de filtros, coeficientes cepstrais de frequência de mel (MFCCs) ou pontuações para outros recursos acústicos.

O dispositivo do cliente também pode enviar dados de contexto linguístico que indicam um contexto linguístico para o enunciado (como as palavras realmente ditas pelo remetente da mensagem).

Por exemplo, o dispositivo do cliente pode fornecer dados que indicam as palavras que o enunciado segue.

No exemplo ilustrado, os dados de contexto linguístico indicam que as palavras & # 8220Let & # 8217s se encontram em & # 8221 que precede imediatamente a expressão.

Em algumas implementações, os dados de contexto linguístico fornecem uma quantidade específica de texto, por exemplo, o anterior, duas, três, cinco ou dez palavras, ou o texto reconhecido dentro de um período de tempo predeterminado.

O contexto linguístico pode incluir palavras que foram faladas anteriormente pelo usuário e são reconhecidas e / ou texto que foi inserido ou acessado de outra maneira.

Por exemplo, um usuário pode abrir um arquivo de texto, colocar o cursor em uma posição específica no texto e começar a falar para inserir texto adicional.

Algum texto antes do cursor pode ser fornecido como contexto linguístico, independentemente de como o texto no arquivo foi inserido.

O dispositivo do cliente também pode determinar e enviar dados de contexto não linguístico para indicar um contexto não linguístico para o enunciado.

Os dados de contexto não linguístico podem indicar, por exemplo, características do ambiente em que o enunciado é falado.

Os dados de contexto não linguístico podem indicar fatores relacionados ao ambiente físico do usuário ou dispositivo cliente, como:

  • Localização geográfica
  • Tempo
  • Temperatura
  • Clima
  • Ambiente barulhento

Os dados de contexto não linguístico podem fornecer informações sobre o estado físico do dispositivo cliente:

  • Se o dispositivo está em movimento ou parado
  • A velocidade de movimento do dispositivo
  • Se o dispositivo está sendo segurado ou não
  • Uma pose ou orientação do dispositivo
  • Se o dispositivo está ou não conectado a uma docking station
  • O tipo de docking station ao qual o dispositivo do cliente está conectado

Os dados de contexto não linguístico podem fornecer:

  • Informações sobre o estado operacional do dispositivo cliente
  • Um identificador para um aplicativo em execução no dispositivo cliente
  • Uma categoria ou classificação para o aplicativo para o qual o enunciado foi fornecido como entrada

Os dados de contexto não linguístico também podem indicar informações sobre o usuário que falou o enunciado:

  • Um identificador de usuário
  • Se o usuário é homem ou mulher
  • Outras informações de um perfil de usuário para o usuário

O dispositivo cliente pode determinar sua localização usando um módulo de sistema de posicionamento global (GPS) ou outras técnicas. Por exemplo, ele pode determinar que o dispositivo do cliente & # 8217s está localizado na cidade de Los Angeles.

O dispositivo do cliente também pode determinar se a expressão foi gravada como entrada para um aplicativo de e-mail em execução no dispositivo do cliente.

O dispositivo cliente pode fornecer dados indicando a localização, por exemplo, & # 8220Los Angeles. & # 8221 O aplicativo ativo, por exemplo, o aplicativo & # 8220Mail & # 8221, para o sistema de computação como dados de contexto não linguístico.

O dispositivo cliente também fornece os dados de áudio e os dados de contexto linguístico para o sistema de computação.

Durante o estágio (C), o sistema de computação usa um módulo reconhecedor de fala para determinar as transcrições candidatas para o enunciado.

As transcrições candidatas podem ser fornecidas como, por exemplo, uma lista, uma rede de palavras ou em outras formas.

As transcrições candidatas podem ser pontuadas ou classificadas para indicar quais transcrições candidatas o módulo reconhecedor de voz estima serem as transcrições corretas.

No exemplo ilustrado, as transcrições candidatas representam um conjunto de transcrições de classificação mais alta ou mais prováveis, conforme estimado pelo reconhecedor de fala.

Este conjunto pode ser uma lista das melhores n, incluindo, por exemplo, as 3, 5, 10, 25 principais ou outro número inteiro de transcrições candidatas.

O módulo reconhecedor de fala pode usar um modelo acústico e um modelo de linguagem para identificar as transcrições candidatas.

Esses modelos usados ​​pelo módulo reconhecedor de fala podem ou não usar dados de contexto não linguístico para determinar as transcrições candidatas.

As transcrições candidatas podem ser determinadas com base em dados de áudio e dados de contexto linguístico, sem serem influenciadas pelos dados de contexto não linguístico.

Outro modelo de linguagem pode usar informações sobre o contexto não linguístico para reclassificar ou re-classificar as transcrições candidatas para melhorar a precisão.

O módulo reconhecedor de fala pode usar os dados de contexto não linguístico para identificar e / ou pontuar as transcrições candidatas.

Durante o estágio (D), o sistema de computação usa um módulo de extração de recursos para determinar pontuações para vários recursos.

Por exemplo, o módulo de extração de recursos pode determinar quais dos vários recursos linguísticos e / ou não linguísticos devem ser definidos como ativos para uma determinada expressão.


Configurações de política e avaliação

As configurações de política podem ser de três tipos.

Faixa de endereço IP: O intervalo de endereços IP dentro de um escopo a partir do qual atribuir um endereço IP a um cliente. Uma política de nível de servidor não pode ter uma configuração para um intervalo de endereços IP.

Opções padrão de DHCP: Uma ou mais opções DHCP padrão para enviar a um cliente na resposta com base nas opções solicitadas pelo cliente na lista de solicitação de parâmetro.

Opções de DHCP específicas do fornecedor: Uma ou mais opções DHCP específicas do fornecedor para enviar ao cliente com base no campo de classe do fornecedor na solicitação do cliente.

O servidor DHCP avalia as políticas sequencialmente de acordo com uma ordem de processamento atribuída. O administrador DHCP atribui a ordem de processamento às políticas. Se houver políticas nos níveis de servidor e escopo, o servidor aplica os dois conjuntos de políticas e avalia as políticas de escopo antes das políticas do servidor. A ordem de processamento para uma política de nível de escopo define a ordem de avaliação dentro do escopo. Se não houver políticas definidas no nível de escopo, as políticas no nível do servidor se aplicam ao escopo.


Usando o cursor de pesquisa para determinar a renomeação da classe de recurso - Sistemas de Informação Geográfica

A equipe BlueJ não possui uma política de privacidade, pois não coletamos nenhuma informação pessoal.

BlueJ coleta alguns não- informações pessoais ou anônimas, primeiro, conforme detalhado no arquivo README:

Em segundo lugar, quando o BlueJ é iniciado pela primeira vez, ele apresenta ao usuário a opção de participar de uma coleta de dados mais envolvente. O usuário pode optar por não aceitar, mas mesmo que o faça, o BlueJ não coleta informações pessoais. Uma explicação completa de quais dados são coletados e as respostas às perguntas relacionadas podem ser encontradas nas Perguntas frequentes do Blackbox.

Não há termos de uso, exceto que você deve obedecer aos requisitos de licença para redistribuição. Especificamente, o BlueJ é distribuído sob a GPLv2 com Classpath Exception.

Você pode chamar um método principal da mesma maneira que chama qualquer método estático em Java - clicando com o botão direito do mouse na classe no diagrama de classe e selecionando o método no menu pop-up.

Ao chamar o método principal de uma classe, você verá um campo de entrada de parâmetro que solicita a matriz de strings que o método principal usa como parâmetro.

Por padrão, o parâmetro é

(uma matriz vazia, sem parâmetros). Se você quiser passar, digamos, três parâmetros, a partir de uma linha de comando você escreveria

java MyClass um dois três

No BlueJ, você usa o seguinte parâmetro para "principal" no campo de texto da caixa de diálogo:

Isso passa um array de três strings, assim como o shell de comando.

Existem duas maneiras diferentes de liberar o terminal no BlueJ. Você pode fazer com que o BlueJ limpe automaticamente o terminal antes de cada chamada de método interativo. Para fazer isso, ative a opção 'Limpar tela na chamada de método' no menu 'Opções' do terminal. Você também pode limpar o terminal programaticamente de dentro do seu programa. Imprimir um caractere de alimentação de formulário (unicode 000C) limpa o terminal BlueJ, por exemplo: System.out.print (' u000C')

Isso funcionará no terminal BlueJ, mas não é garantido que tenha o mesmo efeito em todos os terminais.

Às vezes, você pode querer tornar suas próprias bibliotecas geralmente disponíveis no mesmo estilo das bibliotecas padrão Java. Por exemplo, você pode ter seu próprio pacote chamado & quotsimpleIO & quot que deseja usar. Então, você pode querer escrever import simpleIO. * Sem a necessidade de copiar todas as classes simpleIO em cada projeto.

Na verdade, existem três maneiras de fazer isso no BlueJ.

A primeira forma é por meio da caixa de diálogo & quotPreferências & quot. Abra a caixa de diálogo & quotPreferências & quot e selecione a guia & quotBibliotecas & quot. Em seguida, adicione o local onde suas classes estão como um caminho de biblioteca. Reinicie o BlueJ - pronto. As bibliotecas selecionadas agora estarão disponíveis em todos os projetos que você abrir.

Uma pequena coisa a observar: se as classes estiverem em um arquivo jar, selecione o próprio arquivo jar como a biblioteca. Se suas classes estiverem em uma estrutura de diretório de pacote nomeada (por exemplo, em um diretório denominado & quotsimpleIO & quot), escolha o diretório que contém simpleIO (não o próprio diretório simpleIO) como a biblioteca!

A segunda maneira é através do diretório & quotuserlib & quot, encontrado em & ltbluej-dir & gt / lib / userlib (isto é, dentro da pasta & quotlib & quot que se encontra dentro da pasta em que o BlueJ foi instalado). Todas as bibliotecas colocadas neste diretório serão carregadas pelo BlueJ. Pretende-se que seja um método do & quotsistema & quot para usar bibliotecas de classes personalizadas, pois se aplicará a todos os usuários que usam a mesma cópia instalada do BlueJ, para que possa ser usado, por exemplo, em um ambiente de laboratório para disponibilizar as bibliotecas a todos os alunos. Essas bibliotecas devem ser arquivos .zip ou .jar.

Naturalmente, para colocar uma biblioteca em um diretório & quotuserlib & quot, uma pessoa deve ter acesso de gravação ao diretório.

Bibliotecas carregadas por meio deste segundo método também estão listadas na guia & quotLibraries & quot da caixa de diálogo & quotPreferences & quot, mas as bibliotecas não podem ser adicionadas ou removidas do diretório userlib por meio da caixa de diálogo. Essas bibliotecas estarão disponíveis em todos os projetos.

A terceira maneira é por meio do diretório & quot + libs & quot. Se um diretório chamado & quot + libs & quot for encontrado dentro de um projeto quando ele for aberto pelo BlueJ, todas as bibliotecas de classes dentro dele estarão no classpath (e, portanto, disponíveis para uso no projeto). Esta é uma maneira conveniente de permitir que as bibliotecas sejam carregadas projeto por projeto. Isso é útil se você deseja distribuir um projeto com quaisquer bibliotecas que possam ser necessárias para que ele funcione. Você pode simplesmente compactar o diretório do projeto e distribuí-lo.

Portanto, em resumo, existem três maneiras de disponibilizar bibliotecas de classes personalizadas no BlueJ. Para acesso no nível do sistema (todos os usuários e todos os projetos), você pode usar o diretório & quotuserlib & quot. Para acesso de nível de usuário (todos os projetos para um único usuário), você pode usar o Diálogo de Preferências para adicionar uma biblioteca, e para acessibilidade de um único projeto, você pode criar ou adicionar um arquivo ao diretório & quot + libs & quot de um projeto.

Pode ser muito útil para fins educacionais ou de teste instanciar classes de biblioteca. Por exemplo: Você quer brincar com um objeto String? Você quer ver como java.awt.Point se comporta? No BlueJ, você pode fazer isso.

Selecione & quotUsar classe de biblioteca. & quot no menu de ferramentas. Em seguida, digite (ou selecione no menu pop-up) o nome completo da classe que deseja instanciar. Pressione Enter e você verá uma lista de todos os construtores e métodos estáticos. Selecione um - e pronto!

Você pode, da mesma forma, chamar métodos estáticos de classes de biblioteca. Por exemplo, selecione java.lang.Math, clique duas vezes no método & quotrandom () & quot e - voila - você obteve um número aleatório!

O BlueJ 4.0.0 e versões posteriores oferecem suporte para a execução de aplicativos JavaFX. Se você tiver uma subclasse da classe Application do JavaFX, pode clicar com o botão direito nela e selecionar "Executar como aplicativo JavaFX". Desde a versão 4.1.1, o BlueJ também solicitará que você pergunte se deseja sempre executar o código deste projeto no encadeamento JavaFX, o que é necessário se você deseja invocar interativamente o código que manipula a GUI JavaFX.

Se quiser executar o código JavaFX sem escrever sua própria subclasse de aplicativo (ou se estiver usando o BlueJ 3), você deve inicializar o JavaFX em seu código (por exemplo, criando um novo JFXPanel) E use Platform.runLater para envolver qualquer código relacionado ao JavaFX.

O suporte para a criação e execução de miniaplicativos foi removido no BlueJ 4.0 (conforme observado no histórico da versão). Essa mudança está de acordo com a descontinuação da tecnologia de miniaplicativo no Java Runtime Environment, conforme anunciado pela Oracle. Muitos dos navegadores da web também removeram o suporte para a execução de miniaplicativos.

Uma alternativa, para aqueles que desejam criar aplicativos simples baseados em GUI no BlueJ, é usar a API JavaFX. Existem vários tutoriais para JavaFX disponíveis na web e mdash veja, por exemplo, este em tutorialspoint.com, ou use uma pesquisa na web para encontrar outros.

Se você realmente precisa de suporte para miniaplicativos no BlueJ, sua única opção é usar uma versão mais antiga do BlueJ (3.1.7 é a última versão a oferecer suporte a miniaplicativos).

As versões mais recentes do BlueJ (4.2.0+) requerem Java 11. A maioria dos instaladores do BlueJ agora vem com a versão correta do JDK incluída.

Versões mais antigas do BlueJ (4.1.4 e anteriores) requerem Java 8.

Para outros idiomas, você terá que fazer sua própria tradução. Todos os rótulos, menus e diálogos devem ser traduzidos. Estamos procurando voluntários para fazer isso. Aqui está como.

No diretório lib, você encontrará subdiretórios chamados "english", "german" e "swedish" e assim por diante. Eles contêm todos os textos dependentes do idioma. Crie um novo diretório para o idioma desejado. Digamos que você queira definir uma configuração de idioma para élfico. Nesse caso, crie um diretório chamado "elvish". Em seguida, copie todos os arquivos de um dos outros diretórios de idioma para o novo diretório de idioma. Eles são todos arquivos de texto. Edite cada um desses arquivos e traduza todos os textos neles para élfico (mantendo o formato dos arquivos como estão) e, em seguida, execute o utilitário "native2ascii" que vem com o JDK para converter os arquivos para o formato correto. Depois de fazer isso, você pode ativar a configuração de idioma élfico conforme descrito acima, usando a configuração da propriedade: bluej.language = élfico. Se você fizer isso, ficaríamos muito gratos se você nos enviasse seus arquivos de idioma para inclusão no Distribuição BlueJ. Alguém por aí também pode estar procurando uma tradução para o seu idioma.

  1. Baixe a documentação oficial em formato HTML. Atualmente, você pode encontrar o download como um arquivo zip no site da Oracle. Descompacte-o em um disco em sua máquina ou em uma rede local.
  2. No BlueJ, selecione "Preferências" no menu Ferramentas. Você verá um campo denominado "URL da documentação JDK". Aqui, você precisa colocar a URL da sua cópia local da documentação. A maneira mais fácil de fazer isso é iniciar o navegador da web, abrir a documentação local (escolhendo "Abrir arquivo") e, em seguida, copiar e colar a URL do navegador no campo de preferências do BlueJ.

O BlueJ possui dois arquivos nos quais armazena suas propriedades de configuração.

  • O arquivo "bluej.defs" é instalado com o BlueJ e se aplica a todos os usuários que usam essa instalação do BlueJ. No Windows e no Linux, ele é armazenado no subdiretório "lib" de onde você instalou o BlueJ. (No Mac OS X / macOS, ele pode ser encontrado no pacote do aplicativo.) Normalmente, você não desejará editar bluej.defs a menos que seja um administrador do sistema configurando uma instalação para muitos usuários.
  • O arquivo "bluej.properties" é um arquivo de configuração por usuário armazenado em um local diferente em sistemas diferentes:
    • No Windows Vista, 7, 8: C: Usuários seu nome de usuário bluej bluej.properties
    • No Windows XP: C: Documents and Settings seu nome de usuário bluej bluej.properties
    • No Mac OS X / macOS: / User /seu nome de usuário/Library/Preferences/org.bluej/bluej.properties
      Para OS X 10.7 (Lion) e mais recente, consulte esta página para saber como acessar a pasta Biblioteca (que está oculta).
    • No Linux e sistemas semelhantes: seu-diretório-inicial/.bluej/bluej.properties
      Observe que ".bluej" normalmente é um diretório invisível.

    As propriedades definidas em bluej.properties substituem aquelas em bluej.defs.

    Você pode editar ambos os arquivos usando um editor de texto padrão.

    No Windows, você pode usar o aplicativo Bloco de notas para editar os arquivos, mas precisará selecionar & quotTodos os arquivos & quot como o tipo de arquivo na caixa de diálogo & quotAbrir arquivo & quot. Além disso, pode ser necessário salvar o arquivo em um local diferente (usando & quotsave como & quot) e, em seguida, copiá-lo sobre o arquivo original usando o Windows Explorer se não for possível salvar o arquivo original diretamente.

    Na verdade, o BlueJ executa duas VMs Java: uma é para o próprio BlueJ e a outra executa o código do usuário (por exemplo, se você instanciar uma classe, o objeto resultante é criado na VM do usuário).

    Para especificar argumentos para a VM do usuário, use a propriedade bluej.vm.args em bluej.defs (veja onde o BlueJ armazena sua configuração).

    Para especificar os argumentos da VM para a VM primária, você precisa fazer algo diferente de acordo com o sistema operacional que está usando:

    • janelas: use a propriedade bluej.windows.vm.args em bluej.defs
    • Linux / Unix / equivalente: edite o script de shell & quotbluej & quot que é criado pelo instalador (no diretório onde você instalou o BlueJ) e modifique a última linha (que inicia o BlueJ).
    • Mac OS X / macOS: Clique com a tecla Control pressionada no ícone BlueJ e escolha & quotshow package contents & quot no menu pop-up e, em seguida, clique duas vezes na pasta Contents e, em seguida, no arquivo Info.plist (que deve fazer com que o editor de propriedades seja aberto). Expanda a árvore & quotRoot & quot e, em seguida, a árvore & quotJava & quot, e a árvore & quotProperties & quot aparece abaixo. Você pode então adicionar novos pares de nome / valor de propriedade (equivalente ao argumento da linha de comando & quot-Dname = value & quot) à árvore & quotProperties & quot. Você também pode criar uma nova chave & quotVMOptions & quot como filha da árvore & quotJava & quot e especificar argumentos de linha de comando adicionais como seu valor. Antes de fazer isso, você precisa ter o Apple Developer Tools instalado - o Property List Editor faz parte das ferramentas de desenvolvedor que você pode encontrar no disco de instalação do Mac OS.

    Esteja avisado que alterar os argumentos do Java VM geralmente é desnecessário e, se feito incorretamente, pode impedir o BlueJ de funcionar corretamente.

    Desde o BlueJ 3.0.5, a codificação é mantida por projeto e o padrão é UTF-8 para novos projetos. A codificação é especificada na configuração 'project.charset' do arquivo package.bluej (na raiz do projeto) e determina a codificação usada por programas executados no BlueJ, bem como a codificação usada para arquivos de origem Java dentro do projeto.

    Para versões mais antigas do BlueJ (antes de 3.0.5):

    Você precisa alterar a propriedade & quotfile.encoding & quot para um nome de codificação de caracteres compatível (& quotUTF-8 & quot ou & quotISO-8859-1 & quot, por exemplo - uma lista de nomes de conjuntos de caracteres está disponível aqui, embora java não ofereça suporte a todos).

    Você pode fazer isso passando -Dfile.encoding = UTF-8 (por exemplo) como um argumento para a Java Virtual Machine. Consulte a pergunta do FAQ acima para saber como fazer isso. Você provavelmente deve especificar a mesma codificação na VM principal e na VM do usuário.

    O BlueJ usa comunicação de soquete TCP / IP como parte de sua operação normal. A comunicação ocorre entre dois processos em execução no seu computador - um é para o próprio BlueJ e o outro é para uma "VM de depuração" que executa seu programa. Embora essa comunicação não passe pela rede, alguns softwares de firewall irão bloquear essa comunicação, o que inibe a operação do BlueJ. (No Windows, as versões recentes do BlueJ usam um método de comunicação chamado & quotshared memory & quot; no entanto, o BlueJ voltará a usar TCP / IP se a memória compartilhada falhar por algum motivo.)

    Em geral, os firewalls adotam uma de duas abordagens para bloquear o tráfego de rede. A primeira abordagem é bloquear o tráfego com base apenas no endereço IP de origem / destino (e / ou número da porta). A segunda abordagem é bloquear o tráfego por programa. Uma abordagem de combinação comum é permitir a configuração de regras específicas de origem / destino por programa. Alguns firewalls bloqueiam apenas as tentativas de conexão de entrada, enquanto outros firewalls também podem bloquear conexões de saída.

    Para que o BlueJ funcione, a comunicação deve ser permitida quando o endereço IP de origem e de destino é 127.0.0.1, que é o endereço de "loopback" (ou seja, refere-se à máquina local, não a uma máquina na rede). Observe que o BlueJ deve ter permissão para fazer conexões de saída (ou "agir como um cliente"), bem como receber conexões de entrada (ou "agir como um servidor").

    Se o seu firewall define regras por programa, o programa ao qual você deve aplicar as regras irá usualmente seja o iniciador bluej (bluej.exe) - no entanto, você também pode precisar especificar regras para o executável Java (& quotjava.exe & quot) ou em seu lugar. Na verdade, existem várias cópias do executável java.exe instaladas como parte do JDK ou J2SDK no Windows - pode ser necessário alterar as regras para eles independentemente. Também pode ser necessário alterar as regras para os arquivos & quotjavaw.exe & quot.

    Se você usa o firewall padrão do Windows, pode usar as seguintes páginas para ajudá-lo a configurar o firewall:

      (Windows XP) (Windows 7. As instruções são para Firefox, no entanto, BlueJ e Java podem ser configurados de forma semelhante).

    Se você usar um software de segurança de terceiros, precisará consultar a documentação desse software.

    Se você ajustou ou desabilitou o firewall, mas o BlueJ ainda não funciona, você pode tentar fazer uma inicialização limpa. Se o BlueJ for executado após uma inicialização limpa, você poderá determinar qual serviço impede que o BlueJ seja executado (consulte as instruções na página de "inicialização limpa"). Você pode deixar o serviço desabilitado ou entrar em contato com o fornecedor para obter suporte.

    No Linux, o firewall normalmente será configurado corretamente, a menos que você esteja usando regras de firewall personalizadas. No entanto, o Security Enhanced Linux (SELinux) também pode impedir a comunicação TCP / IP, o que impedirá o BlueJ de funcionar corretamente. Você deve consultar a documentação da sua distribuição para determinar como desabilitar ou configurar corretamente o firewall e o SELinux (ou tente fazer uma pesquisa na web ou consultar um fórum de usuário apropriado).

    Os sistemas Debian recentes mudam as configurações de rede padrão do kernel de uma forma que o Java não parece gostar. Você pode superar isso editando o arquivo & quot / etc / sysctl.d / bindv6only.conf & quot e alterando a configuração & quotnet.ipv6.bindv6only & quot de 1 para 0 e reiniciando o sistema.

    Algumas informações sobre por que você está vendo o erro podem ser encontradas no log de depuração do BlueJ, que você pode ver normalmente digitando:

    Outros sistemas:

    Você precisará consultar a documentação do sistema ou a documentação do software de terceiros para obter informações sobre como configurar o software do firewall.

    Desde o Java 7u6, as ferramentas de acessibilidade Java estão incluídas no Java como padrão - mas são desabilitadas por padrão.

    Para habilitar as ferramentas de acessibilidade Java, siga estas instruções. Pode ser necessário reiniciar sua máquina posteriormente. Com o Java Access Bridge habilitado, o BlueJ deve funcionar com o leitor de tela instalado (foi testado com o NVDA).

    O suporte ao leitor de tela foi significativamente melhorado na versão 3.1.0 do BlueJ (e melhorado novamente na versão 3.1.1), portanto, recomendamos atualizar pelo menos para a versão 3.1.1.

    O BlueJ não tem um tema escuro como tal, mas você pode alterar muitas das cores que usa para reduzir o brilho visual.

    Para o editor, primeiro copie o arquivo lib / stylesheets / java-colors.css para o diretório do usuário BlueJ (por exemplo, no Windows, é normalmente C: Users your-username bluej). Esta cópia do arquivo terá preferência e você poderá editar as cores lá. Um conjunto importante são as cores do texto de primeiro plano que são especificadas como -fx-fill nos blocos & quot.token-XXX & quot no topo, especialmente .token-default. A cor de fundo principal e outras cores de fundo para realce do escopo são especificadas no bloco .scope-colors. Atualmente, não há como alterar as cores que o BlueJ usa para outras partes da interface, como o diagrama do pacote.

    Durante o processo de instalação, o BlueJ precisa gravar alguns arquivos. Ele tenta escrever aqueles para o / tmp diretório. O erro pode indicar que você não tem permissão de gravação nesse diretório.

    Se for esse o caso, você pode iniciar o java e dizer a ele para usar um diretório diferente para arquivos temporários:

    java -Djava.io.tmpdir = / something / something -jar bluej-200.jar

    Outra possibilidade é que você esteja sem espaço em disco.

    Este não é um problema específico do BlueJ, mas um problema com o mecanismo do Windows Installer, que pode ser corrigido por uma das seguintes maneiras:

    • Força o instalador do iniciador a ser executado com privilégios de administrador:
      1. Localize (usando o Windows Explorer) o arquivo do instalador BlueJ (.msi) que você baixou.
      2. Enquanto mantém pressionada a tecla Shift no teclado, clique com o botão direito do mouse no instalador do BlueJ (.msi) e escolha & quotCopiar como caminho & quot.
      3. Vamos para Começar & gt Todos os programas & gt Acessórios.
      4. Clique com o botão direito em & quotCommand Prompt & quot e escolha & quotExecutar como administrador & quot. Isso deve abrir uma janela de prompt de comando, rotulada "Administrador:".
      5. Na janela do Prompt de Comando, digite msiexec / i (você precisa inserir um único espaço após "/ i". Não pressione Enter!).
      6. Clique com o botão direito na janela do Prompt de Comando e escolha "Colar". Isso deve colar o caminho para o arquivo MSI que você copiou na Etapa 2 acima.
      7. Pressione Enter para executar o comando.
    • Se isso não funcionar, você pode tentar limpar a pasta de arquivos temporários ("% temp%") e, em seguida, executar o iniciador BlueJ MSI novamente. Observe que outros aplicativos podem ser afetados adversamente se você excluir manualmente o conteúdo da pasta de arquivos temporários, tenha cuidado se decidir fazer isso. Não podemos fornecer suporte para problemas que você encontra ao excluir manualmente os arquivos na pasta de arquivos temporários. Faça o seguinte se desejar continuar:
      1. Feche todos os aplicativos.
      2. Escolher Começar & gt Todos os programas & gt Acessórios. Clique com o botão direito em & quotCommand Prompt & quot e escolha & quotExecutar como administrador & quot.
      3. Na janela do Prompt de Comando, digite o seguinte comando exatamente como aparece abaixo e pressione Enter: del% temp% *. * / S / q Nota: "del" é o comando que exclui arquivos. "% temp% *. *" combina a variável de ambiente que especifica a pasta de arquivos temporários com caracteres curinga que especificam & quotall arquivos & quot. "/ s" estende isso a todas as subpastas. "/ q" impede que os prompts de confirmação sejam exibidos.
      4. Você verá uma lista de arquivos excluídos na janela Prompt de Comando. Você pode ver que alguns arquivos não podem ser excluídos com erros "Acesso negado" ou semelhantes. Esse é um comportamento normal.
      5. Feche a janela do prompt de comando
      6. Agora tente abrir o instalador do BlueJ (.msi) e execute novamente.
    • Alternativamente, você pode instalar o BlueJ sem usar o instalador do Windows, instalando o Oracle JDK e, em seguida, usando o instalador genérico do BlueJ, que pode ser baixado da seção "Outros sistemas operacionais" na página principal.

    Vários problemas estranhos podem ocorrer durante a instalação do BlueJ no Windows, principalmente, esses problemas são devido a problemas com a estrutura do instalador do Windows em vez de com o BlueJ. Alguns exemplos:

    • O BlueJ é instalado, mas não é mostrado no menu iniciar, na área de trabalho ou na lista de programas instalados
    • Mensagem de erro: & quotO processo não pode acessar o arquivo porque outro processo bloqueou uma parte do arquivo & quot
    • Mensagem de erro: & quotA conta especificada já existe & quot

    Foi relatado que o uso da ferramenta CCleaner resolve alguns problemas (esta ferramenta é publicada por terceiros e a equipe do BlueJ não pode se responsabilizar por quaisquer problemas que seu uso possa causar nem fornecer suporte para esta ferramenta).

    Para diagnosticar esses problemas, você deve instalar o BlueJ com o registro do Windows Installer habilitado:

    • Primeiro, se o BlueJ instalou (mas a instalação parece estar interrompida ou incompleta), você deve desinstalá-lo.
    • Em seguida, habilite o log do Windows Installer de acordo com este artigo da base de conhecimento da Microsoft (habilite o log de todas as mensagens, exceto para mensagens & quotverbose & quot).
    • Depois de habilitar o registro, execute o processo de instalação do BlueJ (novamente).
    • Localize o arquivo de log que foi produzido (consulte o artigo da base de conhecimento) e mova-o para algum lugar para que possa localizá-lo novamente mais tarde.
    • Desative o log do Windows Installer (de acordo com o artigo da base de conhecimento).

    Agora você pode tentar ler o arquivo de log sozinho ou enviá-lo para a equipe de suporte. Para fazer o último, use o formulário de solicitação de suporte e envie o log como um anexo de e-mail quando receber a resposta de um membro da equipe. Não tente anexar um log do Windows Installer ao enviar o formulário pela primeira vez, pois ele foi projetado apenas para aceitar logs de depuração do BlueJ.

    Versões recentes do BlueJ (4.0+) são fornecidas com o JDK. Essas versões exigem Mac OS X 10.7.3 ou posterior e não exigem que o JDK seja instalado separadamente.

    Para versões mais antigas do BlueJ:

    As versões 3.1.x também são empacotadas com um JDK, porém para essas versões também é possível usar o pacote 'legado' que usa o sistema JDK, em sistemas onde o Java 6 está instalado.

    Versões 3.0.x: essas versões do BlueJ requerem que o Java 6 seja instalado separadamente.

    Versões 2.5.x: essas versões requerem que o Java 5 ou 6 seja instalado separadamente.

    No Mac OS X 10.4 (Tiger), apenas o Java 5 está disponível. No Mac OS X 10.5 (Leopard), Java 6 está disponível com uma atualização (10.5.2), mas apenas em sistemas de processador Intel de 64 bits (não em sistemas com processador PowerPC, Intel Core ou Intel Core Duo).

    O que isso significa é: você não poderá executar o BlueJ 3.0 - 3.0.9 em um Mac com OS X 10.4 (Tiger), nem em alguns Macs com OS X 10.5 (Leopard). No entanto, você pode executar o BlueJ 2.5.3 nesses sistemas.

    Independentemente de qual versão do OS X você tem, se você usar uma versão do BlueJ que não inclui o JDK, então:

    Você deve se certificar de que a versão correta do Java está ativa para executar o BlueJ. Para fazer isso, execute o aplicativo & quotJava Preferences & quot (Tiger: Applications / Utilities / Java / J2SE 5.0 / Java Preferences Leopard / Snow Leopard: Applications / Utilities / Java Preferences), escolha a guia & quotGeneral & quot e mova Java SE 6 (ou Java SE 5 se você não tiver o Java SE 6) no topo da lista. Se você não encontrar o Java SE 6 na lista, não será possível executar o BlueJ 3.0+.

    Descobrimos que no MacOS Mojave, o Greenfoot pode travar quando uma caixa de diálogo é exibida. Isso pode acontecer se a caixa de diálogo "atualizar API" for exibida quando um cenário antigo for aberto, mas também pode ocorrer para outras caixas de diálogo, principalmente se você alternar para outro aplicativo enquanto a caixa de diálogo é exibida.

    Na verdade, trata-se de um travamento do Java, descrito nas entradas de bug aqui e aqui.

    Uma solução alternativa é adicionar o BlueJ à lista de acessibilidade em:

    Preferências do Sistema & gt Segurança & amp Privacidade & gt Privacidade (guia) & gt Acessibilidade (na lista à esquerda, em seguida, adicione BlueJ à lista de aplicativos à direita).

    Fazer isso parece evitar o travamento.

    Como afirma o texto completo da mensagem, esse problema normalmente é causado por um software de firewall que interfere na operação do BlueJ. Mais informações sobre como lidar com este problema estão disponíveis aqui, veja também estas informações específicas do Linux.

    Outra possível causa desse problema ao executar no Windows é que os caracteres no caminho para o seu projeto (incluindo o nome do projeto) não são representáveis ​​no conjunto de caracteres do sistema. Isso geralmente ocorre quando você usa caracteres acentuados (ou caracteres não ingleses) no caminho do projeto e, na verdade, é devido a um bug do Java. Neste caso, a solução mais fácil é renomear / mover seus projetos para um local sem os personagens problemáticos.

    Se não conseguir resolver o problema, você precisará entrar em contato com a equipe de suporte do BlueJ.

    Se o seu programa solicita entrada, você deve fornecer a entrada antes que o programa possa continuar em execução! O que está acontecendo é que seu programa está aguardando (indefinidamente) pela entrada que solicitou.

    Geralmente, você pode abrir o terminal a partir do menu 'visualizar' e digitar nele. Pressione 'enter' após fornecer a entrada (a entrada do terminal é armazenada em linha).

    Como uma solução melhor, você deve fazer com que seu programa exiba um prompt (por exemplo, & quotPor favor, digite seu nome & quot) antes de tentar ler a entrada. Isso fará com que a janela do terminal seja aberta automaticamente.

    Como você está usando o Git na rede, ele é afetado por firewalls. Se você tem um proxy que usa para acessar sites da web por meio dos protocolos HTTP / HTTPS, deve configurar o BlueJ para estar ciente do proxy, que pode ser usado para acessar repositórios Git em hosts externos. Isso é um pouco complicado, mas pode ser feito seguindo as etapas abaixo:

    Primeiro você precisa determinar o proxy hospedar e porta para cada protocolo. Peça ao administrador do sistema as configurações corretas. Observe que HTTP e HTTPS normalmente (mas não necessariamente) usam o mesmo host e porta de proxy.

    Para configurar o BlueJ para usar um proxy, você precisa definir as propriedades Java http.proxyHost e http.proxyPort (para HTTP). Para HTTPS, as propriedades equivalentes são https.proxyHost e https.proxyPort. (Você também pode ser capaz de especificar que as configurações de proxy do sistema são usadas, definindo java.net.useSystemProxies para verdadeiro, mas não conseguimos verificar se isso funciona).

    Para definir as propriedades, você deve adicionar um -D opção para cada uma dessas propriedades na linha de comando Java quando o BlueJ é iniciado, por exemplo, você pode usar:

    No entanto, estes são apenas exemplos - você precisará usar o host e o valor da porta corretos!

    Determine os argumentos de linha de comando apropriados para suas configurações de proxy. Em seguida, você precisa garantir que o BlueJ comece com esses argumentos fornecidos para Java. Para fazer isso, consulte a explicação nesta entrada de FAQ. (Para Windows, você precisará editar o bluej.defs arquivo e definir o bluej.windows.vm.args propriedade).

    Este problema pode ocorrer especialmente após conectar e desconectar um segundo monitor ou projetor. A janela está aberta, mas não pode ser vista na tela, porque ela está localizada fora da área visível da tela, você precisa movê-la de volta para a área visível. Existem várias maneiras de fazer isso descritas nesta página.

    (Você também pode enfrentar esse problema se alterar a resolução da tela ou se as configurações do projeto estiverem corrompidas).

    Sabe-se que esse problema afeta versões mais antigas do BlueJ. A causa mais comum desse problema é que a versão do JDK é muito baixa e o BlueJ requer uma versão mais recente (por exemplo, algumas versões do BlueJ requerem Java 6 e produzem esse problema quando executadas com Java 5).

    Em seguida, use o utilitário & quotselect VM & quot (no menu iniciar) para escolher o JDK mais recente para BlueJ.

    Recomendamos executar a versão mais recente do BlueJ, junto com um Java JDK recente, para evitar esse e outros problemas. Observe que o Bluej atualmente (versão 4.x) requer Java 8.

    A situação geralmente é esta: em uma instalação multiusuário, o administrador do sistema instala e inicia o BlueJ, incluindo a seleção da versão Java (JDK / J2SDK). BlueJ funciona bem. Mas quando outros usuários iniciam o BlueJ, eles são sempre solicitados a informar a localização do JDK.

    O motivo é que as restrições de gravação no registro do Windows impedem que o BlueJ salve o JDK selecionado. No Windows, o BlueJ lembra a versão do JDK selecionada gravando uma entrada no espaço do usuário do registro. Se o registro estiver protegido contra gravação ou se for restaurado ao seu estado original em cada login, essas informações serão perdidas e o usuário será solicitado a selecionar o local do JDK novamente.

    Este problema não deve ocorrer em versões do BlueJ que são empacotadas com um JDK. Recomendamos o uso de um pacote de instalação & quotBundled JDK & quot em vez de instalar o BlueJ e o JDK separadamente. Desde o BlueJ 4.0.0, apenas o pacote empacotado está disponível. O BlueJ não está mais disponível como um download separado.

    Existem duas soluções disponíveis.

    A primeira é fornecer aos usuários acesso de gravação ao registro do Windows.

    Se isso não for prático (por exemplo, em alguns ambientes de laboratório), o BlueJ pode ser explicitamente configurado para usar um JDK específico, usando uma propriedade em bluej.defs (consulte a Dica 4 no arquivo de dicas para obter informações gerais sobre a configuração do BlueJ).

    Colocou o 'bluej.windows.vm' em bluej.defs para o caminho do JDK que você deseja usar. Esta propriedade é comentada por padrão. Se estiver definido, o BlueJ não verificará o registro, não perguntará ao usuário, mas apenas usará esta versão do Java e iniciará.

    Artefatos visuais - áreas pretas, texto distorcido ou ausente, etc. - geralmente são resultado de um bug do driver de vídeo ou do Java. Tente atualizar seus drivers de vídeo (veja aqui para Windows 7) ou desabilite a aceleração gráfica (veja aqui).

    Se você estiver executando uma versão do BlueJ que não inclui o JDK, também deve verificar se o JDK está atualizado. Lembre-se de executar o utilitário & quotselect VM & quot para garantir que o BlueJ seja executado com sua versão Java mais recente.

    Recebemos alguns relatos de texto desaparecendo quando o cursor do mouse passa sobre ele, especialmente com os chipsets Intel Graphics 4000 HD, os drivers podem apresentar erros. Uma solução neste caso é desabilitar o uso do Java do Direct3D (D3D) para renderização. Para fazer isso, você precisa editar a configuração do BlueJ (o arquivo bluej.defs) e alterar (ou adicionar) o bluej.windows.vm.args configuração adicionando -Dsun.java2d.d3d = false. Por exemplo, mude:

    (Certifique-se de remover o '#' no início da linha!) É possível que esta configuração ajude com problemas semelhantes em outro chipset gráfico também.

    A maioria dos travamentos no BlueJ está relacionada a problemas com a placa de vídeo. Veja a resposta diretamente acima sobre como atualizar os drivers da placa gráfica para prováveis ​​correções. Além disso, se você estiver executando sua placa de vídeo com overclock, tente executar sem overclocking, pois overclocking é conhecido por causar travamentos relacionados a gráficos.

    Este é um problema que afeta alguns laptops. Pode ser devido a problemas de driver de vídeo, portanto, vale a pena tentar atualizar seus drivers de vídeo, se possível.

    O problema afeta outros aplicativos Java além do BlueJ e há um bug no banco de dados de bugs da Oracle em relação ao problema.

    A correção sugerida é editar o arquivo de configuração bluej.defs e inserir as seguintes configurações:

    Quando você clica duas vezes em um aplicativo Jar no Windows, ele não abre uma janela de console, portanto, se seu aplicativo produzir texto usando System.out.println (por exemplo), essa saída seria invisível.

    Uma solução possível seria escrever uma interface GUI. Outro seria executar seu jar usando a linha de comando, executando:

    Nota: este problema deve ser resolvido no BlueJ 4.0.0+.

    A caixa de diálogo & quotopen project & quot no BlueJ, porque vem do Java, é diferente das caixas de diálogo do seletor de arquivos em aplicativos Mac nativos. Não mostra uma lista de dispositivos (como pen drives), o que torna mais difícil localizá-los.

    Você pode abrir projetos de tal dispositivo indo para a pasta & quotVolumes & quot no nível superior & quotMacintosh HD & quot. Volumes montados de dispositivos de armazenamento serão listados lá.

    No Mac OS X 10.2 e posterior, a execução no BlueJ pode falhar quando vários Macintoshes na mesma rede têm o mesmo nome de computador (definido em Preferências do Sistema / Compartilhamento).

    Solução: certifique-se de que máquinas diferentes tenham nomes diferentes.

    Se você estiver no Mac OS X e tentar criar um objeto e ele nunca terminar (a mensagem & quotCriando objeto. & Quot permanece na barra de status), o motivo pode ser o uso de um servidor proxy para acesso à rede.

    O BlueJ usa soquetes para se comunicar entre duas máquinas virtuais locais e isso é afetado pelas configurações de rede do sistema. Se sua organização usa um proxy, essa pode ser a causa.

    A solução: configure o tráfego localhost para não usar o servidor proxy.

    Aqui está como:

    Em versões recentes do OS X, incluindo o Snow Leopard, abra seu Preferências do Sistema, vou ao Rede painel, clique Avançado. e selecione o Proxies aba. Adicione & quotlocalhost & quot (sem as aspas) ao Ignorar configurações de proxy caixa.

    Em versões mais antigas do OS X, abra seu Preferências do Sistema, vou ao Rede painel, clique Configure e Proxies para sua conexão de rede. Adicione & quotlocalhost & quot (sem as aspas) ao Ignorar configurações de proxy caixa.

    Parece haver um bug no Java da Apple (Mac OS X 10.6.2, Java 1.6.0_17) que impede que os menus do BlueJ funcionem quando certos idiomas são selecionados como o idioma preferencial por meio das preferências do sistema.

    Uma solução alternativa é definir o inglês como o idioma preferencial.

    Outra solução alternativa é configurar o BlueJ para usar a aparência & quotcross platform & quot em vez da & quotAqua & quot (nativo do Mac OS X). Para fazer isso, edite o arquivo & quotbluej.defs & quot (veja a dica da semana # 12) e remova o '#' no início da linha que diz:

    # bluej.lookAndFeel = crossplatform

    Para que leia:

    bluej.lookAndFeel = crossplatform

    Isso fará com que o BlueJ use a aparência (mais feia) da & quotcross platform & quot, mas pelo menos os menus (que aparecerão na parte superior da janela do BlueJ) serão funcionais.

    Alguns usuários do macOS são afetados por um bug do JDK que impede o BlueJ de iniciar corretamente. Felizmente, há uma solução simples: abra o aplicativo Catálogo de Fontes e escolha "Restaurar fontes padrão" no menu Arquivo (clique em "Continuar" quando solicitado).

    No Linux, esse problema pode ser causado por Security Enhanced Linux (& quotSELinux & quot) ou regras de firewall excessivamente restritivas. Consulte a documentação de sua distribuição para descobrir como desabilitar ou configurar corretamente o SELinux e / ou o firewall. Mais informações estão disponíveis na resposta anterior do firewall.

    Se você estiver executando o Debian & quotSid & quot (o lançamento do Debian & quotunstable & quot) e receber esta mensagem de erro, pode ser devido a uma aparente incompatibilidade ou bug com Java. Alguns usuários conseguiram resolver isso editando o arquivo & quot / etc / sysctl.d / bindv6only.conf & quot e alterando a configuração & quotnet.ipv6.bindv6only & quot de 1 para 0 e reiniciando o computador.No entanto, recomendamos que você não execute a versão instável do Debian (ou qualquer outra distribuição Linux & quotunstable & quot ou sistema operacional) se você não for capaz de resolver problemas como esses por conta própria.

    No Raspberry Pi, um usuário precisa de privilégios de superusuário ("acesso root") para acessar certas interfaces de hardware, incluindo as portas de E / S de uso geral. Sempre que o BlueJ não conseguir adquirir tais permissões sem fornecer uma senha, ele será executado sem acesso a este hardware e exibirá a mensagem "Acesso ao hardware não disponível".

    Para dar acesso root à sua conta de usuário, você precisa editar (de uma conta privilegiada) o arquivo "/ etc / sudoers" usando o comando "sudo visudo" e adicionar a linha "john ALL = (ALL) NOPASSWD: ALL" (onde "john" é a conta de usuário que você usa para executar o BlueJ).

    Para reativar o acesso ao hardware no BlueJ, vá para o Ferramentas menu, selecione Preferências e abra o Raspberry Pi guia selecione a opção Permitir acesso a GPIOs (requer sudo)e feche o BlueJ. Na próxima vez que você iniciar o BlueJ, ele será executado com acesso total ao hardware.


    Alterar as configurações do SafeSearch

    1. No seu computador, vá para Configurações de pesquisa.
    2. Em "Filtros do SafeSearch", marque ou desmarque a caixa ao lado de Ative o SafeSearch.
    3. Na parte inferior da página, selecione Salvar.

    Observação: Se você não pode alterar as configurações do SafeSearch, seu administrador pode ter definido o SafeSearch para estar sempre ativado. Se você acha que a configuração do SafeSearch de sua rede está substituindo sua configuração individual, entre em contato com o administrador da rede do seu ISP para obter mais informações.


    Opção 7: excluir as chaves de registro de suplementos COM

    Para excluir as chaves de registro dos suplementos COM, siga estas etapas:

    1. Saia de todos os programas do Office.
    2. Modelo regedit no Procurar caixa (no Windows 10, Windows 8.1 ou Windows 8) ou no Começe a pesquisar caixa no Começar menu (em versões anteriores do Windows) e, em seguida, pressione Digitar.
    3. Localize a seguinte subchave de registro: HKEY_CURRENT_USER Software Microsoft Office Word Addins
    4. Selecione Addinse, em seguida, selecione Arquivo & gt Exportar.
    5. Nomeie o arquivo como WdaddinHKCU.reg e salve-o na área de trabalho.
    6. No Editar menu, selecione Excluire, em seguida, selecione sim.
    7. Localize a seguinte subchave de registro: HKEY_LOCAL_MACHINE Software Microsoft Office Word Addins
    8. Selecione Addinse selecione Arquivo & gt Exportar.
    9. Nomeie o arquivo como WdaddinHKLM.reg e salve-o na área de trabalho.
    10. No Editar menu, selecione Excluire, em seguida, selecione sim.
    11. Saia do Editor do Registro.
    12. Inicie o Word.

    Se o problema for resolvido, você determinou que um programa de suplemento de COM está causando o problema. Em seguida, você deve determinar qual programa de suplemento COM está causando o problema.

    Determine qual programa de suplemento de COM está causando o problema

    Para determinar o programa de suplemento COM problemático, siga estas etapas:

    Clique duas vezes no Wdaddin.reg ícone em sua área de trabalho.

    Selecione sime, em seguida, selecione OK.

    Use um dos procedimentos a seguir, conforme apropriado para a versão do Word que você está executando.

    Word 2010 ou posterior

    1. No Arquivo menu, selecione Opções.
    2. Selecione Suplementos.
    3. No Gerenciar lista, selecione Suplementos COMe, em seguida, selecione Ir.

    Se um suplemento estiver listado no Suplementos COM caixa de diálogo, desmarque a caixa de seleção do suplemento. Se mais de um suplemento estiver listado, desmarque apenas uma caixa de seleção de suplemento por vez. Este procedimento ajuda a determinar qual suplemento está causando o problema.

    1. Selecione OK para fechar a caixa de diálogo Suplementos de COM.
    2. No Arquivo menu, selecione Saída.

    Selecione o botão Microsoft Office e, em seguida, selecione Opções de palavras.

    Selecione Suplementos.

    No Gerenciar lista, selecione Suplementos COMe, em seguida, selecione Ir.

    Se um suplemento estiver listado no Suplementos COM caixa de diálogo, desmarque a caixa de seleção do suplemento. Se mais de um suplemento estiver listado, desmarque apenas uma caixa de seleção de suplemento por vez. Este procedimento ajuda a determinar qual suplemento está causando o problema.

    selecionar OK para fechar o Suplementos COM caixa de diálogo.

    selecione o Botão Microsoft Office e, em seguida, selecione Sair do Word.

    No Arquivo menu, selecione Saída.

    Se o problema for resolvido quando você iniciar o Word, você determinou qual suplemento COM está causando o problema. Se você deve ter os recursos que o suplemento fornece, você deve determinar qual suplemento inclui esses recursos para que você possa entrar em contato com o fornecedor para uma atualização.

    Se o problema não for resolvido quando você iniciar o Word, repita as etapas 4 e 5 para cada suplemento de COM listado até determinar qual suplemento está causando o problema.

    Para restaurar os suplementos de COM, repita a etapa 4, mas marque a caixa de seleção de cada suplemento de COM que deseja restaurar.


    Usando o cursor de pesquisa para determinar a renomeação da classe de recurso - Sistemas de Informação Geográfica

    Na página seguinte, você aprenderá sobre as opções e recursos do utilitário WinExplorer:

    A caixa de diálogo Opções do WinExplorer

    • Ocultar janelas ocultas superiores: Se esta opção for selecionada, todas as janelas no topo da hierarquia serão mostradas, mesmo se estiverem ocultas. Se esta opção estiver desmarcada (o padrão), as janelas ocultas no topo da hierarquia não são mostradas.
    • Mostrar hierarquia de janelas completas: Por padrão, esta opção está selecionada. Se esta opção estiver desmarcada, todas as janelas filhas serão mostradas nas ramificações da janela superior sem mostrar as relações hierárquicas entre elas.
    • Capturar janela pela posição do mouse: Esta opção permite que você encontre facilmente uma janela localizada na tela. Para usar esta opção, selecione a combinação de teclas que ativará o travamento das janelas. quando você pressiona a combinação de teclas selecionada, a janela localizada atrás do cursor do mouse é instantaneamente selecionada na árvore de janelas.
    • Usar o ícone da janela nas janelas superiores: Se esta opção for selecionada (o padrão), o WinExplorer usa o ícone da janela para representar a janela superior da tela. caso contrário, todas as janelas superiores serão representadas com os mesmos ícones.
    • Atualizar automaticamente a cada X segundos: Se você selecionar esta opção, a árvore do Windows será atualizada automaticamente a cada X segundos.

    Encontrando uma janela com diálogo de localização

    Propriedades da janela

    • Legenda: Ao alterar o texto no campo da legenda e clicar no botão "modificar", a legenda da janela selecionada será modificada instantaneamente.
    • Visível: se você desmarcar esta caixa de seleção, a janela ficará oculta. Se você selecioná-lo, a janela será mostrada na tela.
    • Ativado: Se você desmarcar esta caixa de seleção, a janela será desativada. Se você selecioná-lo, a janela será habilitada.
    • Botão Destruir janela: esta opção permite que você destrua uma janela. Você deve estar ciente de que destruir uma janela de um aplicativo pode causar um comportamento inesperado do aplicativo.
    • Esquerda, Superior, Largura e Altura: Quando você altera os valores desses campos e clica no botão "modificar", o tamanho e a posição da janela são alterados instantaneamente.
    • Estado da janela: Você pode maximizar, minimizar ou alterar para o estado normal da janela clicando na opção certa.
    • Botões de ordem Z: Você pode usar esses botões para "brincar" com a ordem Z das janelas.
    • Para o controle TreeView (e outros novos controles que foram adicionados no Windows 95 / NT), o nome do arquivo da classe é comctl32.dll, porque este módulo cria e mantém o controle TreeView nos sistemas operacionais Windows.
    • Para controles e formulários padrão de aplicativos Visual Basic, o nome do arquivo de classe é msvbvm50.dll ou msvbvm60.dll, dependendo de qual versão do VB o aplicativo foi criado.
    • Se a janela for um controle ActiveX, o nome do arquivo da classe será o arquivo OCX do controle.

    A seção esquerda desta guia representa os bits de estilo padrão para todas as janelas. Os bits de estilo na seção direita representam estilos específicos para cada classe de janela. (Por exemplo: Os estilos de controle de edição padrão são: ES_LEFT, ES_CENTER, ES_RIGHT, ES_MULTILINE, etc.)


    2 respostas 2

    Dependências de sombreamento é o processo de incluindo e renomeando dependências (realocando assim as classes e reescrevendo amp afetados bytecode e recursos amp) para crie uma cópia privada que você agrupa junto com seu próprio código.

    O conceito é geralmente associado a uber-jars (também conhecido como fat jars).

    Há algum confusão sobre o termo, por causa do plugin de sombra maven, que sob aquele único nome faz 2 coisas (citando sua própria página):

    Este plugin fornece a capacidade de empacotar o artefato em um uber-jar, incluindo suas dependências e para sombra - ou seja, renomear - os pacotes de algumas das dependências.

    Então a parte de sombreamento é opcional: o plugin permite incluir dependências em seu jar (jar gordo) e, opcionalmente, renomear (sombrear) dependências.

    Sombrear uma biblioteca é pegar os arquivos de conteúdo dessa biblioteca, colocá-los em seu próprio jar, e mudar seu pacote. Isso é diferente de empacotar, que é simplesmente enviar os arquivos de bibliotecas ao lado de seu próprio frasco, sem realocá-los para um pacote diferente.

    Tecnicamente falando, dependências estão sombreados. Mas é comum referir-se a um jar de gordura com dependências sombreadas como "jar sombreado" e, se esse jar for um cliente de outro sistema, pode ser referido como "cliente sombreado".

    Aqui está o título do problema Jira para HBase que você vinculou em sua pergunta:

    Publique um artefato cliente com dependências sombreadas

    Portanto, neste post estou tentando apresentar os 2 conceitos sem confundi-los.

    O bom

    Os Uber-jars costumam ser usados ​​para enviar um aplicativo como um único arquivo (facilita a implantação e a execução). Eles também podem ser usados ​​para enviar bibliotecas junto com algumas (ou todas) de suas dependências sombreado, para evitar conflitos quando usados ​​por outros aplicativos (que podem usar versões diferentes dessas bibliotecas).

    Existem várias maneiras de construir uber-jars, mas o maven-shadow-plugin vai um passo além com seu recurso de realocação de classe:

    Se o uber JAR for reutilizado como uma dependência de algum outro projeto, a inclusão direta de classes das dependências do artefato no uber JAR pode causar conflitos de carregamento de classe devido a classes duplicadas no caminho da classe. Para resolver esse problema, pode-se realocar as classes que são incluídas no artefato sombreado para criar uma cópia privada de seu bytecode.

    (Nota histórica: Jar Jar Links ofereceu esse recurso de realocação antes)

    Então com isso você pode tornar suas dependências de biblioteca um detalhe de implementação, a menos que você exponha classes dessas bibliotecas em sua API.

    Digamos que eu tenha um projeto, ACME Quantanizer ™, que fornece a classe DecayingSyncQuantanizer e depende do Apache commons-rng (porque é claro para quantanizar adequadamente você precisa de um XorShift1024Star, duh).

    Se eu usar o plug-in shadow maven para produzir um uber-jar e olhar dentro, vejo estes arquivos de classe:

    Agora, se eu usar o recurso de realocação de classe:

    O conteúdo do uber-jar é semelhante a este:

    Não se trata apenas de renomear arquivos, reescreve o bytecode que faz referência a classes realocadas (então, minhas próprias classes e classes comuns do amp são todas transformadas).

    Além disso, o plugin Shade também irá gerar um novo POM (dependency-reduced-pom.xml) em que as dependências sombreadas são removidas da seção & ltdependencies & gt. Isso ajuda a usar o jar sombreado como uma dependência para outro projeto. Portanto, você pode publicar esse jar em vez do de base, ou ambos (usando um qualificador para o jar sombreado).

    Isso pode ser muito útil.

    O mal

    . mas também apresenta uma série de questões. Agregar todas as dependências em um único "namespace" dentro do jar pode ficar confuso e exigir sombreamento e confusão com os recursos.

    Por exemplo: como lidar com arquivos de recursos que incluem nomes de classes ou pacotes? Arquivos de recursos, como descritores de provedor de serviços, todos sob META-INF / services?

    O plug-in de sombra oferece transformadores de recursos que podem ajudar com isso:

    Agregar classes / recursos de vários artefatos em um uber JAR é direto, desde que não haja sobreposição. Caso contrário, é necessário algum tipo de lógica para mesclar recursos de vários JARs. É aqui que os transformadores de recursos entram em ação.

    Mas ainda é confuso e os problemas são quase impossíveis de prever (muitas vezes você descobre os problemas da maneira mais difícil na produção). Veja por que paramos de construir potes de gordura.

    Resumindo, implantar um jar de gordura como um aplicativo / serviço independente ainda é muito comum, você só precisa estar ciente das pegadinhas e, para algumas delas, você pode precisar sombreamento ou outros truques.

    O feio

    Existem muitos problemas mais difíceis (depuração, testabilidade, compatibilidade com OSGi e carregadores de classe exóticos amp.).

    Mas, mais importante, quando você produz uma biblioteca, os vários problemas que você pensou que poderia controlar agora estão ficando infinitamente mais complicados, porque seu jar será usado em muitos contextos diferentes (ao contrário de um jar gordo que você implanta como um aplicativo / serviço autônomo em um ambiente controlado).

    Por exemplo, o ElasticSearch costumava sombrear algumas dependências nos frascos que enviava, mas eles decidiram parar de fazer isso:

    Antes da versão 2.0, Elasticsearch era fornecido como um JAR com algumas (mas não todas) dependências comuns sombreadas e empacotadas dentro do mesmo artefato. Isso ajudou os usuários Java que incorporam Elasticsearch em seus próprios aplicativos para evitar conflitos de versão de módulos como Guava, Joda, Jackson, etc. Claro, ainda havia uma lista de outras dependências sem sombra como Lucene que ainda poderiam causar conflitos.
    Infelizmente, o sombreamento é um processo complexo e sujeito a erros que resolveu problemas para algumas pessoas enquanto criava problemas para outras. O sombreamento torna muito difícil para os desenvolvedores e autores de plug-ins escrever e depurar o código corretamente porque os pacotes são renomeados durante a construção. Por fim, costumávamos testar o Elasticsearch sem sombra e depois enviar o frasco sombreado, e não gostamos de enviar nada que não estamos testando.
    Decidimos enviar Elasticsearch sem sombreamento de 2.0 em diante.

    Observe que eles também se referem a dependências sombreadas, não jarra sombreada


    É importante anotar as regras da convenção de nomenclatura de arquivo para permanecer consistente. Se outras pessoas além de você estão nomeando arquivos, então é duplamente importante documentar a convenção e armazená-la em um lugar fácil de encontrar. Você pode querer incluir esta documentação em um arquivo readme.txt na pasta compartilhada principal.

    Aqui estão dois exemplos de convenções de nomenclatura de arquivos documentadas de nossos parceiros: uma da Comissão Africana de Direitos Humanos e dos Povos (ACHPR) e a outra da Comissão Internacional de Juristas (CIJ).

    Além dos arquivos de texto, você também pode considerar a realização de uma breve sessão de treinamento interno para explicar por que a nova convenção de nomenclatura de arquivo é tão importante de usar e como funciona, ou a criação de um vídeo que aborda os pontos-chave da convenção.


    Assista o vídeo: Introdução Tableau