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

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
WindowsLinux
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 google.com in this example.

If we run the command ping google.com we should get the following output:

Successful ping
Pinging google.com [172.217.5.78] with 32 bytes of data:

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

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

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

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

Ping statistics for 172.217.5.78:

   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.

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.

Aside

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.

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?

The Problem:

Microsoft did not include Solitaire or MineSweeper in Windows 10, instead you can get Microsoft Solitaire Collection. This is Microsoft’s attempt at making solitaire into a service that you will pay for. You will either pay a fee to get an ad-free experience or get bombarded with obtrusive advertising. To top it all off you need a Microsoft Account to use it. Who would have ever thought that you would have to pay to play something computer users have enjoyed for free for so long. Microsoft Solitaire Collection is a bad joke.

The Solution:

PySol is an open-source version of Solitaire written in Python. Sadly development has stopped and it has not aged well.

Look at all of them.

Look at all of them.

Fortunately it works on Windows 10 and has more than a thousand solitaire games, including Mahjong Solitaire. The interface is intuitive and the games work.

Disclaimer: I do not play Solitaire and am not qualified to review PySol’s quality in regard to game-play.

PySol is under the GPL and can be modified and improved. If you know a little bit of Python and love Solitaire I encourage you to bring the project back to life as no one wishes to give Microsoft any more than they must.

PySol can be downloaded from Sourceforge here.

BitTorrent has been around for many years now, since 2001, yet there are many who still do not know what it is or how to use it. Today we will lock at the basics of what BitTorrent is and how to use it.

What is BitTorrent?

To put it simply, BitTorrent is a way to download large files quickly and efficiently. BitTorrent itself is a protocol that handles the transferring of files across the internet. The major difference between BitTorrent and standard direct downloads is that when downloading through BitTorrent downloads from many sources at once whereas direct downloads come from one server.

Using this “swarm” of computers allows for faster download speed as you get little pieces of the file from many users who already have that file. The only server involved is a Torrent Tracker that keeps track of the file. All other actions are performed peer-to-peer (P2P) within the swarm. BitTorrent uses a system where you receive data from the “swarm” in exchange you become a member of that swarm to help send files that you have to others. This is known as Seeding.

Carmen Carmack from HowStuffWorks.com gives a general rundown of the process:

Traditional Download vs. Torrent

Traditional Download vs. Torrent

  • You open a Web page and click on a link for the file you want.
  • BitTorrent client software communicates with a tracker to find other computers running BitTorrent that have the complete file (seed computers) and those with a portion of the file (peers that are usually in the process of downloading the file).
  • The tracker identifies the swarm, which is the connected computers that have all of or a portion of the file and are in the process of sending or receiving it.
  • The tracker helps the client software trade pieces of the file you want with other computers in the swarm. Your computer receives multiple pieces of the file simultaneously.
  • If you continue to run the BitTorrent client software after your download is complete, others can receive .torrent files from your computer; your future download rates improve because you are ranked higher in the “tit-for-tat” system.”

BitTorrent is only the protocol used to download the files, you will need specialized software to actually download the file, this is known as a BitTorrent client. The client handles all download operations on your computer. There are many client programs available for free, but for this example we will be using Deluge as it is open-source, cross-platform, and easy to use. If you are on a Linux system your distribution probably already comes with Transmission or Ktorrent which are both grate options)

First you will need to go to the Deluge website here.

Once it is done downloading and installing start it up. You should see something like this:

It may look different on your desktop as I am using a KDE theme.

It may look different on your desktop as I am using a KDE theme.

As you can see it is a fairly straightforward interface. You have a traditional menu at the top as well as a tool bar that allows to add, delineate, pause, start, move up and down torrents in the queue, and open up the Preferences panel. The left most panel gives an overview of all torrent and tracker activity. On the right there is a panel that shoes all torrents and allows you to click on them to view more information in the bottom panel. On the bottom is all of the data about the selected torrent. Here you can see how much of the torrent you have, what files you have downloaded, how many peers are connected and how much of the file they have, and options that are specific to the individual torrent. We will go through each of these in depth later, but first we will need a Torrent file to download.

You can use any torrent file you wish, but for this example we will be downloading the Debian live CD. For this example we will be using the amd64 CD release. Debian is a Linux Distribution that is completely legal to download. You can get it here.

This screen gives you an overview of what you are downloading and some basic options.

This screen gives you an overview of what you are downloading and some basic options.

You should be able to open the file in Deluge right from the browser so there is no reason to save the file. This file is information that Deluge needs to download the Debian ISO image, not the ISO itself. Once it opens in Deluge you should see a screen similar to the image on the right.

This screen gives a general overview of the torrent file including its name and the files that are included in this file. Under the options tab you can select the location you wish to download the file and set bandwidth limits(we will go over this later), but for now we can just select the add button to start the torrent.

We will go over the basic options and panels in depth in the next post.

Source:

Carmack, Carmen. “How BitTorrent Works” 26 March 2005. HowStuffWorks.com. <http://computer.howstuffworks.com/bittorrent.htm> 08 November 2014.

I use a lot of programs between multiple computers. Most of the time these computers have different operating systems so I need cross-platform applications. Open source programs have come a long way over the years and no many can compete with commercial software. I use open source software because it is cross0platform, usually light weight, and it is free. I use these programs on both my dad’s Windows Desktop and my Linux laptop.

Firefox (Web Browser)

Firefox is light weight and extendable. I have been using Firefox for as long as I have been a using open source software. It’s extendability is key, it has all the tools I could ever need. It is also more secure than internet explore and I dislike that Google Chrome is spying on you every second. If you are using internet explore I strongly advise you to try Firefox.

Thunderbird (Email Client)

I use Gmail for email service, but I do not like to use the web interface. Thunderbird is as extendable as Firefox and has a great spam filter. It is easy to set up custom filters to organize your mail for you and you can be logged into multiple email accounts at once. Also I download all of my emails so that if the internet is down or Google goes down, I will still have all of my emails. If you use multiple accounts, want better organization of emails, or hate Microsoft Outlook I can not recommend this enough.

LibreOffice (Office Program)

I would never use Microsoft Office if my school allowed me to run this on the computer lab computers. It is fast, extendable, and almost as powerful as Microsoft Office. I will grant that Microsoft office can handle bigger files better and is better for enterprise publishing, but LibreOffice is free and strong enough for anyone short of a major publisher. LibreOffice is much cheeper than Office, with a price tag of free, and can open all of Microsoft’s formats. If you must you can even save your work in Microsoft’s formats. It comes with everything you need: a word processor, a presentation maker, and a spreadsheet program. The best part is that it doesn’t have that horrible ribbon interface.

WINE (Windows Compatibility Layer)

Wine Is Not an Emulator (WINE), is a compatibility layer for windows programs running on Linux. I love open source programs, but sometimes you need a commercial program to do what you need. Most of these programs are Windows only, but I use a Linux environment most of the time. Wine allows me to run these programs. It may not be perfect, but it gets the job done most of the time. I usually use it to run games rather than work related programs, but I use it when making my RPG Maker XP game.

When away from home I usually have a copy of all, excluding Wine, on my USB drive. I hope you find these programs helpful and merry Christmas.

I just started this blog.

I just got Cairo-Dock working on my Linux computer. I don’t know why I need a dock, but it was hard to instal and it looks nice now that I got it working. It is very customizable and even has an application launcher. It was designed for the Gnome desktop environment, so it did not look so nice until I modified it to look good on KDE. It looks like it was always there, now if I was not to afraid to install Compiz fusion, I would have a desktop that looks like this: https://www.youtube.com/watch?v=4QokOwvPxrE
I have Kwin, it can’t do half of the stuff that can and it still amazes people. Just imagine if I did this. Of Course I am running off a laptop so I do not have a powerful graphics card. If I do too much, I might crash my computer.