Re: [go-nuts] Re: Elphaba Chess

2017-12-03 Thread hughaguilar96


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

2017-12-02 Thread as
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, as  wrote:
>
>> 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

2017-12-02 Thread Hugh S. Myers
err…wouldn't that be "C an Bell product…" Bell Labs and all.

On Sat, Dec 2, 2017 at 7:12 PM, as  wrote:

> 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

2017-12-01 Thread hughaguilar96


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

2017-12-01 Thread Ian Lance Taylor
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

2017-12-01 Thread matthewjuran
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

2017-12-01 Thread andrey mirtchovski
> 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

2017-12-01 Thread matthewjuran
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

2017-12-01 Thread Rob Pike
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.