in

A Decade of AI: Reflecting on Progress and Milestones (#259)



**Introducing Blackbird: A New Search Engine Developed by Github**

Blackbird is a newly developed search engine by Github that allows for quick code searching. It is said to be twice as fast as the previous tool. What makes Blackbird stand out is its additional features and the fact that it is fully written in Rust.

**New Attack on PyPI Discovered**

ReversingLabs, a research group, has identified a new attack on PyPI using compiled Python code to avoid detection. This may be the first attack to exploit direct execution of Python Byte Code files. Previously, on May 20th, PyPI temporarily suspended new member registrations and projects due to an increase in malicious software packages.

**OpenAI Requests Removal of GPT4free Project**

Recently, OpenAI sent a letter to Xtekky requesting the removal of their GPT4free project within five days, or else they would face a lawsuit. The project allows free access to GPT4 and GPT3.5 models by redirecting queries through websites like You.com, Quora, and CoCalc and providing answers. Although a new project, it has quickly gained attention.

**Improving Database Workload with Vectorized Engines**

Traditionally, relational databases (DBMS) have been implemented using the Volcano model, where each data row is processed sequentially. This approach is suitable for OLTP queries or back when RAM and CPU were limited and expensive. However, users often want to execute OLAP queries like join and aggregate on transactional data. To address this, DBMSs distribute the workload across multiple CPU cores to reduce the amount of data each CPU needs to process and improve query response time. However, this approach does not fully solve the problem, as the number of CPUs required increases as more data is introduced.

In addition to adding more CPUs for processing, modern DBMSs are also exploring another approach: how to process more data at once using the same CPU core, leveraging the power of SIMD instructions in new generations of CPUs. This approach is known as a Vectorized Engine and was first introduced in 2005 through the paper “MonetDB/X100: Hyper-Pipelining Query Execution” by OceanBase. This article provides insights into what a Vectorized Engine is, why it is fast, and invites readers to learn more through the article “Implementing a Vectorized Engine in a Distributed Database” by OceanBase.

**Continuous Learning for Software Engineers in the AI Revolution**

In any field, continuous learning is essential for personal improvement. With the rise of the AI revolution, software engineers face challenges in keeping up with the latest technologies. Tav Herzlich, a software engineer, was asked a series of questions by InfoQ at the NDC Oslo 2023 conference, held from May 22nd to 26th in Oslo, Norway:

– How can software engineers assess their knowledge level in a specific topic or technology?
– How can they avoid becoming overwhelmed with excessive technological knowledge?
– How should they manage and allocate time to learn and explore new technologies?

To find detailed answers to these questions, read the article “Continuous Learning as a Software Engineer” featuring Tav Herzlich.

**The Evolution of AI Applications in the Past Decade**

The past decade has been a dynamic and exciting journey for the field of AI. Innovations in Deep Learning have unlocked numerous opportunities in various sectors, such as autonomous vehicles and e-commerce systems. Thomas A. Dorfer, a Data Scientist at Microsoft, takes readers on a reverse timeline, exploring the development of AI applications over the past 10 years. The article highlights significant milestones in each stage, from AlexNet in 2013 to the GPT chat application in 2022, which has recently gained popularity in the tech community. The goal is to provide readers with a comprehensive overview of remarkable advancements in AI from its early stages to its integration into everyday life. The article also raises concerns about the misuse and dependency on AI as these applications become more intelligent, emphasizing the need for cautious integration.

**Finding the Maximum Distance in a Seat Array**

Given an array of seats representing a row of seats, each element in the array can have one of two values:

– 0: Representing an empty seat
– 1: Representing an occupied seat

Alex wants to choose a seat that maximizes the distance to the nearest person. Find the maximum distance.

For example:
Input: seats = [1,0,0,0,1,0,1]
Output: 2

By choosing the seat at position 2, Alex’s maximum distance to the nearest person is 2. For other positions, the maximum distance is 1. Therefore, the maximum distance to the nearest person is 2.

To better understand the problem, we can illustrate it as arranging meeting rooms, where each pair of natural numbers [left, right] represents the start and end time of a meeting. The goal is to find the minimum number of meeting rooms needed for all meetings to take place.

Suppose a meeting [1, 5] is currently happening, and the next meeting is [3, 6]. We can observe that at least 2 meeting rooms are needed because [1, 5] and [3, 6] overlap at the interval [3, 5].

Suppose meetings [1, 5] and [3,



Leave a Reply

Your email address will not be published. Required fields are marked *

GIPHY App Key not set. Please check settings

Get to Know Simon King, Manager at Octopus Ventures EIS

신규 공간 컴퓨터, 확장현실 (XR)은 무엇인가요?