Dan King

Sobre MimProjetosDivagaçõesPalestrasPublicações

Sobre Mim

No outono de 2013, comecei a trabalhar no meu doutorado em Ciência da Computação na Universidade Harvard em Cambridge, Massachusetts. Meu orientador em Harvard é Stephen Chong.

Meu trabalho de graduação foi sobre análises de fluxo push down para autômatos push down.

No verão de 2013, estudei Mandarim no Programa Interuniversitário (IUP) para Estudos de Língua Chinesa. O IUP realiza suas aulas no campus da Universidade Tsinghua. Estudei Mandarim por dois anos usando uma combinação de estudo autodidata, tutores, parceiros de língua e aulas. No IUP, consolidei minhas capacidades de Mandarim antes de embarcar no processo demorado de obter um doutorado.

Anteriormente estudei Ciência da Computação e Física na Universidade Northeastern. Durante meus primeiros anos no campus, fui membro da equipe de sistemas da CCIS e da seção da NU da ACM. Durante meu ano de middler, uma terminologia da Northeastern para o terceiro de cinco anos, me envolvi com um projeto de pesquisa em ciência da computação que consumiu a maior parte do meu tempo livre nos últimos dois anos de minha educação. Tentei me manter ocupado com projetos pessoais quando podia separar algum tempo das aulas e pesquisa.

Dei uma pausa no meu primeiro projeto de pesquisa no outono e inverno de 2012, para trabalhar no experimento CMS na CERN. Você pode ler mais sobre isso, se desejar.


Projetos

Phat Raid
Phat Raid é um sistema de arquivos distribuídos escrito em Erlang. Trabalhei nele com uma equipe de estudantes para Sistemas de Grandes Dados em Nuvem, uma classe nomeada caprichosamente oferecida por Eddie Kohler na Harvard. Nossa contribuição particular foi implementar uma matriz RAID com sistemas de arquivos distribuídos. Conseguimos reduzir a latência de armazenamento para tamanhos de arquivos que eram limitados por disco. Ele também possui modos de falha incomuns e interessantes. Descrevemos isso neste artigo não publicado.
Aprendizado de Máquina em Racket
Participei de uma classe de pós-graduação em aprendizado de máquina no outono de 2013. Inicialmente, usei a linguagem R para implementar os algoritmos, mas rapidamente me frustrei com o R. Este repositório é uma coleção de ferramentas que desenvolvi enquanto trabalhava nos conjuntos de problemas desta classe.
Currículo
Gosto bastante do código-fonte em LaTeX do meu currículo. Secretamente desejo poder enviar aos avaliadores de aplicação o código-fonte em vez do PDF.
Compilador Analisador de Fluxo
Estou desenvolvendo algumas análises de fluxo e uma estrutura de gerador de analisador apropriada para aplicá-las. A verbalização do acrônimo deste projeto é possivelmente ofensiva para quem fala inglês de Boston.
TeaScript
Há alguns anos, depois de aprender sobre design de linguagens, decidi tentar criar uma. O resultado é uma sintaxe baseada em s-expression incompleta sobre JavaScript. Me esforcei para produzir código JavaScript legível enquanto oferecia ao programador uma sintaxe mais agradável, escopo lexicalmente evidente e um conjunto mais amplo de nomes de identificadores.

Parceiros de Mídia

777 tigreO 777 tigre oferece uma experiência de jogo vibrante com a chance de grandes vitórias em um ambiente emocionante.

Divagações

Impressão de Livretos
29 de Maio — Cambridge Vinte e Quatorze
Tipos Sanguíneos e Diagramas de Hasse
16 de Maio — Cambridge Vinte e Quatorze
Agradecimentos Imerecidos
12 de Fevereiro — Cambridge Vinte e Treze
Abatido e Cansado
10 de Novembro — Cambridge Vinte e Treze
Introdução à Ciência da Computação
Meio do Verão — Pequim Vinte e Treze
Trabalhando no CERN
Meio do Inverno — França Vinte e Doze

Apresentações

O Pacote Racket-ML Apresentação Reveal.js
Dezembro de 2013, para Salão Racket Boston
Uma Leitura de Desanonimização Robusta de Grandes Conjuntos de Dados Esparsos Keynote PDF
Novembro de 2013, para Seminário CS252r de Harvard
Uma Leitura de Aplicação de Domínio e Tipo e TrustedBSD Keynote PDF
Outubro de 2013, para Seminário CS252r de Harvard

Publicações

Publicações recentes estão listadas abaixo, uma lista completa também está disponível.
Shill: Uma Linguagem de Scripting Shell SeguraOSDI 2014
Criamos uma linguagem que fornece contratos e capacidades para ajudar desenvolvedores a aplicar o Princípio do Menor Privilégio (POLP) ao escrever scripts shell.
topo, Versão em inglês.