ericjmorey

joined 1 year ago
[–] ericjmorey@programming.dev 2 points 1 day ago* (last edited 13 hours ago)

These two are my favorite balance of fundamentals and getting to purposeful application as quickly as possible (the first link is definitely not enough, but combined with the second she should be comfortable with the syntax and able to get basic things working):
https://www.kaggle.com/learn/intro-to-programming
https://www.kaggle.com/learn/python

This one takes its time with fundamentals and includes some projects to put them in context of building something. It's presented on Google Colab and Jupyter notebooks: https://allendowney.github.io/ThinkPython/

Working with GIS data means cleaning data. This one covers that and a lot of common analysis tools and techniques. But it assumes a bit of programming knowledge (Good to follow up after one of the options above): https://wesmckinney.com/book/

[–] ericjmorey@programming.dev 1 points 3 weeks ago

Good news from September:

Introducing the Ghostty "Quick Terminal" feature: a terminal that drops-down based on a global keybind (also sometimes known as a Doom or Quake-style terminal). This was one of Ghostty's most requested features.

https://x.com/mitchellh/status/1840449807095394391

[–] ericjmorey@programming.dev 1 points 3 weeks ago* (last edited 3 weeks ago)

I think that Hashimoto is using this project to iron out details that are left unaddressed due to convenience for other projects and the very low impact of any single issue Hashimoto has addressed. But much like with Apple projects, Hashimoto intends for the the end product to have greater value than the sum of the parts. Unlike Apple, it will be perfomant cross platform.

I think the only way to evaluate a project like this is to ignore the feature comparison charts and use it to see if it really is better when those details are addressed. I have a feeling that many people will agree and most will shrug their shoulders and not give it a second look if they even gave it a first one.

I'll be trying Ghostty out soon. I hope it's great. But I'm not expecting to be blown away.

[–] ericjmorey@programming.dev 1 points 3 weeks ago

He seems to target GTK based on his statement:

"On macOS, the main GUI experience is written in Swift using AppKit and SwiftUI. The tabs are native tabs, the splits are native UI components, multi-window works as you'd expect, etc. On Linux, the GUI experience is GTK using real GTK windows and other widgets.

Features such as error messages are not implemented with a specialized terminal view, we actually use real native UI components. The point is, while the terminal surface and core logic is cross-platform, the user interaction is all purpose-built for each operating system for a true native experience."

https://mitchellh.com/writing/ghostty-and-useful-zig-patterns

[–] ericjmorey@programming.dev 2 points 3 weeks ago

Lemmy still doesn't let someone post an embedded link and picture. People don't realize that you have to include the linkin the body of the post which is annoying and intuitive, specially because when creating a new post Lemmy will allow you to fill out both form fields for link and picture but only use one.

[–] ericjmorey@programming.dev 6 points 3 weeks ago

I'm not sure I understand the trade offs you're choosing by deploying this way. The benefit of simplicity an speed of deployment seems clear from your write-up. But are those the most important considerations? Why or why not?

[–] ericjmorey@programming.dev 6 points 4 weeks ago (1 children)

How are you liking bearblog.dev?

[–] ericjmorey@programming.dev 16 points 4 weeks ago (1 children)

This is a teaser for the promised future posts. Don't ghost us.

[–] ericjmorey@programming.dev 29 points 1 month ago (2 children)

Everyone can save time and just read your synopsis. These are billionaires backed by huge investment funds fighting over service fees.

[–] ericjmorey@programming.dev 1 points 1 month ago* (last edited 1 month ago)

Probably want to add experimental in there too.

[–] ericjmorey@programming.dev 11 points 1 month ago

I get the sense that you might appreciate golang.

 

Table of Arena Crates

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

 

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.

 

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

 

July 2, 2024

Sylvain Kerkour 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


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.

 

Trey Hunner writes:

This article is primarily meant to act as a Python time complexity cheat sheet for those who already understand what time complexity is and how the time complexity of an operation might affect your code. For a more thorough explanation of time complexity see Ned Batchelder's article/talk on this subject.

Read Python Big O: the time complexities of different data structures in Python

 

Recently, every time I click on a "Trending Communities" link there's an entirely empty community moderated by the @Vacant@programming.dev account.

What's going on?

What's the motivation?

 

Siddharta Govindaraj writes:

As I blogged about in the previous two articles, I recently updated my NeoVim configuration for the fourth time. Although it might sound like a lot of config updates, keep in mind that it happened over a period of four years.

  • The first version was a port of my existing Vim configuration. Because NeoVim is backward compatible with Vim, you can just move the configuration over and it will work
  • In the second version, I migrated my plugin manager to Packer. This config was a mix of old style Vim config and the newer NeoVim style with some plugins migrated to Lua equivalents
  • Then I decided to go 100% Lua config and started using Kickstart.nvim and LazyVim.
  • This fourth time around I used Kickstart and LazyVim as guides to write my own from scratch.

You can find my NeoVim configuration on Github.

In this article I am going to go through and explain my configuration step-by-step. I have a terrible memory, so this post will also serve as a guide when I inevitably need to look through this file in the future.

Read Configuring NeoVim as a Python IDE (2023)

 

cross-posted from: https://discuss.online/post/5803977

About this Book

The Rust programming language is extremely well suited for concurrency, and its ecosystem has many libraries that include lots of concurrent data structures, locks, and more. But implementing those structures correctly can be difficult. Even in the most well-used libraries, memory ordering bugs are not uncommon.

In this practical book, Mara Bos, team lead of the Rust library team, helps Rust programmers of all levels gain a clear understanding of low-level concurrency. You’ll learn everything about atomics and memory ordering and how they're combined with basic operating system APIs to build common primitives like mutexes and condition variables. Once you’re done, you’ll have a firm grasp of how Rust’s memory model, the processor, and the role of the operating system all fit together.

With this guide, you’ll learn:

  • How Rust's type system works exceptionally well for programming concurrency correctly
  • All about mutexes, condition variables, atomics, and memory ordering
  • What happens in practice with atomic operations on Intel and ARM processors
  • How locks are implemented with support from the operating system
  • How to write correct code that includes concurrency, atomics, and locks
  • How to build your own locking and synchronization primitives correctly

Available free of charge. But I doubt I'll ever read it. Never enough time and energy for everything.

view more: next ›