Language matters more than you think. And the more you think, the more you need language. This talk explores the connections between language and problem solving, how the metaphors that we use can expand or constrain our thinking, and how it all relates to our identities as software developers and as human beings. Along the way we'll learn about linguistics, category theory, Russian colors, gigantic bridges in France, and how to pronounce the word "lacuna". And you'll definitely have some things to think about. Hopefully, in new ways.
The open source movement has fallen far short of the idealism of its earliest proponents. What began as a utopian vision of programmers creating free software for free distribution in practice reflects the same significant cultural issues prevalent throughout the software industry: problems of unequal access and oppressive power structures enabling a privileged few to act as gatekeepers of access and arbiters of value. This talk explores the fundamental principles upon which open source was based and how each in turn has been subverted by the reality of human nature.
Many programmers enjoy making useful chat bots that execute simple commands, enforce rules of a community, and even do deployments via chat-ops. But what if your bot could go beyond these capabilities and interact with people in conversation?
Introducing Alice, a friendly, smart, and sometimes smart-ass companion that makes online communities more interactive and personable. Alice seems genuinely intelligent. She remembers facts about people (including pronouns, history, trivia, and bios), lets them play a text-based Zork-like dungeon game, and— most interestingly— comprehends simple English!
She's also complex: built on a custom natural language processing (NLP) framework complete with grammar parsers to understand simple sentences, context stacks that track conversation topics, and a pipeline architecture inspired by functional programming. This talk includes an interactive demonstration of a unique approach to artificial intelligence that will inspire you to take your own bots beyond the realm of triggering animated gifs, providing practical and entertaining functionality with personality and charm.
Relational databases have come a long way in the past decade, but sometimes complex data models (a map of network infrastructure, or a quantum-entangled network of social relationships) call for a different approach. How can we address these sorts of modeling challenges? This talk will explore practical uses of Neo4J, a graph database designed to solve the problems of connections and relations that are too complex for traditional relational databases. We'll learn about managing and querying highly connected data and explore the power of graph databases in taming our complex data problems.
The talk starts with a discussion of what graph databases are and the common problems that they solve. It focuses on several real-world use cases, including examples from network infrastructure, social media and artificial intelligence. It also covers specifics of using the Neo4j ORM in Ruby and Rails and explore fully populated data sets with complex relations to demonstrate the power and flexibility of graph databases for storage and querying.