A coder considers the waning days of the craft
In this New Yorker article, the author reflects on the changing landscape of programming and the role of artificial intelligence (AI). The author, a seasoned programmer, recounts his experiences working on a crossword puzzle project with the assistance of GPT-4, an AI model. He is amazed at how quickly and accurately the AI is able to deliver code, even for complex tasks like creating an iPhone app. The author reflects on the impact of AI on the field of programming and wonders if the traditional skills and knowledge that programmers have spent years acquiring will become obsolete. He reminisces about his own journey into programming, starting from a childhood fascination with computers and gradually teaching himself to code. Despite the challenges, he found programming rewarding, characterized by patience and perseverance. The author ends by acknowledging that while AI has transformed the coding process, there is still value in understanding the principles and concepts behind programming.
Designing a programming language to speedrun Advent of Code
In this blog post, the author discusses the development of a personal programming language called Noulith. The author initially created Noulith to solve and write puzzlehunts, in which they needed a better programming language to search for words that satisfy specific constraints. As they worked on Noulith, they found other use cases for the language, such as solving combinatorial problems and completing coding challenges. The blog post goes into detail about the design choices and features of Noulith, including syntax choices, data types, and scoping. The author also reflects on the challenges and trade-offs they encountered in developing the language. They acknowledge that Noulith is a personal language designed to suit their own needs and preferences, and they don't expect it to be widely adopted. However, they hope that some of the language's experimental features might influence future developments in major programming languages.
Building an occupancy sensor with a $5 ESP32 and a serverless DB
f interesting patterns and trends, and using forecasting models could provide insights into future occupancy trends. However, there are still challenges to address, such as the limitations of Bluetooth beacons, the impact of MAC address randomization on accuracy, and the need for reliable communication and data collection methods.
The process of designing a solution involves considering factors like accuracy, availability time, communication methods, data storage, and data analysis. The author experimented with different hardware options, including a Raspberry Pi and an ESP32 device, to collect occupancy data. They encountered obstacles along the way, such as device crashes and limited RAM capacity, but found solutions by optimizing data structure and switching to a more reliable hardware manufacturer.
The author also discussed their observations from the collected data, which reflected the movement of students around the campus. Peaks in occupancy coincided with class change times, validating the accuracy of the device in tracking trends. The author recognized the potential for time series forecasting models to analyze the data further and predict future occupancy patterns.
Overall, the process of designing and implementing an occupancy data collection system for a college campus involves addressing various challenges and making informed decisions regarding hardware, communication methods, and data analysis techniques.
Inequalities, convergence, and continuity as "special deals"
The author suggests using the intuition from "deals" one often sees in advertisements to understanding mathematical concepts in analysis. They draw an analogy between upper and lower bounds and buying and selling currencies, where an upper bound is an assertion that can be "bought" and a lower bound is an assertion that can be "sold". They demonstrate how a system of inequalities and equations can be viewed as a currency exchange board, similar to those in airports. This perspective can help improve upper bounds by taking appropriate linear combinations of inequalities. However, this analogy breaks down when inequalities are used in a more non-linear fashion. The author also discusses how concepts like convergence and continuity can be understood in terms of buying and selling accuracy. For instance, convergence of a sequence to a limit can be seen as unlocking different levels of accuracy "perks". Continuity is analogous to a conversion program where accuracy benefits from one company can be traded for new accuracy benefits from another company. The author also briefly discusses uniform continuity, equicontinuity, differentiability, smoothness, and measurability, proposing that these concepts can be viewed as economic transactions. Overall, the author encourages readers to explore other mathematical concepts that can be reinterpreted as economic transactions.
Maxar's Open Satellite Feed
Maxar, a satellite imagery company, operates a fleet of satellites that capture high-resolution images of the Earth. They earned around $1.6 billion last year from selling imagery produced by these satellites. The price for new images ranges from $25 to $44 per square kilometer. However, Maxar also runs an Open Data Programme, where users can access over 100 imagery sets of areas before and after they were affected by disasters in exchange for their contact details. For those unwilling to share their contact information, Maxar has published a freely available SpatioTemporal Asset Catalog (STAC) that provides URLs and metadata for 28 disaster events. The author of this post shares their process of downloading and analyzing these freely available satellite images using tools like GDAL, Python, and DuckDB. The downloaded dataset comprises almost 1 TB of TIFFs, with file counts varying for each event. The post also provides information about the four satellites used by Maxar to capture the imagery and their capabilities.