text:
Middlesbrough cabbie relieves lad of iPhone
No cash on you? Just leave the mobe on the dash...
A Middlesbrough teen has been left "devastated" after a cabbie made off with the iPhone he'd demanded as guarantee the lad would pay the fare.
Shaken 16-year-old Ryan Horkan explained to the local Evening Gazette: "I had been out with my friends and flagged down a taxi to go home. I explained to the driver I didn't have money on me so he asked me to put my phone on the dashboard.
"When I got home I went inside to get the money and brought it out, but he said it wasn't enough. I then went inside again to get more but when I came out, he had gone."
Admitting to a certain degree of absent-mindedness*, the games design student added: "At the time I didn't realise I didn't have my phone but in the morning I realised that he had asked for it to make sure I paid.
"My mum then tried to call my phone but it had been switched off. We rang my phone company, and they have said the SIM card has been removed."
The poor lad concluded: "I can't believe it. I have heard of similar things happening before but you think you can trust a taxi driver."
Horkan's equally incredulous mum, Lynn Dotchin, said: "You would think Ryan would have been safe with the taxi driver – I just can't believe it. We thought the driver might have driven off without realising he still had the phone and would bring it back, but when he didn't we called the police."
The Jesus Phone was a £500 Xmas present from dad Mark, who said he couldn't afford to stump up for another.
Cleveland cops are looking into the matter, and a Middlesbrough Council spokesman assured: "We are concerned by this incident and are currently working with Mr Horkan and the police to assist with the investigation of this matter and to help identify the driver involved."
The Gazette has a snap of a disconsolate Horkan and his empty iPhone box here. ®
* Legally, I am required to stress that this is not a euphemism for "admitting to a certain degree of leglessness".


text:
Home >> Course Descriptions >> College of Arts and Sciences
Undergraduate Research
One-four semester hours.
A course adapted to the directed study of topics in English. Advanced students will develop a project in cooperation with an instructor. The project will be established by the student with the approval of the instructor prior to registration. The course may be repeated with a change in project, but total credit cannot exceed eight semester hours. Prerequisite: Permission of the instructor.
Home - General Information - Student Services -
Academic Undergraduate Regulations -
Undergraduate Degrees - Academic Graduate Regulations -
Graduate Degrees - Course Descriptions - Faculty -
Appendix A - Appendix B - Appendix C - Appendix D

subset: commoncrawl


text:
Hubble, Sloan Quadruple Number of Known Optical Einstein Rings
Astronomers have combined two powerful astronomical assets, the Sloan Digital Sky Survey (SDSS) and NASA's Hubble Space Telescope, to identify 19 new "gravitationally lensed" galaxies, adding significantly to the approximately 100 gravitational lenses previously known. Among these 19, they have found eight new so-called "Einstein rings," which are perhaps the most elegant manifestation of the lensing phenomenon. Gravitational lensing occurs when the gravitational field from a massive object warps space and deflects light from a distant object behind it. Einstein rings are produced when two galaxies are almost perfectly aligned, one behind the other.
The thin blue bull's-eye patterns in these eight Hubble Space Telescope images appear like neon signs floating over reddish-white blobs. The blobs are giant elliptical galaxies roughly 2 to 4 billion light-years away. The bull's-eye patterns are Einstein rings, which are created as the light from galaxies twice as far away is distorted into circular shapes by the gravity of the giant elliptical galaxies.
A Gallery of Einstein Rings
As Albert Einstein developed his theory of general relativity nearly a century ago, he proposed that the gravitational field from massive objects could dramatically warp space and deflect light.
The optical illusion created by this effect is called gravitational lensing. It is nature's equivalent of having a giant magnifying lens in space that distorts and amplifies the light of more distant objects. Einstein described gravitational lensing in a paper published in 1936. But he thought the effect was unobservable because the optical distortions produced by foreground stars warping space would be too small to ever be measurable by the largest telescopes of his time.
Now, almost a century later, astronomers have combined two powerful astronomical assets, the Sloan Digital Sky Survey (SDSS) and NASA's Hubble Space Telescope, to identify 19 new "gravitationally lensed" galaxies, adding significantly to the approximately 100 gravitational lenses previously known. Among these 19, they have found eight new so-called "Einstein rings", which are perhaps the most elegant manifestation of the lensing phenomenon. Only three such rings had previously been seen in visible light.
In gravitational lensing, light from distant galaxies can be deflected on its way to Earth by the gravitational field of any massive object that lies in the way. Because of this, we see the galaxy distorted into an arc or multiple separate images. When both galaxies are exactly lined up, the light forms a bull's-eye pattern, called an Einstein ring, around the foreground galaxy.
The newly discovered lenses come from an ongoing project called the Sloan Lens ACS Survey (SLACS). A team of astronomers, led by Adam Bolton of the Harvard-Smithsonian Center for Astrophysics in Cambridge, Mass., and Leon Koopmans of the Kapteyn Astronomical Institute in the Netherlands, selected the candidate lenses from among several hundred thousand optical spectra of elliptical galaxies in the Sloan Digital Sky Survey. They then used the sharp eyes of Hubble's Advanced Camera for Surveys to make the confirmation.
"The massive scale of the SDSS, together with the imaging quality of the Hubble telescope, has opened up this unprecedented opportunity for the discovery of new gravitational lenses," Bolton explained. "We've succeeded in identifying the one out of every 1,000 galaxies that show these signs of gravitational lensing of another galaxy."
The SLACS team scanned the spectra of approximately 200,000 galaxies 2 to 4 billion light-years away. The team was looking for clear evidence of emission from galaxies twice as far from Earth and directly behind the closer galaxies. They then used Hubble's Advanced Camera for Surveys to snap images of 28 of these candidate lensing galaxies. By studying the arcs and rings produced by 19 of these candidates, the astronomers can precisely measure the mass of the foreground galaxies.
Besides producing odd shapes, gravitational lensing gives astronomers the most direct probe of the distribution of dark matter in elliptical galaxies. Dark matter is an invisible and exotic form of matter that has not yet been directly observed. Astronomers infer its existence by measuring its gravitational influence. Dark matter is pervasive within galaxies and makes up most of the total mass of the universe. By searching for dark matter in galaxies, astronomers hope to gain insight into galaxy formation, which must have started around lumpy concentrations of dark matter in the early universe.
"Our results indicate that, on average, these 'elliptical lensing galaxies' have the same special mass-density structure as that observed in spiral galaxies," Bolton continued. "This corresponds to an increase in the proportion of dark matter relative to stars as one moves away from the center of the lensing galaxy and into its fainter outskirts. And since these lensing gelaxies are relatively bright, we can solidify this result with further ground-based spectroscopic observations of the stellar motions in the lenses."
"Being able to study these and other gravitational lenses as far back in time as several billion years allows us to see directly whether the distribution of dark [invisible] and visible mass changes with cosmic time," Dr. Koopmans added. "With this information, we can test the commonly held idea that galaxies form from collision and mergers of smaller galaxies."
The Sloan Digital Sky Survey, from which the SLACS lens-candidate sample was selected, was begun in 1998 with a custom-built ground-based telescope to measure the colors and brightnesses of more than 100 million objects over a quarter of the sky and map the distances to a million galaxies and quasars. "This type of gravitational-lens survey was not an original goal of the SDSS, but was made possible by the excellent quality of the SDSS data," said Scott Burles of the Massachusetts Institute of Technology in Cambridge, Mass., a SLACS team member and one of the creators of the SDSS.
"An additional bonus of the large size of the SDSS database is that we can design our search criteria so as to find the lenses that are most suitable for specific science goals," said SLACS team member Tommaso Treu of the University of California, Santa Barbara. "Whereas until now we have selected the largest galaxies as our targets, in the next stages of the survey we are targeting smaller lens galaxies. There have been suggestions that the structure of galaxies changes with galaxy size. By identifying these rare objects 'on demand,' we will soon be able for the first time to test whether this is true."
Added SLACS team member Leonidas Moustakas of the NASA Jet Propulsion Laboratory and the California Institute of Technology in Pasadena, Calif.: "These Einstein rings also give an unrivaled magnified view of the lensed galaxies, allowing us to study the stars and the formation histories of these distant galaxies."
The SLACS Survey is continuing, and so far the team has used Hubble to study almost 50 of their candidate lensing galaxies. The eventual total is expected to be more than 100, with many more new lenses among them. The initial findings of the survey will appear in the February 2006 issue of the Astrophysical Journal and in two other papers that have been submitted to that journal.
Dolores Beasley/Erica Hupp
Headquarters, Washington
(Phone: 202/358-1753/1237
Donna Weaver
Space Telescope Science Institute, Baltimore
(Phone: 410/338-4493)
David Aguilar
Harvard-Smithsonian Center for Astrophysics, Cambridge, MA
(Phone: 617/495-7462)
Jane Platt
Jet Propulsion Laboratory, Pasadena, CA
(Phone: 818/354-0880)


text: Hi I've having a problem with Send copy to and the autoresponder. They simply are not working for all domains. I can send and receive emails no problem. The email forwarding is working no problem (if it's related). I'm running the latest version of ISP Config 3 (126.96.36.199). Any ideas what I can check? The mail log looks fine but there is no indication that the copy is being sent or that the autoresponder failed in some way. Thanks,


text:
STOCKHOLM (Reuters) - Russia's Ilya Kovalchuk scored one goal and made another as the defending champions hammered Latvia 6-0 in their opening group game of the ice hockey world championship in Stockholm.
The Russians were ruthless in disposing of the Latvian challenge, scoring three goals in the second period to take a 4-0 lead.
Two further goals in the final period put the champions out of sight and into second place behind Finland with a game in hand.
Finnish goalkeeper Antti Raanta registered a shutout on his international debut as the co-hosts beat a strong Slovakia side 2-0 in Helsinki to top their group on five points after two games.
"I couldn't have wished for any more," Raanta told Finnish TV. "The guys did a great job in front of goal. We improved our play in the second period and Slovakia didn't get any more good chances."
Co-hosts Sweden recovered from an embarrassing 3-2 loss to Switzerland in their opening game as they squeezed out Czech Republic 2-1 in the late game in Stockholm
Canada and the United States got off to winning starts in their group games.
The Canadians came back from a goal down to beat Denmark 3-1 in Stockholm, while two goals from Erik Johnson helped a jittery U.S. side overcome Austria 5-3 in Helsinki.
In the day's other game in Stockholm, Norway took the lead after a minute against Slovenia and never looked back, running out 3-1 winners to join Canada at the top of the group.
Reporting by Philip O'Connor in Stockholm; Editing by Sonia Oxley


text:
Previous Editions:
28th Edition
27th Edition
26th Edition
25th Edition
24th Edition
By the National Radio Club.
The most accurate and comprehensive guide to American and Canadian medium wave (AM) stations available. Organized by frequency, with callsign cross reference. Includes addresses and phone numbers for all stations plus formats, network affiliation, day/night power and antenna pattern type! Recent additions to the log lists call letters of FM simulcasts, listings of regional groups of stations in the groups section (a separate section of the log book) and a cross reference of stations broadcasting in I.B.O.C. (In Band On Channel) digital audio. Many talk radio hosts and their syndicator or network appear in a separate section also. This book is supplied on separate 3 hole punched sheets so you may put it in a standard 3 hole binder. Everything is displayed in an easy to read format. A must for every medium wave DX'er. Nearly 7000 updates since the previous 28th Edition of the log! 29th Edition. National Radio Club. Printed August 2008. 282 pages.
Click here to view 30th Edition.


text:
In a recent forum thread, someone asked to see who created/altered a particular object. Starting in SQL Server 2005, this information is contained in the default trace, provided that the default trace is enabled and the information hasn't rolled out of the trace files. The catch is how to report on the information easily. If you've used it before, you're likely thinking of the Schema Changes History report. The catch is that if you're using SQL Server Management Studio from SQL Server 2005, this functionality wasn't available until Service Pack 2. So if you have just installed the workstation tools and you've never applied a service pack, you won't see the option for the reports because it's not there. The same is true if you have a full SQL Server installation that's still RTM or SP1. The only way you see the change to SSMS is to apply SP2.
Which brings up a good point. You should be applying service packs to your client systems as well. This was a lesson we learned the hard way on SQL Server 7. It seemed like with every new SQL Server service pack, the definition of DTS packages changed. The only exception was if you encrypted your DTS packages with a password. That didn't change. And so what it meant was if you had different SP versions between your servers and your client systems creating said packages, you had a problem. Because ones with later service packs could read packages created with older service packs, but not vice versa. And as I'm writing this, Aaron Bertrand has just put out a blog post talking about an SSMS issue that is fixed with a hotfix, which you should take a look at, especially if you're dealing with mixed environments. So the point here is that in addition to keeping your SQL Servers up to date. you also need to plan on keeping your SQL Server client tools up-to-date as well. Not only are new features provided, but fixes are included with the updates, too.


text:
101 Brass
Crash Ride
Sizes: 18"
Weight: medium heavy
Volume: soft to medium
Stick Sound: fairly pronounced
Intensity: lively
Sustain: medium
Bell Character: full, integrated
Sound Character: Fairly dark, full, focused. Narrow range, clean mix. Even, balanced feel. Multi-purpose cymbal with fast, powerful crash and soft, mellow ride qualities.
Sound Room:
Click the icons below to hear them.
Download MP3 Sound Files 101 Brass
Click the icons below to hear them.
Click to add a size of this model to the soundroom: 18"
Download MP3 Sound Files 101 Brass


text:
It all began a year ago when I answered Thomas MacEntee's challenge to enter the Winter Olympic Games of Genealogy. I was pretty much a solo genealogist. I volunteered 4 hrs/week at my local Family History Center and indexed for both ancestry.com and familysearch.org but other than using the message boards my genealogy was pretty much a solitary effort. What a difference a year makes and Thomas is to blame!
Using the blogging prompts provided by Geneabloggers, I have managed to create 100 blog posts in the past year. Me, who was regularly grounded in boarding school for not writing a weekly letter home! This year I have been reading lots of blogs and watching just about every genealogy related webinar in existence. I have experimented with additional software programs and began a serious source citation effort. While not quite the project that Randy Seaver has created, I have used 3 different programs to create source citations to find out which one I will be more likely to use. Actually citing the source is the real point!
I have joined 2 genealogical groups, one local and one in my home state. I attend the local monthly meetings and have created and presented two power point shows to the local group, explaining gedcom and jpeg files and moving around in Familysearch.org. I volunteer 4 hours a week in the genealogy room at my local library.
Thanks to reading all the Jamboree 2009 updates on faceboook, I actually signed up and attended Jamboree 2010 in Burbank last June. I had a super time and began saving for this year as soon as I got home. I was able to do some personal genealogy while in California since I had dinner with a cousin (and her husband) that I hadn't seen or visited with in 50 years. No feud, just life and distance.
Maybe it isn't all Thomas' fault. Facebook and Unclaimed Persons might have caused the opening crack in the wall of my solitary genealogy pursuit. Getting to know Thomas, Randy, Dick Eastman, and Megan through their fb posts and following their advice led me to expanding my horizons.
I've come a long way baby, and I like where I've landed!
Sunday, February 13, 2011
My Blog Anniversary - 1 year 100 posts!
3 comments:
Subscribe to: Post Comments (Atom)


text:
Hello friends and neighbors. It is good to see you here.
Hello friends and neighbors. It is good to see you here.
A contingent from Onslow Caregivers traveled to Raleigh on Dec. 18 to meet with Section Chief Craig Smith at the NC Department of Health and Human Services and state Representative Phil Shepard about establishing a hospice house in Onslow County. Volunteer Wade Wainwright drove the Lighthouse Baptist Church van to transport eight of us to Raleigh to include Jean Cole, Wanda Elliott, Elvira Webb, Martha Harville, Martha Jacob, Marge Zima and Sharon and Norman Brown. Sandra Griffin and I followed in my own vehicle. The meeting went well and we moved on to lunch at the General Assembly cafeteria. The food was good country cooking, the conversation was lively and we all enjoyed it (photo available upon request). After the meal, we decided to take up money for the driver to thank him for taking his day to drive us. The driver was reluctant to take the money, so when Martha Jacob gave it to him, he placed in a holder on the dashboard.
When it was time to leave, Wade turned right upon leaving the parking deck. I turned left so I lost the van on the way home. Since he had turned the wrong way, Wade said it took them a while to travel down U.S. 70 to connect with Interstate 40. Wade stopped at a McDonald�s just off 40 for a bathroom break. He said that he parked the van catty-cornered across two parking spaces. When he returned to the van, there was a car beside the van also parked catty-cornered across two spaces. The woman driver was sobbing, shaking, talking to herself and beating her hands holding a cell phone on the steering wheel. There was a toddler strapped in a car seat in the back.
Concerned for the woman, Wade approached the car and knocked on the driver�s window.
�Are you OK ma'am?� Wade asked.
The young woman cracked the window and explained to Wade that she had driven hours from Jamestown to meet her husband at the McDonald�s to collect the child support money. He had not shown up. His 18-year-old girlfriend had called on the cell phone to tell her that her husband was not coming. Trusting him, she had spent her last $2 on one hamburger for her and the child and now she had no money to return home. She apologized for venting her frustration.
Wade returned to the van and took the money from the holder and gave it to the woman. Jean Cole then peeled out of the van to speak to the woman. Hearing her story, Jean advised her to go home and let her parents help her. The woman said that her parents were dead. Jean advised her to contact the Salvation Army and/or Social Services for help for herself and her child. Jean then removed all the money in her wallet and gave it to the woman. Others in the van also donated money. The woman cried some more and got out of the car to hug Jean. It was then that Jean saw that she was pregnant.
The woman took Jean�s face between her hands. �I just want you to know that I am not trailer trash,� she said.
They hugged and the woman left without anyone getting her name. We�re hoping the young woman will read this and get in touch so that we will know that all is well with her.
�I think someone talking to her was the best thing,� Jean said. �We believed her. I don�t know the end of the story but I see her face every day in my mind. The baby�s face was like an angel. He had a little piece of a blanket in his hand and he was coughing.
�She was going through hard times. At least there was a group of people to help her. I hope it gave her the courage to go on and do what she needed to do for her and her baby.�
Wade said that he thinks it was divine intervention that turned the van the wrong way that day and caused them to go 15 or 20 miles out of the way.
�I felt good about it,� Wade said. �I hope we did the right thing. I have been blessed all the way around since then so maybe we did. God does not turn his back on me so I try not to turn my back on anyone else.�
Onslow Caregivers has held the Festival of Trees for 11 years towards establishing a hospice house. The committee is looking for five acres of land. If you know of any property, please contact a member of the Onslow Caregivers board. Donations are also needed.
Arctic polar vortex
It�s official. I hate polar vortexes. That�s why I live in the South and not the Arctic. It was hard to tell this was the South last week when the polar vortex escaped its bounds and dipped down. The temperature dropped like a stone.
It was about 3 p.m. when my tenant Charlie called me.
�Carolyn there is water spewing next door creating icicles under the mobile home,� he said.
I had turned the water off to the mobile home so I knew it had to be on the water side. Joe met me there with parts to repair the broken water line. It was too cold for the bonding to hold on the water lines. Joe was getting frost bite on his fingers so I asked him to go sit in the truck while I ran to Lowe�s to purchase a cap for the pipe. I also got my hair dryer to warm the pipes so that the bond would hold. We managed to cap the pipe and insulate it but it was after dark when we finished. By the time we got home, a hot bowl of soup and grilled cheese was welcome comfort food. It took a while to thaw out.
It was just as cold the next day so I checked the pipes again. It was Wednesday Rotary day. Something kept telling me to go home and check on the dog. I listened to that inner voice and went home before Rotary to let the dog out. When I opened the back door, water was spewing from the deck to the middle of the backyard. The faucet on the deck for watering flowers had frozen and as it thawed, water spewed forth.
I still had Joe�s water turnie off thing in the car in case of another leak at the campground so I turned off the water in the front yard, flipped the switch to the hot water heater and went to Rotary. I�d had enough of playing in the water during a polar vortex. I was waiting for a warmer day.
I came home that night to no water except half of a gallon that I keep for the dog�s bowl. From habit, I went to one or the other sinks many times that evening to turn on the water.
The next morning, I had flushed all my toilets and used all the water in the gallon jug. Mooshie, the dog, was tired of sharing her water bowl so I brushed my teeth and plastered my hair down with unsweet tea. I asked Joe and my friend Judy Huff how I looked with tea-plastered hair and teeth over lunch at Angie�s. We had a good laugh and then between us, Judy and I managed to turn over her tea and bathe the rest of me in unsweet tea.
Joe capped the line on Friday so that I could have water and repaired it on Saturday while my daughter Brit, Aunt Kelly, Cousin Katie and friend/bridesmaid Marilyn shopped for a wedding dress. The dog was relieved to have her water bowl to herself.
It was a great reminder of how precious is water. We are blessed to have fresh water in this country but the aquifers will not last forever if we do not conserve water and protect it from being polluted by such things as fracking.
March for Life
The Knights of Columbus at Infant of Prague Catholic Church will hold the March for Life at 1 p.m., Jan. 25 beginning at the corner of Bayshore Drive and Johnson Boulevard and marching to the church where 41 memorial crosses will be placed on the church lawn, one for every year since the Roe v. Wade decision. An ecumenical prayer service will be held to proclaim the dignity of all human life and to remember all who have died due to abortion. Refreshments will follow in the church hall. The public is invited. Call (910) 340-3142 for more information.
Thank you for coming.


text:
Rocky HandHewn Women's Snip Toe Western Boot
This Product Is Sold Out
Click Here To View Similar Products
Rocky HandHewn Women's Snip Toe Western Boot
This Product Is Sold Out
Click Here To View Similar Products
Additional Information
These Rocky HandHewn women's Western boots are a show stopper! The 12" height works perfectly with everything from shorts to jeans, so you'll be able to wear them throughout the year and to nearly every occasion on your calendar. Then consider the pretty shade of blue, quality leather, detailed stitching and sassy snip toe. An Expansion Fit Seam™ (the seam expands so you are able to insert/remove your ankles smoothly), dipped topline and pull straps allow you to get these boots on and off with ease.
You won't believe how smooth the leather lining is inside these women's boots. Its softness will keep your legs comfortable, while its durability allows the interior to hold up well. The amount of cushioning that you get from the insole (positioned directly beneath your feet) is great; it's covered in memory foam!
The tempered steel shank is a nice feature to have built within the base of these Western boots; it allows you to have very sturdy, sound footing and it supplies great arch support. The outsole that has been attached to the bottom of these boots is a cowgirl's dream come true; it has been hand-pegged, fashioned out of genuine leather, is durable and looks good.
A stunning exterior, quality materials, comfort features and a terrific outsole... Without a doubt, these Rocky HandHewn Women's Snip-Toe Western Boots are perfect for you!
- Expansion Fit Seam for easy on and off
- Hand-hewn snip toe
- Hand-hewn cowgirl heel
- 12 inches in height


text:
Unlimited Free Hosting
One-Click Distribution
Monetize Your Podcast
Podcast With Friends
Straightforward Analytics
Record From Anywhere
Episode Builder
Editing Tools
Creation Tools
Transcribed Videos
Switch to Anchor
Sign up
Log in
Sign up
Log in
? And A show 3 How to make money 💰 online
An episode of eCom Tips Podcasts
By Roger
Welcome to eCom tips podcast I am Roger keyserling an e-Commerce and marketing specialist. I am also the small business owner of Keywebco eCom Tips is full of Blog Narrations IGTV shows recipes news eCommerce Tips apps and more Keywebco has Dragon deals on items like toys shoes lawn and garden home decorations and much more come chat with Roger Keyserling on our Facebook Live show every morning at 8:30 a.m. Central Time search for
online be sure to look for our visit win sidebar get discounts and freebies enjoyed today's podcast topic check for any available links included
Mac and Cheese 🧀
May 25, 2019
Live Daily Show with Roger
Roger Keyserling of Keywebco.com in the car doing Facebook live videos which we have done for many years. transmitted now to podcast and YouTube look for Keywebco's channel on YouTube
May 22, 2019
Question and Answers Show special Bolo Rama Jay Kraft edition
https://www.youtube.com/channel/UClbY-SIZpeM_76cLbq5r7Mg Bolo Rama Show by Jay Kraft.
May 22, 2019
Question and Answer Show
Today's question is from perfectfinds4u Answers by Roger Keyserling Of Keywebco.com
May 22, 2019
Live Daily With Roger on Facebook
May 21, 2019
Facebook live daily show with Roger Keyserling
Driving in the car chitchatting about who does what who knows when and who knows however but pop in and find out
May 20, 2019
Funday Sunday Facebook live daily show
Roger Keyserling of Keywebco.com
May 20, 2019
Facebook live show daily with Roger
Roger ofKeywebco.com every day does a Facebook live shout we also said that to Econ tips podcast and to YouTube
May 18, 2019
Live daily show from Facebook with Roger Keyserling
Keywebco.com puts on a Facebook live show transmit that's the club tips podcasts and YouTube check it out
May 17, 2019
Facebook daily live show with Roger Keyserling
Roger of Keywebco.com is on Facebook live every morning 830 central standard time and transmits to podcast and YouTube
May 16, 2019
What Makes A Good Logo with Tips
https://keywebco.com/blogs/news/what-makes-a-good-logo-with-tips Your logo will have a huge impact on the first impression your business is going to make: It will give your customers information about your brand and let them know if it's right for them. Because your logo is such an essential part of your brand, you want to make sure it's done well. All your branding materials will have your logo on them. It'll stare back at your customers from your website, your packaging, and your business cards. Make it count! Great, professional logo design not only has the power to communicate what you stand for. It will also make a good first impression and help you stand out from the competition. 5 PRINCIPLES OF GOOD LOGO DESIGN What makes a good logo? A good logo is instantly recognizable, simple in form, easy to remember, built for longevity, and able to fit different mediums of branding material. SIMPLE In order for a good logo design to take shape, we must take our concepts down to their simplest form. Simplicity is key and allows a logo to be easily recognized. Without simplicity, a logo cannot follow it's other principles of memorability and versatility. MEMORABLE To build a lasting impression, a logo must be memorable. How else will your client's customers remember them? The complexity of design serves as a negative in logo design, your logo will have only a few seconds to be absorbed by the average person. Keep it simple. TIMELESS Timeless refers to no particular point in time. Focus on building a strong concept for your logo and keep away from trends. As trends fade away, so will the logo. A timeless logo allows your client to enjoy it's longevity, allowing your design to stay on board for the long-term. When designing a logo, remember to: • Build a strong concept • Stay away from trends • Design for the long-term VERSATILE Logos are marks and symbols that represent a business. As companies market themselves through various forms and mediums, they apply their logo to business cards, advertisements, folders and many more. When designing a logo, it is important to consider logo size equally on a business card as on a billboard. Can a logo be applied to various forms of size and color? Think about: • Printing in small and large sizes • Can the concept be understood in 1 color • Cost of printing multiple colors Design and present your logo concepts in only black and white, as colors can obscure your client's judgment and take away from the concept. Consider printing the logo in a 1-inch square. Is it visible? Thin lines are likely to fade or disappear when printing in small sizes, think about this when drawing your initial sketches. RELEVANT Does your logo fit the purpose and identity of the company? A logo must portray the company it represents through the use of shape and form. A good rule to follow (not always though) is smooth lines for a youthful company and straight lines for a structured company. It is important to make sure the logo is relevant to the industry your company is in. A technology logo is identifiable based on the symbol and the style of the type treatment. That style will not work for a clothing company or food product. Here are some questions you can ask yourself, to get to the bottom of your brand identity: Why did we start this business? What are the beliefs and values that are important to us as a company? What do we do better than anyone else? What makes us special? If we could describe our brand in three words, what would they be? What are the three words we would want our customers to use to describe us? The best place to steal borrow ideas? Your competition! Check out what's already out there, what works well with your audience and what you should avoid. While stalking those other businesses, think about what makes them different from you and how you can emphasize these differences in your logo design. Be sure to clearly set yourself apart from your competition. If all the other businesses in your
May 16, 2019
Tips For Slow Cooker Crock Pot With Recipes
The beauty of using a slow cooker or a Crock-Pot is that it's pretty darn simple. Prep your ingredients, add them to the slow cooker and press a button or two. But there is a difference between a good slow-cooker meal and a great slow-cooker meal. Good ones get dinner on the table. Great ones, however, are remembered, talked about and requested. Here are some tips that can help you turn basic slow-cooker dinners into standout supper stars everyone will enjoy. These tips will also help you know when a slow-cooker recipe is destined to be great. Tips Coating the inside of the slow cooker with a non-stick spray can prevent the need for scrubbing later. Liner bags made for slow cookers make cleanup quick, effortless cleanup. For most slow cookers, the high setting is approximately 280 F and the low setting is approximately 170 F. Cooking on high for one hour is about equal to cooking on the low setting for two hours. Add fresh herbs at the end to keep their flavors bright and fresh. Place hard vegetables, like potatoes, carrots, and other root vegetables at the bottom of the slow cooker where they will have more moisture and cook swiftly. Crockpot BBQ Chicken This is going to be the easiest BBQ chicken you have ever made. I'm not joking! Nothing beats the flavor. This is The Best Crockpot BBQ Chicken recipe ever! Ingredients 2 lbs boneless skinless chicken breasts 1 cup BBQ sauce 1/4 cup Italian dressing 1/4 cup brown sugar 1 tbsp Worcestershire sauce salt to taste Instructions Season chicken breast lightly ( a small pinch per breast) with some sea salt and place in your crockpot. In a mixing bowl combine BBQ sauce, Italian dressing, brown sugar and Worcestershire sauce. Stir until well combined. Pour over chicken, cover and cook on HIGH for 3-4 hours Once the time is up, you can serve the breast whole, or shred with 2 forks. If shredding, recover and let cook in the sauce for about 10-15 more minutes to soak up all that delish flavor. Serve on buns, over rice, in wraps, on a salad or eat a plateful as is! Our favorite way is on fresh rolls, topped with coleslaw. Video Nutrition Information: Calories: 342kcalCarbohydrates: 30g (10%)Protein: 34g (68%)Fat: 8g (12%)Saturated Fat: 2g (10%)Cholesterol: 95mg (32%)Sodium: 691mg (29%)Potassium: 719mg (21%)Sugar: 26gVitamin A: 2.1%Vitamin C: 0.8%Calcium: 3.4%Iron: 7.4% Honey Garlic Crockpot Meatballs Do you want to know what I love about this recipe? This Honey Garlic Crockpot Meatballs can be served as an appetizer or a main meal with rice or noodles. Ingredients 1/4 cup brown sugar 1/3 cup honey 1/2 cup ketchup 2 TB soy sauce 3 cloves garlic minced 1 28oz bag fully cooked, frozen meatballs Instructions In a medium bowl, mix together brown sugar, honey, ketchup, soy sauce, and garlic. Place frozen meatballs in a 3-4 quart crockpot and pour the sauce over meatballs. Stir so all meatballs are coated evenly. Cook on LOW for 4 hours, stirring occasionally. Use as an appetizer or serve over rice for a meal! Nutrition Information: Calories: 90kcalCarbohydrates: 22g (7%)Sodium: 390mg (16%)Potassium: 77mg (2%)Sugar: 21gVitamin A: 1.5%Vitamin C: 1.2%Calcium: 1%Iron: 1.5% Crockpot Low Country Boil Nothing says summer like a Crockpot Low Country Boil. It really has to be one of the most fun meals to eat. Grab some friends and give this recipe a try! Ingredients 1.5 lbs small red potatoes cut in half 5 cups of water 1 bottle 12 oz beer (you can also sub in broth) 1/4 cup Old Bay Seasoning 2 stalks celery cut into 1-inch pieces 1 onion cut into quarters 3-4 garlic cloves minced 2 lemons cut in half 1 lb cooked kielbasa sausage cut into 1-inch pieces 4 fresh cobs of corn cut into 3-inch chunks 2 lb fresh uncooked large shrimp in shells Optional: Cocktail sauce fresh lemon slices, Cajun seasoning Instructions Start by spraying a 6 or 7-quart slow cooker with cooking spray. Add in water, beer, Old Bay Seasoning, and garlic. Stir until well combined. Place potatoes, onion, an
May 16, 2019
Facebook daily lives show with Roger Keyserling of Keywebco.com
Facebook daily live show transmitted via Podcasts and on YouTube from Roger Keyserling of Keywebco.com
May 15, 2019
Facebook live daily show
Roger Keyserling of Keywebco.com does a daily show on Facebook live we are now transmitting those to podcasts and YouTube please 😉 enjoy
May 14, 2019
Facebook live daily show
Facebook live daily show with Roger Keyserling of Keywebco.com
May 13, 2019
Have You Heard Of Mix?
https://keywebco.com/blogs/news/have-you-heard-of-mix Have you heard of Mix? You may remember StumbleUpon On June 30, 2018, StumbleUpon moved to Mix. And the new platform has a few features that might be of interest to small business owners and entrepreneurs. Similar to StumbleUpon, the social network site that helps users discover unique and interesting things across the web, Mix provides a new way to discover and save people's favorite things on the internet. This is the link to our Mix Profile. I am not overly active on it all the time but I do enjoy using it periodically. Learn more about Mix: Built upon the legacy of StumbleUpon, Mix enables you to curate and share the best of the internet. The platform learns what you love browsing and searching for across the web, to show you even more of what you are interested in. From articles and images to videos and music, you can save anything from anywhere on Mix. As long as it's on the internet, you can add your favorite things to Mix. The social media platform enables you to delve deeper into new topics and explore interests with greater comprehension. Rather than being merely a source for breaking news, Mix is aimed at taking its users deeper into the things that interest and matter to them, helping them learn more about their favorite topic How to Use Mix From a purely mechanical standpoint, it's easy to use Mix. I'll get into the advanced techniques and ways to really take advantage of the platform later, but for now, let's just get you started. First of all, you need to sign up for Mix. Unfortunately, the window for porting over a StumbleUpon account is already closed, as of last June. You'll need to start from scratch. When you go to Mix.com, you'll be asked to sign up for the service. You have three options to sign in: Facebook, Twitter, and Google. All three use the typical authentication: simply sign in using one of those profiles and you'll have your basic information filled out. For obvious reasons, I'


text:
Investigators are currently on the scene of a homicide in the 3200 block of Eighth Street. According to Capt. Loyd Baker, commander of the Tuscaloosa County Homicide Unit, a fight between the 27-year-old victim and another man began at an unknown location but ended on Eighth Street in bloodshed.
TUSCALOOSA | A 19-year-old man has been charged with murder in connection with a Thursday afternoon shooting in the 3200 block of Eighth Street near West End Park.
At around 2:45 p.m., Tuscaloosa police and homicide investigators responded to a report of a shooting on Eighth Street, according to Capt. Loyd Baker, commander of the Tuscaloosa County Homicide Unit.
Baker said that officers found the victim, 27-year-old Rico Barnes, with multiple gunshots wounds in the front yard of a residence.
Barnes was taken to DCH Regional Medical Center, where he was pronounced dead, Baker said.
Witnesses said the suspected gunman, 19-year-old Laranden Dewayne Perry, shot Barnes and then fled, according to Baker.
Perry later turned himself in to police at a relative's house.
Perry was taken into custody and is being treated for an injury to his hand.
He is charged with murder and his bond has been set at $75,000 bond.
The witnesses said that the men ran to the area from Cherokee Avenue just off Stillman Boulevard, Baker said.
Investigators laid at least 10 evidence markers along Eighth Street that marked a trail of blood that witnesses said came from the suspect's injured hand.
Police blocked the street with yellow crime scene tape as children returning home from school walked past to their homes.
Dozens of people, many of them school-aged children, gathered in nearby West End Park to watch police.


text:
A sense of humor is a vital part of our human experience. People of all ages and cultures are connected though humor. Laughter releases endorphins, which make us happy and feel good! That type of humor, however, varies from person to person; it's not only an essential part of our emotional wellbeing, but it is also something that helps define our personalities. A sense of humor is so interconnected to one's identity that of course we want to show the world just what we find humorous and, therefore, expose a small part of ourselves.
No matter what side of the spectrum your sense of humor resides, we have a shirt that will be the perfect fit just for you!
Silliness is a way of interacting with others. You can be silly to get a response from your audience or friends. Often times, it's an over-exaggerated portrayal of a specific behavior. So, if you think you are Batman and your friend shows up in the same type of Batman costume t-shirt, you can playfully quote the infamous line *(queue husky voice)* "I'm Batman!" back to one another for comedic effect! Obviously, you know perfectly well neither of you are actually Batman, but that just solidifies the silliness of the exchange.
Slapstick humor is a physical form of silliness. The greats like Laurel and Hardy and the Three Stooges cemented slapstick as a classic American form of humor. Modern examples of this comedy are nostalgic films like National Lampoon's Vacation and Monty Python and the Holy Grail and, more recently, releases like Dumb and Dumber and Jackass. Grab your favorite funny movie tee with the matching film, and feel free to battle with your fellow slapstick fan over the remote! Why I oughta...
Light-hearted humor is a warm, welcoming, and friendly. This is a very common form of humor that many people find funny. It is also the most frequently used form of humor in sitcoms! So, wear your favorite TV show tee - like these Simpsons t-shirts! - and kick back to enjoy a chuckle at Homer's expense!
A peculiar sense of humor is one where some people may not understand why you think something is just so funny! If it's a little odd or unusual, you love it. Having this sense of humor makes your edgy personality standout. So, the next time you are invited to a holiday party - formal or not, Christmas or 4th of July - go ahead and don that awesome Ugly Christmas Sweater. Oh, and don't forget the fruitcake, ya fruitcake!
To be clever is to think quickly, and if you have a clever sense of humor, you most likely pride yourself on finding the humorous aspects of situations before anyone else does. Show just how ingenious and clever you are with a shirt that you created yourself! Design a shirt that will have your friends rolling on the floor with our custom t-shirt creator.
To be witty is to take that clever sense of humor and add a dash of verbal flare. Do you feel like you craft humorous statements and know just how to say something to get the room to erupt with giggles? Then funny quote tees are a great way to show the world your love for a good use of the English language!
Have you ever waited in line for a midnight premiere of a movie? Have you ever found yourself at a sci-fi convention, desperately wanting to fit in? That's where the situational funny t-shirt comes in to play! Now, while you're waiting for Star Wars: The Force Awakens to come out in theaters, you can proudly tell the whole world that you're ready for it as you walk out the door with your Stormtrooper costume hoodie and Chewbacca t-shirt dress.
If you understand the real definition of "ironic," then you may be the perfect person to pull off one of these shirts! A clever play on words is one thing, but adding in the irony takes it to a whole new level. Yeah, you want to tell the world you love coffee via t-shirt? Go for it, but take the next step with that latte pun. Trust us, it's funny.
Sarcasm combines the talents of a witty and peculiar sense of humor to form a beautiful new version. Sarcastic people often consider themselves cool, being able to come up with funny quips and puns off the top of their heads. If you're often told that you have a dry sense of humor, these deadpan ironic t-shirts would fit very nicely in your closet.
A little self-explanatory, offensive humor will at times make others uncomfortable. But, people that get a kick out of pushing other's buttons are the perfect audience for shirts that may be considered rude. What is obscene to one person might be what is just hilarious to the next. So, if you choose to wear an offensive shirt, just remember that, someday, someone else may be wearing a t-shirt that offends you!
Where do you fall on the spectrum? There are funny t-shirts for all types of people, including you!


text: Online UK Digital Asset Management Software solutions enable you to host images, videos, audio files, documents and similar content online, making them simple to share and manage. These web-based platforms help organize digital assets, giving you and your business 24/7 access from any browser. With no hardware to install Online UK Digital Asset Management software is a cost-effective alternative to in-house options whilst remaining reliable and secure.


text:
Consolidating Email using Java, Part 2
Java Programming Notes # 2402
- Preface
- General Background Information
- Discussion and Sample Code
- Run the Program
- Summary
- Complete Program Listings
Multiple Email accounts?
- How many different Email accounts do you have?
- Do you check them all regularly?
- Do you have an easy way to consolidate them so that you only have to check one Email account in order to read all of your Email?
I then went on to provide and explain an interactive Java program that you can use to consolidate all of your Email messages from different accounts onto a single Email server.
If the answer to the first question above was more than one Email account, and the answer to the last question was no, then either the program that I provided in Part 1 or the program that I will provide in this lesson may be of considerable interest to you.
The difference between the two programs
This lesson provides a non-interactive version of the program from Part 1 that you can use to consolidate all of your Email messages onto a single Email server on a scheduled, unattended, automatic basis.
By non-interactive, I mean that the difference between this program and the program from Part 1 is:
- The program in Part 1 requires user interaction each time messages are moved from one Email server to another.
- The program that I will present in this lesson is a "set it and forget it" program.
Set it and forget it
In other words, you can set this program up as a Scheduled Task in a task scheduler so that it will run automatically on whatever schedule your task scheduler supports.
You can set up different instances of this program as separate Scheduled Tasks to automatically consolidate Email messages from different Email accounts onto a single Email server, even if the managers of those accounts refuse to forward your Email messages for you.
If you also need to consolidate Email messages on a demand (non-scheduled) basis, you can accomplish that with a couple of mouse clicks.As a result, by using this program, you will have an easy way to consolidate Email messages from all of your Email accounts onto a single Email server so that you only have to check one Email account in order to read all of your Email? Then you can answer yes to the third question that I posed earlier.
Third lesson in a series
This is the third lesson in a series of lessons on the general topic of moving Email messages among servers and local computers.
The first lesson was entitled Consolidating Email using Java. That is the document that I will refer to as Part 1 of this lesson.
The second and previous lesson was entitled Uploading Old Email to Gmail using Java.
Viewing tip
You may find it useful to open another copy of this lesson in a separate browser window. That will make it easier for you to scroll back and forth among the different listings and figures while you are reading about them.
Supplementary material
I recommend that you also study the other lessons in my extensive collection of online Java tutorials. You will find those lessons published at Gamelan.com. However, as of the date of this writing, Gamelan doesn't maintain a consolidated index of my Java tutorial lessons, and sometimes they are difficult to locate there. You will find a consolidated index at www.DickBaldwin.com.
General Background Information
Multiple Email accounts
The previous two lessons in this series discussed the background, the desirability, and the rationale for using a program like the one that I will present in this lesson to consolidate Email messages from multiple Email accounts onto a single Email server. I won't repeat that discussion here. Rather, this lesson will concentrate on the technical aspects of the automated version of a program for performing such consolidation.
Even if you decide that you would prefer to use the automated version of the program presented in this lesson, it is strongly recommended that you study Part 1 before embarking on this lesson. The code in the program in this lesson is very similar to, but organized differently from the code in Part 1. Therefore, I won't explain the details of the code in this lesson. Rather, I will simply refer you to the appropriate section of Part 1 for detailed explanations of the code.
Discussion and Sample Code
An Email forwarding program
In this lesson, I will provide the following two Java classes, which work together as a program to download Email messages from one POP3 server and to forward those messages to another Email server on a totally unattended, automated, and scheduled basis:
- BigDog06fetch
- BigDog06forward
The first class listed above replaces the class named BigDog04g in Part 1. The second class listed above replaces the class named BigDog04i in Part 1.
Command-line parameters
As was the case in Part 1, all of the user-specific information required by the program is provided by the following eight command-line parameters:
- pop3Server: Server from which the messages will be downloaded
- userName: On pop3Server
- password: On pop3Server
- destinationAddress: Email address to which the messages will be forwarded
- smtpServer: An available SMTP server that can be used to forward the messages
- workingDir: Messages are temporarily stored here
- archiveDir: Messages are moved to here from the workingDir for long-term storage if desired (optional)
- fwdTag: String prepended to the subject when the message is forwarded. (Can be an empty string.)
Automation was my long-term goal
As I mentioned in Part 1, I'm aware that parameter input via command-line parameters isn't nearly as sexy as input via a graphical user interface. However, it is much easier to automate command-line input. Command-line input can be automated using batch files. Unattended automated execution of the program was my long-term goal for this project from the very beginning.
Doing the setup for unattended automated execution
In the next few paragraphs, I will explain how to use batch files to schedule the execution of the program under the Windows XP operating system. If you are running under a different operating system, you will need to examine the documentation for that operating system to learn how to schedule tasks on your machine.
One batch file for each POP3 Server
I have a different batch file set up for each of the POP3 servers from which I want messages to be downloaded and consolidated onto a common Email server. (I use Google's Gmail as my common Email account.)
The Windows XP Scheduled Tasks feature
For a particular POP3 server, all I have to do to cause the messages to be moved from the POP3 server to my Gmail account is to register the batch file for that POP3 server as a Scheduled Task under Windows XP.
(Actually I have two batch files set up for each POP3 server because I have to use a different SMTP server depending on whether I am at home with my laptop or at work with my laptop. (See Figure 2.) I normally have half of the Scheduled Tasks disabled when I am at home, and have the other half disabled when I am at work.)
What is the Scheduled Tasks feature?
Figure 1 contains part of what the Microsoft help system has to say about the Scheduled Tasks feature.
Scheduled Tasks overview
With Scheduled Tasks, you can schedule any script, program, or document to run at a time that is most convenient for you. Scheduled Tasks starts each time you start Windows XP and runs in the background.
With Scheduled Tasks, you can also:
Figure 1
The idle time option is missing
One thing that the Microsoft help system fails to mention is that the Scheduled Tasks feature also allows tasks to be scheduled for execution anytime following a specified amount of idle time. I have my system set up so that each of the batch files is executed as a Scheduled Task after a few minutes of idle time.
(As you will see shortly, this idle-time capability is also missing from the Windows Scheduled Tasks Wizard. However, there is a workaround that can be used to incorporate the idle-time capability.)
Icons on the desktop
I also have icons with shortcuts to each of the batch files on my desktop so that I can force a batch file to be executed whenever I want even if such execution isn't scheduled to occur any time soon.
Registering Scheduled Tasks
To schedule tasks under Windows XP, go to the Control Panel and double click on Scheduled Tasks.
When the Scheduled Tasks folder appears, (see Figure 2), double click on "Add Scheduled Task." This will start the Scheduled Task Wizard running.
Just follow the instructions provided by the wizard and browse to the appropriate batch file when you are given the opportunity to Select Program to Schedule.
Idle time option is missing from the wizard also
Be aware, however, that in the version of Windows XP that I am currently running (Windows XP Professional, Version 5.1, Service Pack 2), there is an apparent bug in the Scheduled Task Wizard. In particular, when using the wizard to set up a Scheduled Task, you are only given the following six choices as to when the task should be performed:
- Daily
- Weekly
- Monthly
- One time only
- When my computer starts
- When I log on
The ability to cause the task to be performed during idle time is missing from the list.
Can correct for the omission later
However, even though it is inconvenient, if you go ahead and select one of the items in the list and click Next a couple of times, you will reach the point where you can check a box that reads "Open advanced properties for this task when I click Finish." The Advanced Properties dialog (see Figure 3) will let you change your selection to When idle if you choose to do so.
When you check that box and click Finish, the Advanced Properties dialog having the following three tabs (see Figure 3, Figure 4, and Figure 5) will appear:
- Task
- Schedule
- Settings
A more-complete list
Select the Schedule tab shown in Figure 4 and you will have access to a pull-down list entitled Schedule Task that contains the items in the list given above. The pull-down list also provides an additional selection that reads "When idle."
If that is your choice, make that selection and then select the Settings tab shown in Figure 5. The dialog on the Settings tab will give you an opportunity to customize the selection in more detail.
Scheduled Tasks on the desktop
Because you may want to make modifications later to tasks that you have scheduled, it is convenient to go to the Control Panel and create a shortcut on the desktop to Scheduled Tasks. You can do this by right-clicking on Scheduled Tasks on the Control Panel and then selecting Create Shortcut.
Having created the Scheduled Tasks shortcut on the desktop, whenever you double-click the shortcut, the Scheduled Tasks folder should appear on your screen, looking something like that shown in Figure 2.
Figure 2
Creating a new Scheduled Task
To create a new Scheduled Task, double-click on the top item in Figure 2 that reads Add Scheduled Task. This will start the Scheduled Task Wizard that I discussed earlier.
Existing Scheduled Tasks
Each of the bottom four items in Figure 2 represent scheduled tasks. Those with the red x are temporarily disabled.
Modifying a Scheduled Task
Once you have created a Scheduled Task, you can modify that task (or use it to create a new one) without having to deal with the wizard. If you right-click on a Scheduled Task in Figure 2, a popup menu will appear with the following selections:
- Run
- Cut
- Copy
- Delete
- Rename
- Properties
The first five choices are generally self-explanatory. For example, you can cause the task to run at a non-scheduled time by selecting Run on the popup menu.
Using an existing task to create a new one
You can create a new Scheduled Task by:
- Copying an existing Scheduled Task to the clipboard
- Pasting it into a different directory
- Renaming it in the other directory
- Copying it back into the Scheduled Tasks directory
- Modifying the properties of the new Scheduled Task to suit the new requirements
The Scheduled Task Properties
Selecting Properties in the popup menu produces the dialog shown in Figure 3. This is the dialog that I referred to as the Advanced Properties dialog earlier.
Figure 3
Modifying a Scheduled Task
Once you have opened the Advanced Properties dialog on a Scheduled Task and have selected one of the tabs, you can make any modification to the task that is allowed by the system.
Disable and/or enable a Scheduled Task
For example, the checkbox in the bottom left corner of Figure 3 can be used to enable and disable the Scheduled Task. (Figure 2 shows two Scheduled Tasks that have been disabled.)
The Schedule and Settings tabs
Figure 4 shows the Schedule tab.
Figure 4
Figure 5 shows the Settings tab.
Figure 5
There are no GUIs with this version of the program
That's enough talk about Windows. Let's discuss Java programming.
This version of the program does not display GUIs on the screen as was the case with the version presented in Part 1. Rather, this version runs in batch mode, from start to finish, with no user interaction.
From start to finish ...
From start to finish includes the following operations:
- Download messages and save them as individual files in a local working directory.
- Transform the message files into Email messages and send the messages to the specified destination Email address.
- Upon confirmation that each message has been sent successfully, delete the original message from the POP3 server, and remove the message file from the working directory.
If a problem is recognized anywhere along the way, the messages are not deleted from the POP3 server and the message files are not removed from the working directory. This makes it possible to recover from the problem, if necessary, by downloading the messages from the POP3 server into an ordinary Email client program.
Status and progress information
Status and progress information appears in the command-line window while the program is running. However, unless you put a PAUSE command at the end of the batch file, that window will probably disappear before you have much time to study it.
(If you want the command-line window to remain visible until you dismiss it, put a PAUSE command at the end of the batch file. This might be useful if you suspect that there is a problem, but it will probably also prevent the next scheduled running of the batch file and the program.)
A batch-file command
A typical batch file command is shown in Figure 6.
(Note that it was necessary for me to manually enter line breaks into Figure 6 to force the command to fit in this narrow publication format.)
java BigDog06fetch pop.austincc.edu userName password email@example.com smtp-server.austin.rr.com ./temp/ c:/z-MailArchives/ "ACC-"
Figure 6
You should be able to match up the individual command-line parameters in Figure 6 with the description of the parameters discussed earlier.
Two classes are used
This program consists of the following two classes:
- BigDog06fetch
- BigDog06forward
As mentioned earlier, the BigDog06fetch class replaces the class named BigDog04g in Part 1. The BigDog06forward class replaces the class named BigDog04i in Part 1.
Because the user interactivity has been removed, the two classes presented here are much simpler than the two classes presented in Part 1.
Overall control
The class named BigDog06fetch is a Java application and serves as the driver for the entire program. The main method instantiates an object of the BigDog06fetch class.
The BigDog06fetch object downloads all of the available messages from a POP3 server and writes them as individual files in a local working directory. Then it instantiates an object of the class BigDog06forward.
The object of the class BigDog06forward
- Forwards the messages to a specified Email address.
- Deletes the messages from the POP3 server.
- Removes the message files from the working directory.
Deleting messages and moving message files
Messages are not deleted from the POP3 server until they have been successfully forwarded to the specified Email address. When the messages are deleted from the POP3 server, the message files are also removed from the working directory.
By enabling and disabling blocks of code prior to compilation, a user can customize the program to cause the message files to be moved from the working directory into an archive directory or to simply be deleted from the working directory without saving them in an archive directory.
Directories must already exist
Note that both of the directories specified by command-line parameters must already exist when the program is run for the first time.
If message files are not being saved in an archive directory, the seventh command line parameter is a dummy parameter, which is essentially ignored by the program. Even though it is ignored, it must be provided as a command-line parameter to cause the number of parameters to be correct.
Tagging the forwarded messages
The eighth command-line parameter is a string that is prepended onto the beginning of the Subject line in the message before the message is forwarded. For example, it can be used to indicate the originating Email account. If you don't want to tag the Subject of the forwarded message, just enter an empty string, "", as the eighth command-line parameter.
POP3 technical information
For technical information on POP3, see RFC 1725 at http://www.cse.ohio-state.edu/cgi-bin/rfc/rfc1725.html
A POP3 Command Summary is provided in the program comments in Listing 9 near the end of the lesson.
Program testing
The entire program was successfully tested using JDK 1.5.0_01 running under WinXP. JDK 1.5 or later is required because of the use of generics in the program.
Will discuss in fragments, (but not very much)
Complete listings of both classes are provided in Listing 9 and Listing 10 near the end of the lesson. Normally, I would break both classes down into fragments and discuss the fragments in detail.
However, because of the similarities between these classes and the classes that I explained in Part 1, my discussion of code in this lesson will be very limited. I will concentrate on those aspects of the code in this lesson that are different from the code in Part 1.
BigDog06fetch is not a Frame
Unlike the class definition for BigDog04g in Part 1, the class definition for BigDog06fetch is not a Frame. That is because this version of the program doesn't present a GUI to the user. The class definition for BigDog06fetch begins in Listing 1.
class BigDog06fetch{ static String workingDir; int numberMsgs = 0; int msgNumber; String uidl = "";//unique msg ID BufferedReader inputStream; PrintWriter outputStream; Socket socket; String pathFileName; static String[] params;
The code in Listing 1 simply declares some necessary variables.
The main method
BigDog06fetch is a Java application and therefore requires a main method. The main method begins in Listing 2.
As mentioned earlier, certain critical information is provided to the program by way of eight command-line parameters. The code in Listing 2 tests to confirm that the user has entered eight command-line parameters. If not, usage information is displayed and the program terminates at that point.
public static void main(String[] args){ if(args.length != 8){ System.out.println( "Wrong number of parameters"); System.out.println( "Usage: java BigDog06fetch " + "npop3Server nuserName npassword " + "ndestinationAddress nsmtpServer" + "nworkingDir narchiveDir nfwdTag"); System.out.println("If not saving msg " + "files in archive, seventh parameter " + "is a dummy parameter."); System.out.println("Terminating program."); System.exit(0); }//end if
Save command-line parameter values
Assuming that the number of command-line parameters is correct, the program saves some of them and uses others.
Listing 3 saves a reference to the args array so that it will be available later.
Listing 3 also identifies and saves the name of the working directory where the message files will be temporarily stored awaiting forwarding to the destination Email address.
params = args; workingDir = args[5];
(Once again, note that for proper operation, the working directory and the archive directory must both exist when the program is run. The program is not designed to create those directories if they don't already exist.)
Instantiate a BigDog06fetch object
Finally, as shown in Listing 4, the main method displays the command-line parameters and then uses the first three command-line parameters to instantiate an object of the BigDog06fetch class.
System.out.println( "pop3Server: " + params[0]); System.out.println("userName: " + params[1]); System.out.println("password: .........."); System.out.println( "destinationAddress: " + params[3]); System.out.println( "smtpServer: " + params[4]); System.out.println( "workingDir: " + params[5]); System.out.println( "archiveDir: " + params[6]); System.out.println("fwdTag: " + params[7]); new BigDog06fetch(args[0],args[1],args[2]); }//end main
Once constructed, this object will download and save the messages on the specified POP3 Email server as individual files in the local working directory.
Instantiate a BigDog06forward object
The BigDog06fetch object will, in turn, instantiate an object of the BigDog06forward class, which will forward the messages in the working directory to the destination Email address. The BigDog06forward object will also delete the messages from the POP3 server and remove the message files from the working directory.
The BigDog06fetch constructor
The BigDog06fetch constructor is shown (with most of the code removed for brevity) in Listing 5. The constructor consists of two main parts. The first part gets a connection to the POP3 Email server using the three incoming parameters. This part is essentially the same as the corresponding code in the constructor for the program in Part 1.
BigDog06fetch(String pop3Server, String userName, String password){ //First part int port = 110; //pop3 mail port try{ //Code removed for brevity }//end try catch(Exception e){ e.printStackTrace(); System.exit(0); }//end catch //Second part fetchMsgs(); }//end constructor
The second part of the constructor
The second part, shown in boldface near the end of Listing 5, invokes the method named fetchMsgs to download the messages from the POP3 server and to save them as individual files in the working directory.
Code to get a connection
I explained all of the code involved in getting the connection to the POP3 server in Part 1, and won't repeat that explanation here.
The fetchMsgs method
The fetchMsgs method is new to this lesson, although most of the code in the method appeared in a method named actionPerformed in Part 1.
Don't register a WindowListener object
Because the constructor in Part 1 created a GUI, it registered a WindowListener object on the Frame. There is no Frame in this version of the program, and hence no WindowListener object.
Don't instantiate GUI objects
For similar reasons, the code in this constructor doesn't instantiate Button and TextArea objects as was the case in Part 1.
Don't register an ActionListener object
Also, for the same reason, there is no reason for the code in this version of the program to register an ActionListener object on a Button (there is no button).
Where did the work get done in Part 1?
In the version of the program in Part 1, the code in the actionPerformed method belonging to the ActionListener object did the work of downloading the messages from the POP3 server and writing those messages into local files in the working directory.
Where does the work get done in this version?
In this version of the program, the code to do that work is contained in the method named fetchMsgs.
The difference is that in the version in Part 1, once the connection to the POP3 server was made, message downloading was deferred until the user clicked a Button in the GUI, thus invoking the actionPerformed method. In this version, as soon as the connection is made, the fetchMsgs method is invoked by the constructor causing message downloading to begin immediately.
The fetchMsgs method
The fetchMsgs method is shown in Listing 6 with most of the code omitted for brevity. (You can view all of the code for the fetchMsgs method in Listing 9 near the end of the lesson.)
void fetchMsgs(){ //Download all messages on the pop3Server. try{ //The communication process is now in the // TRANSACTION state. //Retrieve and save messages //Code deleted for brevity //All messages have been downloaded and // saved as local files. Instantiate an // object that will forward each of the // messages to the specified email // address. new BigDog06forward( params[0],//pop3Server params[1],//userName params[2],//password params[3],//destinationAddress params[4],//smtpServer params[5],//workingDir params[6],//archiveDir params[7]);//fwdTag }//end try catch(Exception ex){ ex.printStackTrace(); System.exit(0); }//end catch }//end fetchMsgs //===========================================// }//end class BigDog06fetch //=============================================//
Same as the actionPerformed method
The code in the fetchMsgs method in this version is essentially the same as the code in the actionPerformed method in the version in Part 1. I explained that code in detail in that lesson, and won't repeat that explanation here.
Instantiate an object of the BigDog06forward class
Note that in addition to downloading the messages, the code in Listing 6 also instantiates an object of the BigDog06forward class to cause the messages to be sent to the destination Email address.
Listing 6 also signals the end of the definition of the BigDog06fetch class.
The BigDog06forward class
Now that you understand how the program downloads the messages from the POP3 server, it is time to learn how it forwards those messages to the destination Email address.
An object of the BigDog06forward class is instantiated by the code in Listing 6 to tag and forward a set of message files that were written into the working directory by the BigDog06fetch object.
Tag and forward the messages
This BigDog06forward object tags the messages with a tag defined by the user as a command-line parameter to the main method of the class named BigDog06fetch. Then the object forwards the messages to a destination Email account that is specified as a command-line parameter. It uses an SMTP server that is also specified as a command-line parameter.
This object uses the DELE command to delete messages from the POP3 server from which the messages were originally downloaded.
(Deletion of the messages from the server can be temporarily disabled for test purposes by disabling a block of code before compiling the program. Search for the word disable in the source code to identify the code that needs to be temporarily disabled for this purpose.)
The BigDog06forward class
The class definition for the BigDog06forward class begins in Listing 7. As you can see, the class does not extend Frame, as was the case for the version of the program in Part 1 Once again, this version of the program does not present GUIs to the user, and therefore there is no reason for the class to extend Frame.
class BigDog06forward{ //User-specific information is stored here. // This information is provided in the form of // constructor parameters. //ID of the destination email account. final String destinationAddress; //An smtp server through which the user is // authorized to send email messages. final String smtpServer; //Local folder where message files are stored // awaiting processing. final String workingDir; //Local folder for archiving message files. final String archiveDir; //Tag that is prepended to the Subject line of // the message before forwarding. String fwdTag; //Following are working variables used by the // program for various purposes. BufferedReader inputStream; PrintWriter outputStream; Socket socket; String pathFileName; Vector
The code in Listing 7 declares a large number of variables, initializing some of them. This code should be self-explanatory and shouldn't require further explanation.
The constructor for the BigDog06forward class
The constructor is shown in its entirety in Listing 8.
BigDog06forward(final String pop3Server, final String userName, final String password, final String destinationAddress, final String smtpServer, final String workingDir, final String archiveDir, final String fwdTag){ this.pop3Server = pop3Server; this.userName = userName; this.password = password; this.destinationAddress = destinationAddress; this.smtpServer = smtpServer; this.workingDir = workingDir; this.archiveDir = archiveDir; this.fwdTag = fwdTag; System.out.println("Forwarding messages:"); forwardMsgs(); deleteMsgs(); }//end constructor
Much shorter than in Part 1
The constructor for this version of the program is much shorter than was the case for the version of the program in Part 1. That is because the earlier version presented a GUI to the user with two Button objects and a TextArea object.
Forwarding the messages
One of the buttons was used to initiate and handle the forwarding of messages to the specified destination Email address.
An ActionListener object was registered on that button, and the actionPerformed method belonging to that ActionListener object did all of the work.
That same work is done in this program by the method named forwardMsgs that is invoked near the end of the constructor in Listing 8.
The forwardMsgs method
The code in the forwardMsgs method is essentially the same as the code in the actionPerformed method that it replaces. I explained that code in Part 1 and won't repeat that explanation here. You can view the forwardMsgs method in Listing 10 near the end of this lesson.
Deleting messages
The other button in the GUI in Part 1 was used to initiate and handle the deletion of email messages from the POP3 server.
An ActionListener object was registered on that button, and the actionPerformed method belonging to that ActionListener object did all of the work.
That same work is done in this program by the method named deleteMsgs that is invoked near the end of the constructor in Listing 8.
The deleteMsgs method
The code in the deleteMsgs method is essentially the same as the code in the actionPerformed method that it replaces. Once again, I explained that code in Part 1 and won't repeat that explanation here. You can view the deleteMsgs method in Listing 10 near the end of this lesson.
Run the Program
I encourage you to copy the code from Listings 9 and 10 into your text editor, compile it, and execute it. Experiment with it, making changes, and observing the results of your changes.
I do recommend, however, that before compiling and executing the code, you make the changes necessary to prevent messages from being deleted from your POP3 server. That way, if something goes wrong, the messages will still be there for you to access using your regular Email client program. Once you are satisfied with the behavior of the program and are ready to use it on a routine production basis, you can re-enable the deletion of messages from your POP3 server.
Also please be aware of the following disclaimer:
In this lesson, I provided and explained two Java classes that work together as a program to download Email messages from a POP3 server and to forward those messages to another Email server.
Such a program is particularly useful for consolidating all of your Email messages onto a single Email server so that you only need to check your mail on one server to see all of your messages.
I also showed you how to register the program as a Scheduled Task under Windows XP to cause the program to run automatically in an unattended mode on a schedule that you specify.
Page 1 of 2
IT Solutions Builder TOP IT RESOURCES TO MOVE YOUR BUSINESS FORWARD
Which topic are you interested in?
Data Storage
IT Management
What is your company size?
What is your job title?
What is your job function?
Searching our resource database to find your matches...


text:
A Tale of Vanishing Sourness,
or Too Many Changes Addle the Brain
Recently, I made some sourdough levained baguettes, Sourdough in Baguette's clothing and was delighted to find their flavor included a distinct acidic tang (sourness) that I especially like, but my wife usually doesn't. However, with this bake, I caught her returning more than once for another slice of the cut loaf. When I confronted her, she allowed the flavor was "interesting"--and took another bite.
The baguette dough was similar to the dough I bake weekly in batards: our daily bread. The differences are:
Original Formula Baguette Formula
Flour ratio: 45%AP/45%Bread/10%Whole Rye 66%AP/24%Bread/10%Whole Rye
Preferment: 28% (100% Hyd., all Bread Flour) 49% (100% Hyd., all Bread Flour)
Additionally, I routinely build levain from refrigerated seed starter in three progressive steps, feeding 2:1:1 at eight hour intervals. For the baguettes I allowed the third feeding to ferment for 12 hours.
Salt and Hydration was the same for both: 2% and 68% percent respectively, and, except for the loaves' final shape, all the dough handling, fermentation times, fermentation temperatures, and baking temperatures were the same. Batards are generally proofed at 82°F, baguettes at 76°F (RT) because they won't fit into my proofing box.
Over the last two days I built levain, made dough and shaped three batards. The intention was to duplicate the dough I used to make the sourdough baguettes, and experience the same flavor.
However, I have a very strong Imp of the Perverse in my flawed character. I couldn't resist making more changes. Specifically, I built the levain in three progressive stages reducing the hydration of each build by one-third the difference between the seed starter hydration (100%) and the final dough hydration (68%). I let the final build, at 68% Hyd., ferment for 12 hours. Seduced by the sourdough lore that stiffer levain favors bacterial acid production, I reasoned "Hey, it can't hurt!".
Furthermore, I returned to the original flour ratio 45%AP/45%Bread/10% Whole Rye. And, to exacerbate my sins, I put three teaspoons of diastatic malt powder in the final dough. I wanted a darker crust.
I cannot detect any flavor difference in the finished loaves compared to our weekly sourdough bake. The distinct tang has vanished. Of course, with all the changes I've nary a clue why.
But I did get a darker crust.
David G