Blog

  • Coronavirus disease 2019

    COVID-19 is a contagious disease caused by the coronavirus SARS-CoV-2. In January 2020, the disease spread worldwide, resulting in the COVID-19 pandemic.

    The symptoms of COVID‑19 can vary but often include fever,[7] fatigue, cough, breathing difficulties, loss of smell, and loss of taste.[8][9][10] Symptoms may begin one to fourteen days after exposure to the virus. At least a third of people who are infected do not develop noticeable symptoms.[11][12] Of those who develop symptoms noticeable enough to be classified as patients, most (81%) develop mild to moderate symptoms (up to mild pneumonia), while 14% develop severe symptoms (dyspnea, hypoxia, or more than 50% lung involvement on imaging), and 5% develop critical symptoms (respiratory failure, shock, or multiorgan dysfunction).[13] Older people have a higher risk of developing severe symptoms. Some complications result in death. Some people continue to experience a range of effects (long COVID) for months or years after infection, and damage to organs has been observed.[14] Multi-year studies on the long-term effects are ongoing.[15]

    COVID‑19 transmission occurs when infectious particles are breathed in or come into contact with the eyes, nose, or mouth. The risk is highest when people are in close proximity, but small airborne particles containing the virus can remain suspended in the air and travel over longer distances, particularly indoors. Transmission can also occur when people touch their eyes, nose, or mouth after touching surfaces or objects that have been contaminated by the virus. People remain contagious for up to 20 days and can spread the virus even if they do not develop symptoms.[16]

    Testing methods for COVID-19 to detect the virus’s nucleic acid include real-time reverse transcription polymerase chain reaction (RT‑PCR),[17][18] transcription-mediated amplification,[17][18][19] and reverse transcription loop-mediated isothermal amplification (RT‑LAMP)[17][18] from a nasopharyngeal swab.[20]

    Several COVID-19 vaccines have been approved and distributed in various countries, many of which have initiated mass vaccination campaigns. Other preventive measures include physical or social distancing, quarantining, ventilation of indoor spaces, use of face masks or coverings in public, covering coughs and sneezes, hand washing, and keeping unwashed hands away from the face. While drugs have been developed to inhibit the virus, the primary treatment is still symptomatic, managing the disease through supportive care, isolation, and experimental measures.

  • Essential Drupal 7 Modules

    Each time I build a new Drupal 7 site, I get the chance to try out multiple modules to address a particular problem. Some of these work out, some of these do not.

    Below is a list of modules that I consider to be essential and should be installed by default when you begin building a site.

    • Module Filter – The modules list page can become quite big when dealing with a fairly large site or even just a dev site meant for testing new and various modules being considered. What this module aims to accomplish is the ability to quickly find the module you are looking for without having to rely on the browsers search feature which more times than not shows you the module name in the ‘Required by’ or ‘Depends on’ sections of the various modules or even some other location on the page like a menu item.
    • Pathauto – The Pathauto module automatically generates URL/path aliases for various kinds of content (nodes, taxonomy terms, users) without requiring the user to manually specify the path alias. This allows you to have URL aliases like /category/my-node-title instead of /node/123. The aliases are based upon a “pattern” system that uses tokens which the administrator can change.
    • Redirect – Common API for loading, saving, and deleting redirects, Case-insensitive redirect matching with a hook to allow other modules to narrow-down the candidate redirects, Redirect counter and last used timestamp, with automatic cleanup of inactive redirects, Integration with Drupal’s page cache to optimize redirects and performance, Complete individual redirect access API and Views API integration.
    • Views – Using the Views module, you can fetch content from the database of your site and present it to the user as lists, posts, galleries, tables, maps, graphs, menu items, blocks, reports, forum posts etc. Different content types including nodes, users, and other bundles can be displayed.
    • Views Bulk Operations – This module augments Views by allowing bulk operations to be executed on the displayed rows. It does so by showing a checkbox in front of each node, and adding a select box containing operations that can be applied. Drupal Core or Rules actions can be used.
    • Admin Views – Filter all administrative views via AJAX, Perform any kind of bulk/mass operations on items in administrative views, Filter content by title, node type, author, published status, and/or vocabulary, Filter comments by title, author, node title, or published status, Filter users by name, ban/blocked status, or user roles.
    • Field Group – Fieldgroup will, as the name implies, group fields together. All fieldable entities will have the possibility to add groups to wrap their fields together. Fieldgroup comes with default HTML wrappers like vertical tabs, horizontal tabs, accordions, fieldsets or div wrappers.

    More to come…

  • Headless VirtualBox on CentOS 6

    My latest task at work was to setup a server running virtual box to allow all of the developers access to all test machines and to allow us to keep the virtual machines up to date (by updating one set of appliance rather than multiple sets).

    I found an excellent tutorial on how to do that here.

    After you follow the tutorial to the letter and have your Headless VirtualBox and phpVirtualBox running, you’ll need to add your virtual machines. We already had several that we were actively using so I set out to import them into the new environment.

    This was met with resounding failure.

    The import feature was not working for me (Could not create the clone medium ‘/path/to/VirtualBox VMs/Disk1.vmdk’ (VERR_VD_VMDK_INVALID_FORMAT)). So I scraped the .ova files that I had exported and copied over the vmdk files – the hard drives of the virtual machines. Once these were added to the virtual box users home directory and chown’d accordingly, I created new machines in the phpVirtualBox interface. For each new Virtual Box, I selected already existing Hard Drives.

    Some minor tweaks were required (like removing the CDROM’s) so they would boot, but after that, we were able to connect no problem.

    There was an issue with the overall phpVirtualBox throwing errors after clicking on anything. It turned out to be we added (or came with the clean install) a vboxnet0 ethernet connection under File > Preferences > Network. Removing that solved the error (The object functionality is limited (0x80070005)).

    So, now we have the following virtual environments and all are working extremely well and fast:

    Windows XP – Internet Explorer 6
    Windows 7 – Chrome (current)
    Windows XP – Internet Explorer 7
    Windows 7 – Internet Explorer 8
    Windows 7 – Internet Explorer 9
    Windows 8 – Internet Explorer 10 (To get this appliance check out this site)
    Windows 7 – Firefox (latest)
    Windows 7 – Opera (latest)

    Sadly, MAC OS is not supported by Virtual Box, so we have to continue to use our MAC test machine over this new virtual test environment.

    There is a Safari 5.1 for Windows so I may create another appliance for that.

    Hope this helped.