1
submitted 1 week ago by freddo@feddit.nu to c/videos@lemmy.world
3
submitted 3 weeks ago by freddo@feddit.nu to c/videos@lemmy.world
[-] freddo@feddit.nu 2 points 3 weeks ago

Som det ska vara

[-] freddo@feddit.nu 2 points 1 month ago

"Just a second" is the cloudflare page before the session has been verified.

63
submitted 2 months ago by freddo@feddit.nu to c/videos@lemmy.world
109
submitted 2 months ago by freddo@feddit.nu to c/games@lemmy.world
28
submitted 2 months ago by freddo@feddit.nu to c/terraform@programming.dev

cross-posted from: https://feddit.nu/post/4403233

On April 3rd, we received a Cease and Desist letter from HashiCorp regarding our implementation of the "removed" block in OpenTofu, claiming copyright infringement on the part of one of our core developers. We were also made aware of an article posted that same day with the same accusations. We have investigated these claims and are publishing the C&D letter, our response and the source code origin document resulting from our investigation.

The OpenTofu team vehemently disagrees with any suggestion that it misappropriated, mis-sourced, or otherwise misused HashiCorp’s BSL code. All such statements have zero basis in facts.

HashiCorp has made claims of copyright infringement in a cease & desist letter. These claims are completely unsubstantiated.

The code in question can be clearly shown to have been copied from older code under the MPL-2.0 license. HashiCorp seems to have copied the same code itself when they implemented their version of this feature. All of this is easily visible in our detailed SCO analysis, as well as their own comments which indicate this.

Documents

To prevent further harassment of individual people, we have redacted any personal information from these documents.

Conclusion

Despite these events, we have managed to carry out significant development on OpenTofu 1.7, including state encryption, “for_each” implementation for “import” blocks, as well as the all-new provider-defined functions supported by the recently released provider plugin protocol.

On that note, we will be releasing a new pre-release version next week, and we are eager to gather feedback from the community.

— The OpenTofu Team


The image in this blog post contains code licensed under the BUSL-1.1 by HashiCorp. However, for the purposes of this post we are making non-commercial, transformative fair use under 17 U.S. Code § 107. You can read more about fair use on the website of the US Copyright Office.

206

On April 3rd, we received a Cease and Desist letter from HashiCorp regarding our implementation of the "removed" block in OpenTofu, claiming copyright infringement on the part of one of our core developers. We were also made aware of an article posted that same day with the same accusations. We have investigated these claims and are publishing the C&D letter, our response and the source code origin document resulting from our investigation.

The OpenTofu team vehemently disagrees with any suggestion that it misappropriated, mis-sourced, or otherwise misused HashiCorp’s BSL code. All such statements have zero basis in facts.

HashiCorp has made claims of copyright infringement in a cease & desist letter. These claims are completely unsubstantiated.

The code in question can be clearly shown to have been copied from older code under the MPL-2.0 license. HashiCorp seems to have copied the same code itself when they implemented their version of this feature. All of this is easily visible in our detailed SCO analysis, as well as their own comments which indicate this.

Documents

To prevent further harassment of individual people, we have redacted any personal information from these documents.

Conclusion

Despite these events, we have managed to carry out significant development on OpenTofu 1.7, including state encryption, “for_each” implementation for “import” blocks, as well as the all-new provider-defined functions supported by the recently released provider plugin protocol.

On that note, we will be releasing a new pre-release version next week, and we are eager to gather feedback from the community.

— The OpenTofu Team


The image in this blog post contains code licensed under the BUSL-1.1 by HashiCorp. However, for the purposes of this post we are making non-commercial, transformative fair use under 17 U.S. Code § 107. You can read more about fair use on the website of the US Copyright Office.

53
submitted 2 months ago* (last edited 2 months ago) by freddo@feddit.nu to c/selfhosted@lemmy.world

cross-posted from: https://feddit.nu/post/4395688

HashiCorp joins IBM to accelerate the mission of multi-cloud automation and bring the products to a broader audience of users and customers.

Today we announced that HashiCorp has signed an agreement to be acquired by IBM to accelerate the multi-cloud automation journey we started almost 12 years ago. I’m hugely excited by this announcement and believe this is an opportunity to further the HashiCorp mission and to expand to a much broader audience with the support of IBM.

When we started the company in 2012, the cloud landscape was very different than today. Mitchell and I were first exposed to public clouds as hobbyists, experimenting with startup ideas, and later as professional developers building mission-critical applications. That experience made it clear that automation was absolutely necessary for cloud infrastructure to be managed at scale. The transformative impact of the public cloud also made it clear that we would inevitably live in a multi-cloud world. Lastly, it was clear that adoption of this technology would be driven by our fellow practitioners who were reimagining the infrastructure landscape.

We founded HashiCorp with a mission to enable cloud automation in a multi-cloud world for a community of practitioners. Today, I’m incredibly proud of everything that we have achieved together. Our products are downloaded hundreds of millions of times each year by our passionate community of users. Each year, we certify tens of thousands of new users on our products, who use our tools each and every day to manage their applications and infrastructure.

We’ve partnered with thousands of customers, including hundreds of the largest organizations in the world, to power their journey to multi-cloud. They have trusted us with their mission-critical applications and core infrastructure. One of the most rewarding aspects of infrastructure is quietly underpinning incredible applications around the world. We are proud to enable millions of players to game together, deliver loyalty points for ordering coffee, connect self-driving cars, and secure trillions of dollars of transactions daily. This is why we’ve always believed that infrastructure enables innovation.

The HashiCorp portfolio of products has grown significantly since we started the company. We’ve continued to work with our community and customers to identify their challenges in adopting multi-cloud infrastructure and transitioning to zero trust approaches to security. These challenges have in turn become opportunities for us to build new products and services on top of the HashiCorp Cloud Platform.

This brings us to why I’m excited about today's announcement. We will continue to build products and services as HashiCorp, and will operate as a division inside IBM Software. By joining IBM, HashiCorp products can be made available to a much larger audience, enabling us to serve many more users and customers. For our customers and partners, this combination will enable us to go further than as a standalone company.

The community around HashiCorp is what has enabled our success. We will continue to be deeply invested in the community of users and partners who work with HashiCorp today. Further, through the scale of the IBM and Red Hat communities, we plan to significantly broaden our reach and impact.

While we are more than a decade into HashiCorp, we believe we are still in the early stages of cloud adoption. With IBM, we have the opportunity to help more customers get there faster, to accelerate our product innovation, and to continue to grow our practitioner community.

I’m deeply appreciative of the support of our users, customers, employees, and partners. It has been an incredibly rewarding journey to build HashiCorp to this point, and I’m looking forward to this next chapter.

Additional Information and Where to Find ItHashiCorp, Inc. (“HashiCorp”), the members of HashiCorp’s board of directors and certain of HashiCorp’s executive officers are participants in the solicitation of proxies from stockholders in connection with the pending acquisition of HashiCorp (the “Transaction”). HashiCorp plans to file a proxy statement (the “Transaction Proxy Statement”) with the Securities and Exchange Commission (the “SEC”) in connection with the solicitation of proxies to approve the Transaction. David McJannet, Armon Dadgar, Susan St. Ledger, Todd Ford, David Henshall, Glenn Solomon and Sigal Zarmi, all of whom are members of HashiCorp’s board of directors, and Navam Welihinda, HashiCorp’s chief financial officer, are participants in HashiCorp’s solicitation. Information regarding such participants, including their direct or indirect interests, by security holdings or otherwise, will be included in the Transaction Proxy Statement and other relevant documents to be filed with the SEC in connection with the Transaction. Additional information about such participants is available under the captions “Board of Directors and Corporate Governance,” “Executive Officers” and “Security Ownership of Certain Beneficial Owners and Management” in HashiCorp’s definitive proxy statement in connection with its 2023 Annual Meeting of Stockholders (the “2023 Proxy Statement”), which was filed with the SEC on May 17, 2023 (and is available at https://www.sec.gov/ix?doc=/Archives/edgar/data/1720671/000114036123025250/ny20008192x1_def14a.htm). To the extent that holdings of HashiCorp’s securities have changed since the amounts printed in the 2023 Proxy Statement, such changes have been or will be reflected on Statements of Change in Ownership on Form 4 filed with the SEC (which are available at https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0001720671&type=&dateb=&owner=only&count=40&search_text=). Information regarding HashiCorp’s transactions with related persons is set forth under the caption “Related Person Transactions” in the 2023 Proxy Statement. Certain illustrative information regarding the payments to that may be owed, and the circumstances in which they may be owed, to HashiCorp’s named executive officers in a change of control of HashiCorp is set forth under the caption “Executive Compensation—Potential Payments upon Termination or Change in Control” in the 2023 Proxy Statement. With respect to Ms. St. Ledger, certain of such illustrative information is contained in the Current Report on Form 8-K filed with the SEC on June 7, 2023 (and is available at https://www.sec.gov/ix?doc=/Archives/edgar/data/1720671/000162828023021270/hcp-20230607.htm).

Promptly after filing the definitive Transaction Proxy Statement with the SEC, HashiCorp will mail the definitive Transaction Proxy Statement and a WHITE proxy card to each stockholder entitled to vote at the special meeting to consider the Transaction. STOCKHOLDERS ARE URGED TO READ THE TRANSACTION PROXY STATEMENT (INCLUDING ANY AMENDMENTS OR SUPPLEMENTS THERETO) AND ANY OTHER RELEVANT DOCUMENTS THAT HASHICORP WILL FILE WITH THE SEC WHEN THEY BECOME AVAILABLE BECAUSE THEY WILL CONTAIN IMPORTANT INFORMATION. Stockholders may obtain, free of charge, the preliminary and definitive versions of the Transaction Proxy Statement, any amendments or supplements thereto, and any other relevant documents filed by HashiCorp with the SEC in connection with the Transaction at the SEC’s website (http://www.sec.gov). Copies of HashiCorp’s definitive Transaction Proxy Statement, any amendments or supplements thereto, and any other relevant documents filed by HashiCorp with the SEC in connection with the Transaction will also be available, free of charge, at HashiCorp’s investor relations website (https://ir.hashicorp.com/), or by emailing HashiCorp’s investor relations department (ir@hashicorp.com).

Forward-Looking StatementsThis communication may contain forward-looking statements that involve risks and uncertainties, including statements regarding (i) the Transaction; (ii) the expected timing of the closing of the Transaction; (iii) considerations taken into account in approving and entering into the Transaction; and (iv) expectations for HashiCorp following the closing of the Transaction. There can be no assurance that the Transaction will be consummated. Risks and uncertainties that could cause actual results to differ materially from those indicated in the forward-looking statements, in addition to those identified above, include: (i) the possibility that the conditions to the closing of the Transaction are not satisfied, including the risk that required approvals from HashiCorp’s stockholders for the Transaction or required regulatory approvals to consummate the Transaction are not obtained, on a timely basis or at all; (ii) the occurrence of any event, change or other circumstance that could give rise to a right to terminate the Transaction, including in circumstances requiring HashiCorp to pay a termination fee; (iii) possible disruption related to the Transaction to HashiCorp’s current plans, operations and business relationships, including through the loss of customers and employees; (iv) the amount of the costs, fees, expenses and other charges incurred by HashiCorp related to the Transaction; (v) the risk that HashiCorp’s stock price may fluctuate during the pendency of the Transaction and may decline if the Transaction is not completed; (vi) the diversion of HashiCorp management’s time and attention from ongoing business operations and opportunities; (vii) the response of competitors and other market participants to the Transaction; (viii) potential litigation relating to the Transaction; (ix) uncertainty as to timing of completion of the Transaction and the ability of each party to consummate the Transaction; and (x) other risks and uncertainties detailed in the periodic reports that HashiCorp files with the SEC, including HashiCorp’s Annual Report on Form 10-K. All forward-looking statements in this communication are based on information available to HashiCorp as of the date of this communication, and, except as required by law, HashiCorp does not assume any obligation to update the forward-looking statements provided to reflect events that occur or circumstances that exist after the date on which they were made.

RIP Hashicorp, any good alternatives? Use most of their stack.

[-] freddo@feddit.nu 4 points 2 months ago

Is it really a problem that they want to stay faithful to the original game? You say it yourself that FIRS is available as an option for people who want something more advanced to work with, along with all the other NewGRFs.

1
submitted 2 months ago by freddo@feddit.nu to c/openttd@sh.itjust.works

Welcome to 14.0!

OpenTTD’s first release was in March of 2004. Now twenty years later, we are proud to present to you: release 14.0.

And boy, what a release it is. Do I dare to say: this has been the biggest release yet?

Sometimes people try to tell us OpenTTD is dead. Well, 14.0 shows you it really isn’t. There are so many new goodies in 14.0, that I don’t even know where to start! Let’s go over a few, just to get you a feel for what to expect when you launch OpenTTD 14.0.

Read more about our birthday celebration here.

When one day isn’t a day

It is now possible to make the calendar time walk slower, up to a point it is frozen. This doesn’t influence vehicle movement at all, nor the amount of goods transported, town growth, etc. But it does influence vehicle introduction dates, inflation, and aging.

With this feature, we hope to enable different game-plays, where people want to have more time to build out their empire before vehicles expire, inflation gets too big, etc.

A brand new day! For some a bit slower than others.

Read more about this new feature in the devblog.

Ship Pathfinder

The ship pathfinder got some great love. It is now capable of directing ships over vast distances without the need for buoys. In fact, one could say, you don’t need buoys anymore at all. The ships will still find their way!

Finally, no more “Ship is lost” non-sense. This enables ship-only games.

Read more about this new feature in the devblog.

Unbunching

Do you also hate when busses start hugging each other on a route? And you did your best to ensure you send them out the depot with a good distance between them. But something must have happened down the road, and now they are very close to each other!

Introducing: unbunching.

A new feature that allows you to tell all vehicles in a shared order pool to keep their distance; automatically, done for you.

Read more about this new feature in the devblog.

Social Platform integration

OpenTTD 14.0 allows better integration with Social Platforms. This is totally optional, and has to be installed separately. But once done, OpenTTD can talk to platforms like Steam, Discord and GOG Galaxy.

For now, the functionality is limited: friends can see you play OpenTTD, if you are in a server or not, and what kind of map you are playing. For future versions, we intend to expand on that, making more possible. But, small steps.

Read more about this new feature in the devblog.

Survey support

To finally put a rest to endless debates about what setting is used and which is not, OpenTTD now has an opt-in survey tool built-in. Over time this will allow us, developers, to better understand how OpenTTD is played, so we can better anticipate what will be a hit or a miss.

You can, at any time, opt in or out from the survey.

Read more about this new feature in the devblog

GUI improvements / scalable font

There has been a huge effort in making all our windows just a tiny bit better. Fixing pixel-errors, moving things around a bit, fixing colouring issues.

But .. not less important, we now also have a built-in scalable font! Zephyris created a real (TTF) font heavily inspired by the sprite font. This means that scaling looks a lot better, especially for zoom levels like 1.5x.

We love it so much, it is the default when you launch the game! (but no worries, you can revert to the sprite font if you really want to).

Read more about this new feature in the devblog.

New players experience

First of all, there is now a Help and Manuals button in-game, that helps you through the basic information of the game. Bringing information closer to the user, and the game more accessible to everyone, has been a path we have been on for a while.

Second, we revised a lot of settings, what their default value should be. Many settings have had their defaults changed, mostly towards enabling modern features by default.

Lastly, we also renamed Cheats to Sandbox. We noticed people were struggling with using “cheats”, as we have been conditioned that cheats in games are bad. But Cheats in OpenTTD context is much more “play how you like” (read: Sandbox). So we renamed it, hopefully making it more clear to new players that it is perfectly okay to use these Sandbox options any time they like.

Hopefully this helps new players get into the game easier.

So much more …

In total OpenTTD 14.0 comes with roughly 40 new features, over 500 bug-fixes, 200 changes, and many many code improvements.

It took us 2,000 commits to get from 13.4 to 14.0, we touched 140,000 lines of code and removed 74,000 of them. This was all done by over 60 contributors.

Interested how this all came together? Check out our blog post explaining it all.

A great thank you to all who contributed, with code or support; it is truly appreciated! Here’s to another twenty years of OpenTTD development!

[-] freddo@feddit.nu 4 points 3 months ago

Is it possible to just run your own SIP-trunk? We're not intending on sending or receiving calls from external numbers outside of our little network.

[-] freddo@feddit.nu 4 points 3 months ago

What do you mean by "a block of external phone numbers?" We'd like to simply have our own internal numbers ideally, nothing to connect to the regular phone network.

33
submitted 3 months ago by freddo@feddit.nu to c/selfhosted@lemmy.world

Just for fun, a few associations I'm part of want to set up our own IP-phone network, with our own phone numbers and such.

  • Is this possible?
  • How would one go about doing this?
  • Does it have to be it's own separate network or can it work via the internet without special setup beyond a public IP?
1
A newly debuted SimCity 4 mod gives the Maxis-made city builder a whole new look more than 21 years following its initial release.
  • A newly released mod adds a fully 3D camera to SimCity 4.
  • While the 2003 game already offered multiple perspectives, its camera angles were limited for performance reasons.
  • Many SimCity 4 fans have praised the mod for breathing new life into the cult-classic game, though some were initially suspicious that the add-on was an April Fools' joke.

A recently debuted *** SimCity 4*** mod adds a fully functional 3D camera to the game, thus giving it a whole new look. This add-on is yet another example illustrating how SimCity 4 continues to attract both player and modder interest more than 21 years following its launch.

Originally released in January 2003, the fourth mainline entry in the SimCity franchise is still touted as one of the best city-builder games ever made. Public data available via the Steam API reveals that hundreds of players continue to enjoy it on a daily basis as of early April 2024. SimCity 4 has also long boasted a healthy modding community, which keeps churning out all kinds of add-ons quite regularly.

The latest example of its efforts arrives in the form of the 3D Camera DLL mod by Simtropolis user Memo. Much like its name suggests, this modification allows players to make much more granular changes to the game's camera angles. Back in the early 2000s, Maxis opted against using a free-moving three-dimensional camera in favor of fixed trimetric orthographic projection allowing only a few angles for performance reasons. But with modern PCs being fully capable of handling more flexible solutions, Memo put together a DLL plugin that helps unlock the full potential of the SimCity 4 3D engine.

SimCity 4 Fans Thought 3D Camera Mod Was An April Fools' Joke

The add-on has been making the rounds on social media since early April, garnering quite a bit of praise from the fandom. And while hundreds of players have already downloaded it over the past week, this custom-made 3D camera plugin still had to overcome some initial skepticism. Specifically, Memo dropped the mod on April 1, which immediately led some SimCity 4 fans to wonder if the add-on wasn't an April Fools' joke, judging from the early reactions to this release posted on Reddit and Simtropolis. How To Install and Use Memo's SimCity 4 3D Camera Mod

Installing the mod itself is as simple as downloading its 46kB DLL file and moving it to the game's mod folder, which defaults to C:\Users\[$USERNAME]\Documents\SimCity 4\Plugins on Windows (the add-on also supports the Linux port). With that out of the way, players can tweak the game's camera angle using either CameraPitch or CameraYaw commands in the cheat console. Both of those are meant to be followed by space-separated numbers representing exact angle values: "CameraPitch 85," "CameraYaw 45," etc. The add-on has been developed as an open-source project, allowing tech-savvy users to even compile their own DLL from its source code, which is hosted in the memo33/sc4-3d-camera-dll GitHub repository.

Many players have already taken to social media to praise the 3D camera mod for breathing new life into the 21-year-old game. Its release has also inspired some new discussion among the fandom about what a shame it is that the SimCity franchise is effectively dead nowadays.

#Games #SimCity-4 #SimCity #PC-Gaming #EA #EA-Games #Maxis #Linux

1
1
submitted 3 months ago by freddo@feddit.nu to c/openttd@sh.itjust.works

I was once the hottest new model on the street. Newspapers heralded my arrival in every town. The titans of industry were inspired to produce more goods when I visited their factories.

But as the years have passed, so do their eyes pass over me, to eye curiously my replacements. Will you try the new style, ma’am? It’s so much better than that old thing.

I’ve watched my friends grow old and die. My brother got caught in traffic and caused a horrific level crossing collision. I get sick more often, wheezing to a halt wherever I am. When I visit the doctor for a spot of renewal, they tell me, “Sorry, I can’t help. You’re too old.” When will I be autoreplaced?

Woe is the tale of the Balogh Goods Truck. But what if we could slow or pause the steady march of time? In OpenTTD 14, you can.

Time basics

Time in OpenTTD flows in three ways: The movement of vehicles, which we’ll call animation time. The keeping of economic records, including charging you running costs for vehicles, recording the graphs of your company’s income history, recording the production of industries and towns, and vehicle timetables. We’ll call this economy time. The passage of calendar time, affecting the introduction and expiry of vehicles, house styles, and the sub-arctic snowline (if using a variable snowline NewGRF). We’ll call this calendar time.

Let’s get the easiest out of the way first: we are leaving animation time alone.

Before OpenTTD 14, economy time was not tracked separately from calendar time. When players wanted to run steam engines for longer, they turned on “Vehicle never expire” or used the date cheat to rewind time when needed. Somebody wrote a Daylength patch, later included in JGR’s Patchpack, that slows down the combined calendar/economy time at the expense of many side effects.

But slowing the economy was not what old Balogh asked for.

The journey to real-time units

In late 2022, I began the work of splitting economy and calendar time. I was following a vision from my fellow developer nielsm, who proposed a novel solution to a problem that had vexed my previous attempts at this split.

The problem is this: If the economy does not follow the calendar, how do we display economy statistics like an industry’s “Production last month,” timetable arrival and departure dates, or the myriad other things that refer to time?

The ugliest solution is to display two dates. But OpenTTD’s user interface is confusing enough. Adding a second date is not a good user experience.

Nielsm’s proposal capitalizes on the fact that a day in OpenTTD is about two seconds, meaning that a 30-day month is about a minute. We can simply make this a bit more precise, then display economy time in real seconds and minutes!

The first step was making the seconds-per-day a bit more precise. The smallest unit of time in OpenTTD is a tick, of which there are 74 in a standard day. Prior to OpenTTD 14, one tick lasted 30 milliseconds, making a day 2.22 seconds. That’s close, but not quite close enough when multiplied out to a month or a year. But in TTD, one tick is 27 milliseconds, making a day 1.998 seconds. That’s about as perfect as we can get. In OpenTTD, we’ve gone back to this original TTD value to better align to real-time seconds.

With this the “amount of goods produced in an in-game month” is about the same as the “amount of goods produced in one realtime minute”. A “vehicle service interval of 100 in-game days” is about the same as a “vehicle service interval of 200 real-time seconds”.

Of course, not everyone will want to play OpenTTD using real-time units, so the new feature is an opt-in setting called Timekeeping units.

Calendar units are the classic OpenTTD experience, with no changes. Wallclock units use minutes anywhere months are normally displayed, with 12-minute periods substituting for years.

Where a date would normally be displayed (timetable start date, subsidy expiration date, etc.), the game shows an offset in seconds or minutes from the current moment. Timetables are expressed in seconds.

It’s also possible to select seconds as the timetable units in any timekeeping mode, in the Settings menu.

How to slow down time

There are two new settings used to control the flow of calendar time.

  1. Timekeeping: Select the timekeeping units of the game. Calendar is the traditional OpenTTD experience and you won’t notice any changes. Wallclock displays the new real-time units and is required to adjust the rate of calendar progression.
  2. Minutes per year: Select how long a year lasts. The default is 12 minutes. Set this to 0 to freeze calendar time completely. The maximum is 10,080 minutes, which is one week of real time!

The timekeeping mode can only be changed before starting a game, so choose wisely! Minutes per year can be changed at any time.

What about cargo scaling?

The economy time always progresses at the usual rate, so it has none of the side effects of the Daylength patch. That said, one of the side effects that players like is the reduced cargo production of houses and industries. We’ve added separate settings to scale these, and you can do this in any timekeeping mode.

You may notice some differences with NewGRF industries. Industries normally produce cargo every 256 ticks, and for base game and simple NewGRF industries we simply scale the amount of cargo produced. For NewGRF industries which calculate their own cargo consumption and production, this could produce unwanted results. For these, we instead scale the frequency of this production action, so at a lower scale the industry performs this action less often.

Some industry NewGRFs will have inaccurate helptext because of this change, as they will with wallclock timekeeping — for example, some industries increase production when supplied with boost cargos every three months. NewGRF authors will have to update their GRFs to display properly in the new modes, although of course there is no change required in Calendar timekeeping mode with 100% cargo scaling.

Cleaving time in two

Let’s get back to new time features. To actually implement these, we had to work backwards from the ending point. In order to stay compatible with calendar timekeeping units, the economy time units need to take the same form of years, months, and days, so that in calendar mode they follow the calendar date exactly. In wallclock mode, however, they diverge: an economy-month always has 30 days to always last one minute, so an economy-year always lasts 12 minutes. In contrast: the calendar-year lasts 365 or 366 days, so 12 minutes and 10 or 12 seconds.

This difference between calendar and economy dates is why players are not allowed to change timekeeping units in the middle of a game. OpenTTD’s 20-year-old codebase contains a lot of assumptions about how time works and does not react nicely to synchronizing or un-synchronizing two date systems. For example, if we are in calendar mode on the 31st day of the month and switch to wallclock mode, that day would not exist. The date would have to be shifted, but that can make company finance data stop being recorded for two thousand years, crash the game when the Cargo Distribution linkgraph checks if it’s time to update, or (worst of all) cause some other bug I haven’t discovered! Maybe someday, another contributor will write the code to nicely convert between the two modes and enable the timekeeping mode to be changed mid-game, but now is not that time nor am I that contributor.

Tech debt comes knocking

Of course, there was a lot of technical debt to be paid off before we could even get here. The calendar had to be cleaved in two and every reference to it evaluated to determine if it should continue to reference the calendar or be changed to the new economy timer.

My fellow developer TrueBrain was instrumental in helping me with this step, writing a new strongly-typed timer system to help catch any errors. Strongly-typed does not refer to how hard you bang the keyboard, but to a type of variable that refuses to accept the wrong type of data. So if I try to pass a calendar date to a variable that stores an economy date, the compiler will give me an error and refuse to compile until I fix it.

With a codebase as old as OpenTTD, anytime we touch something it provides an opportunity to leave the code better than we found it. With such a wide-ranging project as changing how time works, I touched most of the codebase and found many opportunities to refactor, fix, or clean up old code.

Conclusion

I have been working on this project for over a year, often putting in 20 hours a week. Like with most development, my motivation is a mix of wanting to play with this feature myself, and simply enjoying the challenge. Why optimize my rail network when I can optimize the code that makes it possible?

This is the last Dev Diary before we release OpenTTD 14.0. Thanks for joining us to learn more about the OpenTTD development process. If you’d like to learn more, we hope you’ll join us in the official OpenTTD Discord or on GitHub. Stay tuned for a release post around April 1st!

[-] freddo@feddit.nu 32 points 9 months ago

You might want to read this https://web.archive.org/web/20230921232415/https://www.theatlantic.com/magazine/archive/2023/11/general-mark-milley-trump-coup/675375/

During the George Floyd protests in early June 2020, Milley, wearing combat fatigues, followed Trump out of the White House to Lafayette Square, which had just been cleared of demonstrators by force. Milley realized too late that Trump, who continued across the street to pose for a now-infamous photo while standing in front of a vandalized church, was manipulating him into a visual endorsement of his martial approach to the demonstrations. Though Milley left the entourage before it reached the church, the damage was significant. “We’re getting the fuck out of here,” Milley said to his security chief. “I’m fucking done with this shit.” Esper would later say that he and Milley had been duped.

For Milley, Lafayette Square was an agonizing episode; he described it later as a “road-to-Damascus moment.” The week afterward, in a commencement address to the National Defense University, he apologized to the armed forces and the country. “I should not have been there,” he said. “My presence in that moment and in that environment created a perception of the military involved in domestic politics.” His apology earned him the permanent enmity of Trump, who told him that apologies are a sign of weakness.

[-] freddo@feddit.nu 6 points 10 months ago

Less that, more just going over to the side to let faster vehicles pass and then continuing on. It is just common courtesy to everyone else driving faster vehicles, and is at least something taught to do in Swedish driving schools.

[-] freddo@feddit.nu 2 points 11 months ago

This is just a copy of the original EU parliament headline.

[-] freddo@feddit.nu 9 points 11 months ago

Minesweeper and various solitaires, which are decent enough to pass time.

[-] freddo@feddit.nu 2 points 11 months ago

I'd say the main benefit gained is sovereignty and a sense of place. This is not for personal use, but rather for a computer enthusiast association that I'm part of, so having our own git to integrate with the rest of our services makes sense. Throw on branding and link it to our SSO.

[-] freddo@feddit.nu 28 points 11 months ago

Oi M8 do you have a loicense for that Encryption? No? Well then, pay the foine or be branded a terrurist within the Five Eyes. /s

view more: next ›

freddo

joined 11 months ago
MODERATOR OF