RSS is a tool that solves one of our greatest problems in our connected world: Information Overload.

What is RSS?

Really Simple Syndication (RSS) is a standard protocol for websites to share information with other sites and applications. This is used by blogs and news sites to syndicate their content in an accessible way. Thanks to this standard you can subscribe to a website’s RSS feed and get updates as new content becomes available.

Why Should I use it?

Imagine you are someone really interested in technology. You frequently check several tech blogs (including this one) and some YouTube channels. There is also a store on Etsy that you love and must have every one of their products. You check every week for updates. Unfortunately you have trouble keeping up:

  • Some sites update so infrequently that you feel like you are wasting your time when you check and see no new content.
  • That one columnist on the New York Times, you really love but there is too much noise with all the other news.
  • You end up overwhelmed by all these sites and start to forget creators you love.
  • You end up seeing the same information whenever a new trend hits the tech world

RSS and a little work on your part can fix these issues. Not only can you get notified when there is new content, but you can filter this information at a glance.

Many RSS readers and tools also aggregate content based on interest. This can help you find more content that is relevant to you.

Getting started with RSS

The first thing you need to filter your information intake is a Feed Reader or News Aggregator app. RSS is old technology so there are many to chose form.

Feedly is one of the most popular readers on the market and supports web and mobile platforms.

Feedly's UI After Login

Feedly already has an excellent tutorial on their website so we will not cover too much here. Unfortunately advanced filtering of your feed is limited to a payed account. You also have to trust an online service to not filter your results and respect your privacy. If all you want is to curate your news by source this is a great way to do it.

If you need more power and a healthier relationship with you phone you can use a desktop news client. The two desktop clients I will be covering today are Thunderbird and QuietRSS. Both applications follow a similar approach to RSS.


Mozilla Thunderbird is an email client, calendar, and news reader. You will not have much trouble if you already use it to organize your emails. It comes pre-installed in many Linux distros and is available on all desktop platforms. There are better options, but Thunderbird will serve most user’s needs.

To add a RSS feed to Thunderbird you will first have to make a Feed Account. Click the Menu -> New -> Feed Account… and then name your RSS Folder.

Click on your account folder to add and manage feed subscriptions. It is rather straightforward, you take the URL of a feed and paste it into the Feed URL box, chose the folder you want to store the articles in, decide if you want to load the whole article or only a summery, and how often it should check for updates.


QuietRSS is a free and open source desktop RSS reader. Quiet is simple and easy to use as it is a dedicated RSS reader. It also has an integrated web browser for viewing articles from the source, something Thunderbird lacks without extensions. It is available for Linux, Mac, and Windows.

You can click on the Plus icon to add a new article to your feed in Quiet. Then select next to pick a folder to store your feed in.

You can add Random Thought’s RSS feed using this URL:

Filtering Messages

Now that you have narrowed down your news sources you might be thinking “We are finally done!” and you could be right. If you are happy with what you see in your feed and can quickly glance at titles to filter content yourself then we are done. Filters though can help you refine your feed and help keep information overload at bay.

Both Thunderbird and Quiet have very similar filter support. The main difference is Quiet lets you filter by feed if so desired.

Quiet (left) and Thunderbird (right)

You select a condition like Title/Subject contains Zoom, then an action such as Delete. Filters are rather simple, but can be very powerful.

Find RSS

RSS is all around us on the web. Blogs, news sites, and even subreddits have RSS feeds for you to subscribe to. Some useful places to look are:

New York Times
Add .atom to the end of GitLab and GitHub repos for that repo’s RSS feed
Add .rss to the end of a reddit url for that page’s RSS feed.

Add a YouTube channels using the following URL:

Enter the channel ID after the equals sign.

Take Back your Life with RSS

In this day and age we are bombarded with content. RSS helps us control that content, filter it down, and find what maters most to us. With RSS we can cut the time we spend looking at the news, help avoid bias algorithms and Facebook filters, and develop a healthier relationship with the content we chose to consume.

Last time we explored the map making interface and made our first map in RPG Maker. It looks nice, but there is not much for the player to do.

RPG Maker Edited Map

Enter Events

Events are a collection of commands that happen under certain conditions. Think of these like mini-programs. A shop keeper is an event, a map change is an event, even battles can be triggered by events.

To get started we need to enter Event Mode(F6) before we can start adding events. A grid should appear showing you the dividing lines of each tile. Right click anywhere on the map and you will see a context menu with many options for events. Click new and the event editor will open up.

The Event Editor

RPG Maker new event window

There is a lot going on here, but fortunately RPG Maker splits the window into easy to understand parts.

Title Bar

In the title bar we have the event ID, this is the number that will get referenced by other events and scripts we write in the future.

Name and Page Controls

Then we have the event name, this is for your reference and will not be seen by the player.

Notes are similar to the name in that they are for your reference, but some plugins use them for special commands.

Next we have page editing features. Events are broken up into pages. Most events we will work with will only have one or two pages, but you can have up to 20 different pages. You can see that all sections underneath this part of the interface are in a tab, this is an event page.

Page Conditions

This is where event pages come in handy. We will explain this stuff in detail in a later article, but events that have unmet conditions will not execute. Each page can have a condition. Lets say we want something to happen only once or the dialogue of a character changes each time we talk to them, this is where you can make that happen.


RPG Maker Sprite Seclector

Events are invisible to the player by default, but we can give them a character image. These images can be doors, switches, animals, monsters, or anything else that you would like your player to interact with. Each character image is split into cells. These cells are three by four. This makes an animated character sprite. The first image is the right foot, then standing still, and finally the left foot. The process repeats downwards for each direction. These characters are placed on a sheet of 8 characters.

Images are a bit complex and we will cover them in-depth at a later date.

Autonomous Movement

Movement is another complex feature that could use an article of its own. With autonomous movement you can make a sprite move without any input from the player. This can be random, always moving towards the player(Approach), or defined by you(Custom). Speed is how fast the sprite moves and frequency is how often.

We will be working a lot with movement in the future, but it is okay to set this one to fixed for now.


Options determine how the event will be displayed.

Walking displays animation when moving, this is what we want to use for most of our characters.

Stepping displays the stepping animation while the character is stopped. This makes fire and lights glow automatically. This can also make a character walk in place.

Direction Fix prevents the direction that the image is facing from changing while moving.

Through allows to pass through terrain and events that cannot be passed through.


Priority determines how the event will interact with the player and others.

Below characters will let players and so on will be able to move on top of this event.

Same as characters will be at the same height as characters, and it will not be possible to go through this event.

Above characters players and so on will be able to move beneath this event.


Triggers determine how the event activates.

Action Button activates the event when the player is touching the event and presses the action button. This is how events are handled by default.

Player Touch activates when the player touches the event. You could use this for things like pressure plates.

Event Touch activates when an event makes contact with a player through either their autonomous movement or the player touching them.

Autorun activates as soon as event conditions are met. This is useful for introduction sequences and one time events that must trigger no mater what.

Parallel activates the same way as autorun, but the it runs in the background. This lets the player move and continue playing even as the event is executing. This is great for background elements that need to happen, but should not interrupt gameplay.

Autorun and parallel can cause your game to enter an endless loop if you do not stop it. Always end your autorunning events with something that stops them from running.
RPG Maker Event Commands

Event Contents

The right side of the event editor contains all the event commands. This is where the magic happens. Today we will only cover a few commands, but these will be the building blocks for more complex systems in the future.

Double click in the contents section to open up a list of event commands. There are a lot of them, but they are broken up into easy to digest Groups.

We are going to start with the Show Text command. This will let us make a dialogue box that the player will see when they activate the event. We can chose a face image to show along with the text. You can change the background and position if you wish. For this example we will have the character say “Hi, how are you?”

Now that we have a question we should let the player respond. We will use the Show Choices command to do so. This will let the player make a choice, we can execute different commands based on their response.

Lets say “Good” and “Terrible” are our choices. When we enter the command you will see that there is text that says “When good”, “When Terrible”, and “End”. Every command we place in the Good section will only execute when the player selects “Good” and the terrible section only executes if “Terrible” is selected. Everything entered after the End statement will execute no matter what.

Lets make our event respond to the player’s choice. Afterwards our event should look something like this:

Now we just need to play test the game. Give it a try and see your world come to life!

Wrapping Up

RPG Maker has many more commands that we will cover in the future. You should read the documentation for more details in what each event command does.

We will start building our database and make more events in the next few tutorials. Look forward to it.

This year was a bit slow, but we published four detailed articles and started a new series of posts on game design. We also redesigned the website and started a news letter.

Posts at a Glance

We began making a simple video game in RPG Maker MV this year. First we established the cost and scope of the project. Then we covered the RPG Maker Interface and Map editor.

We covered two valuable networking tools along our RPG Maker project: ipconfig and ping. These quick overviews of are the start of a larger glossary of Windows 10 and Linux command-line tools.

Going Forward

We plan to continue our RPG Maker series in 2019. Our next article will be on basic event creation, then we will cover each page of the Database. After building this foundation we can start making little tutorials covering specific events, puzzles, and plugins.

There are many ideas we have yet to cover and it takes a lot of work writing about them. We plan to have guest writers publish content to help improve the quality and quantity of content.

We will be pushing updates through our new email list that you can subscribe to here or on the sidebar of this page.

See you in 2018!

Now that we have our story and game engine, we are ready to start making our game in RPG Maker MV.

Creating a new Project

We need to make a new project before we can start making our game. To do so we have to go to the file menu at the top of the screen and press New Project… or CTRL+N.

A dialogue box will ask you for the Project name, Game Title, and the Directory you wish to save it under.

New Project in RPG Maker
Making a new project is easy.

I will call the file MercenaryTutorial so it is easy to find, the game is going to be about a war so the working title will be The Great War (we will change it later), and we will save it where we can easily find it later.

Navigating RPG Maker

RPG Maker MV has a lot of powerful features tucked away in a relatively simple interface. When you open up your new project you will see a window that looks like this:

RPG Maker Editor Window


At the top of the screen we have a menu bar. Most options should be familiar with you as they appear in other programs so I will only cover RPG Maker specific options.

  1. File contains options for opening, creating, and deploying Projects
  2. Edit holds copy, cut, paste, and find.
  3. Mode lets you select between Event and Map Editing Modes (We will talk about that latter).
  4. Draw lets you select your brush when in Map mode.
  5. Scale lets you zoom the map display in and out.
  6. Tools is where all of RPG Maker’s power lies. Most of the editing features are contained here. The database, plugin manager, sound room, event search, resource manager, character generator, and the options for the editor. We will cover each of these at a later date.
  7. Game lets you play test your game or open the directory it is saved in.
  8. Help gives you RPG Maker’s Documentation, a basic tutorial, and a simple about dialogue box.


The tool bar has functions similar to the Menu, but these are displayed as icons so you can quickly access common functions. They are separated into groups.

  1. New, Open, and Save Project
  2. Cut, copy, and paste
  3. Undo
  4. Map and Event Mode
  5. Brushes: Pencil, rectangle, ellipse, flood fill, and shadow pen
  6. Zoom options
  7. Database, plugins, sound, event search, resources, and character generator
  8. Playtest (You will be using this often)

Maps and Tilesets

On the far left corner you will see a sidebar split into two parts. The top is your tileset. This consists of your pallet of tiles to draw your maps with. There are tabs at the bottom labeled A-E and R. Different tilesets will have different tabs, but tab A and R are always available.

We have a list of all maps in your game underneath the tile pallet. You can make, delete, and modify the properties of maps.

Event and Map Editor

The largest section of the window is the map and event editor. This is the section where you design your maps and the things that happen in them. You can only edit the map in map mode and events in event mode. 

If you click on a tile in the tileset pallet and enter map mode you can change the way the map looks. Give it a try.

RPG Maker Edited Map

The Footer

At the bottom of the screen is a bar that tells you what map you are on, that maps dimensions in tiles, and the current tile’s location if you are in event mode.

Wrapping Up

We setup our RPG Maker project, learned about the main window, and even drew our first map. We will learn the basics of events and playtest our game in the next tutorial.

Read the help file in the mean time, it holds a wealth of information on how to use RPG Maker. You should also take a look at the RPG Maker Forums, the community has helpful resources available for anyone interested in making a game.

A lot of us hear the word ping used a lot in gaming and when we are having network issues, but what exactly is ping?


ping is a command line tool that is used to measure the round-trip time for messages sent from one computer to another. This is often used to test if there is a connection between your computer and a website.

Command Options
Option Description
-t Ping the specified host until stopped. To see statistics and continue – type Control-Break; To stop – type Control-C.
-a Resolve addresses to hostnames.
-n count Number of echo requests to send.
-l size Send buffer size.
-f Set Don’t Fragment flag in packet (IPv4-only).
-i TTL Time to Live.
-r count Record route for count hops (IPv4-only)
-s count Timestamp for count hops (IPv4-only).
-j host-list Loose source route along host-list (IPv4-only).
-k host-list Strict source route along host-list (IPv4-only).
-w timeout Timeout in milliseconds to wait for each reply.
-S srcaddr Source address to use.
-c compartment Routing compartment identifier.
-p Ping a Hyper-V Network Virtualization provider address.
-4 Force using IPv4.
-6 Force using IPv6.
Option Description
-a Audible ping.
-A Adaptive ping. Interpacket interval adapts to round-trip time, so that effectively not more than one (or more, if preload is set) unanswered probes present in the network. Minimal interval is 200msec for not super-user. On networks with low rtt this mode is essentially equivalent to flood mode.
-b Allow pinging a broadcast address.
-B Do not allow ping to change source address of probes. The address is bound to one selected when ping starts.
-c count Stop after sending count ECHO_REQUEST packets. With deadline option, ping waits for count ECHO_REPLY packets, until the timeout expires.
-d Set the SO_DEBUG option on the socket being used. Essentially, this socket option is not used by Linux kernel.
-F flow label Allocate and set 20 bit flow label on echo request packets. (Only ping6). If value is zero, kernel allocates random flow label.
-f Flood ping. For every ECHO_REQUEST sent a period ”.” is printed, while for ever ECHO_REPLY received a backspace is printed. This provides a rapid display of how many packets are being dropped. If interval is not given, it sets interval to zero and outputs packets as fast as they come back or one hundred times per second, whichever is more. Only the super-user may use this option with zero interval.
-i interval Wait interval seconds between sending each packet. The default is to wait for one second between each packet normally, or not to wait in flood mode. Only super-user may set interval to values less 0.2 seconds.
-I interface address Set source address to specified interface address. Argument may be numeric IP address or name of device. When pinging IPv6 link-local address this option is required.
-l preload If preload is specified, ping sends that many packets not waiting for reply. Only the super-user may select preload more than 3.
-L Suppress loopback of multicast packets. This flag only applies if the ping destination is a multicast address.
-n Numeric output only. No attempt will be made to lookup symbolic names for host addresses.
-Q tos Set Quality of Service -related bits in ICMP datagrams. tos can be either decimal or hex number. Traditionally (RFC1349), these have been interpreted as: 0 for reserved (currently being redefined as congestion control), 1-4 for Type of Service and 5-7 for Precedence. Possible settings for Type of Service are: minimal cost: 0x02, reliability: 0x04, throughput: 0x08, low delay: 0x10. Multiple TOS bits should not be set simultaneously. Possible settings for special Precedence range from priority (0x20) to net control (0xe0). You must be root (CAP_NET_ADMIN capability) to use Critical or higher precedence value. You cannot set bit 0x01 (reserved) unless ECN has been enabled in the kernel. In RFC2474, these fields has been redefined as 8-bit Differentiated Services (DS), consisting of: bits 0-1 of separate data (ECN will be used, here), and bits 2-7 of Differentiated Services Codepoint (DSCP).
-q Quiet output. Nothing is displayed except the summary lines at startup time and when finished.
-R Record route. Includes the RECORD_ROUTE option in the ECHO_REQUEST packet and displays the route buffer on returned packets. Note that the IP header is only large enough for nine such routes. Many hosts ignore or discard this option.
-r Bypass the normal routing tables and send directly to a host on an attached interface. If the host is not on a directly-attached network, an error is returned. This option can be used to ping a local host through an interface that has no route through it provided the option -I is also used.
-s packetsize Specifies the number of data bytes to be sent. The default is 56, which translates into 64 ICMP data bytes when combined with the 8 bytes of ICMP header data.
-S sndbuf Set socket sndbuf. If not specified, it is selected to buffer not more than one packet.
-t ttl Set the IP Time to Live.
-T timestamp option Set special IP timestamp options. timestamp option may be either tsonly (only timestamps), tsandaddr (timestamps and addresses) or tsprespec host1 [host2 [host3 [host4]]] (timestamp prespecified hops).
-M hint Select Path MTU Discovery strategy. hint may be either do (prohibit fragmentation, even local one), want (do PMTU discovery, fragment locally when packet size is large), or dont (do not set DF flag).
-U Print full user-to-user latency (the old behaviour). Normally ping prints network round trip time, which can be different f.e. due to DNS failures.
-v Verbose output.
-V Show version and exit.
-w deadline Specify a timeout, in seconds, before ping exits regardless of how many packets have been sent or received. In this case ping does not stop after count packet are sent, it waits either for deadline expire or until count probes are answered or for some error notification from network.
-W timeout Time to wait for a response, in seconds. The option affects only timeout in absense of any responses, otherwise ping waits for two RTTs.
Note: Linux uses ping and ping6 to distinuish between IPv4 and IPv6

Use Case

If you are having issues connecting to the internet many will try to test the issue by sending a ping request to a known working website. We will use in this example.

If we run the command ping we should get the following output:

Successful ping
Pinging [] with 32 bytes of data:

Reply from bytes=32 time=22ms TTL=53

Reply from bytes=32 time=26ms TTL=53

Reply from bytes=32 time=23ms TTL=53

Reply from bytes=32 time=68ms TTL=53

Ping statistics for

   Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 22ms, Maximum = 68ms, Average = 34ms

If all our packets get replies then we have a good connection. If some of them are lost it could mean that there is some network interference preventing a stable connection. If all of them are lost then we are looking at three different possible issues:

  1. The website is down.
  2. You are not connected to the internet.
  3. You are having DNS problems.

We can test number 3 by typing in the IP Address of the website you wish to ping. If you get no packets then the issue is not likely a DNS issue. If you receive your packets then we may be able to fix the issue by flushing our DNS Resolver Catch with ipconfig /flushdns. To learn more about ipconfig look at our article here.

Sometimes we need to know our IP Address or troubleshoot internet connection issues. How do we do that? Well we have a handy tool built into Windows, ipconfig.

ipconfig is a Windows command line utility and network troubleshooting tool. To access it you just need to open the windows command line by pressing start and typing in cmd.

ipconfig has many arguments and follows the syntax:

ipconfig /argument [adapter]


Many command line programs can be given additional options called arguments. These arguments usually start with a /. Here is a list of all the arguments that ipconfig has:

Argument Description
/? Displays Help File
/all Display full configuration information
Release the IP address for IPv4/IPv6 for specified addapter
Renew the IPv4/IPv6 address for the specified addapter
/flushdns Purges the DNS Resolver cache
/registerdns Refreshes all DHCP leases and re-registers DNS names
/displaydns Display the contents of the DNS Resolver Cache
Displays all the IPv4/IPv6 dhcp class IDs allowed for adapter
Modifies the IPv4/IPv6 DHCP class id

With these commands you can find a lot out about your wireless and wireless connections. A lot of connectivity issues can be fixed simply by using /renew and /flushdns.

We will continue to cover command line programs in the future.

Many people dream of making a video game. Gaming is one the the ages most popular hobbies and stories of people getting rich off side projects are everywhere. The truth is very few people actually want to make a game nor are the success stories nearly as common as we would like to believe. Building a video game on your own is a massive undertaking and rarely yields success financially. That said, there are options. Over the next few articles we will explore building a small video game in RPG Maker MV.

Getting Started

After deciding we have the determination to make a video game we need to do several things:

  1. Define our goal
  2. Pick a genre
  3. Pick an engine
  4. Refine our concepts
  5. Estimate costs
  6. Build our team

Many are tempted to run ahead and make things up as they go. That rarely works. If you look on Steam or Itch you will see many unfinished projects. These ‘games’ are unpolished, poorly written, and use the generic features of what ever engine the developer could find at the time. To avoid this we need to define our goals beforehand.

Define out goal

Before we begin building our game we need to know the scope of our project, the story, the type of game we wish to make, etc. We need to set expectations and do research around the market we are targeting.

Write our Synopsis

First we will get a general idea of what our story will be about. Some video games are more about the mechanics and some about the world they inhabit, but most start with a story the developer wishes to tell. For this reason we will focus first on a story and then build a world and mechanics that fit that story.

Lets say we want a game following a band of mercenaries who are about to be dragged into a war between two rival nations.

Pick a medium

Would this story play out best as a platformer? Perhaps a shooter? A grand strategy game? The genre we chose will greatly impact the rest of the decisions we make in development. The engine we use, the mechanics we design, and the way we flesh out our story all depend on how the game is played. An action game is going to have fewer cutseens and less dialogue than a RPG or Visual Novel. A RPG will be far more time consuming and costly to develop than a platformer.

With that in mind we will say that this will be a role playing game centered around one particular mercenary who is having second thoughts about the war.

Define our scope

Now we need to decide the scope. Are we building a 100 hour epic or perhaps a 15 minute tech demo? Do we want to show this to our friends and family, release it to the public for free, or perhaps make our millions from Steam and GOG sells? These questions will help us decide how we want to write our story and how we go about marketing it. If we decide to sell our video game it will need a lot more refinement than if we just gave it to a friend for a birthday present.

You must have a realistic goal for your first game, many developers set impossible goals and give up under the pressure. We will be in a difficult position if we are to build a game 100 hour dream game in between work and taking care of the family for example.

Let’s imagine we are working full-time with no other responsibilities. After work each day we will dedicate an hour to game development. Our goal is to build a 1 hour long episodic 2D RPG telling the story of a mercenary as he fights through a war.

Pick an Engine

Now that we know our story and what type of game we wish to make we need to decide on an engine. A game engine is a prebuilt set of libraries and tools that we can use to build our game. These range from a few python libraries to full development environments. There are far too many to count and you will have to do your own research to find the best one for your needs.

In our case we chose to build a 2D RPG so we will pick an engine that has great 2D support and provides us the tools to build an RPG. We have limited amount of development time and few resources. This brings us down to two engines that work well for our project.


Godot Video Game Engine

Godot is a free and open source (MIT) general purpose game engine for both 2D and 3D games. It has support for all major platforms (Linux, Mac, Android, Windows, FreeBSD, OpenBSD and Haiku and iOS) and multiple programming languages. The catch is that you will have to build most of your resources from scratch. Godot does some of the heavy lifting, but you will have to write the scripts and make the artwork yourself. Godot is not ready to make a RPG out of the box, but it is powerful enough to do so.

RPG Maker MV

RPG Maker game engine

The latest release in the RPG Maker series of engines, RPG Maker MV is a proprietary engine that supports all major platforms and utilizes JavaScript and HTML5 for programming. The engine is easier to use than Godot and is built for our particular task. All the functions for a RPG already exist and it comes with many resources prebuilt for our use. The catch is that it is proprietary, not as flexible without putting in effort, and costs money. That said there is no royalty fees and you are getting a lot of resources with it.

Due to the cost of hiring artists and scripting we will use RPG Maker MV for this. It does cost more initially, but we can get away with using the default assets till we are ready to publish our game.

Estimate Costs

We have made it to the final stages of planning out our game. We now need to estimate how much this project will cost us. If we are going to do this by ourselves or with friends who are willing to donate their time and skill, the costs will be that of the engine and the time we put in. If we need to hire a programmer for a specialized system or voice actors, however, we will be needing a much larger budget.

We need break down our costs

$80.00 – Engine

$25.00 – Main Character Portrait

$150.00 – Tileset

$300.00 – Title Theme Music


Refine our Concept

Now that we have our video game planned out we need to actually flesh out our story, gameplay, and other plans. We need to build a detailed game design document that explains the setting, characters, story, and gameplay. How is combat going to work? What abilities does the main character have? How does our key mechanic play into a particular level? All these things will be important to the development of our game.

Our RPG’s game design document may start something like this:

[Insert Title] is a turn-based RPG that follows a mercenary during a great war. Combat is the focus, with each character having unique abilities that will change the outcome of battle. Each level of the game takes place as an episode during the war and consists of self-contained goals. After completing a level, the player will be awarded a grade and rewards based on performance. These will aid the player in the next level.

It is a bit rough, but it will do for a start.

Next time we will start exploring the RPG Maker engine and design the first level of our video game.

With the introduction of Firefox Quantum, Mozilla removed support for legacy XUL extensions in favor of Web Extensions. This naturally made a lot of people angry. XUL extensions had full control over the browser and could change everything from how downloads where handled to the user interface. This powerful framework gave Firefox what many seen as a competitive edge. Extensions this powerful came with some shortcomings, however, and this lead to the adoption of Web Extensions in Firefox.

The Problems with XUL Extensions

We already established that XUL is powerful. Many of the most popular extensions, Classic Theme Restorer for example, are written in XUL. They are able to change most aspects of the browser, make complex themes, and essentially rewrite parts of the browser. This comes with some inherent risks:

  • Extensions are single processor.
  • Updates can brake extensions.
  • Extensions can break browser functions.
  • Extensions are not sandboxed.

Image: Firefox Quantum with Web ExtensionsXUL Extensions are powerful, but are unstable. If Mozilla wanted to add a new feature or change a function in Firefox, they would risk breaking popular extensions. This held Firefox back and kept Firefox from developing much needed features such as multi-processor support and tab sandboxing. Imagine a tab crashing and your whole browser crashing in the process, not very fun. Powerful extensions that could change every aspect of the browser are not secure, break things, and keep the browser in the past.

Very few extensions actually needed XUL to function and the technology was putting Firefox behind other browsers.

Web Extensions

Web extensions are written in HTML, CSS, and JavaScript. These extensions are written in the same languages as the web and have some advantages over XUL:

  • Extensions are more secure.
  • Extensions are unlikely to brake.
  • They can run in their own process.
  • Web languages are more accessible to developers than XUL
  • Extensions are cross-platform

Web Extensions cannot change core browser features. This is a mixed blessing. They cannot add a sidebar or give you a debug console for example, but by the same token they are not able to hijack core functions of the browser and are unlikely to change something that will get updated. That said malicious extensions do exist and they could break with an API update. Firefox can now develop much more rapidly without breaking things.

These extensions come with a new Firefox built to handle the modern web. The browser can now handle multiple processes. Tabs no longer bring down the rest of the browser with them and run in their own sandbox. Undoubtedly Quantum is a faster browser. Firefox would have continued to lose its market share without these improvements. How can the “Browser with a mission” complete that mission without users, funding, or developers?

The Future of Firefox

Web Extensions are likely the future. They may not be nearly as powerful as legacy extensions, but the benefits outweigh the downfalls. Most other web browsers use web extensions, implementing the API allows for cross-platform extensions, greatly expanding Firefox’s plugin library. Chrome, Opera, Vivaldi, and others all use the same underlining technology.

Mozilla has not just been copying other browsers. They know that web extensions lack functionality and have enhanced Web Extensions. Extensions in Firefox are far more powerful than in their competitors. The move away from extensions has also prompted the idea of making the browser more powerful out of the box. New ideas and built in features will come with time.

Firefox is one of the few major open source browsers with power to shape the web. Firefox is still one of the most customizable browsers online, even without the power of XUL extensions. The commitment to privacy is commendable, but now Mozilla has something to back up their ideals.

You can find out more about web extensions from Mozilla’s website and learn how to write your own here.


Will I still be using Firefox? Perhaps in the future, but for now I will be using Vivaldi as Firefox matures. Firefox’s sidebar is half-backed; the UI is customizable, but limited; and the built in features do not compare to Vivaldi’s. Firefox is a good browser, Mozilla is improving, and they have a future. Bad marketing decisions and deals aside, Firefox is an open source browser that respects your privacy.

Windows 10’s new Creator update that improves upon the system’s settings, privacy, included creative software, and gaming. Microsoft will be slowly phasing in the update over the next few months. What if you want to get it now though?

Update Assistant on Windows 10Windows 10 Update Assistant

Microsoft provides a way to skip the line when it comes to updates. This tool is the Update Assistant. You can download it from Microsoft’s website here.

Once downloaded you can run the updater, it may take some time.

What is new in the Windows Creator Update?

Many small improvements have been made, privacy is better, new ads in the start menu, a game mode for video games, 3D paint, and more.

Make sure to review your privacy settings. Microsoft likes to know everything about you and will sell it if you let them.

The less time you use the mouse the faster you can navigate a computer. That said, sometimes keyboard shortcuts are not enough. When you need to launch programs or search for a file quickly for example. Enter in Launchy, the open source application launcher.

Launchy: What is it and how it works

Luanchy Default ThemeLaunchy is a program that lets you open programs and files on your computer. All you have to do is press the keyboard shortcut (Default is alt+space) and start typing the name of the program or file. You can add new files to the program’s search database, but any program that adds items to the start menu or desktop should automatically be added.

You can download Launchy form its website. After installing let the program build a database. The time this takes will depend on how many programs you have installed.

Program Settings

Luanchy General SettingsThe first thing you will want to do after installing is go through the settings. To do so, press alt+space on your keyboard. This will open up the search window. Before typing anything click the gear icon in the topmost right hand corner.

In the general settings you will find the ability to edit the user interface, setup internet proxy settings, control how many options appear in the suggestion list, and some general options for how the program behaves.

These settings are explanatory for the most part.

The next tab is the skin settings, you can customize the way the program looks here. You can find new skins on Devientart. Just place the skin’s folder in the program’s skin folder (Default: C:\Program Files (x86)\Launchy\skins).

Launchy Settings Search DatabaseThe catalog is where things get interesting. This is Launchy’s heart.

Launchy will scan the files in the directories you chose. If the file matches the file types set in the list to the right, it will appear when you type. Press the plus (+) sign to add new paths and file types and minus (-) sign to remove them. Including executables will allow you to directly launch a program, but I recommend that you use shortcuts to do such work. Directories will let you search the directories and launch an explorer window to them. I recommend that you keep this unchecked as well.

Launchy Settings PluginsThe last tab is for Plugins. These extend Launchy’s abilities beyond what it can do be default. This includes Calcy for performing math calculations and Weby for searching the web directly from Launchy. As there is too much variation with plugins, they will not be covered here. You can toggle them on and off with the check boxes in the left window.

Now you can launch any program on your computer from the keyboard. You will save time, improve your typing speed, and not have to deal with the start menu.

What would you like us to cover next?