thegoodfellas/blogset-br huggingface dataset:
jQuery methods, such as .css. So if your plugin doesn't return an intrinsic value, you should always return the this keyword in the immediate scope of the plugin function. Also, as you might assume, arguments you pass in your plugin invocation get passed to the immediate scope of the plugin function. So in the previous example, the string 'width' becomes the type argument for the plugin function. [edit] Defaults and Options For more complex and customizable plugins that provide many options, it's a best practice to have default settings that can get extended (using $.extend) when the plugin is invoked. So instead of calling a plugin with a large number of arguments, you can call it with one argument which is an object literal of the settings you would like to override. Here's how you do it. (function( $ ){ $.fn.tooltip = function( options ) { // Create some defaults, extending them with any options that were provided var settings = $.extend( { 'location' : 'top', 'background-color' : 'blue' }, options); return this.each(function() { // Tooltip plugin code here }); };})( jQuery );$('div').tooltip({ 'location' : 'left'});In this example, after calling the tooltip plugin with the given options, the default location setting gets overridden to become 'left', while the background-color setting remains the default 'blue'. So the final settings object ends up looking like this: { 'location' : 'left', 'background-color' : 'blue'}This is a great way to offer a highly configurable plugin without requiring the developer to define all available options. [edit] Namespacing Properly namespacing your plugin is a very important part of plugin development. Namespacing correctly assures that your plugin will have a very low chance of being overwritten by other plugins or code living on the same page. Namespacing also makes your life easier as a plugin developer because it helps you keep better track of your methods, events and data. [edit] Plugin Methods Under no circumstance should a single plugin ever claim more than one namespace in the jQuery.fn object. (function( $ ){ $.fn.tooltip = function( options ) { // THIS }; $.fn.tooltipShow = function( ) { // IS }; $.fn.tooltipHide = function( ) { // BAD }; $.fn.tooltipUpdate = function( content ) { // !!! };})( jQuery );This is a discouraged because it clutters up the $.fn namespace. To remedy this, you should collect all of your plugin's methods in an object literal and call them by passing the string name of the method to the plugin. (function( $ ){ var methods = { init : function( options ) { // THIS }, show : function( ) { // IS }, hide : function( ) { // GOOD }, update : function( content ) { // !!! } }; $.fn.tooltip = function( method ) { // Method calling logic if ( methods[method] ) { return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 )); } else if ( typeof method === 'object' || ! method ) { return methods.init.apply( this, arguments ); } else { $.error( 'Method ' + method + ' does not exist on jQuery.tooltip' ); } };})(
jQuery );// calls the init method$('div').tooltip(); // calls the init method$('div').tooltip({ foo : 'bar'});// calls the hide method$('div').tooltip('hide'); // calls the update method$('div').tooltip('update', 'This is the new tooltip content!'); This type of plugin architecture allows you to encapsulate all of your methods in the plugin's parent closure, and call them by first passing the string name of the method, and then passing any additional parameters you might need for that method. This type of method encapsulation and architecture is a standard in the jQuery plugin community and it used by countless plugins, including the plugins and widgets in jQueryUI. [edit] Events A lesser known feature of the bind method is that is allows for namespacing of bound events. If your plugin binds an event, its a good practice to namespace it. This way, if you need to unbind it later, you can do so without interfering with other events that might have been bound to the same type of event. You can namespace your events by appending . to the type of event you're binding. (function( $ ){ var methods = { init : function( options ) { return this.each(function(){ $(window).bind('resize.tooltip', methods.reposition); }); }, destroy : function( ) { return this.each(function(){ $(window).unbind('.tooltip'); }) }, reposition : function( ) { // ... }, show : function( ) { // ... }, hide : function( ) { // ... }, update : function( content ) { // ... } }; $.fn.tooltip = function( method ) { if ( methods[method] ) { return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 )); } else if ( typeof method === 'object' || ! method ) { return methods.init.apply( this, arguments ); } else { $.error( 'Method ' + method + ' does not exist on jQuery.tooltip' ); } };})( jQuery );$('#fun').tooltip();// Some time later...$('#fun').tooltip('destroy');In this example, when the tooltip is initialized with the init method, it binds the reposition method to the resize event of the window under the namespace 'tooltip'. Later, if the developer needs to destroy the tooltip, we can unbind the events bound by the plugin by passing its namespace, in this case 'tooltip', to the unbind method. This allows us to safely unbind plugin events without accidentally unbinding events that may have been bound outside of the plugin. [edit] Data Often times in plugin development, you may need to maintain state or check if your plugin has already been initialized on a given element. Using jQuery's data method is a great way to keep track of variables on a per element basis. However, rather than keeping track of a bunch of separate data calls with different names, it's best to use a single object literal to house all of your variables, and access that object by a single data namespace. (function( $ ){ var methods = { init : function( options ) { return this.each(function(){ var $this = $(this), data = $this.data('tooltip'), tooltip = $('', { text : $this.attr('title') }); // If the plugin hasn't been initialized yet if ( ! data ) { /* Do more setup stuff here */ $(this).data('tooltip', { target :
$this, tooltip : tooltip }); } }); }, destroy : function( ) { return this.each(function(){ var $this = $(this), data = $this.data('tooltip'); // Namespacing FTW $(window).unbind('.tooltip'); data.tooltip.remove(); $this.removeData('tooltip'); }) }, reposition : function( ) { // ... }, show : function( ) { // ... }, hide : function( ) { // ... }, update : function( content ) { // ...} }; $.fn.tooltip = function( method ) { if ( methods[method] ) { return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 )); } else if ( typeof method === 'object' || ! method ) { return methods.init.apply( this, arguments ); } else { $.error( 'Method ' + method + ' does not exist on jQuery.tooltip' ); } };})( jQuery );Using data helps you keep track of variables and state across method calls from your plugin. Namespacing your data into one object literal makes it easy to access all of your plugin's properties from one central location, as well as reducing the data namespace which allows for easy removal if need be. [edit] Summary and Best PracticesWriting jQuery plugins allows you to make the most out of the library and abstract your most clever and useful functions out into reusable code that can save you time and make your development even more efficient. Here's a brief summary of the post and what to keep in mind when developing your next jQuery plugin: Always wrap your plugin in a closure: (function( $ ){ /* plugin goes here */ })( jQuery ); Don't redundantly wrap the this keyword in the immediate scope of your plugin's function Unless you're returning an intrinsic value from your plugin, always have your plugin's function return the this keyword to maintain chainability. Rather than requiring a lengthy amount of arguments, pass your plugin settings in an object literal that can be extended over the plugin's defaults. Don't clutter the jQuery.fn object with more than one namespace per plugin. Always namespace your methods, events and data. jQuery.fn is pronounced jQuery effin'
biestavel interno e a saida.3OUTDurante um intervalo de tempo, a saida (out) permanece em +VCC.4RESETUm intervalo de temporizacao pode ser interrompido pela aplicacao de um pulso de reset.5CVTensao de controle (control voltage) - Permite acesso ao divisor interno de tensao (2/3 VCC).6THRESLimiar (threshold) - Um valor de tensao alto (> 2/3 Vcc) neste terminal desactiva o biestavel interno e a saida.7DISCHDescarga (discharge) - A sua funcao e descarregar o capacitor conectado a este terminal.8V+, VCCA tensao (voltage) positiva da fonte, que deve estar entre +5 e +15V.Usando apenas um capacitor e um resistor, o intervalo de temporizacao, ou seja, o tempo durante o qual a saida permanece em nivel baixo, pode ser ajustado de acordo com a necessidade de cada aplicacao. Um exemplo de configuracao e mostrado abaixo:Exemplo esquematico CI 555o intervalo de tempo t e dado por:onde t e o tempo que leva para carregar o capacitor C a 63 % da tensao aplicadaEspecificacoesEstas especificacoes aplicam-se ao NE555. Outros temporizadores 555 podem ter parametros diferenciados dependendo do uso a que se destinam (uso militar, medico, etc).ParametroValor(es)Tensao de alimentacao (VCC)4.5 ate 15 VCorrente de alimentacao (VCC = +5 V)3 ate 6 mACorrente de alimentacao (VCC = +15 V)10 ate 15 mACorrente de saida (maxima)200 mADissipacao de potencia600 mWTemperatura de Operacao0 ate 70 CVariantesMuitas variantes foram desenvolvidas por varios fabricantes. O 555 e tambem conhecido sob as seguintes siglas:FabricantesModeloECG PhilipsECG955MExarXR-555FairchildNE555 / KA555HarrisHA555IntersilSE555 / NE555Lithic SystemsLC555MaximICM7555MotorolaMC1455 / MC1555NationalLM1455 / LM555 / LM555C / LMC555NTE SylvaniaNTE955MRaytheonRM555 / RC555RCACA555 / CA555CSanyoLC7555Texas InstrumentsSN52555 / SN72555
na Idade Media...""Gozado! Foi so voce falar em ratos pra eu me lembrar do sonho que tive outro dia. Uma loucura! Imagine um cachorro vira-latas conversando com um rato, numa rua escura! E voce precisava ver so a conversa deles!""Nao tenho a menor duvida: discutiam certamente o tipo predileto de lata de lixo...""Corta essa, Ze: e a coisa mais profunda do que voce pensa! Em meu sonho, o cao se queixava ao rato dos seres humanos que o haviam abandonado. Espere um pouco, deixe-me tentar lembrar as palavras exatas do dialogo... E isso mesmo, agora me lembro. Dizia o rato: 'os seres humanos sao muito estranhos. O homem nos deu o nome de animais, mas na verdade, e o proprio homem que age como animal, pois nao sabe se conduzir em seu proprio mundo, nem com os de sua propria especie. E engracado, o homem sempre tentou nos destruir inventando tudo quanto e mecanismo e veneno, mas nada conseguiu. Sabe por que? Porque nos, os ratos, somos a propria imagem do homem. Nossos antepassados vivem com o homem desde que ele apareceu na terra. Somos destruidores como o homem, astutos como o homem, vorazes como o homem. Os seres humanos conhecem grande parte de nossos habitos, porem desconhecem nossas origens, que permanecem ainda, para o homem, obscuras no tempo, pois somos anteriores ao proprio homem, trazidos por seres do espaco para que vigiassemos a evolucao do homem, ja que nossa missao e a de destruir a raca humana e impedir que seres humanos evoluidos, mas igualmente degenerados, se apoderem pouco a pouco de todo o Universo, destruindo todas as formas de vida...""...pelo visto, ja comecaram a destruicao roendo a fiacao de televisores", interrompeu Ze Maria. O ar sardonico habitual mal dava para disfarcar o medo que o rapaz sentia, sempre que alguem falava em espaco ou seres de outros mundos. Nao obstante, olhando de soslaio para o companheiro, aguardou a continuacao da estoria.'...destruiremos a raca humana lentamente, espalhando toda sorte de doencas, ate que haja o aniquilamento total da especie. Essa e a nossa missao aqui: destruir o homem, caso ele nao se destrua a si mesmo, pois nao estando preparado para travar conhecimento com outros mundos, outras inteligencias, iria tentar destrui-los. Quando o homem nao mais existir na Terra, os seres que nos trouxeram regressarao, espalharao novas sementes e surgira a nova Humanidade, que evoluira normalmente e chegara a conhecer suas origens, pois seus criadores sao eternos e o homem por sua vez espalhara suas sementes pelo Universo. Como voce ve, completou o rato, nao estamos realmente destruindo a raca humana, mas salvando-a...'Ze maria, que estivera rabiscando o tempo todo, fingindo nao estar prestando atencao a conversa do companheiro, passou-lhe um pedaco de papel."Que e isso?""O raio do estagio de alta. Enquanto voce falava de ratos, caes e outros bichos, eu copiei o circuito diretamente do chassi.""Bem, agora a gente ja pode raciocinar melhor", disse Carlito, ligando o televisor e examinando o circuito, enquanto aguardava o aquecimento das valvulas.De Casos de TVKX"Veja so isto, Ze: a placa da PL36, saida horizontal,
aparelho?""Pode", concordou Carlito, nao muito seguro.Sintonizado o televisor, surgiu na tela do cinescopio uma imagem em negativo e com ausencia total de sincronismo."Nao te falei?", fez Ze maria."Nao te falei, o que? O que tem a imagem negativa a ver com o circuito de M.A.T.? Esta tal de montagem particular e uma boa bomba, isso e que e! O televisor esta cheio de defeitos!""Cheios nao! Por enquanto, esta so e com imagem negativa...""Vamos dar jeito nisso ja. Onde e que voce comecaria a procurar a causa, Ze?""Tubo"."Pode ser. Mas vamos supor que o cinescopio esteja bom. E e bom que esteja, porque, caso contrario, vamos acabar aproveitando so a caixa desta coisa!""Se o tubo esta bom, a gente comeca a verificar o detector de video. Isso pode ser feito ja com o ohmimetro", fez Ze Maria, medindo rapidamente a resistencia direta e inversa do diodo detector."E entao?", perguntou Carlito."O diodo esta bom. A relacao alta/baixa e de mais ou menos 1.000:1. So pra variar, alias. E agora embatuquei. Nao tenho a minima ideia do que fazer, ja que o tubo foi considerado bom...""Relacao alta/baixa! Voce anda muito tecnico ultimamente, Ze Maria! Acho que sei o que voce quis dizer, mas gostaria de saber o porque dessa sofisticacao verbalistica...""Ora, e muito simples! Eu disse apenas que, para cada ohm de resistencia num sentido, ha 1.000 ohms de resistencia no outro. Caso contrario, seria preciso fatalmente substituir o diodo.""Voce anda muito otimo , meu caro colega! Bem, ainda temos alguns pontos a verificar. Vamos continuar considerando o cinescopio como bom. Mesmo porque, quando o suspeito e o tubo, um dos sintomas e que a imagem fica assim com um aspecto prateado, o que nao e o caso. O negativo ai nao tem nada de prateado. Outro ponto que voce nao levou em conta em seu exame, seria o caso de alguma valvula estar com o vacuo imperfeito. E claro que o cinescopio, por ser uma valvula, poderia tambem estar com vacuo imperfeito e ser ele proprio o causador do defeito. Mas, vamos supor que nao. Entao, como disse, uma valvula nessas condicoes, no canal de F.I., por exemplo, poderia estar causando o defeito. Tal valvula estaria apresentando um brilho azulado no interior e o contraste da imagem iria variar constantemente, o que tambem nao e o caso. O brilho de todas as valvulas que conduzem o sinal esta normal, e nao se pode verificar o contraste com essa imagem negativa...""Mas entao..""Calma, estou tentando chegar a algum lugar, Ze! Vamos continuar o raciocinio: uma imagem torna-se negativa com ausencia total de sincronismo, como e logico, porque a fase do sinal deve estar invertida. Isto vem colocar o nosso tubinho de imagem fora de suspeitas, em principio. Sim, porque se fosse ele o causador, como e que iria mexer nos pulsos de sincronismo, extraidos que sao na saida do detector ou do amplificador de video, localizados antes do cinescopio? Entao, ja temos onde procurar sintomas visuais e aqui esta um deles que, alias, alem de visual e tambem tatil: a V5 esta quente demais e com
brilho excessivo, Minto: quente nao, esta pelando!", disse Carlito, retirando a segunda amplificadora de video e som, com o auxilio de uma flanela. Substituiu a valvula, voltou a ligar o aparelho e la surgiu novamente a imagem negativa sem sincronismo. O rapaz assobiou de puro desespero. Acalmando-se, apanhou o voltimetro e passou a fazer medicoes no suporte da valvula."Bem, aqui temos coisa: a tensao de placa e grade de blindagem desta segunda amplificadora de F.I. parece baixa, mas 4,5V nesse catodo esta muito alto e da o que pensar!""vai ver a grade esta com positiva!", observou Ze Maria, mais animado."Sera? E o que iria jogar tensao positiva nessa grade? So se o secundario da caneca de F.I. estiver em curto com o primario!" Mas apos a verificacao com o ohmimetro, Carlito constatou que os enrolamentos estavam perfeitamente isolados entre si. Nao havia outra explicacao para o fenomeno, que nao fosse talvez um sinal com amplitude excessiva. Decidiu, entao, fazer medicoes no estagio anterior, valvula EF184. Mal o rapaz aplicou a ponta de prova na placa da 2a. valvula amplificadora de F.I., a imagem ficou normal. Retirando a ponta de prova, a imagem voltava a ficar negativa."Sera que estou ficando maluco?" E Carlito voltou a aplicar e a retirar a ponta de prova do voltimetro da placa da valvula. A Imagem, obedientemente, apresentava-se normal e sincronizada, ou entao, negativa e sem sincronismo."Que diabo sera isso?", perguntou Ze Maria."Bem, ha uma hipotese, que e um tiro no escuro: o que aconteceria se essa valvula oscilando em contrafase com a tensao de F.I.?""Assim como num oscilador?""Mais ou menos.""Uai, as duas tensoes se somavam ou subtraiam, ne?""Somavam e formavam outra onda de mesma frequencia, mas com modulacao negativa!""Mas, como e que a gente vai parar a oscilacao? Isso, claro, se voce estiver com a razao!""Facil. Voce ja reparou num resistorzinho que costuma ficar ligado em serie com a grade de controle da amplificadora de video ou valvula de saida horizontal em alguns circuitos? Pois bem, ele esta ali nao e pra enfeitar, e pra impedir que a valvula oscile. Logo...""...Logo, vamos botar um resistor de 100 ohms em serie com a grade da EF184 e pronto!", interrompeu Ze Maria com entusiasmo."Sim, so que um pouquinho maior. Uns 3Kohms ai devem funcionar direitinho! E a proposito, Ze Maria: que tal copiar este circuito, sem maiores detalhes, assinalando o problema so para nosso fichario, hein?""Eu sabia que, no final, a bomba estouraria na minha mao", reclamou Ze Maria. No entanto, depois de ligar o resistor em serie com a valvula, o rapaz copiou rapidamente o segundo e terceiro estagios de F.I. de video e som, que os rapazes passaram a examinar, ainda um tanto incredulos da "facanha", ao constatar que a imagem na tela do cinescopio se apresentava agora nitida e perfeitamente sincronizada.De Casos de TVKXCarlito, apos uma olhadela no relogio de pulso, comecou a por as ferramentas em ordem e a guardar componentes e solda nas respectivas gavetas. Ze Maria o observava com estranheza."Ja vai se mandar?""Claro!""Claro como? E o segundo expediente?""Bem, hoje eu vim so pra
dizer que, nesses primeiros tempos, vou trabalhar so meio expediente. Nao posso ainda trabalhar tempo integral, sabe como e. Nao e bem uma volta ao batente, mas uma especie de retorno tecnico, pra nao ficar de todo enferrujado, enquanto termino o tratamento de lab...""..Labirutice?""Mais ou menos", fez Carlito, com um sorriso. "Mas e por pouco tempo so. Amanha estarei de volta para tira-lo de novas enrascadas, ta?"ooo--o-- (OR 939)------------------------------------------------------------------------------------------------
do tempo, o windows comecou a ficar entediante, devido a estar sempre pedindo atualizacoes de seguranca, que a cada uma, deixava o sistema lento e vagaroso demais. Era so deixar a internet ligada que o tio bill ja arrumava uma atualizacao nova.Em 2006, conheci, atraves do site Guia do Hardware, uma secao dedicada ao kurumin, distribuida pelo Sr. Morimoto, ao qual tenho alguns livros de sua autoria sobre ambiente LINUX. Apos o download do pacote ISO do kurumin, gravei no CD e resolvi usa-lo em minha maquina.Nao posso negar que o kurumin me ajudou bastante nas tarefas de "consertar" coisas que o windows fazia questao de "estragar". Tive a ousadia de particionar o meu HD e fazer dual boot, aonde rodavam o WinXP e o kurumin. Assim poderia treinar mais em LINUX e conhecer seus comandos atraves do terminal proprio do sistema. Era interessante e ao mesmo tempo dificultoso mas, quando funcionava, deixava o ego um pouco mais inflado, em contrapartida, quando apresentava erros "estranhos" causava uma certa frustracao embora isso deva servir de estimulo para que o sistema seja aperfeicoado, uma vez que existem varias distros para o kernel do linux. Fiquei triste com a interrupcao do kurumin em 2007/08 mas, resolvi encarar outro live cd, desta vez o UBUNTU, em 2009. Consegui o LiveCD e passei a estudar mais sobre ambiente operacional linux. Eu comecei a pesquisar outras distros, entre elas a conectiva, que tempos depois de uniu ao mandrake e resultou no mandriva, a openSUSE, fedora, BIGLinux ente outras. Na verdade eu tenho varios cd s e dvd s gravados com LINUX, a qual usei todos.Tenho notado que ha bases de distribuicao, sendo a mais conhecida a DEBIAN, o kurumin usa o KNOPPIX, mandriva o REDHAT, SLACKWARE... e assim sucessivamente conforme a distribuicao. Nao entendi ainda o porque, mas, cada uma tem sua funcao e nao e meu objetivo explanar aqui.Em minha opiniao, como desenvolvedor, o windows ainda e o melhor e mais pratico de usar, alem de ter varios e varios programas para uso profissional e diversao, facilidade de instalacao e drivers a perder de vista. Em materia de seguranca, o windows deixa muito a desejar uma vez que codigos maliciosos podem se infiltrar e permanecerem ocultos, interferindo e ate mesmo roubando dados importantes do usuario.Ja o linux e seguro demais, impede ate do usuario executar determinadas tarefas, eu sou prova disto, ja que tenho muitas dificuldades para instalar programas, ou pacotes, como orientado nas distros. Em minha tentativa de instalar o UBUNTU 13.04 em minha maquina, tive uma surpresa nada agradavel, minha placa de video onboard e o chipset SIS661FX mirage e nao consegui instalar. Tive de recorrer a versoes mais antigas do UBUNTU que foi a 11.10, que instalou normal e demoradamente mas funcionou, apos eu atualizei para a versao Ubuntu 12.04 Precise Pangolin, que tambem esta funcionando. A maior dificuldade e a de instalar pacotes, pois tem um repositorio especifico e recomendado pelos desenvolvedores. So que leva um tempo enorme para que se instale pequenos programas. Ainda estou trabalhando no linux e aprendo cada vez
mais a medida que uso o sistema, de fato e divertido e curioso aprender a usar.Uma das coisas que aprendi no linux e que ele e poderoso como servidor, tem uma plataforma segura e eficiente, embora nada amigavel no que se envolve a configuracao, porem nada impossivel de se realizar. Eu pretendo implantar uma maquina dedicada com ambiente operacional linux e usufruir de sua seguranca e estabilidade aqui no laboratorio.Vou trazendo mais e mais informacoes sobre minha experiencia com linux, sei que unindo nosso conhecimento chegaremos ao limiar da funcionalidade e eficiencia!