Vivaldi, and browser options

I installed Vivaldi the other day to give it a whirl. I was a little sceptical of their claims that it was a browser “for developers”

Then I went into the options. My jaw literally dropped. Literally.


Look at all those options!

Vivaldi has options that other browsers don’t provide by default. You can change the theme at a specific time of day, set up mouse gestures, move tabs to the sides or bottom, set a time-limit on your browsing history, change your default fonts (as in, when a web page says “sans serif” you get to pick what that means)

Firefox, Chrome, and Opera (my favourite, up to now at least) have plugins to cater for all of these things, but vivaldi does them out of the box. I thought that would make the whole thing feel bloated, but it’s buttery smooth. It seems to load pages faster than any other browser, though I suspect that’s down to the progress bar, which shows how many bytes have loaded (mesmerising).

I’m going to set Vivaldi as my default from today on, with Opera to fall back on if needed

Voice Recognition in Windows Phone 10 Beta is abysmal

Voice recognition on Windows Phone 10 Preview is terrible. To demonstrate, I’ve attempted to write the next sentence of this blog using it. Here’s every attempt:

  1. It off and start
  2. it’s nothing stops halfway through a sentence.
  3. It off and stop
  4. Often stops halfway through president
  5. It often star
  6. It often starts at waitara send an
  7. It often starts at waitrose in
  8. It after
  9. Aften stop sao
  10. It often stops halfway through the
  11. It often
  12. It often stop sasha
  13. It often stops halfway through a sentence?

Thirteen attempts just to get one sentence. This is bad. This is comically bad. Voice recognition on Windows 8.1 was near perfect. Although it was only available for text messages, it worked almost flawlessly. WP10 seems to have done an about turn, because now it can’t figure out what I’m saying no matter what way I force myself to speak.

What happened Microsoft?

jbranchaud/til: Today I Learned

Josh Branchaud wrote a small file detailing some bit of programming knowledge he learned every day for 328 days. I really like this idea and I think I might just do it. I certainly won’t be posting as often as he is – I don’t learn quickly enough – but it’d be nice to be able to look back on everything I’ve learned in one year.

So what did I learn today? 

Electron has two processes – a main and a renderer. Both have access to node.js but almost all of your code should sit in the renderer. This is not what I expected. I assumed my code would go in main.js, but apparently this is really only for very low level stuff like manipulating the window and menu. Even database / file access code belongs in the renderer!

Differences Between Main Process and Renderer Process

The main process creates web pages by creating BrowserWindow instances. Each BrowserWindow instance runs the web page in its own renderer process. When a BrowserWindow instance is destroyed, the corresponding renderer process is also terminated.

The main process manages all web pages and their corresponding renderer processes. Each renderer process is isolated and only cares about the web page running in it.

In web pages, calling native GUI related APIs is not allowed because managing native GUI resources in web pages is very dangerous and it is easy to leak resources. If you want to perform GUI operations in a web page, the renderer process of the web page must communicate with the main process to request that the main process perform those operations.

In Electron, we have provided the ipc module for communication between the main process and renderer process. There is also a remote module for RPC style communication.

Note: If I do start a series of TIL’s I’ll probably follow Josh’s example and stick it on github or somewhere. I’ll keep it out of the blog.