Comentários do Blog

  1. Avatar de ksombrah
    Olá estou tentando bloquear os downloads de um webmail específico, pesquisando cheguei nesse script:
    for i in 172.217.1.110 216.239.32.10 216.239.34.10 216.239.36.10 216.239.38.10 142.251.16.26 142.251.16.27 142.251.163.26 142.251.163.27 142.251.167.26
    do
    iptables -A INPUT -p tcp -d $i --dport 80 -m string --string "Content-Disposition: attachment;" --algo bm -j DROP
    iptables -A INPUT -p tcp -d $i --dport 80 -m string --string "Content-Disposition: attachment;" --algo bm -j REJECT
    iptables -A INPUT -p tcp -d $i --dport 443 -m string --string "Content-Disposition: attachment;" --algo bm -j DROP
    iptables -A INPUT -p tcp -d $i --dport 443 -m string --string "Content-Disposition: attachment;" --algo bm -j REJECT
    iptables -A FORWARD -p tcp -d $i --dport 80 -m string --string "Content-Disposition: attachment;" --algo bm -j DROP
    iptables -A FORWARD -p tcp -d $i --dport 80 -m string --string "Content-Disposition: attachment;" --algo bm -j REJECT
    iptables -A FORWARD -p tcp -d $i --dport 443 -m string --string "Content-Disposition: attachment;" --algo bm -j DROP
    iptables -A FORWARD -p tcp -d $i --dport 443 -m string --string "Content-Disposition: attachment;" --algo bm -j REJECT
    done
    Mas não está funcionando, alguma idéia?
  2. Avatar de hantersoul
    me add no msn ([email protected])
  3. Avatar de hantersoul
    tenho a solução para clonagem de mac definitiva
  4. Avatar de jucaross
    Olá para todos!

    Eu estou tentando alterar o time-slice (quantum) do escalonamento Round-Robin por meio dos padrões POSIX.

    Até o momento consegui achar isto:
    - sched_rr_get_interval(0, &timeTrigger);
    Onde:
    - 0 é o processo corrente;
    - &timeTrigger é uma referência a um timespec configurado com 2 segundos.

    Mas não funcionou.

    Aqui vai o código:

    #include "RoundRobin.h"
    #include <pthread.h>
    #include <sched.h>
    #include <cstdlib>
    #include <iostream>
    #include <sys/time.h>
    #include <unistd.h>

    #define NUM_PTHREADS 2
    #define MICRO_PER_SECOND 1000000

    struct timeval now, start, stop;
    struct timespec timeTrigger, timeCondition;

    pthread_t myPthreads[NUM_PTHREADS];
    pthread_mutex_t myMutex = PTHREAD_MUTEX_INITIALIZER;
    pthread_attr_t myAttr;

    using namespace std;

    void *Work (void *ptr){
    int i = (int) ptr;

    pthread_mutex_lock(&myMutex);

    cout << "\nPrinting PThread" << i << endl;
    for(int j=1;j <= 6; j++){
    cout << j << " ";
    sleep(1);
    }

    pthread_mutex_unlock(&myMutex);

    return NULL;
    }

    RoundRobin::RoundRobin() {
    // TODO Auto-generated constructor stub

    }

    RoundRobin::~RoundRobin() {
    // TODO Auto-generated destructor stub
    }

    void RoundRobin::CriaPThreads(){

    int resultOfCreatePthread=0;

    gettimeofday(&now, NULL);
    timeTrigger.tv_sec = now.tv_sec + 2;

    pthread_cond_init(&myCond, NULL);
    pthread_attr_init(&myAttr);
    pthread_attr_setschedpolicy(&myAttr, SCHED_RR);
    pthread_attr_setinheritsched(&myAttr, PTHREAD_EXPLICIT_SCHED);

    sched_rr_get_interval(getpid(), &timeTrigger);

    for (int i=1; i <= NUM_PTHREADS; i++){
    resultOfCreatePthread = pthread_create(&myPthreads[i], &myAttr,
    Work, (void *)i);
    if (resultOfCreatePthread != 0)
    cout << "PThread " << i << ": Impossible to create." << endl;
    }
    }

    void RoundRobin::AguardaFinalizacaoPthread(){

    for (int i=1; i <= NUM_PTHREADS; i++)
    pthread_join(myPthreads[i], NULL);

    pthread_attr_destroy(&myAttr);
    pthread_mutex_destroy(&myMutex);
    }

    Eu gostaria de configurar algumas PThreads e quando a primeira alcançar o time-slice (quantum), a segunda toma a CPU e a primeira vá para o fim da fila.

    Sei que isso é exatamente o escalonamento Round-Robin.
    Mas eu preciso fazer isso utilizando POSIX.

    Obrigado desde já!
  5. Avatar de jucaross
    cara, seu post é realmente muito bom, pois achei explicações que não havia encontrado ainda sobre POSIX. Mas eu gostaria de pedir tua ajuda:

    Possuo uma classe que cria os atributos de prioridade, escalonamento, escopo, etc.
    O problema é que estou tentando fazer um estudo de caso tipo uma equação:

    A=1+1;
    B=A+5;
    C=B+6

    Agradeço dede já.

    flw!
  6. Avatar de PEdroArthurJEdi
    @andersoncic

    Em qualquer livro de sistemas operacionais você consegue essa resposta. Pega o Tanenbaum que está nas referências do artigo. Ele é bem conciso e detalhado.
  7. Avatar de andersoncic
    Considere um sistema no qual se deseja separar a política e o mecanismo para o algoritmo de escalonamento dos threads de núcleo. Proponha um meio de chegar a esse objetivo?..:p
  8. Avatar de tuxdahora
    Mas é impossível (na minha visão, é claro :-D que o LaTeX seja sequer parecido com HTML, ou qualquer outra linguagem de marcação. O código-fonte em linguagem LaTeX precisa ser compilado, pelo (sendo redundante) compilador do LaTeX. E esse mesmo compilador é quem gera os vários arquivos de saída, como resultado do processo. E um desses arquivos de saída será o que nos interessa: o seu "executável".

    As instruções dentro de um arquivo-fonte LaTeX estão longe de serem simples marcações passíveis de interpretação. Além de sua utilização ser muito mais ampla (e complexa) que numa linguagem de marcação "tradicional", é preciso um processo de compilação dessas instruções para a geração de um executável. E como o arquivo executável gerado na compilação do arquivo-fonte em LaTeX é bem peculiar (no caso, é gerado um arquivo executável que é uma apresentação gráfica de um documento, em um formato de arquivo hoje em dia muito pouco utilizado), eu não poderia simplesmente chamar o LaTeX de Linguagem de Programação. Por isso resolvi chamá-lo de um Programador de Textos.

    Veja bem: desde o mais simples exemplo de arquivo-fonte LaTeX. até o mais complexo, ao compilá-lo, se o mesmo possuir erros, o compilador interromperá o processo, indicará (da maneira dele) onde estaria o erro e qual seria ele, e você teria duas opções: (1) aplicar comandos nessa interação com o compilador para resolver o problema ou; (2) interromper o processo de compilação e ir direto ao arquivo-fonte para consertar o(s) erro(s), e, posteriormente, re-compilá-lo. Uma linguagem de marcação não precisa de um compilador, o LaTeX sim!

    Voltando ao exemplo abstrato, se você esquecer, ou colocar em um lugar errado, uma chave, um colchete, um parêntese, um "&", um "%", um "@", um ">", ou mesmo uma barra "\" , o compilador interromperá o processo, indicará os possíveis problemas, e cabe a você resolvê-los antes de terminar o processo (ou iniciar um novo processo de) compilação, posteriormente.

    Para aumentar mais ainda a similaridade do LaTeX com uma linguagem de programação como C, C++ ou Java, os erros costumam ser razoavelmente parecidos. Claro que você não vai encontrar instruções como IFs e WHILEs da vida. Pelo menos não como o povo está acostumado a ver nas linguagens de programação e de scripts das mais comuns (o poder das "macros" no LaTeX é fora-de-série). E acredite, você pode fazer programas interativos com LaTeX sim!! São resursos muito pouco (ou quase nada) utilizados, que dão ao LaTeX poder suficiente para você fazer "o que quiser" dele (e ter algo muito além de um simples gerador de textos profissional). Você pode fazer contas, criar jogos ou interfaces interativas, e por aí vai. Claro que hoje em dia é muito mais útil fazer toda essa interatividade em linguagens de programação ou scripts da vida, que em LateX :-) Nem se compara... :-D

    E o que ele não tem de "comum" em uma linguagem de programação, ele tem de avançado com o uso de "pacotes" que lhe permitem fazer de tudo com ele (desde fantásticos gráficos e fluxogramas, até ilustrações vetoriais, passando por criação de fontes de texto, estruturas químicas complexas e mais uma infinidade de possibilidades). Você poderia até mesmo compará-los às bibliotecas. Mas o seu uso e função são levemente diferentes.

    Comparado com o LaTeX, uma linguagem de marcação não chega nem aos pés em possibilidades (talvez se você juntar todas as linguagens de marcação, e todos os seus interpretadores, você consiga uma faixa bem próxima de possibilidades de uso).

    E agora, respondendo a suas perguntas:

    "Se eu tivesse um compilador HTML -> PDF, o HTML também deixaria de ser uma linguagem de marcação?"

    Resposta: Não, pois não é o próprio HTML que irá compilar seu código e gerar um PDF. Você, possivelmente, usará linguagem de programação ou script à parte para isso. E isso qualquer um pode montar à parte, na linguagem que quiser e pra fazer o que bem entender.
    "O browser não seria uma espécie de interpretador de código? Ou seja, essa situação não seria análoga a programas compilados e interpretados?"

    Resposta: Não necessariamente. E essa resposta tem muito do conteúdo da primeira resposta que fiz aqui. Se compararmos um navegador com um interpretador, não poderíamos associá-lo a um compilador, pois o processo não é um motor auto-HTML. Você possui um sistema/programa à parte (no caso o navegador), feito em uma linguagem de programação ou script à parte (C, C++, etc), para te permitir interpretar determinada linguagem de marcação. O caso do LaTeX é diferente: ele possui compilador próprio que processa o código-fonte e gera uma pá de arquivos diferentes e úteis (e quanto mais complexo é seu arquivo-fonte LaTeX, maior será o número de arquivos úteis de saída da compilação). E, após a compilação, o que você vai precisar usar de imediato é o arquivo "executável" no formato DVI. E aí sim, com o arquivo DVI em mãos, você pegará um programa a parte para interpretá-lo (um KDVI da vida), que funcionaria como um navegador para uma linguagem de marcação, e assim, apresentar seu conteúdo de uma forma estruturada (formatada) para o usuário.
    E hoje em dia, muitos só conhecem o LaTeX (ou nem sabem que é o LaTeX que eles estão utilizando) devido a interfaces gráficas que os aproximam de um Editor de textos, como o TeXmacs, o Kile, ou mesmo o LyX. Realmente, quem utiliza o LaTeX por essas interfaces, não vai chamar o LaTeX nem de linguagem de marcação, quanto menos de um Programador de Textos: vai chamá-lo simplesmente (e erroneamente) de Editor de Textos.

    Para os novatos esses "editores de texto" são uma mão-na-roda. Mas tudo que facilita por um lado, inviabiliza por outro. Essas interfaces (ainda) não estão maduras o suficiente para usuários mais avançados, e não vão te permitir refinar seu arquivo do jeito que você quer. Um usuário avançado que queira liberdade, terá de (e irá preferir) utilizar o LaTeX "na mão": pela linha de comando utilizando seu compilador.

    Por sinal, eu gostaria muito de ver mais posts sobre LateX aqui no Under-Linux. Eu pretendo escrever alguns, mas gostaria da sua ajuda. Acredito que será muito vantajoso para toda a comunidade ter mais de uma pessoa criando tutoriais sobre o LaTeX. Até os dias de hoje, o LaTeX nunca conseguiu o mérito que ele realmente merece. Ainda mais com a versão 3 saindo do forno, que vai torná-lo imbatível :-D

    Um abraço.
  9. Avatar de PEdroArthurJEdi
    Como eu coloquei no texto, o LaTeX é mais ou menos como o HTML. Não significa que ele seja a mesma coisa, com os mesmos fundamentos ou que tenham o mesmo poder de representação. Apenas o estilo de se desenvolver o resultado final é parecido.

    Eu quero questionar seu argumento: se eu tivesse um compilador HTML -> PDF, o HTML também deixaria de ser uma linguagem de marcação? O browser não seria uma espécie de interpretador de código? Ou seja, essa situação não seria análoga a programas compilados e interpretados? Você está certo quanto a nomenclatura de linguagens como o LaTeX, mas, IMHO, esse argumento não é muito consistente.

    Um exemplo muito mais válido de que LaTeX não é simplesmente uma linguagem de marcação é a criação das referências bibliográficas. Você pode encher seu arquivo de referências de entradas. Porém, só são materializadas para o arquivo de saída aquelas que foram utilizadas no texto. Seria algo como desvios condicionais em uma linguagem de programação como C, Java e Python.

    Valeu pela sujestão :-)
    Abraço
  10. Avatar de tuxdahora
    Eu sugeriria uma correção. O LaTeX não é uma Linguagem de Marcação. Mas ele também não é um Editor de Textos. Eu diria que o LaTeX se encaixa melhor como um Programador de Textos, pois, além de você escrever o código-fonte (que não necessariamente são marcações, mas sim, instruções para o compilador), você precisa compilá-lo para obter o resultado. E o resultado são vários arquivos, além do "executável" que é um arquivo no formato DVI (DeVice Independent) ou PDF (Portable Document Format), se você já gera diretamente um PDF pelas instruções de sua compilação.
    Atualizado 16-01-2010 em 20:22 por tuxdahora (Correção de sigla ;-))
Página 1 de 8 123456 ... ÚltimoÚltimo