The Young Man And The C: Swallowing The Red Pill

Note: This is a lightly edited reprise of a talk given a few years ago at LUG

Topic

Many good, experienced high-level language programmers do not learn C or C++ well until they suddenly need to write an FFI extension, make an emergency patch to an existing C or C++ codebase, re-implement the bottleneck component in the application stack in a fast language, take an attractive job with a low-level programming component, or otherwise move from their comfortable language of choice and swallow the Red Pill of coding closer to the machine. If you are already a programmer, you don't need to be taught how to program, and your google-fu is strong for looking up detailed syntax. Instead, this will be a crash course in leveraging skills you learned in a high-level environment and transferring them to these low-level tools, acquiring some new skills you simply never needed before, and a building a mental picture of where the road to expert, idiomatic mastery lies. We will focus on plain C because C++ is too complex to cover well in a single talk, but much of the material will apply directly to C++. Perhaps surprisingly, some of it will even make you a better programmer in your favorite comfortable, higher-level language.

Bio

Some little-known facts about Dustin Laurence:

  • His first exposure to computers was playing Colossal Cave
    Adventure and the bootleg Fortran IV version of Zork on his cousin's work mainframe using a glass teletype and a modem with a cradle for the handset.

  • His first good programming language was C. He lies and pretends that C is where he learned to program because 8-bit BASIC is embarrassing.

  • He once gave up trying to learn the libc low-level I/O functions from the Ultrix man pages because he thought a buffer must be some kind of abstract data type provided by the C library and he couldn't find any documentation.

  • He once confidently predicted that Linux was a temporary fad that would be replaced by BSD for serious work once the Berkeley codebase was completely free. It's probably a good thing he doesn't gamble.

  • He avoids social media for the same reason he doesn't do crack cocaine.

  • These days he happily hacks Python for Spring Labs.

Meetup Event Page


SGVLUG/SGVHAK BBQ #7

The SGVLUG & SGVHAK potluck BBQ will be on Saturday, July 27th from 5pm to 9pm to Lan's house in the city of San Gabriel.

Please RSVP on the Google form below by Thursday, July 25th. The form will automagically update with RSVP count and what people are bringing.

https://forms.gle/sk5CQu3Z4JQnS4Lv9


Org-mode with Spacemacs & Webhooks and Slack

Org-Mode with Spacemacs

The best editor is neither vim nor emacs, it’s Vim and Emacs! Spacemacs is a community-driven Emacs distribution that comes built-in with many popular packages, including Evil-Mode - a vim layer for Emacs, and Org-Mode - a tool for note taking and/or project management that utilizes a rich plain text markup language. This presentation will be a live demo of some of orgmode and spacemacs' features and capabilities.

Bio

Sean Marquez graduated with a B.S. in Mechanical Engineering, specializing in design of dynamic systems, from UC Irvine. During his undergrad, he project managed a CubeSat program where he developed a passion for space exploration. He worked for an OEM aerospace consulting firm for over a year as an associate mechanical design engineer. In 2015, he joined and collaborated with an online team, performing numerical simulations & control systems design, for rLoop – a non-profit global think tank that won the innovation award for the first SpaceX hyperloop pod competition. Sean is currently a worker-owner at Space Cooperative Inc., involved with development and testing of smart contracts to be utilized by the Space Decentral network, collaborating on Coral - an open source robotic space mission to mine lunar regolith for in-situ resource utilization, and leading efforts on the adoption of the Model-Based Systems Engineering (MBSE) methodology.

Webhooks and Slack

In this presentation, Ashok Modi is going to use Slack events as a guide to describe what webhooks are, how they are different from a traditional API, and some of the ways you can deal with data coming from webhooks. This talk will involve looking at code, along with learning about middleware and queues.

Bio

Ashok is currently a Software Engineer for the CARD. His primary duties involve working on the core CARD product and intimately working with various technologies to bring their goals to fruition. Outside CARD, he dedicate some of his time contributing back what he learns and/or creates back to the open source community.

Meetup Event Page


Hack for LA, sed and Regular Expressions, Linux Kernel Boot Process

This month is open mic night with three short talks.

Claire on Hack for LA The two biggest levers for improving people’s lives at a scale are through technology and government. At Hack for LA, we bring together coders, designers, entrepreneurs, students, government staff, activists, and other civic-minded people to solve the LA region’s biggest challenges through technology. We are a network of people making government work for the people, by the people, in the digital age. Claire will share a brief overview of some civic-hack projects that are currently being built at Hack for LA, which she has been attending for 3 months.

Claire has many interests but there are two things she always gravitates to: community service and tech! She holds a B.S. in Public Policy and Law from the University of Southern California (Fight on!) and has experience working as an IT Project Coordinator. She is now pursing a career in software development and loves that as a new developer, she can immediately combine her love for community service and computer programming at Hack for LA. On her free time, she volunteers at various tech meetups and conferences. She aims to be part of something bigger than myself by building meaningful technologies that connect people and create communities.

Lan on sed and regular expressions Sed is a Linux stream editor that enables text manipulation on the command line. It makes a great introduction to regular expressions, which are used as search patterns to find or find-and-replace text.

Lan spends the majority of her working hours monitoring and troubleshooting data processing systems on Linux-based computer clusters. She has accumulated a number of tips and tricks to deal with the command line. Her arsenal includes: GNU screen, awk, sed, shell scripting, remote ssh command execution, bash command history, and a variety of system utilities

Jess on Linux kernel boot process Most of us don’t pay attention to the text that scrolls by during bootup, or maybe our distros hide it from us. We know we can dual boot OSes with a menu, but what else does that menu do? We’ll take a brief survey of how the Linux kernel boots, and how GRUB helps configure an appropriate environment for the kernel.

Jess is a software developer who regularly emcees the SGVLUG meetings and keeps us entertained with a fun spin on Linux in the news.

Meetup Event Page


PyCon 2019: A Brief Overview

PyCon 2019: A Brief Overview

James Mertz will give a brief overview of PyCon 2019 held in Cleveland, OH. He’ll cover some of the interesting talks, some cool announcements, show off some swag, and more.

About James

James is a Software Assurance Engineerng at Jet Propulsion Laboratory by day and author at RealPython.com by night. In his spare time he also volunteers as a Scout Master for a local Pasadena Scout Troop.

Meetup Event Page


ZeroMQ Connect ALL the Things

ZeroMQ: Connect ALL The Things

Writing applications in a multi-core, multi-threaded, multiprocess, networked world means communicating between many threads and processes over shared memory, IPC, and the network. This often involves multiple low-level libraries (e.g. most languages’ built-in threading, unix IPC, Berkeley sockets) with different programming paradigms, and may require a potential a scaling bottleneck in the form of a central server or broker to make it all manageable. ZeroMQ claims to be a better alternative, providing a single, higher-level message-passing toolkit across threads, processes, and networks, and languages, and specifically supports decentralized messaging. That should make it a slower, clunkier compromise for any one task, but it claims to be both better and easier to use for any one of those problems than a dedicated library. Extraordinary claims require extraordinary evidence, so we’ll examine how it compares to standard threading and networking facilities and see how easily we can just connect all the things like Lego bricks, regardless of type or underlying transport. Of course it wouldn’t be any fun without including some very informal performance smackdowns.

About Dustin Laurence

Intending to become a programmer ("developer" hadn't been invented by the marketing department yet), Dustin got sidetracked and spent more time than he cares to admit doing theoretical physics, a background filled with continuous mathematics almost entirely irrelevant to computer science. He eventually returned to his original love of software. He avoids social media for the same reason he doesn't do crack cocaine.

Meetup Event Page