I have been working on a visual programming language for Haskell: https://github.com/rgleichman/glance Currently, it uses Diagrams and Graphviz to visualize Haskell programs. Please email me since I think there is a lot we could discuss.
I didn't realize graphviz could do graphs of that quality. I'm used to graphviz's examples of DAGs and badly formatted text. Can you tell us more of how you're using graphviz? Wouldn't you need to move away from it as you move towards an interactive editor, in favor of other more javascript-based layout algorithms? What path do you think you'd follow for that?
Graphviz is only used to find the positions for the nodes using Graphviz's Neato algorithm. The nodes and the lines themselves are all rendered using the Haskell library Diagrams [0].
The next step for the project is to improve graph layout (see Glance issue here [1]), which likely means moving away from Graphviz.
What tools to use for interactivity or an editor is still up in the air.
Why are the nodes rotated like that? It seems very distracting, and I think that might also be partly causing your "layout is too spread out" issue? [1] It could also be exacerbating your second issue of crossing edges - you are getting crossing edges in even the simplest graphs (e.g. your "f1" function example, with 5 nodes).
GraphViz's "dot" algorithm (i.e., Sugiyama-style graph drawing algorithm) [2] should give a fairly compact representation that is organized into layers, and avoids crossing edges in at least simple cases, but rotating the nodes would again "spread out" the layout by forcing increasing height of each layer.
Under "Possible solutions" you mention "create a better graph layout algorithm" - that sounds quite ambitious, wouldn't this be a PhD-thesis-level research task in itself?
The only graph drawing library I'm aware of that might be competitive with GraphViz's algorithms is MSAGL [3] but that's a .NET library.
I got the Developer Edition XPS 13 9360 two weeks ago. I have never encountered the repeated key press problem some people with the XPS 15 seem to have had. Compared with my old X1 Carbon, the keyboard on the XPS 13 is not very good. On the XPS 13 the keys are flat, there is very little key travel, and very little resistive force. The lack of resistive force means that your fingers experience much more force when the keys are pressed (similar to tying on a touchscreen's hard surface). From looking at the reviews of the XPS 13, it sounds like these lackluster keyboards are the norm for Ultrabooks. The `, and \ keys are very small, and the Page Up, Page Down, Home, and End keys are overloaded with the arrow keys. There is only one super key, which is on the left.
Most of the time I use an external keyboard. If you only cared about the keyboard I would definitely recommend getting the X1 Carbon over the XPS 13.
I got a Developer Edition XPS 13 9360 two weeks ago. My compatibility experience:
- DisplayPort over USB-C alternate mode did not work at all in Ubuntu 16.04 (unplugging the USB-C cable froze the computer). So I upgraded to 16.10, and DisplayPort over USB-C now works, probably because 16.10 has a newer Linux kernel with better support for USB-C. I do encounter this bug (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1634449) where the external monitor will sometimes flash black when the mouse moves between monitors.
- The headphones are very noisy. When playing audio the hiss can be eliminated by running "alsamixer" and increasing the "Headphone Mic Boost" to 10 db gain. Depending on the monitor, there is 0 to very very little hiss when routing the audio through DisplayPort or HDMI and using my monitor's headphone jack. Annoyingly, when first playing audio, it takes about 2 seconds for the audio to start playing though the headphone jack on my DisplayPort monitor.
- Sometimes the touchscreen does not register touches after waking from suspend. A workaround is to close and open the lid.
- Occasionally (this has not happened in a few days), the wifi will disappear. Running "sudo systemctl restart network-manager.service" gets it working again. Also, iwconfig always reports "Bit Rate=1 Mb/s" even though the actual speed is much faster than that.
Otherwise, everything seems to be working well. I have not tested it, but as far as I know Thunderbolt 3 does not work with Linux yet, so Thunderbolt 3 docks probably won't work.
Stick to a TSeries and the touchpads/screens are pretty darn good nowadays, just feel nice. I haven't put linux on one since my T42 though (still probably my favorite ever..)
Hmm. /r/thinkpad doesn't seem to agree with you [1]. Did something change in the last 9 months? Whenever I look into thinkpad reviews it's always the same - crappy screen, more expensive than macbook when specced similarly, but expandable. And when it comes to touchpads I've yet to come past something that can compete with Apple's, even though they're now actively making them worse as well.
The link you cited seems to be answering the question "Does more education for an individual decrease poverty for that individual?", while the original post is answering the question "Does more education for a society decrease poverty for society as a whole?". These are two very different questions, and it is quite possible that they have opposite answers.
The length is a pretty crappy way to compare cars; but that alone shows the Bolt is significantly shorter. A better measure is the interior volume (for instance, a car and an SUV from the same mfgr will frequently share the same chassis (the SUV is a taller derivative but with same bottom stampings, suspension, engine, subframes, etc.), with the exact same wheelbase/width, but the SUV clearly has more interior volume).
If you compare your link to the Prius (http://www.toyota.com/prius/features/weights_capacities/1223...), you'll see the Prius has larger dimensions for passengers (for instance, 1st row legroom is 41.6in Bolt, 42.3in Prius; 1st row hip room is 51.6in Bolt, 53.4in Prius), however less overall passenger volume (52.2 + 42.2 = 94.4 cu-ft Bolt, 93.1 cu-ft Prius, unfortunately the Prius doesn't list separate 1st vs 2nd row volume, but I suspect the Prius wins because the Bolt beats it in rear-seat legroom 36.5 vs 33.4, so the Prius is sacrificing rear-seat room), but the Prius has greater cargo capacity by quite a lot: 24.6 cu-ft vs. 16.9. (There's also a special "Two Eco" Prius which has a whopping 27.4 cu-ft cargo volume for some reason.)
Overall these aren't that far apart, but it does seem to me the Prius is a generally larger car, with more cargo space and a more spacious front seat but with crappier rear-seat legroom.
Also, the Prius has a much longer wheelbase (106.3 vs 102.4), and its height is much lower (58.1 vs 62.8). That explains why the Bolt gets similar volume from so much less length: it sits up a lot higher, sorta like a mini-SUV. Also, the Bolt's page even makes note that the EPA has no category for "crossover", so they call it a "small wagon", meaning GM itself would prefer to refer to it as a crossover. The Prius has never been called a crossover; it's clearly a hatchback car.