ericjmorey 1 week ago • 100%
Pixi is more than a drop in replacement for Conda. Pixi being able to replace Conda and do everything that uv does (Pixi has incorporated uv into it's tools) seems to make it a more complete toolset than uv alone.
ericjmorey 1 week ago • 100%
There seems to be mixed reactions to this suggestion. I don't know enough to understand why.
ericjmorey 1 week ago • 100%
What?
ericjmorey 1 week ago • 80%
Why is there often no discussion or mention of Pixi along with uv in conversations about Python tooling? Is it because uv has a lot of VC money to get attention while Pixi doesn't?
ericjmorey 2 weeks ago • 100%
Or The Odin Project if you don't want to cover Python in the curriculum and just stick to JavaScript.
https://www.theodinproject.com/
(The Odin Project also has an option for Ruby along with JavaScript)
ericjmorey 2 weeks ago • 100%
A git commit is a snapshot. The node-based tree structure is an artifact of recording pointers to other snapshots and labeling snapshots with a branch name.
ericjmorey 2 weeks ago • 100%
Seems like you should make something less focused on games and solve problems in a different domain.
ericjmorey 2 weeks ago • 100%
I think they're using it strictly in Tiling mode and are using directional switching. I generally work with only one window visible so I'm not sure how much I'm going to like COSMIC where that workflow seems not to be the primary focus. But it is only in alpha and I'm not actually going to give it a real try until it becomes the default in Pop!_OS. I Hope it's not too big an adjustment for me.
ericjmorey 2 weeks ago • 100%
What have you made using Python so far?
ericjmorey 2 weeks ago • 100%
I was just guessing based on the SwapWindow name. That you copied definition doesn't help me understand what it's supposed to do.
I'm surprised that [Super] + [Tab]
and [Alt] + [Tab]
aren't exactly what you're looking for because System(WindowSwitcher)
seems like the name of something that would do exactly what you're after.
I haven't installed COSMIC, so I can't test it all out myself right now. But it feels like something that should exist as you described.
ericjmorey 2 weeks ago • 100%
Try Odin
ericjmorey 2 weeks ago • 100%
Maybe [Super] + x
?
See:
https://github.com/pop-os/cosmic-comp/blob/master/data/keybindings.ron
ericjmorey 2 weeks ago • 100%
Please tell us more about what specifically you're stuck on.
ericjmorey 2 weeks ago • 100%
Maybe having an unmaintained extension repo the same way they have an experimental extension repo would allow them to be be even more aggressive and and make it easier to find maintainers for orphaned repos which could be moved back into unstable.
ericjmorey 2 weeks ago • 100%
Thank you for putting these resources together!
And thanks to @minnix@lemux.minnix.dev for doing an awesome job posting great articles to this community!
29 August 2024 Jonathan Carter writes: > As it stands now, bcachefs-tools is impossible to maintain in Debian stable. While my primary concerns when packaging, are for Debian unstable and the next stable release, I also keep in mind people who have to support these packages long after I stopped caring about them (like Freexian who does LTS support for Debian or Canonical who has long-term Ubuntu support, and probably other organisations that I’ve never even heard of yet). And of course, if bcachfs-tools don’t have any usable stable releases, it doesn’t have any LTS releases either, so anyone who needs to support bcachefs-tools long-term has to carry the support burden on their own, and if they bundle it’s dependencies, then those as well. > > I don’t have any solution for fixing this. I suppose if I were upstream I might look into the possibility of at least supporting a larger range of recent dependencies (usually easy enough if you don’t hop onto the newest features right away) so that distributions with stable releases only need to concern themselves with providing some minimum recent versions, but even if that could work, the upstream author is 100% against any solution other than vendoring all its dependencies with the utility and insisting that it must only be built using these bundled dependencies. I’ve made 6 uploads for this package so far this year, but still I constantly get complaints that it’s out of date and that it’s ancient. If a piece of software is considered so old that it’s useless by the time it’s been published for two or three months, then there’s no way it can survive even a usual stable release cycle, nevermind any kind of long-term support. > > With this in mind ... I decided to remove bcachefs-tools from Debian completely. Although after discussing this with another DD, I was convinced to orphan it instead, which I have now done. I made an upload to experimental so that it’s still available if someone wants to work on it (without having to go through NEW again), it’s been removed from unstable so that it doesn’t migrate to testing, and the ancient (especially by bcachefs-tools standards) versions that are in stable and oldstable will be removed too, since they are very likely to cause damage with any recent kernel versions that support bcachefs. It seems that this is one more iteration of the conflict between Debian's focus on stability vs the desire to use the latest products, tool, and features. I'm happy to see that instead of removing bcachefs-tools completely, that the package has been orphaned so it will be easier for someone to pick up maintenance of the package. I'm excited to see bcachefs get closer to becoming a mainstream filesystem, but it will take time to get there as issues like these will have to be worked through for any LTS/stability focused distribution.
ericjmorey 2 weeks ago • 37%
I wonder if this is because hardware is so cheap now that a central source of reviews isn't all that valuable anymore. Also it seems like YouTube has taken over to capture the value that's left.
ericjmorey 2 weeks ago • 100%
This looks like a fun device for $0.99
ericjmorey 3 weeks ago • 83%
Enjoy your Friday
> ### About this course > **Who is this course for?** > > You: Are a beginner in the field of machine learning or deep learning or AI and would like to learn PyTorch. > > This course: Teaches you PyTorch and many machine learning, deep learning and AI concepts in a hands-on, code-first way. > > If you already have 1-year+ experience in machine learning, this course may help but it is specifically designed to be beginner-friendly. > > **What are the prerequisites?** > - 3-6 months coding Python. > - At least one beginner machine learning course (however this might be able to be skipped, resources are linked for many different topics). > - Experience using Jupyter Notebooks or Google Colab (though you can pick this up as we go along). > - A willingness to learn (most important).
ericjmorey 3 weeks ago • 90%
Nice article.
why bother? Why I self host
Most of this article is not purely about that question, but I dislike clickbait, so I’ll actually answer the question from the title: Two reasons.
First of all, I like to be independent - or at least, as much as I can. Same reason we have backup power, why I know how to bake bread, preserve food, and generally LARP as a grandmother desperate to feed her 12 grandchildren until they are no longer capable of self propelled movement. It makes me reasonably independent of whatever evil scheme your local $MEGA_CORP is up to these days (hint: it’s probably a subscription).
It’s basically the Linux and Firefox argument - competition is good, and freedom is too.
If that’s too abstract for you, and what this article is really about, is the fact that it teaches you a lot and that is a truth I hold to be self-evident: Learning things is good & useful.
Turns out, forcing yourself to either do something you don’t do every day, or to get better at something you do occasionally, or to simply learn something that sounds fun makes you better at it. Wild concept, I know.
Contents
Introduction
My Services
Why I self host
Reasoning about complex systems
Things that broke in the last 6 months
Things I learned (or recalled) in the last 6 months
- You can self host VS Code
- UPS batteries die silently and quicker than you think
- Redundant DNS is good DNS
- Raspberry PIs run ARN, Proxmox does not
- zfs + Proxmox eat memmory and will OOM kill your VMS
- The mystery of random crashes (Is it hardware? It’s always hardware.)
- SNMP(v3) is still cool
- Don’t trust your VPS vendor
- Gotta go fast
- CIFS is still not fast
- Blob storage, blob fish, and file systems: It’s all “meh”
- CrowdSec
Conclusion
ericjmorey 3 weeks ago • 100%
He made up hypothetical scenarios that nobody asked about, and then denigrated Rust by attacking the scenarios he came up with.
This seems to be the textbook description of a strawman argument.
ericjmorey 3 weeks ago • 100%
It's also a microkernel and intentional not POSIX compliant (but it's close to compliant). I like the project, but it's very experimental on purpose, so we should set our expectations accordingly. I'd love to see it become a success, but it may not be or it may only be successful in a smaller niche than the current Linux ecosystem.
That said, it seems very open to new contributors. I hope more people can help it along.
ericjmorey 3 weeks ago • 100%
https://www.baeldung.com/linux/ Also has very well written articles on specific topics and tutorials.
ericjmorey 3 weeks ago • 100%
Follow up with what is sometimes called the Unix Bible: https://www.oreilly.com/library/view/unix-and-linux/9780134278308/
ericjmorey 3 weeks ago • 100%
ericjmorey 3 weeks ago • 100%
ericjmorey 3 weeks ago • 100%
This is the one: https://training.linuxfoundation.org/training/introduction-to-linux/
ericjmorey 3 weeks ago • 83%
This is a great idea!
Motivation
The Python docs are ill-suited to novices.
The content of the built-in functions documentation favors precision and correctness over comprehension for beginners. While this style is great for experienced developers who already understand the finer points of Python’s design, the docs are confusing to novice programmers like a 12 year old who is not far on his journey of learning Python.
This guide is an opinionated and simplified description of Python’s built-in functions.
My goal is to provide definitions, in plain English, of each built-in function that comes with Python. Along with each definition is an example that is as simple as I can think of. I ran each example against the latest version of Python as of the time writing this guide.
I want to be able to share this with my 12 year old son or my 10 year old daughter, so that they can understand and use Python. My hope is that this guide also serves others who would like some plain definitions of what the built-in functions do.
A note for pedants: I am sacrificing precision and exactness in favor of comprehension. That means I will use substitionary language that I think will communicate more clearly than the exact terminology. If you’re looking for that level of precision, please refer to the standard library docs. Those docs are great for that level of clarity.
For the rest of us, let’s go!
ericjmorey 3 weeks ago • 100%
That's a nice addition for those that want security over convenience. I wonder why it took them 11 years after this was written to add it.
ericjmorey 3 weeks ago • 100%
It provides for control over certain functions, but it is underutilized.
ericjmorey 3 weeks ago • 100%
⎈
ericjmorey 3 weeks ago • 90%
I like the diversity of sphincter options in unicode and encourage their use. Here are a few of my favorites:
✲
✵
✺
❂
ericjmorey 3 weeks ago • 100%
This is a web service that returns the ActivityPub data for any URL that returns an ActivityPub message. For instance this post (https://lemmy.ml/post/19589249) returns:
{
"@context": [
"https://join-lemmy.org/context.json",
"https://www.w3.org/ns/activitystreams"
],
"type": "Page",
"id": "https://lemmy.ml/post/19589249",
"attributedTo": "https://lemmy.ml/u/hongminhee",
"to": [
"https://lemmy.world/c/fediverse",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "BrowserPub: A browser for debugging ActivityPub and the ⁂fediverse",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://podcastindex.social/@js/113011966366461060",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"sensitive": false,
"published": "2024-08-26T11:43:09.033551Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://lemmy.world/c/fediverse",
"tag": [
{
"href": "https://lemmy.ml/post/19589249",
"name": "#fediverse",
"type": "Hashtag"
}
]
}
Prepend https://browser.pub/
to the URL you want to check:
https://browser.pub/https://lemmy.ml/post/19589249
ericjmorey 3 weeks ago • 100%
So this is a web service that returns the ActivityPub data for any URL that returns an ActivityPub message. For instance this post (https://lemmy.ml/post/19589301) returns:
{
"@context": [
"https://join-lemmy.org/context.json",
"https://www.w3.org/ns/activitystreams"
],
"type": "Page",
"id": "https://lemmy.ml/post/19589301",
"attributedTo": "https://lemmy.ml/u/hongminhee",
"to": [
"https://programming.dev/c/activitypub",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "BrowserPub: A browser for debugging ActivityPub and the ⁂fediverse",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://podcastindex.social/@js/113011966366461060",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"sensitive": false,
"published": "2024-08-26T11:44:00.478179Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://programming.dev/c/activitypub",
"tag": [
{
"href": "https://lemmy.ml/post/19589301",
"name": "#activitypub",
"type": "Hashtag"
}
]
}
ericjmorey 3 weeks ago • 100%
Some key quotes from the article:
It’s perfectly reasonable for a consumer cloud storage provider to design a system that emphasizes recoverability over security. Apple’s customers are far more likely to lose their password/iPhone than they are to be the subject of a National Security Letter or data breach (hopefully, anyway).
I wish that companies like Apple could just come right out and warn their users: ‘We have access to all your data, we do bulk-encrypt it, but it’s still available to us and to law enforcement whenever necessary’.
So what is the alternative?
Well, for a consumer-focused system, maybe there really isn’t one. Ultimately people back up their data because they’re afraid of losing their devices, which cuts against the idea of storing encryption keys inside of devices.
You could take the PGP approach and back up your decryption keys to some other location (your PC, for example, or a USB stick). But this hasn’t proven extremely popular with the general public, because it’s awkward — and sometimes insecure.
Alternatively, you could use a password to derive the encryption/decryption keys. This approach works fine if your users pick decent passwords (although they mostly won’t), and if they promise not to forget them. But of course, the convenience of Apple’s “iForgot” service indicates that Apple isn’t banking on users remembering their passwords. So that’s probably out too.
ericjmorey 4 weeks ago • 100%
This is a consistent problem for me
ericjmorey 4 weeks ago • 100%
Conda is their primary focus, but they support well more than conda packages.
ericjmorey 4 weeks ago • 100%
I'm going to need more than a week to process this
ericjmorey 4 weeks ago • 100%
Lemmy needs a feature where only subscribers can vote by default and mods can allow non-subscribers to vote it they want to.
ericjmorey 4 weeks ago • 75%
What do you think about what Steven Wolfram wrote here?
ericjmorey 4 weeks ago • 100%
Listening to this podcast might be helpful along with the links in the show notes: https://linuxunplugged.com/572
Here's another option: https://fedoramagazine.org/automatically-decrypt-your-disk-using-tpm2/
I found these on a hacker news comment: https://fedoramagazine.org/automatically-decrypt-your-disk-using-tpm2/
### Video Description > Many programming languages have standard libraries. What about JavaScript? 🤔️ > > Deno's goal is to simplify programming, and part of that is to provide the JavaScript community with a carefully audited standard library (that works in Deno and Node) that offers utility functions for data manipulation, web-related logic, and more. We created the Deno Standard Library in 2021, and four years, 151 releases, and over 4k commits later, we're thrilled to finally announce that it's 30 modules are finally stabilized at v1. > > Learn more about the [Deno Standard Library]() > > Read about our [stabilization process]() for the library
Andres Vourakis writes: > ### Data Scientist Handbook 2024 > > Curated resources (Free & Paid) to help data scientists learn, grow, and break into the field of data science. > Even though there are hundreds of resources out there (too many to keep track of), I will try to limit them to a maximum of 5 per category to ensure you get the most valuable and relevant resources out there, plus, the whole point of this repository is to help you avoid getting overwhelmed by too many choices. This way you can focus less time researching and more time learning. > ### FAQs > > - **How is curation done?** Curation is based on thorough research, recommendations from people I trust, and my years of experience as a Data Scientist. > - **Are all resources free?** Most resources here will be free, but I will also include paid alternatives if they are truly valuable to your career development. All paid resources include the symbol 💲. > - **How often is the repository updated?** I plan to come back here as often as possible to ensure all resources are still available and relevant and also to add new ones.
> There is more to Hindley-Milner type inference than the Algorithm W. In 1988, Didier Rémy was looking to speed up the type inference in Caml and discovered an elegant method of type generalization. Not only it is fast, avoiding scanning the type environment. It smoothly extends to catching of locally-declared types about to escape, to type-checking of universals and existentials, and even to MLF. > > Alas, both the algorithm and its implementation in the OCaml type checker are little known and little documented. This page is to explain and popularize Rémy's algorithm, and to decipher a part of the OCaml type checker. The page also aims to preserve the history of Rémy's algorithm. Read [How OCaml type checker works](https://okmij.org/ftp/ML/generalization.html)
### Book Description Writing a C Compiler will take you step by step through the process of building your own compiler for a significant subset of C—no prior experience with compiler construction or assembly code needed. Once you’ve built a working compiler for the simplest C program, you’ll add new features chapter by chapter. The algorithms in the book are all in pseudocode, so you can implement your compiler in whatever language you like. Along the way, you’ll explore key concepts like: - Lexing and parsing: Learn how to write a lexer and recursive descent parser that transform C code into an abstract syntax tree. - Program analysis: Discover how to analyze a program to understand its behavior and detect errors. - Code generation: Learn how to translate C language constructs like arithmetic operations, function calls, and control-flow statements into x64 assembly code. - Optimization techniques: Improve performance with methods like constant folding, dead store elimination, and register allocation. Compilers aren’t terrifying beasts—and with help from this hands-on, accessible guide, you might even turn them into your friends for life. ### Author Bio Nora Sandler is a software engineer based in Seattle. She holds a BS in computer science from the University of Chicago, where she researched the implementation of parallel programming languages. More recently, she’s worked on domain-specific languages at an endpoint security company. You can find her blog on pranks, compilers, and other computer science topics at https://norasandler.com.
[Table of Arena Crates](https://donsz.nl/blog/arenas/) For a technical discussion of using arenas for memory allocation with an example implementation, see gingerBill's [Memory Allocation Strategies - Part 2: Linear/Arena Allocators](https://www.gingerbill.org/article/2019/02/08/memory-allocation-strategies-002/)
EventHelix writes: > This article will investigate how Rust handles dynamic dispatch using trait objects and vtables. We will also explore how the Rust compiler can sometimes optimize tail calls in the context of dynamic dispatch. Finally, we will examine how the vtable facilitates freeing memory when using trait objects wrapped in a `Box`.
> The blog post is the author's impressions of Gleam after [it released version 1.4.0](https://gleam.run/news/supercharged-labels/). [Gleam](https://gleam.run/) is an upcoming language that is getting a lot of highly-ranked articles. > > It runs on the [Erlang virtual machine (BEAM)](https://en.wikipedia.org/wiki/BEAM_(Erlang_virtual_machine)), making it great for distributed programs and a competitor to [Elixir](https://elixir-lang.org/) and [Erlang (the language)](https://www.erlang.org/). It also compiles to [JavaScript](https://www.javascript.com/), making it a competitor to [TypeScript](https://www.typescriptlang.org/). > > But unlike Elixir, Erlang, and TypeScript, it's *strongly* typed (not just gradually typed). It has "functional" concepts like algebraic data types, immutable values, and first-class functions. The syntax is modeled after [Rust](https://www.rust-lang.org/) and its [tutorial](https://tour.gleam.run/) is modeled after [Go's](https://go.dev/tour/). Lastly, it has a very large community.
July 17, 2024 [Allen B. Downey](https://www.allendowney.com/blog/2024/07/17/elements-of-data-science/) writes: > Elements of Data Science is an introduction to data science for people with no programming experience. My goal is to present a small, powerful subset of Python that allows you to do real work with data as quickly as possible. > > Part 1 includes six chapters that introduce basic Python with a focus on working with data. > > Part 2 presents exploratory data analysis using Pandas and empiricaldist — it includes a revised and updated version of the material from my popular DataCamp course, “Exploratory Data Analysis in Python.” > > Part 3 takes a computational approach to statistical inference, introducing resampling method, bootstrapping, and randomization tests. > > Part 4 is the first of two case studies. It uses data from the General Social Survey to explore changes in political beliefs and attitudes in the U.S. in the last 50 years. The data points on the cover are from one of the graphs in this section. > > Part 5 is the second case study, which introduces classification algorithms and the metrics used to evaluate them — and discusses the challenges of algorithmic decision-making in the context of criminal justice. > > This project started in 2019, when I collaborated with a group at Harvard to create a data science class for people with no programming experience. We discussed some of the design decisions that went into the course and the book in this article. Read [Elements of Data Science](https://allendowney.github.io/ElementsOfDataScience/) in the form of Jupyter notebooks.
> [Dmitry Grinberg](https://dmitry.gr/?r=01.Myself) writes: > > > go replan all your STM32H7 projects with RP2350, save money, headaches, and time. As a bonus, you’ll get an extra core to play with too! "But," you might say, "STMicro chips come with internal flash, while RP2350 still requires an external SPI chip to store the flash". Hold on to your hats... there are now RP2350 variants with built-in flash! They are called RP2354A nd RP2354B and they include 2MBytes of flash in-package. The pinouts are the same as the RP2350A/B, for a bonus! Why two pinouts? Because the "more GPIOs" dream also came true! There is now a variant with more GPIOS, available in an 80-pin package. That’s right! It is epic! > > Read [Why you should fall in love with the RP2350](https://dmitry.gr/?r=06.%20Thoughts&proj=11.%20RP2350)
[Dmitry Grinberg](https://dmitry.gr/?r=01.Myself) writes: > go replan all your STM32H7 projects with RP2350, save money, headaches, and time. As a bonus, you’ll get an extra core to play with too! "But," you might say, "STMicro chips come with internal flash, while RP2350 still requires an external SPI chip to store the flash". Hold on to your hats... there are now RP2350 variants with built-in flash! They are called RP2354A nd RP2354B and they include 2MBytes of flash in-package. The pinouts are the same as the RP2350A/B, for a bonus! Why two pinouts? Because the "more GPIOs" dream also came true! There is now a variant with more GPIOS, available in an 80-pin package. That’s right! It is epic! Read [Why you should fall in love with the RP2350](https://dmitry.gr/?r=06.%20Thoughts&proj=11.%20RP2350)
As the first alpha version of COSMIC Epoch 1, it is incomplete. You’ll most certainly find bugs. Testing and bug reports are welcome and appreciated. New feature requests will be considered for Epoch 2, COSMIC’s second release. [COSMIC Epoch 1 (alpha 1) on the Pop!_OS 24.04 LTS alpha ISO files are available ](https://system76.com/cosmic) Try COSMIC on other Linux distributions Fedora - See instructions NixOS - See instructions Arch - See instructions openSUSE - Coming soon Serpent OS - See instructions Redox OS - includes some COSMIC Components - See Progress https://system76.com/cosmic
Book Preface: > Welcome to Apache Iceberg: The Definitive Guide! We’re delighted you have embarked on this learning journey with us. In this preface, we provide an overview of this book, why we wrote it, and how you can make the most of it. > > ### About This Book > > In these pages, you’ll learn what Apache Iceberg is, why it exists, how it works, and how to harness its power. Designed for data engineers, architects, scientists, and analysts working with large datasets across various use cases from BI dashboards to AI/ML, this book explores the core concepts, inner workings, and practical applications of Apache Iceberg. By the time you reach the end, you will have grasped the essentials and possess the practical knowledge to implement Apache Iceberg effectively in your data projects. Whether you are a newcomer or an experienced practitioner, Apache Iceberg: The Definitive Guide will be your trusted companion on this enlightening journey into Apache Iceberg. > > ### Why We Wrote This Book > > As we observed the rapid growth and adoption of the Apache Iceberg ecosystem, it became evident that a growing knowledge gap needed to be addressed. Initially, we began by sharing insights through a series of blog posts on the Dremio platform to provide valuable information to the burgeoning Iceberg community. However, it soon became clear that a comprehensive and centralized resource was essential to meet the increasing demand for a definitive Iceberg reference. This realization was the driving force behind the creation of Apache Iceberg: The Definitive Guide. Our goal is to provide readers with a single authoritative source that bridges the knowledge gap and empowers individuals and organizations to make the most of Apache Iceberg’s capabilities in their data-related endeavors. > > ### What You Will Find Inside > > In the following chapters, you will learn what Apache Iceberg is and how it works, how you can take advantage of the format with a variety of tools, and best practices to manage the quality and governance of the data in Apache Iceberg tables. Here is a summary of each chapter’s content: > > - **Chapter 1**, “Introduction to Apache Iceberg” > Exploration of the historical context of data lakehouses and the essential concepts underlying Apache Iceberg. > - **Chapter 2**, “The Architecture of Apache Iceberg” > Deep dive into the intricate design of Apache Iceberg, examining how its various components function together. > - **Chapter 3**, “Lifecycle of Write and Read Queries” > Examination of the step-by-step process involved in Apache Iceberg transactions, highlighting updates, reads, and time-travel queries. > - **Chapter 4**, “Optimizing the Performance of Iceberg Tables” > Discussions on maintaining optimized performance in Apache Iceberg tables through techniques such as compaction and sorting. > - **Chapter 5**, “Iceberg Catalogs” > In-depth explanation of the role of Apache Iceberg catalogs, exploring the different catalog options available. > - **Chapter 6**, “Apache Spark” > Practical sessions using Apache Spark to manage and interact with Apache Iceberg tables. > - **Chapter 7**, “Dremio’s SQL Query Engine” > Exploration of the Dremio lakehouse platform, focusing on DDL, DML, and table optimization for Apache Iceberg tables. > - **Chapter 8**, “AWS Glue” > Demonstration of the use of AWS Glue Catalog and AWS Glue Studio for working with Apache Iceberg tables. > - **Chapter 9**, “Apache Flink” > Practical exercises in using Apache Flink for streaming data processing with Apache Iceberg tables. > - **Chapter 10**, “Apache Iceberg in Production” > Insights into managing data quality in production, using metadata tables for table health monitoring and employing table and catalog versioning for various operational needs. > - **Chapter 11**, “Streaming with Apache Iceberg” > Use of tools such as Apache Spark, Flink, and AWS Glue for streaming data processing into Iceberg tables. > - **Chapter 12**, “Governance and Security” > Exploration of the application of governance and security at various levels in Apache Iceberg tables, such as storage, semantic layers, and catalogs. > - **Chapter 13**, “Migrating to Apache Iceberg” > Guidelines on transforming existing datasets from different file types and databases into Apache Iceberg tables. > - **Chapter 14**, “Real-World Use Cases of Apache Iceberg” > A look at real-world applications of Apache Iceberg, including business intelligence dashboards and implementing change data capture > > [Direct link to PDF](https://www.dremio.com/wp-content/uploads/2023/02/apache-iceberg-TDG_ER1.pdf) > > Dremio bills itself as a "Unified Analytics Platform for a Self-Service Lakehouse". The authors of the book work for Dremio and may have ownership interest in Dremio.
What issues or frustrations have you encountered in trying to use and set up Neovim in Windows 11? I'm currently writing up my experience with installing, setting up, and using Neovim in Windows and would like to hear from others that have tried the same. What was annoying, difficult, or impossible in your experience?
> Many devs dream of one day writing their own operating system. Ideally in their favorite language: Rust. For many of us, this dream remains just that: a dream. > > Jeremy Soller from System76, however, didn't just contribute kernel code for Pop!_OS, but also started his own operating system, RedoxOS, which is completely written in Rust. One might get the impression that he likes to tinker with low-level code! > > In this episode of Rust in Production, Jeremy talks about his journey. From getting hired as a kernel developer at Denver-based company System76 after looking at the job ad for 1 month and finally applying, to being the maintainer of not one but two operating systems, additional system tools, and the Rust-based Cosmic desktop. We'll talk about why it's hard to write correct C code even for exceptional developers like Jeremy and why Rust is so great for refactoring and sharing code across different levels of abstraction. Listen to [Rust in Production Podcast S02 E07](https://corrode.dev/podcast/s02e07-system76/)
> Many devs dream of one day writing their own operating system. Ideally in their favorite language: Rust. For many of us, this dream remains just that: a dream. > > Jeremy Soller from System76, however, didn't just contribute kernel code for Pop!_OS, but also started his own operating system, RedoxOS, which is completely written in Rust. One might get the impression that he likes to tinker with low-level code! > > In this episode of Rust in Production, Jeremy talks about his journey. From getting hired as a kernel developer at Denver-based company System76 after looking at the job ad for 1 month and finally applying, to being the maintainer of not one but two operating systems, additional system tools, and the Rust-based Cosmic desktop. We'll talk about why it's hard to write correct C code even for exceptional developers like Jeremy and why Rust is so great for refactoring and sharing code across different levels of abstraction. Listen to [Rust in Production Podcast S02 E07](https://corrode.dev/podcast/s02e07-system76/)
> > Many devs dream of one day writing their own operating system. Ideally in their favorite language: Rust. For many of us, this dream remains just that: a dream. > > > > Jeremy Soller from System76, however, didn't just contribute kernel code for Pop!_OS, but also started his own operating system, RedoxOS, which is completely written in Rust. One might get the impression that he likes to tinker with low-level code! > > > > In this episode of Rust in Production, Jeremy talks about his journey. From getting hired as a kernel developer at Denver-based company System76 after looking at the job ad for 1 month and finally applying, to being the maintainer of not one but two operating systems, additional system tools, and the Rust-based Cosmic desktop. We'll talk about why it's hard to write correct C code even for exceptional developers like Jeremy and why Rust is so great for refactoring and sharing code across different levels of abstraction. Listen to [Rust in Production Podcast S02 E07](https://corrode.dev/podcast/s02e07-system76/)
Based on answers to the following question: > Which development environments did you use regularly over the past year, and which do you want to work with over the next year? Please check all that apply. Neovim is the most admired code editor in the 2024 Stacked Overflow Developer Survey Source: https://survey.stackoverflow.co/2024/technology#admired-and-desired-new-collab-tools-desire-admire
It's broader than a Neovim specific mapping, I've changed the system keyboard mapping of `<Caps Lock>` to `<Esc>` and `<F9>` to `<Caps Lock>`. I think mapping `<Caps Lock>` to `<Esc>` isn't uncommon for Neovim users. But I like having `<Caps Lock>` available for non Neovim purposes.
### I asked some LLM chatbots to give me some silly ideas to try. Below are a few of my favorite responses. --- From [Perplexity.ai](https://www.perplexity.ai/search/hey-give-me-10-stupid-project-j70cAZsbSZ.MkoyeIG5cFg) > Six Degrees of Wikipedia: Creating a program that finds the shortest path between two random Wikipedia articles using graph traversal algorithms. This applies graph theory concepts to explore connections in a large knowledge base. > Emoji Encryption: Using hash tables and cryptographic algorithms to create an encryption system that converts text to emojis. This could be an interesting way to explore cryptography concepts in a fun, visual way. --- From [Gemini.google.com](https://g.co/gemini/share/b570fa16424e) > Procrastination Station: This website creates increasingly elaborate and ridiculous tasks to distract you from what you actually need to do. Dishes? Nah, fold your socks into origami cranes! > Dramatic Password Validator: Forget boring error messages. This program rejects weak passwords with Shakespearean insults or movie villain monologues. --- From [Chatgpt.com](https://chatgpt.com/share/49b0753c-47f1-4d12-87a9-b8f14572f738) > 3. **Time Travel Email Service**: Build a data structure that allows you to send emails to yourself in the past, with time complexity considerations that are totally ignored because it’s time travel. > 4. **Mood-Driven Random Number Generator**: Implement an algorithm that generates random numbers based on the mood of the user, using sentiment analysis on real-time facial expressions.
Why did you decide to work with Odin? What did you build with Odin? Where does Odin shine? What could use some polish?
[Karl Zylinski](https://zylinski.se) writes: > This article is an introduction to the Odin Programming Language. It is aimed at people who know a bit of programming, but have never touched Odin. It is not a reference guide, rather I try to keep things informal and talk about what I think are important aspects of the language. There will be some notes on differences to C/C++, as Odin in many ways tries to be better C. If you enjoy this article and want to support me, then you can do so by becoming a patron. > > In the recent years most of my programming has been done using the Odin Programming Language, sometimes referred to as Odinlang. Since a year back I create my own video games using Odin. You can find my game CAT & ONION on Steam, it is completely created in Odin. ... > While Odin is a great language, it is currently quite lacking in documentation. There is lots of documentation, but it is scattered and incomplete. I tried to address that by writing this article, which I hope gives a holistic introduction to the language. Read [Introduction to the Odin Programming Language](https://zylinski.se/posts/introduction-to-odin/)
July 18, 2024 Narek Galstyan writes: > We were naturally curious when we saw Pinecone's blog post comparing Postgres and Pinecone. > > In their post on Postgres, Pinecone recognizes that Postgres is easy to start with as a vector database, since most developers are familiar with it. However, they argue that Postgres falls short in terms of quality. They describe issues with index size predictability, index creation resource intensity, metadata filtering performance, and cost. > > This is a response to Pinecone's blog post, where we show that Postgres outperforms Pinecone in the same benchmarks with a few additional tweaks. We show that with just 20 lines of additional code, Postgres with the pgvector or lantern extension outperforms Pinecone by reaching 90% recall (compared to Pinecone's 60%) with under 200ms p95 latency. Read [Postgres vs. Pinecone](https://lantern.dev/blog/postgres-vs-pinecone)
Jun 28, 2024 [Matt Walker](https://fizzixnerd.com/) writes: > This is an extremely early stage of development, but basically at this point it is possible to: > - Call any builtin Godot utility function or method (static, virtual, or otherwise) from OCaml easily, and with documentation comments for the original function intact an available through your favourite OCaml LSP implementation. > - Use Godot (binary) operators in a natural way from OCaml. (Unary operators are currently broken, which I will be investigating!) > - Construct Godot values from OCaml easily, and from OCaml analogues if they exist (e.g. I incur a dependency on Gg for low-dimensional vector math) > - Marshalling in and out of all these functions to/from the OCaml analogues. That is, a method that is in Godot on an object of type ClassyClass taking an int parameter and returning an int will appear in Godotcaml as int64 -> ClassyClass.t structure ptr -> int64, where the ClassyClass.t structure ptr is the “pointer to the Godot object”, commonly called self. (Note that this is always the last argument, to facilitate pipeline-style programming when GDScript programmers have a method-chaining interface.) > - Naturally define a new Godot class in OCaml that inherits from an existing Godot-registered class. (Currently NOT tested with classes defined in GDScript and/or externally.) > - Most of the code-gen for custom engines that define new stock/builtin types and classes, etc. > - Simulated inheritence for stock (and easily extendable to user-defined) classes using module inclusion: That is if Derived inherits from Base, then simply include Base in the module representing Derived, and you get access to all the methods from Base without explicit casting (or in the case of Rust’s gdext, object composition). > - Naturally define a new Godot method in OCaml and have it called from GDScript or another Godot-bound language. (ergonomics still WIP). Read [Announcing Godotcaml for Godot 4.2](https://fizzixnerd.com/blog/2024-06-24-announcing-godotcaml/) See also: [Setting Up a Godotcaml Project (Today)](https://fizzixnerd.com/blog/2024-06-28-godotcaml-basic-setup/)
7/3/2024 [Steven Wang writes](https://www.definite.app/blog/iceberg-query-engine): > Many in the data space are now aware of Iceberg and its powerful features that bring database-like functionality to files stored in the likes of S3 or GCS. But Iceberg is just one piece of the puzzle when it comes to transforming files in a data lake into a Lakehouse capable of analytical and ML workloads. Along with Iceberg, which is primarily a table format, a query engine is also required to run queries against the tables and schemas managed by Iceberg. In this post we explore some of the query engines available to those looking to build a data stack around Iceberg: Snowflake, Spark, Trino, and DuckDB. ... > DuckDB + Iceberg Example > > We will be loading 12 months of NYC yellow cab trip data (April 2023 - April 2024) into Iceberg tables and demonstrating how DuckDB can query these tables. Read [Comparing Iceberg Query Engines](https://www.definite.app/blog/iceberg-query-engine)
cross-posted from: https://programming.dev/post/16349359 > July 2, 2024 > > [Sylvain Kerkour](https://kerkour.com/) writes: > > > Rust adoption is stagnating not because it's missing some feature pushed by programming language theory enthusiasts, but because of a lack of focus on solving the practical problems that developers are facing every day. > > > > ... no company outside of AWS is making SDKs for Rust ... it has no official HTTP library. > > > > As a result of Rust's lack of official packages, even its core infrastructure components need to import hundreds of third-party crates. > > > > - cargo imports over 400 crates. > > > > - crates.io has over 500 transitive dependencies. > > > > ...the offical libsignal (from the Signal messaging app) uses 500 third-party packages. > > > > ... what is really inside these packages. It has been found last month that among the 999 most popular packages on crates.io, the content of around 20% of these doesn't even match the content of their Git repository. > > > > ...how I would do it (there may be better ways): > > > > A stdx (for std eXtended) under the rust-lang organization containing the most-needed packages. ... to make it secure: all packages in stdx can only import packages from std or stdx. No third-party imports. No supply-chain risks. > > [stdx packages to include, among others]: > > > gzip, hex, http, json, net, rand > > Read [Rust has a HUGE supply chain security problem](https://kerkour.com/rust-supply-chain-security-standard-library) > > --- > ### Submitter's note: > > I find the author's writing style immature, sensationalist, and tiresome, but they raise a number of what appear to be solid points, some of which are highlighted above.
July 2, 2024 [Sylvain Kerkour](https://kerkour.com/) writes: > Rust adoption is stagnating not because it's missing some feature pushed by programming language theory enthusiasts, but because of a lack of focus on solving the practical problems that developers are facing every day. > > ... no company outside of AWS is making SDKs for Rust ... it has no official HTTP library. > > As a result of Rust's lack of official packages, even its core infrastructure components need to import hundreds of third-party crates. > > - cargo imports over 400 crates. > > - crates.io has over 500 transitive dependencies. > > ...the offical libsignal (from the Signal messaging app) uses 500 third-party packages. > > ... what is really inside these packages. It has been found last month that among the 999 most popular packages on crates.io, the content of around 20% of these doesn't even match the content of their Git repository. > > ...how I would do it (there may be better ways): > > A stdx (for std eXtended) under the rust-lang organization containing the most-needed packages. ... to make it secure: all packages in stdx can only import packages from std or stdx. No third-party imports. No supply-chain risks. [stdx packages to include, among others]: > gzip, hex, http, json, net, rand Read [Rust has a HUGE supply chain security problem](https://kerkour.com/rust-supply-chain-security-standard-library) --- ### Submitter's note: I find the author's writing style immature, sensationalist, and tiresome, but they raise a number of what appear to be solid points, some of which are highlighted above.
Jul 1, 2024 [Aman Salykov](https://salykova.github.io/matmul-cpu) writes: > This blog post is the result of my attempt to implement high-performance matrix multiplication on CPU while keeping the code simple, portable and scalable. The implementation follows the BLIS design, works for arbitrary matrix sizes, and, when fine-tuned for an AMD Ryzen 7700 (8 cores), outperforms NumPy (=OpenBLAS), achieving over 1 TFLOPS of peak performance across a wide range of matrix sizes. > > By efficiently parallelizing the code with just 3 lines of OpenMP directives, it’s both scalable and easy to understand. The implementation hasn’t been tested on other CPUs, so I would appreciate feedback on its performance on your hardware. Although the code is portable and targets Intel Core and AMD Zen CPUs with FMA3 and AVX instructions (i.e., all modern Intel Core and AMD Zen CPUs), please don’t expect peak performance without fine-tuning the hyperparameters, such as the number of threads, kernel, and block sizes, unless you are running it on a Ryzen 7700(X). Additionally, on some Intel CPUs, the OpenBLAS implementation might be notably faster due to AVX-512 instructions, which were intentionally omitted here to support a broader range of processors. Throughout this tutorial, we’ll implement matrix multiplication from scratch, learning how to optimize and parallelize C code using matrix multiplication as an example. Read [Beating NumPy's matrix multiplication in 150 lines of C code](https://salykova.github.io/matmul-cpu)
Video description: > We reproduce the GPT-2 (124M) from scratch. > >This video covers the whole process: > > First we build the GPT-2 network, then we optimize its training to be really fast, then we set up the training run following the GPT-2 and GPT-3 paper and their hyperparameters, then we hit run, and come back the next morning to see our results, and enjoy some amusing model generations. > > Keep in mind that in some places this video builds on the knowledge from earlier videos in the Zero to Hero Playlist (see my channel). You could also see this video as building my nanoGPT repo, which by the end is about 90% similar.
The presenter compares some of the functionality to Leap.nvim