Jump to content

leosbotelho

Members
  • Content count

    12
  • Joined

  • Last visited

Community Reputation

1 Comum

About leosbotelho

Recent Profile Visitors

230 profile views
  1. leosbotelho

    Converter código em C/C++ para Javascript

    Fix: 110,112c110 < const c = Math.ceil(Math.log10(n)/Math.log10(y)); < < return (c < groups.length) ? --- > return (n < y) ? 118,119c116,117 < `${c+1} digits group supplied.` < )); --- > `${n} supplied.` > ));
  2. leosbotelho

    [Resolvido] Dúvida básica de foreach

    A referência em "aplicações temporais de RDBMS/SQL": https://www.amazon.com/Developing-Time-Oriented-Database-Applications-Management/dp/1558604367 Você também pode usar um "banco de dados temporal/de séries temporais" se quiser.
  3. leosbotelho

    Apontamento CNAME de domínios para url amigável

    CNAME é a nível da resolução de nomes de dominíos, -no [protocolo de comunicação] HTTP- o header Host vai apontar pro alias do seu CNAME (i.e o que foi digitado na barra de endereços). Aponta o alias e processa esse header na implementação da funcionalidade/comportamento intendido.Simples. Haveria alguma dúvida de como fazer isso em ASP ou alguma stack específica? P.s Não fez muito sentido o que você falou.Tá pensando sem base conceitual alguma. "fazer DNS reverso [sic] no domínio [sic] que está acessando o código fonte [sic] e com isso conseguir pegar o código de identificação inserido em um registro CNAME [sic] nesse domínio [sic]" [sic] "Remendo": "fazer DNS reverso [sic] no domínio [cliente] que está acessando o código fonte [a aplicação] e com isso conseguir pegar o código de identificação inserido [sic] em um registro CNAME [sic] nesse domínio [para/associados a esse domínio]" Não quero me extender mais.
  4. leosbotelho

    Converter código em C/C++ para Javascript

    //showcase const f = B(capitalize)(numToNameFn['pt-BR']); const print = window.alert; const num = Number(prompt('Digite um numero: ')); try { print(f(num)); } catch(e) { print(e.message); }
  5. leosbotelho

    Falha ao final do slide show

    Era só checar o "console": setTimeout(startslider(), 2000); Tá chamando startslider recursivamente/infinitamente, o correto é passar uma referência da função (i.e "f" (referencia) vs f() (chamada de função)). Erros assim, é melhor você lidar e estudar, revisar o material/fundamentos quando necessário.
  6. leosbotelho

    Falha ao final do slide show

    Por causa do condicional: if(!$(ativa).next().length) { //... } Se você manteve a nav, isso vai ser verdadeiro quando ativa = ultimo slide. Tem que refatorar.Uma possibilidade é usar um seletor de "slides" ali no next: if(!$(ativa).next('.slide').length) { //... } Fora isso, seria melhor usar só o DOM (e.g, sem a váriavel blocos) pro "controle das manipulações" ou compartimentalizar isso melhor.
  7. leosbotelho

    Falha ao final do slide show

    Danoninho: Deixa só "os slides" no elemento do slider (coloca a nav em outro nodo pra esse fim). Ou muda seu seletor pra filtrar só os slides, i.e: .slider > .slide.ativa ou .slider .slide.ativa
  8. leosbotelho

    Falha ao final do slide show

    https://api.jquery.com/next/ O sibling imediato/mais próximo do último elemento da div do slider é o <nav>...</nav>, no seu código.Veja: <div class="slider"> <div class="slide fade ativa"> <img src="http://funerariasaopedro.net.br/novo/_img/_banner/_site/bg_1.jpg" /> <span>Este é 1</span> </div> <div class="slide fade"> <img src="http://funerariasaopedro.net.br/novo/_img/_banner/_site/bg_2.jpg" /> <span>Este é 2</span> </div> <nav> <button class="anterior">Anterior</button> <button class="proximo">Próximo</button> </nav> </div> ativa = $("div.slider > div.ativa") //suponha ativa = div "Este é o 2" //então, $(ativa).next() aponta pra nav, o ultimo elemento if (!$(ativa).next().length) { //tem proximo elemento (a nav), nao cai aqui ativa = blocos[0] } $(ativa) .removeClass("ativa") //desativa slide atual .next() //nav .addClass("ativa") Entendeu?
  9. leosbotelho

    Calculo Javascript[RESOLVIDO]

    Veja: '1,2'.replace(',', '.'); //1.2 '1,2,3'.replace(',', '.'); //1.2.3 '1.2.3,4,5'.replace(',', '.'); //1.2.3.4.5 No JavaScript o . -nesse contexto de sintaxe [de primitivas numéricas] da linguagem- é usado como separador decimal.Mais de um separador decimal pra um número não faz sentido, e logo só 1.2 é um número válido/bem representado: Number('1.2'); //1.2 Number('1.2.3'); //NaN Number('1.2.3.4.5'); //NaN *NaN é um acrônimo de "Not a Number" (i.e "não é um número"). Você converte mult pra uma string representando um número inteiro (e.g valor). Ao usar esse valor em uma operação matemática, o JS tenta automaticamente converter ele -de String- pra um Number e o NaN indica que essa conversão é malsucedida (i.e múltiplos separadores decimais pra um só número). Sua função de conversão (de mult pra valor) poderia ser: //... const valor = mult.replace('.', '').replace(',', '.'); pra formatações/casos simples.
  10. leosbotelho

    React Redux com Material-UI para web

    Por enquanto sim, parece suportar o IE11. Dá, também, pra abordar a compatibilidade com browsers na compilação (e.g transpilação, bundling) do seu projeto e com uns toques manuais (e.g shims, polyfills, fallbacks, configuração específica).Se bem que nesse caso não é necessário. Com o JS, Babel + Brunch podem ajudar bastante. Com o CSS, talvez Sass. E essa lista: https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills E o IE tem menos de 2% de market share aqui no Brasil, analisa quanto vale a pena se preocupar -com ele-.
  11. leosbotelho

    Converter código em C/C++ para Javascript

    ES6+, minha versão: const numToNamesDict = { 'pt-BR': new Map(Object.entries({ 'groups': [ [ 'um', 'dois', 'tres', 'quatro', 'cinco', 'seis', 'sete', 'oito', 'nove' ], [ 'dez', 'vinte', 'trinta', 'quarenta', 'cinquenta', 'sessenta', 'setenta', 'oitenta', 'noventa' ], [ 'cento', 'duzentos', 'trezentos', 'quatrocentos', 'quinhentos', 'seiscentos', 'setecentos', 'oitocentos', 'novecentos' ], ], 'large-groups': [ ['', ''], ['mil', 'mil'], ['milhao', 'milhoes'], ['bilhao', 'bilhoes'], ['trilhao', 'trilhoes'] ], 'group-sep': ' e ', 'large-group-inner-sep': ' ', 'large-group-outer-sep': ', ', 'large-group-outer-sep-distinct': ' e ', 'fixed': new Map([ [0, 'zero'], [100, 'cem'] ]), 'fixed-pieces': new Map([ [11, 'onze'], [12, 'doze'], [13, 'treze'], [14, 'quatorze'], [15, 'quinze'], [16, 'dezesseis'], [17, 'dezessete'], [18, 'dezoito'], [19, 'dezenove'] ]), 'positive': '', 'negative': ' negativo' })) }; const flatten = xss => [].concat.apply([], xss); const _throw = x => {throw x}; const _validate = (x, y) => !(Number.isInteger(x) && Number.isInteger(y) && !(x === 1 && y === 1) && y > 0 && x >= 0) && _throw(new Error(`Invalid nums supplied: ${x}, ${y}`)); const divMod = (x, y) => [Math.trunc(x/y), x%y]; function* _splitNum(x, y) { const [d, m] = divMod(x, y); if(d === 0) { yield x; } else { yield m; yield* _splitNum(d, y); } } function* splitNum(x, y) { _validate(x, y); yield* _splitNum(x, y); } const groupToName = dict => y => n => { _validate(n, y); const groups = dict.get('groups'); const fixed = dict.get('fixed'); const fixedPieces = dict.get('fixed-pieces'); if(fixed.has(n)) { return fixed.get(n); } const f = (i, y, n) => { const y1 = Math.trunc(y/10); const [d, m] = divMod(n, y1); return (d === 0 ? [] : d <= groups[i-1].length ? [groups[i-1][d-1]] : _throw(new RangeError( `The digit ${d} is not defined in the ${i}-th group` )) ).concat( fixedPieces.has(m) ? fixedPieces.get(m) : (m !== 0 ? f(i-1, y1, m) : []) ); }; return (n < y) ? f(groups.length, y, n).join(dict.get('group-sep')) : _throw(new RangeError( `Groups must have at most ${groups.length} digits, ` + `${n} supplied.` )); }; const numToNameIntermediate = dict => y => n => { const largeGroups = dict.get('large-groups'); const groupToName_ = groupToName(dict)(y); const xs = Array.from(splitNum(n, y)); return (xs.length <= largeGroups.length) ? xs.reduce((r, x, i) => r.concat([ [x, groupToName_(x), largeGroups[i]] ]) , []).reverse() : _throw(new RangeError( `The ${xs.length} large-group is not defined.` )); }; const _numToName = dict => y => n => { if(n === 0) { return ['', dict.get('fixed').get(0), '', '']; } const innerSep = dict.get('large-group-inner-sep'); const outerSep = [ dict.get('large-group-outer-sep'), dict.get('large-group-outer-sep-distinct') ]; const y1 = Math.trunc(y/10); return numToNameIntermediate(dict)(y)(n).map(z => { const v = z[0]; const m = v%y1; return v === 0 ? ['', ''] : [ outerSep[(m === 0 || v < y1) ? 1 : 0], z[1], innerSep, z[2][(m > 1) ? 1 : 0] ]; }); }; const numToName = dict => y => n => flatten(_numToName(dict)(y)(Math.abs(n))).slice(1, -2).join('').concat( (n >= 0) ? dict.get('positive') : dict.get('negative') ); const numToNameFn = { 'pt-BR': numToName(numToNamesDict['pt-BR'])(1000) }; const capitalize = s => s.charAt(0).toUpperCase() + s.slice(1); //B combinator const B = f => g => x => f(g(x)); //showcase const f = B(capitalize)(numToNameFn['pt-BR']); const print = console.log; const nums = [0, 1, 10, 13, 100, 123, 321, 111, 333, 777, 910, -1]; nums.forEach(B(print)(f)); /** * Ouputs: Zero Um Dez Treze Cem Cento e vinte e tres Trezentos e vinte e um Cento e onze Trezentos e trinta e tres Setecentos e setenta e sete Novecentos e dez Um negativo **/
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.