Re: [GTALUG] Programming languages (in comparison?) - -was Learn Swift for Apple/iOS. Learn ??? for Google/Android.

On Sun, Dec 10, 2017 at 12:06 AM, D. Hugh Redelmeier via talk < talk@gtalug.org> wrote:
| From: ted leslie via talk <talk@gtalug.org>
snip
I spend most of my programming time in C. The next language I intend to use is Rust. I like its ideas but proof of the pudding is in the eating. The cases where I would recommend C for new projects are few and far between.
So I know precious little about programming languages. I looked up 'Rust programming language'. Wikipedia (which can often be useful if not always totally accurate) listed it as: " . . . a systems programming language sponsored by Mozilla Research, which describes it as a "safe, concurrent, practical language," supporting functional and imperative-procedural paradigms. Rust is syntactically similar to C++, but its designers intend it to provide better memory safety while maintaining performance." OK - - - sponsored by Mozilla (AIUI that sort means that its their baby) and its to '. . . provide better memory safety . . ." . Well given how Mozilla products work for me - - - they don't really know anything about how to use memory. The only way I can keep using FF is to kill it every couple three days and then restart it. Somehow that isn't my idea of memory usage done well so if that's Rust - - - well then that's a total non-starter for me! Dee

On 2017-12-10 06:28 AM, o1bigtenor via talk wrote:
So I know precious little about programming languages. I looked up 'Rust programming language'.
Wikipedia (which can often be useful if not always totally accurate) listed it as:
" . . . a systems programming language sponsored by Mozilla Research, which describes it as a "safe, concurrent, practical language," supporting functional and imperative-procedural paradigms. Rust is syntactically similar to C++, but its designers intend it to provide better memory safety while maintaining performance."
OK - - - sponsored by Mozilla (AIUI that sort means that its their baby) and its to '. . . provide better memory safety . . ." . Well given how Mozilla products work for me - - - they don't really know anything about how to use memory. The only way I can keep using FF is to kill it every couple three days and then restart it. Somehow that isn't my idea of memory usage done well so if that's Rust - - - well then that's a total non-starter for me!
I think you'll be surprised at how well the latest Firefox 57 performs. It's their first release featuring core browser components written in Rust. Fast and stable for me. Give it a try and see if your characterization above still holds. Cheers, Jamon

On Sun, Dec 10, 2017 at 10:02 AM, Jamon Camisso via talk <talk@gtalug.org> wrote:
On 2017-12-10 06:28 AM, o1bigtenor via talk wrote:
So I know precious little about programming languages. I looked up 'Rust programming language'.
Wikipedia (which can often be useful if not always totally accurate) listed it as:
" . . . a systems programming language sponsored by Mozilla Research, which describes it as a "safe, concurrent, practical language," supporting functional and imperative-procedural paradigms. Rust is syntactically similar to C++, but its designers intend it to provide better memory safety while maintaining performance."
OK - - - sponsored by Mozilla (AIUI that sort means that its their baby) and its to '. . . provide better memory safety . . ." . Well given how Mozilla products work for me - - - they don't really know anything about how to use memory. The only way I can keep using FF is to kill it every couple three days and then restart it. Somehow that isn't my idea of memory usage done well so if that's Rust - - - well then that's a total non-starter for me!
I think you'll be surprised at how well the latest Firefox 57 performs. It's their first release featuring core browser components written in Rust.
Fast and stable for me. Give it a try and see if your characterization above still holds.
Somehow - - - - I've been hearing similar for about what - - - maybe about 4 or 5 years. You really think its true this time? (After watching maybe 20+ upgrades and its still the same mess for how it works - - - I'm more than a little skeptical!) Dee

On Sun, Dec 10, 2017 at 6:13 PM, o1bigtenor via talk <talk@gtalug.org> wrote:
On Sun, Dec 10, 2017 at 10:02 AM, Jamon Camisso via talk <talk@gtalug.org> wrote:
On 2017-12-10 06:28 AM, o1bigtenor via talk wrote:
So I know precious little about programming languages. I looked up 'Rust programming language'.
Wikipedia (which can often be useful if not always totally accurate) listed it as:
" . . . a systems programming language sponsored by Mozilla Research, which describes it as a "safe, concurrent, practical language," supporting functional and imperative-procedural paradigms. Rust is syntactically similar to C++, but its designers intend it to provide better memory safety while maintaining performance."
OK - - - sponsored by Mozilla (AIUI that sort means that its their baby) and its to '. . . provide better memory safety . . ." . Well given how Mozilla products work for me - - - they don't really know anything about how to use memory. The only way I can keep using FF is to kill it every couple three days and then restart it. Somehow that isn't my idea of memory usage done well so if that's Rust - - - well then that's a total non-starter for me!
I think you'll be surprised at how well the latest Firefox 57 performs. It's their first release featuring core browser components written in Rust.
Fast and stable for me. Give it a try and see if your characterization above still holds.
Somehow - - - - I've been hearing similar for about what - - - maybe about 4 or 5 years. You really think its true this time? (After watching maybe 20+ upgrades and its still the same mess for how it works - - - I'm more than a little skeptical!)
Dee
The problems that you describe are very unlikely to have anything to do with the language that was used to implement the browser or even Firefox specifically. I have the same issues with Chrome sometimes and I tend to have dozens of open tabs with a Session Saver extension, which means the entire browsing history of dozens of tabs has to be managed. The culprit in many of the browser crashes seems to be JavaScript heavy sites. I use some very complex Google Sheets and I notice I get more freezes in Chrome when I do. I'll take the occasional crash or freeze in exchange for the ability to have a spreadsheet that I can share with collaborators. I also use the Suspender extension. That suspends tabs that aren't active to cut down on resource consumption. It seems to do that well enough. Clicking on the tab to make it active and then clicking on the body of the page wakes up the tab. The days of HTML and CSS only sites are gone. Most sites rely on JavaScript, sometimes for frivolous things, but often for useful things. The modern web stack is horrifically complex. The JS engines in browsers are relatively slow to implement new ECMAScript (ES) releases so we end up using transpilers to write modern JS/ES that transpile to the older versions supported by browsers. In some cases, we're not even using JS/ES. We're using other languages that transpile to ES < https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js>. That it works as well as it does is a minor miracle. Regards, Clifford Ilkay +1 647-778-8696

On 2017-12-10 06:13 PM, o1bigtenor wrote:
I think you'll be surprised at how well the latest Firefox 57 performs. It's their first release featuring core browser components written in Rust.
Fast and stable for me. Give it a try and see if your characterization above still holds.
Somehow - - - - I've been hearing similar for about what - - - maybe about 4 or 5 years. You really think its true this time? (After watching maybe 20+ upgrades and its still the same mess for how it works - - - I'm more than a little skeptical!)
From my reading, rust enabled the FF devs to parallelize CSS rendering across CPU cores relatively easily with thread safety, meaning faster
https://blog.rust-lang.org/2017/11/14/Fearless-Concurrency-In-Firefox-Quantu... is a good write up on how rust is used in Firefox's newest release (57). It is a completely new CSS engine written in Rust that runs within the browser itself. page rendering and fewer crashes or lock ups for you and me. It also sounds like this is just the beginning of rust in Firefox, and I for one look forward to seeing other components of the browser running rust for the performance and stability it promises. Cheers, Jamon

On 2017-12-10 06:13 PM, o1bigtenor wrote:
I think you'll be surprised at how well the latest Firefox 57 performs. It's their first release featuring core browser components written in Rust.
Fast and stable for me. Give it a try and see if your characterization above still holds.
Somehow - - - - I've been hearing similar for about what - - - maybe about 4 or 5 years. You really think its true this time? (After watching maybe 20+ upgrades and its still the same mess for how it works - - - I'm more than a little skeptical!)
https://blog.rust-lang.org/2017/11/14/Fearless-Concurrency-In-Firefox- Quantum.html is a good write up on how rust is used in Firefox's newest release (57). It is a completely new CSS engine written in Rust that runs within the browser itself.
From my reading, rust enabled the FF devs to parallelize CSS rendering across CPU cores relatively easily with thread safety, meaning faster page rendering and fewer crashes or lock ups for you and me.
It also sounds like this is just the beginning of rust in Firefox, and I for one look forward to seeing other components of the browser running rust for the performance and stability it promises.
Somehow - - - with quite a few years of promises saying exactly what they are saying this time - - - I am not convinced that its any better than the last times
On Sun, Dec 10, 2017 at 6:15 PM, Jamon Camisso via talk <talk@gtalug.org> wrote: they said the same things. If you are convinced that it is total wonderful I would ask that you experiment on YOUR system. 1. You need to set up at least 10 windows in FF. 2. You need to find some kind of topics so that you have ranging from say 5 to 35 tabs open on EACH of those windows. 3. You will need to be using at least 20% of those tabs at least multiple times a day and 60% of them over 5 days. The tabs can be somewhat related in content but To compare to what I'm doing you need to be in at least 4 or 5 significantly different areas of though. Let me know how well things are going in about a week - - - I'm assuming that you will be doing speed tests using TestMy.net html5 speed tests at least 2 or 3 x per day so that any change can be observed. If your test shows that there is less than a 5% slowdown I will accept that the new version works as they are promising - - - any more than about 7% speed change or ANY need for killall - - - its the same stuff - - - all powder and fluff and precious little substance! Regards Dee

On 2017-12-10 09:50 PM, o1bigtenor via talk wrote:
1. You need to set up at least 10 windows in FF. 2. You need to find some kind of topics so that you have ranging from say 5 to 35 tabs open on EACH of those windows.
I'm feeling some déjà vu here: wasn't it suggested a few months ago that 50–350 pages open at the same time is way beyond what a general-purpose web browser might be expected to display? Each one of those pages can be executing arbitrary code of unknown size. Maybe I'm a web protozoan, but the findability of tabs drops massively when I've got more than a few in even a single window. FF57 is much cleaner than before, and is at least as fast as Chrome. You can quit FF, then have it restart with all your windows and tabs open. The clever part is, it'll only render that tab when it gets focus, so you could have hundreds of tabs open yet only a few loaded. So while I'm pretty sure it won't fit your needs of an entire Starbucks-load of pages in the one browser, it might get a little closer than FF <57. Stewart

On Sun, Dec 10, 2017 at 11:29 PM, Stewart C. Russell via talk < talk@gtalug.org> wrote:
On 2017-12-10 09:50 PM, o1bigtenor via talk wrote:
1. You need to set up at least 10 windows in FF. 2. You need to find some kind of topics so that you have ranging from say 5 to 35 tabs open on EACH of those windows.
I'm feeling some déjà vu here: wasn't it suggested a few months ago that 50–350 pages open at the same time is way beyond what a general-purpose web browser might be expected to display? Each one of those pages can be executing arbitrary code of unknown size. Maybe I'm a web protozoan, but the findability of tabs drops massively when I've got more than a few in even a single window.
OK - - - I'll bite. I've tried vivaldi, min, chromium (that's chrome on linux), opera and ff. They all crap out. FF fails perhaps the best - - - it just gets slow. Opera just dies with no warnings at all! I don't like getting tracked ALL the time so chromium or variants are out. Is there a heavy-duty web browser? If there is - - - I can't find it! I have filed a number of requests at ff but its impossible to connect with a 'real' developer so I stopped - - - total waste of time filing any kind of reports there. So I have tried to do the right thing but the development team doesn't seem to connect with the outside world so all that's left is to complain about garbage development! Regards Dee

On 11 December 2017 at 07:20, o1bigtenor via talk <talk@gtalug.org> wrote:
I've tried vivaldi, min, chromium (that's chrome on linux), opera and ff. They all crap out. FF fails perhaps the best - - - it just gets slow. Opera just dies with no warnings at all! I don't like getting tracked ALL the time so chromium or variants are out.
FF57 is pretty awesome. Rust will help it become even better. If all you want to do is rant that all browsers crap out under certain loads, can we say, "so stipulated" and move on? There's also Brave https://brave.com (with Brendan Eich behind it) which might meet your needs better. ../Dave

On 11 December 2017 at 07:20, o1bigtenor via talk <talk@gtalug.org> wrote:
I've tried vivaldi, min, chromium (that's chrome on linux), opera and ff. They all crap out. FF fails perhaps the best - - - it just gets slow. Opera just dies with no warnings at all! I don't like getting tracked ALL the time so chromium or variants are out.
FF57 is pretty awesome. Rust will help it become even better.
If all you want to do is rant that all browsers crap out under certain loads, can we say, "so stipulated" and move on?
There's also Brave https://brave.com (with Brendan Eich behind it) which might meet your needs better.
I sure don't mind so stipulating but I do find it quite interesting that
On Mon, Dec 11, 2017 at 9:13 AM, David Mason via talk <talk@gtalug.org> wrote: there are more than a few who are also quite frustrated by the present 'state of the art', if it could be called even that, of browserdom. By the way - - - you don't HAVE to read the posts if you're not interested in what's being expressed. Regards Dee

On 12/11/2017 12:29 AM, Stewart C. Russell via talk wrote:
1. You need to set up at least 10 windows in FF. 2. You need to find some kind of topics so that you have ranging from say 5 to 35 tabs open on EACH of those windows. I'm feeling some déjà vu here: wasn't it suggested a few months ago that 50–350 pages open at the same time is way beyond what a general-purpose web browser might be expected to display? Each one of those pages can be executing arbitrary code of unknown size. Maybe I'm a web protozoan, but
On 2017-12-10 09:50 PM, o1bigtenor via talk wrote: the findability of tabs drops massively when I've got more than a few in even a single window.
FF57 is much cleaner than before, and is at least as fast as Chrome. You can quit FF, then have it restart with all your windows and tabs open. The clever part is, it'll only render that tab when it gets focus, so you could have hundreds of tabs open yet only a few loaded. So while I'm pretty sure it won't fit your needs of an entire Starbucks-load of pages in the one browser, it might get a little closer than FF <57.
The trouble is that more and more services, systems and applications are using HTML as the interface. So you will find yourself with pages(tabs) open in your browser instead of applications open on your desktop. Typically I run 20 tabs to keep applications I frequently use open and add on to that things I am working on ... now you have lots of little tabs. What I find as a bit nuance is when something crashes your browser it takes down all your open pages and your getting as much or as little as the restore on start up gives you. It would be nice to have the ability to run multiple browsers that are independent of each other on the same desktop as the same user but Chrome and Firefox keep their context on a per user basis. I am sure there is some way to get around this but I have not yet been sufficiently aggravated to figure out the magical incantation. -- Alvin Starr || land: (905)513-7688 Netvel Inc. || Cell: (416)806-0133 alvin@netvel.net ||

On Mon, Dec 11, 2017 at 7:32 AM, Alvin Starr via talk <talk@gtalug.org> wrote:
On 12/11/2017 12:29 AM, Stewart C. Russell via talk wrote:
On 2017-12-10 09:50 PM, o1bigtenor via talk wrote:
1. You need to set up at least 10 windows in FF. 2. You need to find some kind of topics so that you have ranging from say 5 to 35 tabs open on EACH of those windows.
I'm feeling some déjà vu here: wasn't it suggested a few months ago that 50–350 pages open at the same time is way beyond what a general-purpose web browser might be expected to display? Each one of those pages can be executing arbitrary code of unknown size. Maybe I'm a web protozoan, but the findability of tabs drops massively when I've got more than a few in even a single window.
FF57 is much cleaner than before, and is at least as fast as Chrome. You can quit FF, then have it restart with all your windows and tabs open. The clever part is, it'll only render that tab when it gets focus, so you could have hundreds of tabs open yet only a few loaded. So while I'm pretty sure it won't fit your needs of an entire Starbucks-load of pages in the one browser, it might get a little closer than FF <57.
The trouble is that more and more services, systems and applications are using HTML as the interface. So you will find yourself with pages(tabs) open in your browser instead of applications open on your desktop. Typically I run 20 tabs to keep applications I frequently use open and add on to that things I am working on ... now you have lots of little tabs.
What I find as a bit nuance is when something crashes your browser it takes down all your open pages and your getting as much or as little as the restore on start up gives you.
It would be nice to have the ability to run multiple browsers that are independent of each other on the same desktop as the same user but Chrome and Firefox keep their context on a per user basis.
I am sure there is some way to get around this but I have not yet been sufficiently aggravated to figure out the magical incantation.
It sounds like I'm not the only one who has issues with browsers - - - thank you! Perhaps it is time that browsers were split into parts that do separate things, and things that could be managed by the USERS of those browsers rather than by the advertising (I'll use the word people although I would much rather not include them as such) people that think they do own my desktop. If the browser coders were actually listening to their users this would have already been happening! Thanking you for your input! Dee

On Tue, Dec 12, 2017 at 8:22 AM, o1bigtenor via talk <talk@gtalug.org> wrote:
On Mon, Dec 11, 2017 at 7:32 AM, Alvin Starr via talk <talk@gtalug.org> wrote:
On 12/11/2017 12:29 AM, Stewart C. Russell via talk wrote:
On 2017-12-10 09:50 PM, o1bigtenor via talk wrote:
1. You need to set up at least 10 windows in FF. 2. You need to find some kind of topics so that you have ranging from say 5 to 35 tabs open on EACH of those windows.
I'm feeling some déjà vu here: wasn't it suggested a few months ago that 50–350 pages open at the same time is way beyond what a general-purpose web browser might be expected to display? Each one of those pages can be executing arbitrary code of unknown size. Maybe I'm a web protozoan, but the findability of tabs drops massively when I've got more than a few in even a single window.
FF57 is much cleaner than before, and is at least as fast as Chrome. You can quit FF, then have it restart with all your windows and tabs open. The clever part is, it'll only render that tab when it gets focus, so you could have hundreds of tabs open yet only a few loaded. So while I'm pretty sure it won't fit your needs of an entire Starbucks-load of pages in the one browser, it might get a little closer than FF <57.
The trouble is that more and more services, systems and applications are using HTML as the interface. So you will find yourself with pages(tabs) open in your browser instead of applications open on your desktop. Typically I run 20 tabs to keep applications I frequently use open and add on to that things I am working on ... now you have lots of little tabs.
What I find as a bit nuance is when something crashes your browser it takes down all your open pages and your getting as much or as little as the restore on start up gives you.
It would be nice to have the ability to run multiple browsers that are independent of each other on the same desktop as the same user but Chrome and Firefox keep their context on a per user basis.
I am sure there is some way to get around this but I have not yet been sufficiently aggravated to figure out the magical incantation.
It sounds like I'm not the only one who has issues with browsers - - - thank you!
Perhaps it is time that browsers were split into parts that do separate things, and things that could be managed by the USERS of those browsers rather than by the advertising (I'll use the word people although I would much rather not include them as such) people that think they do own my desktop.
If the browser coders were actually listening to their users this would have already been happening!
Most people do not have hundreds of tabs open. If I were leading the team developing Firefox, I would only investigate that issue to determine if it's a symptom of some bug that doesn't manifest itself unless the system is stressed like that or merely a resource exhaustion issue. If it's the latter, I would make it a low priority and concentrate on the higher priority issues. If I were inclined to investigate this issue, I'd want to know lots of details about the hardware environment in which the browser is running, the sites that are open, which extensions are installed, and I would not even bother listening to a user who hasn't cleared their cache completely and tried running with no extensions. There are simply too many variables there to point the finger at the browser implementation before looking at more likely scenarios. For instance, you have not mentioned how much RAM you have. I also tend to have many tabs open and I have 16GB of RAM on my desktop machine. I'll notice that Chrome will often chew up the majority of that RAM and the machine will start swapping. When that happens, things will slow to a crawl and I'll just restart the entire machine just to clean things up. I don't blame the browser for that. If you're like most people, you're unlikely to have more than 16GB of RAM on your machine and in fact, you're likely to have less. Just because you can open hundreds of tabs doesn't mean that it's a good idea to do so. Having said that, Stewart (I think) has already explained that Firefox 57 and later has lower resource utilization for inactive tabs. That seems like a win. As for why more services, systems, and applications are using HTML as the interface, I can answer that. Cost. I've been working on a healthcare application that was implemented using a proprietary language that can only be deployed on Windows or macOS desktops. That precludes an entire category of devices that people use, like tablets. If we do not provide a means for our customers to be able to use tablets where appropriate, we will eventually have no customers. When we analyzed this situation, it made no sense to have three different codebases, one for desktops, one for iOS and one for Android, so we settled on HTML5, AngularJS, and Node.js as the platform to serve all those deployment scenarios. While we are migrating this hugely complex application to a modern web application, we cannot just tell our customers, "We won't be upgrading the existing application for the next few years until we've finished migrating to the web application." so we embedded the Chromium browser via the Chromium Embedded Framework into the legacy application. Essentially, within a window of the legacy application, we have a web browser that renders the web application. We are migrating the legacy application to a web application piecemeal and eventually, the web application will "break out" of the constraints of that window. That is just a first step. Once we've completely eliminated the dependency on the legacy application, we can then iteratively improve the web application by creating a native application for tablets, hence my interest in Flutter that I've been talking about. In this particular application, like most vertical market applications, squeezing out the last 25% of performance simply isn't that important. It's much more important to our customers that their staff can continue to use the application they've been using for over 20 years with as little re-training as possible, which means that in many respects, our modern web application is imitating the look, feel, and behaviour of a legacy application that looks like it was modern when Windows 95 was released. We can do that thanks to the power of CSS and we can make evolutionary rather than revolutionary changes to the application. By the way, browsers are already modular. They may not be modular in the way that you care about but there are definitely distinct components in all modern browsers. One of the reasons why browsers are as resource-intensive as they are is that they have to be very forgiving of ambiguous or bad markup. Part of that is due to the ambiguities of the specifications. Part of it is due to the implementations of those specifications by browsers. Most of it is due to the fact that there are multiple ways to express the same layout, some more efficient than others, and most people will not pay for the level of expertise that it requires to understand the intricacies of browser internals. They just want pretty sites for cheap. Regards, Clifford Ilkay +1 647-778-8696

On Tue, Dec 12, 2017 at 6:31 PM, Clifford Ilkay via talk <talk@gtalug.org> wrote:
On Tue, Dec 12, 2017 at 8:22 AM, o1bigtenor via talk <talk@gtalug.org> wrote:
On Mon, Dec 11, 2017 at 7:32 AM, Alvin Starr via talk <talk@gtalug.org> wrote:
On 12/11/2017 12:29 AM, Stewart C. Russell via talk wrote:
On 2017-12-10 09:50 PM, o1bigtenor via talk wrote:
1. You need to set up at least 10 windows in FF. 2. You need to find some kind of topics so that you have ranging from say 5 to 35 tabs open on EACH of those windows.
I'm feeling some déjà vu here: wasn't it suggested a few months ago that 50–350 pages open at the same time is way beyond what a general-purpose web browser might be expected to display? Each one of those pages can be executing arbitrary code of unknown size. Maybe I'm a web protozoan, but the findability of tabs drops massively when I've got more than a few in even a single window.
FF57 is much cleaner than before, and is at least as fast as Chrome. You can quit FF, then have it restart with all your windows and tabs open. The clever part is, it'll only render that tab when it gets focus, so you could have hundreds of tabs open yet only a few loaded. So while I'm pretty sure it won't fit your needs of an entire Starbucks-load of pages in the one browser, it might get a little closer than FF <57.
The trouble is that more and more services, systems and applications are using HTML as the interface. So you will find yourself with pages(tabs) open in your browser instead of applications open on your desktop. Typically I run 20 tabs to keep applications I frequently use open and add on to that things I am working on ... now you have lots of little tabs.
What I find as a bit nuance is when something crashes your browser it takes down all your open pages and your getting as much or as little as the restore on start up gives you.
It would be nice to have the ability to run multiple browsers that are independent of each other on the same desktop as the same user but Chrome and Firefox keep their context on a per user basis.
I am sure there is some way to get around this but I have not yet been sufficiently aggravated to figure out the magical incantation.
It sounds like I'm not the only one who has issues with browsers - - - thank you!
Perhaps it is time that browsers were split into parts that do separate things, and things that could be managed by the USERS of those browsers rather than by the advertising (I'll use the word people although I would much rather not include them as such) people that think they do own my desktop.
If the browser coders were actually listening to their users this would have already been happening!
Most people do not have hundreds of tabs open. If I were leading the team developing Firefox, I would only investigate that issue to determine if it's a symptom of some bug that doesn't manifest itself unless the system is stressed like that or merely a resource exhaustion issue. If it's the latter, I would make it a low priority and concentrate on the higher priority issues. If I were inclined to investigate this issue, I'd want to know lots of details about the hardware environment in which the browser is running, the sites that are open, which extensions are installed, and I would not even bother listening to a user who hasn't cleared their cache completely and tried running with no extensions. There are simply too many variables there to point the finger at the browser implementation before looking at more likely scenarios. For instance, you have not mentioned how much RAM you have. I also tend to have many tabs open and I have 16GB of RAM on my desktop machine. I'll notice that Chrome will often chew up the majority of that RAM and the machine will start swapping. When that happens, things will slow to a crawl and I'll just restart the entire machine just to clean things up. I don't blame the browser for that. If you're like most people, you're unlikely to have more than 16GB of RAM on your machine and in fact, you're likely to have less. Just because you can open hundreds of tabs doesn't mean that it's a good idea to do so.
OK - - - you think 16 GB of ram is lots. Sorry - - - there's quite a bit more in this box. I have the hardware to run any kind of serious software. That's why I'm peeved at wimpy software. One thing I find fascinating is that the issues that I've tried to communicate to the dev team are usually ignored or pooh poohed, like here. When you stress software the cracks start to show. What I would like to communicate, but am failing, is that what I'm trying to do should be possible - - - that it isn't indicates a need for changes in the software. But of course - - - what do I know about programming? (Not much - - - but I can show you what works and what DOESN'T work for me!) Dee

On Tue, Dec 12, 2017 at 10:51 PM, o1bigtenor <o1bigtenor@gmail.com> wrote:
OK - - - you think 16 GB of ram is lots.
I didn't say it was "lots". I said that is what I have and the majority of people have that or less. My motherboard doesn't support any more RAM or I'd put more in.
Sorry - - - there's quite a bit more in this box.
"Quite a bit more" doesn't communicate anything useful.
I have the hardware to run any kind of serious software.
What is "serious software"? As opposed to what?
That's why I'm peeved at wimpy software.
"Wimpy software"... not helpful in diagnosing and flags you as a potential crank.
One thing I find fascinating is that the issues that I've tried to communicate to the dev team are usually ignored or pooh poohed, like here.
If you have been communicating with the dev team the way you've been communicating here, I'm not surprised. Answering the following questions might help the dev team resolve the problem. Which sites are you on? Exactly how many tabs did you have open? What did RAM, CPU, and disk utilization look like before the crash? Have you cleared your cache? Which extensions are you running? Have you run with extensions disabled? What were you doing when the crash happened? Are the crashes predictable or repeatable? Which version of the software, operating system, kernel are you running? Which desktop manager are you running? Are you running any widgets on said desktop manager? (I had Cinnamon freezing at random intervals due to a buggy widget.) Which video card and which driver? Then we have the motherboard, RAM, chipset, CPU. That would be just to start. You might have to instrument the software to see what the browser was doing when it crashed and provide logs. It will be time-consuming for you and for the developers and they still may not be able to replicate the problem or fix it if they identify the problem. Here is what will not resolve the problem. You expressing your opinions on the quality of the software, complaining about how this browser should be some way other than the way it is, ranting about how the web should be this, not that, and communicating in a way that is guaranteed to have you ignored. I'm not say be "nice" in order to get something you want. That would be manipulative and people have a sixth sense about sniffing out that inauthenticity and act accordingly. I'm saying consider that there is a human being on the other side of the conversation who has their own concerns, motivations, and challenges, just like you. A little kindness goes a long way. Most software developers take pride in their work and they love it when they can solve gnarly problems. They are not your adversaries and if they are treated as if they were, they will likely not make much effort in helping you. They have no obligation to help you specifically. You're not paying them or their employer and some of them might even be contributors who aren't being paid at all.
When you stress software the cracks start to show. What I would like to communicate, but am failing, is that what I'm trying to do should be possible - - - that it isn't indicates a need for changes in the software.
It could also indicate a need for changes in attitude of the person using the software. Not many people are inclined to help when you're essentially trashing their work and have a big chip on your shoulder. Your posts suggest that you seem to be more committed to doing the digital equivalent of shaking your fist at the kids while yelling, "Get off my lawn!" than actually finding a solution. Regards, Clifford Ilkay +1 647-778-8696

On Tue, Dec 12, 2017 at 11:41 PM, Clifford Ilkay via talk <talk@gtalug.org> wrote:
On Tue, Dec 12, 2017 at 10:51 PM, o1bigtenor <o1bigtenor@gmail.com> wrote:
OK - - - you think 16 GB of ram is lots.
I didn't say it was "lots". I said that is what I have and the majority of people have that or less. My motherboard doesn't support any more RAM or I'd put more in.
"If you're like most people, you're unlikely to have more than 16GB of RAM on your machine and in fact, you're likely to have less." You made an assumption, you were wrong and you were/are using that assumption to denigrate my service request to the software dev team.
Sorry - - - there's quite a bit more in this box.
"Quite a bit more" doesn't communicate anything useful.
I have the hardware to run any kind of serious software.
What is "serious software"? As opposed to what?
That's why I'm peeved at wimpy software.
"Wimpy software"... not helpful in diagnosing and flags you as a potential crank.
OK - - -to you I'm sounding like a crank. To me you're sounding like a junkyard pitbull.
One thing I find fascinating is that the issues that I've tried to communicate to the dev team are usually ignored or pooh poohed, like here.
If you have been communicating with the dev team the way you've been communicating here, I'm not surprised.
Answering the following questions might help the dev team resolve the problem.
You bet - - - I can ALWAYS exactly replicate a problem. Sorry - - when I looking at a website and I click on a link that opens a new tab and then everything disappears (ie my browser just died spectacularly) its sort of difficult to determine EXACTLY what was the cause. Was it the link, was it the sending site, was it some other active tab that chose then reload, or was it something else? Somehow I'm supposed to KNOW which of those it was to satisfy YOUR need as a developer. Yes I'm cranky about browser software - - - you bet. Why? Because I've never once even gotten a request like your mountain of information. And as the problem continues even though ever version that I can remember since some time in the low 30's has promised less memory leakage - - - guess what? I'm finding it quite hard to believe their present assertion
Which sites are you on? Exactly how many tabs did you have open? What did RAM, CPU, and disk utilization look like before the crash? Have you cleared your cache? Which extensions are you running? Have you run with extensions disabled? What were you doing when the crash happened? Are the crashes predictable or repeatable? Which version of the software, operating system, kernel are you running? Which desktop manager are you running? Are you running any widgets on said desktop manager? (I had Cinnamon freezing at random intervals due to a buggy widget.) Which video card and which driver? Then we have the motherboard, RAM, chipset, CPU. That would be just to start. You might have to instrument the software to see what the browser was doing when it crashed and provide logs. It will be time-consuming for you and for the developers and they still may not be able to replicate the problem or fix it if they identify the problem.
Here is what will not resolve the problem. You expressing your opinions on the quality of the software, complaining about how this browser should be some way other than the way it is, ranting about how the web should be this, not that, and communicating in a way that is guaranteed to have you ignored. I'm not say be "nice" in order to get something you want. That would be manipulative and people have a sixth sense about sniffing out that inauthenticity and act accordingly.
I'm saying consider that there is a human being on the other side of the conversation who has their own concerns, motivations, and challenges, just like you. A little kindness goes a long way. Most software developers take pride in their work and they love it when they can solve gnarly problems. They are not your adversaries and if they are treated as if they were, they will likely not make much effort in helping you. They have no obligation to help you specifically. You're not paying them or their employer and some of them might even be contributors who aren't being paid at all.
When you stress software the cracks start to show. What I would like to communicate, but am failing, is that what I'm trying to do should be possible - - - that it isn't indicates a need for changes in the software.
It could also indicate a need for changes in attitude of the person using the software. Not many people are inclined to help when you're essentially trashing their work and have a big chip on your shoulder. Your posts suggest that you seem to be more committed to doing the digital equivalent of shaking your fist at the kids while yelling, "Get off my lawn!" than actually finding a solution.
If your work doesn't cut it - - - deal with it. In my work - - - ANY errors - - - either 1. I fix, 2. I can't fix - - - - I'm fired (terminated, gone, history) and I'm looking for another job. (And EVERYTHING gets checked!) I guess programmers don't have to work within those kind of parameters. Regards Dee

On Wed, Dec 13, 2017 at 8:09 AM, o1bigtenor <o1bigtenor@gmail.com> wrote: [snipped long rant]
In my work - - - ANY errors - - - either 1. I fix, 2. I can't fix - - - - I'm fired (terminated, gone, history) and I'm looking for another job.
"Employees will be punished until morale improves! The next person who makes a mistake will be drawn and quartered because clearly, the threat of firing isn't sufficient!"
(And EVERYTHING gets checked!)
I guess programmers don't have to work within those kind of parameters.
No, most don't because you can have any two of fast, cheap, or high-quality, maybe, but you certainly cannot have all three. Software for critical systems, like nuclear power plants, airplanes, and medical devices is very expensive and slow-to-change precisely because of that. Browsers iterate quickly and have bugs because quite simply, the consequences for the browser crashing aren't that high. A browser is not a critical system and it's priced accordingly. If every software developer who wrote software with bugs or couldn't fix a bug were fired, there would be no software developers left. Humans have been building physical things for millennia so there is a large body of knowledge of best practices. Yet, we still have structural failures in buildings, for example. Software development has only existed for but a blip in human history so we're still sorting out what works and what doesn't. This is not an exact science. With all the layers of complexity, it's a minor miracle that it all works as well as it does. Regards, Clifford Ilkay +1 647-778-8696

On 12/13/2017 12:41 AM, Clifford Ilkay via talk wrote:
On Tue, Dec 12, 2017 at 10:51 PM, o1bigtenor <o1bigtenor@gmail.com <mailto:o1bigtenor@gmail.com>> wrote:
OK - - - you think 16 GB of ram is lots.
I didn't say it was "lots". I said that is what I have and the majority of people have that or less. My motherboard doesn't support any more RAM or I'd put more in.
Sorry - - - there's quite a bit more in this box.
"Quite a bit more" doesn't communicate anything useful.
I have the hardware to run any kind of serious software.
What is "serious software"? As opposed to what?
That's why I'm peeved at wimpy software.
"Wimpy software"... not helpful in diagnosing and flags you as a potential crank.
One thing I find fascinating is that the issues that I've tried to communicate to the dev team are usually ignored or pooh poohed, like here.
If you have been communicating with the dev team the way you've been communicating here, I'm not surprised.
Answering the following questions might help the dev team resolve the problem.
Which sites are you on? Exactly how many tabs did you have open? What did RAM, CPU, and disk utilization look like before the crash? Have you cleared your cache? Which extensions are you running? Have you run with extensions disabled? What were you doing when the crash happened? Are the crashes predictable or repeatable? Which version of the software, operating system, kernel are you running? Which desktop manager are you running? Are you running any widgets on said desktop manager? (I had Cinnamon freezing at random intervals due to a buggy widget.) Which video card and which driver? Then we have the motherboard, RAM, chipset, CPU. That would be just to start. You might have to instrument the software to see what the browser was doing when it crashed and provide logs. It will be time-consuming for you and for the developers and they still may not be able to replicate the problem or fix it if they identify the problem.
Here is what will not resolve the problem. You expressing your opinions on the quality of the software, complaining about how this browser should be some way other than the way it is, ranting about how the web should be this, not that, and communicating in a way that is guaranteed to have you ignored. I'm not say be "nice" in order to get something you want. That would be manipulative and people have a sixth sense about sniffing out that inauthenticity and act accordingly.
I'm saying consider that there is a human being on the other side of the conversation who has their own concerns, motivations, and challenges, just like you. A little kindness goes a long way. Most software developers take pride in their work and they love it when they can solve gnarly problems. They are not your adversaries and if they are treated as if they were, they will likely not make much effort in helping you. They have no obligation to help you specifically. You're not paying them or their employer and some of them might even be contributors who aren't being paid at all.
When you stress software the cracks start to show. What I would like to communicate, but am failing, is that what I'm trying to do should be possible - - - that it isn't indicates a need for changes in the software.
It could also indicate a need for changes in attitude of the person using the software. Not many people are inclined to help when you're essentially trashing their work and have a big chip on your shoulder. Your posts suggest that you seem to be more committed to doing the digital equivalent of shaking your fist at the kids while yelling, "Get off my lawn!" than actually finding a solution.
Browsers are one piece of software that we all love to hate. A thing to remember is that Firefox got its start around 1994 as Netscape then through several forks. Software is kind of like a sweater Its nice and fits well when its new but after a number of years it gets holes, places where the yarn is unraveling and no amount of fixing will make it look or fit like new. Newer browsers have the advantage that they have a well defined spec from the existing browsers and no need to live with legacy code but given time the new browsers will suffer the same fate of changing requirements and the effects of maintenance. Having some 30 year old code out there that I still get maintenance request on I can feel the pain of the Firefox developers. -- Alvin Starr || land: (905)513-7688 Netvel Inc. || Cell: (416)806-0133 alvin@netvel.net ||

Please see my comments below. With apologies for wordiness ... Steve
----- Original Message ----- From: o1bigtenor via talk To: Alvin Starr ; GTALUG Talk Sent: Tuesday, December 12, 2017 8:22 AM Subject: Re: [GTALUG] Programming languages (in comparison?) - -was Learn Swift for Apple/iOS. Learn ??? for Google/Android.
On Mon, Dec 11, 2017 at 7:32 AM, Alvin Starr via talk <talk@gtalug.org> wrote:
On 12/11/2017 12:29 AM, Stewart C. Russell via talk wrote:
On 2017-12-10 09:50 PM, o1bigtenor via talk wrote:
<snip>
FF57 is much cleaner than before, and is at least as fast as Chrome. You can quit FF, then have it restart with all your windows and tabs open. The clever part is, it'll only render that tab when it gets focus, so you could have hundreds of tabs open yet only a few loaded. So while I'm pretty sure it won't fit your needs of an entire Starbucks-load of pages in the one browser, it might get a little closer than FF <57.
The trouble is that more and more services, systems and applications are using HTML as the interface. So you will find yourself with pages(tabs) open in your browser instead of applications open on your desktop.
<snip>
It sounds like I'm not the only one who has issues with browsers - - - thank you!
Perhaps it is time that browsers were split into parts that do separate things, and things that could be managed by the USERS of those browsers rather than by the advertising (I'll use the word people although I would much rather not include them as such) people that think they do own my desktop.
If the browser coders were actually listening to their users this would have already been happening!
It seems to me that there's a clue in the above proposal by Dee, quoted here:: "Perhaps it is time that browsers were split into parts that do separate things, and things that could be managed by the USERS of those browsers rather than by the advertising". Dee complains when current browser technology is unable to cope gracefully with his huge web page workload. I also suffer a browser resource contraint problem, but mine is due to my outdated PC and Internet hookup. 1. use an extremely amcient operating system (Win XP SP3 until I get moved to a new PC with debian Linux.), and 2. the low bandwidth of my current Internet connection (approx. 46 Kbps over landline telephone dial-up modem). My survivalist approach to using current browsers (FF and Comodo Dragon) is to start the desired page (or maybe two or three pages, max.) loading, and then I turn my attention to some other task, checking occasionally to see if the page(s) has(ve) finished loading the vast quantities of: useless eye-candy "rich" content, unwanted adware, great gobs of JavaScript crud, a zillion videos I don't care to see, etc., etc. * * * * * * It seems to me that the clue in Dee's pronouncement that I quoted, is to take back control of the page load / display experience from the PROVIDER of the page (often an arrogant rich titanic-scale oligarchic zillionaire e.g amazon, google) , and give that control back to the CONSUMER of the page. To my way of thinking, regaining browsing control and freedom, begins with getting rid of the idea that the web browser is a monolithic opaque black box that LOADS AND RENDERS A COMPLETE WEB PAGE AT A TIME. Currently, the browser user is faced with an all-or-nothing choice. Either start a page loading and wait until the browser has finished loading the entire page, or don't try to view that page at all. I know that browsers do begin to render and display a page in parts, before it has all been loaded and rendered internally by the browser. But the designer of the browser controls the order of this progressive rendering. And the order doesn't usually seem very helpful to me. * * * * * * If we take Dee's idea: "it is time that browsers were split into parts that do separate things, and things that could be managed by the USERS" as a guiding principle, what can a browser developer do, to give more control and power back to the user of the browser, and prevent the provider of th page from dominating the page view esperience ?? WHAT I WOULD LIKE, IS TO BE ABLE TO CONTROL THE WEB BROWSER AT THE LEVEL OF INDIVIDUAL ELEMENTS OF HTML ITSELF. I WOULD LIKE THE BROWSER START A PAGE LOAD, BY PRESENTING TO ME, A COMPACT AND EASILY-NAVIGABLE TREE-STRUCTURED LARGELY TEXTUAL REPRESENTATION OF THE WEB PAGE'S HTML STRUCTURE. Then, I can scroll around to inspect all that nicely formatted and coloured HTML textual rep, pick the parts of the page that I think would be worthwhile actually loading and rendering, and set the browser loading only my chosen few page parts. And I can ask for thumbprints of graphic elemesnts that might seem interesting to me, And I can see still shots from a huge video / movie, without loading/ playing the whole thing. And I can hear sample audio clips. An even more advanced p'n'c browser, could synthesize "subversive" versions of the original web page, guided by the browser user, The "subversive": page would load the valuable nuggets, and leave behind untouched all the useless intrusive BS that the tech titans like to think is twisting our souls into consumerist puppets. A "subversive" p'n'c-generated web page, would be like the grumpy nasty bitchy smelly customer with the bulging shopping buggy, who barges up to the counter of the fast food outlet, and demands an X-large Diet Coke WITH NO ICE. In other words, I will take the good stuff ONLY, and leave all the BS to the next (and more conformist / compliant / wimpsterist) customer. * * * * * * No doubt, the "dream" of a navigable tree-structured pick'n'choose (p'n'c) list rep of an HTML page would be complicated to implement. And it would need to provide plernty of of hints and help so naive users would be able to understand the HTML in simplistic terms. Some regexp-driven highlighting could help the user in their pick'n'choose navigation, too. And the p'n'c browser would come pre-loaded with regexps that isolate and exclude lots of recognizeable adware / snoopware crap and junk. Google and Amazon, etc. will ABSOLUTELY LOATHE the p'n'c browser and that will be a VERY GOOD THING :) * * * * * * There are text-mode web browsers out there that actually have no GUI, they work at a command line prompt. But I decided I couldn't use them because: either they offer no Win XP-compatible version, or they are not up to date with current HTML technology. But no doubt, most of the basic building blocks of a p'n'c browser are already available in open source libraries. So, the task of building the p'n'c browser would be more of an integration challenge than a greenfield coding challenge. An interesting axample of the kind of technololgy that could be harnessed in a p'n'c browser, crossed my eyes today: === Headless Chrome and the Puppeteer Library for Scraping and Testing the Web Wednesday 29 November http://www.i-programmer.info/news/87/11344.html With the advent of Single Page Applications, scraping pages for information as well as running automated user interaction tests has become much harder due to its highly dynamic nature. The solution? Headless Chrome and the Puppeteer library. ... There's just one caveat. Since CDP only works with Chromium, Chrome and other Blink-based browsers, so does Puppeteer. If you require more than that, then sticking to Selenium and its WebDriver API still remains the best option.. === The Selenium WebDriver API might be a useful code base to be considered, in the design of the p'n'c "subversive incremental load" browser ... My 2 cents worth.
Thanking you for your input!
Dee
--- Talk Mailing List talk@gtalug.org https://gtalug.org/mailman/listinfo/talk

Steve Petrie, P.Eng. via talk wrote:
Headless Chrome and the Puppeteer Library for Scraping and Testing the Web Wednesday 29 November http://www.i-programmer.info/news/87/11344.html
With the advent of Single Page Applications, scraping pages for information as well as running automated user interaction tests has become much harder due to its highly dynamic nature. The solution? Headless Chrome and the Puppeteer library. ... There's just one caveat. Since CDP only works with Chromium, Chrome and other Blink-based browsers, so does Puppeteer. If you require more than that, then sticking to Selenium and its WebDriver API still remains the best option.. ===
The Selenium WebDriver API might be a useful code base to be considered, in the design of the p'n'c "subversive incremental load" browser ...
My 2 cents worth.
Thought this was a interesting idea so I prototyped it in Jupyter: <https://github.com/myles/notebooks/blob/master/Random/2017-12-15-better-web-browser/notebook.ipynb> My 2 cents worth of programming :-).

On 2017-12-15 11:46 AM, Myles Braithwaite 👾 via talk wrote:
Steve Petrie, P.Eng. via talk wrote:
Headless Chrome and the Puppeteer Library for Scraping and Testing the Web Wednesday 29 November http://www.i-programmer.info/news/87/11344.html
Thought this was a interesting idea so I prototyped it in Jupyter:
<https://github.com/myles/notebooks/blob/master/Random/2017-12-15-better-web-browser/notebook.ipynb>
My 2 cents worth of programming :-).
I haven't read the article yet, but I always see people resorting to selenium, when other tools seem like they might have less overhead. Is there any mention of phantomjs? http://phantomjs.org/ Cheers, Jamon

Jamon Camisso via talk wrote:
I haven't read the article yet, but I always see people resorting to selenium, when other tools seem like they might have less overhead. Is there any mention of phantomjs? http://phantomjs.org/
I've used it a couple of times, generating PDFs from a web page in PHP and using it like I would Selenium in Node. I've never really thought of using it with Python but I just found this SO answer that says you can use it as a WebDriver in Selenium: <https://stackoverflow.com/questions/13287490/is-there-a-way-to-use-phantomjs-in-python>. So I'm definitely going to start using it. Thanks for helping me see stuff from a different angle.

Brief comments below. Steve ----- Original Message ----- From: Myles Braithwaite 👾 via talk To: GTALUG Talk Sent: Friday, December 15, 2017 12:09 PM Subject: Re: [GTALUG] [browser bitching] Re: Programming languages (in comparison?) - -was Learn Swift for Apple/iOS. Learn ??? for Google/Android. Jamon Camisso via talk wrote:
I haven't read the article yet, but I always see people resorting to selenium, when other tools seem like they might have less overhead. Is there any mention of phantomjs? http://phantomjs.org/
I've used it a couple of times, generating PDFs from a web page in PHP and using it like I would Selenium in Node. I've never really thought of using it with Python but I just found this SO answer that says you can use it as a WebDriver in Selenium: <https://stackoverflow.com/questions/13287490/is-there-a-way-to-use-phantomjs-in-python>. So I'm definitely going to start using it.
Thanks for helping me see stuff from a different angle.
PhantomJS looks quite potent. Seems a little ironic, that the predecessor discussion thread was badmouthing javascript, when it turns out that JS seems to offer (unsurprisingly, I guess) lots of rich functionality of potential use in a pnc empower browser. I expect that a production version of a pnc browser would be delivered as an installable binary (not as e.g. python source code). So long as all the JS programming used is built in to the pnc browser's binary installation package, this would e,iminate the foolishmess of repeatedly fetching the JS (used directly by pnc) dynamically via the Internet.

On 2017-12-16 07:01 PM, Steve Petrie, P.Eng. via talk wrote:
So long as all the JS programming used is built in to the pnc browser's binary installation package, this would eliminate the foolishness of repeatedly fetching the JS (used directly by pnc) dynamically via the Internet.
This might be a little too much to hope for, as websites may wish to pull in their particular copy of a library to render their content. For example, my browser cache contains five slightly different copies of the JQuery library. As it's arbitrary code, you won't be able to tell if your package's JS will do the same job as the site supplied one. An interesting concept overall, but expecting browser authors to bend to the will of the small number of dialup users is somewhat unlikely. Even mobile-optimized sites are a bit sniffy about 3G speeds these days. If you want a tiny browser that will only read what it understands, try netsurf. From memory, it has a slightly unusual but not difficult installation process — it's original from RISC OS, and assumes its idiosyncrasies (cooperative multitasking, quite unique path handling). netsurf has a very simple css handler that I've found to primarily useful for debugging CSS that other browsers apply heuristics to work around. I found an ancient CSS error that shipped with phpBB for years until a netsurf user flagged that [code] sections weren't rendered. cheers, Stewart

Proposed New Subject Line For This Topic: pnc empower browser; pnc == pick-and-choose; empower == empower the user to control what part(s) of the web page will be rendered / actioned; * * * Please see my comments below on Myles's python prototype. Steve ----- Original Message ----- From: Myles Braithwaite 👾 To: GTALUG Talk Cc: Steve Petrie, P.Eng. Sent: Friday, December 15, 2017 11:46 AM Subject: Re: [GTALUG] [browser bitching] Re: Programming languages (in comparison?) - -was Learn Swift for Apple/iOS. Learn ??? for Google/Android. Steve Petrie, P.Eng. via talk wrote:
Headless Chrome and the Puppeteer Library for Scraping and Testing the Web Wednesday 29 November http://www.i-programmer.info/news/87/11344.html
With the advent of Single Page Applications, scraping pages for information as well as running automated user interaction tests has become much harder due to its highly dynamic nature. The solution? Headless Chrome and the Puppeteer library. ... There's just one caveat. Since CDP only works with Chromium, Chrome and other Blink-based browsers, so does Puppeteer. If you require more than that, then sticking to Selenium and its WebDriver API still remains the best option.. ===
The Selenium WebDriver API might be a useful code base to be considered, in the design of the p'n'c "subversive incremental load" browser ...
My 2 cents worth.
Thought this was a interesting idea so I prototyped it in Jupyter:
<https://github.com/myles/notebooks/blob/master/Random/2017-12-15-better-web-browser/notebook.ipynb>
My 2 cents worth of programming :-).
Nice work !! I've never had to try to read python code before. Looks quite intuitive. Myles's prototype demonstraes how simple it is to programmatically do in python, what a web browser does. Next step would be for the python app to present the web page to the user as a navigable pick-and-choose tree for selective rendering of HTML "things". I don't have a current python installed, and I have vowed to postpone all future software dev work until I get moved to debian Linux from Win XP. But once there, might be interesting to pursue the pnc empower browser idea. Not sure if python would be the best platform for a serious pnc browser, but certainly good for trying out various ideas and libraries. Need some GUI power for sure.

On Sat, Dec 16, 2017 at 7:01 PM, Steve Petrie, P.Eng. via talk < talk@gtalug.org> wrote:
Proposed New Subject Line For This Topic:
pnc empower browser;
pnc == pick-and-choose; empower == empower the user to control what part(s) of the web page will be rendered / actioned;
* * *
Please see my comments below on Myles's python prototype.
Steve
----- Original Message ----- From: Myles Braithwaite 👾 To: GTALUG Talk Cc: Steve Petrie, P.Eng. Sent: Friday, December 15, 2017 11:46 AM Subject: Re: [GTALUG] [browser bitching] Re: Programming languages (in comparison?) - -was Learn Swift for Apple/iOS. Learn ??? for Google/Android.
Steve Petrie, P.Eng. via talk wrote:
Headless Chrome and the Puppeteer Library for Scraping and Testing the
Web Wednesday 29 November http://www.i-programmer.info/news/87/11344.html
With the advent of Single Page Applications, scraping pages for information as well as running automated user interaction tests has become much harder due to its highly dynamic nature. The solution? Headless Chrome and the Puppeteer library. ... There's just one caveat. Since CDP only works with Chromium, Chrome and other Blink-based browsers, so does Puppeteer. If you require more than that, then sticking to Selenium and its WebDriver API still remains the best option.. ===
The Selenium WebDriver API might be a useful code base to be considered, in the design of the p'n'c "subversive incremental load" browser ...
My 2 cents worth.
Thought this was a interesting idea so I prototyped it in Jupyter:
<https://github.com/myles/notebooks/blob/master/Random/2017- 12-15-better-web-browser/notebook.ipynb>
My 2 cents worth of programming :-).
Nice work !! I've never had to try to read python code before. Looks quite intuitive.
Myles's prototype demonstraes how simple it is to programmatically do in python, what a web browser does.
It is not doing any such thing. It is merely taking the content of a specific page and dumping it into a string that is formatted for readability. It ignores anything to do with CSS or JavaScript. Modern browsers are as complex as operating systems were not that long ago and that's not going to change. This is a good overview of how browsers work. < https://codeburst.io/how-browsers-work-6350a4234634>
Next step would be for the python app to present the web page to the user as a navigable pick-and-choose tree for selective rendering of HTML "things".
I don't have a current python installed, and I have vowed to postpone all future software dev work until I get moved to debian Linux from Win XP. But once there, might be interesting to pursue the pnc empower browser idea.
Not sure if python would be the best platform for a serious pnc browser, but certainly good for trying out various ideas and libraries. Need some GUI power for sure.
It's not likely that many developers will be putting much effort into building a browser for people using an obsolete, insecure, and proprietary operating system on a dial-up connection. You can achieve most of this functionality today with a few browser plugins/add-ons. Image Block on Firefox < https://addons.mozilla.org/en-US/firefox/addon/image-block/>, though it's not compatible with Firefox Quantum, the latest version. Block Image does something similar on Chrome. < https://chrome.google.com/webstore/detail/block-image/pehaalcefcjfccdpbckoablngfkfgfgj> You can use NoScript to block JavaScript. Regards, Clifford Ilkay +1 647-778-8696

On Mon, Dec 11, 2017 at 8:32 AM, Alvin Starr via talk <talk@gtalug.org> wrote:
It would be nice to have the ability to run multiple browsers that are independent of each other on the same desktop as the same user but Chrome and Firefox keep their context on a per user basis.
Firefox supports multiple user profiles and you can run separate browser instances concurrently using separate profiles. Look into the profile manager - https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firef... You can invoke multiple named profiles from the commandline too, but I don't recall the syntax.

On Wed, Dec 13, 2017 at 3:14 PM, Andrej Marjan via talk <talk@gtalug.org> wrote:
On Mon, Dec 11, 2017 at 8:32 AM, Alvin Starr via talk <talk@gtalug.org> wrote:
It would be nice to have the ability to run multiple browsers that are independent of each other on the same desktop as the same user but Chrome and Firefox keep their context on a per user basis.
Firefox supports multiple user profiles and you can run separate browser instances concurrently using separate profiles. Look into the profile manager - https://support.mozilla.org/en-US/kb/profile-manager- create-and-remove-firefox-profiles
You can invoke multiple named profiles from the commandline too, but I don't recall the syntax.
Good point. I've had mysterious crashes disappear after creating a new profile in Firefox and Thunderbird. Regards, Clifford Ilkay +1 647-778-8696

On Sun, Dec 10, 2017 at 10:02 AM, Jamon Camisso via talk <talk@gtalug.org> wrote:
On 2017-12-10 06:28 AM, o1bigtenor via talk wrote:
So I know precious little about programming languages. I looked up 'Rust programming language'.
Wikipedia (which can often be useful if not always totally accurate) listed it as:
" . . . a systems programming language sponsored by Mozilla Research, which describes it as a "safe, concurrent, practical language," supporting functional and imperative-procedural paradigms. Rust is syntactically similar to C++, but its designers intend it to provide better memory safety while maintaining performance."
OK - - - sponsored by Mozilla (AIUI that sort means that its their baby) and its to '. . . provide better memory safety . . ." . Well given how Mozilla products work for me - - - they don't really know anything about how to use memory. The only way I can keep using FF is to kill it every couple three days and then restart it. Somehow that isn't my idea of memory usage done well so if that's Rust - - - well then that's a total non-starter for me!
I think you'll be surprised at how well the latest Firefox 57 performs. It's their first release featuring core browser components written in Rust.
Fast and stable for me. Give it a try and see if your characterization above still holds.
A little tidbit for you as you continue your praise of the 'new' ff! (Yes I understand that chromium isn't ff but they both suffer under the same kind of programming - - - at least IMO!). Michael Gilbert <mgilbert@debian.org> 5:03 AM (2 hours ago) to debian-securit. -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 - ------------------------------------------------------------------------- Debian Security Advisory DSA-4064-1 security@debian.org https://www.debian.org/security/ Michael Gilbert December 12, 2017 https://www.debian.org/security/faq - ------------------------------------------------------------------------- Package : chromium-browser CVE ID : CVE-2017-15407 CVE-2017-15408 CVE-2017-15409 CVE-2017-15410 CVE-2017-15411 CVE-2017-15413 CVE-2017-15415 CVE-2017-15416 CVE-2017-15417 CVE-2017-15418 CVE-2017-15419 CVE-2017-15420 CVE-2017-15423 CVE-2017-15424 CVE-2017-15425 CVE-2017-15426 CVE-2017-15427 Several vulnerabilities have been discovered in the chromium web browser. CVE-2017-15407 Ned Williamson discovered an out-of-bounds write issue. CVE-2017-15408 Ke Liu discovered a heap overflow issue in the pdfium library. CVE-2017-15409 An out-of-bounds write issue was discovered in the skia library. CVE-2017-15410 Luat Nguyen discovered a use-after-free issue in the pdfium library. CVE-2017-15411 Luat Nguyen discovered a use-after-free issue in the pdfium library. CVE-2017-15413 Gaurav Dewan discovered a type confusion issue. CVE-2017-15415 Viktor Brange discovered an information disclosure issue. CVE-2017-15416 Ned Williamson discovered an out-of-bounds read issue. CVE-2017-15417 Max May discovered an information disclosure issue in the skia library. CVE-2017-15418 Kushal Arvind Shah discovered an uninitialized value in the skia library. CVE-2017-15419 Jun Kokatsu discoved an information disclosure issue. CVE-2017-15420 WenXu Wu discovered a URL spoofing issue. CVE-2017-15423 Greg Hudson discovered an issue in the boringssl library. CVE-2017-15424 Khalil Zhani discovered a URL spoofing issue. CVE-2017-15425 xisigr discovered a URL spoofing issue. CVE-2017-15426 WenXu Wu discovered a URL spoofing issue. CVE-2017-15427 Junaid Farhan discovered an issue with the omnibox. For the stable distribution (stretch), these problems have been fixed in version 63.0.3239.84-1~deb9u1. We recommend that you upgrade your chromium-browser packages. For the detailed security status of chromium-browser please refer to its security tracker page at: https://security-tracker.debian.org/tracker/chromium-browser Further information about Debian Security Advisories, how to apply these updates to your system and frequently asked questions can be found at: https://www.debian.org/security/ Mailing list: debian-security-announce@lists.debian.org -----BEGIN PGP SIGNATURE----- iQQzBAEBCgAdFiEEluhy7ASCBulP9FUWuNayzQLW9HMFAlovt/gACgkQuNayzQLW 9HNCpB//Se2Sq0zIXpibz/22YXknmUdQ9nnjsNUVDhc92r9HyGzU2Icn+WwGh8aH kg4tNk3tzE4Gf8qxpU3z3Z/KcyJURX1ZZZBxLJrLzU4xPY2ynCrOXzSTsgejBkAw gEfbyXHD0dJefdqHTmu1fquAg9OBKokMpf5HOJhUHe12erMjMTin+Su8DAUvE4Uq J0+hWJAPaeNKsml0bVSEshZBoaeqI6DxcA5tIQLaektlCG9BaxOriS6NXxf3v7TT r16Erb1PQq8CIdl36r9wMl3xqkDYcxJmsn88is7RxcG4W58FfCc0Bvaeqp5+ygGT RC+aN8+rNj8dTequVVBtyRhUY21GsggWWTkbJCu6dN1QcB7sAHcgtSe50eL+9w5E Ny2Jaym0UrCSmWvHb1wQZUHzWlogKjsrzuQC9Ces+QQmZbaoop626cKz5YjVQDp5 9NFIkJvFxMgY253mp61HL5nmgdfl1UqWM39mZ1aOOSRVMlw3rVk2cCNCbMVj7IBZ 3IuiEJ25pzo4fUE1gXMsGnHhn7Ppa8vCd8mfw9mzUTg6OY036O6Gzu4ljE6AF8z0 6rzKqzu0y4YckhWZz3XFH1TTkENXZbQCp1EmiwmOfLWGgG+sz15DwL8yk4LkNLts yqrH+XStq4B4D9hLLHw1ccmwsweRW9gychBVJIBb8mYhxK9BIvE5XGYL0Xol+SbR nKMNgswkM0KuiJO49jM4biP1GLFoU4LIT+vG7f/cfAbkPMAS6DLKzeFyMUnvOzn5 QFnJh3o2I62q21384svr0/WMbL1xzLQANRreSZLI45Ou1sUNraFgCR7m6Xnwr1T+ A5upVEitlzWR/EcIODNghrZbgtBAzGjLLAmHxmuXJhjb84LqXrp0EtKx+oQJvapE 3tkgCa308EDQEDqbRMEeaZcj3y3C2rGK8h95j4HBKjEfAPD2nx9D4kPZI36awM23 xX0QBA18VvG7TRTVgCv9nzXvzTFA8Fl5WHc5SAa+aKVlWvY9aZiTseSUZsoF9lYW nC6HUydTSoEZxjcH66l1upVfgctz/7yhhiKpeMx3ScunGnIpkCv3lHqMQmH6vasl Hce8vsQ78yPPHD5CLGp1QaailFeNw/X5ybMm2v/uGAkLWfXRaeW9ArM/ZYRpBltF DeFXbKFhNo+5tdCsFyIZ+oSswMhwwfrCXlP9tlKqcwBxfAYhHQOu4Lh/VFXbB6wW dz4aLG//Hx5Bj8qX4TEAv4T/dwnihPmGpodskFXU8oCvnEPWxmjRLAlBoWwiUhL3 L0FhUnql8v3z33ebJRnaE89CxpAeBn8WQrxeQJBfzx/6ZJS4wGe5S89IanrYHgx0 M2MFwAOexKQpMEwDU/reyyOTZsHDAQ== =66jZ -----END PGP SIGNATURE-----

On 12 December 2017 at 08:48, o1bigtenor via talk <talk@gtalug.org> wrote:
A little tidbit for you as you continue your praise of the 'new' ff! (Yes I understand that chromium isn't ff but they both suffer under the same kind of programming - - - at least IMO!).
Which is exactly what ff57's use of Rust addresses.
Michael Gilbert <mgilbert@debian.org> 5:03 AM (2 hours ago) to debian-securit.
Of the 17 Chrome vulnerabilities listed, 7 would never have happened if they were using Rust instead of C++. ../Dave

On Tue, Dec 12, 2017 at 9:25 AM, David Mason via talk <talk@gtalug.org> wrote:
On 12 December 2017 at 08:48, o1bigtenor via talk <talk@gtalug.org> wrote:
A little tidbit for you as you continue your praise of the 'new' ff! (Yes I understand that chromium isn't ff but they both suffer under the same kind of programming - - - at least IMO!).
Which is exactly what ff57's use of Rust addresses.
Michael Gilbert <mgilbert@debian.org> 5:03 AM (2 hours ago) to debian-securit.
Of the 17 Chrome vulnerabilities listed, 7 would never have happened if they were using Rust instead of C++.
Sorry Dave - - - - I'm finding your posts actually quite funny. I have found browsers to be this fairly useless things that purport to do x and don't do it even tolerably and when I forward a list of security issues you tell me that 'some' of them wouldn't be there if they used programming language x (or is it y or z or does it matter?). As long as they have these ever reoccurring list of security issues - - - well they ALL suck - - - fair enough? Dee

| From: o1bigtenor via talk <talk@gtalug.org> | Sorry Dave - - - - I'm finding your posts actually quite funny. I don't see anything funny here. Please explain. | I have | found browsers | to be this fairly useless things that purport to do x and don't do it even | tolerably If they are useless, don't use them. The trouble is that they are not just useful, they are almost indispensible in the modern world. Inaccurate complaints get in the way of solutions. | and | when I forward a list of security issues you tell me that 'some' of them | wouldn't be there | if they used programming language x (or is it y or z or does it matter?). He didn't say x or y or z. You know he said Rust. Why did you misrepresent what he said? Surely preventing some bugs automatically is a Good Thing. Especially if they are bugs that seem to afflict programs actually used by a lot of people. | As long as they have these ever reoccurring list of security issues - - - | well | they ALL suck - - - fair enough? All bugs are annoying. Some are dangerous. All large software must be presumed to have bugs. What's your point? You've already said that you "know precious little about programming languages." So don't pontificate about them. Talking about browsers is fair game: you use them and have tried a bunch. I suggest creating a different (sub?) thread.

| From: o1bigtenor via talk <talk@gtalug.org> | On Sun, Dec 10, 2017 at 12:06 AM, D. Hugh Redelmeier via talk < | talk@gtalug.org> wrote: | > I spend most of my programming time in C. The next language I intend | > to use is Rust. I like its ideas but proof of the pudding is in the | > eating. The cases where I would recommend C for new projects are few | > and far between. | > | | So I know precious little about programming languages. I looked up 'Rust | programming language'. | | Wikipedia (which can often be useful if not always totally accurate) If it isn't accurate, it is your fault. Fix it. That's what I do. | listed it as: | " . . . a systems programming language sponsored by Mozilla Research, | which describes it as a "safe, concurrent, practical language," supporting | functional and imperative-procedural paradigms. Rust is syntactically | similar to C++, but its designers intend it to provide better memory safety | while maintaining performance." | | OK - - - sponsored by Mozilla (AIUI that sort means that its their baby) It was started by Graydon Hoare (ex Torontonian) while at Mozilla. Mozilla sponsored it but many contributors are now from outside. It really seems to be an open project. And one with a lot of momentum. | and its to '. . . provide better memory safety . . ." . | Well given how Mozilla products work for me - - - they don't really know | anything about how to use memory. Those two are mostly unrelated. Memory safety is mostly about avoiding bugs. Of course memory leaks, a kind of bug, can lead to excessive memory use. | The only way I can keep using FF is to | kill it every couple three days and then restart it. Firefox's behaviour is OK for me. Not perfect. But some web pages seem to suck up a lot of resources. For example, my normal way of reading Ars Technica ceased to work in the last few months: from the front page, middle-click on each apparently interesting link (opening it in a new tab) and then go back and read each tab. I've never run Flash on my desktop. That has saved me from a lot of crud. But now the crud is apparently migrating to javascript or HTML5. For some reason, javascript crap seems to be a global burden. It would make sense to suspend the crap of a page when it isn't visible (perhaps I'm naive). I don't suppress ads. I don't think that's fair. But I do have "tracking protection" on. Some sites claim that I'm blocking ads.

On Sun, Dec 10, 2017 at 11:27 AM, D. Hugh Redelmeier via talk < talk@gtalug.org> wrote:
| From: o1bigtenor via talk <talk@gtalug.org>
| On Sun, Dec 10, 2017 at 12:06 AM, D. Hugh Redelmeier via talk < | talk@gtalug.org> wrote:
| > I spend most of my programming time in C. The next language I intend | > to use is Rust. I like its ideas but proof of the pudding is in the | > eating. The cases where I would recommend C for new projects are few | > and far between. | > | | So I know precious little about programming languages. I looked up 'Rust | programming language'. | | Wikipedia (which can often be useful if not always totally accurate)
If it isn't accurate, it is your fault. Fix it. That's what I do.
OK - - - I'll consider it - - - I've found people don't like things corrected much. Most often they like things the way they want them.
| listed it as:
| " . . . a systems programming language sponsored by Mozilla Research, | which describes it as a "safe, concurrent, practical language," supporting | functional and imperative-procedural paradigms. Rust is syntactically | similar to C++, but its designers intend it to provide better memory safety | while maintaining performance." | | OK - - - sponsored by Mozilla (AIUI that sort means that its their baby)
It was started by Graydon Hoare (ex Torontonian) while at Mozilla. Mozilla sponsored it but many contributors are now from outside. It really seems to be an open project. And one with a lot of momentum.
OK but Mozilla IS listed as a big time user at the very least.
| and its to '. . . provide better memory safety . . ." . | Well given how Mozilla products work for me - - - they don't really know | anything about how to use memory.
Those two are mostly unrelated. Memory safety is mostly about avoiding bugs. Of course memory leaks, a kind of bug, can lead to excessive memory use.
| The only way I can keep using FF is to | kill it every couple three days and then restart it.
Firefox's behaviour is OK for me. Not perfect. But some web pages seem to suck up a lot of resources.
I don't like a program that requires me to kill it every couple days so that I can keep using it.
For example, my normal way of reading Ars Technica ceased to work in the last few months: from the front page, middle-click on each apparently interesting link (opening it in a new tab) and then go back and read each tab.
I've never run Flash on my desktop. That has saved me from a lot of crud. But now the crud is apparently migrating to javascript or HTML5.
I had flash before html5 became somewhat 'normal' and never since.
For some reason, javascript crap seems to be a global burden. It would make sense to suspend the crap of a page when it isn't visible (perhaps I'm naive).
I have a contact that doesn't allow any javascript - - - I'm starting to wonder if that might be quite preferable to the bs that the web is becoming.
I don't suppress ads. I don't think that's fair. But I do have "tracking protection" on. Some sites claim that I'm blocking ads.
I became anti ads after I spent about 20 hours of time looking for a specific product. I knew it was available as I had seen equivalents on equipment in Europe and know that there are North American equivalents. Couldn't find a bleepin' thing - - - and that was frustrating. What made it even worse was ms google insisting for the next number of weeks that she had to bomb me with ads for somewhat related but NOT applicable product. End result was that I found a different search engine and try to actively discourage ads. Most of the ads I get bombed by I'm totally uninteresed in and as the advertisers try to get me to be similar product find that similar isn't good enough when one is looking for specific technical stuff I think that 99% of all advertising isn't worth flushing down the toilet. The money wasted on that could feed all the hungry in the world and likely provide for justice for most of the oppressed too. But advertising is how our friends (??) at google and that kind of gang and over at the amazonian world its about the same. The adge that advertising is 'there to get you to buy stuff you don't want to impress people you couldn't care less about with money you don't have' seems like it should be promulgated just a wee bit more. But sorry - - - I have digressed largely from the original flow. I think its the advertising that makes today's web a total pos!
rant off
Dee

Pls. see comments below. ----- Original Message ----- From: o1bigtenor via talk To: D. Hugh Redelmeier ; GTALUG Talk Sent: Sunday, December 10, 2017 6:27 PM Subject: Re: [GTALUG] Programming languages (in comparison?) - -was Learn Swift for Apple/iOS. Learn ??? for Google/Android. On Sun, Dec 10, 2017 at 11:27 AM, D. Hugh Redelmeier via talk <talk@gtalug.org> wrote: | From: o1bigtenor via talk <talk@gtalug.org> | On Sun, Dec 10, 2017 at 12:06 AM, D. Hugh Redelmeier via talk < | talk@gtalug.org> wrote: <snip> I have a contact [contract?] that doesn't allow any javascript - - - I'm starting to wonder if that might be quite preferable to the bs that the web is becoming. +1 !!! A couple of years ago, I developed a simple PHP web app that registers members of a club in an SQL database (first using MySQL, then switched to PosgreSQL but now planning to switch to BerkeleyDB for "zero admin" simplicity.), This simple PHP web app enables visitors to join the club, manage their club subscription and also serves club members premiunm content. (The PHP app is fully tested but not yet online.) here are a few static pages for the same website already demoed online at http://aspetrie.net/ But the PHP app is not online yet.And the website is not yet operating under its eventual domain name. And be advised that there has been no tuning done at all for the web page demo site. * * * * * * I've always been an engineer with a ferocious focus on resource efficiency. Being a frugal SOB, retired and with few time pressures, I still use a plain old twisted-copper-pair landline telephone dialup modem connection for my Internet access (usually connnects at around 46 Kbps (that's K bits per second). There's always something else useful I can do, while waiting for bloated web pages that take a long time to load. When I designed the website and PHP app, I set a 10-second maximum page load time target for users on slow landline dialup connections. Same deal for static pages as for dynamic pages served by the PHP app. The technology that this website promotes is a highly democratic solution to expressway traffic congestion, a solution that treats all drivers, rich and poor, with exactly the same priority and respect. So the website also has to convey the same overriding ethic -- all visitors are welcome, and their time is equally valuable, so even the Internet user who can barely afford any Internet connection at all, should get pages displayed with maximum 10-second response time. * * * * * * No way was I ever going to buy in to all that Javascript BS. It makes absoutely no sense to me that a web app would presumptuously load the same Javascript crud again and again, into every single instance of web browser visitng my website. Wasting bandwidth. Wasting time. So, I decided that the web browser using my website and PHP app, is just going to be a plain HTML2 "dumb terminal". The webaite and PHP app should work with the lowest common denominator among web browsers. Simplicity rocks !! Steve <snip> ------------------------------------------------------------------------------ --- Talk Mailing List talk@gtalug.org https://gtalug.org/mailman/listinfo/talk

I would judge that an unjust characterization of Rust... Web browsers these days pretty much all suffer from memory "leak" issues, much of which falls from the proliferation of web sites that make prolific use of (often horribly coded) JavaScript that draw in all sorts of cruddy code, intentionally surveiling their users. Don't blame Mozilla for the evils of (say) The Verge or Facebook... Back to Rust, Mozilla started with a pretty horrid code base in the C++ code inherited from Netscape that they have been "chasing" ever since. They started out a big step "behind" in that they began with the burden of needing to drop out Motif GUI code and had to fill that hole with something, which turned out to be GTK. That was a big task, and there were lots of messes in the codebase as a result The point of Rust is surely not "oh, they're idiots and the language should be roundly ignored"; rather, Mozilla correctly recognized that their code base had a lot of memory leak problems, and decided to adopt a language designed to directly attack such problems. Integration of Rust code into deployed versions of Firefox only took place in the last couple of months, and it is worth noting that people are observing considerable improvement in the speed of Firefox in these versions. That points towards your conclusion being quite wrongly placed. This does not by any means imply that you *must* use Rust, just that the reasons you're pointing at are not excellent reasons to ignore it.
participants (11)
-
Alvin Starr
-
Andrej Marjan
-
Christopher Browne
-
Clifford Ilkay
-
D. Hugh Redelmeier
-
David Mason
-
Jamon Camisso
-
Myles Braithwaite 👾
-
o1bigtenor
-
Steve Petrie, P.Eng.
-
Stewart C. Russell