Are you over 18 and want to see adult content?
More Annotations
A complete backup of gmpartscenter.net
Are you over 18 and want to see adult content?
A complete backup of fiscal-impuestos.com
Are you over 18 and want to see adult content?
Favourite Annotations
A complete backup of safetydevices.com
Are you over 18 and want to see adult content?
A complete backup of estudiodeinterioresmyp.com
Are you over 18 and want to see adult content?
A complete backup of gebraucht-kaufen.de
Are you over 18 and want to see adult content?
A complete backup of corsica-productions.com
Are you over 18 and want to see adult content?
Text
OXYMORONICAL
But neither the VPS nor the docker containers will be able to reach the internal LANs. In fact if you try to ping a docker container’s IP from the local LAN the ping packet should reach it, but the container won’t know how to return it! 3. Make the local LAN visibleto
NIGHTLY TESTER TOOLS The extensions listed here are no longer supported, these pages are just maintained for historical reasons! This extension adds a few extras useful to those that regularly test nightly builds of Firefox, Thunderbird, Sunbird and Toolkit Seamonkey (Suiterunner). Don’t forget that forcing an incompatible extension to install is risky.There are
PLEASE WATCH YOUR CHARACTER ENCODINGS Take the character “ñ”. In UTF-8 this is encoded as C3 B1. Decoding that as UTF-16 will result in “쎱”. In UTF-16 however “ñ” is encoded as 00 F1. Trying to decode that as UTF-8 will fail as that is in invalid UTF-8 sequence. Many languages thankfully use string types that have fixed encodings, in rust for example the str UPDATE CHANNEL SELECTOR This extension allows you to change the update channel your application receives updates from. If you don’t understand what this means then read about update channels. Be warned, this extension will allow you to change to an unstable update source. Unless you know what you’re doing I suggest you don’t use it. ENCODING – OXYMORONICAL I started writing this as a newsgroup post for one of Mozilla’s mailing lists, but it turned out to be too long and since this part was mainly aimed at folks who either didn’t know about or wanted a quick refresher on character encodings I decided to blog it instead. REVIEW – OXYMORONICAL TomTom made an interesting claim recently.Their summary is “when it comes to automotive-grade mapping, open source has some quite serious limitations, falling short on the levels of accuracy and reliability required for safe navigation” This is a bold claim and they talk about recent studies that back them up. Unfortunately none of them are referenced but it’s pretty clear from the text MOBILE – OXYMORONICAL Since I posted last week about how I was experimenting with running Firefox on my Palm Pre a number of tech news sites, large and small, picked it up and posted their own take on it. Some of the sites (and some of the readers of those sites) made some fairly odd statements about my work. This is probably because to the uninitiated (and many of the initiated in fact) the internals of Firefox BRIDGING AN INTERNAL LAN TO A SERVER’S DOCKER CONTAINERS push "route 10.12.0.0 255.255.0.0". When the router connects to the VPS the VPN server will tell it that this route can be accessed through this connection. You should now be able to ping anything in that network range from the router. But neither the VPS FRIENDS – OXYMORONICAL For a while now I’ve been in a bit of a rut. I knew I was there I just hadn’t quite got the motivation to pull myself out of it. It wasn’t such a bad place to be, but the difference of being just ok with the way things are going and being exactly where you want to beand with
POP-FREE SOUND FROM A RASPBERRY PI RUNNING XBMC First as root you want to do this: echo "snd-bcm2835" >>/etc/modules. This makes the kernel module for the sound devices load on startup. It allows alsa and by proxy pulseaudio to talk to the audio hardware. Next edit /etc/pulse/system.pa and comment outOXYMORONICAL
But neither the VPS nor the docker containers will be able to reach the internal LANs. In fact if you try to ping a docker container’s IP from the local LAN the ping packet should reach it, but the container won’t know how to return it! 3. Make the local LAN visibleto
NIGHTLY TESTER TOOLS The extensions listed here are no longer supported, these pages are just maintained for historical reasons! This extension adds a few extras useful to those that regularly test nightly builds of Firefox, Thunderbird, Sunbird and Toolkit Seamonkey (Suiterunner). Don’t forget that forcing an incompatible extension to install is risky.There are
PLEASE WATCH YOUR CHARACTER ENCODINGS Take the character “ñ”. In UTF-8 this is encoded as C3 B1. Decoding that as UTF-16 will result in “쎱”. In UTF-16 however “ñ” is encoded as 00 F1. Trying to decode that as UTF-8 will fail as that is in invalid UTF-8 sequence. Many languages thankfully use string types that have fixed encodings, in rust for example the str UPDATE CHANNEL SELECTOR This extension allows you to change the update channel your application receives updates from. If you don’t understand what this means then read about update channels. Be warned, this extension will allow you to change to an unstable update source. Unless you know what you’re doing I suggest you don’t use it. ENCODING – OXYMORONICAL I started writing this as a newsgroup post for one of Mozilla’s mailing lists, but it turned out to be too long and since this part was mainly aimed at folks who either didn’t know about or wanted a quick refresher on character encodings I decided to blog it instead. REVIEW – OXYMORONICAL TomTom made an interesting claim recently.Their summary is “when it comes to automotive-grade mapping, open source has some quite serious limitations, falling short on the levels of accuracy and reliability required for safe navigation” This is a bold claim and they talk about recent studies that back them up. Unfortunately none of them are referenced but it’s pretty clear from the text MOBILE – OXYMORONICAL Since I posted last week about how I was experimenting with running Firefox on my Palm Pre a number of tech news sites, large and small, picked it up and posted their own take on it. Some of the sites (and some of the readers of those sites) made some fairly odd statements about my work. This is probably because to the uninitiated (and many of the initiated in fact) the internals of Firefox BRIDGING AN INTERNAL LAN TO A SERVER’S DOCKER CONTAINERS push "route 10.12.0.0 255.255.0.0". When the router connects to the VPS the VPN server will tell it that this route can be accessed through this connection. You should now be able to ping anything in that network range from the router. But neither the VPS FRIENDS – OXYMORONICAL For a while now I’ve been in a bit of a rut. I knew I was there I just hadn’t quite got the motivation to pull myself out of it. It wasn’t such a bad place to be, but the difference of being just ok with the way things are going and being exactly where you want to beand with
POP-FREE SOUND FROM A RASPBERRY PI RUNNING XBMC First as root you want to do this: echo "snd-bcm2835" >>/etc/modules. This makes the kernel module for the sound devices load on startup. It allows alsa and by proxy pulseaudio to talk to the audio hardware. Next edit /etc/pulse/system.pa and comment outOXYMORONICAL
For a long long time Mozilla has governed its code (and a few other things) as a series of modules. Each module covers an area of code in the source and has an owner and a list of peers, folks that are knowledgeable about that module. THOUGHTS ON THE MODULE SYSTEM FWIW, we moved the opposite direction in Chrome. Though the majority of contributors are Google employees and almost all product decisions are made by Googlers, on the code review front we went from a “committers can review anything” system to one with explicit directory ownership requiring signoff from appropriate peers. REVIEW – OXYMORONICAL TomTom made an interesting claim recently.Their summary is “when it comes to automotive-grade mapping, open source has some quite serious limitations, falling short on the levels of accuracy and reliability required for safe navigation” This is a bold claim and they talk about recent studies that back them up. Unfortunately none of them are referenced but it’s pretty clear from the text DO I NEED A NEW CAMERA? It’s been about a year since I last went through this. The result of my last plea for help was a number of recommendations and I ended up buying the excellent Canon Powershot S90. It really is a great point and shoot and I think pretty much exactly what I needed at the time to help me learn a little more about photography. FRIENDS – OXYMORONICAL For a while now I’ve been in a bit of a rut. I knew I was there I just hadn’t quite got the motivation to pull myself out of it. It wasn’t such a bad place to be, but the difference of being just ok with the way things are going and being exactly where you want to beand with
FLIPPING THE BIRD
I outed myself last night on IRC as a non-Thunderbird user and dmose asked me why. I only had some fairly vague hand gesturing things to say so I said I’d switch back to it a bit and see what AN EDITABLE BOX MODEL VIEW IN THE DEVTOOLS The changes made appear on the element so you can find them in the rule view pretty easily. This patch is based on an updated version of the box model view which is why it looks so different to existing Firefox, all my work does is make the numbers editable. MAKING COMMUNICATING WITH CHROME FROM IN-CONTENT PAGES As Firefox increasingly switches to support running in multiple processes we’ve been finding common problems. Where we can we aredesigning nice
LIGHTWEIGHT THEMES UI LANDED As part of the ongoing work to bring basic support for lightweight themes (based on the ideas from the Personas extension) into Firefox 3.6 I’ve today landed the main UI parts that allow users to see and select between lightweight themes they have used recently. Dã o landed most of the backend last week but we’re still waiting on the support for installing new lightweight themes before WHY DOES NO-ONE MAKE A MOUSE THAT I WANT? Hi have one of these too, which I bought after the sort of long search that Mossop has done. On the whole I like it, but there are some issues when using it with the builtin Bluetooth on a MacBook Pro (two year old model), where it will lose connection and take about 30 seconds to renegotiate the link.OXYMORONICAL
But neither the VPS nor the docker containers will be able to reach the internal LANs. In fact if you try to ping a docker container’s IP from the local LAN the ping packet should reach it, but the container won’t know how to return it! 3. Make the local LAN visibleto
NIGHTLY TESTER TOOLS The extensions listed here are no longer supported, these pages are just maintained for historical reasons! This extension adds a few extras useful to those that regularly test nightly builds of Firefox, Thunderbird, Sunbird and Toolkit Seamonkey (Suiterunner). Don’t forget that forcing an incompatible extension to install is risky.There are
PLEASE WATCH YOUR CHARACTER ENCODINGS Take the character “ñ”. In UTF-8 this is encoded as C3 B1. Decoding that as UTF-16 will result in “쎱”. In UTF-16 however “ñ” is encoded as 00 F1. Trying to decode that as UTF-8 will fail as that is in invalid UTF-8 sequence. Many languages thankfully use string types that have fixed encodings, in rust for example the strOXYMORONICAL
Two years ago I blogged about how it had been six years since I wrote my first patch for Firefox. Today I get to say that it’s been six years since I started getting paid to do what I love, working for Mozilla. In that time I’ve moved to a new continent, found a wife (through Mozilla no less!), progressed from coder to module owner to manager, seen good friends leave for other UPDATE CHANNEL SELECTOR This extension allows you to change the update channel your application receives updates from. If you don’t understand what this means then read about update channels. Be warned, this extension will allow you to change to an unstable update source. Unless you know what you’re doing I suggest you don’t use it. ENCODING – OXYMORONICAL I started writing this as a newsgroup post for one of Mozilla’s mailing lists, but it turned out to be too long and since this part was mainly aimed at folks who either didn’t know about or wanted a quick refresher on character encodings I decided to blog it instead.OXYMORONICAL
So there’s been this bug in Firefox for well quite a while where it would suddenly stop remembering your toolbar customisations, window positions and even make your bookmarks appear to not be there, and in Firefox 1.5, make the search bar non-functional.. Well I’m quite proud to say that after quite a lot of research, and help from those guys doing Firefox support, particularly steveeOXYMORONICAL
About three and a half years ago (I recall it happening at the 2008 summit in Whistler), Rob Strong handed ownership of the add-ons manager over to me. I had already been very involved in working on the module so I was really excited to have something to call my own and beresponsible for.
BRIDGING AN INTERNAL LAN TO A SERVER’S DOCKER CONTAINERS push "route 10.12.0.0 255.255.0.0". When the router connects to the VPS the VPN server will tell it that this route can be accessed through this connection. You should now be able to ping anything in that network range from the router. But neither the VPS WHERE IS THE UPDATED NIGHTLY TESTER TOOLS? Many of you nightly testers may have noticed that Nightly Tester Tools’ compatibility override feature doesn’t work with the new add-ons manager and may be wondering when I’m planning to issue anupdate to fix that.
OXYMORONICAL
But neither the VPS nor the docker containers will be able to reach the internal LANs. In fact if you try to ping a docker container’s IP from the local LAN the ping packet should reach it, but the container won’t know how to return it! 3. Make the local LAN visibleto
NIGHTLY TESTER TOOLS The extensions listed here are no longer supported, these pages are just maintained for historical reasons! This extension adds a few extras useful to those that regularly test nightly builds of Firefox, Thunderbird, Sunbird and Toolkit Seamonkey (Suiterunner). Don’t forget that forcing an incompatible extension to install is risky.There are
PLEASE WATCH YOUR CHARACTER ENCODINGS Take the character “ñ”. In UTF-8 this is encoded as C3 B1. Decoding that as UTF-16 will result in “쎱”. In UTF-16 however “ñ” is encoded as 00 F1. Trying to decode that as UTF-8 will fail as that is in invalid UTF-8 sequence. Many languages thankfully use string types that have fixed encodings, in rust for example the strOXYMORONICAL
Two years ago I blogged about how it had been six years since I wrote my first patch for Firefox. Today I get to say that it’s been six years since I started getting paid to do what I love, working for Mozilla. In that time I’ve moved to a new continent, found a wife (through Mozilla no less!), progressed from coder to module owner to manager, seen good friends leave for other UPDATE CHANNEL SELECTOR This extension allows you to change the update channel your application receives updates from. If you don’t understand what this means then read about update channels. Be warned, this extension will allow you to change to an unstable update source. Unless you know what you’re doing I suggest you don’t use it. ENCODING – OXYMORONICAL I started writing this as a newsgroup post for one of Mozilla’s mailing lists, but it turned out to be too long and since this part was mainly aimed at folks who either didn’t know about or wanted a quick refresher on character encodings I decided to blog it instead.OXYMORONICAL
So there’s been this bug in Firefox for well quite a while where it would suddenly stop remembering your toolbar customisations, window positions and even make your bookmarks appear to not be there, and in Firefox 1.5, make the search bar non-functional.. Well I’m quite proud to say that after quite a lot of research, and help from those guys doing Firefox support, particularly steveeOXYMORONICAL
About three and a half years ago (I recall it happening at the 2008 summit in Whistler), Rob Strong handed ownership of the add-ons manager over to me. I had already been very involved in working on the module so I was really excited to have something to call my own and beresponsible for.
BRIDGING AN INTERNAL LAN TO A SERVER’S DOCKER CONTAINERS push "route 10.12.0.0 255.255.0.0". When the router connects to the VPS the VPN server will tell it that this route can be accessed through this connection. You should now be able to ping anything in that network range from the router. But neither the VPS WHERE IS THE UPDATED NIGHTLY TESTER TOOLS? Many of you nightly testers may have noticed that Nightly Tester Tools’ compatibility override feature doesn’t work with the new add-ons manager and may be wondering when I’m planning to issue anupdate to fix that.
OXYMORONICAL
For a long long time Mozilla has governed its code (and a few other things) as a series of modules. Each module covers an area of code in the source and has an owner and a list of peers, folks that are knowledgeable about that module.OXYMORONICAL
Two years ago I blogged about how it had been six years since I wrote my first patch for Firefox. Today I get to say that it’s been six years since I started getting paid to do what I love, working for Mozilla. In that time I’ve moved to a new continent, found a wife (through Mozilla no less!), progressed from coder to module owner to manager, seen good friends leave for other THOUGHTS ON THE MODULE SYSTEM FWIW, we moved the opposite direction in Chrome. Though the majority of contributors are Google employees and almost all product decisions are made by Googlers, on the code review front we went from a “committers can review anything” system to one with explicit directory ownership requiring signoff from appropriate peers. DO I NEED A NEW CAMERA? It’s been about a year since I last went through this. The result of my last plea for help was a number of recommendations and I ended up buying the excellent Canon Powershot S90. It really is a great point and shoot and I think pretty much exactly what I needed at the time to help me learn a little more about photography. LET’S TALK ABOUT SOCIAL ANXIETY It took me a long time to publish my last post. I spent months trying to start it until I finally felt brave enough. I must confess that for a few hours after it was published I felt my anxiety lev ME AND MY DUMB BRAIN Today those polite folk from up north have been talking about mental health and how it affects them and those around them. Mental health is one of those issues that we too rarely talk about. I ON FIREFOX MODULE OWNERSHIP It has been over eleven years since I first wrote a patch for Firefox. It was reviewed by the then-Firefox module owner, Mike Connor. If you had told me then that at some point in the future I was going to be the module owner I probably would have laughed at you. I didn’t knowat
JAVASCRIPT OPTIONS
Quick note of thanks — Really GOOD extension, as is the one for "Cookie Handling" The capacity to "sift and select" what enters and leaves the box essential security. WHERE IS THE UPDATED NIGHTLY TESTER TOOLS? Many of you nightly testers may have noticed that Nightly Tester Tools’ compatibility override feature doesn’t work with the new add-ons manager and may be wondering when I’m planning to issue anupdate to fix that.
MAKING COMMUNICATING WITH CHROME FROM IN-CONTENT PAGES As Firefox increasingly switches to support running in multiple processes we’ve been finding common problems. Where we can we aredesigning nice
OXYMORONICAL
But neither the VPS nor the docker containers will be able to reach the internal LANs. In fact if you try to ping a docker container’s IP from the local LAN the ping packet should reach it, but the container won’t know how to return it! 3. Make the local LAN visibleto
NIGHTLY TESTER TOOLS The extensions listed here are no longer supported, these pages are just maintained for historical reasons! This extension adds a few extras useful to those that regularly test nightly builds of Firefox, Thunderbird, Sunbird and Toolkit Seamonkey (Suiterunner). Don’t forget that forcing an incompatible extension to install is risky.There are
PLEASE WATCH YOUR CHARACTER ENCODINGS Take the character “ñ”. In UTF-8 this is encoded as C3 B1. Decoding that as UTF-16 will result in “쎱”. In UTF-16 however “ñ” is encoded as 00 F1. Trying to decode that as UTF-8 will fail as that is in invalid UTF-8 sequence. Many languages thankfully use string types that have fixed encodings, in rust for example the strOXYMORONICAL
Two years ago I blogged about how it had been six years since I wrote my first patch for Firefox. Today I get to say that it’s been six years since I started getting paid to do what I love, working for Mozilla. In that time I’ve moved to a new continent, found a wife (through Mozilla no less!), progressed from coder to module owner to manager, seen good friends leave for other UPDATE CHANNEL SELECTOR This extension allows you to change the update channel your application receives updates from. If you don’t understand what this means then read about update channels. Be warned, this extension will allow you to change to an unstable update source. Unless you know what you’re doing I suggest you don’t use it. ENCODING – OXYMORONICAL I started writing this as a newsgroup post for one of Mozilla’s mailing lists, but it turned out to be too long and since this part was mainly aimed at folks who either didn’t know about or wanted a quick refresher on character encodings I decided to blog it instead.OXYMORONICAL
So there’s been this bug in Firefox for well quite a while where it would suddenly stop remembering your toolbar customisations, window positions and even make your bookmarks appear to not be there, and in Firefox 1.5, make the search bar non-functional.. Well I’m quite proud to say that after quite a lot of research, and help from those guys doing Firefox support, particularly steveeOXYMORONICAL
About three and a half years ago (I recall it happening at the 2008 summit in Whistler), Rob Strong handed ownership of the add-ons manager over to me. I had already been very involved in working on the module so I was really excited to have something to call my own and beresponsible for.
BRIDGING AN INTERNAL LAN TO A SERVER’S DOCKER CONTAINERS push "route 10.12.0.0 255.255.0.0". When the router connects to the VPS the VPN server will tell it that this route can be accessed through this connection. You should now be able to ping anything in that network range from the router. But neither the VPS WHERE IS THE UPDATED NIGHTLY TESTER TOOLS? Many of you nightly testers may have noticed that Nightly Tester Tools’ compatibility override feature doesn’t work with the new add-ons manager and may be wondering when I’m planning to issue anupdate to fix that.
OXYMORONICAL
But neither the VPS nor the docker containers will be able to reach the internal LANs. In fact if you try to ping a docker container’s IP from the local LAN the ping packet should reach it, but the container won’t know how to return it! 3. Make the local LAN visibleto
NIGHTLY TESTER TOOLS The extensions listed here are no longer supported, these pages are just maintained for historical reasons! This extension adds a few extras useful to those that regularly test nightly builds of Firefox, Thunderbird, Sunbird and Toolkit Seamonkey (Suiterunner). Don’t forget that forcing an incompatible extension to install is risky.There are
PLEASE WATCH YOUR CHARACTER ENCODINGS Take the character “ñ”. In UTF-8 this is encoded as C3 B1. Decoding that as UTF-16 will result in “쎱”. In UTF-16 however “ñ” is encoded as 00 F1. Trying to decode that as UTF-8 will fail as that is in invalid UTF-8 sequence. Many languages thankfully use string types that have fixed encodings, in rust for example the strOXYMORONICAL
Two years ago I blogged about how it had been six years since I wrote my first patch for Firefox. Today I get to say that it’s been six years since I started getting paid to do what I love, working for Mozilla. In that time I’ve moved to a new continent, found a wife (through Mozilla no less!), progressed from coder to module owner to manager, seen good friends leave for other UPDATE CHANNEL SELECTOR This extension allows you to change the update channel your application receives updates from. If you don’t understand what this means then read about update channels. Be warned, this extension will allow you to change to an unstable update source. Unless you know what you’re doing I suggest you don’t use it. ENCODING – OXYMORONICAL I started writing this as a newsgroup post for one of Mozilla’s mailing lists, but it turned out to be too long and since this part was mainly aimed at folks who either didn’t know about or wanted a quick refresher on character encodings I decided to blog it instead.OXYMORONICAL
So there’s been this bug in Firefox for well quite a while where it would suddenly stop remembering your toolbar customisations, window positions and even make your bookmarks appear to not be there, and in Firefox 1.5, make the search bar non-functional.. Well I’m quite proud to say that after quite a lot of research, and help from those guys doing Firefox support, particularly steveeOXYMORONICAL
About three and a half years ago (I recall it happening at the 2008 summit in Whistler), Rob Strong handed ownership of the add-ons manager over to me. I had already been very involved in working on the module so I was really excited to have something to call my own and beresponsible for.
BRIDGING AN INTERNAL LAN TO A SERVER’S DOCKER CONTAINERS push "route 10.12.0.0 255.255.0.0". When the router connects to the VPS the VPN server will tell it that this route can be accessed through this connection. You should now be able to ping anything in that network range from the router. But neither the VPS WHERE IS THE UPDATED NIGHTLY TESTER TOOLS? Many of you nightly testers may have noticed that Nightly Tester Tools’ compatibility override feature doesn’t work with the new add-ons manager and may be wondering when I’m planning to issue anupdate to fix that.
OXYMORONICAL
For a long long time Mozilla has governed its code (and a few other things) as a series of modules. Each module covers an area of code in the source and has an owner and a list of peers, folks that are knowledgeable about that module.OXYMORONICAL
I blogged a short time ago about how we’re adding support for a new form of add-on to Firefox that can install and uninstall without needing to restart the application. Since then I’ve been finalizing a specification for how the platform will load these add-ons, trying to keep it simple but still give developers everything they commonlyneed.
OXYMORONICAL
About three and a half years ago (I recall it happening at the 2008 summit in Whistler), Rob Strong handed ownership of the add-ons manager over to me. I had already been very involved in working on the module so I was really excited to have something to call my own and beresponsible for.
MCCOY – OXYMORONICAL I know all you extension authors out there have been understandably miffed at the add-on update security bits landing before you could do anything about it, so I’ve pushed hard and we can now make an early version of McCoy available. TESTING – OXYMORONICAL After a fair bit of work (feels like longer than 2 months) I’ve finally managed to get bug 382752 landed. What this gives us in simple terms is a set of functions that we can use in order to do unit testing on the extension manager. PALM – OXYMORONICAL Since I posted last week about how I was experimenting with running Firefox on my Palm Pre a number of tech news sites, large and small, picked it up and posted their own take on it. Some of the sites (and some of the readers of those sites) made some fairly odd statements about my work. This is probably because to the uninitiated (and many of the initiated in fact) the internals of Firefox WHERE ARE WE ALL NOW? Quite a while ago now I generated a map showing where all the Mozilla employees are in the world.A few of the new folks on my team reminded me of it and when I showed it to them they wanted to know when I was going to get around to updating it. CREATING HTML CONTENT WITH A FIXED ASPECT RATIO WITHOUT The answer to this according to almost all the searching I’ve done is the padding-top/bottom trick. For reasons that I don’t understand when using relative lengths (percentages) with the CSS padding-top and padding-bottom properties the values are calculated based on the width of the element. So padding-top: 100% gives you padding equal to WHERE IS THE UPDATED NIGHTLY TESTER TOOLS? Many of you nightly testers may have noticed that Nightly Tester Tools’ compatibility override feature doesn’t work with the new add-ons manager and may be wondering when I’m planning to issue anupdate to fix that.
JAVASCRIPT OPTIONS
Quick note of thanks — Really GOOD extension, as is the one for "Cookie Handling" The capacity to "sift and select" what enters and leaves the box essential security. AUDIO – OXYMORONICAL UPDATE: I’ll leave this around for posterity but a large part of this problem has now been fixed in the latest Raspberry Pi firmware.See here for instructions for raspbmc until that gets updated.. I’ve been in the process of setting up a Raspberry Pi in my office so I can play my mp3 collection through my old stereo. It’s generally gone well and I have to take my hat off to the PLEASE WATCH YOUR CHARACTER ENCODINGS Take the character “ñ”. In UTF-8 this is encoded as C3 B1. Decoding that as UTF-16 will result in “쎱”. In UTF-16 however “ñ” is encoded as 00 F1. Trying to decode that as UTF-8 will fail as that is in invalid UTF-8 sequence. Many languages thankfully use string types that have fixed encodings, in rust for example the str UPDATE CHANNEL SELECTOR This extension allows you to change the update channel your application receives updates from. If you don’t understand what this means then read about update channels. Be warned, this extension will allow you to change to an unstable update source. Unless you know what you’re doing I suggest you don’t use it. TESTING – OXYMORONICAL After a fair bit of work (feels like longer than 2 months) I’ve finally managed to get bug 382752 landed. What this gives us in simple terms is a set of functions that we can use in order to do unit testing on the extension manager. MODULE – OXYMORONICAL For a long long time Mozilla has governed its code (and a few other things) as a series of modules. Each module covers an area of code in the source and has an owner and a list of peers, folks that are knowledgeable about that module. MOBILE – OXYMORONICAL Since I posted last week about how I was experimenting with running Firefox on my Palm Pre a number of tech news sites, large and small, picked it up and posted their own take on it. Some of the sites (and some of the readers of those sites) made some fairly odd statements about my work. This is probably because to the uninitiated (and many of the initiated in fact) the internals of Firefox FRIENDS – OXYMORONICAL For a while now I’ve been in a bit of a rut. I knew I was there I just hadn’t quite got the motivation to pull myself out of it. It wasn’t such a bad place to be, but the difference of being just ok with the way things are going and being exactly where you want to beand with
BRIDGING AN INTERNAL LAN TO A SERVER’S DOCKER CONTAINERS push "route 10.12.0.0 255.255.0.0". When the router connects to the VPS the VPN server will tell it that this route can be accessed through this connection. You should now be able to ping anything in that network range from the router. But neither the VPS 500PX – OXYMORONICAL Since the big changes to Flickr last week I’ve been mulling over the idea of switching to a different photo sharing site. 500px had caught my eye in the past as being a very similar concept to Flickr. It has social aspects like Flickr does, maybe even more so as it supports the notion of “liking” a photo as well as making it a “favourite”. MAKING COMMUNICATING WITH CHROME FROM IN-CONTENT PAGES As Firefox increasingly switches to support running in multiple processes we’ve been finding common problems. Where we can we aredesigning nice
AUDIO – OXYMORONICAL UPDATE: I’ll leave this around for posterity but a large part of this problem has now been fixed in the latest Raspberry Pi firmware.See here for instructions for raspbmc until that gets updated.. I’ve been in the process of setting up a Raspberry Pi in my office so I can play my mp3 collection through my old stereo. It’s generally gone well and I have to take my hat off to the PLEASE WATCH YOUR CHARACTER ENCODINGS Take the character “ñ”. In UTF-8 this is encoded as C3 B1. Decoding that as UTF-16 will result in “쎱”. In UTF-16 however “ñ” is encoded as 00 F1. Trying to decode that as UTF-8 will fail as that is in invalid UTF-8 sequence. Many languages thankfully use string types that have fixed encodings, in rust for example the str UPDATE CHANNEL SELECTOR This extension allows you to change the update channel your application receives updates from. If you don’t understand what this means then read about update channels. Be warned, this extension will allow you to change to an unstable update source. Unless you know what you’re doing I suggest you don’t use it. TESTING – OXYMORONICAL After a fair bit of work (feels like longer than 2 months) I’ve finally managed to get bug 382752 landed. What this gives us in simple terms is a set of functions that we can use in order to do unit testing on the extension manager. MODULE – OXYMORONICAL For a long long time Mozilla has governed its code (and a few other things) as a series of modules. Each module covers an area of code in the source and has an owner and a list of peers, folks that are knowledgeable about that module. MOBILE – OXYMORONICAL Since I posted last week about how I was experimenting with running Firefox on my Palm Pre a number of tech news sites, large and small, picked it up and posted their own take on it. Some of the sites (and some of the readers of those sites) made some fairly odd statements about my work. This is probably because to the uninitiated (and many of the initiated in fact) the internals of Firefox FRIENDS – OXYMORONICAL For a while now I’ve been in a bit of a rut. I knew I was there I just hadn’t quite got the motivation to pull myself out of it. It wasn’t such a bad place to be, but the difference of being just ok with the way things are going and being exactly where you want to beand with
BRIDGING AN INTERNAL LAN TO A SERVER’S DOCKER CONTAINERS push "route 10.12.0.0 255.255.0.0". When the router connects to the VPS the VPN server will tell it that this route can be accessed through this connection. You should now be able to ping anything in that network range from the router. But neither the VPS 500PX – OXYMORONICAL Since the big changes to Flickr last week I’ve been mulling over the idea of switching to a different photo sharing site. 500px had caught my eye in the past as being a very similar concept to Flickr. It has social aspects like Flickr does, maybe even more so as it supports the notion of “liking” a photo as well as making it a “favourite”. MAKING COMMUNICATING WITH CHROME FROM IN-CONTENT PAGES As Firefox increasingly switches to support running in multiple processes we’ve been finding common problems. Where we can we aredesigning nice
REVIEW – OXYMORONICAL TomTom made an interesting claim recently.Their summary is “when it comes to automotive-grade mapping, open source has some quite serious limitations, falling short on the levels of accuracy and reliability required for safe navigation” This is a bold claim and they talk about recent studies that back them up. Unfortunately none of them are referenced but it’s pretty clear from the text MODULE – OXYMORONICAL For a long long time Mozilla has governed its code (and a few other things) as a series of modules. Each module covers an area of code in the source and has an owner and a list of peers, folks that are knowledgeable about that module. MANAGEMENT – OXYMORONICAL TomTom made an interesting claim recently.Their summary is “when it comes to automotive-grade mapping, open source has some quite serious limitations, falling short on the levels of accuracy and reliability required for safe navigation” This is a bold claim and they talk about recent studies that back them up. Unfortunately none of them are referenced but it’s pretty clear from the text FRIENDS – OXYMORONICAL For a while now I’ve been in a bit of a rut. I knew I was there I just hadn’t quite got the motivation to pull myself out of it. It wasn’t such a bad place to be, but the difference of being just ok with the way things are going and being exactly where you want to beand with
CREATING HTML CONTENT WITH A FIXED ASPECT RATIO WITHOUT The answer to this according to almost all the searching I’ve done is the padding-top/bottom trick. For reasons that I don’t understand when using relative lengths (percentages) with the CSS padding-top and padding-bottom properties the values are calculated based on the width of the element. So padding-top: 100% gives you padding equal to MERCURIAL – OXYMORONICAL My handy tool for tracking changes to directories in the mozilla mercurial repositories is going to be broken for a little while. Unfortunately a particular changeset seems to be breaking things in ways I don’t have the time to fix right now. Specifically trying to download the raw patch for the changeset is causing hgweb to timeout. Short of finding time to debug and fix the problem my only 500PX – OXYMORONICAL Since the big changes to Flickr last week I’ve been mulling over the idea of switching to a different photo sharing site. 500px had caught my eye in the past as being a very similar concept to Flickr. It has social aspects like Flickr does, maybe even more so as it supports the notion of “liking” a photo as well as making it a “favourite”. ZIPWRITER – OXYMORONICAL Yes, finally after months of twiddling my thumbs waiting for approval to land the zipwriter component has gone into trunk, and is enabled for all applications (some apps might need to add the interface to their packages list). ON FIREFOX MODULE OWNERSHIP It has been over eleven years since I first wrote a patch for Firefox. It was reviewed by the then-Firefox module owner, Mike Connor. If you had told me then that at some point in the future I was going to be the module owner I probably would have laughed at you. I didn’t knowat
WHY DOES NO-ONE MAKE A MOUSE THAT I WANT? Hi have one of these too, which I bought after the sort of long search that Mossop has done. On the whole I like it, but there are some issues when using it with the builtin Bluetooth on a MacBook Pro (two year old model), where it will lose connection and take about 30 seconds to renegotiate the link.Skip to content
OXYMORONICAL
The humble opinions of Dave TownsendMenu and widgets
Search for:
TAGS
* addons
* amo
* bugs
* camera
* code
* commercial
* conference
* development
* extension manager
* extensions
* firefox
* friends
* help wanted
* holiday
* hosting
* idiots
* internet
* jetpack
* mccoy
* meme
* mercurial
* mobile
* module
* money
* moving
* music
* ntt
* palm
* peer
* performance
* photography
* planning
* restartless
* review
* sdk
* security
* sleep
* status
* testing
* time management
* tinderbox
* tools
* travel
* xulrunner
* zipwriter
CREATING HTML CONTENT WITH A FIXED ASPECT RATIO WITHOUT THE PADDINGTRICK
It seems to be a common problem, you want to display some content on the web with a certain aspect ratio but you don’t know the size you will be displaying at. How do you do this? CSS doesn’t really have the tools to do the job well currently (there are proposals). In
my case I want to display a video and associated controls as large as possible inside a space that I don’t know the size of. The size of the video also varies depending on the one being displayed.PADDING HEIGHT
The answer to this according to almost all the searching I’ve done is the padding-top/bottom trick. For reasons that I don’t understand when using relative lengths (percentages) with the CSS padding-top and padding-bottom properties the values are calculated based on the width of the element. So padding-top: 100% gives you padding equal to the width of the element. Weird. So you can fairly easily create a box with a height calculated from its width and from there display content at whatever aspect ratio you choose. But there’s an inherent problem here, you need to know the width of the box in the first place, or at least be able to constrain it based on something. In my case the aspect ratio of the video and the container are both unknown. In some cases I need to constrain the width and calculate the height, but in others I need to constrain the height and calculate the width which is where this trick fails.OBJECT-FIT
There is one straightforward solution. The CSS object-fit property allows you to scale up content to the largest size possible for the space allocated. This is perfect for my needs, except that it only works for replaced content like videos and images. In my case I also need to overlay some controls on top and I won’t know where to position them unless they are inside a box the size of the video.THE SOLUTION?
So what I need is something where I can create a box with set sizes and then scale both width and height to the largest that fit entirely in the container. What do we have on the web that can do that … oh yes, SVG. In SVG you can define the viewport for your content and any shapes you like inside with SVG coordinates and then scale the entire SVG viewport using CSS properties. I want HTML content to scale here and luckily SVG provides the foreignObject element which lets you define a rectangle in SVG coordinates that contains non-SVG content, such as HTML! So here is what I came upwith:
This is pretty straightforward. It creates an SVG document with a viewport with a 4:3 aspect ratio, a foreignObject container that fills the viewport and then a div that fills that. what you end up with is a div with a 4:3 aspect ratio. While this shows it working against the full page it seems to work anywhere with constraints on either height, width or both such as in a flex or grid layout. Obviously changing the viewBox allows you to get any aspect ratio you like, just setting it to the size of the video gives me exactly what I want. You can see it working over on codepen.
Posted on October 30, 2019Categories
general
,
mozilla
,
technical Tags
code , css
, development
, html
, svg
A SIMPLE COMMAND TO OPEN ALL FILES WITH MERGE CONFLICTS When I get merge conflicts in a rebase I found it irritating to open up the problem files in my editor, I couldn’t find anything past copying and pasting the file path or locating it in the source tree. So I wrote a simple hg command to open all the unresolved files into my editor. Maybe this is useful to you too? unresolved = !$HG resolve -l "set:unresolved()" -T "{reporoot}/{path}\0" | xargs -0 $EDITOR Posted on October 9, 2019Categories
general
,
mozilla
,
technical Tags
development ,
mercurial
PLEASE WATCH YOUR CHARACTER ENCODINGS I started writing this as a newsgroup post for one of Mozilla’s mailing lists, but it turned out to be too long and since this part was mainly aimed at folks who either didn’t know about or wanted a quick refresher on character encodings I decided to blog it instead. Please let me know if there are errors in here, I am by no means an expert on this stuff either and I do get caught out sometimes! Text is tricky. Unicode supports the notion of 1,114,112 distinct characters, slightly more than a byte of memory can hold. So to store a character we have to use a way of encoding its value into bytes in memory. A straightforward encoding would just use three bytes per character. But (roughly) the larger the character value the less often it is used, and memory is precious, so often variable length encodings are used. These will use fewer bytes in memory for characters earlier in the range at the cost of using a little more memory for the rarer characters. Common encodings include UTF-8 (one byte for ASCII characters, up to four bytes for other characters) and UTF-16 (two bytes for most characters, four bytes for less used ones). What does this mean? IT MAY NOT BE POSSIBLE TO KNOW THE NUMBER OF CHARACTERS IN A STRING PURELY BY LOOKING AT THE NUMBER OF BYTES OF MEMORY USED. When a string is encoded with a variable length encoding the number of bytes used by a character will vary. If the string is held in a byte buffer just dividing its length by some number will not always return the number of characters in a string. Confusingly many string implementations expose a length property, that often only tells you THE NUMBER OF CODE POINTS, NOT THE NUMBER OF CHARACTERS in a string. I bet most JavaScript developers don’t know that JavaScript suffersfrom this:
let test = "\u{1F42E}"; // This is the Unicode cow (https://emojipedia.org/cow-face/) test.length; // This returns 2! test.charAt(0); // This returns "\ud83d" test.charAt(1); // This returns "\udc2e" test.substring(0, 1); // This returns "\ud83d"Fun!
More modern versions of JavaScript do give better options, though they are probably slower than the length property (because it must decode the characters to understand the length: Array.from(test).length; // This returns 1 test.codePointAt(0).toString(16); // This returns "1f42e" WHEN YOU ENCODE A CHARACTER INTO MEMORY AND PASS IT TO SOME OTHER CODE, THAT CODE NEEDS TO KNOW THE ENCODING SO IT CAN DECODE IT CORRECTLY. USING THE WRONG ENCODER/DECODER WILL LEAD TO INCORRECTDATA.
Using the wrong decoder to convert a buffer of memory into characters will often fail. Take the character “ñ”. In UTF-8 this is encoded as C3 B1. Decoding that as UTF-16 will result in “쎱”. In UTF-16 however “ñ” is encoded as 00 F1. Trying to decode that as UTF-8 will fail as that is in invalid UTF-8 sequence. Many languages thankfully use string types that have fixed encodings, in rust for example the str primitive is UTF-8 encoded. In these languages as long as you stick to the normal string types everything should just work. It isn’t uncommon though to do manipulations based on the byte representation of the characters, %-encoding a string for a URL for example, so knowing the character encoding is stillimportant.
Some languages though have string types where the encoding may not be clear. In Gecko C++ code for example a very common string type in use is the nsCString. It is really just a set of bytes and has no defined encoding and no way of specifying one at the code level. The only way to know for sure what the string is encoded as is to track back to where it was created. If you’re unlucky it gets created in multiple places using different encodings! Funny story. This blog posts contains a couple of the larger unicode characters. While working on the post I kept coming back to find that the character had been lost somewhere along the way and replaced with a “?”. Seems likely that there is a bug in WordPress that isn’t correctly handling character encodings. I’m not sure yet whether those characters will survive publishing this post! THESE PROBLEMS DISPROPORTIONATELY AFFECT NON-ENGLISH SPEAKERS. Pretty much all of the characters that English speakers use (mostly the Latin alphabet) live in the ASCII character set which covers just 128 characters (some of these are control characters). The ASCII characters are very popular and though I can’t find references right now it is likely that the majority of strings used in digital communication are made up of only ASCII characters, particularly when you consider strings that humans don’t generally see. HTTP request and response headers generally only use ASCII characters for example. Because of this popularity when the Unicode character set was first defined, it mapped the 128 ASCII characters to the first 128 Unicode characters. Also UTF-8 will encode those 128 characters as a single byte, any other characters get encoded as two bytes or more. The upshot is that if you only ever work with ASCII characters, encoding or decoding as UTF-8 or ASCII yields identical results. Each character will only ever take up one byte in memory so the length of a string will just be the number of bytes used. An English speaking developer, and indeed many other developers may only ever develop and test with ASCII characters and so potentially become blind to the problems above and not notice that they aren’t handling non-ASCII characters correctly. At Mozilla where we try hard to make Firefox work in all locales we still routinely come across bugs where non-ASCII characters haven’t been handled correctly. Quite often issues stem from a user having non-ASCII characters in their username or filesystem causing breakage if we end up decoding the path incorrectly. This issue may start getting rarer. With the rise in emoji popularity developers are starting to see and test with more and more characters that encode as more than one byte. Even in UTF-16 many emoji encode tofour bytes.
SUMMARY
If you don’t care about non-ASCII characters then you can ignore all this. But if you care about supporting the 80% of the world that use non-ASCII characters then take care when you are doing something with strings. Make sure you are checking its length correctly when needed. If you are working with data structures that don’t have an explicit character encoding then make sure you know what encoding your data is in before doing anything with it other than passing it around. Posted on July 10, 2019July 10, 2019Categories
mozilla
,
technical Tags
code , development
, encoding
, localization
BRIDGING AN INTERNAL LAN TO A SERVER’S DOCKER CONTAINERS OVER A VPN I recently decided that the basic web hosting I was using wasn’t quite a configurable or powerful as I would like so I have started paying for a VPS and am slowly moving all my sites over to it. One of the things I decided was that I wanted the majority of services it ran to be running under Docker. Docker has its pros and cons but the thing I like about it is that I can define what services run, how they run and where they store all their data in a single place, separate from the rest of the server. So now I have a /srv/docker directory which contains everything I need to backup to ensure I can reinstall all the services easily, mostly regardless of the rest of the server. As I was adding services I quickly realised I had a problem to solve. Some of the services were obviously external facing, nginx for example. But a lot should not be exposed to the public internet but needed to still be accessible, web management interfaces etc. So I wanted to figure out how to easily access them remotely. I considered just setting up port forwarding or a socks proxy over ssh. But this would mean having to connect to ssh whenever needed and either defining all the ports and docker IPs (which I would then have to make static) in the ssh config or having to switch proxies in my browser whenever I needed to access a service and also would only really support web protocols. Exposing them publicly anyway but requiring passwords was another option, I wasn’t a big fan of this either though. It would require configuring an nginx reverse proxy or something everytime I added a new service and I thought I could come up with something better. At first I figured a VPN was going to be overkill, but eventually I decided that once set up it would give me the best experience. I also realised I could then set up a persistent VPN from my home network to the VPS so when at home, or when connected to my home network over VPN (already set up) I would have access to the containers without needing to do anything else. Alright, so I have a home router that handles two networks, the LAN and its own VPN clients. Then I have a VPS with a few docker networks running on it. I want them all to be able to access each other and as a bonus I want to be able to just use names to connect to the docker containers, I don’t want to have to remember static IP addresses. This is essentially just using a VPN to bridge the networks, which is covered in many other places, except I had to visit so many places to put all the pieces together that I thought I’d explain it in my own words, if only so I have a single place to read when I need to do thisagain.
In my case the networks behind my router are 10.10.* for the local LAN and 10.11.* for its VPN clients. On the VPS I configured my docker networks to be under 10.12.*. 0. CONFIGURE IP FORWARDING. The zeroth step is to make sure that IP forwarding is enabled and not firewalled any more than it needs to be on both router and VPS. How you do that will vary and it’s likely that the router will already have it enabled. At the least you need to use sysctl to set net.ipv4.ip_forward=1 and probably tinker with your firewall rules. 1. SET UP A BASIC VPN CONNECTION. First you need to set up a simple VPN connection between the router and the VPS. I ended up making the VPS the server since I can then connect directly to it from another machine either for testing or if my home network is down. I don’t think it really matters which is the “server” side of the VPN, either should work, you’ll just have to invert some of the description here if you choose theopposite.
There are many many tutorials on doing this so I’m not going to talk about it much. Just one thing to say is that you must be using certificate authentication (most tutorials cover setting this up), so the VPS can identify the router by its common name. Don’t add any “route” configuration yet. You could use redirect-gateway in the router config to make some of this easier, but that would then mean that all your internet traffic (from everything on the home LAN) goes through the VPN which I didn’t want. I set the VPN addresses to be in 10.12.10.* (this subnet is not used by any of the docker networks). Once you’re done here the router and the VPS should be able to ping their IP addresses on the VPN tunnel. The VPS IP is 10.12.10.1, the router’s gets assigned on connection. They won’t be able to reach beyond that yet though. 2. MAKE THE DOCKER CONTAINERS VISIBLE TO THE ROUTER. Right now the router isn’t able to send packets to the docker containers because it doesn’t know how to get them there. It knows that anything for 10.12.10.* goes through the tunnel, but has no idea that other subnets are beyond that. This is pretty trivial to fix. Add this to the VPS’s VPN configuration: push "route 10.12.0.0 255.255.0.0" When the router connects to the VPS the VPN server will tell it that this route can be accessed through this connection. You should now be able to ping anything in that network range from the router. But neither the VPS nor the docker containers will be able to reach the internal LANs. In fact if you try to ping a docker container’s IP from the local LAN the ping packet should reach it, but the container won’t know how to return it! 3. MAKE THE LOCAL LAN VISIBLE TO THE VPS. Took me a while to figure this out. Not quite sure why, but you can’t just add something similar to a VPN’s client configuration. Instead the server side has to know in advance what networks a client is going to give access to. So again you’re going to be modifying the VPS’s VPN configuration. First the simple part. Add this to theconfiguration file:
route 10.10.0.0 255.255.0.0 route 10.11.0.0 255.255.0.0 This makes openVPN modify the VPS’s routing table telling it it can direct all traffic to those networks to the VPN interface. This isn’t enough though. The VPN service will receive that traffic but not know where to send it on to. There could be many clients connected, which one has those networks? You have to add some client specific configuration. Create a directory somewhere and add this to the configuration file: client-config-dir /absolute/path/to/directory Do NOT be tempted to use a relative path here. It took me more time than I’d like to admit to figure out that when running as a daemon the open vpn service won’t be able to find it if it is a relative path. Now, create a file in the directory, the filename must be exactly the common name of the router’s VPN certificate. Inside itput this:
iroute 10.10.0.0 255.255.0.0 iroute 10.11.0.0 255.255.0.0 This tells the VPN server that this is the client that can handle traffic to those networks. So now everything should be able to ping everything else by IP address. That would be enough if I didn’t also want to be able to use hostnames instead of IP addresses. 4. SETTING UP DNS LOOKUPS. Getting this bit to work depends on what DNS server the router is running. In my case (and many cases) this was dnsmasq which makes this fairly straightforward. The first step is setting up a DNS server that will return results for queries for the running docker containers. I found the useful dns-proxy-server. It runs as the
default DNS server on the VPS, for lookups it looks for docker containers with a matching hostname and if not forwards the request on to an upstream DNS server. The VPS can now find the a docker container’s IP address by name. For the router (and so anything on the local LAN) to be able to look them up it needs to be able to query the DNS server on the VPS. This meant giving the DNS container a static IP address (the only one this entire setup needs!) and making all the docker hostnames share a domain suffix. Then add this line to the router’s dnsmasq.conf: server=/5. DONE!
Everything should be set up now. Enjoy your direct access to your docker containers. Sorry this got long but hopefully it will be useful to others in the future. Posted on March 14, 2019Categories
general
Tags
docker , networking
, openvpn
, vpn
WELCOMING A NEW FIREFOX/TOOLKIT PEER Please join me in welcoming Bianca Danforth to the set of peers blessed with reviewing patches to Firefox and Toolkit. She’s been doing great work making testing experiment extensions easy and so it’s time for her to level-up. Posted on February 13, 2019February 13, 2019Categories
mozilla
Tags
development ,
firefox , module
, peer
TAMING PHABRICATOR
So Mozilla is going all-in on Phabricator and Differential as a code review tool. I have mixed feelings on this, not least because it’s support for patch series is more manual than I’d like. But since this is the choice Mozilla has made I might as well start to get used to it. One of the first things you see when you log into Phabricator is a default view full of information. It’s a little overwhelming for my tastes. The Recent Activity section in particular is more than I need, it seems to list anything anyone has done with Phabricator recently. Sorry Ted, but I don’t care about that review comment you posted. Likewise the Active Reviews section seems very full when it is barely listing any reviews. But here’s the good news. Phabricator lets you create your own dashboards to use as your default view. It’s a bit tricky to figure out so here is a quick crash course.Click on Dashboards
on the left
menu. Click on Create Dashboardin the
top right, make your choices then hit Continue. I recommend starting with an empty Dashboard so you can just add what you want to it. Everything on the next screen can be modified later but you probably want to make your dashboard only visible to you. Once created click “Install Dashboard” at the top right and it will be added to the menu on the left and be the default screen when you load Phabricator. Now you have to add searches to your dashboard. Go to Differential’sadvanced search
.
Fill out the form to search for what you want. A quick example. Set “Reviewers” to “Current Viewer”, “Statuses” to “Needs Review”, then click Search. You should see any revisions waiting on you to review them. Tinker with the search settings and search all you like. Once you’re happy click “Use Results” and “Add to Dashboard”. Give your search a name and select your dashboard. Now your dashboard will display your search whenever loaded. Add as many searches as you like! Here is my very simple dashboard that lists anything I have to review, revisions I am currently working on and an archive of closed work: Like it? I made it public and you can see it and install itto use
yourself if you like! Posted on June 19, 2018June 19, 2018Categories
mozilla
Tags
development ,
firefox
SEARCHFOX IN VS CODE I spend most of my time developing flipping back and forth between VSCode and Searchfox
. VS Code is a great editor but it has nowhere near the speed needed to do searches over the entire tree, at least on my machine. Searchfox on the other hand is pretty fast. But there’s something missing. I usually want to search Searchfox for something I found in the code. Then I want to get the file I found in Searchfoxopen in my editor.
Luckily VS Code has a decent extension system that allows you to add new features so I spent some time yesterday evening building an extension to integration some of Searchfox’s functionality into VS Code. With the extension installed you can search Searchfox for something from the code editor or pop open an input box to write your own query. The results show up right in VS Code.Searchfox
in VS Code
Click on a result in Searchfox and it will open the file in an editor in VS Code, right at the line you wanted to see. It’s pretty early code so the usual disclaimers apply, expect some bugs and don’t be too surprised if it changes quite a bit in the near-term. You can check out the fairly simple code (rendering the Searchfox page is the hardest part of it) on Github.
If you want to give it a try, install the extension from the VS CodeMarketplace
or find it by searching for “Searchfox” in VS Code itself. Feelfree to file issues
for bugs or
improvements that would be useful or of course submit pull requests of your own! I’d love to hear if you find it useful. Posted on June 7, 2018Categories
mozilla
Tags
development ,
firefox , tools
5 Comments on Searchfoxin VS Code
EVEN MORE NEW PEERS
Please welcome the latest new peers to Firefox and Toolkit:* Johann Hofmann
* Nihanth Subramanya As you might gather I’ve been updating the peer list a lot lately trying to catch up with reality. If there is anyone I’m missing thenplease let me know!
Posted on September 20, 2017September 20, 2017Categories
mozilla
Tags
development ,
module , peer
HOW DO YOU BECOME A FIREFOX PEER? THE ANSWER MAY SURPRISE YOU! So you want to know how someone becomes a peer? Surprisingly the answer is pretty unclear. There is no formal process for peer status, at least for Firefox and Toolkit. I haven’t spotted one for other modules either. What has generally happened in the past is that from time to time someone will come along and say, “Oh hey, shouldn’t X be a peer by now?” to which I will say “Uhhh maybe! Let me go talk to some of the other peers that they have worked with”. After that magic happens and I go and update the stupid wiki pages, write a blog post and mail the new peers to congratulate them. I’d like to formalise this a little bit and have an actual process that new peers can see and follow along to understand where they are. I’d like feedback on this idea, it’s just a straw-man at this point. With that I give you … THE ROAD TO PEERSHIP (cue dramaticmusic).
* INTRO PATCH AUTHOR. You write basic patches, request review and get them landed. You might have level 1 commit access, probably notlevel 3 yet though.
* SENIOR PATCH AUTHOR. You are writing really good patches now. Not just simple stuff. Patches that touch multiple files maybe even multiple areas of the product. Chances are you have level 3 commit access. Reviewers rarely find significant issues with your work (though it can still happen). Attention to details like maintainability and efficiency are important. If your patches are routinely getting backed out or failing tests then you’re not hereyet.
* INTRO REVIEWER. Before being made a full peer you should start reviewing simple patches. Either by being the sole reviewer for a patch written by a peer or doing an initial review before a peer does a final sign-off. Again paying attention to maintainability and efficiency are important. As is being clear and polite in your instructions to the patch author as well as being open to discussion where disagreements happen. * FULL PEER. You, your manager or a peer reach out to me showing me cases where you’ve completed the previous levels. I double-check with a couple of peers you’ve work with. Congratulations, you made it! Follow-up on review requests promptly. Be courteous. Re-direct reviews that are outside your area of expertise. Does this sound like a reasonable path? What criteria am I missing? I’m not yet sure what length of time we would expect each step to take but I am imagine that more senior contributors could skipstraight to step 2.
Feedback welcome here or in private by email. Posted on September 13, 2017September 20, 2017Categories
mozilla
Tags
development ,
module , peer
3 Comments on How do you become a Firefox peer? The answer may surprise you! NEW FIREFOX AND TOOLKIT MODULE PEERS Please join me in welcoming another set of brave souls willing to help shepherd new code into Firefox and Toolkit:* Luke Chang
* Ricky Chien
* Luca Greco
* Kate Hudson
* Tomislav Jovanovic* Ray Lin
* Fischer Liu
While going through this round of peer updates I’ve realised that it isn’t terribly clear how people become peers. I intend to rectify that in a coming blog post.
Posted on September 12, 2017September 20, 2017Categories
mozilla
Tags
development ,
module , peer
POSTS NAVIGATION
Page 1 Page 2 … Page 27Next page
Proudly powered by WordPressDetails
Copyright © 2024 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0