text:
define([
	'./Globe',
	'./ISSTracker',

	'dijit/_TemplatedMixin',
	'dijit/_WidgetBase',

	'dojo/_base/declare',
	'dojo/_base/lang',
	'dojo/date/locale',
	'dojo/sniff',
	'dojo/text!./MapWidget/templates/MapWidget.html',
	'dojo/topic',

	'esri/config',
	'esri/dijit/Geocoder',
	'esri/dijit/LocateButton',
	'esri/graphic',
	'esri/InfoTemplate',
	'esri/map',

	'require',

	'put-selector'
], function(
	Globe, ISSTracker,
	_TemplatedMixin, _WidgetBase,
	declare, lang, locale, has, template, topic,
	esriConfig, Geocoder, LocateButton, Graphic, InfoTemplate, Map,
	require,
	put
) {
	return declare([_WidgetBase, _TemplatedMixin], {
		templateString: template,
		postCreate: function() {
			this.inherited(arguments);
			this._determineCapabilities();
		},
		_determineCapabilities: function() {
			if (has('touch') && (has('iphone') || has('android') || has('bb')) && (has('device-width') < 500)) {
				require(['esri/dijit/PopupMobile'], lang.hitch(this, function(PopupMobile) {
					this.config.mapOptions.infoWindow = new PopupMobile(null, put('div'));
					this._initMap(true);
				}));
			} else {
				this._initMap(false);
			}
		},
		_initMap: function(isMobile) {
			esriConfig.defaults.map.panDuration = 200; // time in milliseconds, default panDuration: 350
			esriConfig.defaults.map.panRate = 1; // default panRate: 25
			esriConfig.defaults.map.zoomDuration = 200; // default zoomDuration: 500
			esriConfig.defaults.map.zoomRate = 1; // default zoomRate: 25

			this.map = new Map(this.mapNode, this.config.mapOptions);
			this.map.on('load', lang.hitch(this, '_initMapWidgets', isMobile));
		},
		_initMapWidgets: function(isMobile) {
			this._initLocateButton();
			this._initISSTracker();
			this._initGlobe();
			if (!isMobile) {
				this._initGeocoder();
			}
		},
		_initLocateButton: function() {
			this.locateUserInfoTemplate = new InfoTemplate();
			this.locateButton = new LocateButton({
				map: this.map,
				infoTemplate: this.locateUserInfoTemplate,
				'class': 'locateButton'
			}, this.locateNode);
			this.locateButton.startup();
			this.locateButton.on('locate', lang.hitch(this, '_provideUserLocation'));
			this.own(topic.subscribe('iss/passTimes', lang.hitch(this, '_updateLocationPassTimes')));
		},
		_initGeocoder: function() {
			this.geocodeSelectInfoTemplate = new InfoTemplate();
			this.geocoder = new Geocoder({
				map: this.map,
				autoComplete: true,
				highlightLocation: true,
				arcgisGeocoder: {
					placeholder: 'Enter an address or place'
				},
				'class': 'geocoder'
			}, this.geocoderNode);
			this.geocoder.on('select', lang.hitch(this, '_provideGeocoderLocation'));
			this.geocoder.startup();
		},
		_initISSTracker: function() {
			this.issTracker = new ISSTracker({
				map: this.map,
				config: this.config
			}, this.issTrackerNode);
			this.issTracker.startup();
		},
		_initGlobe: function() {
			this.globe = new Globe({}, this.globeNode);
			this.globe.startup();
		},

		_provideUserLocation: function(evt) {
			this._cleanupInfoWindow();
			this.map.infoWindow.setFeatures([evt.graphic]);
			topic.publish('locateButton/graphic', evt.graphic, 'locateButton');
		},
		_provideGeocoderLocation: function(evt) {
			this._cleanupInfoWindow();
			this.map.infoWindow.setFeatures([evt.result.feature]);
			if (!evt.result.feature.getInfoTemplate()) {
				evt.result.feature.setInfoTemplate(this.geocodeSelectInfoTemplate);
			}
			topic.publish('geocoder/feature', evt.result.feature, 'geocoder');
		},
		_cleanupInfoWindow: function() {
			if (this.map.infoWindow.isShowing) {
				this.map.infoWindow.hide();
				this.map.infoWindow.clearFeatures();
			}
		},
		_updateLocationPassTimes: function(passTimes, target) {
			var titleString = 'When can I spot it?';
			var contentDiv = put('div');
			var location = {
				latitude: passTimes.request.latitude.toFixed(4),
				longitude: passTimes.request.longitude.toFixed(4)
			};

			// build conditional content
			if (passTimes.message === 'success' && passTimes.response.length > 0) {
				var pass1 = passTimes.response[0];
				// datetime
				var pass1Date = new Date(pass1.risetime * 1000);
				var formattedDate = locale.format(pass1Date, {
					formatLength: 'long'
				});
				// duration
				var mins = Math.floor(pass1.duration / 60);
				var secs = pass1.duration % 60;
				var formattedDuration = mins + ' minutes and ' + secs + ' seconds';
				// content
				put(contentDiv, 'div', {
					innerHTML: 'The ISS will "rise" in the sky on ' + formattedDate + ', lasting for about ' + formattedDuration + '.'
				});
			} else {
				put(contentDiv, 'div', {
					innerHTML: 'Sorry, we were unable to find the next ISS flyover date for this location.'
				});
			}

			// build remaining content
			put(contentDiv, 'div', {
				innerHTML: 'You can find out more at:'
			});
			var list = put(contentDiv, 'div');
			put(list, 'li', {
				innerHTML: 'WolframAlpha'
			});
			put(list, 'li', {
				innerHTML: 'NASA Spot The Station'
			});

			if (target === 'locateButton') {
				this.locateUserInfoTemplate.setTitle(titleString);
				this.locateUserInfoTemplate.setContent(contentDiv);
			} else if (target === 'geocoder') {
				this.geocodeSelectInfoTemplate.setTitle(titleString);
				this.geocodeSelectInfoTemplate.setContent(contentDiv);
			}
			this.map.infoWindow.setTitle(titleString);
			this.map.infoWindow.setContent(contentDiv);

			this.map.infoWindow.show(this.map.infoWindow.features[0].geometry);
		}
	});
});


Ladies, this one's for you! If berries and onions are not part of your daily diet, you may want to think about adding them in. Turns out that these foods (and other flavanoids) are a delicious way to stay healthy, mentally sharp and physically active as you age.
Flavonoids are bioactive compounds found in fruits, vegetables, legumes, tea, chocolate and red wine. The 4,000-plus different flavonoids found in foods can be divided into subclasses; those we most commonly consume include anthocyanins, flavonols, flavones and flavanones.
The many benefits attributed to a flavonoid-rich diet include a lower risk of stroke, heart disease, high blood pressure, diabetes and certain cancers as well as better cognitive performance.
For the study, published last week in the online version of the American Journal of Clinical Nutrition, researchers set out to determine if women who consumed plenty of flavonoids in their 50s maintained good health and well-being in their 70s. Among 13,818 women, those who consumed the most – versus the least – flavonoids at midlife had significantly greater odds of being a "healthy ager," even after accounting for diet quality, physical activity, smoking, education and family history.
When it came to food sources of flavonoids, a regular intake of oranges and onions (at least five servings a week versus less than one per month) was linked to a greater likelihood of healthy aging. Eating berries at least twice a week compared with less than once was also protective.
As powerful antioxidants, flavonoids do their work in the body by preventing damage caused by free radicals, unstable molecules that can harm cells. Cumulative free radical damage is implicated in aging, memory decline, depression and many chronic diseases.
Flavonoids also decrease inflammation, relax blood vessels and help prevent blood clots that could lead to heart attack or stroke. As well, flavonoids have been shown to activate the brain's natural house-cleaning process, helping remove toxins and other compounds that can interfere with cognitive function.
A flavonoid-rich diet may help you live more healthily as you age, but other foods are important, too. Eating plenty of fruits and vegetables, the best sources of antioxidants, has consistently been tied to good health. While many fruits and vegetables deliver flavonoids, many are also excellent sources of other antioxidants such as vitamins C and E and beta-carotene.
Oily fish, flax and chia seeds, avocado, walnuts, pecans, cashews hazelnuts, olives and olive oil contain healthy fats that dampen inflammation, a major contributor to age-related disease.
Low-glycemic foods such as steel-cut oats, 100-per-cent bran cereal, stone-ground bread, brown rice, quinoa, pasta and sweet potatoes release their sugar gradually into the bloodstream and don't produce a rush in insulin. By preventing spikes in insulin, a low glycemic diet is thought to influence proteins in cells associated with longevity. Nuts, beans and lentils, milk, yogurt and most types of fruit also have low glycemic values.
Some foods, though, may hurt your chances of aging well. A steady intake of sugar-sweetened beverages, red meat, processed meats (e.g., sausage, bacon, pepperoni, cold cuts) and excess alcohol have been shown to speed up the shortening of telomeres, the parts of DNA that affect aging.
Telomere shortening – which happens every time a cell divides – has been linked to aging, cancer, stroke, dementia, cardiovascular disease and diabetes. Obesity (e.g., having a BMI of 30 or greater) is also associated with shorter telomeres. Regular exercise, omega-3 fats, whole grains, fibre and vitamins C and D are thought to preserve telomere life.
Use the following list to add a variety of different flavonoids to your "healthy aging" diet.
Acai berries, blackberries, blueberries, cherries, cranberries, plums, pomegranate seeds, prunes, strawberries, raspberries, red grapes, Flavanols tea (especially green and white tea), dark chocolate, berries, apples, apricots, Flavanones oranges, grapefruit, lemons, Flavonols yellow onions, green onions, leeks, kale, broccoli Flavones parsley, thyme, celery, chili peppers Leslie Beck, a registered dietitian, is based at the Medisys clinic in Toronto. She is a regular contributor to CTV News Channel.


The Time Now is a reliable tool when traveling, calling or researching. The Time Now provides accurate (US network of cesium clocks) synchronized time and accurate time services in Edinburgh, United Kingdom.
How to dial to Edinburgh?


text:
git clone git@github.com:Cantara/Whydah-UserIdentityBackend.git
cd Whydah-UserIdentityBackend
ln -s src/main/resources/prodInitData/ prodInitData
ln -s src/test/resources/testdata/ testdata
cd ..
git clone git@github.com:Cantara/Whydah-TypeLib.git
git clone git@github.com:Cantara/Whydah-Java-SDK.git
git clone git@github.com:Cantara/Whydah-Admin-SDK.git
git clone git@github.com:Cantara/Whydah-SecurityTokenService.git
git clone git@github.com:Cantara/Whydah-SSOLoginWebApp.git
git clone git@github.com:Cantara/Whydah-UserAdminService.git
git clone git@github.com:Cantara/Whydah-UserAdminWebApp.git
git clone git@github.com:Cantara/Whydah-CRMService.git
git clone git@github.com:Cantara/Whydah-StatisticsService.git
git clone git@github.com:Cantara/Whydah-SPAProxyService.git
git clone git@github.com:Cantara/Whydah-OAuth2Service.git

redpajama_set_name: RedPajamaGithub


Discover Aroostook, Maine by air! It is easy to fly into or out of Maine. Maine offers modern International Airports and a wide selection of smaller air strips. Aroostook, Maine Airports and Public Landing Strips are conveniently located making your business or leisure travel a breeze. The drive can be long one to Aroostook county, even from other parts of Maine. Fortunately there are several airports that provide air transport and private plane access to Maine's rural north. Share your Maine Airport and Airline Comments.
Considered the "Gateway to Northern Maine" The airport boasts the second longest commercial runway in Maine.


text:
theREP
UPH
School of the Performing Arts
Proctors Collaborative
Collaborative Media
Call Box Office
Call Box Office (518) 346-6204
KeyBank "Broadway is Back" at Proctors Series
Key Private Bank 2019-2020 Subscription series
Passport Series
Kids' Night on Broadway
National Geographic Live Series
Pretty Much the Best Comedy Show
Ticket Scams
Space Rental Policies
Delack Guild Room
GE Theatre & Wright Auditorium
Fenimore Asset Management Gallery
The Addy
Directions/Parking
Building Directory
Seat Campaign
Special Campaigns
10 Pain Free Ways to Give
Statement on Social Justice
C.A.S.T. Volunteering
GE Theatre
Robb Alley
Posted 2017-10-12 by
Located on the first floor, the GE Theatre is a flexible, 434-seat, black box style theatre used for intimate single performer shows, fully staged plays, musicals and operas, catered dinner fundraisers, fashion shows and even dance parties. It features a giant screen, the largest movie screen in the northeast, and a top-notch sound system and movable seating. The space also includes a projection room, three dressing rooms and a load-in/tech space at the back of the audience seating.
View seating chart.
For information on how to rent this space, click here.
Apostrophe Café
Key Hall
Lactation Lounge
Schenectady Greenmarket
Passport Series: American Patchwork Quartet
Friday - January 21, 2022 | 7:30pm
SOLD OUT | CALL BOX OFFICE
Tuesday - January 25, 2022 | 7:30pm
Wednesday - January 26, 2022 | 7:30pm
Thursday - January 27, 2022 | 1:30pm & 8:00pm
Saturday - January 29, 2022 | 2:00pm & 8:00pm
Sunday - January 30, 2022 | 2:00pm
Word Plays: Back in the Saddle
MYSTERY SCIENCE THEATER 3000 LIVE: TIME BUBBLE TOUR
Friday - February 04, 2022 | 8:00pm
Schenectady Symphony Orchestra "A Celebration of Two Great Heroes"
Sunday - February 06, 2022 | 3:00pm
Blippi the Musical
Thursday - February 10, 2022 | 6:00pm
Blippi the Musical Photo Experience
Rent 25th Anniversary Farewell Tour
Saturday - February 12, 2022 | 2:00pm & 8:00pm
That Golden Girls Show!
Saturday - February 19, 2022 | 8:00pm
Word Plays: for Better Or Worse
Tuesday - March 01, 2022 | 7:30pm
Wednesday - March 02, 2022 | 7:30pm
Thursday - March 03, 2022 | 1:30pm & 8:00pm
The Irish Comedy Tour
Friday - March 04, 2022 | 7:30pm
Saturday - March 05, 2022 | 2:00pm & 8:00pm
Sunday - March 06, 2022 | 2:00pm
Celtic Woman - Postcards From Ireland
Saturday - March 19, 2022 | 7:30pm
Robert Dubac's Book of Moron
Word Plays: Wise Fools
Schenectady Symphony Orchestra - "Dark Legends"
Sunday - April 03, 2022 | 3:00pm
Friday - April 08, 2022 | 7:30pm
Shen Yun 2022
Saturday - April 16, 2022 | 2:00pm & 7:30pm
Gospel Jubilee
Saturday - April 23, 2022 | 6:00pm
An Evening with Neil Gaiman
Thursday - April 28, 2022 | 7:30pm
Golden Oldies Spectacular
Schenectady Symphony Orchestra - Heroes, Heroines and a Red Violin
Sunday - May 01, 2022 | 3:00pm
Tuesday - May 03, 2022 | 7:30pm
Wednesday - May 04, 2022 | 7:30pm
Thursday - May 05, 2022 | 1:30pm & 8:00pm
Friday - May 06, 2022 | 8:00pm
Saturday - May 07, 2022 | 2:00pm & 8:00pm
Harper Lee's To Kill A Mockingbird
Tuesday - June 14, 2022 | 7:30pm
Wednesday - June 15, 2022 | 7:30pm
Thursday - June 16, 2022 | 1:30pm & 8:00pm
Friday - June 17, 2022 | 8:00pm
Saturday - June 18, 2022 | 2:00pm & 8:00pm
Sunday - June 19, 2022 | 2:00pm
Friday - July 01, 2022 | 8:00pm
Saturday - July 02, 2022 | 2:00pm & 8:00pm
Sunday - July 03, 2022 | 2:00pm
Tyler Henry - The Hollywood Medium
Saturday - August 20, 2022 | 8:00pm
Show Movies Only
« January, 2022 »
432 State Street Schenectady, NY 12305 For tickets call: Proctors Box Office (518) 346-6204
Email: info@proctors.org
Number: 518-346-6204
Schenectady, NY 12305 Directions Contact Us
© Proctors Collaborative 2022 - All Rights Reserved - 501(c)(3) non-profit Privacy Policy & Terms of Use
Get the latest updates from Proctors Collaborative!

redpajama_set_name: RedPajamaCommonCrawl


Color: Defined red. Bouquet: Scents of violet and raspberry, accented by notes of dried thyme. Taste: Perfect balance, layered flavors of mocha and blueberry- tinged cassis. Pairings: Ideal with grilled food, sauced and elaborate red meat and wild game, or just to be enjoyed by itself.
Complex aromas of plum, citrus fruit and dried mushroom follow through to a full body, with ripe, velvety tannins and a long, fruity finish. This is tannic as well. So give it some bottle age. Has impressive concentration. Best after 2012.
Vigneto Gallina is a refined and elegant wine that boldly unveils a determined personality and specific aromas of spice, black fruit, licorice and a touch of smoked bacon. The wine is compact and fresh with lingering tones of smoke and berry fruit and an extra long finish.


text:
Q: Vector processing issues in multi threading I'm implement about the data process in multi thread.
I want to process data in class DataProcess and merge the data in class DataStorage.
My problem is when the data is add to the vector sometimes occurs the exception error.
In my opinions, there have a different address class
Is it a problem to create a new data handling class and process each data?
Here is my code.
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <thread>
#include <vector>
#include <mutex>

using namespace::std;

static std::mutex m;

class DataStorage
{
private :
    std::vector<long long> vecData;
public:
    DataStorage()
    {

    }
    ~DataStorage()
    {

    }
    void SetDataVectorSize(int size)
    {
        vecData.clear();
        vecData.resize(size);

     }

    void DataInsertLoop(void* Data, int start, int end)
    {
        m.lock();
        std::vector<long long> const * _v1 = static_cast<std::vector<long long> const *>(Data);

        long long num = 0;

        for (int idx = start; idx < _v1->size(); ++idx)
        {
              vecData[idx] = _v1->at(idx);

        }
        m.unlock();

    }

};
 class DataProcess
{

private:
    int m_index;
    long long m_startIndex;
    long long  m_endIndex;
    int m_coreNum;
     long long num;
    DataStorage* m_mainStorage;
    std::vector<long long> m_vecData;

public :
    DataProcess(int pindex, long long  startindex, long long endindex)
        : m_index(pindex), m_startIndex(startindex), m_endIndex(endindex),
        m_coreNum(0),m_mainStorage(NULL), num(0)

    {
       m_vecData.clear();

    }
    ~DataProcess()
    {

    }
    void SetMainAdrr(DataStorage* const  mainstorage)
    {
        m_mainStorage = mainstorage;
    }
    void SetCoreInCPU(int num)
    {
        m_coreNum = num;
    }
    void DataRun()
    {

        for (long long idx = m_startIndex; idx < m_endIndex; ++idx)
        {
            num += rand();
            m_vecData.push_back(num); //<- exception error position

        }

        m_mainStorage->DataInsertLoop(&m_vecData, m_startIndex, m_endIndex);
    }

};

int main()

{
    //auto beginTime = std::chrono::high_resolution_clock::now();

    clock_t beginTime, endTime;
    DataStorage* main = new DataStorage();

    beginTime = clock();
    long long totalcount = 200000000;
    long long halfdata = totalcount / 2;
    std::thread t1,t2;

    for (int t = 0; t < 2; ++t)
    {
        DataProcess* clsDP = new DataProcess(1, 0, halfdata);
        clsDP->SetCoreInCPU(2);
        clsDP->SetMainAdrr(main);

        if (t == 0)
        {

            t1 = std::thread([&]() {clsDP->DataRun(); });

        }
        else
        {
            t2 = std::thread([&]() {clsDP->DataRun(); });
        }
    }

    t1.join(); t2.join();

    endTime = clock();

    double resultTime = (double)(endTime - beginTime);

    std::cout << "Multi Thread " << resultTime / 1000 << " sec" << std::endl;
    printf("--------------------\n");

   int value =  getchar();

}

A: Interestingly, if none of your threads accesses portions of vecData accessed by another thread, DataInsertLoop::DataInsertLoop should not need to be synchonized at all.  That should make processsing much faster.   That is, after all bugs are fixed...  This also means, you should not need a mutex at all.
There are other issues with your code... The most easily spotted is a memory leak.
In main:
DataStorage* main = new DataStorage();  // you call new, but never call delete...
                                        // that's a memory leak.  Avoid caling
                                        // new() directly.
                                        //
                                        // Also: 'main' is kind of a reserved
                                        // name, don't use it except for the
                                        // program entry point.

// How about this, instead ?
DataStorage dataSrc;  // DataSrc has a very small footprint (a few pointers).

// ...

std::thread t1,t2;   // why not use an array ?

// as in:
std::vector<std::tread> thrds;

// ...
// You forgot to set the size of your data set before starting, by calling:
dataSrc.SetDataVectorSize(200000000);

for (int t = 0; t < 2; ++t)
{
    // ...

    // Calling new again, and not delete... Use a smart pointer type
    DataProcess* clsDP = new DataProcess(1, 0, halfdata);

    // Also, fix the start and en indices (NOTE: code below works for t < 2, but
    // probably not for t < 3)
    auto clsDP = std::make_unique<DataProcess>(t, t * halfdata, (t + 1) * halfdata);

    // You need to keep a reference to these pointers
    // Either by storing them in an array, or by passing them to
    // the threads.  As in, for example:

    thrds.emplace_back([dp = std::move(clsDP)]() {clsDP->DataRun(); });
}

//...

std::for_each(thrds.begin(), thrds.end(), [](auto& t) { t.join(); });

//...

More...
You create a mutex on your very first line of executable code.  That's good... somewhat...
static std::mutex m;  // a one letter name is a terrible choice for a variable with
                      // file scope.

Apart form the name, it's not in the right scope... If you want to use a mutex to protect DataStorage::vecData, this mutex should be declared in the same scope as DataStorage::vecData.
One last thing.  Have you considered using iterators (aka pointers) as arguments to DataProcess::DataProcess() ?  This would simplify the code quite a bit, and it would very likely run faster.

redpajama_set_name: RedPajamaStackExchange


Interactive eBook Publishing – Where is the industry heading?
An eBook is a revolutionary format that's slowly strengthening its roots in the market. It's constant growth and expanding audience has threatened the existence of traditional books. Another reason for the popularity of eBooks is its constant evolution.
eBook started its journey by simply presenting the PDF on devices. Now, they're re-flowable, immersive and are DRM protected. Furthermore, many interactive elements, like audio, video, images and external links, can be embedded in eBooks for better engagement.
Almost every industry is using this latest technology – Augmented Reality. The reason is its ability to enhance the user experience. While consumer-facing industries are using it to sell their product or services, Publishing industry is using it as enhanced interactivity for engaging readers.
Children's publishers are making their eBooks creative by adding AR content. Simultaneously, Learning & Development departments are using AR to train their workforce better. AR-enabled content has made learning interesting and engaging.
As eBooks are gaining momentum, eBook Publishers are shifting their focus from devices to the user experience. Initially, publishers focused on an eReader, an app or a device.
However, as eBooks gained popularity and technology has evolved, there is a shift in focus. Now, everyone aims at optimizing the user experience. They are widely using all possible features and interactive elements to keep their user glued to their eBooks. To improve the reader experience and engagement levels, Publishers are using Audio, Video, Images, AR-based content.
80% of learners claimed learning would be more productive if it were more game-oriented. By 2021, the worldwide revenues of game-based learning are expected to climb to around $7.3 billion, as opposed to $2.6 billion in 2016. These numbers speak of the future of game-based learning in the eLearning industry.
Companies and educational institutes are using game-based learning already to ensure quick and interactive eLearning. Soon, we can expect game-based learning and AR to collaborate for a truly amazing reading experience.
A perfect amalgamation between e-Publishing and technology evolution is changing the face of the eLearning industry. This, over the years, is going to have a deep impact on the Publishing industry. In a short span of time, eBooks have made their presence in the readers' mind space. By adding up various interactive elements, the publishing industry is likely to witness an increase in readership, in the foreseeable future.


Artwerx Australia are Manufacturers & Wholesalers of gorgeous, unique high quality Australian Stainless Steel, 316 Marine Grade Stainless & imported Coloured Wind Spinners.
We unfortunately don't have a showroom, so viewing for wholesale customers is made by appointment between 9.00am-2.00pm only! Please contact us on the phone number below to make an appointment to view our factory & our products in person.
For all Wind Spinner related enquiries, please contact us via the form below.


text:
Case File nº221: Kabukicho Series Review – Transgender Demonization Makes Anime One to Avoid
by Alicia Haddick
Where do I begin discussing Case File nº221: Kabukicho?
This decade has been a watershed for transgender representation in anime. The frequency, as well as the quality and care taken in retelling stories about trans people within the medium, has been a major positive about anime during the 2010s. The decade began with an adaptation of the then-long-running and since-concluded manga Wandering Son and has ended this season with stories like Stars Align, which features a gender-questioning youth within its narrative and deftly explores gender identity. Alongside that, anime featuring incidental transgender characters have become more common, with trans characters a part of some of the most popular recent anime such as Zombie Land Saga and My Hero Academia.
I don't want to pretend things have been perfect, but there's been a massive improvement in the way transgender characters are represented and seen within anime, especially compared to the mysterious and distant portrayals or the outright mockery that would categorize their appearances in years gone by, with few exceptions. It's a massive improvement, and when looking in particular at the stories told in just the last few years in this regard, it leaves me hopeful as we enter a new decade.
I say this because it makes me glad that the portrayal of trans people found within Case File nº221: Kabukicho is an exception to some of the excellent pieces of LGBT representation that we have seen within anime these last few years, not the rule. It doesn't, however, make the demonization of transgender people as mentally ill in the ways seen here any less damaging.
Suspicion in Representation
Suspicion has dominated my approach to Case File nº221: Kabukicho since its opening episode. Reinterpreting the classic story of Sherlock Holmes within Kabukicho seemed like a perfect fit, the shady nightlife of the city a modern reference point to the chaotic nature of 1890s London as well as many of the themes those stories told. I was drawn to this anime prior to the show's premiere for these reasons, yet the anime has left me on edge ever since its premiere because of the way the show handled its new setting. Kabukicho is known for its seedy nightlife, Tokyo's red-light district home to a vast quantity of love hotels and hostess bars found elsewhere but not in the density as can be found here. Crime can find a natural home in a place such as this, something a master detective like Sherlock Holmes should have no problems with solving.
These bars, however, are as much a place of community as they are of crime. These bars gave Japan's queer community a place to live and be and survive while expressing themselves in a way that otherwise leaves them shunned by other areas of society. Although circumstances are improving, it's perhaps no surprise that Kabukicho and its bars remained a positive space for LGBT sex workers and people.
Which brings us to this week's episode, the conclusion of the Jack the Ripper case as the true culprit is finally revealed.
Jack the Ripper's motive and identity within Case File nº221: Kabukicho has become intertwined with ideas of deceit and betrayal. We learn this week that the identity of the killer is Maki, one of the transgender hostesses of Bar Pipecat. Their name has barely been mentioned when discussing this anime primarily because their role has mostly been on the periphery, and their recent deeper involvement within the anime has mostly come through what could previously a positive romantic storyline involving them and one of the detectives.
Maki: Portraying Transgender Identity as Perverse
Maki's reveal as the murderer comes from nowhere, and the explanation, confession, and aftermath see the show fall back on many of the most destructive and offensive tropes when it comes to representation of trans people within media. For many years, those against transgender equality have portrayed transgender people within media as mentally ill and disturbed, their attempts to live a life true to themselves being seen as somehow wrong and perverse. These ideas are the ones Case File nº221: Kabukicho tries to eschew onto its audience, not only to my own personal disappointment but in a way that feels out-of-place within the anime's wider structure up until this point,
The confession is made to be as direct and offensive as possible. One issue I've held since the beginning is the choice to have the transgender hostesses such as Maki voiced by male actors, because of the insinuation it has that trans women 'aren't really women'. This is exploited through the confession made, as the sweet and innocent tone gives away to a much angrier, manlier tone while taking their pent-up anger at being caught out on Sherlock and Watson while admitting to their crime.
Sherlock, meanwhile, has never been cruel in the way he is here. He calls Maki ugly, inside and out, for the crime and for cutting away the genitals of the victims they murdered. To quote him, he attacks Maki as 'just a person with a small penis', taking out their anger on their body on others. He goes a step further, too, asking why they even bothered to keep their penis instead of having it removed, in the most abrasive and rude way possible.
There's an argument that he was deliberately being antagonistic in order to raise a confession, but there is no need to act like this, especially when it is so out of character for Sherlock and indeed the entire show to be so explicit and dehumanizing with the dialogue. By asking questions such as these, they reduce Maki to being someone less than human. The dialogue tries to link their gender identity to the murder and dramatizes the idea with the knowledge she would eat the wombs of their female victims. It also seeks to villainize Maki much more than any other criminal in the show and also frames the character in a way to make you more inclined to hate them. This also steps beyond where the show has placed itself as Maki will gleefully explain the sexual pleasure from murder while rubbing their crotch and breasts, as though willing you to put your hand through the screen and grab a hold of them in anger. Case File nº221: Kabukicho wants you to hate Maki so much because they want you to hate what she represents.
The anime has placed justice at the root of Sherlock's character and the show in general. Suddenly, that's no longer a priority. Moriarty murders Maki instead of allowing the justice system to decide their fate.
In the context of a decade of progress within anime, I struggle to think of a time I've ever seen an anime so proud and triumphant in its dehumanizing attitude towards its trans cast. There's a joy and glee in the writing and decision to write these scenes in such a humiliating way. Where this becomes insidious, however, is the way the dialogue and confession frame this less as an issue with Maki specifically and more of an issue with transgender ideas in general; being transgender means you are mentally ill and that committing such crimes out of jealousy over your body is an inevitability.
It's crass, it's disgusting, and one of the worst pieces of representation I've seen in a long time. When I can see such positive representation in other anime, I watch Case File nº221: Kabukicho and see trans identity being looked down upon and ridiculed. For that alone, this is a series that lacks respect for others, and therefore isn't a series I feel any desire to see develop further.
Case File nº221: Kabukicho: Don't Bother
Since the very first episode, Case File nº221: Kabukicho has tried to disingenuously represent its setting by demeaning its transgender characters. Episode 1 incited gay panic and disparaged the transgender hostesses of the anime's central location, Bar Pipecat, and episode 3 doubled down on this. The thing is, I was able to look past these early moments of concern for a while because the pointed mockery they faced soon subsided. They were accepted within the show's canon after this, and though I still couldn't condone these early moments, it was an improvement to, for example, see Mrs. Hudson treated as a person of admiration and respect by people like Irene Adler and the other patrons of the bar she managed.
The signs have always been there that the show never truly cared for these people, however. When a new transgender character was introduced within episode 8, a friend of Irene's, she was very quickly murdered within the same episode, turning her life and character into a plot device for the cis cast to act upon while coating trans identity in tragedy as is all-too-common within popular media. Coupling this with the early episodes suggested the anime cared little for the lives of its transgender cast, alive or dead. After all, as soon as we know Irene's friend is dead, the impact on Irene and the influence it has on the case of Jack the Ripper takes precedence over remembering the life of a supposed long-term friend. They're forgotten.
Whether through ignorance or malice, this anime has repeatedly demeaned and dehumanized its transgender characters. Between directly ridiculing their gender identity, killing them off and using them exclusively to advance the lives of their cisgender friends and enemies and calling them insane, at a minimum this anime does not consider a person like me equal.
In light of this, the quality or issues with other elements of the anime is not worth discussing. For its treatment of minority characters and particularly its transgender cast, this is an anime you should avoid.
Do not watch Case File nº221: Kabukicho.
©歌舞伎町シャーロック製作委員会
Case File nº221: KabukichoFunimationReview
manga / 2 days ago
Understanding Hiroyuki Oohashi: Manga's Self-Made Star
Smile Down the Runway Episode 1 Impressions: An Interesting Anime on Modelling – An Impossible Feat?
Keep Your Hands Off Eizouken! Episode 2 Review: Up, Up and Away
Magia Record Episode 2 Impressions: Is The Series' Mobile Roots Holding It Back From Greatness?
My Hero Academia 4 Episode 13 Review: A Gargantuan Climax
anime / 1 week ago
Keep Your Hands Off Eizouken! Episode 1 Review: A Flying Start
anime / 2 weeks ago
Magia Record Episode 1 Impressions: A Familiar Yet Strong Return for the Magical Girl Franchise
Previewing Magia Record: Puella Magi Madoka Magica – A New SHAFT Creates a New Madoka for a New Generation
My Hero Academia 4 Episode 12 Review: Forward to the Future
games / 1 day ago


text:
package org.codehaus.mojo.unix.maven.plugin;

import fj.*;
import static org.codehaus.mojo.unix.maven.rpm.RpmMojoUtil.validateMojoSettingsAndApplyFormatSpecificSettingsToPackage;
import org.codehaus.mojo.unix.maven.rpm.*;

/**
 * @author Trygve Laugstøl
 * @goal package-rpm-attached
 * @phase package
 * @requiresDependencyResolution runtime
 */
@SuppressWarnings( "UnusedDeclaration" )
public class PackageRpmAttachedMojo
    extends AbstractPackageAttachedMojo<RpmUnixPackage, RpmUnixPackage.RpmPreparedPackage>
{
    /**
     * @parameter
     */
    protected RpmSpecificSettings rpm = new RpmSpecificSettings();

    public PackageRpmAttachedMojo()
    {
        super( "linux", "rpm", "rpm" );
    }

    protected F<RpmUnixPackage, RpmUnixPackage> getValidateMojoSettingsAndApplyFormatSpecificSettingsToPackageF()
    {
        return new F<RpmUnixPackage, RpmUnixPackage>()
        {
            public RpmUnixPackage f( RpmUnixPackage unixPackage )
            {
                return validateMojoSettingsAndApplyFormatSpecificSettingsToPackage( rpm, unixPackage );
            }
        };
    }
}


I've also used peaches the same way – the firmer ones work well. Just cut your peach or your nectarine into thin wedges or thick slices – and add them to your beef stir fry.
As in most of my stir fry recipes, this Stir Fried Beef and Nectarines recipe will instruct you to fry the beef first, then removing it from the pan and then adding it back in later. This helps give the beef room to fry (too many ingredients in the wok and you'll end up steaming your beef, not frying) and to give it a nice sear without overcooking it. If you use flank steak, make sure you slice ACROSS the grain to get tender meat.
Hmmm…I bet canned lychees would be great in this recipe too!
In a bowl, combine the soy sauce, sugar, cornstarch, black pepper and the 1 teaspoon of cooking oil. Add the beef slices and mix to coat well. Let marinate 10 minutes at room temperature or up to overnight in the refrigerator.
Heat a wok or large fry pan over high heat until a bead of water sizzles and evaporates upon contact. Add the remaining 1 tablespoon of cooking oil and swirl to coat.
Add the beef slices to the wok in a single layer, laying out the slices all around the surface of the wok or pan. Fry 30 seconds, flip and fry another 30 seconds to 1 minute, depending on thickness of your steak, until just cooked through. Dish out, keeping as much sauce and oil in the wok as possible.
Turn the heat to medium and add the red onions and the garlic. Fry for 1 minute. Add the nectarine slices and let those get nice and warm, about 1 minute. Add the beef back into the wok, add the oyster sauce and toss to coat.
I love this photo! The beef, peaches, and onions all pop out; so distinctly colorful and tangible.
Mmmm this sounds like the perfect combination. And I defintely don't eat nectarines near enough. I always forget about them!
Mmm.. that sounds really yummy. My dad makes something like this but with pineapple. Super good!
This is really unusual. I would have never thought that the beef and nectarine went well together but thinking about it – the sweet and savoury probably works! it's like when I eat cheese and jam sandwiches I guess!
Oh, yum. I was wondering if I could sub with peaches instead? I like peaches a lot. Your recipe sounds sooooooo good. Awesome.
The sweet and savory combination of this recipe sounds delicious. Can't wait to try it.
SGC: I had made this dish a while ago and published in the newspaper, but forgot to publish on the blog!
thanks for the idea- will try this using canned peaches- wish me luck! it's all i have at the moment.
I love mixing savory with the natural sweetness of fruits. I make a dish with pork and peaches, but I remove the peach skin. Do you do that with the nectarines? How come you still have nectarines? I don't really see them in my store anymore.
Very nice & simple recipe. Love the pic!
THAT photo and all of it's seductive scarlet-ness reached thru my monitor and pulled me right in – HOT!
I just love your photo naratives!
This is simply beautiful! I love the idea of fruit in my meals! Adds a very tender sweetness to everything!
So I have to ask, why would you use nectarines in November? Can you get good ones where you are at now? Here in the north east all we can get is junk. Now in August they were primo!
That's an original combination ! Colors make it very appealing !
Well, this sounds pretty amazing, Jaden! I think I might be tempted to add a little heat too, either with a chopped jalapeño or even just a little cayenne pepper.
Wow, I love the combination of the beef, red onion and nectarine. Beautiful!
a BEAUTIFUL dish! what kind of rice do you serve this type of stir-fry with?


text:
import { Component, OnInit, OnDestroy } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

import { NgbActiveModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
import { JhiEventManager } from 'ng-jhipster';

import { ImageLinkOpenDataMind } from './image-link-open-data-mind.model';
import { ImageLinkOpenDataMindPopupService } from './image-link-open-data-mind-popup.service';
import { ImageLinkOpenDataMindService } from './image-link-open-data-mind.service';

@Component({
    selector: 'jhi-image-link-open-data-mind-delete-dialog',
    templateUrl: './image-link-open-data-mind-delete-dialog.component.html'
})
export class ImageLinkOpenDataMindDeleteDialogComponent {

    imageLink: ImageLinkOpenDataMind;

    constructor(
        private imageLinkService: ImageLinkOpenDataMindService,
        public activeModal: NgbActiveModal,
        private eventManager: JhiEventManager
    ) {
    }

    clear() {
        this.activeModal.dismiss('cancel');
    }

    confirmDelete(id: number) {
        this.imageLinkService.delete(id).subscribe((response) => {
            this.eventManager.broadcast({
                name: 'imageLinkListModification',
                content: 'Deleted an imageLink'
            });
            this.activeModal.dismiss(true);
        });
    }
}

@Component({
    selector: 'jhi-image-link-open-data-mind-delete-popup',
    template: ''
})
export class ImageLinkOpenDataMindDeletePopupComponent implements OnInit, OnDestroy {

    modalRef: NgbModalRef;
    routeSub: any;

    constructor(
        private route: ActivatedRoute,
        private imageLinkPopupService: ImageLinkOpenDataMindPopupService
    ) {}

    ngOnInit() {
        this.routeSub = this.route.params.subscribe((params) => {
            this.modalRef = this.imageLinkPopupService
                .open(ImageLinkOpenDataMindDeleteDialogComponent, params['id']);
        });
    }

    ngOnDestroy() {
        this.routeSub.unsubscribe();
    }
}


text:
Vince Carter Jersey Mitchell and Ness: A Complete Guide
A staple of the game of basketball, and the larger fandom around it, is the basketball jersey. Throughout the years, many NBA teams have worn iconic jersey designs, some have remained popular among basketball fans as well as crossing over into streetwear fashion. A 2022 list by SLAM magazine looked at the most iconic NBA designs released by Mitchell & Ness, a throwback jersey manufacturer. The list included 75 of the most iconic jerseys throughout NBA history.
The #1 most iconic NBA jersey of all time is the 1998-1999 Vince Carter Toronto Raptors jersey. This jersey has a purple base, with black and silver jagged stripes. The front of the jersey has a big velociraptor "Dino" logo and the nameplate on the back of the jersey has spikes above it. This jersey was identified by Mitchell & Ness as their best-selling jersey of all time.
Why is Vince Carter iconic?
Vince Carter played for the Toronto Raptors from 1998 to 2004. He was then traded to the New Jersey Nets, where he played from 2004 until 2009. After that, Carter bounced around teams, including the Orlando Magic, the Phoenix Suns, the Dallas Mavericks, the Memphis Grizzlies, the Sacramento Kings, and the Atlanta Hawks. He retired with the Hawks at the end of the 2019-2020 season, making him one of the most tenured players in NBA history. In fact, Vince Carter is the only player to have played at least one game in 4 different decades.
Carter's career statistics include a career average of 16.2 PPG and is 20th on the all-time scoring list. He made 8 All-Star Games and was the Rookie of the Year during the 1998-1999 season and won a gold medal with Team USA at the 2000 Olympics, creating one of the most epic basketball plays ever along the way.
He continues to hold numerous franchise records for the Raptors. While he was a great scorer and a star for a good duration of his time in the league, he is most known for his highlight-reel dunks. Vince Carter won the Slam Dunk Contest in 2000 which is widely regarded as one of the most memorable dunk contests.
Why is the 1998-1999 Vince Carter Raptors jersey iconic?
The 1998-1999 Vince Carter Toronto Raptors jersey is iconic due to it being Carter's rookie season. Due to a lockout, the NBA season was shortened to 50 games, which was more than enough for Carter to impress audiences. He averaged 18.3 points per game, 5.7 rebounds per game, and 3 assists per game while shooting 45% from the floor. He wowed crowds with his playstyle and his highlight-reel dunks, which earned him the nickname "Air Canada." His impressive campaign led to him winning the Rookie of the Year award with 95.8% of votes. His strong stats, dazzling highlights, and growth to stardom, combined with the popular design of the jersey, has made his 1998-1999 jersey iconic.
Why is the 1998-1999 Toronto Raptors jersey design iconic?
The Toronto Raptors 1988-1999 jersey is made up of a purple base, with a black, red, and purple trim on the collar and armpit. The Raptors logo, also known as the "Dino" logo, is centered on the front of the jersey. Both sides of the jerseys have black and silver vertical stripes with a jagged look resembling claw tears. The nameplate on the back of the jersey has spikes above it. These two elements are an allusion to the velociraptor, from which the name and logo of the Toronto Raptors comes from.
The Raptors wore these jerseys from 1995 until 1999. SLAM Magazine and Mitchell & Ness identified this jersey design as a great example of the iconic '90s style of "giant logos, wacky designs, and bold colors," noting that these designs have long resonated with fans of all ages. In fact, the variation of this design appears several times more in their "Top 75 Greatest Jerseys of All Time" list; the Tracy McGrady (Carter's cousin) version places at #18 while the Damon Stoudamire version (worn in 1995-1996) places at #70. The popularity of this design led to the Raptors wearing this jersey in the 2014-2015 season.
Who manufactured the 1998-1999 Toronto Raptors jersey?
The on-court ("authentic") version of the 1998-1999 Toronto Raptors jersey was manufactured by Nike, while the fan ("replica") version was manufactured by Champion. When the design was introduced in the 1995 season, Champion had the exclusive license to produce authentic and replica versions of all NBA teams, so earlier versions were manufactured by Champion only. However, due to different brands licensing different teams during the 1998-1999 season, the manufacturing of the Raptors jersey was handled by Nike and Champion. A reproduction of this jersey is currently made by Mitchell & Ness.
What other major players played in the 1998-1999 Toronto Raptors jersey?
The 1998-1999 roster included several players, some of which are recognizable to many NBA fans. These players include Tracy McGrady, Charles Oakley, Dee Brown, and Doug Christie. The McGrady version of the jersey is also considered iconic, as it is Mitchell & Ness' 18th best-selling jersey of all time.
Are there other iconic Vince Carter jersey designs?
Vince Carter donned many different jerseys throughout his long career playing for different teams. However, according the list by SLAM Magazine and Mitchell & Ness, his 1998-1999 Raptors jerseys remainthe most iconic: both the purple (#1) and white (#4) variation. No other Vince Carter jersey makes an appearance on the list.
Are there other iconic Toronto Raptors jerseys?
The white variation of the 1998-1999 season is another iconic Raptors jersey design. It has a white base and retains all the other elements and colors of the purple design. This jersey is placed at #4 (Vince Carter) and #32 (Tracy McGrady) on SLAM Magazine and Mitchell & Ness' "Top 75 Greatest NBA Jerseys of All-Time" list.
The combination of a highlight-worthy playstyle and impressive rookie campaign, as well as the popularity of the "Dino" design, has made the 1998-1999 Vince Carter Toronto Raptors jersey the most iconic basketball jersey of all time. It seems like player popularity (and performance) and design popularity is the formula for success; for example, Tracy McGrady wore the same jersey in the 98-99 season. However, he was a bench player at the time with less impressive statistics than Carter, at the time, which may be why he placed #18 on the list. Thanks to Mitchell & Ness' reproduction of the jersey, fans around the world can throw on the most iconic basketball jersey of all time, the 1998-1999 Vince Carter Toronto Raptors jersey.
Categories NBA Icons
What is the NBA finals format?
What are the NBA Conference Finals MVPs?


Poznań is the 5th largest city in Poland by population (after Warsaw, Kraków, Łódź, and Wrocław), and the capital of Wielkopolskie Województwo (province). The Warta river flows beautifully through the city (the second longest river lying entirely in Poland, after the Vistula). One of the oldest Polish cities, it was the cultural and political center when Poland was created in the 10th century. Gniezno (a city located 50 km east of Poznań) was the first capital city of Poland. Poznan is full of monuments, at the same time it's a very modern, innovative, and… green city (30% of green areas).
The main railway station in Poznań is called in Polish Poznań Główny. It's located in the center of Poznań (Dworcowa 2 Street), about 2 km from the Old Town. The most popular domestic connections include Warsaw (the shortest travel time: 3 hrs 42 mins), Krakow (4 hrs 53 mins), Wrocław (2 hrs 21 mins), Gdańsk (2 hrs 57 mins), Gdynia (3 hrs 24 mins), Łódź Kaliska (4 hrs 29 mins or 3 hrs 51 mins including 1 change), Łódź Widzew (3 hrs 39 mins or 3 hrs 21 mins including 1 change), Katowice (3 hrs 52 mins), Lublin (7 hrs 41 mins including 1 change).
Poznań is well connected with other cities in Poland. Approximate (depending on traffic) travel time from: Warsaw 3 hrs, Krakow 5 hrs, Wrocław 2 hrs 30 mins, Gdańsk 4 hrs, Gdynia 4 hrs 10 mins, Łódź 2 hrs 30 mins, Katowice 4 hrs 10 mins, Lublin 5 hrs 15 mins.
Poznań has its own international airport (Poznań-Ławica Airport) located about 8 km from the Old Town. How to get from Poznań airport to the city center? A municipal bus no. 159 will take you to the city center – the last stop is called Poznań Główny – it's the main railway station. You can buy tickets from the machine (cash or card) next to the stop (bus no. 159's timetable and list of stops). You can also take a taxi waiting outside the terminal, it will take about 20 minutes to the city center.
A market square is usually the number one tourist destination for any city. Generally, it means crowds. It is no different in the case of Poznań Old Market Square. It's full of tourists but even if you prefer to avoid crowds, Poznań Market Square is worth visiting – it's a vibrant center of the city, full of historical sites and monuments but also packed with restaurants and cafes. It's the third biggest market square in Poland after Kraków and Wrocław. 60% of all the buildings were destroyed during the Second World War but were meticulously reconstructed after 1945 to their original state. The Square if full of picturesque 16th-century merchant houses, and if you happen to visit the Old Town at noon, look up at the Renaissance Town Hall (Ratusz) tower – 2 white figures of goats (koziołki) will appear, butting heads twelve times, you will also hear a trumpeter playing a bugle call. It's a nice tradition, however, please note that for smaller children it can be difficult to notice the goats since they are relatively small.
The fighting billy goats are the symbol of Poznań. The legend says they were two goats who escaped the kitchen helper who planned to roast them for the city feast in the middle of the 16th century. The goats luckily managed to escape to the Town Hall tower. A nice souvenir from Poznań would be a photo with two goats – at Plac Kolegiacki / Kolegiacki Square (the location on the map), just 250 m from the Market Square you will find a monument of the goats – it's allowed to seat on the goats and take a photo.
Rogal Pastry Museum (Poznań Croissant Museum) is located in the Old Town. It's called a museum but it's rather a show presenting how to bake a Rogal Świętomarciński – delicious pastry called in English St. Martin's Croissant (Rogal has a similar shape to a French croissant, however, you prepare Rogal with an addition of yeast). It's lots of fun for kids who can participate in the process of baking. The shows in English are available every Saturday and Sunday at 1.45 pm; in the summer season (July-August) every day at 1.45 pm, and in September daily except for Mondays, at 1.45 pm. It is recommended to email the Museum in advance to book a spot. The Museum website in English (info about location, opening hours, tickets etc.).
The New Zoo (founded in 1974) is like a huge forest, located in a hilly forest area with six large ponds. There is a free trackless train which makes it easy to explore the Zoo with children and strollers (the train has 5 stops). You will also find there a paid ropes park and a playground. During weekends and holidays there are long lines to the ticket office. To skip the line, you can buy your tickets online and show them on your smartphone at the entrance – no need to have them printed, no need to wait in line. Children under 3 years old have free entrance. Click here to read the basic info in English (opening hours, ticket prices, parking lot prices), and here to buy tickets online. The New Zoo is open every day, including all bank holidays.
The Old Zoo is smaller than the New Zoo which can be nice especially with smaller children – it's more like a city park with animals. The main advantage of the Old Zoo is that it's free – so no need to worry about long lines, no need to plan your visit ahead. You will also find there a paid ropes park and a playground. The Old Zoo is also open every day, including all bank holidays.
Maltanka Miniature Railway is a historic train that goes from Malta Lake / Jezioro Malta (Maltanka Stop – you can buy tickets here) to the New Zoo (Zwierzyniec Stop – you can buy tickets here), about 3,8 km. It operates April – September (at weekends every half an hour and on weekdays every hour). If you travel with children, it's the best way and the most fun to get to the New Zoo with Maltanka. Maltanka's website, information about new season schedule and timetable from March.
Ostrów Tumski is the only island in Poznań, it's where Poznań (and Poland) originated. Why is it worth visiting? Despite being in the city center, it's quiet here. You will have fun walking on the small bridges, and the whole family can learn something in an interesting way – there are 2 relatively small museums worth visiting with children. Porta Posnania Museum (Brama Poznania) – audio guides in English available for kids (it's a kind of a game for children during which they get to know the history of the island in a playful way). The Museum website in English. Archeological Museum Genius Loci – a small museum built in 2012 where you can explore Ostrów Tumski from the 10th century, including original wooden and stone structures. The Museum website in English. If you have some energy left, visit the Archcathedral Basilica of St. Peter and St. Paul – one of the oldest churches in Poland. The area of Ostrów Tumski is a perfect place to have a peaceful lunch (compared with usually crowded Market Square area) – go to the direction of Śródka Street to find restaurants serving Polish and international food.
If it's raining or if it's too cold or too hot to stay outside, you can visit one of the biggest water parks in Poland, located close to the Malta Lake / Jezioro Malta. It's probably the first thing your kids will remember from their visit to Poznań;) The Water Park website in English.
An artificial, 2,2 km long lake. Malta rowing club organizes a number of rowing world events. Next to Malta, you will find amusement park – ski slope during winter time, and during summer time: a mountain coaster, summer toboggan run, mini golf, playground etc. Click here to visit the website in Polish.
Arkady Fiedler was a Polish traveler, journalist and an author of 32 books translated into 23 languages (eg. 'Squadron 303', 'Orinoco', 'White Jaguar'). The Museum is located in Puszczykowo (a small town located 16 km from Poznań Old Town) and is run by the writer family. The Museum collection includes many exhibits collected by Fiedler during his travels (to Mexico, Brazil, Madagascar, Africa, Canada, United States and other). Outside the Museum, there is a "Garden of Tolerance" where you will find exotic monuments, eg. of Aztec gods. The main attraction for kids – replica (1 : 1 scale) of a legendary "Santa Maria" ship of Christopher Columbus. The Museum website in Polish. In 2019, the Museum is open from March 1.


No Place Like Home GPS shoes « Adafruit Industries – Makers, hackers, artists, designers and engineers!
Dominic Wilcox's No Place Like Home GPS shoes via BookofJoe.
Dominic Wilcox In order to create the fully functioning prototype shoes Wilcox worked with interactive arts and technology expert Becky Stewart and local Northampton shoe maker Stamp Shoes to create the bespoke leather shoes.


Wi-Fi networks were originally built with coverage in mind and access points were installed in rooms where it was known to need Wi-Fi. But as businesses began migrating from Ethernet to a complete Wi-Fi only infrastructure, this made Wi-Fi a mission critical service to business objectives.
In the bustling city of San Francisco, a tech-centric business relied on Wi-Fi for all operations, including accessing the cloud. Uploading and downloading traffic patterns began slowing down Wi-Fi. To help increase productivity and take advantage of the investment made into the WLAN infrastructure, we helped plan and design a WLAN where end users saw an increase in performance, reliability, and their experience increased dramatically.
We outline 6 characteristics of high performing WLANs which do away with frustrated end users and get the business back on track to productivity.
You give your finger a quick lick and put it up in the air. Then you turn to your installer and point to randomly selected areas of the ceiling and say, "Put a WAP here, one over there, and one right here and we should be good.." This is a recipe for disaster.
To deploy a high performing WLAN, in which your workforce heavily relies on, requires more than guess work. It requires a proper design which begins with gathering requirements. When it comes to upgrading the core network, Wi-Fi must be treated the same. Treat Wi-Fi as an extension of your wired network.
Design is the result of thorough planning. It requires understanding how the WLAN will be used, what devices will be utilizing the WLAN, how many devices, and what applications. This is not an exhaustive list of questions but it's a good starting point. The end result of planning and design will be a WLAN built for a productive end user experience.
Packet6 can help with the planning and design of your next generation WLAN.
Planning upfront will lay the foundations to a WLAN designed to fit the business needs. A WLAN must be designed for a mobile workforce. The technical professional must have in-depth Wi-Fi knowledge and understand the knobs required to tune for the specific environment.
A high performing WLAN will be designed so that there are less trouble tickets. It will be designed on the capability of the devices utilizing the WLAN, the capacity needs of the environment, and for high density of devices.
Accessing information quickly and easily on any wireless device drives the mobile workforce. Wi-Fi is now the primary access. Businesses have been migrating from Ethernet to an all wireless infrastructure. That means the WLAN infrastructure must be reliable.
Redundancy builds a robust WLAN infrastructure to prevent major outages. It prevents loss of productivity and loss of potential revenue. Ensure the WLAN is built with good backend infrastructure.
A reliable WLAN must be capable of adapting to the radio frequency environment. It must react to adverse effects from neighboring WLANs. Interference is another productivity killer which a WLAN needs to identify and mitigate.
With workforces placing an abundant reliance on cloud applications, maintaining a reliable WLAN is key to boosting business growth.
Mobile data traffic grew 63% in 2016, according to Cisco. There's no avoiding the penetration of IoT devices as they take the enterprise by storm. It leaves many wondering how to secure IoT devices and their WLANs.
IoT may help drive innovation but data must be kept secure and unauthorized access needs to be thwarted.
A high performing WLAN must allow trusted devices to authorized data. Properly segmenting these networks is just one of many steps.
A WLAN system must identify rogue access points and devices with a method of containing those threats quickly.
In 2007, TJ Maxx had a cyber security breach of their credit card data because of weak Wi-Fi security. Don't become the next headline.
In today's workplace, everyone is accessing the cloud at all times. Wi-Fi is now the primary method of access to network resources. People are carrying up to 3 or 4 devices at a time and needing to get their work done from any of those devices.
To provide a boost in productivity and effectively collaborate with others, slow or unresponsive Wi-Fi must be eliminated.
A well performing WLAN always goes back to reliability. An increase in reliability boosts end user productivity. Users can perform their work efficiently and from anywhere in the office. Voice calls are often done over Wi-Fi calling due to a lack of LTE signal penetration into the building. Video conferencing and streaming is putting a strain on the WLAN as well. Plan for these workloads.
The quality of the users work over Wi-Fi can be directly matched to the reliability of the Wi-Fi network.
As people begin working in the office at early hours, the Wi-Fi network will be humming. As more people begin to fill in their seats some start noticing a degradation of Wi-Fi service.
The increase in number of devices creates a high density situation. With each person carrying 3-4 devices can put a strain on the WLAN.
The types of applications used on each of these devices defines how well a Wi-Fi network will perform. If it was designed according to requirements, it will perform as expected. Without planning for capacity equates to planning for failure.
Other factors must be taken into consideration. In addition to planning for capacity, APs must be mounted properly and antennas aligned in the right direction. It is all based on the usage and capacity requirements of the work patterns.
How do we know if a WLAN is performing? Is the IT support staff armed with the right tools to understand the state of the Wi-Fi network. Analytics can provide valuable insight into how the Wi-Fi network is being used and to what capacity. This information can lead to optimizations for increased end user experience.
Analytics can also empower the IT support staff to troubleshoot quickly when issues arise. The data lends itself to measuring end user experience across an entire network stack.
With powerful information on-hand it can improve root cause analysis, decrease length in time spent during the investigation process, and improve time to resolution.
Wi-Fi networks are more complex than ever. The 6 characteristics are; starting with a plan and design based on requirements of the business and end users, reliability to ensure devices can connect when they need to, security – which should be thought of starting from the beginning of the design, Wi-Fi networks should provide a good end user experience and less frustrations, built for capacity as more devices are brought onto Wi-Fi, and should be monitored to investigate any issues, find trends, or to be proactive.
Located in the historic Herbst Pavilion in prime San Francisco Bay waterfront, the San Francisco Art Institute (SFAI) opened a new campus at Fort Mason Center. The Fort Mason campus is home to over 160 art students and faculty in a large 67,000 square foot space. There is 4,300 square feet of exhibition galleries which is open to the public, 160+ artist studios, performance spaces, a student lounge, multipurpose teaching spaces and staff offices.
SFAI transformed the Fort Mason building on Pier 2. Previously it housed pieces of crates and trash. At one point it used to house military supplies. $50 million later it is beautifully remodeled for SFAI graduate students. A building like this comes with its own set of technology challenges which is SFAI looked to Packet6 to deliver a modern Wi-Fi network with new network infrastructure.
With SFAI bringing in new technology generations ahead of what they had on campus, they looked to Packet6 for the knowledge and expertise in Wi-Fi design, configuration, and deployment. Packet6 helped to augment the existing IT team to provide a reliable network within weeks of the grand opening of the Fort Mason campus.
SFAI's goal was to provide a fast frictionless Wi-Fi network to the students, staff, faculty, and visitors. Coverage throughout the campus was a must and more importantly, capacity. SFAI decided to go with the Cisco 3802 access points. The 3802 access point upgraded their network to 802.11ac. A significant upgrade from their 802.11a/b/g Wi-Fi network.
A total of 31 Cisco 3802 802.11ac dual band access points were purchased, mounted, and wired throughout the campus. Powered by a stack of Catalyst 3850 switches and protected by a Cisco ASA firewall, Packet6 configured the switches, firewalls, configured the Mobility Express controllers, and created secure tunnels back to SFAI's main campus. Initially, the Cisco Converged Wireless was a selected solution. Packet6 made the recommendation to migrate away from Converged Wireless and into an updated and supported platform, Cisco Mobility Express. A pair of the Cisco 3802 access points were converted to primary and standby virtual controllers to manage the other access points.
The location of each access point were predetermined and wired by the building architect. Packet6 utilized these locations and produced a predictive site survey to help visualize what the Wi-Fi network could look like with the Cisco 3802 access points. After the access points were mounted and powered on, Packet6 configured the access points via the virtual controllers according to the RF plan Packet6 designed. A validation site survey was performed to produce a report confirming proper operation and consequently successfully closing out the project.
Learn how to use Chanalyzer for spectrum analysis with Cisco CleanAir APs to gather the spectrum data.
One of my favorite things about Wi-Fi is visualizing the invisible with a spectrum analyzer. I like to use Metageek's Chanalyzer to do this. But you need to have the dBx adapter with you to start seeing the spectrum.
Another way to get detailed spectrum data is to use a configured Cisco CleanAir AP. Chanalyzer has an accessory to connect to a CleanAir AP to view this spectrum data.
The best part of using a CleanAir AP is being able to do it remotely. That's right, doing spectrum analysis from your seat several miles, even hundreds of miles, away from the source.
Granted, the view of the spectrum is from the APs perspective but it sure beats flying out there. It works great in a pinch.
Please Note: Spectrum Expert Connect is not supported on Cisco Aironet 1810 OEAP, 1810W, 1830, 1850, 2800, and 3800 Series APs.
The obvious requirement here is CleanAir must be enabled on the AP.
You can connect to an AP that is actively serving clients but you will only be able to see the spectrum from its operating channel. If the AP is serving clients on channel 36, then you will only see the spectrum of that channel.
In this post I am using a Cisco Aironet 3502i.
You may be familiar with Local mode which tunnels the user traffic back to the controller. This mode only shows you spectrum on the serving channel.
Monitor mode will scan for interferers on all channels but will not serve any clients.
SE-Connect is the mode we want to use to connect Chanalyzer to a CleanAir AP. This mode also doesn't serve clients but will provide you the spectrum data you seek.
From the Monitor page, click on Wireless.
From the list of APs, click on the one that will be used for Spectrum Expert.
From the General tab of the AP, click the dropdown for AP Mode and select SE-Connect. Click Apply.
The AP will reboot into SE-Connect mode. Get coffee. It isn't kidding about a few minutes.
When the AP reconnects to the controller, navigate to the General tab and copy the Network Spectrum Interface (NSI) Key. This will be used to authenticate the AP in Chanalyzer.
Please Note: You must have a license to the CleanAir Accessory to connect Chanalyzer to an AP.
Click on CleanAir from the top menu and click on Connect to a CleanAir AP.
Type in the IP address of the AP, the NSI Key you copied from the Cisco WLC, and give it a name. Then click Connect.
Chanalyzer will establish a connection to the Spectrum Expert enabled AP.
Once connected you will see the panes populate with colors.
Because we are using a Cisco AP in SE-Connect mode, we are able to see a double rainbow. That is both 2.4 GHz and 5 GHz views at the same time.
Interferers are detected using Cisco CleanAir signatures. By selecting one of the interferers it will be displayed in the density view pane. Another useful view is the Utilization graph to identify congested channels.


Cher Tzara – dada cannot live in New York. All New York is dada, and will not tolerate a rival, – will not notice dada. It is true that no efforts to make it public have been made, beyond the placing of your and our dadas in the bookshops, but there is no one here to work for it, and no money to be taken in for it, or donated to it. So dada in New York must remain a secret.
No additional sales have been made of the consignment you sent to "Société anonyme". The "anonyme" itself does not sell anything.


text:
/**
A Button with Enyo styling,
an image in the button, and an optional text label below it.

	{kind: "IconButton", label: "I am a label", icon: "images/foo.png"}
*/
enyo.kind({
	name: "enyo.IconButton",
	kind: enyo.CustomButton,
	className: "enyo-button",
	published: {
		icon: "",
		/**
		If false then the icon property specifies an image file path; if true, it is a css className.
		*/
		iconIsClassName: false
	},
	components: [
		{name: "icon", className: "enyo-button-icon", showing: false},
		{name: "caption", className: "enyo-button-icon-text"}
	],
	//* @protected
	create: function() {
		this.inherited(arguments);
		this.captionChanged();
		this.iconChanged();
	},
	iconChanged: function(inOldValue) {
		this.$.icon.setShowing(Boolean(this.icon));
		if (this.iconIsClassName) {
			this.applyIconClassName(inOldValue);
		} else {
			this.applyIconImage(inOldValue);
		}
	},
	applyIconImage: function() {
		this.$.icon.applyStyle("background-image", "url(" + enyo.path.rewrite(this.icon) + ")");
		this.$.icon.applyStyle("background-repeat", "no-repeat");
	},
	applyIconClassName: function(inOldValue) {
		if (inOldValue) {
			this.$.icon.removeClass(inOldValue);
		}
		this.$.icon.addClass(this.icon);
	},
	captionChanged: function() {
		this.$.caption.setContent(this.caption);
		this.$.caption.setShowing(this.caption);
	}
});


text:
Share this Story: French triplets, 12, given to Jeffrey Epstein as birthday present?
French triplets, 12, given to Jeffrey Epstein as birthday present?
Brad Hunter
Sep 11, 2019 • November 22, 2019 • 2 minute read
U.S. financier Jeffrey Epstein appears in a photograph taken for the New York State Division of Criminal Justice Services' sex offender registry March 28, 2017. Photo by New York State Division of Criminal Justice Services / Handout /Reuters
The three girls were the kind of birthday gift only a monstrous pedophile like Jeffrey Epstein could appreciate.
The French triplets were 12 years old and were allegedly expected to have sex with the hedge fund billionaire.
French triplets, 12, given to Jeffrey Epstein as birthday present? Back to video
French prosecutors are investigating the extent of Epstein's crimes and the sisters were allegedly questioned last month about their ordeal at the hands of the financier.
Modelling agent Jean-Luc Brunel, who was at the Paris end of Jeffrey Epstein's sex trafficking pipeline, has vanished.
One of Epstein's other victims — Virginia Roberts — claims the French girls were flown from France to Miami so he could sexually assault them.
She initially made the claims in a 2015 lawsuit against Epstein's reputed top procurer, socialite Ghislaine Maxwell.
The triplets were allegedly a birthday gift from French model scout and Epstein pal, Jean-Luc Brunel.
"Jeffrey bragged after he met them that they were 12-year-olds and flown over from France because they're really poor over there, and their parents needed the money or whatever the case is and they were absolutely free to stay and flew out," Roberts said.
Virginia Roberts was 15 when this photo was taken by Jeffrey Epstein.
Roberts said she witnessed some of the abuse and that Epstein told her the three girls had massaged him and performed oral sex on him.
The trio returned to France the next day.
Prince Andrew denies seeing any sex crimes during time with Epstein
'DEPRAVED AND COWARDLY': Jeffrey Epstein's accusers express anger in court weeks after his suicide
FBI studies two broken cameras outside cell where Epstein died
For Epstein — who killed himself last month in a New York City jail cell while awaiting trial on sex-trafficking charges — the only hitch was reportedly a $1-million investment in Brunel's modelling agency.
French detectives and prosecutors are now appealing for additional victims to come forward.
Billionaire perv Epstein and the socialite accused of being his sexual procurer, Ghislaine Maxwell.
A sex-trafficking charity in Paris, Innocence in Danger, says it has received reports of abuse from 10 other victims.
Epstein spent a considerable amount of time in France and owned a posh apartment in Paris.
"Innocence in Danger will reserve for the judicial authority the content of the information and testimonies it has received in recent weeks so as to enable investigators to carry out all investigations necessary to uncover the truth," it said in a statement.
U.S. prosecutors have said the probe into Epstein's alleged accomplices will continue.


Research suggests that activity is more likely to be completed if it is planned and scheduled in advance. The Activity Planning worksheet can be used as part of a behavioral activation program.
Activity Planning is a CBT worksheet which can be used as part of a behavioral activation program. Research suggests that activity is more likely to be completed if it is planned and scheduled in advance, particularly in clients who are suffering from depression.
Use this form to help clients schedule a week's worth of activities for morning, afternoon and evening.


text:
Q: Join multiple tables with nested type in subqueries I need to create a "User" object from multiple tables and I want to do this in one EF query.
Here is my current query but I don't know how to fill the "Roles", "Groups" & "Permissions" properties, that are lists by the way.
cachedUsers = (from u in dbContext.Application_Users
               join ug in dbContext.Application_UserGroups on u.UserID equals ug.UserID
               join g in dbContext.Application_Groups on ug.GroupID equals g.GroupID
               join gr in dbContext.Application_GroupRoles on g.GroupID equals gr.GroupID
               join r in dbContext.Application_Roles on gr.RoleID equals r.RoleID
               join rp in dbContext.Application_RolePermissions on r.RoleID equals rp.RoleID
               join p in dbContext.Application_Permissions on rp.PermissionID equals p.PermissionID
               select new SecurityUser()
               {
                   ID = u.UserID,
                   UserName = u.UserName,
                   Roles = /*how to fill the list ? */(new Role
                            {
                                RoleID = r.RoleID,
                                RoleLevel = r.RoleLevel,
                                RoleName = r.RoleName,
                                Description = r.Description,
                                Trigram = r.Trigram,
                                Groups = /*how to fill the list ? */(new SecurityGroup
                                          {
                                              GroupID = g.GroupID,
                                              GroupName = g.GroupName,
                                              RoleName = r.RoleName,
                                          }).ToList(),
                                Permissions = /*how to fill the list ? */(new Permission
                                               {
                                                   PermissionID = p.PermissionID,
                                                   ConstantName = p.ConstantName,
                                                   Title = p.Title
                                               })
                                               .ToList()
                            }).ToList()
               }
              ).ToList();

Can you help me doing this ?
Thanks a lot ! :)

A: You can create your object with nested objects this way:
var userList =
                from r in recs
                join c in Roles on r.UserID equals c.UserID into celft
                from cnew in celft.DefaultIfEmpty()
                join g in groups on cnew.GroupID equals g.GroupID into gleft
                select new
                {
                    UserID = r.UserID,
                    Name = r.Name,
                    Email = r.Email,
                    Roles = (from c1 in Roles
                             where c1.RoleID == cnew.RoleID
                             select new
                             {
                                 c1.RoleID,
                                 Grupo = (from g1 in groups
                                          where g1.GroupID == c1.GroupID
                                          select new
                                          {
                                              g1.GroupID,
                                              g1.Name
                                          }).ToList(),
                             }).ToList(),
                };

This is the complete code, so you can test in a console app
class Program
    {
        static void Main(string[] args)
        {
            var recs = new List<Users> {
    new Users { Name = "Alex", Email = "A", UserID= 1 },
    new Users { Name = "Juan", Email = "B", UserID= 2 },
    new Users { Name = "Peter", Email = "C", UserID= 3 },
    new Users { Name = "Julios", Email = "D", UserID= 4 },
    new Users { Name = "Dennis", Email = "E", UserID= 5 },
    new Users { Name = "Jhon", Email = "F", UserID= 6 },
};
            var groups = new List<Group> {
    new Group { GroupID= 1, Name = "N1" },
    new Group { GroupID= 2, Name = "N2" },
};
            var Roles = new List<Roles> {
    new Roles { UserID= 1, RoleID = 1 , GroupID = 1 },
    new Roles { UserID= 1, RoleID = 2 , GroupID = 1},
    new Roles { UserID= 2, RoleID = 3 , GroupID = 2},
};

            var userList =
                from r in recs
                join c in Roles on r.UserID equals c.UserID into celft
                from cnew in celft.DefaultIfEmpty()
                join g in groups on cnew.GroupID equals g.GroupID into gleft
                select new
                {
                    UserID = r.UserID,
                    Name = r.Name,
                    Email = r.Email,
                    Roles = (from c1 in Roles
                             where c1.RoleID == cnew.RoleID
                             select new
                             {
                                 c1.RoleID,
                                 Grupo = (from g1 in groups
                                          where g1.GroupID == c1.GroupID
                                          select new
                                          {
                                              g1.GroupID,
                                              g1.Name
                                          }).ToList(),
                             }).ToList(),
                };

            foreach (var item in userList)
            {
                Console.WriteLine(string.Format("{0} {1} {2} {3}", item.UserID, item.Name, item.Email));
            }
            Console.ReadLine();
        }
    }

    class Users
    {
        public int UserID;
        public string Name;
        public string Email;
    }

    class Roles
    {
        public int UserID;
        public int RoleID;
        public int GroupID;
    }

    class Group
    {
        public int GroupID;
        public string Name;
    }


This guest post about camping is from Erin and Jeff. They're married and the creators of the budget-minded travel blog, A Week or A Weekend. They love to travel and have lots of experience traveling for a week or a weekend.
Travel doesn't have to be expensive. Or complicated. And travel planning and packing don't have to be a headache, either. For 25 years, we've been saving money on travel by camping! In fact, right now we're in the midst of a three-week, 4800-mile cross-country road trip that will involve lots of camping! Follow us on our adventures on our Twitter.
Why camping? First of all, camping is fun! It also gets us closer to the sights we came to see while making it easy to get outdoors. And, camping allows us to save money on lodging at night while seeing the same sights the hotel crowd sees by day.
In the interest of full disclosure, Erin was miles away when Jeff took the above photo. While Jeff's open to backpacking, Erin draws the line at digging her own toilet. But even a full hookup RV site for our VW camper is always cheaper than a hotel room!
We also bought cookware from Goodwill, and it stays with our camping gear year-round. It was a small up-front expense, but it allows us to save money by preparing our own meals rather than eating out while we're on the road.
Inexpensive and functional! Note the cheese spreader – class is always in style, even with mismatched silverware.
Erin's cousins Mary & Dan have taken this concept to another level — everything is pre-packed in labeled tubs that only get used for camping. That way, they know they're already packed and can hit the road much more quickly. Mary's a gourmet cook, so her food preparation tub is a bit more stocked than ours — another reason to go camping with them!
As for us, we also have our camping gear pre-packed (if not labeled). Heck, we've been using the same plastic camping plates for 20 years! Travel toothbrush? Check. Dish soap? Yep. Coffee mugs? You bet. Screwdriver set? The six-bits-in-one version we got as a stocking stuffer is perfect for camping, and it never gets taken out of our pre-packed camping gear.
Basically, everything that we'll need while we camp — except for food and clothing — is pre-packed and ready to go!
The bottle full of quarters is for coin-operated campground showers!
Not a camper? Consider pre-packing for travel anyway. We actually have another pre-packed toiletries bag in our non-camping suitcase! While it may not seem frugal to have three sets of toiletries (home, camping, suitcase), consider this: we're not using any more of them than we otherwise would. And, more importantly, buying them at home — in bulk or on sale — is much cheaper and more convenient than buying them while we're on vacation!
Whether or not you jump on the pre-packing bandwagon, consider creating a packing list. Not a scribbled-on-the-back-of-a-junk-mail-envelope version, but one that's typed up and exhaustive. List everything you could ever possibly want to bring on a trip. Any trip. From mountains in winter to snorkeling in summer. For building campfires to checking e-mail.
We've traveled enough — and made enough travel mistakes — to know how important it is to have things we need, and how frustrating it is when we've forgotten them at home (never mind that time Jeff left his entire suitcase at home for a beach weekend). Print the packing list before your trip, start crossing off the things you won't need (snorkel masks for your ski weekend), and — boom! — you're already making progress.
Traveling is our passion. Camping is one way that we make it frugal and fun while taking it a bit off the beaten path. And pre-packing keeps us a bit more sane in the sometimes frenetic days before a trip — and a bit more prepared once we've hit the road.
Besides, we think that happy hour in the great outdoors — with our own beverages in a $15 per night campsite — is pretty tough to beat!
This is a guest post from Erin and Jeff. They are married and travel often. They chronicle their adventures on their blog, "A Week or A Weekend" which can be found HERE. Erin and Jeff are probably planning their next trip right now!
How do you keep your travel costs down? Are you a camper?
Camping rocks! Many of our campsites last summer were $13/night. One site was on a lakefront. Our own personal beach. How cool is that?
I am definitely a fan of having pre-packed boxes and a list. My hubby had camping boxes but they were completely disorganized so I spent a lot of time cleaning them out, reorganizing and labeling, but the time I spent doing that saves me SO much time when packing. Repurposing old household items (those ugly patio plates we got as a wedding gift are perfect for camping). Checking thrift stores may also be helpful. We DO take our everyday cast iron skillet along with us as the non-stick factor is a huge plus. My toiletries bag is the same one I use for camping or hoteling.
A suggestion for those with kids–I have a canvas bag with toys/books/travel-sized games/washable markers which I keep always packed. They are only allowed to play with these when we travel. As your kids get older, look for fun, educational-style workbooks (Target's dollar area is a good source). You can fit a lot of stuff in a small space if you are careful and believe me, you will be grateful you did this when the inevitable crankiness/rainy weather hits.
Oh my gosh, you guys make me regret that we got rid of our camping gear this summer! Love that last pic of the two of you. As a former camper (or, maybe, a suspended camper, until the teens are launched), I wholeheartedly endorse the list and the pre-packed tubs. For frequent campers, they make it so much simpler–which makes it more likely you'll actually go.


Anyone who has read my book or seen one of my pen-making demonstrations will know that I am not an enthusiast of small 'pen-making' type sets of tools so when these new Hamlet 'Compac' tools from The ToolPost arrived for testing, I was not expecting to be impressed. I was wrong.
These are not the usual miniature tools but seriously reduced length versions of full-size tools. They are specifically designed to make turning easier on smaller lathes where the reduced swing and length between centres can make access with long-handled tools difficult. They allow the turner to more easily attain the correct positioning of the cutting edge and handle movement when working within the constraints of a small machine, thus making it easier to exercise good practice and better tool control. The problems frequently encountered with full-size tools, such as being prevented from achieving the correct presentation of the bevel to the work by the proximity of the tailstock or the lathe bed, are almost completely eliminated.
Consisting of a 12mm spindle roughing gouge, 10mm spindle gouge, 10mm bowl gouge, 1.5mm parting tool, 12mm rolled edge skew chisel and a 25mm bowl scraper, every tool in the set feels as though it has been designed for the job in hand and the balance is excellent with handle length proportionate to the body of the tool. If you have a small lathe, then you will appreciate the convenience of these tools and they may even improve your turning.
Like full-size Hamlet tools these are manufactured from M2 High Speed Steel (HSS) and they hold their edge well. In use I found that occasional honing with a diamond file was all that was required to maintain a good cutting edge, only rarely needing to visit the grinder.
These are well designed and robust tools made from quality materials. They will make an excellent partnership with any of the smaller lathes and fill an important niche gap in the market.


text:
Sant Miquel Arcàngel de Granyena és una església de Granyena de les Garrigues (Garrigues) protegida com a bé cultural d'interès local.

Descripció
És una església parroquial de planta basilical de tres naus; la central més alta i coberta amb volta de canó amb llunetes i les laterals, d'aresta. Estan separades per pilastres amb capitells força ornamentats, amb volutes, fulles d'acant i vinya i una cornisa motllurada. L'absis és poligonal. Als murs laterals i finestrals abunden els motius decoratius barrocs com la rocalla i els putti .

La façana principal té la porta flanquejada per columnetes adossades que suporten un frontó fictici coronat per un nínxol amb la imatge del sant al que es dedica l'església, en aquest cas, l'arcàngel Sant Miquel. La façana acaba amb una forma ondulant. També a la zona dels peus, a la dreta, es troba el campanar; de base quadrada amb cos superior octogonal, les seves cares estan separades per columnes adossades.

A l'absis es troba una imatge central de fusta. També hi ha altres imatges laterals, algunes sense altar. Destaca la capella del baptisme, sota l'arcada, als peus de l'església, on hi ha pintures al·legòriques i altres temes florals.

Història
L'altar neoclàssic, avui desaparegut, era obra de l'escultor Corsellés. Sota l'altar hi ha sepultada Anna Maria de Kessel i Queralt, mare del senyor de Gomar. L'església fou restaurada i pintada als anys 80 del segle XX i la imatge de l'altar va ser feta als anys 70 del mateix segle.

Referències

Patrimoni monumental de Granyena de les Garrigues
Edificis de Granyena de les Garrigues
Esglésies barroques de les Garrigues

redpajama_set_name: RedPajamaWikipedia


text:
Librairie Avant-Garde
With former lives as a bomb shelter and government parking lot, this shop is one of China's most extraordinary locales for book-lovers.
Librairie Avant-Garde in Nanjing. Wcam/cc by-sa 3.0
Social sciences and humanities books at Librairie Avant-Garde. JosephLai/cc by-sa 4.0
Librairie Avant-Garde. Shih-Chi Chiang
Librairie Avant-Garde 猫猫的日记本/cc by-sa 3.0
Librairie Avant-Garde. Gmbsfd/cc by-sa 4.0
Top Places in Nanjing
Xuanwu Lake Park
Ming Xiaoling Mausoleum
After bibliophile Qian Xiaohua acquired the subterranean parking lot beneath Nanjing's Wutaishan Stadium in 1999, he converted the 41,000-square-foot space into one of China's most remarkable bookshops.
Unveiled in 2004, the unusual site is an amalgamation of its concrete history and Qian's devout Christianity, as reflected by the yellow traffic divider that runs through the middle of the store toward a large black cross looming on a far wall.
Librairie Avant-Garde specializes in texts relating to religion and the social sciences, but as store manager Zhang Xing explained to CNN, "…reading is our religion and this place is the heaven for book lovers."
Indeed, knowledge is sacred at Librairie Avant-Garde, exemplified by the featured replica of French sculptor Auguste Rodin's The Thinker, and the poetic verses etched into pillars throughout the space. Visitors will find books pertaining to a wide range of culture-based genres, with a particularly comprehensive offering of classic Western literature.
While Librairie Avant-Garde is, first and foremost, an independent bookstore, Qian operates the space as a public haven. Located in close proximity to Nanjing University, Librairie Avant-Garde has become a popular haunt for students. On-site reading tables and open-plan seating that accommodate around 300 people at a time facilitate the shop's position as a gathering place for eager readers. In turn, Librairie Avant-Garde has also become a popular local meetup spot and tourist destination, despite offering few foreign-language books.
In addition to a café and small shop stocked with local artisanal goods, Librairie Avant-Garde also hosts a program of talks, concerts, and art exhibitions.
This branch of Librairie Avant-Garde is one of several independent bookshops run by Qian. The popularity of his vision has prompted the shop's expansion to 11 locations, eight of which are scattered around Nanjing and housed within cultural institutions including museums and historic landmarks.
Librairie Avant-Garde is open seven days a week from 10 a.m. to 9 p.m. Monday through Friday, and 10 a.m. to 10 p.m. on weekends.
Atlas Obscura Trips
China: The Great Cuisines of the Middle Kingdom
From bustling night markets to fine-dining institutions, this journey down China's east coast reveals the story of countless delicious dishes and culinary traditions.
public bookstores repositories of knowledge culture subterranean books subterranean sites
Rachel Gould
https://www.cnn.com/travel/article/nanjing-book-shop/index.htm
https://www.lonelyplanet.com/china/nanjing/shopping/librairie-avant-garde/a/poi-sho/1436846/356022l
http://forreadingaddicts.co.uk/bookshop-reviews/librairie-avant-garde-nanjing
https://en.wikipedia.org/wiki/Librairie_Avant-Garde_(Mount_Wutai_Branch)
173 Guangzhou Rd
32.0506, 118.7734
View on Google Maps Book a hotel on Kayak
Yangzhou Zhongshuge
Once an imperial lake garden, anyone can now visit this city park.
One of the largest, grandest imperial mausoleums was built as the founder of the Ming Dynasty's final resting place.
Yangzhou Shi, China
Mirrored floors and arched shelves create the illusion of an infinite tunnel of books.
Changzhou Shi, China
World Joyland Theme Park
This incredible Chinese theme park may be the largest bootleg in history.
Provins, France
Le Roy Lire
An atmospheric, medieval-themed book store hides in a 13th-century underground space.
Niagara Falls, New York
Western New York's largest independent bookstore doubles as a historical repository of all things Niagara Falls.
Sonora, California
Legends Books, Antiques & Soda Fountain
A cozy bookstore is tucked within an old gold mine shaft beneath the cafe and ice cream shop.
The Ultimate Guide to Wondrous Independent Bookstores
We think book havens are heaven.
Jonathan Carey September 30, 2022


text:
// Home // Tech // Military
Pentagon Wants Artificial Intelligence In Future Fighters
Kelsey D. Atherton
at 09:35 AM Sep 4 2014
Advanced Navy Strike Fighter Concept Art
Military //
The Department of Defense wants future generations of fighter aircraft to come with copilots already installed. According to the U.S. Naval Institute, both the Navy and the Air Force want their next generation air superiority fighter to have Artificial Intelligence. From USNI:
"AI is going to be huge," said one U.S. Navy official familiar with the service's F/A-XX effort to replace the Super Hornet starting around 2030. Further, while there are significant differences between the U.S. Air Force's vision for its F-X air superiority fighter and the Navy's F/A-XX, the two services agree on some fundamental aspects about what characteristics the jet will need to share. "I think we all agree that we have to work on PNT [Positioning, Navigation and Timing], comms, big data movement between both services," the official said.
The F-X is a fighter concept in development to replace the Air Force's current top dog, the stealthy F-22 Raptor, which is designed to outfight any other plane in the sky. However, the Raptor is expensive to produce, and it also suffered in some test dogfighting scenarios. Adding AI could free the pilot's mind to focus more on fewer tasks, giving them a cognitive advantage in battle.
Boeing's Phantom Works are developing the F/A-XX Advanced Navy Strike Fighter to replace their own F/A-18 Super Hornet (or, more accurately, to replace the F-35C, which will replace the F/A-18 Super Hornet). It's based on aircraft carriers, which are notoriously challenging to land on. The Navy's own X-47B experimental drone has landed on an aircraft carrier successfully and autonomously, so adding a computer co-pilot to a naval craft could help there too.
Bringing the artificial intelligence inside the cockpit is one major way robots will fly alongside humans in fighters of the future -- but it's not the only one. Last month, the Navy's X-47B flew in formation with the F/A-18 Super Hornet, with robots and humans teaming up in separate vehicles. By the 2030s, humans with robot copilots could fly alongside robots remotely controlled by humans.
future generations
the Department of Defense.
MORE FROM POPSCI
Air Force Wants Research Projects On Aerial Cyberwar
Air Force Says Robot Warriors Exhausted
The Week In Drones: Robots Piloting Robots, Indiana Drones, And More
The Week In Drones: Laser Warfare, Paper Planes, And More
ON SALE 26 MARCH