text:
It's no secret that Slack, the extensible group messaging service, has become the darling of development teams around the world for its ability to integrate documents, posts, and services from around the web.
And if you're working with Google's hot new property Firebase, as we are, you know it's a blazing fast, 'NoSQL' database, offering its own application hosting solution. You can easily build and deploy your app using whatever frameworks you prefer, work with indexed JSON data, and support social sign-in with almost no effort.
Recently, on an application I've been building with this stack, I reached the point of needing to add a contact form. This seems like a fairly innocuous feature, since practically every site on the web has some sort of contact facility, usually including an annoying Captcha widget to deal with robot submissions.
What If There's No Back End?
The issue is, we're not using a CMS and Firebase doesn't provide a traditional backend. I suspect Google may provide one at some point, but that might conflict with their existing cloud platform, who knows? All I'm sure of is that there's no backend at the moment, only an awesome database with fast static file hosting. Aside from this contact functionality, Firebase has provided everything my single page application needs.
I have a Perl CGI that I use on my company website, which sends me and the submitter a copy of the form by email. But since we've been using Slack for team communication, and literally all of our discussions and documents created since the project's inception are collected there under one roof, we thought it would be nice if the results of our contact form went directly to a Slack channel. Or better yet, several channels: one for feedback, one for bug reports, and one for feature requests.
Slack Incoming Webhooks
So, the initial question was how to get a form submission on a Firebase webapp to post to Slack. Should be a no-brainer, because Slack provides a lovely interface for incoming webhooks . They're drop-dead easy to set up, and the message display is nicely customizable, as you can see above.
Once you've set up your incoming webhook, you get a special URL, which you can post to like so:
POST https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX Content-type: application/json { "text": "This is a line of text.\nAnd this is another one." }
Easy-peasy, right? There's just one problem: spamability .
Slack's Best Practices for Integrations documentation says :
Do not share incoming webhook URLs in public code repositories. Incoming webhook URLs belong to a specific team member that installed them. When a webhook is contained within a Slack app, it is scoped to only post as a specific application-associated user and approved channel. Custom integration-based webhooks are capable of posting to any channel and have more flexible identities.
Compromised incoming webhook URLs can be used to post unwanted, unsolicited, or malicious messages to your team.
While I'm not planning to put my source code in a public code repo, anyone can open up Chrome Devtools and watch the traffic when they submit the form, thus revealing the super-secret URL. At first, I wondered why they didn't have URL whitelisting for this feature, but after a bit of research, I came to the conclusion that there is no true way to do that.
They even offer a curl command to test the webhook with, and you can run it from localhost on your computer, which means it's easily scriptable.
Playing 'Hide the URL'
My first thought was to employ Node.js, running somewhere like Heroku , which would relay the message, thus hiding the Slack incoming webhook URL. Since a simple, one-line curl command could cause a message to show up instantly in a Slack channel, building a proxy that accepts the same post and bounces it to Slack should be a snap.
And it was.
I created a free account on Heroku , added a new 'web dyno' configured with the Node.js buildpack, slung a few lines of JavaScript (below), and had a simple proxy up and running in a few hours. I could run the same curl command that I was using to send a test message directly to Slack, except pointing to my new Heroku server, and bada-bing, my Slack client would notify me of my new message.
For extra points, I put the Slack URL and port number for the server in environment variables, which can be configured on the project's Heroku dashboard.
Creating My Exclusive Club
My next step would be to add a whitelist capability, so that only posts from my application's site would be accepted. And therein lies the rub.
The lack of CORS support on Heroku for Node meant that I couldn't really do that. I could check the 'origin' header and bail if it wasn't in the list, but of course, if all you have to do is put that header on the curl command, then it's still vulnerable. Suddenly I realized why Slack hadn't bothered trying to implement a whitelist, because only well-behaving browsers would obey it. For posterity, here's what the first cut at this looked like….
// SLACK INCOMING WEBHOOK PROXY, TAKE 1 // GET THE SERVER PORT FROM THE ENVIRONMENT OR USE A DEFAULT var port = process.env.PORT || 5000; // CREATE SERVER AND LISTEN FOR REQUESTS console.log('Slack Proxy: Creating Server'); var http = require('http'); var server = http.createServer(); server.on('request',handleRequest); server.listen(port); // HANDLE A REQUEST function handleRequest(request,response){ console.log('Slack Proxy: Handle Request'); // SET REQUEST AND RESPONSE ERROR HANDLERS request.on('error', function(err) { console.error("Error" + err); response.statusCode = 400; response.end(); }); response.on('error', function(err) { console.error("Error" + err); }); // VALIDATE THE ORIGN DOMAIN AND BAIL IF NOT WHITE-LISTED // Aww snap... // Turns out this is a non-starter, because origin header can be spoofed easily. // Otherwise, this is a perfectly fine proxy, if you don't mind just ANYONE calling it. /* var origin = request.headers['origin']; . . . */ // RECEIVE THE BODY OF THE REQUEST var body = []; request.on('data', function(chunk) { // PUSH A CHUNK body.push(chunk); }).on('end', function() { // REACHED THE END body = Buffer.concat(body).toString(); // HANDLE ROUTES if (request.method === 'GET' && request.url === '/echo') { // ECHO DATA BACK (FOR TESTING THAT SERVER IS UP) handleEcho(body,response); } else if (request.method === 'POST' && request.url === '/') { // PARSE DATA AND SEND TO SLACK var payload; try { payload = JSON.parse(body); } catch (err) { response.write("Error: "+ err); response.end(); } sendSlackMessage(response, payload); } else { // UNSUPPORTED ROUTE response.statusCode = 404; response.end(); } }); } // ECHO THE REQUEST DATA ON THE RESPONSE // curl -X GET -d 'Hello World' http://localhost:5000 function handleEcho(body,response){ console.log('Slack Proxy: Handle Echo'); response.statusCode = 200; response.end('\n'+body+'\n'); } // SEND A SLACK MESSAGE WITH THE REQUEST DATA // curl -X POST -d '{"channel": "#feedback", "username": "CliffBot5000", "text": "This is posted to channel #feedback.", "icon_emoji": ":ghost:"}' http://localhost:5000 function sendSlackMessage(response, payload){ console.log('Slack Proxy: Handle Slack Message'); // GET WEBHOOK URL FROM THE ENVIRONMENT var webhook = process.env['SLACK_WEBHOOK_URL'] // IF WEBHOOK CONFIRGURED AND PAYLOAD PRESENT, FIRE AT WILL if (webhook && payload) { // CREATE REQUEST MESSAGE var message = {uri: webhook, method: "POST", json:true, body:payload }; // MAKE THE REQUEST console.log('Slack Proxy: Sending Slack message...'); var slackReq = require("request"); slackReq(message); response.statusCode = 200; } else { // REPORT ERROR IF WEBHOOK NOT CONFIGURED OR PAYLOAD NOT PRESENT response.statusCode = 500; } // ADIOS MUCHACHOS response.end(); }
Back to Square One?
With the whitelisting proxy idea dead in the water, I began to think about Firebase and its authentication system. It has no backend for me to run Node on, but it is super at protecting the database with a ruleset that matches its structure. If I could somehow create a message queue in the database, and then have a scheduled Node.js script process the messages and send them to Slack, I'd be in business. As long as a secure channel could be created between Heroku and Slack that is.
I have the entire database protected so that users must to be authenticated to access anything at all, since I don't want anyone ripping my database and taking protected user info like email addresses. Even authenticated users can only see parts of other users' profiles.
But in this case, I wanted anyone to be able to contact us, whether they're logged in or not. Still, I didn't want someone to be able to script a spam attack, so there had to be some level of authentication.
That was when the big light bulb switched on over my head and all was illuminated.
Previously, I'd implemented social sign-in on all of Firebase's supported providers (Facebook, Google, Twitter, and Github), as well as the email/password provider. But there is another type of authentication on offer, which up until then I'd seen no use for in my app: TheAnonymous Provider . This is intended to let users start interacting with your site and using its features (for instance, uploading and manipulating an image), and then later convert to a registered user if they wish to save their data or access more features. That, I thought, could be just what the doctor ordered.
Building the Mailbox
In Firebase, I created a special account with an email and password which would only be used to log in and pick up the messages. This yielded a user ID that I could then use in my database ruleset to ensure that only that user could read AND write to the message queue (to mark messages read when they've been processed). All other users would be able to write to the message queue, but not read it. I also added the requirement for a boolean 'read' flag, and created an index for it. This would allow the Postman script to fetch only messages that hadn't yet been read.
Creating Messages
In the database's new 'messages' node, I'll be storing JSON objects in my own custom JSON message format. The payload could vary based on message type.
On each message is the payload that goes to Slack (with it's own internal structure), and also some meta-data about that payload, which my Postman script will use to mark the message as having been read, and also to determine how to handle the message, once the system grows to do other things with messages than just send them to Slack.
As you can see at the top of this article, Slack supports advanced message formatting . Basically, there is a payload object, which contains an attachments array, with each attachment (only one was needed for my purposes) containing message level data like the icon_emoji and title (duplicated as fallback and pretext ), and a fields array. The fields array contains the various parts of the message, with each field having a title , a value , and a short flag that says whether another field can be shown beside it (true), or if it should reside on a line by itself (false).
The payload of a Slack-bound message looks like this:
Enter the Postman
I created another Heroku Node.js dyno, and threw in the Heroku Scheduler add-on. This time, the script was not a continuously listening webserver, but instead, a scheduled process that:
- Runs every ten minutes
- Logs into Firebase with a special email and password I set up for its sole use
- Reads the message queue with a query that fetches only messages that haven't been read
- Processes the messages according to type (by this point I was already envisioning this process handling other kinds of messages than the Slack-bound sort)
- Calls the appropriate handler method for each message (resulting in messages of type 'slack' going to the appropriate Slack channel)
- Sets the message as read in the Firebase database, where it will be preserved but not fetched again by the Postman)
// SLACK INCOMING WEBHOOK PROXY, TAKE 2 - THE POSTMAN // REQUIRED MODULES var firebase = require('firebase'); // THE POSTMAN ONLY RINGS ONCE signIn(); // SIGN IN AND CONNECT TO THE DATABASE function signIn(){ console.log('Signing in... '); var email = process.env['FIREBASE_USER']; var password = process.env['FIREBASE_PASSWORD']; var url = process.env['FIREBASE_URL']; var db = {}; db.base = new Firebase(url); db.messages = db.base.child('messages'); db.base.authWithPassword( { email : email, password : password }, function(error, authData) { if (error) { console.log(error); } else { console.log('Success!\n'); fetchMessages(db); } }); } // FETCH THE MESSAGES function fetchMessages(db) { console.log('Fetching messages... '); var messages = []; db.messages .orderByChild('read') .equalTo(false) .once("value", function (snapshot){ snapshot.forEach( function (childSnapshot) { messages.push(childSnapshot.val()); }); // IF THERE WERE PENDING MESSAGES, PROCESS THEM if (messages.length) { console.log('Processing ' + messages.length + " pending messages.\n"); processMessages(messages, db); } else { console.log('No pending messages.\n'); process.exit(); } }); } // PROCESS RETRIEVE MESSAGES, HANDLING EACH BY TYPE function processMessages(messages, db){ var i,message; for (i=0; i<messages.length; i++){ message = messages[i]; switch (message.type) { case 'slack': sendSlackMessage(message.payload); markMessageRead(message, db); break; } } } // SEND A MESSAGE TO SLACK function sendSlackMessage(payload){ // GET THE WEBHOOK URL FROM THE ENVIRONMENT var webhook = process.env['SLACK_WEBHOOK_URL']; if (webhook && payload) { // CREATE THE REQUEST MESSAGE var message = { uri: webhook, method: "POST", json: true, body: payload }; // MAKE THE REQUEST console.log('Sending Slack message...'); var slackReq = require("request"); slackReq(message); } } // MARK THE MESSAGE AS READ IN THE DATABASE function markMessageRead(message, db){ console.log('Marking Slack message read...'); var node = db.messages.child(message.id); message.read = true; node.set(message); }
Is there more to be done with this script? Certainly. What if Slack is down? We need to make sure that we don't mark the message as read until we've received a response from the request. Also, I plan to support more message types that trigger different interactions between the Postman script and the database (which is why the switch statement is used when processing each message). But all in all, this is a much better solution than the original, brute force proxy approach. The addition of message types allows for expansion of the Postman's responsibilities, something I'd already identified as necessary in future development sprints anyway.
Are you using Firebase , Node , and Slack ? If so, then perhaps this integration approach will work for you. Let me know what you think in the comments!


text:
Corinthia Palace Hotel and Spa
Select your stay dates to check availability at Corinthia Palace Hotel and Spa
Corinthia Palace Hotel and Spa
About the Hotel
Property Location
With a stay at Corinthia Palace Hotel and Spa, you'll be centrally located in Attard, steps from San Anton Gardens and minutes from Villa Bologna. This 5-star hotel is within close proximity of Malta Aviation Museum and Church of St Mary.
Make yourself at home in one of the 147 air-conditioned rooms featuring minibars and flat-screen televisions. Rooms have private balconies. Complimentary wireless Internet access keeps you connected, and cable programming is available for your entertainment. Private bathrooms with shower/tub combinations feature complimentary toiletries and hair dryers.
Relax at the full-service spa, where you can enjoy massages, body treatments, and facials. You're sure to appreciate the recreational amenities, including an outdoor pool, an indoor pool, and an outdoor tennis court. This hotel also features complimentary wireless Internet access, concierge services, and babysitting/childcare (surcharge). If you'd like to spend the day shopping, you can hop on the complimentary shuttle.
Enjoy a meal at one of the hotel's dining establishments, which include 2 restaurants and a coffee shop/café. From your room, you can also access 24-hour room service. Relax with a refreshing drink from a poolside bar or one of the 2 bars/lounges.
Business, Other Amenities
Featured amenities include a business center, limo/town car service, and express check-in. Event facilities at this hotel consist of conference space and meeting rooms. A roundtrip airport shuttle is provided for a surcharge (available 24 hours), and free self parking is available onsite.
Hotel Facilities
- Year Built 1962
- Total number of rooms - 147
- Coffee shop or café
- Smoke-free property
- Number of floors - 4
- Laundry facilities
- Breakfast available (surcharge)
- Outdoor pool
- Number of meeting rooms - 7
- Concierge services
- Computer station
- Elevator/lift
- 24-hour front desk
- Free area shuttle
- Steam room
- Fitness facilities
- Business center
- Express check-in
- Number of bars/lounges - 2
- Babysitting or childcare (surcharge)
- Meeting rooms 6
- Dry cleaning/laundry service
- Children's club
- Pool umbrellas
- Limo or Town Car service available
- Free WiFi
- Spa services on site
- Hair salon
- Babysitting or childcare
- Indoor pool
- Multilingual staff
- Tours/ticket assistance
- Terrace
- Conference space
- Spa treatment room(s)
- Free self parking
- Free newspapers in lobby
- Porter/bellhop
- Free shopping center shuttle
- Full-service spa
- Wedding services
- Gift shops or newsstand
- Library
- Snack bar/deli
- Garden
- Airport transportation (surcharge)
- Outdoor tennis court
- Luggage storage
- Poolside bar
- Sauna
- Safe-deposit box at front desk
- Number of restaurants - 2
Room Facilities
- In-room climate control (air conditioning)
- In-room safe
- Cable TV service
- Turndown service
- Balcony
- Rollaway/extra beds available
- Bathrobes
- Premium bedding
- Hair dryer
- In-room childcare (surcharge)
- Room service (24 hours)
- Coffee/tea maker
- Slippers
- Blackout drapes/curtains
- Air conditioning
- Pay movies
- Private bathroom
- Free bottled water
- Flat-panel TV
- Free cribs/infant beds
- Phone
- Free WiFi
- In-room massage available
- Connecting/adjoining rooms available
- Daily housekeeping
- Minibar
- Iron/ironing board (on request)
- Shower/tub combination
- Desk
- Free toiletries
Hotel Policy
Know Before You Go
- This property offers transfers from the airport (surcharges may apply). Guests must contact the property with arrival details before travel, using the contact information on the booking confirmation.
- Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
- One child 11 years old or younger stays free when occupying the parent or guardian's room, using existing bedding.
- The property has connecting/adjoining rooms, which are subject to availability and can be requested by contacting the property using the number on the booking confirmation.
- This property allows pets in specific rooms only (surcharges apply and can be found in the Fees section). Guests can request one of these rooms by contacting the property directly, using the contact information on the booking confirmation.
The following fees and deposits are charged by the property at time of service, check-in, or check-out.
- Fee for buffet breakfast: EUR 15 per person (approximately)
- Airport shuttle fee: EUR 24 per vehicle (one way)
- Pet fee: EUR 20 per pet, per night
The above list may not be comprehensive. Fees and deposits may not include tax and are subject to change.
Mandatory Fees and Taxes
You'll be asked to pay the following charges at the property:
- Destination fee: EUR 0.50 per person, per night
We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.Show all hotel policy Show less hotel policy

subset: commoncrawl


text:
Need an HTLV Test in Clarkston, MI? Simply order online 24/7 and get a fast, affordable HTLV Test at a lab near you (Find More Locations):
What is the HTLV Test?
The HTLV Test is a medical lab test for HTLV 1 and 2. People in Clarkston, MI order the HTLV Test for general screening or when interested in being a donor.
How much does the HTLV Test cost?
The price for the HTLV Test includes the doctor's order that you need to get tested in Clarkston, MI, all lab fees and taxes, and a pdf copy of your results. For current prices, please CLICK HERE.
We are happy to help people get the HTLV Test in Clarkston, MI.
HTLV Test in other cities near Clarkston, MI:Auburn Hills | Bloomfield Hills | Clawson | Davisburg | Drayton Plains | Farmington | Lake Orion | Pontiac | Royal Oak | Southfield | Union Lake | Walled Lake | Waterford | West Bloomfield | White Lake Township


text:
The Writ of Jyavah
Mark Davies finds himself in a strange parallel world in which he is one of an order of magicians fighting against a tyrranical Emperor. He has to deal with being forcibly taken from Earth at the same time as learning the arts of both magick and swordplay. His life may depend on it.
Version:1.0 StartHTML:0000000168 EndHTML:0000008940 StartFragment:0000000471 EndFragment:0000008923
The dark man opened his eyes.
The eyes were not—could not be—entirely human. Their irises were stained a bloody red that almost completely eclipsed the original hue. The pupils were much larger than was natural, allowing him to see much better in the dark than normal humans. The whites were completely bloodshot. An ordinary person would have found the eyes disturbing.
The dark man loved them.
Apart from his eyes, his face was that of an ordinary human in his twenties. A rather handsome one, at that. He had pale skin, and tousled blond hair which gave him a somewhat boyish look. He was of average height, and had a slightly more muscular build than was normal. He looked for all the world like one of them.
His wardrobe, however, stood out here on Earth. He wore long, billowing black robes that gave him an intimidating silhouette. A hood covered his face. Underneath these, he wore a tight-fitting tunic, dyed crimson. His leather boots were tipped with iron spikes. His belt was black leather as well, though a shade darker. A fine chain mesh was woven into the clothes.
A sheath between his shoulder blades held his weapon, a two-handed sword. The stout blade was pale as moonlight, seeming almost to glow. It was in fine condition; the dark man oiled and beveled it whenever possible. It extended for about three and a half feet before coming to a sharp point. The ricasso had a small ring attached to one side; during battle, his right index finger would slip through it, aligning the blade with his arm to maximize thrusting effectiveness. Below the crossguard, the hilt was wood, wrapped in ebony leather and silver wire to help maintain a firm grip. The teardrop-shaped pommel had a large black pearl set in it. The one flaw in the sword was the five notches in the leather on the hilt.
This, however, was an intentional flaw. Each notch represented an enemy magician the dark man had killed personally.
A modest number—Judas the elf had slain as many as twenty, and Jaesel dozens upon dozens, if the rumors were to be believed—but he was proud of it. After all, he'd only been fighting against Jyavah's Chosen for three years.
On any other of the occasional missions on Earth that Jaesel would send magicians to perform, the dark man would have shed the robes and tunic and left his sword behind. Blending in was far more effective than more blatant methods; the demons in this world had learned that long ago. One did not seduce a woman by threatening her with a blade. However, subtlety was not what was required here. He had to show the boy the raw power he could possess if he gave himself to Jaesel and to the Gods; otherwise, he might not accept his offer. Besides, he had to move fast; Jyavah's Chosen was probably already in the town, searching for him.
A pity that the servants of the Gods could not possess others like the demons of their ally Satan; the boy was certainly open to possession. It would ensure his cooperation, doubtless.. But then, men were always more effective under their own will; this had been proven on Earth by those like Karl Marx and Adolf Hitler, people who were not directly under the sway of Satan but had managed to further his glorious cause more than any demon-possessed man. And on Elbesh by those like Jaesel and Judas. And myself.
The dark man shivered ever so slightly in the wind. It was cold in the town of St. Emmaline, cold enough that another man wearing nothing but robes would have been struggling to stop his teeth from chattering. However, the dark man was far from ordinary. He did not dwell on the chill; he had more pressing maters at hand.
As far as he could tell, no one in the immediate vicinity had noticed the bright flash that had come when he broke through the wall between the two worlds. They had probably still been getting dressed or eating breakfast; the lazy fools in this part of the world did not get up until the sun had already risen. Westerners. Bah! The sound, akin to that of a small bomb exploding ,would have alerted a few, but the dark man had hidden himself well enough that they would see nothing strange, and most likely pass the noise off as a backfiring car. Those who did not know magick existed often used mundane happenings to explain its effects.
And if one of those who had heard did suspect something was amiss...
Well, it had been awhile since he had used his sword. He could use the practice.
Pausing in his musings, the dark man closed those red eyes. He muttered under his breath, concentrating, focusing on the magick...
When he opened his eyes, they, along with the rest of his body, his clothes, and his sword, were invisible.
He smiled. A neat trick, that—one he had worked on for the better part of a year to perfect. Even now, he had to be careful; if his concentration slipped, he would become visible once more. Still, the results were more than worth the effort.
The dark man stepped out of his hiding place, no longer worrying about one of the townspeople noticing him. It would be rather amusing if they could see him, a black-cloaked man with a blade as long as a ten year-old was tall hanging on his back. He could picture their open mouths and staring eyes as he passed their homes. Ha.
Maybe he would do it sometime. Now, he had a mission.
Find the boy. Kill the agents of Jyavah's Chosen that were also hunting him. And bring him back. Simple, really, in the end.
As the best plans often are.
With an idle flick of his mind, he erased his bootprints from the fallen snow as he walked down the street.


text:
'Ransomware' virus shows up on local computers
A virus spreading around the world has infected Manhattan: a computer virus.
Kansas State University, along with the radio station 1350 KMAN and area businesses have had their computers crashed by a virus called CryptoLocker, a category of virus called ransomware.
"I've never seen anything like this," Reubin Pierce, the director of operations for Manhattan Broadcasting Company, said.
The virus drops itself in computers via email. If users open an attachment from an unfamiliar email, it will lock them out of all of their documents on their hard drives.
At 1350 KMAN, the virus infected one of the machines Thursday, Pierce said. Fortunately, tech personnel were able to mitigate the circumstances with their file backup system.
The kicker about the virus is that it locks a computer's hardware system and demands money to fix it, holding it for ransom.
Pierce said it was the most fascinating scam he's ever seen because of the "sheer arrogance" it takes to attack somebody's computer and then have them pay to fix it.
He said the best protection against it was to verify where the email came from.
"It shows up like an invoice or looks like something you're supposed to open," he said.
So call whatever company the email displays and verify it sent an attachment to you.
To protect hard drive files, Pierce said to have a backup system in place, either on an external hard drive or a flash drive, but those could be infected if they're connected to the computer.
Pierce said he hasn't seen that the virus has affected online storage websites including Dropbox.com, but that could happen eventually if the virus's makers advance it.
To combat the virus, it's also important to keep anti-virus software up-to-date, though CryptoLocker can make it past that.
Pierce said he has been told the cost from the makers to restore a crashed computer started at $100.
KMAN's ransom was $300 and at this point the amount has increased to $700.
But paying the hackers encourages them, Pierce said, so the options to fix an infected computer are to either pay it, restore the computer by wiping it clean or accept the loss and move on, he said.
According to a report from K-State, all of the virus instances at the university appeared to come from "email@example.com" with subject lines like "Past Due Invoice."
CryptoWare has been circulating for a couple weeks and Pierce said it could keep going.
"I think this is just the first. There's going to be dozens and dozens of copycats on this," he said.
People whose computers get infected can call local law enforcement as the hacking act is criminal.


text:
International Otter Survival Fund, Broadford, Isle of Skye, Scotland IV49 9AQ, telephone 0471 822487.Reuse content
Appeals: International Otter Survival Fund
Click to follow
The Independent Online
The Independent Online
The International Otter Survival Fund was launched in November to conserve and protect otters, aquatic carnivores of the weasel family. Of the 13 species of otter in the world, the British native species - the Eurasian otter, or Lutra lutra - has fast declined in number during the last 50 years. Some 95 per cent of its traditional territory has been lost and many deaths are caused by cars, nets and illegal trapping. As otters are at the top of the aquatic food chain, they are sensitive to any form of disturbance, pollution or habitat destruction. Such sensitivity makes the otter a good indicator of the status of the environment. The IOSF aims to protect the remaining populations, to support research into otters and their conservation, plan public education programmes and help rehabilitate orphaned or injured animals.


text:
Kazuo Misaki vs Logan Clark Sengoku 3 watch video >>
Kazuo Misaki vs Siyar Bahadurzada Sengoku 1 watch video >>
Jorge Santiago vs. Kazuo Misaki Sengoku No Ran 2009 watch video >>
Frank Trigg vs. Kazuo Misaki PRIDE 33 Second Coming
Thomas & Mack Center, Las Vegas, Nevada 2/24/2007 watch video >>
Kazuo Misaki vs Kazuhiro Nakamura -Sengoku 9 watch video >>
Kazuhiro Nakamura vs. Kazuo Misaki Sengoku 9 Ninth Battle watch video >>
Melvin Manhoef vs Kazuo Misaki -Dynamite!! Presser watch video >>
Melvin Manhoef takes on Kazuo Misaki at K-1 Dynamite!! Power of Courage 2009 held at Saitama Super Arena, Saitama, Japan on December 31, 2009. watch video >>
The Fight Network previews DEEP: 53 Impact featuring a middleweight showdown between Kazuo Misaki and Akira Shoji. For additional coverage of MMA, boxing and pro-wrestling check out www.THEFIGHTNETW watch video >>


text:
Download ClearSight Analyzer - the analysis engine on TruView™ and Network Time Machine
ClearSight Analyzer allows you to record, identify, and analyze current and past network traffic to view activity as it happens or go back-in-time for root cause analysis of network and application problems. ClearSight analyzer is built into the TruView Appliance and Network Time Machine providing an intuitive, easy-to-use interface for unparalleled application analysis. You don't have to be an expert packet decoder to solve application problems.
- Application-centric Summary View visually displays the health of the most commonly used applications
- Intuitive drill down to flow-based analysis or packet decode
- Reconstruction and playback of video and audio
- Debug multi-tiered applications or pinpoint delay problems with powerful multi-segment analysis
- Seamlessly integrates with 3rd party decode engines such as Wireshark
This download of ClearSight Analyzer can be installed on your Windows® laptop or PC for use independent of TruView or Network Time Machine (it utilizes your PC's network interface for monitoring and packet capture.) TruView and Network Time Machine provides the ability to conduct full line-rate capture at up to 10 Gbps and has terabytes of storage for back-in-time analysis of past performance problems. Try ClearSight Analyzer for yourself and see how easy it is to see and solve complex problems!
Download and try the ClearSight Analyzer for 30 days free and get answers you need now!
For additional information: Email: [email protected].
Phone 844-833-3713 (US/Canada) or 978-320-2150 (other locations).
Complete the Following to Download Trial:


text:
Pretty Sad, Huh?
With school starting back up, you're going to see a lot cars on the road commuting to high school and after school activities. But if you stopped those cars full of kids at random and asked how many of them could change their tire if they had a flat, the number might disappoint you.
According to a survey commissioned by Michelin:
- 52% of U.S. teens ranging from 15 to 17 years old don't know how to replace a tire.
- 44% don't know how to examine the tire tread depth.
- 32% can't figure out how to check tire pressure.


text:
Need private lab testing in Lexington, NC? Simply order private lab testing online and get tested at a lab near you (Find More Locations):
How much does Private Lab Testing cost?
Our prices for Private Lab Testing in Lexington, NC include the doctor's order that you need to get tested, all lab fees and taxes, and a pdf copy of your results. For current prices, please CLICK HERE.
What does a Private Lab Testing report look like?
For a sample report of a popular panel, please CLICK HERE.
In a time of rising healthcare costs, our Private Lab Testing service in Lexington, NC can get you the lab tests you need confidentially and affordably.
Private Lab Testing in other cities near Lexington, NC:Advance | Clemmons | Denton | East Spencer | Kernersville | Linwood | Rural Hall | Salisbury | Southmont | Spencer | Thomasville | Trinity | Wallburg | Welcome | Winston Salem


text:
Is this activity accessible without advanced planning or reservations?
Does this attraction have good scenic or skyline views?
Is this attraction closed during certain parts of the year?
Does this activity require advanced planning, ticketing or reservations?
Is this attraction a "must-see" location?
Is this attraction a hidden gem or off-the-beaten path?
Is this attraction in a remote location?
Is this attraction a good picnic spot?
Is this attraction a good place to visit on a honeymoon?
Is this attraction a romantic spot to visit?
Thanks for helping!
Charming little town not overrun or overgrown by people and hotels...yet. Great little market selling everything you need to buy in Mexico! Restaurants were right on the beach...
read more
Stayed in Neuvo Vallarta which is a 10 minute taxi ride from Bucerias.
Cost around 85 Peso. Bucerias has a market daily selling souvenirs and gifts. The stall holders all try to get you into buy and fairly pushy and also look at wrist bands to where you staying (Riu Palace) etc. Say they seen you there and ask you...
Charming little town not overrun or overgrown by people and hotels...yet. Great little market selling everything you need to buy in Mexico! Restaurants were right on the beach which was pleasant and the food was good. My friends got massages while eating lunch and said they were the best ever! We did succumb to vendors selling jewelry...how could you not?...
We have had a place in Bucerias for 10 years, just keeps getting better ever year. (also busier, it has been discovered!)
Plenty of shops, restaurrants, bars, art gallaries and an old church. Walked up a down the main strip enjoying the taste of Mexico. Shop keepers will haggle on pricing but better deals here that at El Malecon. Was able to walk there from Hotel. Took Taxi back as had a lot of gifts. Very authentic atmosphere.
We walked the beach from our resort to Bucerias. It's a cute little village with a flea market, lots of great places to eat (try Fat Boys... great margaritas and tacos!!) And small village feel with all the same amenities as down town Puerta Vallarta further south. We are glad we took an afternoon to visit!
beware! It's not as...
We came here with 8 people, had dinner with wine and lobster tails for $240 US. Town is very safe. Cab ride was $17 for 8 of us
I walked the market and town by myself, I felt safe and everyone was super helpful. I was looking for an unusual item and everyone tried their best to find it.
The shopping market area is pretty large. If you enjoy the back and forth on buying stuff and getting quoted way to high a price and then offering lower and landing in the middle....this is a fun place to do that. Some people enjoy it...some find it overwhelming as they can be intense sales people at times but they are...
Went to visit because the reviews talked about how this town reminds people of the PV of old. I did not feel the magic. I found it quite dirty, noisy and unorganized. I would have rather spent my morning elsewhere.
Now, maybe all the people sitting by the beach drinking beer and tanning may thing otherwise ...
Quaint, quiet and interesting, Bucerias welcomes tourists and long-stay visitors. It's about as safe as other destinations on the Bay of Banderas (except possibly Puerto Vallarta).
BTW, many of the restaurants are exceptional.
In the past in Cuba, Caribbean etc, the locals are always grateful for childrens clothes, daily essentials and so on. Is this the case here or is it a wealthy place and not necessary? Many thanks
My husband and myself go each year to Bucerias. In the past we have always been back on the Resort before dark. But, this year, Jan 2016, I would like to walk the Art Walk on Thursday evening. Is it safe to walk off the Resort when it is dark?
Going to Bucerias tomorrow to grab lunch, are there any beach activities for kids? Such as jet ski rentals, the banana boat, snorkeling?
Where is mezzingiornos
I will be there last week of January. Was wondering where I could go by myself to do some fishing at a reasonable price. Just for a couple of hours
See all questions


text:
ED Magedson – Founder
Ripoff Report
Robert Guadagnino Traffic Safety Inc.chicago chicago, Illinois United States of America
Does your business have a bad reputation?
Fix it the right way.
Corporate Advocacy Program™
This report was posted on Ripoff Report on 03/01/2010 03:48 PM and is a permanent record located here: http://www.ripoffreport.com/reports/robert-guadagnino-traffic-safety-inc/chicago-illinois-60611/robert-guadagnino-traffic-safety-inc-robert-guadagnino-he-owns-3200-wrote-bad-check-ch-576258. The posting time indicated is Arizona local time. Arizona does not observe daylight savings so the post time may be Mountain or Pacific depending on the time of year.
Ripoff Report has an exclusive license to this report. It may not be copied without the written permission of Ripoff Report. READ: Foreign websites steal our content
Click Here to read other Ripoff Reports on Robert Guadagnino Traffic Safety Inc.
If you would like to see more Rip-off Reports on this company/individual, search here:Search Tips
In order to assure the best results in your search:
#1 Consumer Comment
SUBMITTED: Thursday, June 03, 2010POSTED: Thursday, June 03, 2010
Are you an owner, employee or ex-employee with either negative or positive information about the company or individual, or can you provide "insider information" on this company?
Advertisers above have met our
strict standards for business conduct.


text:
Saturday, April 25, 2009
David Duke Arrested
David Duke was arrested in the Czech Republic for suspicion of denying the Holocaust. It is illegal in many countries (such as Germany and Israel) to question the official Holocaust story. If you should express any doubt, you risk jail time.
Of course, throwing people in jail for their beliefs is nothing new. In many Islamic countries, expressing doubts about Islam can result in imprisonment or even death. However, this intolerance is not excusive to Islam. For example, it is quite dangerous for Jews in Israel to believe in Christianity. Christians have been persecuted and Bibles have been burned. (see link below).
Christianity has also not been a stranger to intolerance. Many people were put to death based on their opposition to official Church doctrine.
The question is should we tolerate dissenting and even heretical beliefs? The arrest of David Duke shows that we have not really progressed much from the Dark Ages. Heresy can still result in imprisonment or death.
2 comments:
There's this silly taboo in that part of the world against questioning any part of the official history of WWII. It's a taboo based on fear -- fear that these ideas could lead to the resurrection of right wing politics in the region again. But any policy of suppression of free speech based on fear must fail. If the revisionist history is true, then the truth will out. And if it isn't, then it will be demonstrated to be clearly untrue under scrutiny. But simply suppressing speech because of fear of what it says doesn't halp knowledge progress beyond fear.ReplyDelete
I hold no brief for Holocaust deniers, but this putting people in jail is silly. It just lets them claim censorship (accurately).ReplyDelete
A lot of this does have to do with American traditions of absolute freedom of speech that don't exist across the pond. But it is too bad. It's part of the reason they can't do anything about the influx of Muslim immigration (Denmark appears to be cracking down...)


text:
Organize your favourite listings
Sign up to keep track of your favourite spaces and revisit them later.
1111 West Georgia Street is located on the periphery of Vancouver's Central Business District and adjacent to the luxury retail quarter at West Georgia and Thurlow Streets. This landmark location is in close proximity to the luxurious Alberni/Burrard Street shopping district and immediately neighbours the upcoming Trump Hotel and Residences. A number of iconic buildings are in the immediate vicinity including the Shangri-La Hotel/ Residences, the Carlyle, and 745 Thurlow Street. Streetfront retail units ranging from 1,295 SF - 5,180 SF. Contact listing agent for lease rate.
FortisBC Centre (previously known as Terasen Centre) is situated at the north-west corner of the prestigious West Georgia Street in the Central Business District and Thurlow Street. It is strategically located near first class hotels, restaurants, shopping malls, world renowned departmental stores, tourist attractions and other amenities. FortisBC Centre is easily accessible to the Burrard sky train station and all major means of transportation. Tenants can get spectacular views of Vancouver Harbour, North Shore Mountains and a prominent vista along West Georgia.


text:
Patron XO Cafe-Dark Cafe Combo Pack112.5cl / 33.3%
Not Available
This product is currently out of stock
Enter your email address below, you will be notified when this product is available.
A set containing a bottle of Patron's XO Café coffee liqueur and a half bottle of its XO Dark Café. The original is drier and stronger than most standard coffee liqueurs – very pleasant in martinis or on vanilla ice cream. The dark combines their silver tequila mixed with Mexican Criollo cocoa and Mexican coffee.


text:
E-MON D-MON 48050D AC Kilowatt Hour Meter
- Description
- Shipping Details
- Item Condition
- Review(s)
E-MON D-MON 48050D AC Kilowatt Hour Meter
Specifications :
Manufacturer : E-Mon Corporation
Model No. : 48050
Serial No. 98060278BQP
Configuration : 4 Wire
Input Voltage : 277/480 - 50-400Hz
Current Rating : 50 Ampere
Product Type : A.C. Kilowatthour Meter
Approvals : UL Listed
Phase : 3 Phase
Brand : E-Mon D-Mon
Authentic E-Mon Corporation D Product
Free Shipping Policy
- Orders with item value overe $100 qualify for free ground shipping within the continental US.
- We do not charge for handling or minimum order on any orders.
- SuperBreakers does not ship on customer accounts.
Same Day Shipping
- We strive to ship out your items the same day the order is placed.
- In exceptional circumstance, SuperBreakers reserves up to 5 business days to consolidate orders for complete shipment.
Expedite Shipments
- Orders being sent via 2 Day Shipping, 3 Day Business and Next Day Air must be received by 3pm EST to Guarantee same-day shipments.
- Expedite orders only ship on normal business days. Saturday and Sunday are not normal business days.
Clickfor additional shipping details and restrictions.
SuperBreakers classifies new E-Mon Corporation 48050D's as items that have not been energized previously. These 48050D's generally will be new in manufacturer boxes. obtained from established independent procurement channels. SuperBreakers is not an authorized distributor of any manufacturer. On occasion a new surplus, opened box or new out of box 48050D may be shipped where items are deemed to be unenergized and never wired as determined by SuperBreakers. All new products carry a 1-year warranty from SuperBreakers.
Re-Certified E-Mon Corporation 48050D's are offered by SuperBreakers as a way to save over the cost of purchasing new. These E-Mon Corporation products benefit from a highly selective process where they are cleaned, tested and repackaged to our exacting standard by our technicians.
All Re-Certified 48050D's from SuperBreakers are priced aggressively and carry a 2-year warranty to assure our customers guaranteed operation without interruption of service. Please note that we cannot guarantee current vintage or "like-new" condition on these items.


text:
Features & Benefits
|Reliable operation at an affordable price
Ideal for small and medium-sized IT environments
|Free-of-charge ETERNUS SF Express Storage Management
|Reliable operation at an affordable price
Ideal for small and medium-sized IT environments
|Free-of-charge ETERNUS SF Express Storage Management
|Disk storage system for SMBs
|Host Interfaces
|Fibre Channel (8 Gbit/s, 4 Gbit/s)
iSCSI (10 Gbit/s [10GBase-T], 1 Gbit/s)
SAS (6 Gbit/s)
|Maximum Disk Drives
SSD, SAS and Nearline SAS in a mixed configuration (3.5" / 2.5")
|Maximum Storage Capacity
|No. of host interfaces
|2/4 ports
|Max. no. of hosts
|Supported RAID levels
|0, 1, 1+0, 5, 5+0, 6
|Drive interface
|Serial Attached SCSI (6 Gbit/s)
|Thin Provisioning
For further information, please see:
IDC: Considerations When Purchasing Storage Solutions
Silverton Consulting: FUJITSU Storage ETERNUS DX200 S3 Performance
IDC: Reinventing Enterprise Storage Systems for the 3rd Platform Era
The Promise and Practicalities of Flash Storage
The Impact of VMware VVols on Storage
Enterprise Storage Architectures
Brochure: ETERNUS DX S3 Family
Flyer: ETERNUS Storage Cluster
Flyer: ETERNUS DX and VMware vSphere Virtual Volumes (VVOL)
Simplify and automate your business process with ETERNUS DX
Transparent Failover with ETERNUS DX Storage Cluster
VVOL with FUJITSU Storage ETERNUS DX
ETERNUS AF and ETERNUS DX Feature Set
ETERNUS AF and ETERNUS DX Storage Cluster
ETERNUS AF and ETERNUS DX Optimization Features: Automated Storage Tiering and Automated Quality of Service
Integration of ETERNUS DX Storage Systems in VMware Environments
ETERNUS DX8700 S3 and DX8900 S3 Hardware Architecture
FUJITSU Storage ETERNUS and CommVault Simpana
Infrastructure Products from Fujitsu Ideal for Big Data
Certification of ETERNUS DX in Milestone video surveillance environment
For over seven years, Hemsworth Academy, had relied on a storage array that was no longer fit for purpose and reaching end of life. In the context of an extremely limited budget, the school needed to find a replacement that would provide the foundation for its IT infrastructure for many years to come.
Prasad Corporation deploys Fujitsu PRIMERGY and ETERNUS technology to create a flexible, stable storage platform with massively improved throughput.
The AVITA Resort Bad Tatzmannsdorf has been crowned Austria's 'Wellness Spa of the Year' three times in a row. The company sees the award as a reflection of its dedication to its customers, who rely on being able to get in and out of the complex quickly and pay efficiently at the tills, and expect the hotel and spa's building technologies to work flawlessly.
The backbone of REWE DORTMUND's existing IT infrastructure was a storage cluster dispersed across two separate sites, but the rise in demand caused by the company's consistent growth meant that within just three years, it was already unable to cope. Peak I/O rates had reached their limits. "The old system was simply no longer powerful enough, and the time buffer it gave us was insufficient for certain applications," explains Markus Handschuh, Head of IT System Operations, REWE DORTMUND.
Contracts for the existing storage infrastructure at Stiftung Hospital zum Heiligen Geist were coming to an end, and managers felt that continuing to use it would be more expensive than migrating to a new platform.
Fujitsu nelinkertaistaa etenkin pk-yrityksille tarkoitetun ETERNUS DX60 S2 -levyjärjestelmän tallennustilan enimmillään 288 teratavuun.
Fujitsu auttaa yrityksiä selviämään ennakoimattomasta datamäärien kasvusta
Fujitsu tuo markkinoille uudet tehokkaat perustason tallennusjärjestelmät.
Fujitsu tuo markkinoille uuden, vain flash-muistia käyttävän version ETERNUS DX200 S3 -tallennusjärjestelmästä, jossa suorituskyky suhteessa käyttökustannuksiin on erinomainen.
Fujitsun perustason (Entry-taso) levytallennusjärjestelmä ETERNUS DX200 S3 on ottanut ykkössijan nopeimpana ratkaisuna keskikokoisten (Midrange-taso) levytallennusjärjestelmien sarjassa.
|Support Pack Options
|Globally available in major business areas:
9x5, Next Business Day Onsite Response Time
9x5, 4h Onsite Response Time
24x7, 4h Onsite Response Time
|Recommended Service
|24x7, Onsite Response Time: 4h
Jaa sivu


text:
Talk radio journal recognizes Herald
Credit: Amanda Sabga
Boston Herald Radio's launch has been named to the prestigious Frontier Fifty list of outstanding talk media webcasts in the nation by the respected industry bible Talkers Magazine.
Talkers singled out Herald President and Publisher Patrick J. Purcell and Editor-in-Chief Joe Sciacca in its recognition of the innovative Internet radio platform.
|The article you requested has been archived