Re: [go-nuts] Re: Elphaba Chess
On Saturday, December 2, 2017 at 9:06:54 PM UTC-7, as wrote: > > Transitive property abused for emphasis. > >> >>> On Friday, November 24, 2017 at 7:23:06 PM UTC-8, Hugh Aguilar wrote: My ultimate goal with Go is to write a program to "understand" the Ido language, at least insomuch as generating a grammar diagram for a sentence and determining if the sentence is grammatical. It could go from there to generating an English or Spanish translation. I have a lot to learn about Go before I tackle such a program however. Does Go run on smart-phones? I have only heard of Java and Objective-C being used. I have no interest in learning Java, and not much interest in Objective-C. This program lends itself well to parallel processing. The meaning and part-of-speech (POS) of each word in an Ido sentence is context-insensitive, so the words can be analyzed in parallel. I have designed a multi-core Forth processor that can be built into an FPGA --- that is what I would like to use --- build a handheld device to do the translation. I agree that a lot of English can make sense to a human, yet be totally baffling to a computer. Incomplete sentences, as you showed, are an example. With the Ido program, I would be requiring the user to input valid Ido sentences --- if they don't, they get an error message. The user has to meet the computer halfway --- the user can't expect the computer to be super-AI that reads his mind and figures out what he meant to say. I haven't written the Ido program yet, but I think it is possible. I might do this in Go first on a desktop-computer --- later on I can port it to a multi-core TOYF processor for a hand-held device. I haven't built the TOYF processor yet either --- I have to either learn Verilog or recruit somebody who does know Verilog (I'm talking to people). I have to learn more --- Go is a first step... -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [go-nuts] Re: Elphaba Chess
Transitive property abused for emphasis. On Saturday, December 2, 2017 at 7:06:15 PM UTC-8, hsmyers wrote: > > err…wouldn't that be "C an Bell product…" Bell Labs and all. > > On Sat, Dec 2, 2017 at 7:12 PM, aswrote: > >> Calling Go a Google product makes as much sense as calling C a Nokia >> product. >> >> >> On Friday, November 24, 2017 at 7:23:06 PM UTC-8, Hugh Aguilar wrote: >>> >>> I invented a chess variation called: Elphaba Chess >>> This is just like International Chess except that the queen can't >>> capture the opponent's pieces and it can't be captured --- it is just used >>> for blocking. >>> >>> I would like to write a program to play this game, but writing that from >>> scratch is beyond me. >>> Perhaps I could find a public-domain open-source chess program and >>> modify it to use my rules. I would have to change the legal-move code to >>> eliminate captures by the queen or captures of the queen. >>> Other than that, the program should work fine. Check-mate is still the >>> goal. The queen is still worth 9 points, but that is irrelevant, so you >>> might as well say that it is worth 0 points. >>> I would not expect the point values for the other pieces to change --- >>> they might though --- this would have to be determined by experimentation >>> (by stronger players than myself). >>> >>> I would prefer to do this in Go as I'm learning Go and this would be a >>> good learning exercise. >>> If there are no such programs available in Go however, then I could use >>> another language --- I know C, C++ and Pascal, but not very well, and I >>> don't like them much. >>> My background is in Forth (I've done that professionally), but ANS-Forth >>> killed Forth in 1994, so nobody really uses Forth anymore. >>> >>> thanks for any links --- Hugh >>> >>> My ultimate goal with Go is to write a program to "understand" the Ido >>> language, at least insomuch as generating a grammar diagram for a sentence >>> and determining if the sentence is grammatical. >>> It could go from there to generating an English or Spanish translation. >>> I have a lot to learn about Go before I tackle such a program however. >>> >>> Does Go run on smart-phones? I have only heard of Java and Objective-C >>> being used. I have no interest in learning Java, and not much interest in >>> Objective-C. >>> >>> This program lends itself well to parallel processing. The meaning and >>> part-of-speech (POS) of each word in an Ido sentence is >>> context-insensitive, so the words can be analyzed in parallel. >>> I have designed a multi-core Forth processor that can be built into an >>> FPGA --- that is what I would like to use --- build a handheld device to do >>> the translation. >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts...@googlegroups.com . >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [go-nuts] Re: Elphaba Chess
err…wouldn't that be "C an Bell product…" Bell Labs and all. On Sat, Dec 2, 2017 at 7:12 PM, aswrote: > Calling Go a Google product makes as much sense as calling C a Nokia > product. > > > On Friday, November 24, 2017 at 7:23:06 PM UTC-8, Hugh Aguilar wrote: >> >> I invented a chess variation called: Elphaba Chess >> This is just like International Chess except that the queen can't capture >> the opponent's pieces and it can't be captured --- it is just used for >> blocking. >> >> I would like to write a program to play this game, but writing that from >> scratch is beyond me. >> Perhaps I could find a public-domain open-source chess program and modify >> it to use my rules. I would have to change the legal-move code to eliminate >> captures by the queen or captures of the queen. >> Other than that, the program should work fine. Check-mate is still the >> goal. The queen is still worth 9 points, but that is irrelevant, so you >> might as well say that it is worth 0 points. >> I would not expect the point values for the other pieces to change --- >> they might though --- this would have to be determined by experimentation >> (by stronger players than myself). >> >> I would prefer to do this in Go as I'm learning Go and this would be a >> good learning exercise. >> If there are no such programs available in Go however, then I could use >> another language --- I know C, C++ and Pascal, but not very well, and I >> don't like them much. >> My background is in Forth (I've done that professionally), but ANS-Forth >> killed Forth in 1994, so nobody really uses Forth anymore. >> >> thanks for any links --- Hugh >> >> My ultimate goal with Go is to write a program to "understand" the Ido >> language, at least insomuch as generating a grammar diagram for a sentence >> and determining if the sentence is grammatical. >> It could go from there to generating an English or Spanish translation. I >> have a lot to learn about Go before I tackle such a program however. >> >> Does Go run on smart-phones? I have only heard of Java and Objective-C >> being used. I have no interest in learning Java, and not much interest in >> Objective-C. >> >> This program lends itself well to parallel processing. The meaning and >> part-of-speech (POS) of each word in an Ido sentence is >> context-insensitive, so the words can be analyzed in parallel. >> I have designed a multi-core Forth processor that can be built into an >> FPGA --- that is what I would like to use --- build a handheld device to do >> the translation. >> >> -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [go-nuts] Re: Elphaba Chess
On Friday, December 1, 2017 at 4:45:39 PM UTC-7, matthe...@gmail.com wrote: > > Hugh, > > Go is a general purpose programming language that is open source and > permissively licensed, and there is no obvious reason for Google or other > contributors to change this. I strongly recommend it for your project, > although Clownfish is a robust existing project. Maybe I’ll have a mature > open-source licensed Go chess engine to share in the future, but that won’t > be for a few years. But please do consider using Go, it fixes many general > programming problems that apply to any language and compiles to many > platforms. > Clownfish? What is that? You mentioned Stockfish previously. A chess program written from scratch is somewhat beyond my abilities. I do know how the alpha-beta algorithm works because I have a book on it that I bought in the 1980s --- that is not the same as being able to wrote a strong chess program. I actually delved into this a little bit at one time, when I was interested in Chinese Chess (also called Xiang Qi, not to be confused with Wei Qi) --- writing a chess program is a lot more difficult than you might suppose! My Elphaba Chess is just a minor variation from International Chess --- not like Chinese Chess that is a distant cousin of International Chess, at best --- I would expect that a minor modification of an existing International Chess program should work pretty well for Elphaba Chess. A chess program written in Go would be interesting though --- for one thing, the alpha-beta algorithm lends itself well to parallel-processing --- parallel-processing seems to be Go's strong suit. While I recommend Go as a general purpose language (an improved C) I also > think that convincing management of a commercial company that this > relatively young language will always have support will be a tough battle, > and more groups of people need to commit to contribution for the language > to grow past this barrier. I apologize if my assumptions are incorrect, but > my understanding is that Go would not exist if Google did not pay for it > initially, and if Google removed support (such as by privatizing Go 2) the > public would have a compiler and specification that while great are not yet > as mature as C++ or Python and would no longer have daily support and does > not have a clear organization or set of organizations to inherit it. > > My assumption is that Google management will look out for the company's > best interests even if that means going against what its employees want, > that Google has the capability to own the language on their own, and that > the critical path of Go is primarily developed today by and for Google. > Open source does not mean perpetually supported and updated in reasonable > time for commercial use, although Go seems to have support available for an > indefinite future. > AFAIK, Go is not tied to Google's server-side code development, although was invented for that purpose. It is available for general-purpose programming. I doubt that Google would pull the rug out from under all the Go programmers, as that would be a public-relations nightmare. Most likely they would just abandon ownership of Go and put it in the public-domain so that anybody could fork it. This might actually be a good thing. In the Forth world, we had the ANS-Forth Standard in 1994. This was just a marketing gimmick from Forth Inc. intended to convince the world that Forth Inc. sets the standard for Forth and all Forth programmers are totally dependent upon Forth Inc. for leadership. >From a technical standpoint, ANS-Forth was a failure in every possible way. This was a truly awful design --- obviously written by sales-people --- totally uninformed by computer-science (the sales-people don't know what reentrancy is, for example, as they use global variables for passing data between functions). Having a corporation possess 100% control over a language can be a problem. Sales-people get put in charge, and the whole thing spirals down into idiocy. AFAIK, this hasn't happened with Go yet --- Google has programmers in charge of the language --- this could change, as programmers cost money whereas sales-people work for free. If Google pulls their programmers from the Go project and put sales-people in charge instead, it would be best for all the independent Go programmers to just fork their own version and forget about Google. The worst-case scenario is that sales-people design a version of Go that is worthless, then push this through ANSI so they can declare their "ANS-Go" to be the Standard (with a capital 'S') and declare everybody else to be non-standard wanna-bees --- that is what happened with ANS-Forth. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more
Re: [go-nuts] Re: Elphaba Chess
On Fri, Dec 1, 2017 at 3:44 PM,wrote: > > Here’s an explanation behind my assumptions about Go: > > Recently I encountered a crash in the latest stable version of Go that > blocked my development and was root caused to a mistake in how pointers are > handled as map keys by the runtime. The fix was beyond my short-term ability > and leaves me with 1.8.5 until the next release; as a Go application > developer I am dependent on the language implementation experts who, for > quick support via the github issue tracker and for fix acceptance via the > code review process, seem to mostly be Google employees. I am not aware of > any Go forks. It's worth noting that the key step in the analysis of that issue (#22781) was from Alberto Donizetti, who does not work at Google. It's true that the fix was made by a Google employee. > While I recommend Go as a general purpose language (an improved C) I also > think that convincing management of a commercial company that this > relatively young language will always have support will be a tough battle, > and more groups of people need to commit to contribution for the language to > grow past this barrier. I apologize if my assumptions are incorrect, but my > understanding is that Go would not exist if Google did not pay for it > initially, and if Google removed support (such as by privatizing Go 2) the > public would have a compiler and specification that while great are not yet > as mature as C++ or Python and would no longer have daily support and does > not have a clear organization or set of organizations to inherit it. > > My assumption is that Google management will look out for the company's best > interests even if that means going against what its employees want, that > Google has the capability to own the language on their own, and that the > critical path of Go is primarily developed today by and for Google. Open > source does not mean perpetually supported and updated in reasonable time > for commercial use, although Go seems to have support available for an > indefinite future. > > For wider adoption perhaps a blog post series showing who is contributing > would be helpful to break these assumptions? There are quite a few people who do not work at Google who have commit access to the Go repositories. For the current release cycle more than half of the changes were made by people who are neither on the core Go team nor work at Google. You're right that if Google suddenly reassigned all the Go team members to some other project that it would not be clear who should carry Go forward. Personally I've occasionally pondered whether a Go Foundation should be created at some point, along the lines of the Linux Foundation or the Python Software Foundation or similar organizations. But I don't think it is necessary or useful at this point in the language's development. (And I have to say that it is extremely unlikely that Google would suddenly reassign all the Go team members; Go is a small project, and at the level where such things would be decided it seems to me that Google is barely aware that Go even exists.) Ian -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [go-nuts] Re: Elphaba Chess
Here's the golang-nuts topic and it has a link to the github issue: https://groups.google.com/forum/#!topic/golang-nuts/7lcongdGOMM The fix code is quite involved in the map implementation. Matt On Friday, December 1, 2017 at 5:52:24 PM UTC-6, andrey mirtchovski wrote: > > > Recently I encountered a crash in the latest stable version of Go that > > blocked my development and was root caused to a mistake in how pointers > are > > handled as map keys by the runtime. > > can you share this bug? perhaps by making it more visible we can, as a > team, solve any nascent dependancies on google employees. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [go-nuts] Re: Elphaba Chess
> Recently I encountered a crash in the latest stable version of Go that > blocked my development and was root caused to a mistake in how pointers are > handled as map keys by the runtime. can you share this bug? perhaps by making it more visible we can, as a team, solve any nascent dependancies on google employees. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [go-nuts] Re: Elphaba Chess
Hugh, Go is a general purpose programming language that is open source and permissively licensed, and there is no obvious reason for Google or other contributors to change this. I strongly recommend it for your project, although Clownfish is a robust existing project. Maybe I’ll have a mature open-source licensed Go chess engine to share in the future, but that won’t be for a few years. But please do consider using Go, it fixes many general programming problems that apply to any language and compiles to many platforms. Rob, Here’s an explanation behind my assumptions about Go: Recently I encountered a crash in the latest stable version of Go that blocked my development and was root caused to a mistake in how pointers are handled as map keys by the runtime. The fix was beyond my short-term ability and leaves me with 1.8.5 until the next release; as a Go application developer I am dependent on the language implementation experts who, for quick support via the github issue tracker and for fix acceptance via the code review process, seem to mostly be Google employees. I am not aware of any Go forks. While I recommend Go as a general purpose language (an improved C) I also think that convincing management of a commercial company that this relatively young language will always have support will be a tough battle, and more groups of people need to commit to contribution for the language to grow past this barrier. I apologize if my assumptions are incorrect, but my understanding is that Go would not exist if Google did not pay for it initially, and if Google removed support (such as by privatizing Go 2) the public would have a compiler and specification that while great are not yet as mature as C++ or Python and would no longer have daily support and does not have a clear organization or set of organizations to inherit it. My assumption is that Google management will look out for the company's best interests even if that means going against what its employees want, that Google has the capability to own the language on their own, and that the critical path of Go is primarily developed today by and for Google. Open source does not mean perpetually supported and updated in reasonable time for commercial use, although Go seems to have support available for an indefinite future. For wider adoption perhaps a blog post series showing who is contributing would be helpful to break these assumptions? Thanks for moving computing forward. Matt On Friday, December 1, 2017 at 3:35:06 PM UTC-6, Rob 'Commander' Pike wrote: > > Go is an open-source language. It's not "tied" to anything. Yes, Google > invests in its development but so do other companies and many, many open > source developers. It has a strong place in modern data centers but it is > being used in just about every place imaginable now; some have even done > kernel development in it. > > Go is not a Google product. Really, it's not. > > Please don't make unwarranted assumptions about the intention of Go or its > developers. > > -rob > > > On Sat, Dec 2, 2017 at 3:55 AM,wrote: > >> >> >> On Friday, December 1, 2017 at 7:41:24 AM UTC-7, matthe...@gmail.com >> wrote: >>> >>> I don't speak for the language developers but as far as I can tell Go is >>> always going to be tied to Google's business of datacenter-based network >>> and web services, so if you want your game as something other than hosted >>> on a network server then you may be better off with a language specialized >>> for your platform of choice like Swift for iOS (an improved Objective-C), >>> Java for Android, Javascript for a web browser implementation, or a >>> language for desktop apps. Although in my opinion Go is a better C and I'd >>> use it for general purpose programming with the garbage collector in mind. >>> My understanding is that Go does have a compiler path for ARM devices. >>> >> >> If Go is always going to be tied to Google's business of datacenter-based >> network and web services, then I should abandon Go entirely, as I have no >> interest in that subject --- I don't work for Google --- they aren't going >> to hire me. >> >> I have no interest in Swift --- I don't work for Apple --- they aren't >> going to hire. >> >> I have no interest in Java as I don't like it for various reasons that I >> won't go into here --- I am mostly interested in micro-controllers, but I >> want a good language for desktop-computer programming too --- I might get >> interested in smart-phones if a good programming language were available. >> >> I just want a general-purpose programming language. There is C++ of >> course, but I don't like it for various reasons that I won't go into here. >> >> Chess requires promotion, en passant, and castling, all three of which >>> add unique cases to the engine or interface, so keep those in mind as you >>> begin. You may look at Stockfish ( >>>
Re: [go-nuts] Re: Elphaba Chess
Go is an open-source language. It's not "tied" to anything. Yes, Google invests in its development but so do other companies and many, many open source developers. It has a strong place in modern data centers but it is being used in just about every place imaginable now; some have even done kernel development in it. Go is not a Google product. Really, it's not. Please don't make unwarranted assumptions about the intention of Go or its developers. -rob On Sat, Dec 2, 2017 at 3:55 AM,wrote: > > > On Friday, December 1, 2017 at 7:41:24 AM UTC-7, matthe...@gmail.com > wrote: >> >> I don't speak for the language developers but as far as I can tell Go is >> always going to be tied to Google's business of datacenter-based network >> and web services, so if you want your game as something other than hosted >> on a network server then you may be better off with a language specialized >> for your platform of choice like Swift for iOS (an improved Objective-C), >> Java for Android, Javascript for a web browser implementation, or a >> language for desktop apps. Although in my opinion Go is a better C and I'd >> use it for general purpose programming with the garbage collector in mind. >> My understanding is that Go does have a compiler path for ARM devices. >> > > If Go is always going to be tied to Google's business of datacenter-based > network and web services, then I should abandon Go entirely, as I have no > interest in that subject --- I don't work for Google --- they aren't going > to hire me. > > I have no interest in Swift --- I don't work for Apple --- they aren't > going to hire. > > I have no interest in Java as I don't like it for various reasons that I > won't go into here --- I am mostly interested in micro-controllers, but I > want a good language for desktop-computer programming too --- I might get > interested in smart-phones if a good programming language were available. > > I just want a general-purpose programming language. There is C++ of > course, but I don't like it for various reasons that I won't go into here. > > Chess requires promotion, en passant, and castling, all three of which add >> unique cases to the engine or interface, so keep those in mind as you >> begin. You may look at Stockfish (https://github.com/official-s >> tockfish/Stockfish) for an open-source regular chess engine written in >> C++. Modifying Stockfish may be a good path although if you distribute it >> in any way then you must provide the source code because of the GPL. >> > > I know C++ reasonably well --- I will look into modifying Stockfish to > support Elphaba Chess. > > I don't think that promotion, en passant or castling will be a problem > given my rule change (the queen can't capture or be captured) . > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.