How to use C from Python? — Learning at Lambert Labs #9

Welcome to Learning at Lambert Labs session #9. This week, Amelia Crowther, explains how to use pre-existing C code from Python modules.

In Today’s Learning Session:

  • Reasons to use C code from Python (old legacy apps, performance, access to the C standard library)
  • Two methods: ctypes and creating a C extension
  • Demo using ctypes
  • ctype function annotations
  • Creating a C extension module
  • Demo using setup.py to create a C extension
  • Q&A from our developers!

🔊 Subscribe to our channel for weekly learning sessions! https://www.youtube.com/channel/UCi7G5sY0IWqSNUMnRptuJmw

How to use Cython? — Learning at Lambert Labs #8

Welcome to Learning at Lambert Labs session #8. This week, Aaron Elijah gives an introduction to using the Cython project to overcome bottlenecks in Python applications.

In Today’s Learning Session:

  • CPython PyObjects.
  • Machine code vs. Bytecode.
  • Python garbage collection and CPU caching.
  • Introduction to Cython programming language.
  • Advantages of Cython vs. Python
  • Demo with Flask and Mandelbrot sets.
  • Profiling Cython and adding static types.

🔊 Subscribe to our channel for weekly learning sessions! https://www.youtube.com/channel/UCi7G5sY0IWqSNUMnRptuJmw

How to make decentralised apps with Ethereum? — Learning at Lambert Labs #7

Welcome to Learning at Lambert Labs session #7. This week, Ramin Tawab gives an introduction to the first steps of making a decentralised app using the Ethereum blockchain.

In Today’s Learning Session:

  • Client-Server model.
  • Decentralised model.
  • What is a Blockchain?
  • How all regular Web API requests and messages are eventually handled by the backend server.
  • Ethereum blockchain (gas and transactions per blocks).
  • Overview of local development tools including Ganache , Metamask and Truffle
  • Example with simple messenger app
  • Q&A from our developers.

🔊 Subscribe to our channel for weekly learning sessions! https://www.youtube.com/channel/UCi7G5sY0IWqSNUMnRptuJmw

Why did Slack go down in Jan 2021 — Learning at Lambert Labs #6

Welcome to Learning at Lambert Labs session #6. This week, Tom Kobialka, takes us through how the popular business communication platform, Slack, suffered a disastrous outage on 4th Jan 2021 and what could have been done to prevent it.

In Today’s Learning Session:

  • The origins of the Slack outage on 4th Jan 2021 and the ensuing twitter storm.
  • Deep dive into how Slack’s app architecture works.
  • Websocket connection of clients to a message server.
  • How all regular Web API requests and messages are eventually handled by the backend server.
  • The explosive growth of Slack.
  • Slack vs. quota limits and their solution.
  • AWS VPC Peering and Transit Gateway.
  • The timeline of the outage.
  • Analysis of blame: Slack vs. AWS.
  • Q&A from our developers.

🔊 Subscribe to our channel for weekly learning sessions! https://www.youtube.com/channel/UCi7G5sY0IWqSNUMnRptuJmw

How to use Docker as your Python Virtual Environment? — Learning at Lambert Labs #5

Welcome to another Learning at Lambert Labs session. Each week we release videos, presented by our developers, giving quick lectures on a chosen topic in technology.

This week’s presenter is Guy King and his presentation takes us through a simple demo of how to use a Docker container as your Python virtual environment in your project.

In Today’s Learning Session:

  • What’s wrong with existing Python virtual environment setups?
  • Pros of using Docker.
  • Cons of using Docker.
  • Example repo with Docker virtual environment.
  • Customisation and hot loading.
  • Add a user inside running Docker container.
  • Q&A from our developers.

📖 Slides: https://docs.google.com/presentation/d/1Ywj9Tt1OrCFwUsAV0Nz8covzWHb-uoVTcgIlYex-qcM/edit?usp=sharing

🔊 Subscribe to our channel for weekly learning sessions! https://www.youtube.com/channel/UCi7G5sY0IWqSNUMnRptuJmw

Our engagement aims to be conversational and developers are encouraged to ask questions to expand on the ideas that they heard. Each presenter has the freedom to choose whatever topic they wish, as long as it is within a genre of technology or computer science. We are a Python development agency at heart, but that doesn’t stop us showing off our strong computer literacy and broad technical knowledge!

What is OpenCL? — Learning at Lambert Labs #4

Welcome to another Learning at Lambert Labs session. Every week, we release videos, presented by our developers, giving quick lectures on a chosen topic in technology.

This week’s presenter is Amelia Crowther and her presentation takes us through programming a GPU using OpenCL and how you can use it to improve performance for mathematical operations.

In Today’s Learning Session:

  • Overview of GPUs.
  • General purpose programming on GPUs.
  • OpenCL vs. vendor-specific frameworks.
  • How OpenCL allows you to interface and program GPUs.
  • OpenCL tasks.
  • OpenCL vs. Python on CPU.
  • Quick Q&A from our developers.

📖 Slides: https://docs.google.com/presentation/d/1w39YFjE97t2t7f_OmSmspu9llawhnFtXwjtlx3ksK4A/edit?usp=sharing

🤖 Code: https://drive.google.com/drive/folders/1JqRImybjafnVMqC3vIR_i5giDmQbFIBh?usp=sharing

🔊 Subscribe to our channel for weekly learning sessions! https://www.youtube.com/channel/UCi7G5sY0IWqSNUMnRptuJmw

Our engagement aims to be conversational and developers are encouraged to ask questions to expand on the ideas that they heard. Each presenter has the freedom to choose whatever topic they wish, as long as it is within a genre of technology or computer science. We are a Python development agency at heart, but that doesn’t stop us showing off our strong computer literacy and broad technical knowledge!

What is the Linux File System? — Learning at Lambert Labs #3

Welcome to another Learning at Lambert Labs session. Every week, we release videos, presented by our developers, giving quick lectures on a chosen topic in technology.

This week’s presenter is Aaron Elijah and his session is an introduction to the Linux File System and how knowing your way round can make you a better developer. See the video below.

All demonstrations were done in Ubuntu 20.04 LTS.

In Today’s Learning Session:

  • Motivation for study (use in Docker, learn more about hardware-software integration, applies to MacOS).
  • Posix-compliant vs. ‘Unix-like’.
  • Showcase diagram of a typical Linux File System.
  • /boot partition and typical booting process
  • /bin directory and symlinks
  • /dev directory and demonstration with USB device
  • /etc directory and comparison of /etc/ssh vs ~/.ssh
  • /var directory and use in Docker for finding log files
  • /usr directory, its origin and why many there are many symlinks from /bin and /lib
  • /opt directory for manually installed, self-contained software from vendors
  • Where to find more information.
  • Quick Q&A from our developers

📖 Slides: https://docs.google.com/presentation/d/12xKKnwirNkEzcMRhRkRUruEMeSt9OpYiYYgknZBAAU0/edit?usp=sharing

🔊 Subscribe to our channel for weekly learning sessions! https://www.youtube.com/channel/UCi7G5sY0IWqSNUMnRptuJmw

Our engagement aims to be conversational and developers are encouraged to ask questions to expand on the ideas that they heard. Each presenter has the freedom to choose whatever topic they wish, as long as it is within a genre of technology or computer science. We are a Python development agency at heart, but that doesn’t stop us showing off our strong computer literacy and broad technical knowledge!

What is Web Assembly? — Learning at Lambert Labs #2

Welcome to the second Learning at Lambert Labs session. Every week, we release videos, presented by our developers, giving quick lectures on a chosen topic in technology.

This week’s presenter is Ramin Tawab and his session is an introduction to WebAssembly and how we can use it to embed non-JavaScript code in web applications. See the video below.

In Today’s Learning Session:

  • Issues in JavaScript (different implementations, inherently slow, forced to use JS ecosystem on the web)
  • Introduce WebAssembly as the solution
  • WebAssembly under the hood (data types and stack-based VM)
  • Demonstration
  • Famous use-case (AutoCAD Browser)
  • Pyiodide: Python on the web
  • Containers vs. WebAssembly VM.
  • Future: removing JS glue code, WASI, …
  • Q&A from our developers

📖 Slides: https://docs.google.com/presentation/d/17sANSHbF6HCwq1spJK8f5QfrjVF7Zg6aXFaEp7o8O9s/edit?usp=sharing​

🔊 Subscribe to our channel for weekly learning sessions! https://www.youtube.com/channel/UCi7G5sY0IWqSNUMnRptuJmw

Our engagement aims to be conversational and developers are encouraged to ask questions to expand on the ideas that they heard. Each presenter has the freedom to choose whatever topic they wish, as long as it is within a genre of technology or computer science. We are a Python development agency at heart, but that doesn’t stop us showing off our strong computer literacy and broad technical knowledge!

What is a K-Map? — Learning at Lambert Labs #1

Welcome to the first Learning at Lambert Labs session. Every week, we release videos, presented by our developers, giving quick lectures on a chosen topic in technology. Our engagement aims to be conversational and developers are encouraged to ask questions to expand on the ideas that they heard. Each presenter has the freedom to choose whatever topic they wish, as long as it is within a genre of technology or computer science. We are a Python development agency at heart, but that doesn’t stop us showing off our strong computer literacy and broad technical knowledge!

In this week’s video, Tom Kobialka, one of our senior developers, takes us through the basics of circuit design and how a Karnaugh map (or K-Map) can be used to simplify the combinatorial logic of a seven-segment display.

In Today’s Learning Session:

  • Introduction to Circuit design
  • Seven-segment displays
  • Combinatorial logic
  • K-Map simplification
  • Q&A from our developers

🤖 Circuit Design: https://simulator.io/board/B4EMPsoRWh/2

📖 Slides: https://drive.google.com/file/d/1XeQ1UO9cxSSCsGaoJbfTI6CgrqH4n9SO/view?usp=sharing

🔊 Subscribe to our channel for weekly learning sessions! https://www.youtube.com/channel/UCi7G5sY0IWqSNUMnRptuJmw

Lambert Labs named as one of Top B2B Firms for software development in Britain by Clutch

artifical intelligence
Lambert Labs Clutch

We’ve been recognised by Clutch as one the Top B2B Firms for software development in Britain!

Clutch is an independent B2B review and ratings platform. Various past and present clients of Lambert Labs have been kind enough to give us outstanding reviews during 2020 and we’re pleased that this has led to us receiving this award.

To find out more about our previous projects and reviews check our Clutch profile. And if you want to get in touch for help with your software development then get in contact with us.