- How to Train an AI Image Model on Yourself | Cory Zue
- The surprising way to save memory with BytesIO
- Recheck LWCA
- Decompiling 2024: A Year of Resurgance in Decompilation Research
- Ultrawide archaeology on Android native libraries - media.ccc.de
- February 05, 2025
-
🔗 @trailofbits@infosec.exchange Our new whitepaper covers secure-by-design steps that CEXes can take to keep mastodon
Our new whitepaper covers secure-by-design steps that CEXes can take to keep users' accounts (and funds) safe from account takeover (ATO) in 2025.
Read the blog: https://hubs.la/Q035lxB50
Read the white paper: https://lnkd.in/dqcE6FKG -
🔗 The Pragmatic Engineer The Pragmatic Engineer 100K Giveaway rss
The Pragmatic Engineer's YouTube channel crossed 100K subscribers. Celebrating with a giveaway of 100 books and newsletter subs:
- 10x signed physical books (The Software Engineer's Guidebook [in English or German - your choice!], Building Mobile Apps at Scale; winners get both; shipping is on me)
- 90x e-books or audiobooks for The Software Engineer's Guidebook [your choice which one]
- 10x 1-year paid subscriptions for the The Pragmatic Engineer Newsletter
- 90x 3-month paid subscriptions for the newsletter
To take part:
- Subscribe to The Pragmatic Engineer YouTube channel
- Subscribe to the (free) newsletter
- Subscribe to the The Pragmatic Engineer Podcast on Apple Podcasts or on Spotify
- Leave a star rating for the podcast on Apple of Spotify
To enter the draw:
✅ Once you did all the above, fill out this form to enter the draw
⏰ The giveaway ends in 72 hours!
And, of course: thank you to everyone who reads the newsletter, and listens to the podcast.
-
🔗 PyO3/maturin v1.8.2 release
What's Changed
- Update manylinux/musllinux policies to the latest main by @github-actions in #2424
- ci: don't enable sccache on tag refs by @woodruffw in #2429
- Exclude packages not in the dependency tree when finding bindings by @mhils in #2426
- Use
uv
automatically when runningmaturin develop
inside a uv-created venv by @messense in #2433 - Upgrade pyproject-toml to 0.13.4 by @messense in #2342
- Upgrade pyo3 to 0.23.4 in test crates by @messense in #2435
- Consider abi3 minor version when resolving Python interpreters by @messense in #2437
- Upgrade cargo-xwin to 0.18.4 by @messense in #2439
- Use GitHub hosted arm Linux runner by @messense in #2444
- Fix clippy warning by @rex4539 in #2445
- Handle archived dylibs on AIX by @daltenty in #2442
- Fix constant rebuilds by @TheZoq2 in #2446
- fix the name of the .data directory in the generated wheel by @ejd in #2449
- Update manylinux/musllinux policies to the latest main by @github-actions in #2453
- Update minimal manylinux version for loongarch64 by @wojiushixiaobai in #2451
- Update mdbook by @konstin in #2458
- Mention zig in readme and introduction page by @konstin in #2457
- Simplify emcc_version using -dumpversion flag by @hoodmane in #2465
- Strip a possible -git suffix from emcc version by @hoodmane in #2470
New Contributors
- @woodruffw made their first contribution in #2429
- @daltenty made their first contribution in #2442
- @TheZoq2 made their first contribution in #2446
- @ejd made their first contribution in #2449
- @wojiushixiaobai made their first contribution in #2451
Full Changelog :
v1.8.1...v1.8.2
-
🔗 Jeremy Fielding (YouTube) All Modern Electronics Require These. How It's Made. rss
Order custom PCB's from PCB way👉 https://pcbway.com/g/4fU4Ha Join me for STEMCon At Sea 👉 https://www.stemconatsea.com/jeremy If you want to join my community of makers and Tinkers consider getting a YouTube membership 👉 https://www.youtube.com/@JeremyFieldingSr/join
If you want to chip in a few bucks to support these projects and teaching videos, please visit my Patreon page or Buy Me a Coffee. 👉 https://www.patreon.com/jeremyfieldingsr 👉 https://www.buymeacoffee.com/jeremyfielding
Social media, websites, and other channel
Instagram https://www.instagram.com/jeremy_fielding/?hl=en Twitter 👉https://twitter.com/jeremy_fielding TikTok 👉https://www.tiktok.com/@jeremy_fielding0 LinkedIn 👉https://www.linkedin.com/in/jeremy-fielding-749b55250/ My websites 👉 https://www.jeremyfielding.com 👉https://www.fatherhoodengineered.com My other channel Fatherhood engineered channel 👉 https://www.youtube.com/channel/UC_jX1r7deAcCJ_fTtM9x8ZA
Notes: Great Scotts video "how to design a PCB". https://youtu.be/35YuILUlfGs?si=CcQkd2EaexxINZwI
Stem Con Dates Cruise 👉Nov 7th-10th 2025. Tickets go on sale 👉Feb 7th 2025! You need my fan code to sign up. Use the link at the top of the description to get yours!
Technical corrections
Nothing yet
-
🔗 Locklin on science Examples of group madness in technology rss
One of the worst arguments I hear is that “thing X is inevitable because the smart people are doing it.” As I’ve extensively documented over the last 15 years on this blog, smart people in groups are not smart and are even more subject to crazes and mob behavior as everyone else. Noodle theory, nanotech, […]
-
🔗 MetaBrainz Picard 2.13.1 released rss
The Picard team is happy to announce that the final version 2.13.1 of MusicBrainz Picard is now available for download. MusicBrainz Picard is the official tag editor for the MusicBrainz database and helps you get your music collection sorted and cleaned up with the latest data from MusicBrainz.
This release brings multiple bugfixes and some new features. More details below.
What's new?
Improved MusicBrainz login
The MusicBrainz login is now possible without manually copying a token, if the Browser Integration is activated in Options > Advanced > Network (which is the case by default). Furthermore on logout the authentication token gets invalidated on the server side, which improves account security.
Merge Original Values
The context menu for the metadata box provides a new action "Merge Original Values". This is similar to the existing action "Use Original Values", but instead of overwriting the new values with the original ones it will merge the original and the new values, creating a new multi-value tag containing all the original and new values without duplicates.
And more…
There have been many more improvements and bug fixes. Please see below for a complete list of changes.
Download
Picard 2.13.1 is available for download from the download page. For Windows 10 users installing from the Windows Store an update will come automatically as soon as the new release has been approved by Microsoft.
Picard is free software and the source code is available on GitHub.
Acknowledgements
This release contains code contributions by outsidecontext, C0rn3j, zytact and zas.
Many thanks also to all the translators and everyone who tested the beta releases and provided feedback on the community forums, IRC and the issue tracker.
Get in touch
Please use the MetaBrainz community forums and the ticket system to give feedback, suggest new features or report bugs.
Changelog
Below is the full list of changes since the last stable release 2.12.3. A full list of changes in the individual pre-releases can be found in the changelog.
Bugfixes
- PICARD-2989 - Endless recursion when reading settings after script editor dialog was opened
- PICARD-2991 - File naming options inaccessible on permission errors to target path
- PICARD-3000 - Children's Music is shown as "Children'S Music" in Picard
- PICARD-3001 - Picard requires charset-normalizer < 3.4.0
- PICARD-3008 - Poorly formatted
date
tags crash Picard with uncaught Overflow Exception - PICARD-3012 - Wrong disc numbers when submitting release
- PICARD-3013 - Case only renaming broken on case-insensitive filesystems
- PICARD-3014 - Sorting on macOS does not sort empty values as expected
Tasks
- PICARD-3002 - Update Windows code signing certificate
- PICARD-3018 - Drop support for Python 3.7
- PICARD-3022 - Support Python 3.13
- PICARD-3027 - Fix PyPI packaging task
Improvements
- PICARD-3021 - Add context menu action to metadata box to merge original and new values
- PICARD-736 - Avoid manual copying of authentication token
- PICARD-2882 - Support PKCE for OAuth2 authorization
- PICARD-2886 - OAuth2: Implement token revocation on the server
-
🔗 mandiant/capa v9.0.0 release
This release introduces a new scope for dynamic analysis, "span of calls", that matches features against a across a sliding window of API calls within a thread. Its useful for identifying behaviors that span multiple API calls, such as
OpenFile
/ReadFile
/CloseFile
, without having to analyze an entire thread, which may be very long.The release also contains a number of bug fixes and enhancements by new contributors: @v1bh475u and @dhruvak001. Welcome and thank you!
New Features
- add warning for dynamic .NET samples #1864 @v1bh475u
- add lint for detecting duplicate features in capa-rules #2250 @v1bh475u
- add span-of-calls scope to match features against a across a sliding window of API calls within a thread @williballenthin #2532
- add lint to catch rules that depend on other rules with impossible scope @williballenthin #2124
Breaking Changes
- remove
is_static_limitation
method fromcapa.rules.Rule
- add span-of-calls scope to rule format
- capabilities functions return dataclasses instead of tuples
New Rules (3)
- data-manipulation/encryption/rsa/encrypt-data-using-rsa-via-embedded-library @Ana06
- data-manipulation/encryption/use-bigint-function @Ana06
- internal/limitation/dynamic/internal-dotnet-file-limitation @v1bh475u
Bug Fixes
- dynamic: only check file limitations for static file formats @mr-tz
- vmray: load more analysis archives @mr-tz
- vmray: skip non-printable strings @mike-hunhoff
- vmray: loosen file checks to enable processing more file types @mike-hunhoff #2571
- strings: add type hints and fix uncovered bugs @williballenthin #2555
- elffile: handle symbols without a name @williballenthin #2553
- project: remove pytest-cov that wasn't used @williballenthin @2491
- replace binascii methods with native Python methods @v1bh475u #2582
- rules: scopes can now have subscope blocks with the same scope @williballenthin #2584
Development
- license & copyright: Correct LICENSE file and improve copyright and license information headers in the source code files @Ana06
- documentation: Improve CLA and Code of Conduct information in CONTRIBUTING @Ana06
Raw diffs
-
🔗 astral-sh/uv 0.5.28 release
Release Notes
Bug fixes
- Allow discovering virtual environments from the first interpreter found on the
PATH
(#11218) - Clear ephemeral overlays when running tools (#11141)
- Disable SSL in Git commands for
--allow-insecure-host
(#11210) - Fix hardlinks in tar unpacking (#11221)
- Set base executable when returning virtual environment (#11209)
- Use base Python for cached environments (#11208)
Documentation
- Add documentation on verifying Docker image attestations (#11140)
- Add
last updated
to documentation (#11164)
Install uv 0.5.28
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.5.28/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/uv/releases/download/0.5.28/uv-installer.ps1 | iex"
Download uv 0.5.28
File | Platform | Checksum
---|---|---
uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum
uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum
uv-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum
uv-i686-pc-windows-msvc.zip | x86 Windows | checksum
uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum
uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum
uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum
uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum
uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum
uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum
uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum
uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum
uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum
uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum
uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum
uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum
uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum - Allow discovering virtual environments from the first interpreter found on the
-
🔗 sacha chua :: living an awesome life Lispy Gopher Show 2025-02-05: programming languages, history, blogging, and communities with screwtape, Ramin Honary, and me rss
I joined @screwtape's Lispy Gopher Show at the last minute because he wanted to chat a little about community, his experiences starting a new blog, and my recent post Through blogging, we discover our thoughts and other people. Ramin Honary was also there, so the conversation also included Scheme, CL, Haskell, and other cool things. I shared the notes I was taking (yay screen mirroring!) and occasionally jumped in. Halfway through, I decided to experiment with adding timestamps to my notes. MP3 from the archive. (Ooh, someday I should embed the audio and then have the hyperlinks skip to sections or highlight in sync…)
Text and links from sketchLispy Gopher Show with screwtape, Ramin Honary, and me (Sacha Chua)
2025-02-05
Next steps/recommendations:
- Blog! Share notes & links
Not-entirely-sorted topics:
- DeepSeek
- energy
- climate
- lower consumption
- Kent, Emacs variants
- Gypsum
- Scheme
- Yale
- Haskell
- Ramin Honary
- drawing notes during conversation
- memory
- mastodon
- monads
- Lambdas + procedures
- Haskell
- also other things aside from chained side effects
- 0:30 T, Jonathan Rees
- Community
- recursion
- 0:41 Haskell
- 0:35 Dijkstra anecdotes
- people are very opinionated
- 0:43 CL - Haskell, typechecking
- 0:47 Lambda calculi
- Kenichi Sasagawa
- life trajectory: accounting, SICP
- intuition
- IS Lisp, Prolog
- islisp.info
- life trajectory: accounting, SICP
- 0:44 The Curse of Lisp
- solo coders vs. cooperating
- I can do it myself
- intuition
Sketch ID 2025-02-04-05
I might find it interesting to dig a little more into the community topics. Curious about how other Lispy communities do things, considering that Lisp Curse essay that has turned up twice now in our conversations. Hmm…
-
🔗 Rust Blog crates.io: development update rss
Back in July 2024, we published a blog post about the ongoing development of crates.io. Since then, we have made a lot of progress and shipped a few new features. In this blog post, we want to give you an update on the latest changes that we have made to crates.io.
[](https://blog.rust-lang.org/2025/02/05/crates-io-development-
update.html#crate-deletions)Crate deletions
In RFC #3660 we proposed a new feature that allows crate owners to delete their crates from crates.io under certain conditions. This can be useful if you have published a crate by mistake or if you want to remove a crate that is no longer maintained. After the RFC was accepted by all team members at the end of August, we began implementing the feature.
We created a new API endpoint
DELETE /api/v1/crates/:name
that allows crate owners to delete their crates and then created the corresponding user interface. If you are the owner of a crate, you can now go to the crate page, open the "Settings" tab, and find the "Delete this crate" button at the bottom. Clicking this button will lead you to a confirmation page telling you about the potential impact of the deletion and requirements that need to be met in order to delete the crate:As you can see from the screenshot above, a crate can only be deleted if either: the crate has been published for less than 72 hours or the crate only has a single owner, and the crate has been downloaded less than 500 times for each month it has been published, and the crate is not depended upon by any other crate on crates.io.
These requirements were put in place to prevent abuse of the deletion feature and to ensure that crates that are widely used by the community are not deleted accidentally. If you have any feedback on this feature, please let us know!
[](https://blog.rust-lang.org/2025/02/05/crates-io-development-
update.html#openapi-description)OpenAPI description
Around the holiday season we started experimenting with generating an OpenAPI description for the crates.io API. This was a long-standing request from the community, and we are happy to announce that we now have an experimental OpenAPI description available at https://crates.io/api/openapi.json!
Please note that this is still considered work-in-progress and e.g. the stability guarantees for the endpoints are not written down and the response schemas are also not fully documented yet.
You can view the OpenAPI description in e.g. a Swagger UI at https://petstore.swagger.io/ by putting
https://crates.io/api/openapi.json
in the top input field. We decided to not ship a viewer ourselves for now due to security concerns with running it on the same domain as crates.io itself. We may reconsider whether to offer it on a dedicated subdomain in the future if there is enough interest.The OpenAPI description is generated by the utoipa crate, which is a tool that can be integrated with the axum web framework to automatically generate OpenAPI descriptions for all of your endpoints. We would like to thank Juha Kukkonen for his great work on this tool!
[](https://blog.rust-lang.org/2025/02/05/crates-io-development-
update.html#support-form-and-report-crate-button)Support form and "Report Crate" button
Since the crates.io team is small and mostly consists of volunteers, we do not have the capacity to manually monitor all publishes. Instead, we rely on you, the Rust community, to help us catch malicious crates and users. To make it easier for you to report suspicious crates, we added a "Report Crate" button to all the crate pages. If you come across a crate that you think is malicious or violates the code of conduct or our usage policy, you can now click the "Report Crate" button and fill out the form that appears. This will send an email to the crates.io team, who will then review the crate and take appropriate action if necessary. Thank you to crates.io team member @eth3lbert who worked on the majority of this.
If you have any issues with the support form or the "Report Crate" button, please let us know. You can also always email us directly at help@crates.io if you prefer not to use the form.
[](https://blog.rust-lang.org/2025/02/05/crates-io-development-
update.html#publish-notifications)Publish notifications
We have added a new feature that allows you to receive email notifications when a new version of your crate is published. This can be useful in detecting unauthorized publishes of your crate or simply to keep track of publishes from other members of your team.
This feature was another long-standing feature request from our community, and we were happy to finally implement it. After some initial pushback from a few vocal community members we also implemented a way to opt out of these notifications. If you'd prefer not to receive publish notifications, then you can go to your account settings on crates.io and disable these notifications.
[](https://blog.rust-lang.org/2025/02/05/crates-io-development-
update.html#miscellaneous)Miscellaneous
These were some of the more visible changes to crates.io over the past couple of months, but a lot has happened "under the hood" as well.
-
RFC #3691 was opened and accepted to implement "Trusted Publishing" support on crates.io, similar to other ecosystems that adopted it. This will allow you to specify on crates.io which repository/system is allowed to publish new releases of your crate, allowing you to publish crates from CI systems without having to deal with API tokens anymore.
-
Slightly related to the above: API tokens created on crates.io now expire after 90 days by default. It is still possible to disable the expiry or choose other expiry durations though.
-
The crates.io team was one of the first projects to use the diesel database access library, but since that only supported synchronous execution it was sometimes a little awkward to use in our codebase, which was increasingly moving into an async direction after our migration to axum a while ago. The maintainer of diesel, Georg Semmler, did a lot of work to make it possible to use diesel in an async way, resulting in the diesel-async library. Over the past couple of months we incrementally ported crates.io over to
diesel-async
queries, which now allows us to take advantage of the internal query pipelining indiesel-async
that resulted in some of our API endpoints getting a 10-15% performance boost. Thank you, Georg, for your work on these crates! -
Whenever you publish a new version or yank/unyank existing versions a couple of things need to be updated. Our internal database is immediately updated, and then we synchronize the sparse and git index in background worker jobs. Previously, yanking and unyanking a high number of versions would each queue up another synchronization background job. We have now implemented automatic deduplication of redundant background jobs, making our background worker a bit more efficient.
-
The final big, internal change that was just merged last week is related to the testing of our frontend code. In the past we used a tool called Mirage to implement a mock version of our API, which allowed us to run our frontend test suite without having to spin up a full backend server. Unfortunately, the maintenance situation around Mirage had lately forced us to look into alternatives, and we are happy to report that we have now fully migrated to the "Industry standard API mocking" package msw. If you want to know more, you can find the details in the "small" migration pull request.
[](https://blog.rust-lang.org/2025/02/05/crates-io-development-
update.html#feedback)Feedback
We hope you enjoyed this update on the development of crates.io. If you have any feedback or questions, please let us know on Zulip or GitHub. We are always happy to hear from you and are looking forward to your feedback!
-
-
- February 04, 2025
-
🔗 r/wiesbaden Baumarkt/Werkzeugladen in der Innenstadt rss
Moin glaube der Titel sagt alles suche nach einem Baumarkt/Werkzeugladen, da ich meinem Vater zum Geburtstag ein Geschenk machen möchte wenn möglich ohne weite Fahrten auf mich nehmen zu müssen. Mir persönlich wäre aber in der Innenstadt tatsächlich keiner bekannt daher die Frage
Edit: es geht hier speziell um einen Worx WX240 falls es wen interessiert
- Edit: ja ich hätte einfach googeln können war aber auf Reddit am scrollen und hab einfach nicht daran gedacht zu googeln😭
submitted by /u/Dezaku
[link] [comments] -
🔗 News Minimalist China announces retaliatory tariffs on US + 2 more stories rss
Today ChatGPT read 18028 top news stories. After removing previously covered events, there are 3 articles with a significance score over 5.9.
[6.1] China announces retaliatory tariffs on US and investigates Google for antitrust violations —apnews.com
China has announced new tariffs on U.S. imports, including a 15% tariff on coal and liquefied natural gas, and a 10% tariff on crude oil and agricultural machinery. These tariffs will take effect next Monday.
In addition to tariffs, China is investigating Google for potential antitrust violations. This follows the U.S. implementing its own tariffs on Chinese goods, marking a renewed phase in the ongoing trade tensions between the two countries.
China has also introduced export controls on critical minerals essential for high-tech products. This move is part of a broader strategy to counter U.S. trade policies and protect its economic interests.
[6.1] Countries form new trade deals as U.S. tightens tariffs —nytimes.com[$]
Countries, including U.S. allies, are forming new trade agreements as the Trump administration tightens its trade policies. This shift allows nations to strengthen economic ties without U.S. involvement.
Recently, the European Union finalized three trade deals, including a significant agreement with four South American countries. This deal creates one of the largest trade zones globally, connecting 850 million people.
Additionally, the EU reached agreements with Switzerland and Mexico, and resumed talks with Malaysia after a long pause. European Commission President Ursula Von der Leyen emphasized the transparency of these deals at the World Economic Forum.
[5.9] Chinese astronauts produce oxygen and rocket fuel through artificial photosynthesis in space —gadgets360.com
Chinese astronauts on the Tiangong space station have successfully created oxygen and rocket fuel using artificial photosynthesis. This method uses carbon dioxide and water, potentially reducing reliance on Earth supplies for future lunar missions.
The artificial photosynthesis system mimics natural processes and employs a semiconductor catalyst to convert materials into oxygen and hydrocarbon fuel. This approach is more energy-efficient than the electrolysis method currently used on the International Space Station.
China aims to establish a lunar base by 2035, with this technology supporting astronaut survival by generating breathable air and fuel.
Highly covered news with significance over 5.5
[5.7] EU advances AI Act enforcement despite Trump’s warnings
(ft.com + 7)Thanks for reading.
You can set up and personalize your own newsletter like this with premium.
— Vadim
-
🔗 Anton Zhiyanov Go's map does not shrink rss
Go's
map
does not shrink (in terms of allocated memory). Sorry, but it just doesn't.And the new SwissTable based map in Go 1.24 does not shrink either.
type Client struct { id uint64 body [40]byte } func main() { printAlloc("initial") m := make(map[int]Client) for i := range 10000 { m[i] = Client{id: uint64(i)} } runtime.GC() printAlloc("after create") for i := range 10000 { delete(m, i) } runtime.GC() printAlloc("after delete") runtime.KeepAlive(m) } initial: heap size = 42 KB after create: heap size = 1067 KB after delete: heap size = 1067 KB
What is printAlloc
// printAlloc prints the current heap size in KB. func printAlloc(prefix string) uint64 { var m runtime.MemStats runtime.ReadMemStats(&m) alloc := m.Alloc / 1024 fmt.Printf("%s: heap size = %d KB\n", prefix, alloc) return alloc }
Of course, you can partially reclaim the memory by using pointers. GC will then free the deleted items, but the internal map structures will remain intact.
type Client struct { id uint64 body [40]byte } func main() { printAlloc("initial") m := make(map[int]*Client) for i := range 10000 { m[i] = &Client{id: uint64(i)} } runtime.GC() printAlloc("after create") for i := range 10000 { delete(m, i) } runtime.GC() printAlloc("after delete") runtime.KeepAlive(m) } initial: heap size = 42 KB after create: heap size = 800 KB after delete: heap size = 331 KB
And if the values are large enough (>128B), Go will store pointers instead.
type Client struct { id uint64 body [1024]byte } func main() { printAlloc("initial") m := make(map[int]Client) for i := range 10000 { m[i] = Client{id: uint64(i)} } runtime.GC() printAlloc("after create") for i := range 10000 { delete(m, i) } runtime.GC() printAlloc("after delete") runtime.KeepAlive(m) } initial: heap size = 42 KB after create: heap size = 11581 KB after delete: heap size = 331 KB
So the ever-growing map is usually not a big deal. But still worth knowing.
──
P.S. Want to learn more about Go? Check out my book on concurrency
-
🔗 r/reverseengineering Cloudflare jsd challenge reverse engineered (cf_clearance) rss
submitted by /u/xkiiann
[link] [comments] -
🔗 Filip Filmar Typeset your own ebooks easily with `bazel-ebook` rss
Other formats: Original content is at: https://github.com/filmil/bazel-ebook The rendered HTML edition at: https://hdlfactory.com/bazel_ebook_html/ Introduction This repository is a set of bazel build rules that allow you to write a moderately complex book in the Markdown text format, and produce EPUB and Kindle’s MOBI formats from them. You can also produce a PDF format book, which allows you to preview the results slightly more convenient than by reading the resulting books.
-
- February 03, 2025
-
🔗 astral-sh/uv 0.5.27 release
Release Notes
Enhancements
- Avoid setting permissions during tar extraction (#11191)
- Remove warnings for missing lower bounds (#11195)
- Update PubGrub to set-based outdated priority tracking (#11169)
- Improve error messages for
uv pip install
with--extra
or--all-extras
and invalid sources (#11193) - Sign Docker images using GitHub attestations (#8685)
Preview features
- Don't expand self-referential extras in the build backend (#11142)
Performance
- Filter discovered Python executables by source before querying (#11143)
- Optimize exclusion computation for markers (#11158)
- Use Astral-maintained
tokio-tar
fork (#11174) - Remove unneeded
.clone()
(#11127)
Bug fixes
- Fix relative paths in bytecode compilation (#11177)
- Percent-decode URLs in canonical comparisons (#11088)
- Respect concurrency limits in parallel index fetch (#11182)
- Use wire JSON schema for conflict items (#11196)
- Use explicit
_GLibCVersion
tuple in uv-python crate (#11122)
Documentation
- Add Git SHA locking behavior to docs (#11125)
- Add best-practice flags to
pip install
example in troubleshooting guide (#11194) - Set
VIRTUAL_ENV
in Jupyter kernels (#11155) - Add instructions for deactivating an environment (#11200)
Install uv 0.5.27
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.5.27/uv-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/uv/releases/download/0.5.27/uv-installer.ps1 | iex"
Download uv 0.5.27
File | Platform | Checksum
---|---|---
uv-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum
uv-x86_64-apple-darwin.tar.gz | Intel macOS | checksum
uv-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum
uv-i686-pc-windows-msvc.zip | x86 Windows | checksum
uv-x86_64-pc-windows-msvc.zip | x64 Windows | checksum
uv-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum
uv-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum
uv-powerpc64-unknown-linux-gnu.tar.gz | PPC64 Linux | checksum
uv-powerpc64le-unknown-linux-gnu.tar.gz | PPC64LE Linux | checksum
uv-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum
uv-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum
uv-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum
uv-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum
uv-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum
uv-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum
uv-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum
uv-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum -
🔗 r/reverseengineering Disassembling a binary: linear sweep and recursive traversal rss
submitted by /u/mttd
[link] [comments] -
🔗 r/reverseengineering AMD: Microcode Signature Verification Vulnerability rss
submitted by /u/tnavda
[link] [comments] -
🔗 r/reverseengineering Lifting Binaries, Part 0: Devirtualizing VMProtect and Themida: It’s Just Flattening? rss
submitted by /u/blazingfast_
[link] [comments] -
🔗 r/reverseengineering Is there a way to reverse Agile.NET compiled library for NinjaTrader 8? rss
submitted by /u/tradingnumbers
[link] [comments] -
🔗 r/wiesbaden Places to live similar to Keller Residence rss
We just moved to Germany a few days ago and we had secured a place with the Keller residence for an extended period. Unfortunately things fell through and they no longer have a place for us. are there any other places similar that offer furnished places in the same price range as the Keller residence? We are only here for a year guaranteed so hoping we can find something that would suit our needs and furnished is ideal since we did not ship our belongings.
submitted by /u/zenzenzen25
[link] [comments] -
🔗 Evan Schwartz Pinning Down "Future Is Not Send" Errors rss
If you use async Rust and Tokio, you are likely to run into some variant of the "future is not Send" compiler error. While transitioning some sequential async code to use streams, a friend suggested a small technique for pinning down the source of the non-
Send
errors. It helped a lot, so I thought it would be worth writing up in case it saves others some annoying debugging time.I'll give a bit of background on
Futures
andSend
bounds first, but if you want to skip past that you can jump to The DX Problem with Non-Send
Future
s or Pinning Down the Source of Non-Send
Errors.Why Futures Must Be
Send
I wrote another blog post about the relationship between async Rust and
Send + Sync + 'static
so we won't go into detail about that here. The main thing we'll focus on here is that if you're using Tokio, you're probably going to bespawn
ing some Futures, and if youspawn
a Future it must beSend + Sync + 'static
.pub fn spawn<F>(future: F) -> JoinHandle<F::Output> where F: Future + Send + 'static, F::Output: Send + 'static,
How Futures Lose Their
Send
MarkersMost types are automatically marked as
Send
, meaning they can be safely moved between threads. As the The Rustonomicon says:Major exceptions include:
- raw pointers are neither Send nor Sync (because they have no safety guards).
UnsafeCell
isn't Sync (and thereforeCell
andRefCell
aren't).Rc
isn't Send or Sync (because the refcount is shared and unsynchronized).
Pointers and
Rc
s cannot be moved between threads and nor can anything that contains them.Future
s are structs that represent the state machine for each step of the asynchronous operation. When a value is used across anawait
point, that value must be stored in theFuture
. As a result, using a non-Send
value across anawait
point makes the wholeFuture
non-Send
.The DX Problem with Non-
Send
Future
sTo illustrate the problem in the simplest way possible, let's take an extremely simplified example.
Below, we have an async
noop
function and an asyncnot_send
function. Thenot_send
function holds anRc
across an await point and thus loses itsSend
bound -- but shhh! let's pretend we don't know that yet. We then have anasync_chain
that calls both methods and a function thatspawn
s thatFuture
.use tokio; async fn noop() {} async fn not_send() -> usize { let ret = std::rc::Rc::new(2); // <-- this value is used across the await point noop().await; *ret } async fn async_chain() -> usize { noop().await; not_send().await } fn spawn_async_chain() { tokio::spawn(async move { let result = async_chain().await; println!("{}", result); }); // <-- compiler points here }
This code doesn't compile (playground link). But where does the compiler direct our attention? If we only take a quick look at the error message, it seems like the error is coming from the
tokio::spawn
call:error: future cannot be sent between threads safely --> src/lib.rs:17:5 | 17 | / tokio::spawn(async move { 18 | | let result = async_chain().await; 19 | | println!("{}", result); 20 | | }); | |______^ future created by async block is not `Send` | = help: within `{async block@src/lib.rs:17:18: 17:28}`, the trait `Send` is not implemented for `Rc<usize>` note: future is not `Send` as this value is used across an await --> src/lib.rs:7:12 | 6 | let ret = std::rc::Rc::new(2); | --- has type `Rc<usize>` which is not `Send` 7 | noop().await; | ^^^^^ await occurs here, with `ret` maybe used later note: required by a bound in `tokio::spawn` --> /playground/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.43.0/src/task/spawn.rs:168:21 | 166 | pub fn spawn<F>(future: F) -> JoinHandle<F::Output> | ----- required by a bound in this function 167 | where 168 | F: Future + Send + 'static, | ^^^^ required by this bound in `spawn`
In this example, it's easy to spot the mention of the
Rc<usize>
not beingSend
-- but we know what we're looking for! Also, our async chain is pretty short so that types and error messages are still somewhat readable. The longer that chain grows, the harder it is to spot the actual source of the problem.The crux of the issue is that the compiler draws our attention first to the place where the bounds check fails. In this case, it fails when we try to
spawn
a non-Send
Future
-- rather than where theFuture
loses itsSend
bound.Pinning Down the Source of Not-
Send
ErrorsThere are a number of different ways we could pin down the source of these errors, but here are two:
Replacing
async fn
with animpl Future
Return TypeInstead of using an
async fn
, we can instead use a normalfn
that returns aFuture
. (This is what theasync
keyword does under the hood, so we can just forego that bit of syntactic sugar.)We can transform our example above into something that looks like the code below using an
async
block, or alternatively usingFuture
combinators.Neither of these will compile (playground link), but this time the compiler errors will point to the
Future
s returned byasync_chain
orcombinator_chain
not fulfilling theSend
bound that we are specifying.use tokio; use std::future::Future; use futures::FutureExt; async fn noop() {} async fn not_send() -> usize { let ret = std::rc::Rc::new(2); noop().await; *ret } fn async_chain() -> impl Future<Output = usize> + Send + 'static { // note the return type async move { noop().await; not_send().await } // <-- now the compiler points here } fn spawn_async_chain() { tokio::spawn(async move { let result = async_chain().await; println!("{}", result); }); } fn combinator_chain() -> impl Future<Output = usize> + Send + 'static { // <-- the compiler will also point here noop().then(|_| not_send()) } fn spawn_combinator_chain() { tokio::spawn(async move { let result = combinator_chain().await; println!("{}", result); }); }
The idea here is that we are foregoing the
async fn
syntax to explicitly state that theFuture
our functions return must beSend + 'static
.Helper Function to Enforce
Send + 'static
In the code below (playground link), we'll keep our original
async fn
s but this time we'll use a helper functionsend_static_future
to ensure that the value we pass to it implementsSend
. Here, the compiler will also point us to the right place.use tokio; use std::future::Future; use futures::FutureExt; /// This function doesn't do anything except ensure that /// the value passed to it implements Future + Send + 'static fn send_static_future<T: Future + Send + 'static>(t: T) -> T { t } async fn noop() {} async fn not_send() -> usize { let ret = std::rc::Rc::new(2); noop().await; *ret } async fn async_chain() -> usize { send_static_future(async move { noop().await; not_send().await }).await // <-- the compiler error points here } fn spawn_async_chain() { tokio::spawn(async move { let result = async_chain().await; println!("{}", result); }); } async fn combinator_chain() -> usize { send_static_future(noop().then(|_| not_send())).await // <-- and here } fn spawn_combinator_chain() { tokio::spawn(async move { let result = combinator_chain().await; println!("{}", result); }); }
While debugging, you could wrap any part of the async chain with the
send_static_future
function call until you've pinpointed the non-Send
part.(This is similar what the
static_assertions::assert_impl_all
macro creates under the hood -- and using that crate is another option.)Identifying Non-
Send
Stream
CombinatorsSince the introduction of
async
/await
, I have mostly stopped usingFuture
combinators. However, combinators still seem like the way to go when working withStream
s.Stream
s present the same DX problems we've seen above when you have a combinator that produces a non-Send
result.Here's a simple example (playground link) that demonstrates the same issue we had with
Future
s above:use futures::{pin_mut, stream, Stream, StreamExt}; use std::sync::{Arc, Mutex}; async fn noop() {} fn stream_processing() -> impl Stream<Item = usize> { let state = Arc::new(Mutex::new(0)); stream::iter(0..100).filter_map(move |i| { let state = state.clone(); async move { // This is contrived but we're intentionally keeping the // MutexGuard across the await to make the Future non-Send let mut state = state.lock().unwrap(); noop().await; *state += i; if *state % 2 == 0 { Some(*state) } else { None } } }) // (Imagine we had a more complicated stream processing pipeline) } fn spawn_stream_processing() { tokio::spawn(async move { let stream = stream_processing(); pin_mut!(stream); while let Some(number) = stream.next().await { println!("{number}"); } }); // <-- the compiler error points us here }
As with the
Future
s examples above, we can use the same type of helper function to identify which of our closures is returning a non-Send
Future
(playground link):use futures::{pin_mut, stream, Future, Stream, StreamExt}; use std::sync::{Arc, Mutex}; async fn noop() {} fn send_static_future<T: Future + Send + 'static>(t: T) -> T { t } fn stream_processing() -> impl Stream<Item = usize> { let state = Arc::new(Mutex::new(0)); stream::iter(0..100).filter_map(move |i| { send_static_future({ let state = state.clone(); async move { let mut state = state.lock().unwrap(); noop().await; *state += i; if *state % 2 == 0 { Some(*state) } else { None } } }) // <-- now the compiler points us here }) // (Imagine we had a more complicated stream processing pipeline) } fn spawn_stream_processing() { tokio::spawn(async move { let stream = stream_processing(); pin_mut!(stream); while let Some(number) = stream.next().await { println!("{number}"); } }); }
Conclusion
Async Rust is powerful, but it sometimes comes with the frustrating experience of hunting down the source of trait implementation errors.
I ran into this while working on Scour, a personalized content feed. The MVP used a set of sequential async steps to scrape and process feeds. However, that became too slow when the number of feeds grew to the thousands.
Transitioning to using
Stream
s allows me to take advantage of combinators likeflat_map_unordered
, which polls nested streams with a configurable level of concurrency. This works well for my use case, but writing the code initially involved plenty of non-Send
-Future
hunting.The techniques described above helped me narrow down why my
Stream
combinator chains were becoming non-Send
. I hope you find them useful as well!Thanks to Alex Kesling for mentioning this technique and saving me a couple hours of fighting with
rustc
.See Also
If you're working with Rust streams, you might also want to check out:
async-fn-stream
is a nice crate for creating streams using a simpler closure syntax.pumps
is an interesting and different take on Rust streams.argus
is an experimental VS Code extension that uses Rust's New Trait Solver to help you identify why some struct,Future
, orStream
does not implement the traits it should.
Discuss on r/rust, Lobsters, or Hacker News.
-
🔗 squidfunk/mkdocs-material mkdocs-material-9.6.2 release
-
🔗 r/wiesbaden Tattoostudio gesucht rss
Hallöchen. Ich bin auf der Suche nach Tattoostudios bzw Tätowierern in Wiesbaden und Umgebung. Ich bin allerdings kein Fan von Studios ala 13Needles und MyStory, wo man bis zum Termin nur über Insta mit dem Tätowierer schreibt. In der Stadt in der ich aufgewachsen bin war es üblich dass die Tätowierer selbst das Studio leiten. Man ist rein und konnte direkt mit der Person sprechen die einem am Ende auch sticht. Und genau sowas suche ich auch hier. Danke schonmal für alle hilfreichen Vorschläge 😊
submitted by /u/xpat__pat
[link] [comments] -
🔗 sacha chua :: living an awesome life 2025-02-03 Emacs news rss
- Help wanted:
- Upcoming events (iCal file, Org):
- EmacsATX: Emacs Social https://www.meetup.com/emacsatx/events/305908631/ Wed Feb 5 1600 America/Vancouver - 1800 America/Chicago - 1900 America/Toronto – Thu Feb 6 0000 Etc/GMT - 0100 Europe/Berlin - 0530 Asia/Kolkata - 0800 Asia/Singapore
- M-x Research: TBA https://m-x-research.github.io/ Fri Feb 7 0800 America/Vancouver - 1000 America/Chicago - 1100 America/Toronto - 1600 Etc/GMT - 1700 Europe/Berlin - 2130 Asia/Kolkata – Sat Feb 8 0000 Asia/Singapore
- Emacs.si (in person): Emacs.si meetup #2 2025 (v #živo) https://dogodki.kompot.si/events/36aa7507-8a4f-4ab4-bd1f-fa12b5d1accb Tue Feb 11 1900 CET
- OrgMeetup (virtual) https://orgmode.org/worg/orgmeetup.html Wed Feb 12 0800 America/Vancouver - 1000 America/Chicago - 1100 America/Toronto - 1600 Etc/GMT - 1700 Europe/Berlin - 2130 Asia/Kolkata – Thu Feb 13 0000 Asia/Singapore
- Atelier Emacs Montpellier (in person) https://lebib.org/date/atelier-emacs Fri Feb 14 1800 Europe/Paris
- Emacs configuration:
- Brief thoughts from my adventure into Emacs (@rickwysocki@mas.to) - under the section "Building It Yourself" - minimizing dependencies
- configuring emacs (04:13)
- Emacs Lisp:
- Kris Carta: RTFM or: how I'm (re-)learning to love documentation
- Emacs Redux: Debugging Emacs Commands
- yaitskov/ert-scope: isolate buffers and files created within a scope of ert test (Reddit)
- If you have problems with parentheses randomly being deleted, come here - show-paren-context-when-offscreen
- Obteniendo datos asíncronos de una API con Emacs Lisp | Getting data from an API with Emacs Lisp
- Dibujando figuras con Emacs (@geekland@mastodon.social)
- Navigation:
- Fix C-x 1 to maximize side windows instead of failing; toggle back if already maximized
- Emacs Sticky Buffer
- a winner mode replacement · Issue #2 · hoverwinter/kys · GitHub (Reddit)
- my/find-files-with-fd; also, I spent an entire day implementing a function that's already provided by consult
- Arialdo Martini: Emacs: a peek under Imenu’s hood (Reddit)
- Watch consult-git-grep_with-file-pattern | Streamable
- Projectile Introduces Significant Caching Improvements
- Writing:
- Introduction to Emacs Writing Studio (25:28)
- Emacs Writing Studio: Ideation (Taking fleeting and permanent notes) (17:22)
- Emacs Writing Studio: Inspiration (Read e-books, manage a bibliography, surf the web and play music) (23:12)
- IAST input method for Emacs - International Alphabet of Sanskrit Transliteration (IAST)
- Org Mode:
- Org mode and Spacemacs: The Absolute Minimum you need to know
- My simple note taking system #emacs #orgmode #coding #programming #notes (05:39)
- Stupidly Simple Notes Taking With Emacs - TuxeduTV
- Jeremy Friesen: Seeking Inspiration from the Notes I've Taken
- Prevent Org-todo from messing with windows - Coping Mechanism (@jbaty@social.lol)
- (Update) org-supertag Implements Tag Completion
- Nuke em! Quick search and replace #emacs #org #markdown (01:08)
- lf-araujo/workbenchless: Single-file Emacs configuration for a powerful scientific Notebook system that works flawlessly over ssh. (Reddit)
- Construyendo el website Hispa-Emacs.org enteramente desde Emacs - FTV
- OrgMeetup meeting notes (@yantar92@fosstodon.org)
- Syncing org-mode reading list to reMarkable tablet
- Using Emacs and Org-Roam/Org-Node on Android (with Termux Extra Keys and Org-Node)
- Erik L. Arneson: Configuring Orgzly Interaction with Directory Local Variables
- nitincodery/org-dex: A browser extension that copies open tabs to your clipboard in org-mode format, ready to use with your org-capture template (Reddit)
- Denote:
- Completion:
- Coding:
- User experience: eglot configuration - emacs-devel discussion on ideas for making eglot easier to configure
- Java programming in Emacs using Eglot - YouTube (Reddit)
- project-headerline: Customizable project headerline (Reddit)
- Emacs: introduction to VC (version control framework)
- piem - an Emacs tool for applying patches (01:07:18)
- Math:
- Shells:
- [eshell-smart feature proposal] Preserve previous prompt includes code
- Mail, news, and chat:
- Evil mode:
- Multimedia:
- Fun:
- AI:
- Community:
- Weekly Tips, Tricks, &c. Thread — 2025-01-29 / week 04
- Irreal: The Experiences Of A Non-technical Emacs User - logistics, Org Mode
- Why I still use Emacs (09:40)
- Returning to the Church (of Emacs) (20:55) (Reddit, Irreal)
- Interview With DistroTube - YouTuber, Opensource Advocate, Emacs User (01:44:50, Reddit)
- All hail our new overlords /u/mickeyp, /u/github-alphapapa, and /u/Psionikus! - Reddit mods
- Emacs wird 2025 vierzig! - The editor GNU Emacs will be forty years old in 2025.
- La Comunidad GNU Emacs - Retrospectiva: Orígenes - Pasado, Presente y Futuro - FTV
- 1era Hispa Emacs Conf 2025 - FTV (@libretics@mast.lat)
- Other:
- Package of the ancien world: records-mode
- log-buffer: Buffers for displaying logs and debugging (Reddit)
- Marcin Borkowski: ketchup.el - alternative to Pomodoro timers
- Scraping Emacs Package Listings into SQLite - Real World Scheme Programming #2 (11:12)
- My experience with Emacs (2022)
- "New" emacs nightly build for Fedora
- [FIX] Compiling with tree-sitter in Fedora 41
- Emacs development:
- emacs-devel:
- ; time-stamp: documentation, tests, NEWS
- Add auto save timer to save-place (bug#75837)
- New user option 'Buffer-menu-human-readable-sizes'
- Add new user option bookmark-bmenu-type-column-width
- Merge branch 'scratch/no-purespace' into 'master'
- Add new variable tab-bar-format-tab-help-text-function
- Add treesit-simple-indent-override-rules
- Add treesit-add-simple-indent-rules
- Add new user option tab-bar-define-keys
- Add abnormal hook tab-bar-post-undo-close-tab-functions
- Hideshow support for tree-sitter in hs-minor-mode (bug#75609)
- New packages:
- pif: Prevent Initial Flash of Light (MELPA)
- stillness-mode: Prevent windows from jumping on minibuffer activation (MELPA)
Links from reddit.com/r/emacs, r/orgmode, r/spacemacs, r/planetemacs, Mastodon #emacs, Bluesky #emacs, Hacker News, lobste.rs, programming.dev, lemmy.world, lemmy.ml, communick.news, planet.emacslife.com, YouTube, the Emacs NEWS file, Emacs Calendar, and emacs-devel. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at sacha@sachachua.com. Thank you!
-
🔗 Kagi release notes Feb 4th, 2025 - Introducing Fair Pricing rss
Use it or keep it
In months where you don't utilize any searches on your plan, we will automatically apply a full credit to your account for that month. This credit will be applied to your next billing cycle, effectively covering your subsequent month's subscription at no additional cost.
We have implemented this for the simple reason of being kind to our users. We understand some months you may forget to use Kagi or do not need it, so when you do, you can rest assured that we haven’t charged you for that.
This change is effective immediately, no forms to fill, no requests to make.
Improvements and bug fixes
Search
- Elevated ranking adjustment can be too aggressive #4986 @jose-elias-alvarez
- Allow 'Search Options Always Open" on mobile! #5999 @igak_revol
- Images footer is visually inconsistent and other fixes #5489 @Keli
- Option to disable snaps #6030 @Boomkop3
- Duplicate YouTube Results in Video Search with &pp links #6130 @Replica6
- When Kagi is in verbatim mode, make it more obvious #5871 @tome
- When answering my question, Quick Answer text exceeds the screen real estate #5520 @santiii
- Videos: duplicates in result when url slightly different #5827 @Thibaultmol
- No amount of current or date in billing #6153 @jainkila
Assistant
- Assistant switches model on edit #4685 @Value7609
- Info panel not visible for new Assistant UI #6143 @azdanov
- Add lenses to Custom Assistant feature (when based on Research) #3338 @mchsxxpryr
- Assistant is repeating itself for no apparent reason #5802 @agustinfitipaldi
Kagi on Socials
Here is this week's featured social media post.
Tag our accounts or use #Kagi when mentioning us in your posts!
Kagi in the News
Fast Company just published an article highlighting how Kagi is redefining search by prioritising users over ads and clutter. It's a good in-depth read, perfect for sharing with anyone curious about a better way to search!
(define) scrappy: Having an aggressive spirit; inclined to fight or strive. (informal)
Yep, sounds about right!
-
🔗 r/reverseengineering /r/ReverseEngineering's Weekly Questions Thread rss
To reduce the amount of noise from questions, we have disabled self-posts in favor of a unified questions thread every week. Feel free to ask any question about reverse engineering here. If your question is about how to use a specific tool, or is specific to some particular target, you will have better luck on the Reverse Engineering StackExchange. See also /r/AskReverseEngineering.
submitted by /u/AutoModerator
[link] [comments] -
🔗 @cxiao@infosec.exchange For better or for worse in 4 years, let's look back at this and remember: mastodon
For better or for worse in 4 years, let's look back at this and remember: Tobias Lutke said we should just roll over.
-
- February 02, 2025
-
🔗 News Minimalist Trump imposes tariffs on Canada, Mexico, China + 1 more story rss
Today ChatGPT read 13229 top news stories. After removing previously covered events, there are 2 articles with a significance score over 5.9.
[6.0] Trump imposes sweeping tariffs on Canada, Mexico, and China, triggering immediate retaliation —theguardian.com
Donald Trump introduced sweeping tariffs against Canada, Mexico, and China, including a 25% charge on most Canadian and Mexican exports, a 10% levy on Canadian energy imports, and an additional 10% tariff on existing duties for Chinese goods. He justified these measures as necessary to curb illegal immigration and drug trafficking.
Canada responded by announcing a 25% tariff on C$155bn of US products, Mexico's president ordered to implement retaliatory tariffs and non-tariff measures, and China threatened to file a complaint at the WTO. Analysts warn that the EU could follow, fueling fears of a global trade war.
Economists expect US stocks to fall and energy prices to rise, citing heightened market volatility and recession concerns in Canada. Despite these warnings, Trump insists tariffs “don’t cause inflation” and will ultimately lead to “success” for the US economy.
[6.0] China builds world's largest military command center near Beijing —economictimes.indiatimes.com
China is building a massive military command center near Beijing, called "Beijing Military City." This facility is expected to be ten times larger than the Pentagon and is designed to enhance China's military capabilities.
Construction began in mid-2024, aligning with the People's Liberation Army's centenary in 2027. The site features extensive underground facilities and is intended to provide protection against nuclear threats.
U.S. intelligence officials believe this development indicates China's aim to advance its nuclear warfare capabilities. The project coincides with China's expanding nuclear arsenal, which is projected to reach 1,500 operational weapons by 2035.
Highly covered news with significance over 5.5
[5.5] UK's NHS approves gene therapy as potential cure for sickle cell disease
(theguardian.com + 4)Want to read more?
See additional news on newsminimalist.com
Thanks for reading and see you soon,
Vadim
-
🔗 r/wiesbaden Where can I buy good matcha? 🍵 rss
I would like to start drinking matcha this year but I don’t know where to start. Any pointers of where to find the real thing? Thank you
submitted by /u/bigasslemons
[link] [comments] -
🔗 hyprwm/Hyprland v0.47.2 release
A minor update on top of 0.47.1 with some additional fixes and patches.
Fixes backported
- xwayland: handle window coords correctly (#9238)
- monitor: preferred mode now tries first 3 modes if it fails before erroring (#9246)
- xwayland: prevent invalid window configurations for X11 apps (#9253)
- desktop: fix segfault when destroying a partially created ls (#9247)
- configWatcher: watch both symlinks and canonical paths (#9219)
- xwayland: correct pointer coordinate mismatch in X11 windows (#9259)
- animation: don't immediately disconnect active vars during tick (#9272)
- desktop: move popup and subsurface ctors to factories
- popup: take xdg geometry into account in input calcs
- desktop: move popups to UPs and fix missing subsurface resource
Special Thanks
Special thanks as always to these chads for donating:
- Xoores
- johndoe42
- yyyyyyan
- taigrr
- SomeMediocreGamer
- Azelphur
- alukortti
- Theory_Lukas
- MasterHowToLearn
- ari-cake
- AuHunter
- Amaan Q
- Jas Singh
- matipan
- SViN Drawing
- NextDreamJob.LIVE
- Plyply
- atomicptr
- Skidam
- Avid
- FUTO
- XoZu
- System64
- Pascal Nitsche
- JustOptimize
- billybo_o
- denast
- gorfxx
- LCLP
- Ben
- Dainatello
- Diego
- Riesi
- Xellor
- Daniel
- Abdulaziz Al-Khater
- Cassio Fernando
- Efo
- Adrian Dobkowski
- Ricardo C
- JanRi3D
- andmars
- SiliconVillager
- Frank Huurman
- Francois
- Fan2Shrek
- anna//bool
Full Changelog :
v0.47.1...v0.47.2
-