>
> I’m pretty sure you can just type "go get …” and it finds all the 
> dependencies automatically, and they are likely to change over time, so I’m 
> not sure it is conventional to list them?


You may want to vendor them 
(https://golang.org/cmd/go/#hdr-Vendor_Directories) so if they ever go away 
or change API then your project will still work.

Matt

On Monday, May 7, 2018 at 1:05:13 AM UTC-5, Randall O'Reilly wrote:
>
> Steve — thanks for your impressions.  I’ll definitely contact you directly 
> when I get around to trying to integrate rasterx — I haven’t even had a 
> chance to look at it all, but a first question is when you expect it to be 
> stable and reasonably feature-complete?  e.g., one of the main things I 
> would love to be able to use in the GUI are gradients, and your 
> announcement mentioned that those were still pending? 
>
> I’m pretty sure you can just type "go get …” and it finds all the 
> dependencies automatically, and they are likely to change over time, so I’m 
> not sure it is conventional to list them?  For example, I just removed the 
> json-iterator dependency as it wasn’t even working, to make that list 
> smaller by a few.. 
>
> Re the all-platform GUI, it definitely seems tricky, and I’m developing on 
> a Mac and only spent a minimal amount of effort getting Linux and Windows 
> working, relative to the original Shiny framework.  Unfortunately on linux 
> any time you close a window it exits the event loop through some mechanism 
> that I have yet to find!  That is what is causing the lack of 
> responsiveness — if you just don’t close any windows, everything should 
> work fine :)  I’m pretty sure Shiny was only tested with a single window, 
> as there have been several issues related to that across the platforms. I 
> don’t see those text field editing issues you report — did you install the 
> MS TTF fonts?  I also removed the /usr/local/share/fonts path per 
> Wojciech’s comments — users can add via prefs if needed, so you shouldn’t 
> be seeing any font path issues on the most recent version. 
>
> One thing I’ve found so far is that the specific demands of the GUI logic 
> place specific demands on the OS-specific logic, so I’ve been happy to have 
> full control over that at the lowest level.  The Shiny framework provides a 
> really nice, maximally-Go-based OS-specific interface that I’ve easily been 
> able to modify per my needs, so I’m hopeful that with a bit more effort 
> things will be pretty smooth.. 
>
> Re the full-featured nature of the Ki nodes, one consideration is that 
> each node in the tree needs to support the relevant capabilities for them 
> to work properly: e.g., properties can be inherited, and signals need to 
> disconnect when a node has been deleted (and more generally, the node 
> signals like “Updated” are an essential part of the basic functionality, 
> and could not be made optional).  Also, I wanted to automatically support 
> things like JSON in the same way that a slice or map natively does, so an 
> end-user doesn’t have to struggle with all that themselves (and I don’t 
> ever have to deal with it again myself :)  Anyway, in my estimation, the Ki 
> node is minimal relative to the core desired functionality, but I’m very 
> open to specific suggestions about how it could be simplified or more 
> efficiently decomposed.  Cheers, 
>
> - Randy 
>
> > On May 6, 2018, at 2:11 PM, Steven Wiley <steven...@gmail.com 
> <javascript:>> wrote: 
> > 
> > It sure does look like you put a great deal of effort into this project. 
> Here are a couple of impressions after trying the demos and skimming 
> through part of the source code. 
> > 
> > First, I had to pull down a lot of other packages in order to get things 
> to build. Did you happen to write up a dependency list somewhere? It might 
> be helpful to list them in the readme so that fumblers like me won't have 
> to do it trail and error. (FYI: I just added the non-standard lib 
> dependency list to oksvg and rasterx.) Here are the additional packages I 
> needed for gi : 
> >         • https://github.com/BurntSushi/xgb 
> >         • https://github.com/chewxy/math32 
> >         • https://github.com/go-gl/mathgl 
> >         • https://github.com/goki/prof 
> >         • https://github.com/jinzhu/copier 
> >         • https://github.com/json-iterator/go 
> >         • https://github.com/modern-go/reflect2 
> >         • https://github.com/modern-go/concurrent 
> > Also, I noticed that you need a go version greater than 1.9.4. I was 
> getting a "math.Round not found" error until I upgraded to go1.10.2. 
> > 
> > 
> > 
> > So, once I got everything building, I was getting a few font path not 
> found errors during runtime. (OS: Fedora 27), but still text was visible. 
> Some things worked quite smoothly, like the transition from a simple panel 
> to a scrolling panel as a window was resized to smaller than the window 
> content.  Other things were not behaving so well, like typing text into a 
> text label, and the text would appear in a different location than the 
> cursor. More seriously, almost every example I tried would at some point 
> would hang and go non-responsive.  I am happy to work with you offline if 
> you want to track down some of these problems. 
> > 
> > 
> > 
> > As for looking at the code itself, as other people have mentioned it 
> does seem to get a little heavy into use of reflection. Also, the ki 
> package is very full featured, with a lot of capabilities built in to the 
> tree nodes, like intra-node messaging, attribute maps, and more. So, I will 
> echo some other comments here and suggest that you might want to consider 
> letting some of those responsibilities fall to an object referenced by the 
> node, which might allow simpler nodes to avoid unneeded overhead. 
> > 
> > 
> > 
> > I have been playing around a bit with GUIs also, but decided to base my 
> stuff on SDL 2. It looks like you are basing off of  something called shiny 
> (golang.org/x/exp/shiny) ? Abstracting away the OS specific layer to make 
> an all-platform GUI is a notoriously hard thing to do robustly, and is a 
> frequent source of problems, just like intermittent hangups. Even with 
> something as well supported as SDL, I was getting an intermittent bug until 
> I realized I absolutely need to call runtime.LockOSThread(). Something like 
> that might be going on here, and again we can follow up offline if you 
> wish, or if you have any questions about using oksvg or rasterx. 
> > 
> > 
> > 
> > cheers, 
> > 
> > Steve 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > On Friday, May 4, 2018 at 3:39:35 AM UTC-7, Randall O'Reilly wrote: 
> > https://github.com/goki/goki — key demo in: 
> https://github.com/goki/goki/tree/master/gi/examples/widgets 
> > 
> > This is the first release of a new Go framework built around the Tree as 
> a core data structure (Ki = Tree in Japanese), which includes as its first 
> application a fully-native Go GUI (built on top of a modified version of 
> the Shiny OS-specific backend drivers, supporting Mac, Linux, and Windows 
> so far). 
> > 
> > Building on the central idea in Go that having a few powerful 
> data-structures is essential for making many problems easier to solve, the 
> GoKi trees are an attempt to provide a powerful tree structure that can 
> support things like scene graphs, DOM’s, parsing trees, etc. 
> > 
> > The GoGi graphical interface system is a kind of “proof is in the 
> pudding” test, which weighs in at under 20k LOC and provides a reasonably 
> full-featured GUI — with a bit more work it should be able to do most of 
> the stuff you can do in Qt, and already includes a (self) reflection-driven 
> GUI designer. 
> > 
> > The overall design is an attempt to integrate existing standards and 
> conventions from widely-used frameworks, including Qt (overall widget 
> design), HTML / CSS (styling), and SVG (rendering). Rendering in SVG is 
> directly supported by the GoGi 2D scenegraph, with enhanced functionality 
> for interactive GUI's. This 2D framework also integrates with a (planned) 
> 3D scenegraph, to support interesting combinations of these frameworks. 
> Currently GoGi is focused on desktop systems, but nothing prevents 
> adaptation to mobile. 
> > 
> > Right now the rendering is based off of a modified version of 
> https://github.com/fogleman/gg, but I’m very interested in integrating 
> the new rasterx system that Steven Wiley recently announced. 
> > 
> > I’d be very interested in people’s impressions, suggestions, etc, and 
> welcome all interested contributors (there’s certainly much more to do) — 
> it would be great if this could provide the start for a widely-supported 
> Go-native GUI framework!  This was my first Go project after many years in 
> C++ / Qt land, and I’m excited to join the community, and have really been 
> impressed with the language and ecosystem etc.  The contrast in complexity 
> and build time between Qt and GoGi is really striking, and has kept me 
> going despite the huge amount of effort it took to get this new project off 
> the ground..  Cheers, 
> > 
> > - Randy 
> > 
> > 
> > -- 
> > 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 <javascript:>. 
> > 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.

Reply via email to