Yea, if i produce anymore I'll happily pay a surcharge to have someone take them.
@Wetrix @realcaseyrollins @icedquinn @seek @khird @louiscouture @mathlover @mur2501 @pants
That moment #Amazon says “Arriving today” and you get all excited and then you realize it’s 12:36 AM😂
@realcaseyrollins Every damn time!
@icedquinn That sounds a bit too much like a solution... we dont do that around these parts.
For any ruby
devs out there, wanted to share a neat little open-source
module I wrote to solve a common problem. Keep in mind ruby is not my main language so if there is a batter approach here I'm all ears.
Basically right now I have a game (text based mud) and in normal and expected fashion objects in the game are created when their objects get initialized, such as a new player being created. The system then periodically saves the universe by marshalling all the object into some serialized format and saves it to a file from time to time. As tends to be the case with serialization, however, when an object is restored, such as a previous player logging out and back in, then the class is created directly without the initialize method getting called , its class and instance variables are simply populated directly.
This is where problems can arise if you change the system and add new features (such as a new variable to an object). New objects that are created will populate the new variable correctly through the initialize method however already existing players will not have that variable set at all (it won't be nil, it simply wont be set, which is a distinctly different state). This is the problem I solved.
What I did was created a mix-in module that lets you set default values for variables, once a class is reinstated from storage it checked if any variables that have defaults are unset (nil variables are considered set) and then applies the default value to them. In this way legacy objects will be able to update to new code changes automatically when it loads. To prevent duplicating code you can even intentionally leave it out of the initialize method and rely on the defaults when it is appropriate to do so.
Moreover the defaults do not have to be static values but can be determined based on the existing state of the object, which makes them dynamic and flexible... a class that uses the mixin could look like this:
require 'defaults'
class Foo
include Defaults
# @bar defaults to @baz*2
default(:bar) { |this| this.baz * 2 }
# @faaboo defaults to 178
default(:faaboo) { 178 }
def initialize
@baz = 13
#this line can be ommited
@bar = 26
# if you add this line instead
load_defaults
#either work fine
end
end
Here is a link to the module:
https://git.qoto.org/aethyr/Aethyr/-/blob/master/lib/aethyr/core/util/defaults.rb
You can see a class that utilizes this new feature here:
https://git.qoto.org/aethyr/Aethyr/-/blob/master/lib/aethyr/core/objects/game_object.rb
#Ruby #RubyLang #Programming #Coding #software #ComputerScience @Science #code #source #sourcecode #opensource #oss #game #gaming #gamedev #QotoJournal
@waltercool It doesnt solve the problem if your country has low crime statistics either.. because then there is no problem to solve.
In short, banning guns never solves problems.
WOA WOa Woa.... they made another stargate movie in 2018!!!!! How in the flying fuck did I miss this! Clearly I am not getting all my memos.
Stargate Origins: Catherine
Watching the hell out of this now... I cant believe there has been a stargate movie I missed and no one told me...
@waltercool The irony here is that they recognize the issue with their knife crime and their response, rather than concluding that outlawing guns dont work, was just to make super strict knife laws too. Now people get arrested for having screwdrivers under their knife laws they are so strict.
@lucifargundam They so didnt give a fuck in this movie that in one scene when they drive down an LA road Dar (the lead character) sees a movie theater that says "Beastmaster II: through the portal of time" and he looks shook and points at it questioningly... lol 0 fucks given
@lucifargundam They so didnt give a fuck in this movie that in one scene when they drive down an LA road Dar (the lead character) sees a movie theater that says "Beastmaster II: through the portal of time" and he looks shook and points at it questioningly... lol 0 fucks given
@lucifargundam Nope, Beastmaster 2 when he goes through a portal to LA.
@sidekick That is an acceptable description :)
You can keep them. I didnt add your name as a ransom payment, i added it as a thank you :)
@realcaseyrollins @icedquinn @seek @khird @louiscouture @mathlover @mur2501 @trinsec @pants
@penny if it were actually open-source I would feel bad about this.
Though in a way im glad it isnt open-source, if it was I probably would have been using that and never learned to use emacs.
Jeffrey Phillips Freeman
Innovator & Entrepreneur in Machine Learning, Evolutionary Computing & Big Data. Avid SCUBA diver, Open-source developer, HAM radio operator, astrophotographer, and anything nerdy.
Born and raised in Philadelphia, PA, USA, currently living in Utrecht, Netherlands, USA, and Thailand. Was also living in Israel, but left.
Pronouns: Sir / Mister
(Above pronouns are not intended to mock, i will respect any persons pronouns and only wish pronouns to show respect be used with me as well. These are called neopronouns, see an example of the word "frog" used as a neopronoun here: http://tinyurl.com/44hhej89 )
A proud member of the Penobscot Native American tribe, as well as a Mayflower passenger descendant. I sometimes post about my genealogical history.
My stance on various issues:
Education: Free to PhD, tax paid
Abortion: Protected, tax paid, limited time-frame
Welfare: Yes, no one should starve
UBI: No, use welfare
Racism: is real
Guns: Shall not be infringed
LGBT+/minorities: Support
Pronouns: Will respect
Trump: Moron, evil
Biden: Senile, racist
Police: ACAB
Drugs: Fully legal, no prescriptions needed
GPG/PGP Fingerprint: 8B23 64CD 2403 6DCB 7531 01D0 052D DA8E 0506 CBCE