I recently installed Ubuntu 16.04 alongside Windows 10 on my Acer Aspire laptop, and this is my first experience with Linux. I'm having trouble with the WiFi. There is no option for me to turn wireless on, and there is no list of available networks.  I know similar questions have been asked a lot, but I've been different different answers for the last couple of days and trying the solutions and none of them have worked.  I have Broadcom BCM43228, and I have selected "Using Broadcom 802.11 Linux STA wireless driver source from bcmwl-kernel-source (proprietary)" in the Additional drivers section of the system settings.  My wireless is not soft or hard blocked, my wired internet is working, and my WiFi also works in Windows.  Output of iwconfig:     ~$ iwconfig      lo        no wireless extensions.      enp1s0f1  no wireless extensions.`   Output of sudo modprobe wl  ~$ sudo modprobe wl  [sudo] password for zacmerphy:   modprobe: ERROR: could not insert 'wl': Required key not available
This issue happens only on UEFI systems with enabled Secure Boot.  When I try to install DKMS modules like VirtualBox, Nvidia, or Broadcom drivers, they do not install and I get Required key not available when I try to modprobe them.  VirtualBox complains that vboxdrv is not loaded.  Broadcom wl driver is shown in lspci -k as a kernel module but is not in use. sudo modprobe wl throws Required key not available.  Also this issue may happen when I install some kernel modules from git sources.  This issue may appear after a kernel update as disabled wireless adapter, black screen after a reboot, etc.   How can I fix it?
Linear algebra skew symmetric Past tense and the phrase "who knows what" Working with IPv6 Addresses in PHP After searching around somewhat thoroughly, I noticed a slight lack of functions in PHP for handling . For my own personal satisfaction I created a few functions to help the transition.  The IPv6ToLong() function is a temporary solution to that brought up here: . It will split the IP in to two integers and return them in an array.  /**  * Convert an IPv4 address to IPv6  *  * @param string IP Address in dot notation (192.168.1.100)  * @return string IPv6 formatted address or false if invalid input  */ function IPv4To6($Ip) {     static $Mask = '::ffff:'; // This tells IPv6 it has an IPv4 address     $IPv6 = (strpos($Ip, '::') === 0);     $IPv4 = (strpos($Ip, '.') &gt; 0);      if (!$IPv4 &amp;&amp; !$IPv6) return false;     if ($IPv6 &amp;&amp; $IPv4) $Ip = substr($Ip, strrpos($Ip, ':')+1); // Strip IPv4 Compatibility notation     elseif (!$IPv4) return $Ip; // Seems to be IPv6 already?     $Ip = array_pad(explode('.', $Ip), 4, 0);     if (count($Ip) &gt; 4) return false;     for ($i = 0; $i &lt; 4; $i++) if ($Ip[$i] &gt; 255) return false;      $Part7 = base_convert(($Ip[0] * 256) + $Ip[1], 10, 16);     $Part8 = base_convert(($Ip[2] * 256) + $Ip[3], 10, 16);     return $Mask.$Part7.':'.$Part8; }  /**  * Replace '::' with appropriate number of ':0'  */ function ExpandIPv6Notation($Ip) {     if (strpos($Ip, '::') !== false)         $Ip = str_replace('::', str_repeat(':0', 8 - substr_count($Ip, ':')).':', $Ip);     if (strpos($Ip, ':') === 0) $Ip = '0'.$Ip;     return $Ip; }  /**  * Convert IPv6 address to an integer  *  * Optionally split in to two parts.  *  * @see https://stackoverflow.com/questions/420680/  */ function IPv6ToLong($Ip, $DatabaseParts= 2) {     $Ip = ExpandIPv6Notation($Ip);     $Parts = explode(':', $Ip);     $Ip = array('', '');     for ($i = 0; $i &lt; 4; $i++) $Ip[0] .= str_pad(base_convert($Parts[$i], 16, 2), 16, 0, STR_PAD_LEFT);     for ($i = 4; $i &lt; 8; $i++) $Ip[1] .= str_pad(base_convert($Parts[$i], 16, 2), 16, 0, STR_PAD_LEFT);      if ($DatabaseParts == 2)             return array(base_convert($Ip[0], 2, 10), base_convert($Ip[1], 2, 10));     else    return base_convert($Ip[0], 2, 10) + base_convert($Ip[1], 2, 10); }   For these functions I typically implement them by calling this function first:  /**  * Attempt to find the client's IP Address  *  * @param bool Should the IP be converted using ip2long?  * @return string|long The IP Address  */ function GetRealRemoteIp($ForDatabase= false, $DatabaseParts= 2) {     $Ip = '0.0.0.0';     if (isset($_SERVER['HTTP_CLIENT_IP']) &amp;&amp; $_SERVER['HTTP_CLIENT_IP'] != '')         $Ip = $_SERVER['HTTP_CLIENT_IP'];     elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) &amp;&amp; $_SERVER['HTTP_X_FORWARDED_FOR'] != '')         $Ip = $_SERVER['HTTP_X_FORWARDED_FOR'];     elseif (isset($_SERVER['REMOTE_ADDR']) &amp;&amp; $_SERVER['REMOTE_ADDR'] != '')         $Ip = $_SERVER['REMOTE_ADDR'];     if (($CommaPos = strpos($Ip, ',')) &gt; 0)         $Ip = substr($Ip, 0, ($CommaPos - 1));      $Ip = IPv4To6($Ip);     return ($ForDatabase ? IPv6ToLong($Ip, $DatabaseParts) : $Ip); }   Someone please tell me if I'm reinventing the wheel here or I've done something wrong.  This implementation converts IPv4 to IPv6. Any IPv6 address it doesn't touch. Why was River Song so slow? What happens if my shield breaks? Load a table with NO geometry_column using PyQGIS What is the best base to use? From the top of my head, Danish "De" (practically never used), German "Sie", Chinese "您", French "vous", Spanish "usted" are a formal way of addressing someone, especially if one isn't familiar with the addressee. Did English ever have this? It sounds as though Proto-Indo-European might have had this (based on my 4 examples), but perhaps someone can enlighten me? How to plot points in a color corresponding to some value? How can I view Google Photos that are not in a Google Photos album? Go to  Add a few photos to a photo album Go back to All Photos   See all of the photos there, even ones you copied to the Album. No problem here, per se. At least not yet.  What if you want to delete photos that you did not copy to that album?  Where is the selector or filter that filters those "in an album already" photos from this main view?  Or is there a way to create such a filtered view such that I can then cherry-pick photos for deletion? Apparently, .  How the heck did that happen? How can I test within a document, whether or not the initial  \documentclass[a4paper,11pt,twoside,fleqn,draft]{report}   includes the "draft" option? My naive attempt  \newif\ifmydraft \mydraftfalse \DeclareOption{draft}{\mydrafttrue}   does not work, and breaks a later \usepackage command. "On their back" or "on their backs"? After the therapy, eight children (43%) became able to crawl/move on their back.   Or should I use "on their backs"?   Singular because each child only has one back, or plural because we're dealing with eight backs? How to replace a character by a newline in Vim I'm trying to replace each , in the current file by a new line:  :%s/,/\n/g    But it inserts what looks like a ^@ instead of an actual newline. The file is not in DOS mode or anything.  What should I do?  If you are curious, like me, check the question  as well. Razr Maxx HD, How to wipe data with broken screen My screen is totally destroyed, it's black and unresponsive. The phone turns on just fine, though. I just got my new phone and I have to send this one back now.  I want to wipe the phone before I send it back, but I'm not sure how. I don't care too much about sending back a rooted phone, it seems Asurion doesn't really care about that from what I've read, but I don't want my personal data on the phone when I send it in.  What are my options to wipe the phone without a screen? I've already read a lot of threads on other forums and here on the subject, but everyone seems to say to wipe through ADB shell. Well, I can see the phone in ADB, but I am unable to enter SU through ADB shell. I assume it's because the screen is locked, and I have no way to unlock it. Others have also said to wipe through fastboot in ADB, but I am seeing conflicting recommendations and I'm not sure how to proceed. I'm not that proficient with ABD, so I want to make sure I don't mess this up.  Any advice would be greatly appreciated. Suppose that, for a real application, I have ended up with a sorted list A = {$a_1, a_2, ..., a_{|A|}$} of elements of a certain kind (say, Type-A), and another sorted list B = {$b_1, b_2, ..., b_{|B|}$} of elements of a different kind (Type-B), such that Type-A elements are only comparable with Type-A elements, and likewise for Type-B.  At this point I seek to count the following: in how many ways can I merge both lists together, in such a way that the relative ordering of Type-A and Type-B elements, respectively, is preserved? (i.e. that if $P_M(x)$ represents the position of an element of A or B in the merged list, then $P_M(a_i)&lt;P_M(a_j)$ and $P_M(b_i)&lt;P_M(b_j)$ for all $i&lt;j$)  I've tried to figure this out constructively by starting with an empty merged list and inserting elements of A or B one at a time, counting in how many ways each insertion can be done, but since this depends on the placement of previous elements of the same type, I've had little luck so far. I also tried explicitly counting all possibilities for different (small) lengths of A and B, but I've been unable to extract any potential general principle in this way. Replace all occurrence of character except first one Regular expression to match DNS hostname or IP Address? Screen goes white when posting a comment Since iOS 11.2 all the way through 12.2 beta 4, if you post or discard a comment on any post on any SE community, the screen will turn white. This has been ongoing continuously for a year now, and it affects both the SE app and the SO app.   You can go back to the previous screen and open the question again, and everything appears as normal. You can also rotate the screen to get the text to come back. Using the arrows to navigate between the question and answers updates the HUD, but the screen remains white unless one of the above is done to get the text back.        UPDATE: After posting anything (comment, answer), the screen goes all white except for the sidebar. Perhaps it is intentional, but I prefer last week’s behavior of going back to the content. Not major, since the sidebar icons still work. As far as I know, it's possible to create a radially polarised ring magnet, where one pole is on the inside, and the field lines cross the circumference at right angles.    So imagine if I made one which was shaped like a sector of a torus.    Then I forced a load of these magnets into a complete torus.     Clearly this magnet is impossible because there's no way for the field lines to get back into the middle. So what happens to the field in this case? Does it disappear completely? Do the magnets blow up?