[Música tocando]
ROGER ZURAWICKI: Oi, meu nome é Roger Zurawicki,
e eu estarei cobrindo o seminário CS50 Meteor.
Meteor é um novo quadro dedicado para o novo tipo de teia,
não o PHP fazer pedidos e para trás tipo
de web vimos no set PHPP, mas o JavaScript mais dinâmico
partes da trama.
Coisas Meteor pode fazer inclui atualização em tempo real
e comunicar imediatamente entre usuários do mesmo website.
>> Para este seminário, temos código hospedado no meu GitHub.
Você pode ir a este URL e baixá-lo.
Se você sabe como usar Git, você pode clonar o repositório.
Se você não sabe como usar Git ou não usei GitHub,
que é completamente bem.
Eu vou te mostrar muito rapidamente como podemos ir para GitHub,
e há uma opção para baixar um zip ali mesmo.
Depois de baixar este diretório, você pode começar a jogar com o nosso código.
>> Mais informações sobre Meteor pode ser encontrada em meteor.com.
Na pasta Seminário, eu realmente tem alguns projetos de meteoros que podemos usar.
Uma das pastas que temos em nossa projeto seminário é o app Todos.
Então, se eu entrar nele I, Meteor tem instalado.
Então, para executá-lo, eu só precisa digitar Meteor, e Meteor irá instalar.
Como você pode ver, temos que certificar-se de que instalou Meteor.
Então, eu estou indo só para executá-lo mais uma vez
ter certeza de que Meteor está instalado corretamente.
>> Embora eu tenha Meteor instalação, eu posso mostrar-lhe
algumas demonstrações ao vivo de sites de meteoros indo ao vivo agora na internet.
Eu tenho uma demonstração do nosso aplicativo.
Você pode acessá-lo no seguinte URL.
Este é o aplicativo de fazer isso nós temos em nosso diretório seminário.
A URL para isso é rozu-rabbit.meteor.com.
Você verá que vai realmente Meteor hospedar seus projetos Meteor gratuitamente.
E no final do seminário, você vai ser capaz de fazer isso também.
>> Este é um aplicativo para fazer a lista.
E você pode entrar, criar contas, e adicionar tarefas.
Você pode criar uma conta como tal.
E agora, uma vez que você tem um conta, você pode adicionar tarefas.
Por exemplo, uma das tarefas I pode precisar de ir buscar a minha roupa.
E se você está neste site on-line, você vai
realmente ver esta tarefa em seu computador em tempo real.
>> Eu posso mostrar-lhe uma demonstração rápida deste abrindo rozu-coelho
em outra guia com a mesma URL.
E vemos que os mesmos dados vem à tona.
Nós também pode executá-lo em um navegador diferente.
Digamos que eu executá-lo no Safari.
Dessa forma, não está logado.
Portanto, temos a mesma Meteor app, e uma vez que ele carrega,
vamos ver os mesmos dados fizemos no primeiro.
Como você pode ver, eu não estou conectado aqui.
E quando os dados cheques de audiência, ele atualiza em todos os browsers
simultaneamente.
Este é um dos realmente recursos interessantes sobre Meteor.
Com quase nenhum trabalho, você tenho um aplicativo de atualização ao vivo
que as alterações em todas seus dispositivos ao mesmo tempo.
>> Se eu marque a caixa de seleção aqui na minha lista para fazer, teremos,
no meu outro navegador Chrome, o item verificado fora.
E isto acontece instantaneamente.
Tudo certo.
Portanto, parece que Meteor instalação está pronto agora.
Então agora vamos voltar para o Todos app e executar este localmente.
>> Se você tem um projeto Meteor, você pode basta executá-lo com o Meteor comando.
Uma vez que você fizer isso, Meteor vai fazer alguma preparação
para certificar-se todos seu código está em xeque.
E, em seguida, ele vai dizer-lhe que o projeto está pronto para ser servido.
Pode ser necessário permitir que o seu firewall, se o computador bloqueia você.
>> Então, o que está me dizendo Meteor agora é que neste website
local para o meu computador, eu posso ver o que este projeto é Meteor.
Note que agora, meu aplicativo é não está acessível para a internet.
Nós vamos cobrir a forma de trazer o seu Meteor app para um site ao vivo um pouco mais tarde.
Então, eu estou indo só para copiar este URL agora e ir para o Google Chrome.
>> E este é o que fazer listar a partir do exemplo.
Você pode ver eles implementaram mais algumas funcionalidades aqui.
Temos diferentes abas, nós têm os mesmos recursos de conta,
e nós podemos adicionar novas listas.
Agora, um dos realmente recurso interessante sobre Meteor
é que não só esta pode trabalhar em seu navegador,
mas você também pode criar nativo para iPhone e Android
aplicativos através de uma ferramenta chamada PhoneGap.
>> Então, alguns projetos virão pré-configurado para a execução de
no iOS, como este app Todos.
Portanto, tudo o que eu preciso fazer para executá-lo em iOS é tipo Meteor, executar e, em seguida, iOS.
E quando eu faço isso, Meteor preparará o pacote novamente.
E então, quando ele estiver pronto, ele vai carregar o simulador iOS no meu comando.
Note que você só pode executar aplicativos iOS Se você tem um computador Mac.
Você pode executar seus aplicativos em Android em todas as plataformas.
>> Então, agora você pode ver que o meu iPhone simulador surgiu na minha tela.
E em apenas um momento, ele vai carregar com o app.
Se fizermos com que apenas um pouco menor para caber na tela,
vemos que temos o nosso aplicativo para iPhone.
E só assim nós não ficar confuso, vamos fazer
certeza de que estamos no mesmo website, o host local 3000.
>> Então, aqui está um exemplo do app Meteor que eu tenho,
o app Todos, rodando tanto em um telefone e em um navegador web.
E quando eu mudar coisas no navegador da web,
vai imediatamente para o telefone.
E eu posso excluir alguma coisa no telefone, e isso muda no navegador da web.
>> Agora, normalmente para criar nativa app telefone para iOS ou Android,
você precisa saber Java ou Objective C. A tecnologia usa Meteor
para permitir JavaScript para funcionar como seu aplicativo é chamado PhoneGap.
O que o seu app essencialmente é é um navegador web.
E Meteor manipula todo as partes complicadas envolvidas
para trazer esse navegador para seu iPhone ou o seu dispositivo Android.
Você pode ver que o interface com o usuário é lisa,
e olha e se sente muito muito parecido com um aplicativo nativo.
Observe que, se eu ir para a casa tela agora, eu também obter um ícone.
Este não é um site como o você encontraria em Safari.
Este é o seu próprio app.
Você pode instalar e excluí-lo se você gostaria.
>> Podemos brevemente mostrar o que o código para este tipo de Todos app parece.
Se você olhar na pasta Todos, você vai ver que existem muitas pastas.
Mas, ao longo do curso do seminário, vamos
entender o que cada pasta é usada para.
Vamos para o terminal para que pode ver os arquivos um pouco melhor.
>> Eu estou indo para pressionar Control C para parar o servidor,
e agora eu estou de volta no app Todos.
Tenho pastas diferentes aqui, como a pasta do cliente, a pasta do servidor.
E essas pastas simplesmente significar que tudo na pasta cliente
será executado em seu navegador.
Tudo em uma pasta do servidor é executado em um servidor.
>> O que eu quero apontar fora é que o que tínhamos
quando tivemos o nosso telefone em execução e nosso navegador, estes eram clientes.
Mas o que está sendo executado em um terminal, que é o servidor.
Temos outras pastas, como lib, que é o código da biblioteca,
como seu ajudante funções, que você pode
usar tanto no cliente e no servidor.
E então você tem um público pasta e recursos
pasta necessária para a obtenção de suas imagens e outro CSS carregado.
>> Se você tiver instalado Meteor, vamos continuar com o tutorial para Meteor.
Você pode ir a este URL, meteor.com/install,
para obter a linha de comando que eu mostrei que instala Meteor.
Vamos passar pelo primeiro alguns passos para obter uma melhor
sente sobre como instalar Meteor.
>> Mas, primeiro, eu acho que é importante que analisar um pouco de JavaScript.
Para mostrar-lhe alguns exemplos de como o nosso conhecimento C pode ser traduzido
para JavaScript, eu tenho criado alguns exemplos.
Eles estão no diretório js.
Portanto, se nos seminários pasta que olhe, há uma pasta chamada js.
E, aqui, temos alguns exemplos.
>> Vamos abrir a primeira exemplo e ver muito rapidamente.
O que vemos é o seu padrão Olá comando mundo.
Você percebe em C que você tem algumas linhas.
E como estudantes CS50 sabe, precisamos de uma função principal,
e nós temos que inclui a norma I / O biblioteca, a fim de chamar printf.
>> Vejamos como JavaScript compara.
Eu vou abrir ex1.js.
Comentado é o que o C código seria semelhante,
e a linha inferior é tudo você precisa para ser executado em Node.
Você não precisa de uma função principal, você Não é necessário incluir todos os arquivos,
e você não precisa voltar.
Apenas chame console.log.
Isso é o equivalente de seu printf.
>> E leva o mesmo argumentos printf faria.
E, a fim de executá-lo, em vez de correr fazer EX1,
você teria apenas que chamar ex1.js. Nó
Você escreve Nó e, em seguida, o arquivo, e ele é executado.
Ela não fica compilado.
JavaScript é uma linguagem interpretada.
Por isso, não necessita de ser compilado antes de ser executado.
Se eu quisesse correr ex1.c, Eu tenho que fazê-lo em primeiro lugar,
e então eu posso rodar o executável para obter o mesmo resultado.
>> Vamos rapidamente cobrir alguns outros conceitos JavaScript.
Vejamos exemplo dois.
Em ex2.js, em ex2.c, nós podemos ver que temos algum código.
Deixe-me ir rapidamente para uma melhor editor de texto
que irá mostrar estes novas linhas um pouco melhor.
Tudo certo.
Aqui temos o exemplo 2.c.
Aqui nós temos diferentes tipos que estamos imprimindo.
E, como sabemos, leva printf diferentes argumentos por cento
para acessar diferentes partes de dados.
Se queremos imprimir uma corda, que chamamos% s.
Se queremos chamar um flutuante número de ponto, chamamos% f.
E não há nenhuma maneira fácil de chamar um Boolean pelo seu valor verdadeiro ou falso.
Mas se você usar% d, você pode obter um 0 ou um 1 para falso e verdadeiro.
>> JavaScript é um pouco melhor para nós.
Em JavaScript, vamos olhar para os poucos diferenças que temos neste arquivo.
Em primeiro lugar, você notar que em C, temos de inicializar todas as variáveis ​​com um tipo.
S é uma estrela de char.
É uma cadeia, e ele Não pode ser de qualquer outro tipo.
N é um float.
B é um Bool.
>> Mas em JavaScript, existem tipos dinâmicos.
Isso significa que você não faz precisa dizer JavaScript
quais os tipos suas variáveis ​​será.
Você acabou de dizer var para a variável, o nome da variável, e, em seguida, o seu valor.
Assim, uma var pode ser qualquer coisa realmente.
Pode ser uma string.
Pode ser um número de ponto flutuante.
Pode ser um personagem.
Pode ser um booleano.
E de registro do console funciona um pouco diferente.
Se você deseja imprimir um número, você chama% d.
Mas a maioria dos valores podem ser impressas como cordas muito bem.
>> Vamos executar isso em Node para ver o que iria acontecer.
Eu posso chamar ex2.js Nó, e nós temos printf
com o CS50 valores, como N o número de ponto flutuante,
e, em seguida, B como o booleano convertida para uma string verdade.
Que tal se fizéssemos exemplo 2.c?
Bem, ainda temos alguns mais aborrecimentos com printf.
Observe que o ponto flutuante número tem de ser formatado corretamente,
e que o booleano não pode simplesmente ser apresentado como verdadeiro ou falso.
Tudo certo.
Agora vamos olhar para o exemplo de três.
No exemplo de três, estamos mostrando como você usaria um loop.
Na verdade, é muito simples.
Uma das coisas agradáveis ​​sobre JavaScript é que ele é baseado C.
Isso significa que um monte de seu código será muito similar
e me sinto muito muito mesmo.
Em um loop for, a única coisa que realmente mudou aqui
é, em vez de int i, temos var i.
Nós ainda podemos atribuí-lo a valorizar zero, verifique se ele é inferior a cinco,
e incrementá-lo por um com o operador ++.
Chamamos console.log no i, e que nos imprimir um número a cada linha.
Vamos executá-lo muito rapidamente para ver o que ele produz.
Ficamos com um novo número em cada linha.
Outra coisa que eu quero que você a notar com console.log
é que você não tem que escrever barra invertida n para a nova linha.
Console.log imprimirá tudo em sua própria linha.
Isso é um bom recurso JavaScript que nos dá.
>> Agora vamos abrir exemplo quatro.
No exemplo quatro, em primeiro lugar no C, estamos chamando algumas funções.
Observe que temos de declarar a funções antes de usá-los em principal.
Se tivéssemos principal em primeiro lugar e em seguida, adicionar e, em seguida, alta, faça,
clang, ou GCC seria dá-nos um erro dizendo
que ele não sabe o que é alta.
Ele não sabe o que é add.
Assim, em C, você tem que ser exigente quanto à ordem em que você chama de suas funções.
>> Vamos dar uma olhada em como você pode fazer isso em JavaScript.
Temos diferentes arquivos, porque há algumas maneiras diferentes de fazer isso.
Uma maneira é muito bonito uma tradução direta.
Como as funções em C tipos de retorno, e JavaScript
não sabe ou cuidados sobre que tipo você voltar,
você não escreve um tipo.
Em vez disso, você só precisa para escrever a função,
e tudo é bastante da mesma forma como antes.
>> Quando você tem uma variável, como em acrescentar, só precisamos de escrever x e y.
Não precisamos dizer que x é um int.
Nós não precisamos de dizer y é um int.
Voltamos com a mesma sintaxe.
Por alto, nós declará-la com funcionar em vez de vazio.
Observe que se é nulo ou não-nula,
ainda está tudo a mesma função.
E nós simplesmente não colocar qualquer coisa entre parênteses,
e ele se parece muito com o código C.
E abaixo, podemos chamá-lo abaixo.
>> Se olharmos para o exemplo 4b, notamos que eu mudei algumas coisas.
A única coisa que eu mudei realmente, porém, é o fim.
Temos o mesmo funções, mas agora eles estão
declarou depois que eles são usados ​​em console.log e alto nas linhas 18, 19.
Se você fez isso em C, fazer seria lançar um erro.
Aqui, isso funciona muito bem.
E eu posso mostrar isso para você por chamando Node no exemplo 4b.
>> Outra maneira de chamar funções é por funções de poupança como variáveis.
Como eu disse, uma variável pode ter qualquer tipo.
Um dos tipos uma variável pode ter é uma função.
Então, se você olhar para exemplo 4c, o que eu mudei
aqui é var adicionar em vez de função add.
E agora é igual a adicionar uma função.
Esta função aqui é anônimo.
Não tem nome, por isso é apenas função e, em seguida, os parênteses.
A sintaxe que depois não muda, mas você
tem que ter em mente que você tem uma variável que você está
armazenar a função em add, e um variável que você está armazenando em alta.
>> Como adicionar e alta agora são variáveis e não funciona, algo muda.
Este é um erro comum que eu vejo em um monte de JavaScripts das pessoas,
e alguma coisa para manter em mente.
Quando eu executo isso, vamos ver o que acontece.
Eu recebo um erro.
É dizer indefinido neste momento.
Então, ele está dizendo que não sabe o que é adicionar.
>> Porque agora adicionar não é um função, adicionar é uma variável.
E você não tenha realmente dado adicionar um valor ainda quando você usou.
Isso nos leva a exemplo 4d, onde se você quiser usar variáveis ​​como funções,
você só precisa ter certeza de que eles obter o valor antes de serem usados.
>> Vamos seguir em frente com o exemplo de cinco então.
Aqui, falamos de estruturas em C. Em C, estruturas
têm esta estrutura fixa a eles porque você tem que declará-los
antes de usá-lo, e você diz que eu tenho um aluno,
e cada aluno tem exatamente um nome, um ano, um gênero.
Tem de ter todos eles.
Ele não pode ter quaisquer outros valores, e eles têm que ser determinados tipos.
>> Então, podemos inicializar o struct nesta sintaxe agradável
porque ele sabe a ordem.
Por isso, sabe que Roger é um nome.
Ele sabe que 2016 é um ano e M é um género
porque disse que este lista é um estudante struct.
E então você pode imprimir lo, aceder s.name.
Vamos ver como iríamos convertê-lo em JavaScript.
Observe que é agora é um variável, e não há nenhum tipo.
É apenas uma var novamente.
Porque não importa se o tipo de esta variável é um ponteiro,
é uma estrutura, ou qualquer outra coisa.
Temos uma sintaxe um pouco diferente.
Esta sintaxe é a sintaxe objeto.
>> Você já deve ter visto em JSON.
JSON, na verdade, representa o JavaScript Object Notation.
Isto é como você definir objetos em JavaScript.
Nós temos uma chave, que é o valor, como o nome.
E nós dar-lhe valores em o outro lado do cólon.
E uma coisa a ter em mente é que você Não é necessário ter um nome e um ano
e um género de um objeto.
Um objeto pode ter nenhum valor.
Ele pode ter como muitos como você gostaria.
>> Podemos usar esses objetos em apenas o mesma forma que usaria um struct, s.name.
Nós podemos executá-lo muito rapidamente fazendo nó exemplo 5.c.
Nós não podemos realmente executar um arquivo C em Node.
Ele não sabe o que é C.
Ele só sabe JavaScript.
Quando executamos os ex5.js, obtemos o valor, o que se espera.
>> Vamos seguir em frente com o exemplo de seis.
Aqui eu só quero falar um pouco pouco mais sobre matrizes de JavaScript
porque eles são um pouco diferente do que você é
utilizado no C. Arrays são notados, não com os suportes, como em C,
com as chaves, mas colchetes.
Você pode ter uma matriz vazia, como arr na linha quatro.
Você pode ter matrizes com vários valores.
E você acessá-los exatamente da mesma maneira em C.
>> -Se para a linha sete, tudo Parece bastante simples.
Uma pequena diferença está aqui na linha 10.
A maneira como você obter um comprimento de um matriz é apenas chamando .length.
Uma matriz pode ser realmente tratado como um objeto,
e esse objeto tem uma propriedade de comprimento que você chamar para obter o comprimento do mesmo.
Observe que isso é diferente em C porque em C você
tem que saber o comprimento do seu objeto antes do tempo.
>> Portanto, outra coisa agradável sobre matrizes é que você pode ter diferentes tipos.
Se você tem uma matriz em C, não são matrizes de um valor específico,
um ponteiro struct ou flutua ou [inaudível].
Aqui, você pode ter valores diferentes.
Eu tinha primeiro um número de ponto flutuante, em seguida, um booleano, em seguida, outro inteiro.
E, na verdade, eles podem alterar os tipos também.
Olhe para linha 16.
Matriz de duas está mudando de um número, um número inteiro, a uma string.
>> Outra coisa legal sobre matrizes é aqui na linha 19, que tem tamanho infinito.
Você pode apenas dizer que eu quero o centésimo elemento a ser a string legítimo.
E isso não parece fazer sentido, porque a matriz só
tem espaço para três elementos, de modo que a extremidade deve ser dois.
Mas quando você faz isso, vamos ver o que se torna matriz de três.
Gostaríamos de executar este rapidamente com nó exemplo six.js.
Recebemos esta muito longo array, e o que acontece
é que temos os primeiros elementos e, em seguida, um monte de espaços em branco
até chegarmos a nossa string.
JavaScript preenche o matriz como ele é necessário.
>> Vamos finalmente ir para o nosso último exemplo.
Aqui temos uma lista de diferentes alunos.
Quero falar um pouco pouco sobre alguns aspectos agradáveis
de loops em JavaScript.
Em C, para loops são tipo de limitação.
Eles têm uma estrutura fixa, onde você ter uma variável, você tem uma condição,
e, em seguida, você faz algo no final do ciclo.
E é claro que isso funciona em JavaScript, como vimos nos exemplos anteriores.
Mas também temos maneiras mais agradáveis de fazer isso em JavaScript.
Isso é chamado de um loop foreach.
>> Desculpe, vamos voltar a sete exemplo aqui.
Podemos dizer também seção é uma lista.
Então me dê todo i ou todos os índices nessa lista.
Então, podemos obter o aluno por apenas chamando seção de i.
Então, todo o código do estabelecimento i igual a zero e certificando-se de i
é menor do que o comprimento ea somando-se ao i cada vez, isso é
cuidando de você, em vez muito bem com esse loop foreach.
>> Não só loops foreach trabalhar em listas ou matrizes,
eles também trabalham em objetos, que também é bom.
Você pode obter o nome de cada propriedade por apenas tomando
um dicionário ou um objeto, como estudante, e depois é só dizer me dê cada chave.
A chave seria estes propriedades, nome ou casa.
Então, o que vai acontecer aqui é que nós imprimir primeiro o nome e, em seguida,
a casa de cada aluno.
>> Eu posso correr este em Node muito rapidamente para lhe mostrar.
Ficamos em primeiro lugar o estilo C para o laço, onde obtemos cada objeto que está sendo impresso.
E então temos o JavaScript estilo, onde você pode apenas
imprimir cada chave e valorizar individualmente.
>> Tudo certo.
Agora que nós cobrimos Node.js, eu acho estamos prontos para começar com o Meteor.
Como eu disse, Meteor fez um grande trabalho de escrever alguns exemplos ready-made
para você que você pode explorar por meio de Neste tutorial ou na pasta de seminário.
Mas aqui eu quero iniciar mais a partir do zero.
>> Vamos criar um simples de fazer aplicação.
Este é o tipo da base do que o de faça uma aplicação que lhe mostrei anteriormente é.
Neste tutorial, você vai ver que não há
Um meteoro comando criar a criar um novo projeto Meteor.
Você precisa chamar isso de forma para executar projetos de meteoros porque ele
irá executar os comandos para criar o Meteor
os arquivos necessários para o seu projeto.
>> Se você entrar no terminal, o que pudermos ir para a pasta chamada primeira etapa.
E o primeiro passo corresponderá o primeiro passo para o tutorial.
Aviso existem pastas, passo um, dois passo, por todo o caminho até cinco.
E cada um é correspondente a um passo neste tutorial.
Eu estou indo para abri-lo no meu editor de texto aqui
para que possamos ver um pouco do que foi criado.
Notamos que há quatro partes principais.
Há um diretório Meteor, .meteor.
E que você normalmente Não é necessário tocar.
Meteor cuida de essa pasta, e isso só
garante que o seu projeto irá funcionar corretamente.
>> Temos também três arquivos, um arquivo HTML, um arquivo JavaScript, e um arquivo CSS.
Vamos começar primeiro com o arquivo HTML.
À primeira vista, isso parece como um documento HTML normal.
Mas note que há algumas diferenças.
Um, isto não é verdade um documento HTML completo.
Estamos perdendo as tags HTML.
Isto é normal.
Em Meteor, você não está esperado para criar estas tags HTML.
Isso é feito para você.
Você quer begin-- se quero criar um site,
você só precisa começar com a marca de cabeça,
definir que, em seguida, definir a tag corpo.
>> Mas se você observar neste Arquivo HTML, temos uma nova tag.
Nós temos a tag template.
Este não é o HTML normal.
Esta é uma versão especial do HTML Meteor que torna disponível para você.
É chamado de barras de espaço.
Você pode definir modelos como pouco módulos, como o tipo de funções auxiliares,
em sua C ou código JavaScript.
Este modelo seria tem um nome chamado tarefa.
E você pode ver aqui na linha 13 que você pode chamar esses modelos.
E o que Meteor vai fazer é apenas preencher essas tarefas para você.
>> Outra coisa que você pode perceber é uma pouco diferente é esta cada função.
Cada um vai ter a variável tarefas e tipo de passar por isso
em que nós loop foreach viu no exemplo sete.
Esta cada um pode levar um dicionário ou uma lista, um objeto ou uma lista,
e ele só vai passar por tudo o valores como um loop foreach faria.
Então, se temos um monte de tarefas, este vai chamar o modelo em cada tarefa.
>> Vamos executar o projeto Meteor só para ver que isso acontece.
Eu executar o projeto com Meteor apenas Meteor ou Meteor executado.
E agora Meteor só precisa preparar rapidamente o projeto,
iniciar o banco de dados como necessário, e em seguida, publicar o aplicativo localmente.
Nós podemos ir para o nosso navegador agora.
E nós vamos ver que nós tenho um aplicativo muito simples.
Então, o que se viu foi realmente mostrou-se o primeiro passo, o passo um arquivo.
>> Vamos passar para a etapa dois só porque Eu acho que vai servir a mesma finalidade.
Eu só vou mudar para o diretório etapa dois
e executar Meteor novamente para que possamos ver o modelo que acabamos com quem trabalhou.
Sim, uma pergunta?
>> AUDIÊNCIA: Se estamos recebendo permissão negado, é isso-- o que é isso
chamado para isso?
ROGER ZURAWICKI: Se você está correndo Meteor prazo,
e você tem permissão negada, alguns de seus arquivos
pode não ter o conjunto de permissões direita.
Então você tem que verificar onde as permissões estão desligados.
Eles poderiam estar fora em seu projeto Meteor,
ou eles poderiam estar fora no Meteor próprios arquivos.
>> AUDIÊNCIA: Se eu baixei só agora a partir do seu GitHub, então o que devo fazer
[Inaudível]?
>> ROGER ZURAWICKI: Se você quiser para se certificar de que você pode acessá-lo,
há um comando que você pode executar.
Deixe-me rapidamente escrevê-lo para que outras pessoas possam vê-lo.
Vou abrir uma nova aba aqui e ir para minha pasta de seminário.
Chmod é o comando para alterar as permissões,
e você pode dizer r para fazê-lo recursivamente para cada arquivo.
E permissões, você pode tentar 0755 para se certificar de que você tem acesso completo,
e toda a gente pode ler.
E se você só correr este comando, ele vai fazer
Certifique-se as permissões estão em vá para o diretório inteiro.
Correndo ls-l pode mostrar-lhe o permissões de forma mais detalhada.
Isso parece OK.
>> O que é mais importante é que você tem todos os três
rwx para todos os arquivos o diretório seminário.
Será que isso resolve o problema?
>> AUDIÊNCIA: Ele diz que falta operante [inaudível].
[Inaudível]
ROGER ZURAWICKI: Você tem que ter certeza que você
têm um ponto no final de seu comando.
AUDIÊNCIA: [inaudível].
ROGER ZURAWICKI: Tudo bem.
Vamos rapidamente voltar para o host local, o app que temos.
E você vai ver que temos um algumas tarefas aqui, como esperado.
Temos um monte de CSS, que você não precisa se preocupar.
O tutorial Meteor só dá isso para você
para fazer a sua lista para fazer uma olhada pouco melhor do que o HTML simples.
E nós temos o arquivo JavaScript, o que Eu vou entrar em mais detalhes um pouco mais tarde,
mas ele só fornece essas tarefas.
Esta é uma tarefa.
Esta tarefa é dois.
Esta tarefa é três.
Então esta é a dados Meteor está ficando.
>> Uma das coisas legais sobre Meteor é que mudanças podem acontecer automaticamente.
Se eu queria mudar o nome da primeira tarefa,
por isso, diria que este não é tarefa, e eu salvá-lo,
então quando eu ir para a web browser, você pode atualizá-lo,
e ele diz que automaticamente esta não é uma tarefa um.
Você pode fazer a mesma coisa em qualquer um destes ficheiros.
Faça uma mudança, em vez de fazer lista, eu vou ter o meu para fazer a lista.
>> E uma coisa que você só notei, que eu não tinha sequer para refrescar.
A idéia de refrescante é uma espécie de resolvido para você com Meteor.
Sempre que detecta as alterações de arquivos, ele vai carregar as mudanças para você.
Isso funciona em todos os arquivos, se é HTML, CSS, JavaScript ou.
Para mostrar a você o que esta app olharia como sem CSS, posso remover tudo.
E quando ele é recarregado, agora você tem uma não tão boa aparência para fazer a lista.
Vamos colocar esse conteúdo de volta.
E certamente o suficiente, refresca, e nossa CSS está de volta.
Ótimo.
>> Agora podemos seguir em frente com o tutorial.
Vamos falar sobre a segunda etapa, templates.
Isto é o que acabamos de ver com as diferentes tarefas.
Meteor irá explicar-lhe o que modelos e como essa lógica funciona.
Mas vamos olhar o código para ver se podemos fazer sentido fora dele.
>> Em aplicações muito simples, parecido com o que temos no simples
fazer, passo um, passo dois, passo três, quatro etapas, etapa cinco,
não temos quaisquer pastas.
Não temos o servidor pasta que eu mencionei.
Não temos o cliente pasta que foi mencionado.
Então Meteor será executado todos os arquivos.
Ele vai executá-lo tanto no cliente, tanto no servidor.
>> E se você quiser partes de seu JavaScript código para ser executado apenas no cliente,
eles precisam ter certeza de que você tem um se instrução, tipo de como o que
temos em nosso arquivo JavaScript aqui.
Então Meteor, somente se é o cliente, então eu
quer definir um modelo auxiliar chamado tarefas.
O que esse código realmente faz é que diz que não há
um modelo de objeto chamado Meteor que fornece.
E nós vamos adicionar um ajudante.
Helpers são essas tarefas, essas coisas como as tarefas.
>> Você vai ver que, se voltar para o Arquivo HTML, chamamos cada nas tarefas.
As tarefas não é definido no HTML.
É definido no JavaScript.
E Meteor precisa saber quais as tarefas que é quando vamos para o JavaScript aqui.
Tarefas é este auxiliar.
Helper, você pode pensar -lo como uma variável de modelo.
E o que fazer tarefas?
Bem, ele retorna a lista de valores.
Porque é uma lista, podemos chamar cada nele.
Então é por isso que chamamos de cada um em tarefas.
E agora temos tarefa.
>> O que fazer tarefa?
Bem, ele tem essa seta aqui depois de as chaves.
Isso significa que é um modelo de tarefa.
Não é um ajudante, como o que acabamos de ver.
É um modelo que tenha definido.
E onde é que nós definimos isso?
Nós definimos abaixo aqui.
>> Todo esse modelo faz é tornar um item da lista, e ele chama de texto.
Agora, o texto parece ser um ajudante, mas eu vou mostrar-lhe
que este é, na verdade, ainda um membro de dados de tarefas.
Quando você chamar cada um, ele vai para a estrutura de dados um pouco.
Como o loop foreach, agora só olha no primeiro elemento em nosso objecto.
Vemos que o texto é definido aqui em nosso objeto.
Então Meteor é inteligente para saber que nós estamos falando sobre este texto,
não o ajudante chamado texto.
Ela só fica o valor deste texto aqui e exibe como HTML,
e é assim que os dados vão desde o JavaScript para o HTML.
>> Movendo-se no entanto, neste exemplo nós codificado esses valores.
Meteor faz dois realmente coisas boas para nós.
Além da atualização ao vivo que nós mostrou, também gere a nossa base de dados.
Se você tivesse que trabalhar com PHP, você tinha que configurar phpMyAdmin.
Você tinha que se certificar que seu mesas estavam todas em cheque.
Você tinha que fazer um monte de trabalho a fazer que seus dados foi formatado corretamente,
e PHP poderia se comunicar com ele.
>> Agora, Meteor usa um novo paradigma.
Esta é uma forma mais moderna da manipulação de um banco de dados.
É uma tecnologia chamada MongoDB.
Assim como em JavaScript, vimos que Não importava o que tipos de dados continha.
Tudo era uma var.
Não foi um charstar.
Não foi um int.
Não foi um struct.
Foi apenas var isso, var isso.
>> MongoDB funciona espécie da mesma maneira.
Você não tem que definir suas tabelas.
Você não tem que dizer uma mesa tem um nome, que tem um int.
Ele tem, eu não sei, um dólar, o que é um decimal.
É apenas estes objetos JavaScript, todas essas vars, essencialmente.
E isso é realmente um poderoso forma de protótipo seu app.
E é por isso Meteor aproveita isso.
>> Se formos para a etapa três, vamos ver o que mudou.
Se olharmos para o HTML Todos, não muito.
CSS não mudou em nada.
Mas a pequena mudança que vemos em HTML é que já mudou a forma como as tarefas está definido.
Tarefas agora é uma função.
Isso significa que todo tempo queremos chegar tarefas,
nós estamos indo para executar esta função.
Ela não retorna a função como um valor.
>> Meteor é inteligente para realmente executar o função para ver o que se obtêm.
E ele retorna essa coisa chamada tarefas.
Temos definido tarefas na linha um, e é uma coleção Mongo.
Mongo está se referindo a a base de dados usa Meteor,
e este novo significa apenas vamos fazer uma nova coleção, chamá-lo de tarefas.
Em MySQL, isso seria equivalente a olhando para as tarefas de mesa chamado.
Mongo tem coleções, não tabelas.
Então, isso só olha para as tarefas.
>> Agora, modelo em nosso auxiliar no molde, tudo
que temos que fazer para obter todas as tarefas é essa função, encontrar
e esta chave vazio.
Este é mais especial para sintaxe Mongo.
Há uma abundância de documentação on-line para saber como
você pode fazer eficiente e realmente útil Mongo consulta.
Mas algo como isso é bom o suficiente para apenas encontrar todos os dados.
>> Agora, uma das questões que você pode ver é que nós nunca realmente adicionar dados.
Então o que acontece quando nós realmente executar o passo três?
Vamos rapidamente entrar em o terceiro passo e correr Meteor.
Repare que eu tinha outra Meteor projeto em execução em outro lugar,
assim Meteor não gosto disso.
Eu só vou fechar rapidamente para o outro Meteor com controle C,
ir para o passo três, e executar Meteor novamente.
Observe que está começando MongoDB porque MongoDB
é uma parte de cada projeto Meteor.
>> Então, ele diz que a minha candidatura tem erros.
Isso é um bom recurso Meteor tem.
Ele garante que o seu HTML é bem validado.
Vamos examinar rapidamente por que isso pode ser.
Parece que eu tenho acidentalmente copiou o código HTML errado.
Se eu salvá-lo agora, Meteor reiniciado automaticamente o servidor,
e agora o aplicativo está sendo executado conforme o esperado.
Observe para corrigir isso, você pode simplesmente executar o mesmo arquivo HTML a partir do passo dois,
copiá-lo para a etapa três.
>> Nós podemos voltar ao nosso host local.
E agora vemos que temos o nosso para fazer a lista.
Ótimo, mas é vazio.
Nós realmente não têm qualquer tarefas na nossa base de dados Mongo.
Então vamos falar sobre um algumas maneiras que podemos fazer isso.
Se voltar para o terminal, que pode fechá-lo e executá-Meteor Mongo.
>> Se você estiver familiarizado com a forma como funciona Meteor,
isso realmente lhe dá acesso para o MongoDB completo para Meteor.
Observe que você tem que estar em execução Meteoro primeiro para que isso funcione.
Então, se eu executar este em uma nova aba, I pode voltar para o mesmo diretório.
E agora Meteor funciona muito bem.
Este é um prompt.
Deixe-me fazer-lhe um pouco maior para que possamos ver.
Isso parece um pouco diferente do que o que você pode ser usado para você
realmente não precisa usar Mongo.
Toda a ponto de me aqui é de modo que você pode usar JavaScript.
Mas se você estiver curioso, API Mongo não faz
usar SQL, o Structured Query Language.
Ele usa sua própria linguagem que parece muito com JavaScript.
Muito rapidamente, podemos encontrar a tabela através db.tasks.
E ele está me dizendo Acontece que, se corremos encontrar,
tipo de semelhante ao que tivemos com Meteor, podemos carregar todos os elementos.
O problema é que nós não realmente tem nenhum tarefas definidas.
Por isso, não pode obtê-los.
>> Podemos inserir, no entanto.
Assim, podemos executar insert com a inserção de comandos.
E nós apenas dar-lhe um objeto, e nós apenas
certifique-se o formato é o que esperamos.
Se olhamos para a segunda etapa, vimos que cada tarefa
Era um objecto com um texto como a chave e qualquer que seja
a sua tarefa era como uma variável.
Assim, podemos fazer alguma coisa aqui.
>> Podemos ter que inserir uma tarefa chamado Venho de Mongo.
E nós, pressione Enter, e ele é executado.
Nós podemos correr encontrar novamente, e nós ver que não é um objeto aqui.
Mongo atribui a ele um ID, que você realmente não precisa se preocupar.
O que é importante para você é a dados você colocar, são os dados que você sair.
>> Vamos voltar ao nosso site, e hey, a nossa tarefa carregado.
E você pode ver que porque Meteor é muito inteligente
e sempre atualizada para você, eu não tem que tocar a página.
É carregado automaticamente.
>> Vamos executar algum código em JavaScript embora para fazer isso.
Como temos Nó na parte de trás terminar de executar fora JavaScript,
que também pode executar JavaScript diretamente em nossos navegadores.
Você pode fazer isso por um recurso chamado Inspect Element.
Se eu botão direito sobre um seção da página,
há uma opção chamado Inspect Element.
Se você estiver executando um navegador como o Safari, você
talvez seja necessário ativar o seu desenvolvedor ferramentas antes de chegar a esse recurso.
>> O que nos interessa é o console.
Então, vamos apenas ir ao consola na parte inferior.
Agora podemos executar qualquer JavaScript aqui, como o JavaScript
arquivos eu mostrei no exemplo js.
Mas agora vamos olhar para as tarefas.
Nós podemos correr o nosso comando.
E espero que eu vou ser capaz de fazer -lo um pouco maior para que todos possamos ver.
>> Se corrermos tasks.find, e você ver que este é exatamente o mesmo código
que as utilizações arquivo JavaScript na etapa três, este task.find.
Podemos executar a mesma coisa, e agora temos algumas coisas estranhas.
Como é que vamos realmente obter os dados?
Bem, nós temos que executar este comando chamado buscar.
>> Isto é muito útil para depuração.
O que você chegar aqui é um cursor, e isto é
uma boa maneira Meteor tem Buscando dados otimizada.
Este cursor tem todas as características para atualização em tempo real e atualizar a página
quando algo mudou.
Mas isso não vai nos pegar os dados.
Podemos obter os dados através buscar.
E você vê que temos um objeto, e é como o que tínhamos em Mongo,
com um ID e o texto que colocamos no.
>> Então, como vamos inserir um item em Meteor?
Bem, nós apenas temos tarefas.
E então nós podemos executar o mesmo comando de inserção,
dando um dicionário ou um objeto com o mesmo formato, texto
e, em seguida, eu venho do console.
Dê uma olhada de cima, porque quando eu fazer isso, ele mostra-se no site
automaticamente.
>> Observe que você pode colocar qualquer coisa você quer nestes itens.
Ele não tem de tem uma estrutura fixa.
Eu poderia ter um igual ao número três e b igual a false.
E tudo funciona.
Posso até optar por não incluir um texto em tudo.
Isso só não é recomendado embora porque então Meteor
não vai saber o que mostrar.
Mas, em cada caso, nós obter um ID, e isso é
o ID do objeto que você pode usar.
>> À medida que continuamos com etapa quatro e passo cinco,
o tutorial irá mostrar-lhe maneiras que você pode criar elementos de interface do usuário usando
o HTML que você sabe criar diferentes tarefas.
Vamos olhar para a etapa quatro muito rapidamente.
Vamos ver o que nós adicionamos uma seção sobre os eventos.
Os modelos podem ter ajudantes, que nos Obter dados.
Mas também pode ligar para eventos.
E é aí que o material torna-se útil, porque os eventos
são o que acontece quando você clica coisas diferentes em seu site.
>> Aqui, o nosso código está dizendo -nos para adicionar este evento.
Adicioná-lo quando você enviou algo com a classe nova tarefa.
O que você tem aqui é um seletor CSS.
Então, isso só olha para um HTML elemento que tem a classe nova tarefa.
E olha para o evento, como enviar.
Outros eventos incluem clique, pairo, duplo clique,
semelhante ao que você entrar em HTML normal.
>> O que você dá-lo aqui agora é uma função.
E você pode ter o seu código nessa função.
Esta função é o que acaba ficando chamado quando você enviar esta nova tarefa.
Vamos olhar para o HTML apenas para que entender o que esta nova tarefa é.
Nós adicionamos um formulário aqui com a classe nova tarefa.
E que tem uma entrada que leva o texto.
E este é o lugar onde nós irá adicionar nossas novas tarefas.
>> Vamos correr a etapa quatro no site para ver o que parece.
Podemos sair pela primeira vez do MongoDB tivemos
do nosso anterior exemplo com controle C.
E vamos transformá-lo em a etapa quatro diretório.
Nós correremos Meteor novamente para iniciar o servidor.
E, infelizmente, tive Meteor sendo executado em outro terminal.
Então, eu estou indo só para certifique-se esta fechada.
Vamos sair desta e de mudança a quarta parte, a etapa quatro.
OK.
>> Agora o nosso código Meteor está em execução.
E você pode ver que ele atualizado, sem nós nem mesmo ter que atualizar a página.
O que mudou aqui é agora que não temos qualquer tarefa,
mas temos um formulário aqui, este caixa de texto, para adicionar as nossas novas tarefas.
E nós podemos digitar a nossa tarefa aqui.
Eu venho da página HTML.
Ao pressionar Enter, ele foi submetido.
>> Podemos ver o que aconteceu como definidos pelo código JavaScript.
O que esta função fez foi tomar o texto de forma,
e, em seguida, chamado apenas de tasks.insert, como fizemos no console.
Eles também optou por adicionar uma data createdAt.
Isto é como se fosse especifique o tempo atual.
Depois disso, ele limpa a forma, fazendo Certifique-se o valor é uma string vazia.
>> E então ele chama retornar false para certificar-se de nada mais acontece.
Quando você retornar de uma falsa evento de formulário, que interrompe a execução.
Digamos que um formulário tem uma ação, como submeter-se a uma página PHP.
Se você não tivesse retornado falsa, você retornar verdadeiro.
Seria acabar fazendo esse pedido.
Intercepta falsa, e pára-lo ali mesmo.
>> Então isso foi uma pequena demonstração sobre Meteor como funciona, e nós temos
vindo a seguir o tutorial por um tempo.
E você pode sentir por favor livre para continuar fazendo isso.
Há uma abundância de recursos, e o tutorial é realmente apenas
muito bom a explicar o que está acontecendo.
Eu quero te mostrar agora, em os poucos minutos que nos restam,
o que são alguns dos características mais frias do Meteor,
e quais são alguns dos pacotes mais úteis.
Uma das grandes coisas sobre Meteor é que você tem um sistema de pacotes.
Você pode facilmente incorporar código que muitos milhares de desenvolvedores
ter escrito em todo o mundo em seu projeto Meteor.
Um exemplo disso é o que você pode fazer na etapa nove do tutorial, onde
você está tentando adicionar contas ao seu projeto Meteor.
Se temos um PHP CS50 projeto, teríamos
a contar com o quadro ou o nosso próprio código para fazer
certeza que lidar de forma segura senhas e nomes de usuários
e armazenar a base de dados e tudo isso.
>> Acontece Meteor tem algum pacotes para fazer isso por você,
e fazê-lo com muita facilidade.
O que podemos fazer é adicionar alguns pacotes.
Então, vamos fazer isso direito agora em nosso console.
Vou sair do projeto e agora entrar em simples Todos.
Agora, simples-Todos é o projeto que você
terá depois de ter sido feito com o passo 11 ou passo 12,
no final deste tutorial.
E vamos rapidamente olhar para ele para ver quais são os diferentes recursos que temos.
Vamos apenas ter certeza que está sendo executado.
Às vezes é preciso um tempo para refrescar, mas aqui está.
>> Nós temos a nossa opção para ocultar completar tarefas, e nós podemos entrar.
E isso foi feito com o pacote Meteor.
É ótimo.
Temos agora um username e sinal de senha no.
Mas o que se queria acrescentar um outro tipo de mecanismo de login?
Digamos que eu queria fazer logon com a minha conta Meteor.
Eu vou correr meteoro add, e este é a sintaxe para adicionar pacotes.
Posso dizer contas e accounts.meteor.
Vai encontrar agora o pacote e carregá-lo.
Você pode ver que eu não tenho encontrado o nome do pacote certo.
>> Então, como você descobrir sobre os pacotes?
Bem, há um grande site, feito disponível pelo povo Meteor,
chamado atmospherejs.com.
Atmospherejs, uma palavra, dot com, é um grande repositório
para encontrar todo o Meteor pacotes no repositório.
Posso pesquisar contas, e em seguida ele vai me mostrar todo o material relevante,
todos os pacotes com o nome da conta.
>> Enquanto que carrega, podemos tentar a adição de alguns outros pacotes.
Talvez o pacote Meteor não está funcionando agora, mas posso acrescentar Facebook.
Eu posso adicionar a conta e, em seguida, executar o projeto Meteor novamente.
Uma vez que isso começa, vamos ver o que mudou no site.
Você pode see-- eu poderia tem que atualizá-la aqui.
>> Eu tenho um botão para configurar Facebook login.
E aqui, eu tenho tudo as instruções de meteoros
preparou para você para a criação de um aplicativo do Facebook.
E você pode usar isso informações para adicionar seus IDs.
Uma vez feito isso, você vai ter Facebook login trabalhando em seu app.
>> Eu só vou chegar um ID de aplicativo e um segredo,
só para te mostrar como isso pode funcionar.
Você vai precisar de uma conta no Facebook para usar as opções de desenvolvedores do Facebook.
Deixe-me apenas encontrar rapidamente a Teclas de meteoro que são necessárias.
Eu tenho um outro projeto Meteor que eu vou usar,
e eu só vou tomar as chaves desse ficheiro.
>> E uma vez que eu encontrá-lo, eu vou ser capaz para copiar essas chaves em meu Facebook.
Então, aqui é uma chave.
E este é o segredo.
Você não deve ser compartilhar isso com as pessoas.
E então você dá a ele seu segredo app.
E isso é tão Facebook sabe que você é você.
E você salvar a configuração.
>> Eu acho que no processo I ter parado meu app Meteor.
Então, eu só quero fazer certeza de que ele ainda está lá.
OK, vamos fazer com que o nosso servidor Meteor está em execução para que a página web está em execução.
Observe se pararmos o Meteor servidor, a página ainda está lá.
Ele só não vai atualizar mais.
O servidor Meteor é necessário para certificar-se de que a página é ao vivo.
>> OK, eu já o apresentou, e agora Posso entrar com Facebook.
Agora é só uma questão de ter um pop up Facebook
e colocando em sua conta informações e registro no.
Depois de fazer isso, o Facebook pode nag você para um pouco mais de segurança.
Então vamos parar por aí.
A questão é que quando você está feito com isso, você vai ter Facebook login.
>> Meteor tem um monte de outros pacotes também.
Você pode logar-se com Google+.
Você pode logar-se com GitHub.
Você pode logar-se com o Twitter.
Ou se você procurar, você vai encontrar muitas outras coisas
como Meetup, LinkedIn, e Meteor Developer.
Então Meteor desenvolvedor foi o pacote que eu estava procurando.
meteoro adicionar contas-meteoro pelo desenvolvedor.
Nesse meio tempo, eu também quero recomendar
alguns outros pacotes para seus projetos.
Ele pode ser útil para incluir o pacote jQuery.
Isso permite que você use jQuery em seus clientes.
Você poderia fazê-lo apenas com uma linha, e Meteor vai se certificar de que você está atualizado
em jQuery.
Eu também recomendo houston: admin.
>> Isto é como uma espécie de phpMyAdmin tipo de ferramenta para o seu MongoDB.
Isso permite que você edite seus dados com bastante facilidade
sem ter que ir para o shell Mongo, como se eu tivesse feito mais cedo no seminário.
Portanto, agora que que está sendo executado, vamos executar Meteoro novamente e ver o que podemos fazer.
>> Você percebe que a adição de alguns pacotes pode ter-lhes apresentar algumas advertências.
Você não vai precisar se preocupar sobre isso com houston.
Assim, podemos agora têm a opção para configurar Meteor administrador.
E eles dão-lhe as direções se você quiser configurar isso.
>> Nós também podemos agora ir para / admin.
Este é trazido a você pelo pacote de Houston.
E este é Meteor interface de administração.
Você acabou de criar uma conta de administrador, assim.
E se você atualizar a página, você pode tem algumas coleções aparecendo.
>> É uma ferramenta muito útil, e eu recomendo fortemente.
Você pode ver que, por causa houston estava dando alguns erros,
não temos quaisquer coleções aparecendo agora.
A maneira como você usaria houston é certificando-se esta função fica
chamado em seus-Todos simples.
Assim, não faz Houston saber o que minhas tarefas são.
>> Montamos um Mongo coleção chamada tarefas.
Vamos entrar em simples-Todos e apenas certificar-se de que no JavaScript,
nós adicionamos tarefas para nossas coleções.
Temos agora salvo, e está construindo a aplicação, refrescante.
E vamos ver.
Agora, temos algumas tarefas.
E podemos acrescentar algumas novas tarefas.
Mas, se queremos adicionar tarefas, vamos fazê-lo com o próprio app.
>> Agora podemos acrescentar alguns dados.
Oi, esta é uma tarefa.
Parece meio estranho que não estamos vendo nenhuma tarefa.
Nós pode querer verificar se temos qualquer erros aqui, ou talvez em outro lugar.
Se formos para admin, que parece estranho.
Se você puxar o repositório após este seminário,
Eu vou ter certeza de que simple-Todos trabalha com houston.
Infelizmente, não parece estar trabalhando neste exato momento.
>> Existem outras questões?
Houston normalmente é um ferramenta que funciona muito bem.
Houston, especificamente, é um pouco buggier do que os outros,
mas eu recomendo que quando funciona.
Sim.
>> AUDIÊNCIA: O que você pode fazer com o pacote Facebook
uma vez que o usuário esteja conectado com seu Facebook?
>> ROGER ZURAWICKI: Uma vez um usuário de logado,
você pode fazer chamadas para a API do Facebook.
Um monte de que se encontra mais em como Facebook abre sua API.
Meteor, certifique-se tem a ligação.
Mas depois de tudo isso é uma questão de aprender a usar a API do Facebook.
AUDIÊNCIA: [inaudível].
ROGER ZURAWICKI: Tudo bem.
Muito obrigado por Neste seminário CS50 em Meteor.
Se você tiver alguma dúvida, você pode me enviar e-mail
no meu endereço de e-mail listados abaixo do seminário.
E eu vou ser feliz para responder às suas perguntas.
Eu também vou estar no CS50 Hackathon deveria
precisar de ajuda com seus projetos de meteoros.
Obrigado por assistir.