text:
ECE497 Project Set Playing Beagle
Team members: Samuel Allen, Stephen Mayhew, Julian Ametsitsi
Executive Summary
The game Set uses a 3 x 4 grid of 12 cards that have different symbols on them. These symbols differ in shape, fill, and number. The goal is to find a set of three cards. See here for Set game instructions.
Using the BeagleBoard, we have developed a system that uses a webcam to take a picture of the cards in play and uses OpenCV and Python to find the sets from the picture.
Our system correctly identifies all of the sets in the hand that the image recognition provides.
It can run completely on the Beagleboard and processes aproximately 1 frame per second.
Currently, the image recognition is the downfall to our success. The image recognition does not find the correct symbols on the cards, and so the rest of the system does not find the correct sets.
The sets that are found are correct for the found cards, but not the actual cards in play.
Our system is almost functional, but there are still some problems that need to be overcome. The image recognition is the biggest hurdle that we need to overcome and after that is completed, the system will work correctly.
Installation Instructions
- First clone our github repository: firstname.lastname@example.com:mayhewsw/BeagleSetGame.git
git clone firstname.lastname@example.com:mayhewsw/BeagleSetGame.git
- The SPEd image comes with OpenCV already installed, but if you do not have it, you will need it.
$ opkg install opencv
- Install python-opencv, and espeak
$ opkg install python-opencv
$ opkg install espeak
- You will also need a webcam and a way to mount it. We used a Sony Playstation Eye, but any webcam with at least 640x480 resolution should work. Our mount held the camera about 7 inches above the playing surface, and had it pointing straight down.
User Instructions
Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.
- First, run the autogain executable. If you are using the SPEd2 Angstrom image, then this executable is found the root directory.
- Next, run trackbartest.py. When this runs, it opens up 2 images. One of the images is streaming live from the webcam, and it has slider bars that set the properties for the camera. The other image is a reference image. Slide the bars until the live image looks like the reference image.
$ python trackbartest.py
Once you have found a configuration you like, press enter. This will save those values to a file called cameraConfig.cfg, which is read later. Exit the window by pressing Escape.
- Now you can run the actual program, runner.py.
$ python runner.py
This will open up 2 windows. One window is an image of what the camera sees, the other window is the same image, but with the results of the processing overlaid onto it. Because of the current state of the image recognition, these results are often very wrong, but they are also affected by how close the camera configuration is.
When the program finds a set in the recognized cards, it will print out the result to the console, and wait for a keypress to continue. Make sure one of the images has focus, and press any key.
You can quit the program either by pressing Enter while the program is in the ordinary recognizing loop, or by doing Ctrl-C in the terminal.
The interest of our project is in how it demonstrates the use of OpenCV on the Beagleboard. It shows that OpenCV functionality on the Beagleboard is very similar to what one would find on any other computer, if a little slower.
Theory of Operation
Program Flow
There are 2 steps to running the project: configuration and running.
In the configuration step, it simply creates trackbars that set camera configuration options as they change position. When the user presses enter, it saves the 3 values (brightness, contrast, and hue) to a file, cameraConfig.cfg.
In the running step, there is a file called runner.py that contains the main loop. Before it enters the main loop, it opens and reads cameraConfig.cfg and sets the camera properties accordingly. Inside the main loop, it runs three separate functions (all found in processCards.py) to recognize the cards. The first function, extractCards, finds symbols in the image, and groups them by location, and returns those groups. Each group is made up of rectangles which represent the bounding boxes of the symbols on any given card. Thus, each group is of size one, two, or three. The next function, getMeaningFromCards, takes the cards and classifies each of them, and returns a list of Card objects (defined in processCards). Next, this list of Card objects is passed to the SolveGame function, which finds sets.
Image Recognition
- To find fill: the program examines the center line of the symbol, and a line of the same length on the white part of the card, just to the left of the symbol, and compares their intensities. In order to set intensity thresholds correctly, there is a preprocessing loop at the beginning of the extractMeaningFromCards function.
- To find color: the program sets a mask around the image, and colors the background to black. Then it converts the image to HSV, increases the saturation by some amount, and converts back to BGR. It splits this image into channels and gets the sum of the entire channel. The max value of the sum decides on the color.
- To find shape: the program finds the contour of the symbol subimage, and divides the bounding box of the symbol by the perimeter of the symbol. This ratio is naively used as the decider.
Work Breakdown
|Sam Allen
|Did some work on getting the camera values set correctly so that the image was more usable. Espeak integration.
|Julian Ametsitsi
|Tested using TI Pico Projector to project indication of set of card. Developed algorithm with Stephen to identify individual cards in a single image.
|Stephen Mayhew
|Tweaking and customization of image recognition code. Software integration with hardware.
To be finished:
|Better image classification
|Stephen - if it gets done, it will be done during 10th week
|Faster camera refresh rates
|Sam, Stephen - if it gets done, it will be done during 10th week
We were pleased with how well the Beagleboard runs OpenCV. It was not at all difficult to install and run. While it is noticeably slower than on larger machines, it is not prohibitively so.
Originally, it was in the scope to have a projector project indication of sets back onto the actual cards. We had planned to use a DLP Pico projector for this, but we found early on that the Pico projector projects at a very small resolution, and we would have had to mount it significantly higher than the camera if it was to cover the whole playing area. We experimented with putting lenses in front of the projector to magnify it, but this turned out to be much more difficult than we imagined, so we focused our efforts on the image recognition, and on making the system coherent and smooth.
Another facet of the original idea was to have the computer actually playing against humans. This would involve the computer accepting input when a human found a set. Since the computer turned out to be so bad at actually playing the game, it was never worth putting this sort of functionality into it. If the recognition ever becomes reliable, this would be interesting to implement.
There is a trade-off between camera quality and image recognition success. In the first stages of our image recognition process, we worked with images of much higher resolution, and found that we had much better success. On the other hand, we could have used higher powered classifiers (Support Vector Machines, for example) to classify the images, instead of our rather fragile manual tweaked approach.
Thanks To
- Mark Crosby and Gary Meyer for making us a camera mount.
- Dr. Rob Bunch for providing advice and lenses for the projector
- Dr. Zach Dodd at Harvey Mudd University for providing starting image recognition code.


text:
Overview of Fernbus Simulator for PC Games
The Fernbus Coach Simulator is the first simulation of the very popular intercity buses. Thanks to the cooperation with FlixBus the Fernbus Coach simulator shows the daily life of a coach driver on the German Autobahn, highways and in more than 40 cities in great detail.
With a large and modern MAN Lion's Coach Bus you experience the daily life of a long distance coach driver. Navigate through a complex Autobahn and road network to bus stations in the more than 40 implemented cities and stay in constant communication with the headquarters.
Be careful with the other car traffic during your trips on partially full German highways and control your bus safely by day and night during all seasons.
About 20.000 km of the German route network of FlixBus and over 40 cities were simulated. Time passes at a scale of 1:10, so that the individual tours last not too long.
Like in reality at the bus stations passengers already holding a valid ticket can get on right away while the other passengers have to buy a ticket from you.
Both MAN busses are equipped with original cockpits including all functions. The interior and exterior of the bus is modeled to the last detail. True to original passenger announcements provide a realistic atmosphere. Construction sites, traffic jams and accidents will challenge you as a bus driver to keep up with the schedule. The busses were tested and optimized by bus drivers and driving instructors.
- In cooperation with Flixbus
- Original MAN Lion's Coach und Lion's Coach C
- 2000 km of track, corresponds to a real route length of 20,000 kilometres
- Detailed bus cockpit with extensive functions
- Complex Autobahn and road network on 5000 m² of surface
- Dynamic weather with four seasons
- More than 40 German cities, including:– Berlin
– Hamburg
– Munich
– Cologne
– Frankfurt
– Stuttgart
– Leipzig
– Dresden
– Erfurt
– Würzburg
– Karlsruhe
– Bremen
– Hannover
– Dusseldorf
– Dortmund
- Driving by night
- Bus driver is able to leave the bus
- Extensive evaluation tool
- True to original passenger announcements
- Traffic jams, accidents and construction sites
- Ticket sales by the driver
- Free play mode
- Repaints
- Requires a 64-bit processor and operating system
- OS: 7/8/8.1/10 (64bit only)
- Processor: Intel Core i5 Processor or similar with at least 2.6 GHz
- Memory: 6 GB RAM
- Graphics: Nvidia GeForce GTX 560 or similar AMD Radeon (no support for onboard cards)
- DirectX: Version 11
- Storage: 45 GB available space
- Sound Card: Yes
How to Install Fernbus Simulator Game?
- Click on "Download Game" button.
- Download " Fernbus Simulator" Installer (Supports Resumable Downloads).
- Open the Installer, Click Next and choose the directory where to Install.
- Let it Download Full Version game in your specified directory.
- Open the Game and Enjoy Playing.
Fernbus Simulator Full Game Download for PC
Click On The Below Button To Start Fernbus Simulator Download Game. It Is a Full And Complete Game. Just Download And Start Playing It. We Have Provided a Direct Link Full Setup Of The Game.

subset: commoncrawl


text:
Message Board
Hester Davenport Message Board
Talk about the novels, new and used books that Davenport has written!
Author Davenport's Book Reviews
The Prince's Mistress: A Life of Mary Robinson
The Prince's Mistress: A life of Mary Robinson Hester Davenport Sutton (Stroud, UK), 2004 ISBN: 0750932279 Mary Robinson (1758-1800), generally known to history as 'Perdita' after the Shakespearean role which made her famous as an actress early in her career, was the first mistress of George, Prince of Wales, later King George IV of England. When he tired of her and ended the affair, she used some of his more compromising letters to blackmail ...


text:
My Account
0 items: $0.00
Your cart is currently empty.
Continue Shopping
Or View Cart
Please select a collection in Theme Setting to display the products (Sidebar -> Featured Products Sidebar)
Blush Paperie
PRINTING: Flat/Digitally printed with exceptional quality on commercial press
SIZE: 5x7
CARD TYPE: Flat card, double sided printing, with blank envelopePRINT COLORS & FONTS: Your Save the Date, Your style - change the wording, font & print colors (no additional charge)
SHIPPING: Save the Date cards will ship within 5 business days of proof approval.
is added to your shopping cart.
is added to your wish list.
So glad you are here! Let's create your perfect invitation!


text:
What Hi-Fi?May 2023
What Hi-Fi? Sound and Vision is the world's leading independent guide to buying and owning hi-fi and home cinema products. Our comprehensive tests help you buy the best equipment for your cash, with the magazine's advice sections giving you step-by-step information on how to get even more from your music and movies.
¥247.6613 期号


text:
Half frame of film.
Posted by Kirk, Photographer/Writer at 21:25 6 comments:
This was not shot with a FujiFilm X-Pro-2.
It was not cropped from the original.
It was not converted in software to "monotone".
The background was not "dropped in".
Her face was not retouched (or reconfigured) in Portrait Professional.
There was no "frame rate".
Nothing was profiled.
But we did have fun making the shot. "We" means me and the subject.
Happy Friday!
Posted by Kirk, Photographer/Writer at 21:15 5 comments:
While I love the idea of the Fuji X-Pro2 I am not considering buying one at this time.
Timing is everything. While I loved the idea of the first model (the X-Pro-1) and saved up all my change for months and months in a glass jar on my bedroom nightstand I was brought up short when I actually handled the first model in person. On hearing it had arrived in store at Precision Camera I grabbed my change jar, some credit cards, a check book and some money I had made returning deposit bottles and rushed out there with the hope that I'd be driving home with a body, three lenses and a couple of extra batteries. Oh, I was so excited.....
But then I brought the demo camera up to my eye and tried to focus it. I had two realizations all at once. The first was that the focusing was as slow as molasses, and much less sure. The second (deal killing) realization was that there no diopter adjustment. I looked everywhere for one. I asked the clerks, I read the manual. Nope. Didn't exist. You could order a screw in diopter lens through the store but on a brand new camera who had any idea how long that inventory exercise would take? And once you got the diopter on the body what you would end up with is a sharp representation of a slow and edgy focusing operation....
As a long time rangefinder user the package was so close. But, in the end, it was the handling that killed it for me. I soldiered on with whatever systems I had in stock at the time and blew my Fuji savings on some lens or another.
I borrowed and used an X-Pro-1 several times and had a few issues with menus and what not but everything I saw from the native lenses was really, really good. More recently a friend bought the X-100-T (current generation) and had high hopes to use it as a street camera but quickly became disenchanted about everything from handling to auto-focusing; from the menus to the contextual nature of the menus. I played with it for a few days and came to hate the toy-like, snick-y sound of the shutter as it fired. I also disliked the viewfinder set up. All of these things, as well as my so-so experiences when reviewing the very first X100, led me not to raise the gear lust antennae and start salivating when rumors of the new Pro-2 started swirling.
I'll readily admit that now, nearly four years onward, the just announced X-Pro-2 looks pretty damn alluring.
Here's what I think I'll like if I ever get around to using one:
1. Solid, hefty, all metal body.
2. Classic rangefinder design with....wait for it.....an actual, working rangefinder!
3. Weather sealing, in case I spill coffee on it.
4. The new sensor technology (the S3 and S5 Fujifilm cameras made beautiful portraits - nice color and just the right kind of sharpness).
5. A more complete inventory of fast, sharp, interesting lenses for the classic shooter.
But here's where I hesitate:
Almost all of these design touches (outside of the technical improvements; like sensor) are aimed at the same market of rapidly aging, older photographers as all the other retro cameras on the market. The design harkens back to the Leica rangefinders, and the personality of the camera and system was designed to reference the M Leicas with extreme prejudice. I am almost certain that the current iteration is a well tuned street shooter's tool that probably checks every box and makes everyone who buys and use it feel as though they are sharing the Leica M experience at a small fraction of the price. That may even be the case. A camera that basically does what the M3 did back in 1954. (The Leica did boast a longer rangefinder base for greater accuracy ---- just to be clear).
But if the selling point is the rangefinder (and if you don't like rangefinders you might be smart to wait for the XT2 to come along with the new sensor) you should make sure that you are absolutely clear about the value and the limitations of using a rangefinder camera. If you've enjoyed using zooms you might find the static rangefinder limiting and the framing accuracy becoming less and less accurate as the camera focuses closer. Very wide angle lenses use up a lot of that optical space by showing up (parts of the lens barrel) in the framing window, while lenses longer than 90mm become harder to compose with because the view becomes "cropped" in the optical window, which will drive most of you back to using the EVF, at the least.
This is a camera that should be bought with a 23mm, a 35mm and a 58mm lens as part of a dedicated art shooting camera system, but not as an all around production camera. If those focal lengths worked for me, and I had no clients demands to consider, I'd probably drop everything and rush to try out the new system as soon as it hits the display counters in February --- but I am stopped in mid-track by the realities of the business side. I want to be able to use wide ranging zooms on commercial jobs. I want to see a large image when using the 80-200mm lenses. I want to see all four corners of the viewfinder unblocked by images of a lens barrel when I need to use wide angle lenses. If the argument is that I should be using the EVF for all of these applications then I have to start wondering why I ended up paying for a limited usability rangefinder with all its attendant costs.
If I followed my nostalgic dreams of walking forward in the deep ruts of photography made by Henri Cartier-Bresson, William Klein and Robert Frank, I would buy this camera and the whatever the absolute best 50mm equivalent lens offered in the system is, set the profile control to "monochrome" (or Neopan) and head out the door on my next great adventure. I have no doubt that this camera and I would bond within a couple of "rolls."
But being a day-in, day-out working stiff I know all too well that the same set up would last less than a day in my real (non-famous photographer) occupation. One client would want a very wide shot of their new headquarters lobby and I'd be running out to by a wide lens. Another client would want me to shoot that swimming meet and I'd be running out to get a long zoom which I would then shoot using the EVF. And then a third client would ask me to shoot some nice video of their chairperson, with a nice microphone and some great lighting. If the video of Fuji's past cameras is any indication of the current model's quality I'd be out scrounging around for at least a Nikon D750, but more probably a GH4 and then we'd be right back down into yet another system rabbit hole.
To photographers who grew up surrounded by the Leica legend and the rangefinder mystique, and who don't want to shoot very short. or very long, or very zoom-y, or much video I would honestly suggest (in a light hearted way) that you go ahead and dump what you've got and give the X-Pro-2 and three lenses a shot. What do you really have to lose? Of course, this presupposes that you don't need to earn a commercial living with the system.
It might be the most fun camera system around. And now that the body has a diopter adjustment built in the fun might never slow down.
I think the camera fits into a traditional niche. Most photojournalists and magazine photographers had big Nikons or Canons for the long and short zooms but a huge number also carried a single Leica rangefinder ,with one or two lenses, as a "personal" camera. That's where I see the value of something like the X-Pro-2. Taking the place of my old Leica M4 with a crusty old 50mm Summilux. Ready for a big dose of that classic "personal vision." But riding in the old, weathered Domke bag next to more flexible tools...
Will I try one out? Of course! Will I buy one? Not in the near future. I'm getting along so well with the Nikon stuff these days it would be too much of a shame to break up the partnership....
There's nothing objective about buying cameras. Really! Nothing objective at all. I guess the question is: Will you be buying one?
I'm not linking this to any site for affiliate sales but if you want to support a good blogger who is a great Fuji camera fan you might want to head over to Michael Johnston's site, see what he has to say about the camera and pre-order there. Mike writes smart stuff and deserves our support for doing so. His blog is called, "TheOnlinePhotographer."
That's all I have on Fuji for the moment. Love the company, just don't currently have any of their product. Be aware: everything can change direction on a dime....
Posted by Kirk, Photographer/Writer at 17:46 11 comments:
Subscribe to: Posts (Atom)


text:
On 'The Biggest Loser,' Health Can Take Back Seat
LOS ANGELES — When more than 40 former contestants from "The Biggest Loser" gather Wednesday for a reunion television special, the winner of the program's first season, Ryan C. Benson, who lost 122 of his 330-pound starting weight, will be absent. Mr. Benson is now back above 300 pounds but he thinks he has been shunned by the show because he publicly admitted that he dropped some of the weight by fasting and dehydrating himself to the point that he was urinating blood.
Now in its eighth season, "The Biggest Loser" is one of NBC's most-watched prime-time programs besides football, drawing an estimated 10 million viewers each week, according to Nielsen. It has clearly tapped into the American obsession with losing weight, as more than 200,000 people a year submit audition videotapes or attend open casting calls for the program.
It also has spawned a licensed merchandise business that will generate an estimated $100 million this year.
The series also highlights the difference between the pursuit of engaging television and the sometimes frenzied efforts of contestants to win, perhaps at the risk of their own health. Doctors, nutritionists and physiologists not affiliated with "The Biggest Loser" express doubt about the program's regimen of severe caloric restriction and up to six hours a day of strenuous exercise, which cause contestants to sometimes lose more than 15 pounds a week.
At least one other contestant has confessed to using dangerous weight-loss techniques, including self-induced dehydration. On the first episode of the current season, two contestants were sent to the hospital, one by airlift after collapsing from heat stroke during a one-mile race.
New contestants are entering the show more out of shape. Each of the last two seasons has broken the record for the heaviest contestant ever, at 454 and 476 pounds.
Medical professionals generally advise against losing more than about two pounds a week. Rapid weight loss can cause many medical problems, including a weakening of the heart muscle, irregular heartbeat and dangerous reductions in potassium and electrolytes.
"I'm waiting for the first person to have a heart attack," said Dr. Charles Burant, a professor of internal medicine at the University of Michigan Health System director of the Michigan Metabolomics and Obesity Center.
"I have had some patients who want to do the same thing, and I counsel them against it," Dr. Burant said. "I think the show is so exploitative. They are taking poor people who have severe weight problems whose real focus is trying to win the quarter-million dollars."
Dr. Rob Huizenga, the medical consultant to "The Biggest Loser" and an associate clinical professor of medicine at U.C.L.A., said that the program was safe. "This is not only a major amount of weight loss, it is a totally different kind of weight loss compared with surgery or starvation diets," he said.
In interviews, the show's trainers and producers acknowledge that unsafe practices can occur.
"If we had it to do over, we wouldn't do it," Dr. Huizenga said of the recent one-mile race that resulted in hospitalizations. "It was an unexpected complication and we're going to do better," he said, adding that "that challenge has changed a lot of the way we do things," including more closely monitoring contestants' body temperatures during exercise.
JD Roth, an executive producer of the series who created its current format, said that while the show was extreme, "it needs to be extreme in my opinion."
"For some of these people this is their last chance," he said. "And in a country right now that is wrestling with health care issues and the billions of dollars that are spent on obesity issues per year, in a way what a public service to have a show that inspires people to be healthier."
Some contestants have claimed that dangerous weight loss techniques were common among contestants. Kai Hibbard, who lost 118 pounds and finished as the runner-up in Season 3, has written on her MySpace blog and elsewhere that she and other contestants would drink as little water as possible in the 24 hours before a weigh-in. When the cameras were off, she said, contestants would work out in as much clothing as possible.
Ms. Hibbard, who weighed 144 pounds at the show's finale, wrote that she added 31 pounds in two weeks, most of it simply by drinking water. That experience is not isolated. Including Mr. Benson, the winners of the first four seasons of the show each have added at least 20 percent to their weight at the end of the show.
Jillian Michaels, one of the two trainers who supervise contestants' workouts on the series, said the experience of Ms. Hibbard and Mr. Benson was evidence of "the dark side of the show."
"Contestants can get a little too crazy and they can get too thin," she said. She said contestants are medically checked and disqualified if they are dehydrated or are found to be taking drugs or diuretics. "That is the worst part of the show," she said. " It's just part of the nature of reality TV."
Contestants are required to sign releases that stand out even in the waiver-intensive world of reality television.
One such release, which was provided to The New York Times by a former contestant who did so on the condition of anonymity, says that "no warranty, representation or guarantee has been made as to the qualifications or credentials of the medical professionals who examine me or perform any procedures on me in connection with my participation in the series, or their ability to diagnose medical conditions that may affect my fitness to participate in the series."
The current season started with five contestants of more than 400 pounds. Yet contestants have been required to sign a document certifying that they believe themselves to be "in excellent physical, emotional, psychological and mental health."
Mr. Roth said that those "standard release forms" are similar to those used "on any reality show." He added that the show's medical professionals had "appropriate qualifications and credentials."
Getting contestants to talk openly about the environment of the program is difficult. Shortly after a reporter started contacting former contestants to interview them about their experiences, a talent producer on the series sent an e-mail message to many former contestants reminding them that "serious consequences" could ensue if they ever talked to a reporter without the show's permission.
To do so could subject them to a fine of $100,000 or $1 million, depending on the timing of the interview, according to the e-mail message, which was obtained by The New York Times. The show's producers did provide an opportunity to interview several former contestants, but the interviews were conducted with an NBC publicist listening in.
Ali Vincent, a fifth-season contestant who became the first female winner of "The Biggest Loser," said she believed that her involvement in the show was "definitely worth it."
"I went from a life of nothing to being active every day, six days a week," said Ms. Vincent, who started the program weighing 234 pounds and finished at 122. She now weighs about 125 pounds, she said, and is a spokeswoman for products and ventures related to "The Biggest Loser."
Ms. Michaels and Bob Harper, the other trainer, as well as Mr. Roth all say that at least half of the contestants stay close to the weight levels they achieve on the show for several years.
Mr. Roth said he happily accepted a 50 percent success rate — noting that only a handful of former contestants regained all or most of the weight they carried before joining the show. "Getting 100 percent to keep the weight off has never been the goal," he said. "The goal is can we inspire people in America to make a change in their life. In that, we're batting 1,000."


text:
Jarmund/Vigsnæs Arkitekter have designed the Dune house in Thorpeness, Suffolk, England.
The house is situated in Thorpeness on the Suffolk coast, and replaced an existing building at the site. The house will be a holiday house for rental.
To get a planning permission it was important to relate to the existing, typical, British seaside strip of houses. The roofscape, the bedroom floor, somehow plays with the formal presence of these buildings, and also brings into mind a romantic remembrance of holidays at bed-and-breakfasts while traveling through the UK.
The ground floor is contrasting this by its lack of relationship to the architecture of the top floor. The living area and the terraces are set into the dunes in order to protect it form the strong winds, and opens equally in all directions to allow for wide views. The corners can be opened by sliding doors; this will emphasize the floating appearance of the top floor.
While the materiality of the ground floor; concrete, glass, aluminum, relates to the masses of the ground, the upper floor is a construction made of solid wood, cladding stained dark as the existing gables and sheds found in the area.
Visit the Jarmund/Vigsnæs Arkitekter website – here.
Photography by Nils Petter Dale


text:
FreeBSD is a highly portable operating system intended to function on many different types of hardware architectures. Maintaining clean separation of Machine Dependent (MD) and Machine Independent (MI) code, as well as minimizing MD code, is an important part of our strategy to remain agile with regards to current hardware trends. Each new hardware architecture supported by FreeBSD adds substantially to the cost of code maintenance, toolchain support, and release engineering. It also dramatically increases the cost of effective testing of kernel changes. As such, there is strong motivation to differentiate between classes of support for various architectures while remaining strong in a few key architectures that are seen as the FreeBSD "target audience".
The FreeBSD Project targets "production quality commercial off-the-shelf (COTS) workstation, server, and high-end embedded systems". By retaining a focus on a narrow set of architectures of interest in these environments, the FreeBSD Project is able to maintain high levels of quality, stability, and performance, as well as minimize the load on various support teams on the project, such as the ports team, documentation team, security officer, and release engineering teams. Diversity in hardware support broadens the options for FreeBSD consumers by offering new features and usage opportunities (such as support for 64-bit CPUs, use in embedded environments, etc.), but these benefits must always be carefully considered in terms of the real-world maintenance cost associated with additional platform support.
The FreeBSD Project differentiates platform targets into four tiers. Each tier includes a specification of the requirements for an architecture to be in that tier, as well as specifying the obligations of developers with regards to the platform. In addition, a policy is defined regarding the circumstances required to change the tier of an architecture.
Tier 1 platforms are fully supported by the security officer, release engineering, and toolchain maintenance staff. New features added to the operating system must be fully functional across all Tier 1 architectures for every release (features which are inherently architecture-specific, such as support for hardware device drivers, may be exempt from this requirement). In general, all Tier 1 platforms must have build and Tinderbox support either in the FreeBSD.org cluster, or be easily available for all developers. Embedded platforms may substitute an emulator available in the FreeBSD cluster for actual hardware.
Tier 1 architectures are expected to be Production Quality with respects to all aspects of the FreeBSD operating system, including installation and development environments.
Tier 1 architectures are expected to be completely integrated into the source tree and have all features necessary to produce an entire system relevant for that target architecture. Tier 1 architectures generally have at least 6 active developers.
Tier 1 architectures are expected to be fully supported by the ports system. All the ports should build on a Tier 1 platform, or have the appropriate filters to prevent the inappropriate ones from building there. The packaging system must support all Tier 1 architectures. To ensure an architecture's Tier 1 status, proponents of that architecture must show that all relevant packages can be built on that platform.
Tier 1 embedded architectures must be able to cross-build packages on at least one other Tier 1 architecture. The packages must be the most relevant for the platform, but may be a non-empty subset of those that build natively.
Tier 1 architectures must be fully documented. All basic operations need to be covered by the handbook or other documents. All relevant integration documentation must also be integrated into the tree, or readily available.
Current Tier 1 platforms are i386 and amd64.
Tier 2 platforms are not supported by the security officer and release engineering teams. Platform maintainers are responsible for toolchain support in the tree. The toolchain maintainer is expected to work with the platform maintainers to refine these changes. Major new toolchain components are allowed to break support for Tier 2 architectures if the FreeBSD-local changes have not been incorporated upstream. The toolchain maintainers are expected to provide prompt review of any proposed changes and cannot block, through their inaction, changes going into the tree. New features added to FreeBSD should be feasible to implement on these platforms, but an implementation is not required before the feature may be added to the FreeBSD source tree. New features that may be difficult to implement on Tier 2 architectures should provide a means of disabling them on those architectures. The implementation of a Tier 2 architecture may be committed to the main FreeBSD tree as long as it does not interfere with production work on Tier 1 platforms, or substantially with other Tier 2 platforms. Before a Tier 2 platform can be added to the FreeBSD base source tree, the platform must be able to boot multi-user on actual hardware. Generally, there must be at least three active developers working on the platform.
Tier 2 architectures are usually systems targeted at Tier 1 support, but that are still under development. Architectures reaching end of life may also be moved from Tier 1 status to Tier 2 status as the availability of resources to continue to maintain the system in a Production Quality state diminishes. Well supported niche architectures may also be Tier 2.
Tier 2 architectures may have some support for them integrated into the ports infrastructure. They may have cross compilation support added, at the discretion of portmgr. Some ports must built natively into packages if the package system supports that architecture. If not integrated into the base system, some external patches for the architecture for ports must be available.
Tier 2 architectures can be integrated into the FreeBSD handbook. The basics for how to get a system running must be documented, although not necessarily for every single board or system a Tier 2 architecture supports. The supported hardware list must exist and should be no more than a couple of months old. It should be integrated into the FreeBSD documentation.
Current Tier 2 platforms are arm, ia64, pc98, powerpc, and sparc64.
Tier 3 platforms are not supported by the security officer and release engineering teams. At the discretion of the toolchain maintainer, they may be supported in the toolchain. Tier 3 platforms are architectures in the early stages of development, for non-mainstream hardware platforms, or which are considered legacy systems unlikely to see broad future use. New Tier 3 systems will not be committed to the base source tree. Support for Tier 3 systems may be worked on in the FreeBSD Perforce Repository, providing source control and easier change integration from the main FreeBSD tree. Platforms that transition to Tier 3 status may be removed from the tree if they are no longer actively supported by the FreeBSD developer community at the discretion of the release engineer.
Tier 3 platforms may have ports support, either integrated or external, but do not require it.
Tier 3 platforms must have the basics documented for how to build a kernel and how to boot it on at least one target hardware or emulation environment. This documentation need not be integrated into the FreeBSD tree.
Current Tier 3 platforms are mips and S/390®.
Tier 4 systems are not supported in any form by the project.
All systems not otherwise classified into a support tier are Tier 4 systems.
Systems may only be moved from one tier to another by approval of the FreeBSD Core Team, which shall make that decision in collaboration with the Security Officer, Release Engineering, and toolchain maintenance teams.


text:
NSTA Science Store: Product Detail
RT @NSTA: Argument-Driven Inquiry in Biology: http://t.co/Y5v9aKmqPc
Common Core Standards: Ten Colossal Errors – Living in Dialogue – Education Week Teacher
One of the best complete dissection of Common Core's many shortcomings http://t.co/3zVC6pfLiv
Need some mentor texts for humor? These are written by high school students… http://t.co/GwTP4NQkWy Love http://t.co/xl5xJ9k3OT
Sunni Brown: Doodlers, unite! – YouTube
Doodle more. It's good for you. Awesome #TEDtalk by @SunniBrown: http://t.co/u6BsYK07Cv
LOVED this idea from @KellyGToGo – "The Reading Minute" #engchat @stenhousepub http://t.co/1ldhXYlZv1
@thereadingzone Take any science-themed poem & try this! http://t.co/9tvHcsPVra (I think your Ss will have fun–and it will take just 5 min)
The Good Book Lady Reads The Good, The Bad and the Ugly
@thereadingzone @ALouthan feel free to steal the idea. I have a video and flyer on my blog. http://t.co/PtZfDceon7
Posted from Diigo. The rest of my favorite links are here.
Filed under: teaching resources | Leave a comment »


text:
Looks Like the OG Wookiee Will Be in the New 'Star Wars' Movie
If you've been following the news on the next 'Star Wars' movie, 'Episode Seven,' you may already know that it's actually shooting right now, and that most of the cast has been finalized. You may also know that the original trio of Mark Hamill, Carrie Fisher and Harrison Ford are all returning as well.
Well, now there's officially another original cast member who's coming aboard: Peter Mayhew, the OG wookiee Chewbacca. Funny enough, there was recently a 'Star Wars' casting call looking for a tall actor, and many speculated it was for Chewbacca. But now the original 7'2" British actor who played him in the original trilogy is indeed back, according to the Hollywood Reporter.
While we weren't aware of any rumors going on about this, and there's been 'Star Wars' rumors practically every 10 minutes, apparently Mayhew had to cancel a planned appearance at Comicpalooza "due to filming," which stirred speculation before the official news hit today.
It will certainly be interesting to see the old 'Star Wars' gang along with a new cast of Jedi hopefuls, because 'Star Wars' is indeed generational -- so the next movie will clearly show this span of time. It may also be a little weird to see the original 'Star Wars' cast today, much older than we remembered them. But what the hell -- we hope J.J. Abrams will be able to pull this one off when the next 'Star Wars' hits theaters on Dec. 18, 2015.


text:
There are seventeen rare earth elements in the periodic table: fifteen lanthanides, plus scandium and yttrium. About nine of those elements go into every iPhone sold… and if China were suddenly to disappear from a map tomorrow, Apple would lose about 90% of those elements.
Those nine rare-earth elements are used in all sorts of things to make your iPhone, including providing the LCD display, help polish the glass, build the speakers, make the phone circuitry and even allow your iPhone to vibrate on silent mode. But they are also an environmental nightmare to actually claw out of the earth, which is why China — which doesn't care much about such issues — has a stranglehold on them.


text:
Ice Cream delivery in Albany
Gopuff has 500+ facilities delivering to 1000+ cities. Plus, we're opening new facilities all the time, and are bringing our on-demand delivery service to an area near you soon.
Ice Creamview all results
Snickers Ice Cream Bar 1ct 2.8oz$2.49
Because you're not you when you're hungry for ice cream.
Ben & Jerry's Strawberry Cheesecake Ice Cream 16oz$6.49
Ben & Jerry's Half Baked Ice Cream 16oz$6.49
M&M's Vanilla Ice Cream Cookie Sandwich 1ct 4oz$3.49
There's nothing wrong with eating a sandwich for lunch.
Haagen-Dazs Vanilla Ice Cream 14oz$6.99
Sometimes, you just gotta go with vanilla. Keep it classic.
Ben & Jerry's Milk & Cookies Ice Cream 16oz$6.49
ICEE Frozen Blue Raspberry Cups 4pk 16oz$1.99
Delight your taste buds with a classic ICEE treat straight from the freezer. ICEE Freeze cups are bursting with classic Blue Raspberry flavor and a satisfyingly smooth texture.
· Dairy free, gluten free, Kosher
· Only 80 calories per cup
· 100% serving of vitamin C
Ben & Jerry's Chocolate Fudge Brownie Ice Cream 16oz$6.49
Ben & Jerry's Chocolate Chip Cookie Dough Ice Cream 16oz$6.49
Nestle Toll House Chocolate Chip Ice Cream Sandwich 1ct 6oz$3.49
The best kind of sandwich honestly.
Nestle Dibs Vanilla Ice Cream with Crunch Coating Bites 4oz (Packing may Vary)$4.49
Breyers Cookies & Cream Ice Cream 16oz$4.99
Haagen-Dazs Butter Pecan Ice Cream 14oz$6.49
An American classic, revisited with our passion for singular flavor. We blend spoonful after spoonful of buttery roasted pecans with pure, sweet cream to create a delight like no other.
Ben & Jerry's Brownie Batter Core Ice Cream 16oz$6.49
Carvel Ice Cream Cake Chocolate and Vanilla Ice Cream 5 inches 25oz$11.99
Haagen-Dazs Strawberry Ice Cream 14oz$6.99
1 pint
Snickers Vanilla Light Ice Cream with Snickers Bar Pieces 16oz$5.49
Total satisfaction in one scoop of creamy vanilla light ice cream blasted with real SNICKERS Bar pieces, chocolatey covered peanuts, and rich caramel swirls.
Ben & Jerry's The Tonight Dough Ice Cream 16oz$6.49
My Mochi Strawberry Ice Cream 6ct 9.1oz$8.49
Ice cream wrapped in a sweet,soft dough.
6 pieces
Haagen-Dazs Caramel Cone Ice Cream 14oz$6.49
What the hell are you doing with yourself if you've never eaten Caramel Cone? Seriously. Try it once and you'll literally be inconsolable until you get your next one.
Snickers Ice Cream Bars 6ct 12oz$6.99
Ben & Jerry's Cherry Garcia Ice Cream 16oz$6.49
Blue Bunny Strawberry Shortcake Reduced Fat Ice Cream Bar 4oz 1ct$2.29
Haagen-Dazs Coffee Ice Cream 14oz$6.49
We roast the finest Brazilian coffee beans and brew them to perfection to bring out their rich, complex flavor. The combination of the brew with our pure, creamy ice cream awakens the senses.
Twix Caramel Light Ice Cream with Twix Cookie Bar Pieces 16oz$5.49
Total satisfaction in one scoop of creamy ice cream blasted with real Twix Bar pieces, chocolatey covered peanuts, and rich caramel swirls.
Ben & Jerry's Phish Food Ice Cream 16oz$6.49
Ben & Jerry's The Americone Dream Ice Cream 16oz$6.49
Twix Caramel Flavored Reduced Fat Ice Cream Cup 6oz$2.29
Breyers Natural Vanilla Ice Cream 48oz$9.99
Ben & Jerry's Mint Chocolate Cookie Ice Cream 16oz$6.49
What People Are Saying
Popular Brands
Usually bought togetherview all results
What is Gopuff?
Gopuff means instant needs – essentials, delivered in minutes right to your door.
Whether you need Tylenol, that one ingredient you didn't realize you were missing until halfway through cooking dinner, your visiting friend's favorite beer, or one of the other 4,000 products we stock across hundreds of locations, we'll get it to you within minutes, all at the press of a button.
That's what we call the magic of Gopuff.
I want to order! How does Gopuff work?
Create an account using the Gopuff app or online at www.gopuff.com, add everything you need to your cart, and check out. We accept credit and debit cards, Google Pay, Apple Pay, and Venmo.
Gopuff is free to download for iOS and Android devices through your app store or you can order online at www.gopuff.com.
It's that simple. Your order can be at your door in less time than it takes to finish the next episode of whatever you're binging.
Where does Gopuff deliver?
We operate hundreds of micro-fulfillment centers, delivering to customers in more than 1,000 cities across the U.S., U.K., and France, and we're growing every month. Enter your address at www.gopuff.com to see if we currently deliver to you.
What if you don't deliver in my city?
We're probably coming your way! Tweet us @gopuff where you'd like us to launch next, and chances are, we will.
How late is Gopuff deliver?
As late as you're up. We operate 24/7 in many markets, and are open late everywhere else.
Does Gopuff deliver alcohol?
For customers ages 21 and up in many, but not all markets, Gopuff offers delivery of alcoholic beverages like craft beer, hard seltzer, liquor, and a variety of wines. Check the app or order page and enter your address to confirm what products Gopuff delivers in your area.
Contactless delivery is not available for orders containing alcoholic beverages. Customers ordering alcoholic beverages must provide a valid ID at time of delivery.
How much does Gopuff cost?
Our delivery fee is as low as 3.95, and we don't surge or hike prices. (Yes, you read that right.)
An additional fee up to $2 will be added to all orders containing alcohol; this fee covers costs incurred to ensure compliant delivery of alcohol products and ID verification.
Does Gopuff have an order minimum?
All orders must be at least $10.95 for Gopuff delivery. Check the app or order page and enter your address to confirm your area's minimum.
Can you pay Gopuff with cash?
Due to the COVID-19 pandemic, we are not currently accepting cash in many markets.
My credit card/payment was rejected. What should I do?
You can reach out to our Customer Service Help Center at help.gopuff.com. Someone will be available 24/7 to assist you.
When can I expect my refund to go through?
Orders processed with a credit card will be posted within 3 to 5 business days, so you should expect a full refund by then.
Does Gopuff store my Personal Information?
Our Privacy Notice contains details about how we collect, use, and share Personal Information that we obtain from and about you when you interact with us on our website, via our mobile app, via email, and through other online and offline interactions. Review our Privacy Notice and reach out to us at firstname.lastname@example.com if you have a question or concern.
I'm having trouble with the app / my order. What should I do?
Please visit our Customer Service Help Center at help.gopuff.com. We're available 24/7 to help.
Where can I write a Gopuff review?
If you'd like to let us know how we're doing, write a Gopuff review on your app store, whether it's Google Play or the Apple App Store. We're always aiming to improve our service, and love to hear feedback from our thousands of happy customers.
What is the Gopuff Fam?
Gopuff Fam is our membership service that offers a variety of perks and free delivery on all orders for just $5.95/month. Join Gopuff Fam!
What are Puff Points and how can I earn them?
With Gopuff's reward program, Puff Points, customers earn points with each purchase. Earn enough and you'll unlock Rewards that can be redeemed for use on your next order. To check your Puff Points balance, visit your account page on our site or in the app.
What are some of the earning opportunities available at Gopuff?
Gopuff offers full-time and part-time employment opportunities, as well as independent contractor opportunities for delivery partners, in every market we serve. Both delivery partners and employees have the opportunity for professional advancement within a location as well as the chance to explore other areas within the business.
For those looking for flexible, independent work, delivery partners have the choice to deliver around their schedule, either on demand or by signing up for a pre-arranged delivery block. Do you want to read more? Visit the delivery partner experience page. If you're interested in becoming a delivery partner, visit the onboarding page to get started.
Or, if you're interested in joining the team as an employee in our field or corporate teams, you can learn more and apply on the careers page.
I am a delivery partner and don't see my question answered here. What should I do?
If you are a delivery partner and have a question, please visit this page for more information.
I don't see an answer to my question on this page. What should I do?
If you do not see an answer to your question here, please visit our Customer Service Help Center at help.gopuff.com. We're available 24/7 to help out.


text:
The Rasmuson Library Historical Translation Series, Vol. X
"Another solid, fully documented contribution to the Rasmuson Library Translation Series, which is making available important Russian works on North Pacific exploration and ethnography. Litke had a remarkable career as an explorer, hydrographer, and geographer that brought him international recognition and advancement in position and rank. He later became tutor of the Grand Duke Constantine, founded the Imperial Russian Geographic Society, and served as president of the Russian Academy of Sciences. . . . Alekseev's work is the only full-length biography of Litke available in any language. It is grounded on thorough research in Russian archival and manuscript collections and on careful analysis of Litke's own works. . . . Alekseev's biography has shown all the dimensions of this important and neglected historical figure of nineteenth-century Russia. It will no doubt be very durable, and this translation will give it the wider exposure it deserves."
—The American Neptune
"Anyone interested in the history of maritime exploration, of science, or of Russian America should find Alekseev's biography of Litke absorbing."
—Alaska History
"The author's style, the translator's diligence, and the editor's care have resulted in a welcome addition to the corpus on Russia's role in marine science and exploration."
—Northern Mariner
"Litke's story-his family life, exploration of the sea, intellectual connections, and role as teacher to the heir to the Russian throne-clearly leads to a better understanding of the scientific world of the 19th century and its inner workings."
—Pacific Northwest Quarterly
Litke was a remarkable Russian scientist, navigator, statesman, and scholar who made significant contributions to world science. His life was filled with tireless scientific activity, including numerous ocean travels. He was known especially for his contributions to the history of Russian geographical science and to marine hydrography. Litke combined his scientific activities with tutoring when he was charged with educating the son of Tsar Nicholas I. He was first president of the Academy of Sciences and organized the Russian Geographical Society.


text:
Former Friend of Michael Arrington Says He's Heard Abuse Allegations
The Silicon Valley tech press has been largely silent on the serious allegations of rape and physical abuse leveled against TechCrunch founder Mike Arrington by his ex-girlfriend Jenn Allen. But a former friend of Arrington's is now speaking out to say he believes Allen's story and has heard similar ones before.
This comes as Arrington's former business partner, the entrepreneur Jason Calacanis, said he'd heard the stories too. "Story after horrific story of unimaginable behavior were told to me in private," he wrote.
The tech blogger Loren Feldman, a former good friend of Arrington's, goes further in a video posted to YouTube today. "I think he did it," Feldman says. "Personally, I think he did it. I think he did all the things that woman spoke about." Feldman also airs the fact that rumors that Arrington has been abusive towards woman have swirled long since Jenn Allen took to Facebook.
"It's been the worst kept rumor in the valley for years," Feldman says. Feldman also claims he knows of other women who Arrington allegedly beat as well.
The fact is, among tech insiders, rumors that Arrington has been abusive towards women have circled for years. I personally know of two journalists who chased these rumors, to no avail. They ran into the same problem that is responsible for the silence of the tech blogosphere today: People are scared of Mike Arrington. He is an incredibly powerful player with an unpredictable mean streak and deep connections to most of the major tech media outlets. He's an investor in former TechCrunch editor Sarah Lacy's new start-up PandoDaily, and of course still a contributor at TechCrunch. Gabe Rivera launched tech news aggregator Techmeme, which functions as sort of the front page of the Silicon Valley and largely sets the pace of the news cycle, out of Arrington's home. Unsurprisingly, news of the Arrington allegations have been missing from all three.
Feldman, however, is a longtime character in the tech industry, known for speaking uncomfortable truths.
"The things he says are things that many would love to say but they have to live here," wrote the tech journalist Tom Foremski in 2010.
He's best known as a prickly blogger who earned a reputation as the "Court Jester" of Silicon Valley for his YouTube videos in which he parodied members of the tech elite through puppet performances. In the late 2000s, he became close with Arrington, who found his videos highly amusing. Here's a picture of the two together at a tech conference. Arrington even invited Feldman to film a series of Mike Arrington puppet videos in his home. Arrington considered Feldman a "good friend", until the two had a falling out in late 2009, which Feldman said was because of the rumors. (Feldman was also the center of a controversy himself when he made an offensive comedy video called "TechNigga" back in 2007.)
Arrington still has yet to weigh in on the allegations.


text:
We had only just arrived at the dance hall when I noticed him. Tall, with dark, closely cropped hair and a stature that suggested authority. All of the men were in uniform, it was after all a dance to celebrate the efforts of our forces. There was some indefinable difference that made him stand out.
My friends were giggling. We'd all tried to dress up as best we could given the restrictions of the war. Our well used frocks were embellished with ribbons, bows and flowers. Mary had dabbed cheap perfume behind our ears and it wafted around us like a group identity.
I was suddenly aware of how I might look to that man at the other side of the room. My cream dress with brown polka dots was borrowed and consequently it didn't fit well. I'd added a red belt to pull in the waist and a red rose, which was already threatening to lose its petals. I didn't possess stockings, so my legs were long and white. My shoes were practical and it pained me to see the high heels of others.
A group of men at the other side of the room were eying us up. The dance band struck up a tune and one by one my friends disappeared into the press on the dance floor. I started to feel self-conscious and analysed why I hadn't been chosen. Tears sprang to my eyes and I blinked them away, praying that they would not dissolve the mascara applied from her precious black block earlier by my friend Marjorie.
I was just debating whether to leave or to hide in the ladies powder room when the tall man appeared at my side. He stood observing the dancers next to me.
'We seem to be the only ones not dancing.'
It was a comment rather than a question. I felt I must reply, but all rational thought had deserted me. I managed a feeble, 'Do you like dancing?'
'Not particularly.'
'I love it, but I rarely get the chance.' I gazed at the dancers wistfully and then blushed as I realised he might think I was asking him to dance.
'Do you live here?'
'Yes, I was born in the village. Lived here all my life.'
'So you know everyone and everything here?'
'Painfully. I often dream of escape.'
'Pastures new?' He looked at me at last. His face was pale and his eyes dark.
'I suppose so.' I began to sway to a favourite tune.
'Let me tell you something, er…'
'Well Susie. I'm David by the way. Never underestimate belonging somewhere.' He sighed.
'That sounded heartfelt.'
'I've never belonged anywhere. My father was in the army too. We never stayed in one place longer than six months. Now this war has meant I move even more. When it is over, I'm going to find myself a nice village like this and take root.'
The room had filled with cigarette smoke. I was thankful that I had never smoked as my eyes smarted. Pairs of dancers disappeared to the darkness. The band's limited repertoire repeated often. We talked on. We never did dance. By the end of the evening, I had agreed to write to David and had his regimental address written on a matchbook.
I dutifully wrote, even though memories of his face blurred and I was writing to his upright image. I had letters from all over Britain and Europe in the next few years. They weren't exciting letters, but it felt good to get them. I knew he kept most of the pain and gore from me.
One day they stopped. I mourned their loss. I never found out what happened to him, but in my heart of hearts I knew.


text:
Security of supply report
Robert Habeck plans power plant strategy this year
This translation was created with the help of DeepL, a machine translation service based on neural networks, known for high quality and accurate translations. Hence, we perform only little editing on our side to make sure everything is understandable. However, we do not take any reponsibility for the translation. You may refer to the original version of the article or contact us if you encounter a translation of minor quality.
Would you like to read additional articles?
Free Trial
- 30 days free of charge
- Ends automatically
- Instant activation
- Monthly cancellation possible
- Payment with common payment methods or by invoice
You already have a user account? Log in now


text:
In this article, we look at five simple examples which support the Theory of Evolution.
by Richard Peacock
1. The universal genetic code. All cells on Earth, from our white blood cells, to simple bacteria, to cells in the leaves of trees, are capable of reading any piece of DNA from any life form on Earth. This is very strong evidence for a common ancestor from which all life descended.
2. The fossil record. The fossil record shows that the simplest fossils will be found in the oldest rocks, and it can also show a smooth and gradual transition from one form of life to another.
Please watch this video for an excellent demonstration of fossils transitioning from simple life to complex vertebrates.
3. Genetic commonalities. Human beings have approximately 96% of genes in common with chimpanzees, about 90% of genes in common with cats (source), 80% with cows (source), 75% with mice (source), and so on. This does not prove that we evolved from chimpanzees or cats, though, only that we shared a common ancestor in the past. And the amount of difference between our genomes corresponds to how long ago our genetic lines diverged.
4. Common traits in embryos. Humans, dogs, snakes, fish, monkeys, eels (and many more life forms) are all considered "chordates" because we belong to the phylum Chordata. One of the features of this phylum is that, as embryos, all these life forms have gill slits, tails, and specific anatomical structures involving the spine. For humans (and other non-fish) the gill slits reform into the bones of the ear and jaw at a later stage in development. But, initially, all chordate embryos strongly resemble each other.
In fact, pig embryos are often dissected in biology classes because of how similar they look to human embryos. These common characteristics could only be possible if all members of the phylum Chordatadescended from a common ancestor.
5. Bacterial resistance to antibiotics. Bacteria colonies can only build up a resistance to antibiotics through evolution. It is important to note that in every colony of bacteria, there are a tiny few individuals which are naturally resistant to certain antibiotics. This is because of the random nature of mutations.
When an antibiotic is applied, the initial innoculation will kill most bacteria, leaving behind only those few cells which happen to have the mutations necessary to resist the antibiotics. In subsequent generations, the resistant bacteria reproduce, forming a new colony where every member is resistant to the antibiotic. This is natural selection in action. The antibiotic is "selecting" for organisms which are resistant, and killing any that are not.
© Evolution FAQ, all rights reserved.


text:
I had an interesting conversation with my son about e-learning and social networking. He described the way the Internet makes one think and behave differently. I have to admit that I was just sort of nodding in agreement, when he started to describe how and why adolescents of today do not feel the need to succumb to peer pressure when it comes to experimenting with drugs.
"We're smarter than your generation, Mom," he said. "We've moved beyond that. We evolved."
I have to say I disagree with him that teens are not affected by peer pressure. I see peer pressure as a part of social learning and group conditioning, both from a behavioral standpoint and a cognitive one.
Nevertheless, my son's rationale made me pause for a moment and reflect my beliefs and attitudes about the knowledge and skills bases of today's (and tomorrow's) learners.
Could my son be right? Are kids today smarter than my generation when we were kids? Part of me agrees, for the following reasons:
1. Tech-savvy kids are adept at managing large amounts of data with technology. They are also used to teaching themselves how to solve problems in an interactive environment. As James Paul Gee has described in his book, What Video Games Have to Teach Us about Teaching and Learning (2004), when playing a video game, the average child learns quickly how to do effective task analysis in a "real-time" setting and to obtain the necessary information which is available on-demand in order to achieve the goal. This is a perfect example of situated, outcomes-oriented learning, and children of this generation are extremely skilled at it by age 6 or 7, depending on how long they've been playing video games.
2. Today's generation of youth are exposed to vast quantities of information, and they learn to manage, classify, use, and dismiss what is not useful to them. While this is an excellent skill it also may result in distressingly extensive lacunae, that is to say, gigantic gaps in knowledge. If the information is not immediately applicable and relevant to one's life, it is ignored or dismissed. The positive aspect of this approach is that the average tech-savvy kid will have encyclopedic knowledge in areas that interest him or her. This might include audio files, "cheats" for games, movies on DVD. On the other hand, he or she may know little or nothing about world geography.
3. With the new social networking sites, tech-savvy kids are becoming adept at social development learning, which has been described by Vygotsky and others. According to this theory, people learn through social interaction, and it does not matter whether or not it is face-to-face or virtual. It follows, then, that kids who spend hours instant-messaging or interacting with social networking spaces such as myspace.com, livejournal.com, xanga.com and others, will have experienced an accelerated pace of learning.
4. Comfort with searching and finding information that helps them achieve their objectives in a short period of time is something to marvel at when seeing it in action. Teen-agers are creating web-based businesses of all sorts, and have been extremely effective at generating traffic and revenues. They are also adept at using the internet to solve logistical problems, and they use Mapquest, Google-earth, UPS tracking, US Postal service (create your own stamps, etc.) with great success.
5. Image manipulation is not only easy for tech-savvy kids, it is also accompanied by the awareness that each digital image is manipulated, resulting in a worldview that does not necessarily trust appearances.
When one considers how kids have been spending their free time with information technology, it is no wonder that they are bored by school. You don't have to be an "Indigo Child" (http://www.indigochild.com/) to find a 50-minute traditional class where students sit dutifully in hard chairs behind desks, listening to the teacher, taking notes, then taking tests, to be utterly stultifying. It is enough to convince a parent that homeschool or "unschooling" (http://www.unschooling.com/) could actually be better than a structured classroom experience.
Thinking about my son's words, I try to imagine how the current generation of teen-agers might view their Generation X and Baby Boomer parents. The words "narcissistic" and "self-absorbed" occur to me immediately, as I think of the high divorce rates, the "me generation," the "yuppies," and bizarre custody battles in which more concern was given to the family cat and rights to the time-share than to the kids. I do believe that my son has a point. Boomer generations can been seen as resisting the notion that everything is always in flux, and that nothing is permanent; thus one can never be smug or complacent. A failure to embrace the notion of constant technological change and upgrades sets up internal resistance to new ideas and structures. I can see how this could lead to a failure to communicate in any meaningful way about process and procedures.
It occurs to me that Boomer and Gen-X parents do not quite realize that the Internet, watching media (including films and television), and playing video games are not the same passive activities that they were during Leave It to Beaver or Pong days. Video games are massively multi-player, so playing them requires a great deal more range, skill, and communication ability. When they download and edit movies and music, play games, and communicate with friends, tech-savvy kids are problem-solving, recognizing patterns, increasing hand-eye coordination, cataloguing events, determining cause-effect relationships, predicting sequences, and more.
Further, as they download music and film, they develop extreme film and music literacy. Granted, it's not in a form that is easily tested, and the knowledge gained here won't make anyone a wunderkind in the local No Child Left Behind test battery. Nevertheless, they do know how to get the information. The trick is to turn it into knowledge, and knowledge that can be used.
While a great deal of effort is expended in creating online courses and education programs that will appeal to adults, operating under the assumption that the adult learner needs to have the course content presented in a certain way for learning to take place, perhaps it is not too far-fetched to say that the same principles apply to tech-savvy kids.
The specific activities required in the lessons will be different, and the way the material is used will vary. However, the following three learning outcomes can accommodate both generations. Upon successful completion of the course, the student should be able to
1. Make connections between unrelated and/or related items and to support the connections with a rationale based on close analysis of the items;
2. Solve problems using the material and concepts presented in the learning module;
3. Engage in metacognitive tasks and develop skills such as generalization, classification, and abstraction that can transfer from one course to another.
In the meantime, it probably would not be a bad idea to start putting a renewed emphasis on ethics and ethical behavior. After all, this generation and the one after it will be taking care of us one day.


text:
Anderson Cooper talks to an activist in Syria who says the supply of food and medicine is dangerously low in Homs.
Post by: Anderson Cooper
Filed under: Syria
Anderson Cooper goes beyond the headlines to tell stories from many points of view, so you can make up your own mind about the news. Tune in weeknights at 8 and 10 ET on CNN.
Questions or comments? Send an email
Want to know more? Go behind the scenes with AC361°


text:
By Simon Johnson
In its previous response to us, the the Bank of Italy pointed out that Mario Draghi (its current governor) did not join the management of Goldman Sachs until 2002 – hence he was not there when the controversial Greek "debt swaps" were arranged.
We agree that he joined Goldman only in January 2002 (this was in our original post). But the latest revelations regarding the Goldman-Greece relationship (on the Senate floor, no less) clearly indicate that Goldman was a lead manager of Greek debt issues in spring 2002, i.e., when Mr. Draghi was on board.
This raises three entirely reasonable and straightforward questions.
- Was Mr. Draghi involved in the Goldman-Greece relationship? Sources indicate that this was very much part of his set of responsibilities, but this may be disputed.
- If Mr. Draghi was involved in marketing Greek debt, did he at that time know the true Greek debt numbers – i.e., was he aware of the "debt swap" arrangement? Perhaps his Goldman colleagues concealed that information from him.
- And when/if Mr. Draghi became aware of the inherent misrepresentation involved this transaction, did he take steps to fully informed investors (and any relevant regulatory bodies)? Again, it is entirely possible he learned of this matter only recently and from the newspapers.
Keep in mind that Mr. Draghi is still regarded as a leading contender to become president of the European Central Bank – the most important policymaking institution in the eurozone. It will be hard for anyone to advance his candidacy without clear and public answers to these questions.


text:
T-Shirt – DNY v2
$ 26,66
DNY-v2 serigraph print.
T-Shirt colors: White or black | Size: XS-XXL | Fabric: Prima Cotton
You may also like…
T-Shirt – DNY v3$ 26,66
T-Shirt – DNY v1$ 26,66
T-Shirt – DNY v5$ 26,66
T-Shirt – DNY v4$ 26,66
This is a demo store for artistic purposes only — no orders shall be fulfilled. Dismiss
The village of Hell is approximately 2.657.000 square yards, with a population of 352 – which includes Miss Universe 1990. Perhaps the most famous feature is the Hell railway station, with the famous sign stating "Gods Expedition", which is the Norwegian term for "Cargo Service". Here you´ll also find the airport in Central Norway: Trondheim Lufthavn (Hell Airport). A blues festival takes place every year at Hell in September, "Blues in Hell".
Hell is the heart of the communications between northern and southern Norway. Back in the old days you had to cross the river (no, not the Styx) on a ferry to go further north. Hell has a rich historical background and had it´s first known settlement around year 6000 BC. From that time we find the first known runic characters. Hellir, which was the original name of the town, dates back to year 2000 BC. The first bridge across the river was built in 1856, and is now the main thoroughfare on the European Higway No. 6 (Highway to Hell). The river in Stjørdal, one of the most well known salmon and sea trout rivers in Norway, has its delta at Hell.


text:
Tuesday, February 14, 2012
How Cost Effective is the iPad Versus the Textbook?
Posted by Jeff Campbell in "Apple iPhone, iPod Touch, iPad" @ 02:00 AM
"Looks like Apple is on the verge of capturing yet another lucrative market, and changing education as we know it... Or are they?"
I've always thought that using the iPad in place of a textbook would be awesome if I were back in school, and I still do, however the cost comparison they used does make me pause. Granted, they are making a few assumptions such as cost of the "book" on the iPad versus what a textbook will cost, as well as the true cost the school will pay for the iPad. I think the biggest mistake is that the market created will be high school. I'm sure some will adopt this, but I think the more appropriate place is for the college student. That is where the true value of using the iPad will be realized. All the textbooks will be on it, you can write your papers on it, and use it for entertainment in your down time. It is the perfect vehicle for the college student and I hope that is where they focus, at least initially. What are your thoughts?


text:
CFP: Journal of Medieval and Early Modern Studies (journal)
Published by Duke University Press
Council of Editors of Learned Journals Winner
1998 Phoenix Award for Significant Editorial Achievement
The editors invite submissions to our calls for papers for each
issue of the journal (Winter, Spring, Fall). The Winter and Fall
issues are on special-topics, while the Spring issue is open. For
current calls for submissions with deadlines and directions for
submitting, see the most recent issue of the journal or our website
at www.duke.edu/~jmems/jmems.
*The Journal of Medieval and Early Modern Studies* publishes work
across the disciplines on topics ranging from late antiquity to the
seventeenth century, work that is both historically grounded and
informed by the broad intellectual shifts that have occured in the
academy. Theoretical inquiries and a wide range of political
initiatives have transformed the contexts in which we work. These
transformations have profound consequences for our attempts to
understand past cultures even as they encourage our critical
reflections on the present and its relations to the pasts that we
study. We aim to foster the rigorous investigation of past cultural
forms and their historiographical representations, representations
whose political dimensions will be of special interest. The
particular pasts on which we focus are those of medieval and early
modern Europe and Western Asia. They are the pasts of material
objects as well as texts; of women as well as men; of merchants,
workers, and audiences as well as patrons; of Jews and Muslims as
well as Christians.
We seek to publish articles that are both informed by historical
inquiry and alert to issues raised by contemporary theoretical
debate. We expect that essays will be grounded in an intimate
knowledge of a particular past; their argumentation will reveal a
concern for the theoretical and methodological issues involved in
interpretation. Indeed, we are particularly committed to work that
seeks to overcome the polarization between "history" and "theory"
in the study of premodern Western culture. The journal should be a
home for empirical studies informed by theory. It should also be a
locus for theoretical debates that are illuminated by an
understanding of medieval and early modern culture or that
contribute to our knowledge of that past.
From the Literary Calls for Papers Mailing List
Full Information at
or write Erika Lin: elin_at_english.upenn.edu
Received on Thu Feb 17 2000 - 18:11:43 EST


text:
Who Wants a Primary Fight?
Apparently Paul Ryan and John Bohner, who seemingly are interested in retiring.
Had an interesting conference call with a number of Tea Party folk this morning, the group that the former Congressman and former Speaker have dismissed as the "hard right." As always happens when I speak to Tea Party folk, I'm reminded that the difference between the Tea Party and the main line Republican party is not just one of degree but one of absolute political philosophy. By way of example, want to know what is driving the Tea Party batty about the budget deal? It isn't Obamacare, and it isn't entitlements–its 84 Billion for Afghanistan. And when push comes to shove, what Boehner is dismissing as the Hard Right is really in parity with the Hard Left, which also views excessive military spending as a drain on real core functions. And we don't have to get into what those functions really are. Its not the Tea Party that's out of touch–its the mainline Republican Party. This war is now firmly Obama's War, not W's war, and it grinds on and on and on, and its war spending that is killing us, not entitlements. And this is where the frustration with Bohner and Ryan emerges–this is a fight between the Tea Party which is increasingly isolationist and the mainliners, who continue to espouse NeoCon liberal interventionism.
Push comes to shove, the primary fights that are coming in 2014 are more stark that the Republican Party wants to admit. Its not about the procedure of the shut down, or really about the failure of Obamacare, which are common issues, but rather about budget cuts that can be met by cutting items that don't benefit the American people, like Obama's costly wars–Afghanistan, the War on Terror, the War on Drugs, the Drone War. The NSA over reaches. Do we need boots on the ground in 119 countries? What Ryan did not do, and this is where the sequester was beloved, was put deep enough Pentagon cuts on the table to match desired cuts in social spending.
The soul of the Republican Party is not cleanly divided between military/social spending program–its about more specific national priorities. And the good news is that Ryan and Bohner will have plenty of time to explain to their constituents why government is growing notwithstanding a Republican controlled house.


text:
http://www.harvard.com/event/bob_mankoff/ Brattle Theatre
40 Brattle St
Cambridge, MA 02138
Art, Lectures & Conferences
Event website:
Harvard Book Store and The Harvard Lampoon welcome the cartoon editor for The New Yorker BOB MANKOFF for a discussion of his book How About Never—Is Never Good for You?: My Life in Cartoons.
People tell Bob Mankoff that as the cartoon editor of The New Yorker he has the best job in the world. Never one to beat around the bush, he explains to us, in the opening of this singular, delightfully eccentric book, that because he is also a cartoonist at the magazine he actually has two of the best jobs in the world. With the help of myriad images and his funniest, most beloved cartoons, he traces his love of the craft all the way back to his childhood, when he started doing funny drawings at the age of eight. After meeting his mother, we follow his unlikely stints as a high-school basketball star, draft dodger, and sociology grad student.
Though Mankoff abandoned the study of psychology in the seventies to become a cartoonist, he recently realized that the field he abandoned could help him better understand the field he was in, and here he takes up the psychology of cartooning, analyzing why some cartoons make us laugh and others don't. He allows us into the hallowed halls of The New Yorker to show us the soup-to-nuts process of cartoon creation, giving us a detailed look not only at his own work, but that of the other talented cartoonists who keep us laughing week after week. For desert, he reveals the secrets to winning the magazine's caption contest. Throughout How About Never—Is Never Good for You?, we see his commitment to the motto "Anything worth saying is worth saying funny."
"How About Never serves up not only a mini-collection of great cartoons but also a look at the shift in styles through the editorships of legendary William Shawn, Tina Brown, and current editor David Remnick. Mankoff also provides a very funny and insightful look at how to win The New Yorker caption contest. . . A must read for devotees of the magazine." —Publishers Weekly


text:
This is guest post by Oliver Spiers, Trainee Curator- British Museum who graduated from our program early in 2011. You can read Olly's thesis here [pdf].
Having recently completed a Masters in Cultural Heritage Management at Flinders there comes a point where you finally submit, take a sigh of relief and then think 'what the hell am I going to do now?' I was lucky enough to come across a traineeship at the British Museum called the Future Curators project.
Among the five posts they were advertising there was one position available to work with the Oceanic collection. Despite there being about 700 applicants for the five positions I was lucky enough to get selected. One of the key points in my favour was the experience that Flinders offers students to work directly with Indigenous communities, whereas some of the other applicants had a more detailed knowledge of specific regions and objects, very few had actually been to these places or worked with communities.
Since the traineeship started earlier this year, it has literally been non-stop work in many different areas. My tasks have ranged from researching objects about to go on display, such as a Crocodile mask currently on show at the museum until October, to selecting my own objects to put on show for the next two years. My personal favourite so far has been stalking people around the gallery 'evaluating' how they use some of the new technology we offer visitors, as well as what they go look at and how long they spend with a specific collection. It is quite surprising how many people simply walk through a gallery without even looking at anything, although this may be because Ancient Cyprus is a slightly dull topic, especially compared to mummies and shiny objects just down the corridor.
Although only an 18 month traineeship, the experience I'm gaining is going to make finding work in museums that much easier next year. So if anyone is tempted, the next round of traineeships should be advertised at the start of 2012, so keep an eye out for it!!


text:
Create a Intra-Application Named Pipe using WCF in .Net using C#; IPC Communications.
Update 07/2009: Update to not use HTTP transport methodology but NetNamedPipeBinding. Updated downloadable code
Update 10/2008: Code downloadable…see comments for link.
Update 10/2008: Code downloadable…see comments for link.
A named pipe is a communications method between two disparate applications. This article will show how to use WCF and .Net 3+ with C# to create such named pipe(s). This article is a how-to article showing every step needed and has the code downloadable.
Named Pipe Library
We will be creating three projects. The first will be a library project (shown below as NamedPipe) and two test projects (not shown in the picture below). The test projects will be the consumers of the library which will be a receiver and a sender talking to each other. The Library will contain the guts of the operations in WCF and once done will look like this in VS2008 Solution Explorer:
This library will be all encompassing and contain the code necessary to perform the named pipe between applications. It handles all the core WCF functionality setup/endpoints. All one has to do is have the receiver and sender use the library to communicate by just specifying a name for the pipe.
The receiver and sender will simply consume the classes in Receiver.cs and Sender.cs respectively to achieve the named pipe communication.
- Create a library project named NamedPipe.
- Add two references to the System namespaces Runtime.Serialization and ServiceModel.
- Create a folder within the project named Communication, which will be a sub-namespace to NamedPipe. We will place the low level operations and specifications there.
- Within the Communication folder add an interface class named IPipeService (as iPipeService.cs in the downloadable code). Within that file is where we will begin to define the service contract which the sending and receive code will adhere to. The interface code will look like this:
using System; using System.Collections.Generic; using System.Text; using System.ServiceModel; namespace NamedPipe.Communication { [ServiceContract (Namespace = "http://www.OmegaCoder.com/NamedPipe1")] public interface IPipeService { [OperationContract] void PipeIn(List<string> data); } }
- Line 04: We will need to add this using so our attributes will be recognized on the interface.
- Line 08: This is the attribute which will show our interface to be a specialized WCF contract.
- Line 10: We setup a generic namespace to avoid naming collisions with other WCF services. This namespace does not have anything to do with opening up the ports, which will have a different URL altogether. This url is kind of a throw away url, we are not publishing to this location.
- Line 13: We will be opening up one port which we will communicate between the processes and this attribute defines that.
- Line 14: We will be passing a list of strings between the processes and this method is the vector of the operation.
- Again within the Communication folder create the second part of the contract, the actual class which will be the catalyst for the data transfer on the receiving side named PipeService (as PipeService.cs in the download code). Let me show the code and explain each line:
using System; using System.Collections.Generic; using System.Text; using System.ServiceModel; namespace NamedPipe.Communication { [ServiceBehavior (InstanceContextMode = InstanceContextMode.Single)] public class PipeService : IPipeService { public static string URI = "net.pipe://localhost/Pipe"; // This is when we used the HTTP bindings. // = "http://localhost:8000/Pipe"; #region IPipeService Members public void PipeIn(List<string> data) { if (DataReady != null) DataReady(data); } public delegate void DataIsReady(List<string> hotData); public DataIsReady DataReady = null; #endregion } }
- Line 04: This is the required using for WCF operations.
- Line 09: This attribute is self explanatory, for this class will be generated for each endpoint we define. In our case only one endpoint for our pipe.
- Line 10: This is not the default behavior. In standard WCF processing this object would be created through reflection. We don't want that to happen, because we have a delegate (call back) which will transfer data to the receiver. Due to that fact, we will be creating the object by hand later and allowing the consumer to subscribe to the delegate. Because of that, we have to specify that this context will be a singleton instance.
- Line 14: Here is the actual url and port which the operations will be operating on. The named part of the port will be added to this string to give us a unique pipe. If we want to expand this to other machines on the intranet, we could use an HTTP protocol as shown below in Line 17.
- Line 20: Here is where the data will be passed in/out.
- Line 22: Check for a subscriber to the delegate.
- Line 23: Finally pass the data on to the consumer(s) of the delegate after we have received data from the ether.
- Line 25/26: Here is where we will transfer the data back and forth by allowing a consumer to subscribe to this delegate.
Receiver Class
- Now we will create the top level receiver class (as Receiver.cs in the zip) which will be consumed by the target of the named pipe. That class is created in the top level of the NamedPipe namespace. Here is the code and the line by line explanation.
using System; using System.Collections.Generic; using System.Text; using System.ServiceModel; using NamedPipe.Communication; namespace NamedPipe { public class Receiver : IDisposable { #region Constructors // Default constructor, use this if // the default name of the pipe can // be used instead of one provided. public Receiver() : this(DefaultPipeName) { } // Use this constructor to create // a pipe with a unique name. public Receiver(string PipeName) { _PipeName = PipeName; } #endregion #region Public Operations // If the service host can be started, // true will be returned. If false is returned // another process owns the pipe. public bool ServiceOn() { return ( _operational = HostThisService()); } public void ServiceOff() { if (_host != null) if (_host.State != CommunicationState.Closed) _host.Close(); _operational = false; } #endregion #region WCF Operations // The thread which will listen for communications // from the other side of the pipe. private bool HostThisService() { try { _host = new ServiceHost(_ps, new Uri(PipeService.URI)); // Usage BasicHttpBinding can be used if this is // not going to be on the local machine. _host.AddServiceEndpoint( typeof( IPipeService ), new NetNamedPipeBinding(), _PipeName ); _host.Open(); _operational = true; } catch (Exception ex) { error = ex; _operational = false; } return _operational; } #endregion #region Public Properties // The consumer of this class will subscribe to this delegate to // receive data in a callback fashion. public PipeService.DataIsReady Data { get { return _ps.DataReady; } set { _ps.DataReady += value; } } public string CurrentPipeName { get { return _PipeName; } } // Any error text will be placed here. public Exception error = null; // See the actual name of the pipe for // any default operations. public const string DefaultPipeName = "Pipe1"; #endregion #region Private Variables private PipeService _ps = new PipeService(); private bool _operational = false; private ServiceHost _host = null; private string _PipeName = string.Empty; #endregion #region IDisposable Members // A basic dispose. public void Dispose() { this.ServiceOff(); if (_ps != null) _ps = null; } #endregion } }
- Line 04: Even though we have lower level WCF definitions, we will be initiating the WCF functionality in this class.
- Line 05: Pull in the lower level WCF contract and operations.
- Line 16: If you know that this is the only named pipe on the system, use a default name for the pipe.
- Line 20: Otherwise use this constructor to create a named pipe to your specifications.
- Line 30: Call this after creating the object and after subscribing to the delegate, to start the process of listening. Don't forget to check for a running status. (Note if the pipe is in use it will throw an exception, so catch any exceptions).
- Line 35: Turn service off, or it will be done in the dispose automatically.
- Line 49: This is the function which will do the magic of the WCF port processing.
- Line 55: The service host will not be creating a generic end point. It will use our singleton pipe service.
- Line 58: We will open up this URI which is specified in the URI static of PipeService.
- Line 59: We will have one endpoint and we let it know what type it is.
- Line 60: We are doing not http communications but netnamed pipe operations.
- Line 62: Here is the uniqueness of this endpoint. The pipe name.
- Line 62: Finally we begin listening operations.
- Line 68: Any errors will be on the public error object for the consumer to check.
- Line 85: Subscribe to this delegate to pass the information back to the creator of this receiver named pipe.
- Line 99: Check here for any errors.
- Line 103: This is the default name of the pipe, if one is not given by the consumer.
- Line 107: Here we create our singleton WCF service for the one endpoint we will specify.
- Line 115: Clean up any operations and member variables.
Sender Class
- Here is the class which will be consumed by the application which will send the information over. Note this class is not instantiated but used by simply calling the static which will send the data on over:
using System; using System.Collections.Generic; using System.Text; using System.ServiceModel; using NamedPipe.Communication; namespace NamedPipe { // Create this class to send a message on a // named pipe. public class Sender { // Use a default pipe name. Be careful not to reuse // this on other applications. public static void SendMessage(List<string> messages) { SendMessage(messages, Receiver.DefaultPipeName); } // Use this method when we have an actual pipe name. public static void SendMessage(List<string> messages, string PipeName) { EndpointAddress ep = new EndpointAddress( string.Format("{0}/{1}", PipeService.URI, PipeName)); // IPipeService proxy = ChannelFactory<IPipeService>.CreateChannel( new BasicHttpBinding(), ep ); IPipeService proxy = ChannelFactory<IPipeService>.CreateChannel( new NetNamedPipeBinding(), ep ); proxy.PipeIn( messages ); } } }
- Line 05: Need to pull in the WCF information to initiate the message.
- Line 06: We have all the connection contract information which we will need to initiate a message.
- Line 16: The class and method is a static class so just call this static. No muss no fuss. Note this uses the default named pipe name. If our receiver has specified a name for the pipe do not call this one.
- Line 21: Call this method with a unique name in for the pipe so a message to us can be sent.
- Line 23: We will combine the URL and port with the name of the pipe which gives us the uniqueness.
- Line 29: We create a proxy service to do the transfer and expose the method we need to send the info to the receiver application.
- Line 30: We send in the list of strings and we are done!
Test Projects
Finally we will create two test projects. A winform which will be the receiver and a console application which will be the sender. All we need to do is reference the Named Pipe Library!
Test Receiver
- Create a winform project and reference the NamedPipe Project.
- Add a richtext box to the form. Here is the code inside:
using NamedPipe; public partial class Form1 : Form { Receiver pipe = new Receiver(); public Form1() { InitializeComponent(); pipe.Data += new NamedPipe.Communication.PipeService.DataIsReady(DataBeingRecieved); if (pipe.ServiceOn() == false) MessageBox.Show(pipe.error.Message); } void DataBeingRecieved(List<string> data) { this.Invoke(new MethodInvoker(delegate() { rtb_Status.Text += string.Join(Environment.NewLine, data.ToArray()); rtb_Status.Text += Environment.NewLine; })); } private void button1_Click(object sender, EventArgs e) { if (pipe != null) rtb_Status.Text += "Not Null" + Environment.NewLine; if (pipe.error != null) rtb_Status.Text += pipe.error + Environment.NewLine; } }
- Line 01: We pull in the Named Pipe namespace.
- Line 05: Since we will be continuously monitoring, we will instantiate the receiver class on the class, so its lifetime is the same as that of the application.
- Line 09: Here is where we will subscribe to the delegate which will provide us with the text sent from the sender.
- Line 11: We have gotten an error, show the exception.
- Line 15: Here is our subscriber target which will receive the data!
- Line 17: Since the WCF process is on another thread, we invoke back to the GUI thread to populate the richtext box.
- Line 19: We add the data to the rich text box!
- Line 24: I added a button, not in the steps to test out the object. This code is optional.
Test Sender
- Create a console application and reference the NamedPipe project.
- Copy this code:
static void Main(string[] args) { List<string> messages = new List<string>(); messages.Add("Line 1"); messages.Add("Second Line"); try { NamedPipe.Sender.SendMessage(messages); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
- Line 09: We simply send our message. We are using the default pipe name, so we just use the single argument SendMessage. Otherwise we would use the constructor which would allow us to send data on the unique named pipe!
With that we are finished. Run the winform receiver first. Then run the console sender. If everything has been coded you should see the text on the screen. With the NamedPipe library it is now a toolbox item which we can take with us from project to project.