Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Monday, 30 July 2018

Newly legal 3D-printed gun blueprints targeted by state lawsuits

Hot on the heels of the effective legalization of 3D models used to print firearm components, 21 states have filed a joint lawsuit against the federal government, alleging not only that decision is dangerous but also that it’s also illegal for a number of reasons. But the lawsuit may backfire via the so-called Streisand Effect, further entrenching the controversial technology.

Earlier this month brought the news that U.S. government dropped its case against Cody Wilson and his companies dedicated to the proliferation of 3D models of firearm parts. There are still restrictions on how guns can be made and sold, but the files containing 3D data and allowing people to print components seem to have been determined not to fall under those rules.

This was unwelcome news for those in favor of stricter gun control laws, a group apparently including the attorney generals of 21 states. Bob Ferguson, AG for Washington, announced that his team would be leading a lawsuit intended to block the federal actions that legalized this particular form of data.

“These downloadable guns are unregistered and very difficult to detect, even with metal detectors, and will be available to anyone regardless of age, mental health or criminal history. If the Trump Administration won’t keep us safe, we will,” he said in a press release issued today.

They allege that the administration needs the Defense Department to sign off on the decision, and that Congress needed to be notified 30 days in advance. The decision is also held (owing to a lack of on-record citations or consultations) to be “arbitrary and capricious,” and thus illegal under the Administrative Procedure Act.

The Tenth Amendment also gives states the right to regulate firearms, and the filers say that the federal action deprives them of this right and is therefore unconstitutional.

That’s all well in order, but the danger posed by these files is overestimated, as is the ability of the government, state or federal, to curtail their distribution. If this lawsuit is successful, it will have little or no effect on 3D printed guns at all.

“The status quo – which currently ensures public safety and national security by prohibiting publication of firearm design files on the Internet – should be maintained,” reads a letter sent from a number of AGs to Secretary of State Mike Pompeo and AG Jeff Sessions.

At the risk of dipping into an extremely charged debate and sensitive political topic (I’ve added the “Opinion” tag just in case), the status quo does no such thing. It must be said that if effective gun control is the goal, there are far more important steps to pursue. Loopholes abound in existing regulations, for instance gun show purchases of unregistered firearms and “80 percent lowers,” which are a quite legal method for creating them.

Furthermore any attempt to remove something from the internet is doomed to failure, as we have seen again and again, often enough that the phenomenon has its own nickname, the Streisand Effect. Workarounds for illegal content are numerous and effective, and presumably the type of person interested in printing their own gun will not be shy about using a VPN or torrent site. If anything a concerted effort to remove something from the internet usually causes that thing to be permanently maintained online as a sort of middle finger to the authorities. It’s not in the internet’s DNA to forget.

While it’s true that outlawing the 3D models would give prosecutors and investigators more to work with, the nefarious actors of the world haven’t been waiting with bated breath on the outcome of the previous lawsuit. Criminals, terrorists, foreign adversaries and so on in the first place don’t even need these files to obtain or create unregistered guns in the first place, nor would their being illegal deter them in the least.

The lawsuit may, it is true, tie up and possibly bankrupt Wilson and his supporters, but that’s not much of a victory and certainly doesn’t make anyone safer. Unfortunately this particular demon isn’t going back in the box.



from TechCrunch https://ift.tt/2K9Y57c
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support