I enabled the 80% charge limit from day one (September 2023) and after 159 cycles it is still at 100% maximum capacity.
I think it is also crucial to not allow deep discharge of the battery too frequently. Ideally keep the battery charge in the range of 40-80%. My usage is relatively low so I am mostly within that range.
Infrequently I have charged to 100% for longer days away from home. Enabling low power mode helps to prolong battery life on these occasions too.
“The issue occurred because some files containing positive test results exceeded the maximum file size that takes these data files and loads then into central systems, officials said.”
The Spider’s Web is a documentary film which covers this subject in detail. Well worth watching if you have an interest in finding out more.
“An investigation into the world of Britain’s secrecy jurisdictions and the City of London. Today, up to half of global offshore wealth may be hidden in British offshore jurisdictions and Britain and its offshore jurisdictions are the largest global players in the world of international finance.”
Elixir has the NimbleParsec library which generates parsing code that takes advantage of pattern matching for high performance and low memory usage due to the BEAM virtual machine optimisations.
For anyone interested in event sourcing with the actor model I've built an open source Elixir library called Commanded (https://github.com/commanded/commanded) which takes advantage of Erlang's BEAM VM to host aggregate processes. There's also an event store implemented in Elixir which uses Postgres for storage (https://github.com/commanded/eventstore).
The actor model provides the guarantee that requests to a single instance are processed serially, while requests to different instances can be processed concurrently. Distributed Erlang allows these instances to be scaled out amongst a cluster of nodes with transparent routing of commands to the instance, regardless of which connected node it is running on.
In Elixir and Erlang, the OTP platform provides the building blocks to host an aggregate instance as a process (as a `GenServer`). Following the "functional core, imperative shell" style I model the domain code as pure functions with the host process taking care of any IO, such as reading and appending the aggregate's events.
> In reality, it's impossible for a households to get a contract that follows market rate, you always pay the same per kWh no matter if it's Sunday or Monday, windy or calm.
In the UK you can use the Agile tariff from Octopus Energy (https://octopus.energy/agile/) which has half hourly dynamic pricing per electricity kWh. The next 24hrs worth of prices are released each day around 4pm and follow market cost. There’s a 12p/kWh surcharge between 4pm and 7pm during peak demand. Used in conjunction with a smart meter it bills per half hour usage and can go negative.
Twice in the last two week’s it has gone below zero due to recent storms. It’s a great tariff if you have an electric car to charge in the early hours when prices are cheapest and can reduce usage during the peak three hours. A home battery would also help out as it could be charged during cheap periods and discharged when prices are too high.
Tony Seba predicts the end of personal car ownership due to the disruption of transportation by new technology (batteries, electric vehicles, autonomous vehicles) and new business models, such as ride hailing and Transport-as-a-Service (TaaS).
Alberto Brandolini’s “Introducing EventStorming” [1] book is worth reading, even in its incomplete state, to understand the approach from its author.
There aren’t too many concepts to understand, it almost feels too simple to be of any value. But in all of the sessions I’ve been involved with participants have come away with a better understanding of the domain and often a useful model to begin working from.
Specialized ANGi is a Bluetooth hardware dongle that attaches to your helmet and will allow a contact to live track your ride (using Specialized’s app on your smartphone) and can also detect crashes and automatically send a text message to a contact. It’s available to purchase on its own or included with many Specialized helmets. I have one on a new MTB helmet after a recent crash on a trail.
I’ve personally suffered the same fate as Relive with Strava cutting off access to their API for a side project of mine [1]. They gave me twenty minutes notice via email before disabling access and effectively killing my app.
Ostensibly the reason was due to competing with a feature that Strava intend to build themselves (“thanks for proving the demand”). This was back in March, I’ve since been informed that access won’t ever be reinstated so have open sourced the code [2].
Lesson learnt, don’t depend entirely on third party APIs.
Phoenix Live View[1] fits the gap between server rendered HTML pages and JavaScript rendered front-ends. If you’re after a responsive web UI without needing to learn so many disparate frameworks and technologies it could be a good fit.
"Thinking in Bets: Making Smarter Decisions When You Don't Have All the Facts" by Annie Duke [1] is just that book. It emphasises that a bad result does not have to be the result of a bad decision.
“... the system was running too close to the point of exhaustion due to the intermittent crashes, and an event that should not have been a problem [high number of client reconnections] caused a high-severity incident.”
Sidekiq by Mike Perham is following the open core, paid subscription for a "pro" version containing extensions. His single founder company has a monthly recurring revenue in excess of $80k, as featured on Indie Hackers[1].
The remainder of the U.K., outside of London, has a larger dependency on the EU. These regions will suffer disproportionately more than London.
"In particular, Northern Ireland (the UK’s poorest region),
the North East (England’s poorest region) and the South West (Southern England’s poorest region) appear to be the most dependent on the ability of the UK to trade in goods with relatively few restrictions with other EU countries." [1]
Strava[1] provides a cycle route builder that uses the popularity of routes based on their dataset of uploaded rides. As it's using recorded rides, typically by local riders, I've found it produces good routing; quiet roads similar to those you'd choose if you knew the area well.
For anyone curious about Phoenix and Elixir, I can sincerely recommend the following resources to get you started:
- Programming Phoenix by Chris McCord, Bruce Tate, and José Valim [1]
- The Little Elixir & OTP Guidebook by Benjamin Tan Wei Hao [2]
- Elixir in Action by Saša Jurić [3]
Phoenix initially attracted me to Elixir, I've stuck around for that and the OTP platform: pattern matching, process based concurrency (actor model), supervision, immutability, macros, and more.
"Elixir took the Erlang virtual machine, BEAM, and put a sensible face on it. It gives you all the power of Erlang plus a powerful macro system." – Dave Thomas
I think it is also crucial to not allow deep discharge of the battery too frequently. Ideally keep the battery charge in the range of 40-80%. My usage is relatively low so I am mostly within that range.
Infrequently I have charged to 100% for longer days away from home. Enabling low power mode helps to prolong battery life on these occasions too.