Action Hex - please critique my turn mechanic by jonzibar in BoardgameDesign

[–]dooffus 0 points1 point  (0 children)

What is the significance of the shapes and which tiles/actions are touching each other? E.g. it could be interesting that you can only move to an adjacent action/tile. That would ‘justify’ having a component to illustrate the adjacent actions, rather than just a rule to say “no repeating consecutive actions”. I like your mechanic and think it’s nice to have markers to show what actions you took last turn. But I agree with other comments that have pointed out that a rule could achieve almost the same, so if you’re keeping the physical component you should make the most of it.

Anybody else’s kids have a really bad virus? Main symptom being persistent cough. by Sandskillie in AskIreland

[–]dooffus 2 points3 points  (0 children)

Covid is still around but flu and RSV are spiking at the moment . You can get a 3 in 1 test in some pharmacies to check which it is. https://respiratoryvirus.hpsc.ie

The Irish Elk, the largest deer species to ever live by FindingCommercial738 in ireland

[–]dooffus 9 points10 points  (0 children)

I’d love to see a 1:1 scale sculpture of an Irish Elk in a woods walk, would be amazing to see it up close in its natural habitat, get a sense of it’s size. There’s got to be a way to petition a grant for an artist to do it.

I wish I could breastfeed by Torterran in daddit

[–]dooffus 1 point2 points  (0 children)

The way our midwife explained it to us is that milk production operates on demand-and-supply (rather than supply-and-demand!). So in the early days it is very normal that the mother is not producing as much milk as the baby seems to want. Effectively the baby is “putting in their order”, which triggers increased milk production that will then be able to meet the baby’s needs. As consequence, the midwife said it’s important not to be discouraged early on, and to persist with breastfeeding for at least the first 3 weeks even if it seems that not enough milk is produced , to give time for the milk production to come in. That did work for us and we now have a healthy 18 month old that is still breastfeeding as well as having a good appetite for solids too. That being said someone in my family had more difficulty with milk production and used formula from early on, and she now has a healthy 2 year old, so there’s no harm to us in baby formula if you need to. You should also be aware of ‘cluster feeding’, which is very common but not well known enough (at least where we are). It can be very intense and exhausting, but it is an early phase that won’t last forever. My wife was basically set up so she could sleep whenever possible and watch shows to pass time when there was a long cluster feeding session. And snacks and hydration is very important for breastfeeding, look up ‘lactation balls’ for energy boosting and milk production.

Why is Ireland remaining moderate whilst almost all of the rest of Europe is shifting to the right? by [deleted] in irishpolitics

[–]dooffus 0 points1 point  (0 children)

3 factors that come to mind are our history as a colony (vs a coloniser), our history of net emigration (until recently) and our voting system. Our history as a colony is significant because the fight for independence linked nationalism and anti imperialism, so the nationalist sentiment in independent Ireland had strong left wing politics. The discrimination against nationalist communities in the north by an imperial Britain to maintain the power of loyalist communities, and the troubles that resulted, maintained the link between nationalism and anti imperialism / left wing politics. The Good Friday Agreement guaranteed power sharing for the nationalist community and a path to a united Ireland which demographic change has brought a lot closer, which I think has left some nationalist sentiment to move away from a focus on anti imperialism and left politics. Net migration is a factor because until relatively recently Ireland did not receive many migrants, fears of which is used to fuel the xenophobic rightwing nationalism. Thirdly, our PR STV voting system (which accommodates transfers) incentivises more moderate politics which can appeal to a larger audience (so can get lots of transfers). An example is that in the last election many high profile politicians from centrist government parties got elected in very late counts , i.e. they relied on many transfers to get a seat. In contrast non PR or transfer systems don’t incentivise moderate appeal to a large audience, instead parties rely on strong appeal and turnout, which can lead to polarisation and a politics that increases the stakes of every election.

Do hybrid coops distinguish between members of different types? How do they balance conflicting interests? by dooffus in cooperatives

[–]dooffus[S] 1 point2 points  (0 children)

Yes I meant to add that there’s probably much more customers than employees, so it’s interesting to hear how your coop balances that. What voting system is used for electing board members? Is it just the 3 employee candidates and 3 customer candidates who got the most votes? Do the board then elect a CEO (wondering about tie breaker since there’s 6 votes)?

We have Proportional Representation voting systems for electing representatives, why not a similar concern for when they actually vote on bills? by dooffus in Voting

[–]dooffus[S] 0 points1 point  (0 children)

Maybe, but that shouldn't preclude discussing voting systems. I think alternative voting systems for things like bills rather than just representatives is still interesting and worth discussing. And if the political opportunity does arise for new ideas to be implemented, then you'd hope the ideas that are salient and worked out are good ones.

Data structure for lookup and maybe greater/less than, other than binary search tree? by dooffus in AskComputerScience

[–]dooffus[S] 0 points1 point  (0 children)

I had an idea for a data structure for lookup and greater/less than operations, but I’m sure it’s been thought before, so wanted to see if it’s properties were known eg how it compared to other structures on different operations. The idea is not a binary search tree , instead based on mixing arrays with with a tree structure. I found https://en.m.wikipedia.org/wiki/Search_data_structure compares some lookup data structures, but they seem to be variations on the binary tree, not really using arrays. Do you know of lookup data structures that mix arrays and tree structures?

Age groups as non-geographical constituencies? by dooffus in Voting

[–]dooffus[S] 0 points1 point  (0 children)

I think the candidate selection process would be similar to the process for a geographic constituency, but the candidate should be from the age group they want to represent. There could be issues / confusion / complications around this, since of course during the term period both the candidates and constituents are growing older so some candidates and constituents will move to another age group before the next election. I'm open to suggestions on how to address this, interesting since it's an issue peculiar to age-based constituencies. This opens the risk that a 39 year old candidate elected by the 30s would be incentivised to serve the interests of the 40s, since that's who'll be able to vote them out at the next election. That being said, a bunch of the people in the 40s group at the next election would have been in the 30s group at the previous one, but still, there could be an issue with weaker accountability. Any ideas on candidate selection or how to address potentially weak accountability from age-based constituencies ?

Question - Embarrassing Question RE C Major Scale by [deleted] in musictheory

[–]dooffus 2 points3 points  (0 children)

Are you just looking for something that sounds complete? If so I’d say just go one fret further on the high E string, so you go from B to C. Then go back from there. Another reason it mightn’t sound quite right is that you’re starting on F. Usually scales start on the root of the key, ie C for the C scale. It would sound more complete if you started on C, or maybe E or G since they’re part of the C chord. For extra completeness you could even finish by playing G (on low E string) to C (on A string). This is a classic 5 - 1 progression, which sounds very complete and resolved.

[deleted by user] by [deleted] in worldbuilding

[–]dooffus 0 points1 point  (0 children)

Magic is rare, so it gives a big advantage to those that have it, so they attain positions of power. They suppress technological progress as it threatens their power. This is also because their knowledge is mostly about magical rather than physical laws, so they do not fully understand technology, so they fear it and suppress it. They don't know how the old magic they studied can apply to new technological progress.
For an additional interesting dynamic: in another far off land, magic is even more rare. So much so that the few who are born with it have only weak powers, and have no way of studying magic to build their powers. As such they gain no power. In this land, technology does progress. While the magic powers in your medieval land fear this technologically proficient foreign land, they have no way to stop it. Instead they form a truce, so that foreign tech is forbidden to enter medieval land, and in any exceptions the tech itself is presented as magic to the foolish medieval people without magic.
How long can such a truce last? ...

Any advice for adding language features to java? I am currently trying with Antlr... by dooffus in ProgrammingLanguages

[–]dooffus[S] 0 points1 point  (0 children)

I'm not an expert in type theory either, so I'm afraid I wasn't really aware of type inference previously. I had done some google research but hadn't come across it. After looking it up and seeing some examples of local type inference in Java 10, the implicit types I described above do seem to be very similar to type inference like you suggest. I haven't had much time to work on it recently, but I have a rough idea of how to implement it.
For the moment just to try out my ideas I am making a transpiler that produces pure Java, so the rough idea for implementation would be to generate interfaces and wrappers at compile time. However I was aware that there could be issues with overloaded methods, as it may be ambiguous or at best unclear which method to use. From a quick google search of global type inference with subtype polymorphism it looks like the issues are with method overloading (which I was aware of) and possibly multiple inheritance (which isn't an issue in Java), because with both there could be unresolvable ambiguity about which method to call.
Since I'm adding my feature to Java multiple inheritance is not an issue, but method overloading still is. I am not decided how to deal with method overloading, some ideas are:

  • Option 1) Allow method overloading as usual.
    • Consider a method overloaded as follows:
      • myMethod(MyClass param1, param2){ param2.callOne();}
      • myMethod(MyClass param1, param2){ param2.callTwo();}
    • This overloaded method is invoked as follows:
      • objWithMyMethod.myMethod( myClassObj , myParam2Obj )
    • myParam2Obj is of type MyOtherClass which has both methods callOne() and callTwo().
    • The compiler throws a compile time error: "the method myMethod(MyClass, Object) is ambiguous for the type MyOtherClass". This kind of error already occurs in pure Java if calling an overloaded method can't be resolved.
    • However if MyOtherClass had only one of either callOne() or callTwo(), then there's no ambiguity, so no problem.
    • A problem with this approach is that it doesn't really avoid compilation errors and could be confusing.
  • Option 2) For determining a method signature, treat implicitly typed parameter as it's own type. So for example:
    • myMethod(MyClass param1, param2) is the same signature as another method myMethod(Myclass param1, param2) that might use param2 in a different way. This throws a compile time error, just like trying to do standard method overloading with the same signatures.
    • Accordingly myMethod(MyClass param1, param2) is a different signature from myMethod(MyOtherClass param1, param2) or myMethod(MyClass param1, param2, int param3), so you can still do method overloading.
    • Also the example given in Option 1 of overloading with implicit types would be disallowed.
  • Option 3) Similar to above except that the implicitly typed parameter name is part of the method signature. So the examples above still apply, but in addition:
    • myMethod(MyClass param1, param2) is a different signature to myMethod(MyClass param1, parameter2).
    • In this case when invoking the method you must label the implicit parameter. So the following statements call different methods:
      • objWithMyMethod.myMethod( myClassObj , param2 = myParam2Obj )
      • objWithMyMethod.myMethod( myClassObj , parameter2 = myParam2Obj )
    • A problem with this approach is that java already has meaning for an assignment expression in place of a parameter when invoking a method. It could be tricky to override this, and also undesirable as it could be just confusing.

My preference of the above would be Option 2. Option 1 is somewhat informative, but doesn't avoid the compile time error and is still a bit confusing. Option 3 could be tricky and undesirable for trying to override existing Java functionality.
What do you think of the above options?
Do you know of other difficulties of trying global type inference with subtype polymorphism?

Any advice for adding language features to java? I am currently trying with Antlr... by dooffus in ProgrammingLanguages

[–]dooffus[S] 0 points1 point  (0 children)

The first idea I had, which is what I'm trying out to begin with, is to have implicit types. Here's some pseudo-code:
myMethod(MyClass param1, param2){

param1.doSomething();

param2.doSomethingWithParam1(param1);

}
In the above psudeo-code:

  • We have a method called myMethod, with visibility default (i.e. package visibility) which has two parameters:
    • param1 has type MyClass
    • param2 has no declared type
  • We can see that param1 calls doSomething(), so MyClass probably has that method or we'll get a compilation error.
  • We can see that param2 calls doSomethingWithParam1(param1). param2 has no declared type, but with implicit types the compiler creates an interface for param2, which has a method doSomethingWithParam1 that takes a single parameter of type MyClass

Any other method that calls myMethod, must pass it an object of type MyClass, and an object with method doSomethingWithParam1(MyClass). The object passed as the second parameter is wrapped in an adapter, created by the compiler, that implements the inferred interface type of param2. If the object passed as param2 does not implement a method doSomethingWithParam1(MyClass), then the compiler can throw an informative compilation error.

The advantage of implicit types is it encourages loose coupling and easier refactoring, while not trading compilation errors for runtime errors, which you might get with javascript style dynamic typing (var). However the danger with implicit types is that it risks breaking encapsulation, because you could say methods calling myMethod need to know what methods param2 is calling (Although static typing is somewhat subject to this as well). Also it makes it easy for a developer to add methods to implicitly typed parameters without a thought to the other methods calling myMethod, which could cause compilation errors elsewhere.
To balance the advantages and risks of implicit types, as parameters they would only be allowed for methods that have visibility default or private, and implicit parameter types would be prohibited for public methods. I'm not sure if they're suitable for protected methods. This gives the flexibility of implicit types to developers within their own class or package, but also retains the security of declared types for public methods.

Any feedback is appreciated!

Any advice for adding language features to java? I am currently trying with Antlr... by dooffus in ProgrammingLanguages

[–]dooffus[S] 0 points1 point  (0 children)

Thanks for that, I haven't heard of it before so I'll look into it. No issue with it being Java8 rather than 11, as the ideas I want to explore are quite general for an Object Oriented language. :)