Ben Matthews

  • New here on lemmy, will add more info later …
  • Also on mdon: @benjhm@scicomm.xyz
  • Try my interactive climate / futures model: SWIM
  • 0 Posts
  • 21 Comments
Joined 1 year ago
cake
Cake day: September 15th, 2023

help-circle
  • As a kid, I learned to write i = i +1, before school maths taught me it can’t. The point is, computers do iteration well, especially to model dynamics of real non-linear systems, while classical maths is good at finding algebraic solutions to equilibria - typically more theoretical than real. Calculus is great for understanding repeatable dynamics - such as waves in physics, also integrating over some distributions. But even without knowing that well you could still approximate stuff numerically with simple loops, test it, and if an inner-loop turns out to be time-critical or accuracy-critical (most are not), ask a mathematical colleague to rethink it - believe in iteration rather than perfect solutions.






  • I use vscode as I develop this model in Scala3, whose language-server ‘metals’ integrates well with vscode, and when scala3 was new in mid-21 this was the platform they first targeted. But the scala command-line tools do the clever analysis, vscode provides the layout, colours, git integration, search/regex, web-preview etc… Now considering other options (eg zed) as vscode too dependent on potentially unsafe extensions (of which too much choice), also don’t want M$ scraping my code. Long ago when same model was in java I used netbeans, then eclipse. Would prefer a pure-scala toolset.




  • Ben Matthews@sopuli.xyztoOpen Source@lemmy.mlThe Death of Decentralized Email
    link
    fedilink
    Français
    arrow-up
    50
    arrow-down
    1
    ·
    edit-2
    4 months ago

    I don’t buy this. I’m still using SMTP on my own domain and it’s working fine, a bit of spam but not unmanageable, real messages get read. Main challenge is digesting so many potentially-interesting list messages, indicating email’s continued dominance for professional topics. Seems this author has another agenda.
    Having said that, it’s a pity the world never agreed a protocol for micro-payment for emails (and for many other services), which would resolve the spam problem, and not be a burden for honest users.



  • Hi, excuse me for replying so late, but i’ve been away from lemmy for.a while. Well, to summarise, the model calculates the future trajectories, of population, economy, emissions, atmospheric gases, and climate response etc., according to a set of (hundreds of) diverse options and uncertainties which you can adjust - the key feature is that the change shows rapidly enough to let you follow cause -> effect, to understand how the system responds in a quasi-mechanical way.
    Indeed you are right, complexity is beautiful, but hard. A challenge with such tools is to adjust gradually from simple to complex. Although SWIM has four complexity levels, they are no longer systematically implemented - also what seems simple or complex varies depending where each person is coming from, so i think to adapt the complexity filter into a topic-focus filter. Much todo …


  • I can relate to this, having developed a coupled socio-emissions-carbon-climate model, which evolved for 20 years in java, until recently converted to scala3. You can have a look here. The problem is that “coupling” in such models of complex systems is a ‘good’ thing, as there are feedbacks - for example atmospheric co2 drives climate warming but the latter also changes the carbon cycle, demography drives economic growth but the latter influences fertility and migration, etc… (some feedbacks are solved by extrapolating from the previous timestep - the delay is anyway realistic). There are also policy feedbacks - between top-down climate-stabilisation goals, and bottom up trends and national policies, the choice affects the logical calculation order. All this has to work fast within the browser (now scala.js - originally java applet), responding interactively to parameter adjustments, only recalculating curves which changed - getting all these interactions right is hard.
    If restarting in scala3 I’d structure it differently, but having a lot of legacy science code known to work, it’s hard to pull it apart. Wish I’d known such principles at the beginning, but as it grew gradually, one doesn’t anticipate such complexity.





  • Too true.
    I still remember when java5 came out, many new features, great potential for a massive refactoring of my interactive climate model. Within that, I had an idea called “parallel worlds” for comparing scenarios, whereby for efficiency data was shared for parts of the system, and split across parts that varied as user adjusted parameters. So I pulled apart the whole codebase, and joined it back together again… - about two years later, by which time colleagues had given up interest.
    [ story simplified to relate to point of OP - not only task in two years! ].
    Now I develop a derivative climate system model in scala, but evidently it’s more interesting to develop some new complex part of the science code, than fix a graphical interface for beginners. But moods vary - some days lacking energy for refactoring, could be satisfied ticking off a few small tasks in a todo list. Yet after some time, brain craving for another big new complex idea…