4,067 karma · joined February 26, 2008
michael206@gmail.com
http://www.tamale.net/
Their experiments suggest that tiny water droplets appear inside the material at 70% RH (relative humidity). If this is true, then I expect there is a way to extract the droplets using very little energy. Ideas:
- make open collection points on the film
- use ultrasound to bounce the droplets around and consolidate them
- make the film on a material that can be saturated with water so the new droplets can easily join the flow
Is this so inefficient? If your code is very sensitive to IO throughput, then it seems preferable to re-use buffers and pay the initialization once at startup.
Some years ago, I needed a buffer like this and one didn't exist, so I wrote one: https://crates.io/crates/fixed-buffer . I like that it's a plain struct with no type parameters.
This new 70B will come from bonds sold to EU member states. The states need to approve purchasing the bonds.
EIB earns about 3% profit. Private banks earn about twice that [2]. EIB is a non-profit organization.
EIB makes about 10% of its loans outside of the EU.
[0] https://www.eib.org/attachments/lucalli/20240237_070525_fina...
[1] https://en.wikipedia.org/wiki/European_Investment_Bank#Fundi...
[2] https://www.bankingsupervision.europa.eu/press/speeches/date...
Firmware is an important part of the appliance. An appliance with Frigidaire hardware and third-party firmware is counterfeit.
Maybe the same thing happened with your Miele appliances?
2. Async Rust has a lot of papercuts.
3. Very little code actually needs async. For example, in an API server, every request handler will need a database connection so the concurrency is limited by the database.
I wrote the Servlin HTTP server in async rust, to handle slow clients, but it calls threaded request handlers.
I think it could be possible in Rust with a linter, something like https://github.com/geiger-rs/cargo-geiger . The Rust compiler has some unsoundness issues such as https://github.com/rust-lang/rust/issues/84366 . Those would need fixing or linter coverage.
I did this and it only solved half of the bloat:
https://crates.io/crates/safina - Safe async runtime, 6k lines
https://crates.io/crates/servlin - Modular HTTP server library, threaded handlers and async performance, 8k lines.
I use safina+servlin and 1,000 lines of Rust to run https://www.applin.dev, on a cheap VM. It serves some static files, a simple form, receives Stripe webooks, and talks to Postgres and Postmark. It depends on some heavy crate trees: async-fs, async-net, chrono, diesel, rand (libc), serde_json, ureq, and url.
2,088,283 lines of Rust are downloaded by `cargo vendor` run in the project dir.
986,513 lines using https://github.com/coreos/cargo-vendor-filterer to try to download only Linux deps with `cargo vendor-filterer --platform=x86_64-unknown-linux-gnu`. This still downloads the `winapi` crate and other Windows crates, but they contain only 22k lines.
976,338 lines omitting development dependencies with `cargo vendor-filterer --platform=x86_64-unknown-linux-gnu --keep-dep-kinds=normal`.
754,368 lines excluding tests with `cargo vendor-filterer --platform=aarch64-apple-darwin --exclude-crate-path='*#tests' deps.filtered`.
750k lines is a lot to support a 1k-line project. I guess I could remove the heavy deps with another 200 hours of work, and might end up with some lean crates. I've been waiting for someone to write a good threaded Rust Postgres client.
Learning requires making mistakes. Kids need to learn social skills in low-stakes environments. School is the best environment for this. When a person misses this part of their childhood education, they may struggle to learn these skills later in life.
> The EU regulator also dropped Meta's Marketplace's designation as a DMA gatekeeper because the number of users fell below the required threshold.
The EU government explains this in their press release: https://ec.europa.eu/commission/presscorner/detail/en/ip_25_...
> Today, the Commission also found that Meta's online intermediation service Facebook Marketplace should no longer be designated under the DMA. The decision follows a request submitted by Meta on 5 March 2024 to reconsider the designation of Marketplace. Following a careful assessment of Meta's arguments and as a result of Meta's additional enforcement and continued monitoring measures to counteract the business-to-consumer use of Marketplace, the Commission found that Marketplace had less than 10,000 business users in 2024. Meta therefore no longer meets the relevant threshold giving rise to a presumption that Marketplace is an important gateway for business users to reach end users.
This statement discounts how much random chance contributes to success & failure. Could the world's best founding team find and build a successful business in that field? Maybe. And even if they could, is it failure to be less good than the best? Not at all.
> Stay lean until you have proven revenue.
They raised a pre-seed round and used it to search for business opportunities. This seems like the normal way of doing a startup.
> TIME AND MONEY SPENT ON NON-ESSENTIALS - These included an office, website and branding, a trip to America, contractors, and unnecessary employees.
Having an office can boost energy and productivity. Taking a trip to US to connect with new advisors, investors, and other founders seems like a pretty normal thing to do.
I think these founders are being too hard on themselves. They got an amazing education in entrepreneurship. They don't need to feel bad about it.
Related: "N-acetylcysteine as a new prominent approach for treating psychiatric disorders" https://doi.org/10.1111/bph.15456 section "2.3 Regulation of inflammatory mediators".
N-acetylcysteine (NAC) is considered safe and is sold as a diet supplement in USA and many other countries. If you suffer from anxious feelings, 1200mg/day NAC may reduce them a lot.
use std::collections::BTreeSet;
use std::sync::Arc;
let mut set: BTreeSet<Arc<Box<str>>> = Default::default();
let s = Arc::new("abc".to_string().into_boxed_str());
if !set.contains(&s) {
set.insert(s.clone());
}
let s = set.get(&s).unwrap(); let plugin = state
.plugin_manager
.get_plugin::<OAuthPlugin<SqliteStorage, SqliteStorage>>("github")
.unwrap();
What are the reasons for using a string to identify the plugin?This pattern has some downsides: reduced code clarity (navigating to the plugin is hard), and it changes a class of errors from compile-time to run-time.
- She doesn't change the color of the scroll handle to make it invisible.
- She doesn't override my browser's font size, making the text too small to read.
- She doesn't configure the page to <expletives deleted> disallow pinch-zooming on mobile.
[1] https://dol.ny.gov/pay-transparency-act-frequently-asked-que...