Back in college, I had to take some introductory courses in electronics and electrical engineering. I was confused by what I was learning — and ever since, electronics have seemed like a cross between magic and a mystery to me. I’m not sure whether it’s good news or bad, but a large number of other software developers seem to feel the same way as I do. But of course, it would be really nice to know how our computers work, and what the basic principles are of the electronics within. In this talk, Dror Helper comes to the rescue, offering a crash course in electronics for people with a software background. He starts from the beginning, describing such concepts as voltage, resistance, and current, and quickly moves onto more advanced topics.
Is your Web application is getting a bit big and bulky on a single server? You might be thinking of moving to a more distributed, microservice-based architecture. And in many cases, that’s a great way to go about things. But microservices aren’t a panacea, having their own issues and pain points. What are the trade-offs associated with a microservice-based architecture? How do you define the dependencies (code and API) between the different services? And how can you avoid a “distributed monolith” — a situation in which you have many microservices that are dependent on one another? In this talk, Ben Christensen describes the different ways to think about such microservice- systems, and how to avoid some of the more common pitfalls.
The civil war currently taking place in Syria has cost many lives, and has created a huge number of refugees. Many of these refugees are now living in a refugee camp at Za’atari, in neighboring Jordan. Under circumstances that range from difficult to grave, is it reasonable to think that young people can get an education, let alone a technical education that’ll enable them to create high-tech devices and applications? In this talk, Karen E. Fisher and Katya Yefimova describe their efforts to do just that — teaching, facilitating, and encouraging these young refugees to create new things, to collaborate with their peers, and to create things that can help themselves and others.
A growing number of organizations are using containers, such as docker, to deploy applications and parts of their infrastructure. How well do contains work with a database such as PostgreSQL? What do we need to know about installing, configuring, and deploying PostgreSQL in this way, and what mistakes should we aim to avoid? In this talk, Jignesh Shah shares his experiences combining PostgreSQL with Docker. He describes the reasons why it’s useful to work in this way, and how we can deploy and then monitor our PostgreSQL instances in a number of ways.
One of the growth areas for Python over the last few years has been in the area of data science: Tools such as Jupyter (aka “IPython Notebook“), along with NumPy and Pandas, have made Python one of the main languages that people use when doing data science. But how does a data scientist use Jupyter? How does a data-science firm use it to promote collaboration and exploration? And where are notebooks note less preferable than traditional Python modules? In this talk, Brian Lange provides a high-level overview of where and how Jupyter notebooks are used in his data-science firm, discussing their relative advantages and disadvantages in consulting and training.
In the last few days, the question of encryption, and whether governments can and should force companies to reveal customers’ data, has become big news. Apple has announced that they will not make it possible for the US government to read the contents of a terrorist’s iPhone, even thought that might provide clues to the shooting in which they participated, and to others connected to that crime. But is it a wise idea to give government access to all of our data and our communications? What implications does this have for government, for technology, for privacy, and for democracy? In this talk, Ron Rivest describes these issues, and considers whether granting such access to governments is more or less secure.
In theory, programmers spend lots of time developing new software. But in practice, developers spend a great deal of time debugging, trying to figure out why their code doesn’t do what they expect. The problem is that most debuggers operate similarly to how debuggers did 20, 30, or even 40 years ago. In particular, there’s no way to run a program backwards; part of debugging means that you need to catch the problem as the program runs, and then examine the state. In this talk, George Hotz introduces the idea of “timeless debugging” — in which the debugger knows how to unwind history, letting you backward as well as forward.
If you have a popular Web site, then you’ll realize (sooner or later) that the static content can and should be offloaded to a third-party service, known as a “content delivery network” (CDN), that specializes in getting content to users as quickly (and locally) as possible. Netflix also used CDNs for some time — but over the years, they have moved away from using third-party CDNs, and in favor of using their own, highly scaled, solution. Why and how did they make this change? How did this affect Netflix and its users? In this talk, Prasad Jonnalagadda describes the architecture that Netflix adopted, and the implications that this has had on the company and their technical teams.
People in the software industry are constantly talking about productivity. We use languages that will make our developers more productive. We use techniques, such as agile, which are supposed to deliver more value in less time. Some companies rank and pay developers based on their productivity — or outsource overseas because those developers are seen as more productive. But just what does “productive” mean, and how do we measure it? In this Webinar (without video, but with slides), Steve McConnell discusses this issue, and what it means for the software industry.