Re: Java IDE Accessibility

2021-03-13 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Java IDE Accessibility

@8 when I started work at my old job, I just wanted to use VS code with a Scala extension, but my whole team was using IntelliJ instead. I quickly found getting the setup I had at home is nearly impossible, since companies, even the biggest ones, package and make available to you a small subset of trusted software, which excludes 99% of VS code extensions.so I went with the flow and started using IntelliJ, which turned out to be a blessing. although IntelliJ has its accessibility problems, I managed to fix those with an addon. the major advantages are that while VS code is amazing with JS and typescript, and mostly good for all other languages, IntelliJ is super specialised for a particular language set, like Java, or in my case, Scala.whereas in VS code, you have a couple of quick actions, refactorings, code generations for Scala, in IntelliJ, you have probably thousands. for practically any refactoring I would want to do, like extract function, variable, add braces to single statement, etc. I can just press alt + enter and the quick action will be there for it.also the static code analysis is bonkers even for the out-of-the-box experience. it can detect so many warnings and automatically fix them for you, which just isn't available in the VS code extension.also, finding usage of a particular symbol is much better. it gives you a dialogue with a tree view of all occurences in the project that you can efficiently navigate, which has been useful when working on a huge project more times than I can count.

URL: https://forum.audiogames.net/post/622570/#p622570




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Java IDE Accessibility

2021-03-13 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Java IDE Accessibility

hello, I am the author of the NVDA addon linked in #2.@2 wow I can't actually believe anyone knows about that addon. I just created for personal use and decided to put it up since I thought someone else might get use out of it. I don't understand how you know I worked at JP Morgan before though. Did someone in the company tell you about the addon? I remember I just told one blind guy who was just starting as I was leaving.also in regards to enabling JAB. I think it is auto enabled for NVDA 2020.3 onwards. if you have an older version, you will have to activate it manually, for that refer to this page.if your version of NVDA is older than 2020.3 I think you will need a 32 bit java  installation just to make JAB work. also if you have 32 bit java, you enabled JAB, and things are still not working, then check the troubleshooting section on the page I linked. you might need to download a .dll if it is missing. that was the case for me.edit: also make sure to enable screen reader mode for IntelliJ.not sure how old the version of IntelliJ they are having you use is. for newer version the list item bug my addon solves  is fixed, but for your version it isn't, so you might need the addon to read list items such as in the action finder.honestly, I haven't used IntelliJ for at least 9 months and haven;t touched the addon either. it should work fine with older NVDA versions and IntelliJ, but not sure if there are problems with newer versions.

URL: https://forum.audiogames.net/post/622568/#p622568




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Java IDE Accessibility

2021-03-13 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Java IDE Accessibility

hello, I am the author of the NVDA addon linked in #2.@2 wow I can't actually believe anyone knows about that addon. I just created for personal use and decided to put it up since I thought someone else might get use out of it. I don't understand how you know I worked at JP Morgan before though. Did someone in the company tell you about the addon? I remember I just told one blind guy who was just starting as I was leaving.also in regards to enabling JAB. I think it is auto enabled for NVDA 2020.3 onwards. if you have an older version, you will have to activate it manually, for that refer to this page.if your version of NVDA is older than 2020.3 I think you will need a 32 bit java  installation just to make JAB work. also if you have 32 bit java, you enabled JAB, and things are still not working, then check the troubleshooting section on the page I linked. you might need to download a .dll if it is missing. that was the case for me.

URL: https://forum.audiogames.net/post/622568/#p622568




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: List of Ways to Make AudioGames

2021-03-12 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: List of Ways to Make AudioGames

for anyone with decent programming experience this is not a very useful list. any non-trivial programming language can be used to develop an audiogame. it just needs to support audio, GUI, and concurrency. and even for a lot of games it does not require the latter.so there is just a ton of language + audio library combinations you could enumerate for this list. and individually they don't really matter that much. more important is programming knowledge and reasoning skills. what language you use is secondary.

URL: https://forum.audiogames.net/post/622286/#p622286




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: python global dictionary not saving modifications

2021-03-12 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: python global dictionary not saving modifications

@6 okay, it seems what I wrote just flew over your head. my whole point wasn't that your dict is being overwritten. that is what you think is happening, but I tried to point out that it is almost definitely not the case.I was arguing that the dict the function is modifying and the dict you are later using that you are surprised is empty are actually two different dict instances. however, you think they are the same dict instance, leading to your confusion.#8 pointed to the same thing I wrote about, essentially how locals can sneakily shadow globals in python and lead to weird bugs like this. but I agree with #8 in that you should just avoid using globals the way you are, since that is actually easier than explaining how this works. either just pass in all your dependencies to your function as arguments, or use a class where the state are fields and any functions that modify that state are methods of the class. Personally, I recommend the first function passing way, since it is simpler and doesn't require to learn OOP concepts.

URL: https://forum.audiogames.net/post/622280/#p622280




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: python global dictionary not saving modifications

2021-03-10 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: python global dictionary not saving modifications

this code doesn't actually share what the problem is, since this function is confirmed to work. you would need to show what is the context where the function is called after which the dict is "emptied". it also realy helps if you can reproduce the issue as the minimal case, since other people have less code to look through and less of the code is noise. it is respectful to the people you are asking for help, it also makes finding the bug faster, and many times you will find that you figure it out yourself in the process.>>> d = {}>>> def f():...   d['foo'] = 42...>>> f()>>> d{'foo': 42}so the problem is obviously not in the function. there is something going on in the context you are calling it in. I suspect the problem is that the function refers to the right dictionary, but the context you are calling the function  in has a local variable set as the dict with the same name, so you aren't actually reffering to the right dict in the context where it is empty but you expect it to not be... maybe something like this:>>> def g():...   #trying to overwrite value of d...   d = {}...   f()...   print(d)...>>> g(){}>>> d{'foo': 42}

URL: https://forum.audiogames.net/post/621930/#p621930




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: where can I learn python? the basics.

2021-03-07 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: where can I learn python? the basics.

@18 and what is exactly the big deal of someone having the source code for your game?

URL: https://forum.audiogames.net/post/620720/#p620720




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: where can I learn python? the basics.

2021-03-07 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: where can I learn python? the basics.

@18 and what is exactly the big deal of someone having the source to your game?

URL: https://forum.audiogames.net/post/620720/#p620720




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: problem with Note function mush client

2021-03-02 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: problem with Note function mush client

is there any particular reason your code snippet contains LParen instead of (, RParen instead of ), and Quote instead of "?

URL: https://forum.audiogames.net/post/619608/#p619608




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Extended PEMDAS.

2021-03-02 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Extended PEMDAS.

@Chris Norman ok so this is pretty interesting. I became a little curious of what a parser combinator library API looks like in python, so I started reading the landing page for parsita and read the following paragraph"In a technique that I think is new to Python, Parsita uses metaclass magic to allow for forward declarations of values. This is important for parser combinators because grammars are often recursive or mutually recursive, meaning that some components must be used in the definition of others before they themselves are defined."so that particular "magic" you talked about is probably in every parser library in python. but, if I could try to explain, I don't think having forward declarations is as magical as it first seems. at least I don't think it should keep you up at night.I think the issue is that python, probably due to being a scripting language doesn't really support forward declarations without some magic, so seeing them must be quite weird. as a scripting language, the top level statements of the file can make up an actual program, whereas in non-scripting languages, which generally means compiled languages, the entry point needs to be wrapped in a main function, as the top level entities can only be functions and variables like for C and Haskell. or classes, interfaces, etc. for something like Java.for python and other interpreted languages (as far as I am aware) top level entities become alive line by line as they are interpreted. in compiled languages, all the top level entities are born at the same time, at compile time, so they don't have this awkward phase were some top level things have been declared and some haven't.In these languages having a mutually dependent declaration is totally fine and non magical. like this in Haskell. same can be expressed in C, Java, etc.data Employee = Employee Managerdata Manager = Manager [Employee]the same cannot be expressed in python without magic. following code throws error:class Employee:  manager: Managerclass Manager:  employees: list[Employee]this example is a little contrived, but there are instances where two declarations utually depend on one another, so python has to employ some magic to make it work. I remember in Django, if you have two Models that rely on one another, then if you need to refer to one before it is declared, you can use a string instead of the class and django will make it work.so I am afraid your fork is probably literally impossible, since the reason they employ "magic" to use something that hasn't been declared yet is there because it is necessary. but hopefully this post has given you some idea why this sort of thing isn't anything that magical at least in the context of pretty much any compiled language.

URL: https://forum.audiogames.net/post/619510/#p619510




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Extended PEMDAS.

2021-03-01 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Extended PEMDAS.

@12 I think you might be interested in trying out a parser combinator library. I haven't used any in python, but I have used them for Elm and Haskell, and they are totally non-magical and one of their major strengths is their strong typing, which really helps you figure out whether your parser logic actually makes any sense before you even run it. I see there are some python libraries that follow the same design like Parsec and Parsita. again I haven't tested them, but it might be worth checking something like that next time. hopefully there is a parser combinator library in python with good type hints as wellthere can be issues with performance when if you deal with a backtracking parser, so you need to take care there since if you put together two parsers with backtracking in two different ways that give you the same result can have drastically different performance profiles. also at least from my experience from Haskell parser combinator libraries, performance varies quite a bit, so when finding one in python I would assume you would also need to be careful in choosing one if performance is key. although even the slowest libraries are still fine if you aren't developing some web service where throughput is #1 metric and parsing is the major bottleneck

URL: https://forum.audiogames.net/post/619375/#p619375




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Extended PEMDAS.

2021-02-28 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Extended PEMDAS.

I would say this enough complexity that regex doesn't quite cut it any more. I mean you could probably still do it with regex, but it would be a mess and hard to understand.for this you need to actually parse the input into an data structure that represents the overall _expression_. let's say you would represent it using tuples. going to use python here, since I assume you are familiar with it.so any _expression_ would be of the general form:('op name', expr1, expr2, ... expr_n)where the first element just identifies the operation and the remaining elements are the children expressions the operation is applied to. so here is how they would look for basic math operations:('*', expr1, expr2) # multiplication('/', expr1, expr2) # division('+', expr1, expr2) # addition...('**', expr1, expr2) # exponentiationand so onso the _expression_3 * 5would be represented by ('*', 3, 5)however the operands can be expressions themselves, so1 + 2 * 3would be ('+', 1, ('*', 2, 3))and1 + 2 * 3 + 4would be represented by('*', ('+', 1, 2), ('+', 3, 4))the inner expressions are computed before the expressions that contain them. so the innermost expressions are computed first, and the outermost _expression_ is computed last.such a structure codifies the operations, operands, and the order to do them in. now you just need to figure out two things: how to parse th einput into such a structure and how to reduce it to the result.for parsing you can do this manually, but it is a bit tricky. instead you could use a parser combinator library like parsec or parsita for python. it allows you to put together your parser by plugging together parser priitives. like putting together legos. for complex grammars it would be even better to use a parser generator like yak or antlr, but this grammar is simple enough that it would be overkill.for reducing the structure to the result you can do it recursively or using a stack. recursion runs into the problem that if your structure is huge then you can run into stack overflow from the nested recursive function calls, but it is much simpler, clearer, and easier than using an explicit stack. so if you dont expect to need to process massive expressions, like in your case, then the recursive method is better by being much less complex.reducing such a structure to the result consists of recursively branching on the operator types. here is a reducer function for an algebra with just the + and minus operator for simplicity:def reduce_expr(expr):  if type(expr) == int: return expr #already fully reduced  op = expr[0]  if op == '+':     (operand1, operand2) = expr[1:]    return reduce_expr(operand1) + reduce_expr(operand2)  elif op == '-':     (operand1, operand2) = expr[1:]    return reduce_expr(operand1) + reduce_expr(operand2)#end defso with the above function, you give it an expr, which is either a number or a structure like I showed before. if the expr is a number, then it is fully reduced and there is no more work to be done.however if it isn't a fully reduced structure, it checks what operator to apply, it reduces the operands and applies the operator. keep in mind it keeps recursively calling reduce_expr, until it is fully reduced to just a number before applying the operator on the operands. to better understand this, it helps to put a print statement at the top of the function likeprint("reducing " + expr)to help you understand how it recursively traverses the structure as it reduces it.EDIT: the above function assumes it only deals with ints, i.e. whole numbers, so if one of your oprators can produce fractional results, you will run into a problem, since for a float the function wouldn't match on any of the if/else branches and return None. so if your algebra includes something like division, then in the base case (the if where you check if you are done) you need to check for both whether the expr is int or float.

URL: https://forum.audiogames.net/post/618909/#p618909




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Extended PEMDAS.

2021-02-28 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Extended PEMDAS.

I would say this enough complexity that regex doesn't quite cut it any more. I mean you could probably still do it with regex, but it would be a mess and hard to understand.for this you need to actually parse the input into an data structure that represents the overall _expression_. let's say you would represent it using tuples. going to use python here, since I assume you are familiar with it.so any _expression_ would be of the general form:('op name', expr1, expr2, ... expr_n)where the first element just identifies the operation and the remaining elements are the children expressions the operation is applied to. so here is how they would look for basic math operations:('*', expr1, expr2) # multiplication('/', expr1, expr2) # division('+', expr1, expr2) # addition...('**', expr1, expr2) # exponentiationand so onso the _expression_3 * 5would be represented by ('*', 3, 5)however the operands can be expressions themselves, so1 + 2 * 3would be ('+', 1, ('*', 2, 3))and1 + 2 * 3 + 4would be represented by('*', ('+', 1, 2), ('+', 3, 4))the inner expressions are computed before the expressions that contain them. so the innermost expressions are computed first, and the outermost _expression_ is computed last.such a structure codifies the operations, operands, and the order to do them in. now you just need to figure out two things: how to parse th einput into such a structure and how to reduce it to the result.for parsing you can do this manually, but it is a bit tricky. instead you could use a parser combinator library like parsec or parsita for python. it allows you to put together your parser by plugging together parser priitives. like putting together legos. for complex grammars it would be even better to use a parser generator like yak or antlr, but this grammar is simple enough that it would be overkill.for reducing the structure to the result you can do it recursively or using a stack. recursion runs into the problem that if your structure is huge then you can run into stack overflow from the nested recursive function calls, but it is much simpler, clearer, and easier than using an explicit stack. so if you dont expect to need to process massive expressions, like in your case, then the recursive method is better by being much less complex.reducing such a structure to the result consists of recursively branching on the operator types. here is a reducer function for an algebra with just the + and minus operator for simplicity:def reduce_expr(expr):  if type(expr) == int: return expr #already fully reduced  op = expr[0]  if op == '+':     (operand1, operand2) = expr[1:]    return reduce_expr(operand1) + reduce_expr(operand2)  elif op == '-':     (operand1, operand2) = expr[1:]    return reduce_expr(operand1) + reduce_expr(operand2)#end defso with the above function, you give it an expr, which is either a number or a structure like I showed before. if the expr is a number, then it is fully reduced and there is no more work to be done.however if it isn't a fully reduced structure, it checks what operator to apply, it reduces the operands and applies the operator. keep in mind it keeps recursively calling reduce_expr, until it is fully reduced to just a number before applying the operator on the operands. to better understand this, it helps to put a print statement at the top of the function likeprint("reducing " + expr)to help you understand how it recursively traverses the structure as it reduces it.

URL: https://forum.audiogames.net/post/618909/#p618909




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: how to get JDK 8 & JRE 8 with out having to make an oracle account

2021-02-25 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: how to get JDK 8 & JRE 8 with out having to make an oracle account

you can also start using a command line package manager like scoop or chocolatey. using scoop it would involve just the following commands in your shell (like cmd.exe):scoop bucket add javascoop install openjdk

URL: https://forum.audiogames.net/post/618236/#p618236




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Thoughts on possible developement of a racing game

2021-02-21 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Thoughts on possible developement of a racing game

@13 I think in your code example you forgot to pass process_webpage to the map() call

URL: https://forum.audiogames.net/post/617281/#p617281




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Thoughts on possible developement of a racing game

2021-02-20 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Thoughts on possible developement of a racing game

@Meatbag please stop going around telling new programmers that python is slow. python is plenty fast for a project like this. I'm not even a huge fan of python for application development, but I know for a fact that it can handle 90% of audio games out there, including this idea.others have tried to point out to you that python isn't the problem, but rather the algorithms and data structures used. if you don't use them well, then your program will be slow even if you programmed it with raw assembly, let alone C/C++.I don't want this to sound mean. I think you are probably very young, so it isn't your fault you don't know much about reasoning about space and time complexity in programs. however, you don't understand that the language/runtime isn't the problem when developing an audiogame like this, it is that you don't know how to write performant code. going around posting don't use python because it is slow, when others have pointed out to you multiple times that it is not the isssue is really unhelpful to other new programmers

URL: https://forum.audiogames.net/post/617082/#p617082




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Indent Reporter extension for VSCode

2021-02-18 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Indent Reporter extension for VSCode

@18 wow, brilliant! wish I knew about this sooner  thanks

URL: https://forum.audiogames.net/post/616574/#p616574




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Indent Reporter extension for VSCode

2021-02-16 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Indent Reporter extension for VSCode

@16  teaching grandmother to suck eggs on wikipedia

URL: https://forum.audiogames.net/post/616137/#p616137




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Indent Reporter extension for VSCode

2021-02-16 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Indent Reporter extension for VSCode

@9 haha I had to look up what that _expression_ means. at first I thought you were insulting me and I thought to myself what the heck? chris is usually super nice 

URL: https://forum.audiogames.net/post/616037/#p616037




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: reasons for learning typescript

2021-02-15 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: reasons for learning typescript

@13 I'll definitely concede as I did in #17 that some libraries can make avoiding type casting such a pain that the effort required can make it not worth it. I haven't used type ORM, but it might well be the case. the library I came into such a problem was MaterialUI, but was able to avoid type casting in the end, though got close to breaking my own rule.yeah, it is actually quite possible that such verification libraries use type casting at the lowest level. so that could be a valid use case that I will concede. although once you have a library like that, you don't need to use type casting again, unless you run up against some horribly typed library.my main gripe with type casting isnot that it is used to implement some library that needs it because its whole jam is verifying complex types for you, but that 80% of typescript developers use it all over the place, where it is unnecessary and makes the code more brittle. from what I have seen so far that is 99% of the time I have seen type casting being used.aside, I don't think such a verification a library needs to do any copying, it should just pass back the object unmodified, since they are assumed to be used for json, which doesn't support functions, just plain data.

URL: https://forum.audiogames.net/post/616013/#p616013




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: reasons for learning typescript

2021-02-15 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: reasons for learning typescript

@9 I actually fully agree badly-typed libraries and other members on the team that for whatever reason don't use typing well are a barrier to this. particularly libraries that were designed as js and then had types tacked on can be pretty bad. a lot of the times it isn't even that they can't be typed well, but whoever wrote the type declaration file didn't fully know what they were doin. happened to me with MaterialUI. event types on a lot of widgets just didn't have type written well for some event types. that was the closest I came to just using type casting, but in the end figured out how to preserve type safety in that instance. however, I can definitely imagine there are some libraries that are so badly typed that you might not be able to avoid it, but hasn't happened to me yet. but it is a totally fair point.I feel your point on rust and haskell and open unions might be off topic. but I might be missing how type casting and open unions relate. I was just pointing out that #7's claim that type casting is universal among staticly typed languages isn't exactly true.as an aside, open unions do have their advantages of course, but so do closed unions as I argued to you in another thread. personally, I think the advantages of closed unions overweigh the ones for open unions, but in the end that is my opinion and comes down to personal preference.also, open unions aren't necessary to represent a hierarchy of types. in #8 I showed a inheritance style type hierarchy with a closed union (MyEvent). albeeit that hierarchy has a single level, here is one with two levels:type BaseEvent = { message: string }type TimeEvent = BaseEvent & { kind: 'time', timestamp: number }type BaseIO = BaseEvent & { device: string }type PrintEvent = BaseIO & { kind: 'print', charsPrinted: number }type ReadEvent = BaseIO & { kind: 'read', charsRead: number }type IOEvent = PrintEvent | ReadEventtype MyEvent = IOEvent | TimeEvent

URL: https://forum.audiogames.net/post/616009/#p616009




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Submitting effective bug reports

2021-02-15 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Submitting effective bug reports

#3 and #4 already beat me to it. why not use github templates for bug reports? this post is probably just going to be lost pretty soon.

URL: https://forum.audiogames.net/post/615889/#p615889




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: reasons for learning typescript

2021-02-15 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: reasons for learning typescript

@7 not going to go into monkey patching, because I don't have experience doing it in js, so maybe that is the case, but I suspect that even for that you can avoid type casting. the other two cases, you can avoid type casting altogether.for having a hierarchy of event types, where the type of event is determined by the value of a member. like for one type of event, the member "kind" is "io" and for another it ight be "time" and that determines what other members it has, then there is no need for type casting to get at those members specific to its subtype. consider this simple event hierarchy:type BaseEvent = { message: string }type IOEvent = BaseEvent & { kind: 'io' }type TimeEvent = BaseEvent & { kind: 'time', timestamp: number }type MyEvent = IOEvent | TimeEventthen we can branch on which type of event it is without any type casting like this:function processEvent(e: MyEvent) {    // available for any event from BaseEvent        e.message    if (e.kind == 'time') {        // in this scope typescript knows which event subtype it is        e.timestamp //only available since it is TimeEvent    }}for the second case, when you have unknown json coming in and you need to verify it has the members you expect it to have, then you can use a type guard where you check it has all the members  of the type you expect. this can be quite verbose, so I like to use a json decoder library that makes this easy. it's @mojotech/json-type-validationif you are expecteing this type:type User = {  name : string,  age : number}you would define a decoder for it like:const userDecoder = object({  name : string(),  age : number()})and use it like this:function processUser(unverifiedUser: unknown) {  const user: User = userDecoder.runWithException(unverifiedUser)   // throws an exceptoin if doesn't conform}there are other ways to run the decoder, in case you want to handle the unhappy path more gracefully, but that is the basic idea. by deciding not to do typecasting, we were forced to take a more principled approach to verifying incoming json is really the type we believe it is and so if it doesn't conform to our beliefs we learn about it right at the edge of our app with the external endpoint. this makes it much easier to debug if that happens. the alternative is we cast the incoming any from json.parse() to our type and then it causes some type error farther down the line, which is much harder to diagnose.as to your other points. why did typescript developers put it in? sorry to anser a question with a question, but why did other language developers put null into their language when it is widely regarded as the billion dollar mistake in programming? as to typecasting, my guess is that a lot of js developers (probably not you) are really impatient and care more about their code running than it actually being correct, so they put it in there as an unnecessary backdoor.also it isn't exactly true that all static typed languages have type casting. weakly typed ones like C and Java do, but strongly typed languages like Rust and Haskell don't, except as escape hatches that are clearly marked as unsafe and nuclear as they very much are.

URL: https://forum.audiogames.net/post/615849/#p615849




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Indent Reporter extension for VSCode

2021-02-15 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Indent Reporter extension for VSCode

@6 thanks, but I already know about that extension and it doesn't deliver what I want. you cant move up a level or down a level and if I remember correctly it doesn't limit your navigation to the current block, so you might jump to another block altogether that happens to have the same indentation.

URL: https://forum.audiogames.net/post/615787/#p615787




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: reasons for learning typescript

2021-02-15 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: reasons for learning typescript

@5 please provide an example where you need to use type casting. I really don't think such an instance exists, but wouldbe glad if you could prove me wrong.

URL: https://forum.audiogames.net/post/615786/#p615786




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Indent Reporter extension for VSCode

2021-02-14 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Indent Reporter extension for VSCode

cool, I use NVDA, but good thing to make this. one thing I keep telling myself I will make when I have some time, but never find the time cause of uni, is making an IndentNav extension for VS code, since normal IndentNav doesn't work fully.

URL: https://forum.audiogames.net/post/615717/#p615717




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: reasons for learning typescript

2021-02-14 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: reasons for learning typescript

types is all it gives you as the name suggests. but this is no small thing. of course it just compiles to plain old js, but while doing so, it checks that all the types line up. at your stage of learning you might not fully understand why that would be significant, but after you work on any js project that goes beyond 100 lines of code you will notice that you start to hate making any changes to your js project, because as soon as you try to fix one bug, you get two more as a result.type checking helps to make sure you are passing what you think you are passing to a function and that you are calling a method on an object that actually exists. without compile -time type checking, this is only discovered at runtime and is much harder to understand. this also means if there is some branch of your code that gets called only once in a blue moon, then there might be some type error there that only gets discovered when deployed. essentially, to make reliable plain js, you absolutely must start writing unit tests close from the start that exercise all your branches of code to make sure there aren't any silly mistakes.compile time type checking finds really silly problems before you even run your code. it doesn't solve all of your problems, not even most of them, you still need to write tests. but it does make making some really stupid mistakes impossible, meaning you generally don't need to write as much tests.however that fully depends on you understanding how to use types effectively, which majority of js users and beginners don't. for example I have a rule for typescript, which is to never ever use type casting, as it essentially removes all benefits of typescript at virtually no benefit. always use type guards. it makes the code slightly more verbose, but you preserve type safety. however almost every blog I've seen that gives typescript snippets, uses type casting, which suggests to me most typescript users come from a js background and lack the principles to actually use the type system to their fullest.having said all of that, I wouldn't recommend for you to learn typescript just yet. if you aren't familiar with js, just learn js. make several projects with just js. have one project that you actually release into the wild. this is because typescript would get in the way of you learning web development, until you are actually knowledgable about web development. once you've worked with js and saw all the pitfalls of it for yourself, you should give typescript a try and hopefully then you will understand the problems typescript aims to solve.but even so, you might have a hard time understanding the power a strong type system can bring to your development by starting with js. I'd recommend once you've done a good amount of programming. I would say after a solid year, go learn a bit of haskell, just as a learning experience. it will stretch your mind with how far a strong type system can be taken compared to weaker type systems like C and Java and also teach you functional programming concepts, which carry over well into js and typescript.

URL: https://forum.audiogames.net/post/615715/#p615715




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


what is the most accessible browser userscript manager?

2021-02-14 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


what is the most accessible browser userscript manager?

Hello, every now and then I notice some website's accessibility is broken in some trivial way, like a blog where article headings aren't tagged as headings, but I can open up the console, and do a one liner where I select all divs with a certain class and set their role attribute to heading.I decided I should get a browser extension that would store these little userscripts and execute them automatically for specific websites, so I don't have to do it manually. With a quick search I found Tampermonky for google chrome, which seems to be the most popular. After installing it, I was able to add my userscript to it, however I have to say the UI is usable, but god aweful in terms of accessibility. namely menus not marked up as menus, any form elements  like buttons appearing as plain text, html tables used for layout, so navigating through it is going through tables in tables in tables that have no semantics.a shame I can't run a userscript to fix Tampermonkey's UI.It is usable enough for me to add my one userscript, but I can see if I kept using this and adding many scripts over the years that it would become a nightmare to manage them.Has anyone tried out any other extensions for chrome or other browsers and if so, could you recommend which one is the most accessible?

URL: https://forum.audiogames.net/post/615507/#p615507




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: help from python users

2021-02-13 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: help from python users

python is an interpreted language. you'll want to google what the difference between compiled and interpreted languages is.basically, there is no compilation step. you run the program by giving the python interpreter your source code, an and it will, as the name suggest, interpret it and execute it.you can get the python interpreter from the official python website.

URL: https://forum.audiogames.net/post/615143/#p615143




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Let's make an audio first person shooter in JavaScript together!

2021-02-12 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Let's make an audio first person shooter in _javascript_ together!

@13 I think the major issue why this hasn't turned into a finished project, has actually been addressed in one of camlorn's earlier comments. the sad truth is is that anyone who becomes a skilled enough dev to actually work onsomething like this has companies offering him a lot of money to work for them instead and it becomes really hard to justify to oneself and one's family why they are spending hours upon hours working on something that is guaranteed to suck up more money than it produces, when they could be earning really good money and providing for themself and their loved ones. I mean explain to little Timmy that he won't go to university because mommy/daddy had to develop a sick audiogame instead of earn money.and I don't even mean that in order to work on this, you have to be a leet hacker and that's why you'd have companies clambering to hire you  once you are at the level to develop an  online audio FPS. just a junior entry-level developer you can expect 20$/hour in most western countries and it goes up pretty quickly with experience and skill.

URL: https://forum.audiogames.net/post/615107/#p615107




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: is what I’m doing even considered programming?

2021-02-09 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: is what I’m doing even considered programming?

@28 your gripes with node.js seem to be entirely with using it as a web service backend. I've never used it for that and all the points you made are probably right. if I needed reliable concurrency, I wouldn't reach for node either.however, as I wrote, where node provides a lot of value is when working on front end code and being able to use things like typescript and webpack. also it's quite nice for automation, as I've discovered recently, but that probably comes down to my preference for FP style, which js supports quite well, but python just doesn't, since the syntax makes lambdas totally impractical.also in your example, g isn't a lambda. a lambda, also known as an anonymous function, isn't assigned to any name. it is just a function literal, the same way 1 is a number literal.my problem with python lambdas isn't the ref count thing from the other thread. it is just how they aren't actually practical due to their syntax and can really only be used for one-line functions. I don't even blame python devs for not coming up with a better lambda syntax, as I can't think of one that would work for python.

URL: https://forum.audiogames.net/post/614056/#p614056




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: would it be possible to port a speech engine to Game Boy Advance?

2021-02-09 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: would it be possible to port a speech engine to Game Boy Advance?

It's not entirely clear what your question is. It is a good idea to give as much detail as possible in your first post, so we can all be on the same page.If you mean if you could assemble a GBA game that when played could directly produce spoken synthesized speech output, then no. GBA sound output is very low resolution, so it couldn't produce any sound that could be interpreted as speech. there is a reason that none of the GBA games include any spoken dialogues.if your goal instead is to run a GBA game on an emulator and hav text displayed in the game to be spoken aloud by your computer, then have a look at the Pokemon Access and the original Pokemon Crystal Access projects. You can write scripts for emulators that read arbitrary data in the emulated GBA's memory. so if you can figure out where in memory to look for the text being displayed and figure out how to decode it, then you could output it using tolk.This would have to be done customly for each GBA game, as each organizes data in its memory differently, and might encode text data differently. There are various GBA games that have been disassembled, so you could look at the raw assembly to figure this out.However let me  stress, this is not for the faint of heart. take it from me. I went through Pokemon crystal anniversary assembly to extract out all the town maps with their corresponding map ids to create a map names file to work with PCA scripts. that was a relatively easy task and even that took a whole afternoon to figure out.

URL: https://forum.audiogames.net/post/613907/#p613907




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: is what I’m doing even considered programming?

2021-02-09 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: is what I’m doing even considered programming?

@Ethin I like node.js quite a bit. any project where I need to develop any serious amount of js, like a website, I do it in a node project. that way I can use typescript and webpack to write nice strongly typed code using latest js language features, and then pack it up into a nice compact script transpiled to work on older browsers.typescript is really great. it is essentialy what restored my faith in js. before I would dread anytime I would need to develop any js at all, since the codebase would be so brittle.I've recently started preffering node.js over python for automation, because the one thing I can't get over with python is how writing lambdas is so limited, making true high level programming impractical.

URL: https://forum.audiogames.net/post/613911/#p613911




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: is what I’m doing even considered programming?

2021-02-09 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: is what I’m doing even considered programming?

@15 let me tel you that you really really want to stay away from creating a pdf reader. the pdf format is a complete nightmare. I'm saying this as someone who is no spring chicken to programming. I still have trauma from reading the pdf specification. there was this great thread on hacker news of devs sharing their experiences developing some app that needed to read the text contents of a pdf and what a nightmarish experience it was. if you can find some library that can do the heavy lifting of decoding the pdf to some more workable structure, then go for it, but otherwise don't touch it with a 10 foot pole.also on another note, you'll find the longer you have programming as a hobby/job, the more interests you accumulate. so, it is actually very rare for a long time dev to have interest in one area. this usually comes about just due to the simple fact that in order to get a single thing done you need to dabble in a bit of everything. 99% of hobby projects you are a full stack developer, since you are working on it yourself.

URL: https://forum.audiogames.net/post/613908/#p613908




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: would it be possible to port a speech engine to Game Boy Advance?

2021-02-09 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: would it be possible to port a speech engine to Game Boy Advance?

It's not entirely clear what your question is. It is a good idea to give as much detail as possible in your first post, so we can all be on the same page.If you mean if you could assemble a GBA game that when played could directly produce spoken synthesized speech output, then no. GBA sound output is very low resolution, so it couldn't produce any sound that could be interpreted as speech. there is a reason that none of the GBA games include any spoken dialogues.if your goal instead is to run a GBA game on an emulator and hav text displayed in the game to be spoken aloud by your computer, then have a look at the Pokemon Access and the original Pokemon Crystal Access projects. You can write scripts for emulators that read arbitrary data in the emulated GBA's memory. so if you can figure out where in memory to look for the text being displayed and figure out how to decode it, then you could output it using tolk.This would have to be done customly for each GBA game, as each organizes data in its memory differently, and might encode text data differently. There are various GBA games that have been disassembled, so you could look at the raw assembly to figure this out.However let me  stress, this is not for the faint of heart. take it from me. I went through Pokemon crystal assembly to extract out all the town maps with their corresponding map ids to create a map names file to work with PCA scripts. that was a relatively easy task and even that took a whole afternoon to figure out.

URL: https://forum.audiogames.net/post/613907/#p613907




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: is what I’m doing even considered programming?

2021-02-08 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: is what I’m doing even considered programming?

hate to break it to you, mate. you haven't been programming. unless you crafted your own computer hardware with tools that you crafted with your bare hands it doesn't count 

URL: https://forum.audiogames.net/post/613739/#p613739




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: is flask or jango the way to go?

2021-02-05 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: is flask or jango the way to go?

it really depends on what sort of web game you want. if the game is singleplayer, then you don't even need a backend at all. just make your game as a static page and host it on github pages.if you want to make something multiplayer then you indeed require a backend. if it is something slow that doesn't require for the player to interact with it in real time, like travian, then http get/post is all you need.however if you need real-time interaction, like a fps shooter, then you would need , to use websockets, as has been mentioned.however making a real-time game with websockets is essentially the same level of complexity as making any real-time multiplayer game like Swamp, with the only difference that the game client runs in the browser.in terms of what backend to choose for a classic web game like travian, I would recommend django over flask. I was using flask professionaly for a couple of months and I ended up having to implement all the stuff you get built-in with django like authentication, templating, and a database ORM. so django is more work to setup, but then is much smoother and integrated compared to flask. I'd only recommend flask for prototyping some really basic web service, but switching to something more batteries-included like django if you want to make a serious project.

URL: https://forum.audiogames.net/post/613063/#p613063




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: A very interesting thing that happens to me

just a small thought. if you run the program as administrator, does defender still flag it?

URL: https://forum.audiogames.net/post/613056/#p613056




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Confusion with low-level audio libraries

2021-01-24 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Confusion with low-level audio libraries

really interesting stuff +1

URL: https://forum.audiogames.net/post/609486/#p609486




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: pyAGE - yet another Python audio game engine

2021-01-24 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: pyAGE - yet another Python audio game engine

I'm always glad to see type hints being used from the very start of a python project  another dev who gets it

URL: https://forum.audiogames.net/post/609305/#p609305




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Earwax Story Builder

2021-01-21 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Earwax Story Builder

@24 yeah, issues do keep things organized. just a small note on how I think it could try at detecting the preference. assuming a user is only expected to use one set of controls and not mix and match, then when user uses a control from one set then game displays that set. when player starts using commands from different set then it switches to that. solves problem of what if player likes to switch between keyboard and controller. game menu text would have to be generated dynamically, that shouldn't cause any major overhead, at least not for these sorts of games.Also there is no reason why you cant have a comprehensive summary of controls in one nice document as well. I think you should do both, include shortcuts along with corresponding menu items and have a nice control summary document as well! I remember for games I played back when I was sighted that a lot of them that supported both keyboard+mouse as well as controller that it would switch between hints it would give based on what you are using. so this sort of pattern is already pretty mainstream

URL: https://forum.audiogames.net/post/608382/#p608382




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Earwax Story Builder

2021-01-21 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Earwax Story Builder

@15 wrt showing shortcuts in menus. how about user gives their preference for what they use (keyboard, mouse, controller), and the menus show shortcuts for their preference. or maybe better, what if the game detects what the player is using and it shows shortcuts based on that?

URL: https://forum.audiogames.net/post/608317/#p608317




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Flow chart as a blind person?

2021-01-20 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Flow chart as a blind person?

@1 I highly recommend using mermaid for flowcharts. it is a really simple text language for specifying graphs, which can be used to specify a flowchart. great thing is that it is super quick to learn and it can render theflowchart description into an image, which you can share with your sighted peers. but your sighted peers can easily read the textual description as well, making for easy collaboration.here is a simple example of a flowchart definition in mermaid:graph td start --> decision1decision1 -- Yes --> doThisdecision1 -- No --> doThatdoThis --> decision1doThat --> endthis is also great timing! I am working on a masters thesis on making graphs more accessible and last week I released a prototype accessible graph viewer, which takes mermaid graph definitions and gives you a UI for reading them with a screen reader more efficiently, so I highly recommend checking it out. but it isn't necessary for you to use mermaid to create graphs as a blind person and collaborate on them with your sighted peers. it gives some more complex flowchart examples though, so it might be worth checking out just for that. here is a link to the thread for my accessible graph viewer in the off topic room

URL: https://forum.audiogames.net/post/608306/#p608306




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Visualizations in python

2021-01-15 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Visualizations in python

I worked with matplotlib and jupyter notebooks as part of two uni courses on data science. I did manage to produce correct visualisations, but that was without being able to see them yself. I just did it since that was one thing we were graded on and a skill we needed to know. personally I would just write the matplotlib code and have a sighted person help me confirm whether the visualisation rendered as I expected. I will admit that it really helped that I haven't been blind my whole life and that I worked with data visualisations throughout high school before losing my eyesight, so I already understood much of the concepts of a good visualisation and what they should look like.thankfully, after a short while I would manage to produce good visualisations, while making mistakes that would be caught by a sighted person only every now and then.if I wanted to make sense of my data, I would usually just print out some relevant aggregate figures like mean, standard deviation, first, third quartile, max, min, and such. or I would print a portion of the data as a table, like maybe a random sample or the top 10 from a category and so on.

URL: https://forum.audiogames.net/post/607031/#p607031




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Developing on Windows VS. Mac

2021-01-10 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Developing on Windows VS. Mac

@17 thanks, I didnt know VO had single letter navigation. knowing that would have made my experience with mac much better. but websites not working with VO +safari/chrome and working with NVDA + chrome/firefox/edge still stands, as well as VO not having a review cursor.really dont understand people defending a suboptimal platform. so far everyone defending mac + VO just saying that it is usable. I think we all know it is usable, but is it anywhere near as productive as NVDA or JAWS. noone can say it is and that's is the whole point why I recommend against mac, at least for people who are fully blind.you are just paying more for something that is less productive.only thing VO had over NVDA that I can remember is screen curtain, which is no longer true. and command pallet is kind of neat, although for NVDA you can use the input gestures dialogue to look up commands albeit a little more finger action to open it up.

URL: https://forum.audiogames.net/post/605849/#p605849




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Developing on Windows VS. Mac

2021-01-10 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Developing on Windows VS. Mac

@17 thanks, I didnt know VO had single letter navigation. knowing that would have made my experience with mac much better. but websites not working with VO +safari/chrome and working with NVDA + chrome/firefox/edge still stands, as well as VO not having a review cursor.really dont understand people defending a suboptimal platform. so far everyone defending mac + VO just saying that it is usable. I think we all know it is usable, but is it anywhere near as productive as NVDA or JAWS. noone can say it is and that's is the whole point why I recommend against mac, at least for people who are fully blind.

URL: https://forum.audiogames.net/post/605849/#p605849




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Developing on Windows VS. Mac

2021-01-10 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Developing on Windows VS. Mac

efficiency of using Mac with VO vs Windows with NVDA is night and day. I used Mac as my first computer after losing my eyesight  for a couple of years and switching to windows/NVDA was unbelievable. not even for programming, but just for common usage. even browsing websites, which is let's face it, half of what we do on the computer. single letter navigation is worlds more efficient than the rotor. also NVDA provides much more fine tools for making some inaccessible websites work through sheer will, whereas the same is impossible with VO. and I haven't eveh mentioned the review cursor, without which i cant imagine web browsing or text editing at this point. NVDA/JAWS is hands down a much better experience than VO for pretty much everything, not just programming.

URL: https://forum.audiogames.net/post/605629/#p605629




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Framework, my new set of tools for audiogame creation in python3

2021-01-09 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Framework, my new set of tools for audiogame creation in python3

@100 oh okay. sorry, I thought you were one of the authors of lucia.I just felt yor original post seemed like it might have been written in bad faith and was more inflammatory than constructive. maybe I read too much into it, but perhaps it could have been written a bit more neutrally. I find  your last post much friendlier and constructive.

URL: https://forum.audiogames.net/post/605477/#p605477




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Framework, my new set of tools for audiogame creation in python3

2021-01-09 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Framework, my new set of tools for audiogame creation in python3

@96 I agree with some of your points, but statements like "Please, do us all a favor, clean and merge your actual creations (excluding data.py for the reasons mentioned above) to the Lucia repository." are completely inappropriate. instead of providing constructive criticism on how this codebase can be improved you just point at things to say see how bad this engine this is? just use my thing instead! and then you tell the author to do everyone (or do you mean just you) a favor and to abandon their project and contribute to yours instead... other open source projects are free to depend on other open source projects like lucia. you would probably do well to get to grips with it. hijacking someone elses thread with inflammatory unconstructive comments is extremely disrespectful and reflects on your level of maturity.

URL: https://forum.audiogames.net/post/605404/#p605404




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Framework, my new set of tools for audiogame creation in python3

2021-01-09 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Framework, my new set of tools for audiogame creation in python3

@95 sorry but your code is a bit hard to read because there seems to be a problem with indentation. for example, every line beginning withs=player.pool.play_3d...has no indentation so it isn't clear if that is intentional or just a problem with how it was copied over to your post.also your code has a lot of repetition, which makes it hard to figure out the logic of it. each s=player.pool.play_3d and call to player.pool.update_3d is just copy pasted in each arm of the if/else chain. instead it would be much simpler and less repetitive to handle changing your vars in the if/else chain and then afterwards just call play_3d and update_3d after the if/else chain.also as a small side note, it would be a good idea to not have vars be a global variable, but to instead pass it in explicitly to the function.

URL: https://forum.audiogames.net/post/605399/#p605399




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: An idea I have: Android TTS to Windows bridge, and a problem with myse

2021-01-08 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: An idea I have: Android TTS to Windows bridge, and a problem with myse

@23 can relate with having multiple headphones I would need to switch between at work. for some tasks I would end up wearing two set of headphones at the same time by sort of intertwining them around my head to be able to put one on one ear and one on the other ear 

URL: https://forum.audiogames.net/post/605229/#p605229




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Framework, my new set of tools for audiogame creation in python3

2021-01-08 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Framework, my new set of tools for audiogame creation in python3

fully agree with @92. type hints really help disambiguate what data type is expected for an argument. taking a quick look at the API of framework, I am afraid that much of it would be impossible to type hint anyway though. which is a common problem with dynamically typed libraries where the API is designed without typing in mind. what I mean in the case of framework is for example the map function, which takes a type parameter, and then based on what the type is, takes different kwargs. so it isn't possible to directly type hint that function. although you could still provide a typed version by exposing 3 wrappers for each type of map like so:def map_1d(max: int) -> Map:  return map(type = type_1d, max = max)def map_2d(max_x: int, max_y: int) -> Map:  return map(type = type_2d, max_x = max_x, max_y = max_y)... and so on. this would also have the benefit that you could pass all arguments positionally, instead of having to refer to them by name for kwargs, as Turret pointed out.

URL: https://forum.audiogames.net/post/605209/#p605209




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: An idea I have: Android TTS to Windows bridge, and a problem with myse

2021-01-07 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: An idea I have: Android TTS to Windows bridge, and a problem with myse

interesting idea. I am not sure if I can see what the use case for it is though. but I am genuinely interested on what it is supposed to be used for. if you could write a bit about that, then that would be great.a problem with http that I foresee is that the latency could be pretty aweful, as the android device and windows machine will probably establish a new tcp connection for each speech request from the android device, meaning each request would have the overhead of the 3-way tcp handshake. instead you could try using websockets instead, or since you are just slinging json around you could drop down to tcp, but then again http might make authentication simpler, by allowing you to reuse existing solutions.also is it meant to be used on a local network. a peer to peer application is doable on a local network, but past the boundary of your home router becomes a nightmare due to NAT.

URL: https://forum.audiogames.net/post/605014/#p605014




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Flutter and Dart programming language for Android apps

2021-01-06 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Flutter and Dart programming language for Android apps

also, you don't need android studio to build an android app, although it probably makes it much easier. if you just google "how to build android app without android studio" then you get a multitude of results. you can write your code with whatever editor you like and then build the app using command line.

URL: https://forum.audiogames.net/post/604917/#p604917




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Keeping track of state without globals?

2021-01-06 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Keeping track of state without globals?

your code looks quite clean. for keeping track of state between iterations of the main loop, I think just setting up state inside main() before the main loop starts should be fine. then you can update the state inside the main loop and it will track it between the different iterations of the loop. when a subprocedure needs access to it you can pass it in as an argument like you are doing for buzz(). and if a subprocedure like buzz needs to be able to update the state then it can return a new one that will be updated in the main loop, something like:state = buzz(state)the thing this earns you over using global variables is that if you suspect there is some bug with how state is being updated, you know you just need to look inside the main loop code, since that is the only place that has access to changing it, whereas with a global variable you'd need to scan all the code.

URL: https://forum.audiogames.net/post/604789/#p604789




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Keeping track of state without globals?

2021-01-06 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Keeping track of state without globals?

@17 it is starting to seem to me that the issue you are running into is more a matter of having your state be in scope in the function that handles the event loop and to update it between iterations of the loop. I cant access your code, but if you could show how the event queue code is structured then that would allow to give better advice

URL: https://forum.audiogames.net/post/604671/#p604671




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Keeping track of state without globals?

2021-01-06 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Keeping track of state without globals?

@13 I am not sure if that actually improves the situation over using global variables, since all you are doing is wrapping then in a class definition, so it is still global state, albeit wrapped in a class. as a general rule, it isn't a great idea to have class-level fields that are meant to be mutated. best for those to be read-only information, since then it leads to the same problems as with global mutable state. the usefulness of a class is in acting as a template for objects. if all the fields of a class are at the class-level, then it is all just static and doesn't have nmuch of a point, since every instance of that class will be the same...btw, I couldn't open your code example and from your description it isn't fully clear what the problem is, so I can't give very concrete advice. how to deal with state in a program largely depends on the program itself, particularly if you arre using some particular library for handling events. maybe for your program it might not even be a huge deal that you use a global variable  to hold on to state. usually global variables cause problems in making code harder to test or contention between different parts of the code that use the same state. good to know what problem you are trying to solve, so one doesn't end up following some coding guideline just for the sake of folowing it.one thing you wrote:"... If I return the tuple, then pass it back into the function that creates it in the first place, it'll just get overwritten ..."not sure what you mean by this. maybe you could give a concrete example of what you mean, but you can certainly take a function that takes a tuple and returns a new tuple and run the function in a loop iteratively passing it the new result. not sure if that is what you meant. example belowdef func(n):  print(n)  return n + 1def prog():  state = 0  while True:    state = func(state)    if state >= 10:      break

URL: https://forum.audiogames.net/post/604664/#p604664




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Keeping track of state without globals?

2021-01-05 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Keeping track of state without globals?

@10 although I do often advocate functional programming, this instance I am not actually advocating FP. the alternative solution I am proposing is just regular procedural imperativ programming.and I think in this case I am considering the audience, since my proposal is simpler than jumping to doing OOP, since it doesn't require OP to adopt any new paradigm and to start thinking of how to organize their code in classes. The OP specifically complained about needing to learn OOP in order to solve this problem and so I am providing a way that doesn’t require any OOP sort of design, but instead just use local variables as a way to not need to deal with global mutable state. I’ll just re-iterate I don’t have a problem with OOP, but in this case it is much more doing OOP for OOP sake and the problem can be tackled more simply in a strictly procedural non-OOP way.

URL: https://forum.audiogames.net/post/604436/#p604436




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Keeping track of state without globals?

2021-01-05 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Keeping track of state without globals?

global mutable state sure is something you want to avoid, since it can be accessed anywhere, making it difficult to reason about. one way to limit the scope definitely is what has been proposed, to use a class and make the mutable state a field of the class. that way only the methods should be the ones mutating that state, but I would actually agree with OP that OOP often leads to over engineered code and can actually get really messy. not saying OOP is totally bad, but it is also entirely unnecessary. yes it is necessary to use classes in python to create convenient packages of various variables grouped together, however it is not necessary to do the Oop thing of mixing data and logic by giving those classes methods that are responsible for operating on the fields of the class.I can propose a simple procedural style, data-oriented design where data and logic are seprated, which imo is simpler and cleaner.Again, not saying this is the good way to do it and the Oop way is the bad way. The OOP way is fine too, but just want to provide an alternative, as this thread is giving the impression that it is the only way.So how else can we limit scope of mutable state? Well simplest way is instead of global variables to have local variables, either in a loop or a function. Let’s say I have a main function that gets called when the program starts up. You can just initialize all your state as local variables and when you need some function to have access to it, you just explicitly pass it as a argument to that function. That function can then read that state you pass it and if it is mutable  then it can also change it. Small example below:def main():  state = True # in this case state is just a boolean  while True:    foo(state) # foo will be able to read state     # since booleans like all primitives are immutable, in order for a function to change it    # it will have to return a new value and the caller will have to update the state    new_state = bar(state)    state = new_state  # end while#end defIf you want to package related data together so it is more convenient to pass around and also gives you a mutable container then the simplest and most efficient is to use pythons relatively new dataclasses.from dataclasses import dataclass@dataclassclass InventoryItem:    """Class for keeping track of an item in inventory."""    name: str    unit_price: float    quantity_on_hand: int = 0this neat decorator will auto generate an __init__ and __repr__ function, so you can use it simply like this:item = InventoryItem("chocolate",  2.5)item.unit_price #access a fielditem.quantity_on_hand  = 50 # mutate the statesince the dataclass acts as a mutable container, you don't have to do as was done in my previous example of having the function return a new state and the caller being responsible for updating it. although that way has major advantages in being able to reason about the code and making your functions testable. instead when passing a dataclass, the function can mutate it directly:def sell_item(item: InventoryItem):  item.quantity_on_hand -= 1 # change is reflected everywhere

URL: https://forum.audiogames.net/post/604347/#p604347




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Keeping track of state without globals?

2021-01-05 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Keeping track of state without globals?

global mutable state sure is something you want to avoid, since it can be accessed anywhere, making it difficult to reason about. one way to limit the scope definitely is what has been proposed, to use a class and make the mutable state a field of the class. that way only the methods should be the ones mutating that state, but I would actually agree with OP that OOP often leads to over engineered code and can actually get really messy. not saying OOP is totally bad, but it is also entirely unnecessary. yes it is necessary to use classes in python to create convenient packages of various variables grouped together, however it is not necessary to do the Oop thing of mixing data and logic by giving those classes methods that are responsible for operating on the fields of the class.I can propose a simple procedural style, data-oriented design where data and logic are seprated, which imo is simpler and cleaner.Again, not saying this is the good way to do it and the Oop way is the bad way. The OOP way is fine too, but just want to provide an alternative, as this thread is giving the impression that it is the only way.So how else can we limit scope of mutable state? Well simplest way is instead of global variables to have local variables, either in a loop or a function. Let’s say I have a main function that gets called when the program starts up. You can just initialize all your state as local variables and when you need some function to have access to it, you just explicitly pass it as a argument to that function. That function can then read that state you pass it and if it is mutable  then it can also change it. Small example below:def main():  state = True # in this case state is just a boolean  while True:    foo(state) # foo will be able to read state     # since booleans like all primitives are immutable, in order for a function to change it    # it will have to return a new value and the caller will have to update the state    new_state = bar(state)    state = new_state  # end while#end defIf you want to package related data together so it is more convenient to pass around and also gives you a mutable container then the simplest and most efficient is to use pythons relatively new dataclasses.from dataclasses import dataclass@dataclassclass InventoryItem:    """Class for keeping track of an item in inventory."""    name: str    unit_price: float    quantity_on_hand: int = 0this neat decorator will auto generate an __init__ and __repr__ function, so you can use it simply like this:item = InventoryItem("chocolate",  2.5)item.unit_price #access a fielditem.quantity_on_hand  = 50 # mutate the statesince the dataclass acts as a mutable container, you don't have to do as was done in my previous example of having the function return a new state and the caller being responsible for updating it. although that way has major advantages in being able to reason about the code and making your functions testable. instead when passing a dataclass, the function can mutate it directly:def sell_item(item: InventoryItem):  item.quantity_on_hand -= 1

URL: https://forum.audiogames.net/post/604347/#p604347




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Keeping track of state without globals?

2021-01-05 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Keeping track of state without globals?

global mutable state sure is something you want to avoid, since it can be accessed anywhere, making it difficult to reason about. one way to limit the scope definitely is what has been proposed, to use a class and make the mutable state a field of the class. that way only the methods should be the ones mutating that state, but I would actually agree with OP that OOP often leads to over engineered code and can actually get really messy. not saying OOP is totally bad, but it is also entirely unnecessary. yes it is necessary to use classes in python to create convenient packages of various variables grouped together, however it is not necessary to do the Oop thing of giving those classes methods. I can propose a simple procedural style, data-oriented design where data and logic are seprated, which imo is simpler and cleaner.Again, not saying this is the good way to do it and the Oop way is the bad way. The OOP way is fine too, but just want to provide an alternative, as this thread is giving the impression that it is the only way.So how else can we limit scope of mutable state? Well simplest way is instead of global variables to have local variables, either in a loop or a function. Let’s say I have a main function that gets called when the program starts up. You can just initialize all your state as local variables and when you need some function to have access to it, you just explicitly pass it as a argument to that function. That function can then read that state you pass it and if it is mutable  then it can also change it. Small example below:def main():  state = True # in this case state is just a boolean  while True:    foo(state) # foo will be able to read state     # since booleans like all primitives are immutable, in order for a function to change it    # it will have to return a new value and the caller will have to update the state    new_state = bar(state)    state = new_state  # end while#end defIf you want to package related data together so it is more convenient to pass around and also gives you a mutable container then the simplest and most efficient is to use pythons relatively new dataclasses.from dataclasses import dataclass@dataclassclass InventoryItem:    """Class for keeping track of an item in inventory."""    name: str    unit_price: float    quantity_on_hand: int = 0this neat decorator will auto generate an __init__ and __repr__ function, so you can use it simply like this:item = InventoryItem("chocolate",  2.5)item.unit_price #access a fielditem.quantity_on_hand  = 50 # mutate the statesince the dataclass acts as a mutable container, you don't have to do as was done in my previous example of having the function return a new state and the caller being responsible for updating it. although that way has major advantages in being able to reason about the code and making your functions testable. instead when passing a dataclass, the function can mutate it directly:def sell_item(item: InventoryItem):  item.quantity_on_hand -= 1

URL: https://forum.audiogames.net/post/604347/#p604347




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: where should I use python difrint datatypes

2020-12-28 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: where should I use python difrint datatypes

@5 is exactly right. audiogame devs mostly use lists, because they don't understand fundamental datastructures, how they work, what they should be used for, what they are their space and time cost characteristics, and so on. it's particularly embarassing, since this stuff is studied in year one of university, so these really are the fundamentals of computer science.I think this stems from the all too common mentality in this forum of "I just want to create a game, I don't want to have to learn computer science principles and theory". but as is demonstrated by @4's comment, this probably doesn't leave to more quality audiogames, just more confusion.

URL: https://forum.audiogames.net/post/602580/#p602580




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: where should I use python difrint datatypes

2020-12-27 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: where should I use python difrint datatypes

I will also add that the assumption that Sets are unordered isn't true, because there are two main flavors of Sets, namely HashSets and TreeSets. python's default Set is a HashSet, which is unordered. Treesets are ordered, essentially for free, but lookup and insertion are slightly more expensive.since you are unfamiliar with data structures, it is highly recommended you read up on them, preferably something complete, like a course on algorithms and data structures. particularly helpful if you do exercises where you actually implement a lot of the fundamental data structures in computing science, as this will give you the best level of understanding. there is a good reason this stuff is taught early on as part of any computing science degree. The knowledge will really help you understand what is "happening under the hood" and will give you skills you can apply when programming anything

URL: https://forum.audiogames.net/post/602459/#p602459




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Is there a good way to handle multiple enemies who can effect each oth

2020-12-26 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Is there a good way to handle multiple enemies who can effect each oth

Just in defense of closed unions, or algebraic data types as they are commonly reffered to in FP circles. I think the idea that although I am not saying inheritance is an inherently bad method of data modelling, it certainly is unnecessary. and anything can be modelled using composition and ADTs instead.also, personally I wouldn't consider having a lot of stuff needed to be defined in a single file to be a bad thing. I think the idea that having large files and having a lot of smaller files is good has come from Java and C#, where there it perhaps applies due to the everything is OOP paradigm, but it certainly doesn't generalize o programming. also personally I really dont mind pattern matching a union type and having a large branching function for each case, since I can still navigate through it using indentNav easily and in my eperience it isn't difficult to work with. right now, I am primarily working with Elm and this is essentially how updates are handled inan Elm application. You have one big ADT representing all the messages that might be triggered in the application and then you have an update function that branches on that message union type and defines what happenes for each message variant. the code actually ends up being quite neat and organized.although not to say that the Elm architecture necessarily would work well here. it is essentially an instance of functional reactive programming, which works well performance-wise really well for user-driven IO apps like most web apps or games that aren't heavily CPU intensive like high-end games. but just wanted to defend the value that ADTs (closed union types) can bring to the table.

URL: https://forum.audiogames.net/post/602026/#p602026




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Is there a good way to handle multiple enemies who can effect each oth

2020-12-26 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Is there a good way to handle multiple enemies who can effect each oth

Just in defense of closed unions, or algebraic data types as they are commonly reffered to in FP circles. I think the idea that although I am not saying inheritance is an inherently bad method of data modelling, it certainly is unnecessary. and anything can be modelled using composition and ADTs instead.also, personally I wouldn't consider having a lot of stuff needed to be defined in a single file to be a bad thing. I think the idea that having large files and having a lot of smaller files is good has come from Java and C#, where there it perhaps applies due to the everything is OOP paradigm, but it certainly doesn't generalize o programming. also personally I really dont mind pattern matching a union type and having a large branching function for each case, since I can still navigate through it using indentNav easily and in my eperience it isn't difficult to work with. right now, I am primarily working with Elm and this is essentially how updates are handled inan Elm application. You have one big ADT representing all the messages that might be triggered in the application and then you have an update function that branches on that message union type and defines what happenes for each message variant. the code actually ends up being quite neat and organized.

URL: https://forum.audiogames.net/post/602026/#p602026




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Is there a good way to handle multiple enemies who can effect each oth

2020-12-25 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Is there a good way to handle multiple enemies who can effect each oth

hello, I am not familiar with Rust, but have done a fair amount of functional programming over the last year and a half. is not being able to have multiple mutable references to a container really a problem? that seems like a problem is trying to be solved using OOp thinking in an environment where OOP doesn't apply.How about creating a message everytime something needs to happen like an enemy should be healed or harmed or whatever, store those messages in a queue, and handle those messages in the scope where the mutable reference to the game state is? not sure if this is directly related to the queue of closures, but if you cant store closures in a queue, why not defunctionalize and have a union type that represents the different closures that could be needed and store those simple data values in the queue instead. then you would have a evaluation function that matches on the variants of the union type and effectively translates it to the closure  you would have had if before defunctionalizing.

URL: https://forum.audiogames.net/post/601775/#p601775




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Earwax

2020-12-23 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Earwax

@103 looking at your examples of how decorators work, I dont think it is entirely true. reffering to your example:@decoratordef f():    passis the same as:def f():    passdecorator(f)In your example, the two cases are the same if and only if the decorator doesn't transform the function in any way. i.e. if the only thing the decorator does is perform a side effect like adding the function to a some dictionary, prints something, or fires a missile.the function needs to be updated with the result from the decorator in order for it to also be transformed. so the second case would actually need to be:def f():    passf = decorator(f)here is my python session where I tested this:>>> def dec(func):...  print('side effect')...  def newFunc(*args, **kvargs): return func(*args, **kvargs) + 1...  return newFunc...>>> def f(): return 1...>>> f()1>>> dec(f)side effect.newFunc at 0x02113ADE7EA0 f()1>>> @dec... def g(): return 1...side effect>>> g()2>>> f = dec(f)side effect>>> f()2edit: because of this, your timer decorator example also doesnt work, because it doesn't actualy return inner which is defined. so it has no effect other than setting any function the decorator is used on to None. I know this is almost definitely just a mistake and you understand decorators, but just wanted to point out the problems with those examples in case a newbie would want to refer to them 

URL: https://forum.audiogames.net/post/601182/#p601182




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Earwax

2020-12-23 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Earwax

@103 looking at your examples of how decorators work, I dont think it is entirely true. reffering to your example:@decoratordef f():    passis the same as:def f():    passdecorator(f)In your example, the two cases are the same if and only if the decorator doesn't transform the function in any way. i.e. if the only thing the decorator does is perform a side effect like adding the function to a some dictionary, prints something, or fires a missile.the function needs to be updated with the result from the decorator in order for it to also be transformed. so the second case would actually need to be:def f():    passf = decorator(f)here is my python session where I tested this:>>> def dec(func):...  print('side effect')...  def newFunc(*args, **kvargs): return func(*args, **kvargs) + 1...  return newFunc...>>> def f(): return 1...>>> f()1>>> dec(f)side effect.newFunc at 0x02113ADE7EA0 f()1>>> @dec... def g(): return 1...side effect>>> g()2>>> f = dec(f)side effect>>> f()2

URL: https://forum.audiogames.net/post/601182/#p601182




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: How I can do this?

2020-12-19 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: How I can do this?

how about every clock tick or every several clock ticks, you check if velocity is > 0 and if it is then you play the walking sound. you could also modulate how frequent the walking sound is based on velocity. for example, if velocity is low, then play walking sound every 5 clock ticks, if it is high then every 3 clock ticks.I don't know the frequency of your game's clock so of course you'd need to tweak that to fit. you could also have a linear relationship between frequency of sound being played and the character's velocity like:walkingSoundFrequency = velocity / someConstantyou'd need to figure out the right value for someConstant through trial and error

URL: https://forum.audiogames.net/post/600315/#p600315




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: VSCode terminal - editing previously executed command

2020-12-19 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: VSCode terminal - editing previously executed command

Hi, personally I do not use the internal VS code terminal at all. I always use an external terminal and I get on fine with everything. I would think the internal terminal  is just a convenience so you don't have to open up another window. I am not aware of anything else the internal terminal provides that an external wouldn't. but maybe I am wrong.you can open up an external terminal from VS code very conveniently with ctrl+shift+C

URL: https://forum.audiogames.net/post/600091/#p600091




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: dictionary key error, list index out of range

2020-12-18 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: dictionary key error, list index out of range

It is very likely that your interpretation of what is happening isn't correct, but you are giving us so little information about what you are doing that at best we can just guess at what you are attempting.As for the index out of bounds error, as Camlorn already wrote more than once. If it says it is out of bounds, then it is out of bounds. period. fire up your python interpreter and inspect what the list you are indexing actually contains.you can run the script in the command line with the -i flag and it will run your script, but keep your interpreter open and you can type in and execute arbitrary code manually. any funcitons or top level variables are accessible.alternatively, as was suggested, put in a bunch of prints in that part of the code that will print out relevant information, like the length of the list or the list itself.also dont use a list to store structured data. most of the time you want to use a list to store items which you all treat in a uniform way. if you have data, where each item for example has a name, an age, and a phone number, then don't store each item as a list where first element is the name, second is age, and third is phone number. that is not what lists are used for well and it leads to the sort of problems you have.instead define a class, more conveniently for this case a dataclass. the advantage is that if you instantiate it but leave out one of the fields (probably what is happening to you) then the program will fail at that point, instead of further down the line where you can't relate it to the source of the bug.as for your file problem. if something isn't working then try out the simplest version of that problem and go from there. i.e. if you cant play an audio file from a drive, then first just try to open a text file on that drive. if it says there is no file or directory, then the filepath you are giving it is almost certainly incorrect, so check what filepath it is using.

URL: https://forum.audiogames.net/post/599723/#p599723




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: manage file archive in keybase using commandline

2020-12-17 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: manage file archive in keybase using commandline

if your command line responds that the command is unknown, then it isn't on your PATH. the PATH is a variable that stores a list of directories the terminal is supposed to look through when you issue a command. If you installed the keybase command line tools, then find where the executables are (these will probably be .exe, .cmd, or .bat). then add that directory URI to your PATH variable.

URL: https://forum.audiogames.net/post/599718/#p599718




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Has anyone developed an Alexa skill or with Google Dialogflow

2020-12-05 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Has anyone developed an Alexa skill or with Google Dialogflow

thanks for the responses! from what I am reading so far, I take it the web interface for Alexa developments related services is fairly accessible. not too surprised about accessibility problems with GCP as even this summer when I was using it, there was much to be desired.It is true both offer CLI, so if some web interface is giving too much grief I can fallback to that.

URL: https://forum.audiogames.net/post/595616/#p595616




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Has anyone developed an Alexa skill or with Google Dialogflow

2020-12-04 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Has anyone developed an Alexa skill or with Google Dialogflow

Hello, In the next semester I might be doing a uni course on conversational interfaces, which would include developing a chatbot. The professor contacted me and said she is considering us developing either an Alexa skill or using Google Dialogflow.If any screen reader users here have developed using either framework, could you please comment on the accessibility. From reading briefly about Alexa skill development, the process consists of defining a set of intents with corresponding slots, slot types, and utterance, which is specified as json. Looking at the json schema it is pretty straightforward to write manually using a code editor. Here I would just require that the web interface for uploading the schema is at least accessible enough to submit the schema.After that it is just associated with a web service that takes requests as json and returns json responses. Typically this service is hosted as an AWS Lambda, which supports a lot of different languages, so hopefully setting that up isn't blocked by a completely inaccessible interface. Once setup, I am guessing it is just coding like for anything else.I haven't looked into Google Dialogflow at all. Has anyone used it? I have used Google Cloud Platform quite a bit over the summer for a job and remember the accessibility being very poor, so I am expecting setting up and working with Dialogflow to be equally poor.Any insights on how accessible working with these technologies is, things to watch out for, and useful workarounds are greatly appreciated!

URL: https://forum.audiogames.net/post/595423/#p595423




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A Collision Tutorial and some important points

2020-11-27 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: A Collision Tutorial and some important points

@4 if you dont understand how it saves on comparisns, then take an arbitrary list and use both iterating methods to print out the pairs of values and see how they differ and it should be extremely clear. also it is well explained in the article, but if you just print out what is being compared in either case, then it might be even clearer.as for iterable, if you aren't familiar, then read up on python generators. maybe read up on pyton type annotations if they don't make sense, in this case Iterable[Tuple[ Box, Box]] means an iterable of tuples of boxes.

URL: https://forum.audiogames.net/post/593166/#p593166




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A Collision Tutorial and some important points

2020-11-27 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: A Collision Tutorial and some important points

very nice tutorial! I am not interested in game development right now, but it was a stimulating read nonetheless. was thinking it is a shame with the format of this forum that threads get lost after time unless they are sticky, however not every good thread should be sticky of course. maybe a good thing for this forum would be to have a sticky thread that points to a github repo that contains a curated set of audiogame development tutorials. would be good if it was curated by people like Camlorn, who know what they are talking about and could review new submissions for quaulity and correctness.

URL: https://forum.audiogames.net/post/593163/#p593163




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Sandbox MUD

2020-11-22 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: Sandbox MUD

as a developer I definitely have gotten used to using a versioning system like git as a safety net. the fact I can make experimental changes stress free, knowing I can get back to a sane version of my project with a single "git restore ."but maybe some basic versioning wouldn't be too difficult to implement. and as long as areas could be sequestered in a way that version histories would be seperate, then it could work in that regard.From reading about your ideas on handling input, output, and discoverability, I think you might have spent a little too much time in Alexa land. Alexa as a platform is probably the most limiting there is for games, even when compared to MUDs. I think you will find that a lot of the considerations for input and output that you have to deal with to make a game on Alexa bearable, don't apply once you are in a less limiting context.for input, since user is typing instead of having their voice interpreted by a machine, the sort of auto correction isn't necessary. what you can do in the text game scenario is to just include various synonyms for vairous commands, which is commonplace. also possibly if the command isn't recognized, then game would give them a couple of commands that are close (if any).in terms of output, the biggest problem with MUDs for VI gamers, is the inclusion of ASCII art, which is more a problem with game design than the engine itself. as for things that sound similar, I figure out which one is meant from the context and if I can't then I just spell it out. once you aren't in Alexa land and have a full-powered screen reader, then that kind of stuff isn't a concern.discoverability is an interesting topic. I think there could be improvements to how that is achieved. generally, I think a good tutorial at the beginning of the game is the best thing. particularly introducing controls gradually, as they become relevant and the player has had some time to digest the other controls introduced so far. all non-audiogames do this and it is very effective and enjoyable way to learn the controls, but for whatever reason, audiogames still tend to just have you read a long doc explaining all the controls before playing, which really doesn't make for a great experience.so, for me overall I think poor player experience in MUDs is mostly due to poor game design rather than the engine the MUD is built on not having enough features.

URL: https://forum.audiogames.net/post/591751/#p591751




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: can i install node.js in my system?

2020-11-17 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: can i install node.js in my system?

@15 you can sort processes based on their CPU usage in task manager. just click on the CPU column header. you will probably need to use object navigation to move your mouse to it.

URL: https://forum.audiogames.net/post/590539/#p590539




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: can i install node.js in my system?

2020-11-17 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: can i install node.js in my system?

how would a program that isn't even running affect your cpu? I can install the most power hungry program on the planet and if I don't run it, then it won't affect my CPU usage in any way. did you check in task manager what program was eating up your CPU?

URL: https://forum.audiogames.net/post/590479/#p590479




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: weird thing after reinstalling python.

2020-11-16 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: weird thing after reinstalling python.

is it possible at all that was the behaviour before and you just didn't notice? I can't see how reinstalling python would have that effect

URL: https://forum.audiogames.net/post/590308/#p590308




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: can i install node.js in my system?

2020-11-16 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: can i install node.js in my system?

@6 I use chocolatey as well. definitely also a good package manager! I just tend to refer scoop for dev related software packages, since it is more oriented in that direction@7 well if your question still is whether you can install node.js, then the answer is still yes

URL: https://forum.audiogames.net/post/590219/#p590219




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: can i install node.js in my system?

2020-11-15 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: can i install node.js in my system?

node.js at the end of the day is a interpreter for _javascript_, the way python.exe is for python. it only takes up resources when it is running, so installing it will not kill your computer, if that is what you are afraid of. though I am really just guessing what you are concerned about, since your posts in this thread so far haven't made sense to me.what do you want node.js for? probably to develop something, right? then just install it and use it for what you want and if there are some problems then uninstall it, although I can't imagine what these problems would be...I recommend getting scoop if you are on windows. it is a software command line manager like apt on debian linux. let's you install/update/uninstall lots of dev software just with a single command in your terminal, like:scoop install nodejsscoop update nodejsscoop uninstall nodejsand so on...

URL: https://forum.audiogames.net/post/589964/#p589964




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: earwax-server

2020-11-15 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: earwax-server

@5 decorators are the pythonic way for making functions that take functions and return them transformed in some way (or in your case, performing side effects). however I would be very surprised if passing functions as arguments was entirely discouraged, since for some things it is the only practical way of doing things. and lots of model python libraries don't shy away from treating functions as first class values, like numpy off the top of my head.also in regards to what if you dont want to define some event, then you can just have default arguments to the constructor, which are very pythonic indeed I also prefer Camlorn's subclassing design to the decorators here.  personally I am a composition over inheritance kind of guy, so I thought of my thing first, but I like the other one as well.don't get me wrong, decorators are great when they make sense like flask's @app.route(), but just not seeing the value here.

URL: https://forum.audiogames.net/post/589957/#p589957




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: earwax-server

2020-11-14 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: earwax-server

@2 I think he wrote that you could connect via telnet, so I'm guessing you would just connect like you would for a MUD

URL: https://forum.audiogames.net/post/589774/#p589774




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: earwax-server

2020-11-14 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: earwax-server

hey, nice little library for getting a event driven server up quickly for prototyping!my nitial thought is do the decorators really add anything here? since you use the same decorator for three different functions that need to be defined for a server instances and the important part is that it has the right name and not that it has the right decorator.for me, I would say, since the decorators don't seem to really add any convenience here, why not just make the three functions arguments to the Server constructor? like:def on_connect(ctx): passdef on_data(ctx, data): passdef on_disconnect(ctx): passserver = Server(on_connect, on_data, on_disconnect)

URL: https://forum.audiogames.net/post/589773/#p589773




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: What's the most accessible platform?

2020-11-13 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: What's the most accessible platform?

hmm, thinking about it just now, I realize you are probably locked into needing the speech/sound interleaving, since that's how the game is designed for alexa and doing away with that would require fundamentally redesigning the game...

URL: https://forum.audiogames.net/post/589644/#p589644




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: What's the most accessible platform?

2020-11-13 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: What's the most accessible platform?

Just to warn you, I imagine a lot of people will be unhappy with playing the game with a built in synthesized voice for feedback instead of their screen reader.you are going to need to reinvent a lot of the stuff in a screen reader that makes it pleasent to use. For one thing everyone has different preferences for, biggest one being rate.that one is pretty easy to just have as a setting, but past that you need to include commands for repeating what was just spoken, pausing/resuming speech, skipping speech, and probably a couple more that I can;t think of right now.for me why I just can't stand alexa games is having no control over the speech is extremely frustrating. I can't even alter the rate. for me and vast majority of others alexa sounds as slow as a snail. but even beyond that getting her to repeat stuff is unreliable and super slow. also skipping or pausing speech is usually impossible or impractical.so just keep in mind you need to reimplement at least those basic functions in order for the screen reader alternative you provide isnt frustrating to use.you should consider whether the sound interleaving thing is really worth it. I would say I dont think it is. I would imagine just playing sound effects as events are triggered are fine and you dont even need a live region neccessarily. I think you can just put the text up on screen and the user can just read it as they normally do on a web page.oh yeah, and some other pretty vital commands for any speech feedback I would want to avoid frustration is ability to read word by word and have words spelled out. example would be review cursor commands for NVDA

URL: https://forum.audiogames.net/post/589643/#p589643




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: What's the most accessible platform?

2020-11-13 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: What's the most accessible platform?

Since you are running a local server for the game, then that server could generate the speech interleaved with sounds that would be played in the browser. But at this point I would say you might want to just switch to developing it as a desktop application. Not really getting much from developing it as a web app. I would say the web app is really only worth it if it is light enough for you to host it yourself.

URL: https://forum.audiogames.net/post/589455/#p589455




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: JavaScript Problems

2020-11-13 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: _javascript_ Problems

I second using eslint. It is very easy to install just using npm and integrates really nicely with VS code.

URL: https://forum.audiogames.net/post/589448/#p589448




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: JavaScript Problems

2020-11-13 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: _javascript_ Problems

also these lines almost certainly don't do what you expect:    if (todo !== undefined) {        todo.completed != todo.completed    }I think what you want to do is set todo.completed to its opposite. instead here you are using the != operator which compares two values and returns true if they aren't equal and false otherwise. so that bit of code you wrote has 00 effect, since it just evaluates to some bool that isn't even stored anywhere. instead you want totodo.completed = ! todo.completedsigh... dynamic typing strikes again

URL: https://forum.audiogames.net/post/589363/#p589363




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: What's the most accessible platform?

2020-11-13 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: What's the most accessible platform?

for controlling when the screen reader speaks, there are libraries like Tolk, however they can't be used from the browser. you need a normal desktop application for that. probably a browser extension could be developed that would make that possible, but one doesn't exist as far as I am aware. so for the browser you would need to generate speech yourself using something like the web speech API, but I would probably not recommend that. one thing you could do is play the sound first and when it finishes, update the live region. I know it isn't ideal for all situations, but at least you know the speech and the sound aren't overlapping

URL: https://forum.audiogames.net/post/589361/#p589361




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: What's the most accessible platform?

2020-11-10 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: What's the most accessible platform?

a singleplayer game where the user needs to start up a web server and open up a webpage, might put up an additional barrier for non-programmers, which is most people here.if you are going to make a desktop GUI, definitely most important first step is to use a toolkit that has good accessibility baked in. if you start out and commit with one that doesn't, then that is just a lot of wasted time. I haven't done much desktop GUI development myself, so can't give a good recommendation, but I know that NVDA uses WX and eclipse uses SWT and those applications work well with a screen reader, so those might be good.watch out for toolkits like swing that rely on java access bridge, since that is a huge pain in the ass to setup as sometimes there is a dll missing on your computer that you need and for less technical users it is really frustrating to fix. thankfully NVDA started including java access bridge since sometime last year, so now it doesn't even require setup, but not everyone uses NVDA, and not everyone keeps their system up to date.also the way people get sounds on telnet is that they create soundpacks for a mud client like mush or vipmud. the soundpack defines essentialy text patterns that if the client detects,  then it plays an associated file. it is really an ad hoc solution for adding sound to games after the fact.edit: also if your game isnt going to be online or hosted, then I would say  dont do the website/telent, since that just requires more work from the user with starting up a local server. you can just make an accessible desktop GUI. go the webpage route if you are actually going to host it

URL: https://forum.audiogames.net/post/588510/#p588510




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: What's the most accessible platform?

2020-11-10 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: What's the most accessible platform?

a singleplayer game where the user needs to start up a web server and open up a webpage, might put up an additional barrier for non-programmers, which is most people here.if you are going to make a desktop GUI, definitely most important first step is to use a toolkit that has good accessibility baked in. if you start out and commit with one that doesn't, then that is just a lot of wasted time. I haven't done much desktop GUI development myself, so can't give a good recommendation, but I know that NVDA uses WX and eclipse uses SWT and those applications work well with a screen reader, so those might be good.watch out for toolkits like swing that rely on java access bridge, since that is a huge pain in the ass to setup as sometimes there is a dll missing on your computer that you need and for less technical users it is really frustrating to fix. thankfully NVDA started including java access bridge since sometime last year, so now it doesn't even require setup, but not everyone uses NVDA, and not everyone keeps their system up to date.also the way people get sounds on telnet is that they create soundpacks for a mud client like mush or vipmud. the soundpack defines essentialy text patterns that if the client detects,  then it plays an associated file. it is really an ad hoc solution for adding sound to games after the fact.

URL: https://forum.audiogames.net/post/588510/#p588510




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: please give me a guide on how to use git hub

2020-11-10 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: please give me a guide on how to use git hub

lots of articles on how to use git and github. if you don't know git, then learn the basics of that first. as others have mentioned the how to articles on github are good. also here is a link to an article written by someone specifically about using github with a screen reader, which might also help:https://bats.fyi/mastering-github-with- … er-part-1/

URL: https://forum.audiogames.net/post/588505/#p588505




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: What's the most accessible platform?

2020-11-09 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: What's the most accessible platform?

well most people use windows so targetting that would probably have the largest reach. iOS and Android seem to have a 50 50 split of the market. if your text adventure is supposed to be online multiplayer though, then either telnet or developing for it to run on the browser would offer cross-platform support.

URL: https://forum.audiogames.net/post/588186/#p588186




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: issue with python and nvda addons

2020-11-08 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: issue with python and nvda addons

also it is prudent to check the API you are using. thankfully for NVDA it is pretty easy. just bring up an NVDA dev prompt (NVDA + ctrl + z) and then type:import speechhelp(speech.speakMessage)which will bring up the docstring for the function in a commandline reader like more on windows or less in bash.looking there it documents pretty clearly that it can also take an additional argument for with what priority the message should be spoken.

URL: https://forum.audiogames.net/post/587712/#p587712




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: issue with python and nvda addons

2020-11-05 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: issue with python and nvda addons

I have a feeling I know what you might be doing that is causing this from what you said so far.so you are calling core.callLater(), because you want your thing to be executed later. and you say you are just calling speech.speakMessage(). are you by any chance doing something like this:core.callLater(speech.speakMessage("this is my message"))because then the stack trace you are getting makes perfect sense. without even checking the api of nvda, I can tell core.callLater() expects to receive a function that it will, well... call later. but if you are doing what I wrote above, then you are passing None instead, which can't be called because it isn't a function.what is happening in that line that I wrote is that first speech.speakMessage() is called, which performs the side effect of speaking and then returns None, wich is passed to core.callLater(). what you want to do instead is to define a function and pass that instead. likedef myFunc():  speech.speakLater("bla bla")core.callLater(myFunc)but if by chance this is what you have done and why it is failing, then you really should invest more into learning python and fundamentals of programming in general. it would also explain why you are massively convoluting your solution here.

URL: https://forum.audiogames.net/post/586908/#p586908




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: python users please save me

2020-11-04 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: python users please save me

you are blocked from opening up  cmd.exe? but I thought you were using the python interpreter on command line since the online repl wasn't accessible. how are you working with the python interpreter then?also on a unrelated note. have you asked your teacher what they expect you to complete the lab? i.e. are you just supposed to use things in the standard library or to use some other library like PIL?also unrelated, to the others here that recommended numpy and other data science libraries to to a complete programming beginner, instead of pil: WAT

URL: https://forum.audiogames.net/post/586486/#p586486




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: why are developers moving towards python?

2020-10-31 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: why are developers moving towards python?

python is slower than Java, just as virtually all interpreted language are compared to compiled ones, however a lot of the time you don't care whether your program finishes a task in 10 ms or 100ms, but the fact the program automates a task for you that manually takes you 30 minutes to do.personally, most of the time I use python for automation and there is a really good reason I use it and not Java. 1. writing a simple program in python is way way faster than in java. literally just write a single file and then run it.2. Java really sucks for short running programs that you typically envoke from a command line because of latencythe latter point is due to java being a just-in-time compiled language, meaning when you envoke a java program, it actually needs to warm up by compiling the java byte code to the platform's native machine code. so for such programs python will actually give you better performance anyway.edit: also two other reasons many programmers choose python over java is its relatively cleaner syntax and the fact python is dynamicly typed whereas java is statically typed.many programmers just don't like static typing and so just prefer a language like python. personally I love static typing, although I have to say Java's type system is aweful and probably a major reason why a lot of programmers are put off by static typing in general, even though it is technically superior when combined with automatic type inference like it is in Scala, typescript, Haskell, Elm, and others.lastly, this issue isn't black and white. most programmers end up using different languages for different things. so it isn't uncommon for a programmer to use both java and python.

URL: https://forum.audiogames.net/post/584958/#p584958




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: why are developers moving towards python?

2020-10-31 Thread AudioGames . net ForumDevelopers room : Dragonlee via Audiogames-reflector


  


Re: why are developers moving towards python?

python is slower than Java, just as virtually all interpreted language are compared to compiled ones, however a lot of the time you don't care whether your program finishes a task in 10 ms or 100ms, but the fact the program automates a task for you that manually takes you 30 minutes to do.personally, most of the time I use python for automation and there is a really good reason I use it and not Java. 1. writing a simple program in python is way way faster than in java. literally just write a single file and then run it.2. Java really sucks for short running programs that you typically envoke from a command line because of latencythe latter point is due to java being a just-in-time compiled language, meaning when you envoke a java program, it actually needs to warm up by compiling the java byte code to the platform's native machine code. so for such programs python will actually give you better performance anyway.

URL: https://forum.audiogames.net/post/584958/#p584958




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


  1   2   3   >