text:
Таємне коло () — містичний молодіжний телесеріал про дівчину-відьму та її друзів, уперше показаний телеканалом CW з 15 вересня 2011 року по 10 травня 2012 року. Серіал було анонсовано 17 січня 2011, він транслювався щочетверга в праймтайм, о 21.00. 8 лютого 2012 український фандаб проект UkrDub представив озвучення пілотного епізоду й намір озвучити всі серії.

Сюжет
16-річна Кессі Блейк () була нормальною, цілком задоволеною життям дівчиною-підлітком, допоки її мати Амелія не померла в жахливому випадку внаслідок пожежі. Осиротіла і дуже засмучена, Кессі переїздить зі своєю любою бабусею Джейн до гарного містечка Ченнс Харбор (, «Гавань шансу») у штаті Вашингтон. Ось звідти і починаються пригоди Кесі, коли вона та ще п'ять підлітків дізнаються про свої надприродні здібності…

У ролях

Примітки

Посилання
 Офіційний сайт

Телесеріали 2011
Телесеріали США 2010-х років
Фентезійні телесеріали США
Програми телеканалу The CW
Телесеріали США, запущені у 2011
Телесеріали про відьом
Телесеріали Warner Bros. Television
Телесеріали CBS Studios
Телесеріали, дія яких розгортається в штаті Вашингтон
Підліткові драми
Телесеріали англійською мовою
Телесеріали Alloy Entertainment
Телесеріали США, завершені у 2012
Телесеріали, дубльовані чи озвучені українською мовою
Телесеріали в жанрі темного фентезі


As temperatures rise in Paris for the summerparticle board vs composite board what better way to refresh yourself than in a pleasant poolHere are the best swimming pools in Paris.
Guide to Milans Outdoor Swimming PoolsPosted on July particle board vs composite board Italy and many parts of Europeparticle board vs composite board with many days seeing temperatures reach the mid to upper s.
Find Indoor Swimming Pool and Related ArticlesSearch Now!
Welcome to Swimmers Guide Swimmers Guide contains the only internationalparticle board vs composite board descriptive directory of publicly accessibleparticle board vs composite board full sizeparticle board vs composite board year round swimming pools you will ever need.
The design and installation of Swimming pools in Italy We have been designing and installing pools for over years in the UKparticle board vs composite board France and Modern Indoor Pools .
All info about Indoor swimming pools in Italy online travel guide with interactive mapsparticle board vs composite board PDF printingparticle board vs composite board elevation profilesparticle board vs composite board D flight and GPS downloadThere are indoor swimming pools within the area of Italy.
Experience the club with a guest passLuxury equipmentparticle board vs composite board programs and amenities.
Italy has no shortage of spots for swimmingparticle board vs composite board from swimming laps in the pool or wading in the Mediterranean or Adriatic seasThe country s shape makes it difficult to remain too far from coastline.
Search Indoor Swimming Pool on ShopLet the Savings Begin.
Don t let the weather dictate when you go on holiday! With these amazing villas with indoor pools you can relax even on rainy weather they are heatedparticle board vs composite board child friendlyparticle board vs composite board luxurious and super fun!
Get Indoors Swimming Pools Metasearch Social Results Here.


As a freelance professional makeup artist it is part of my job to travel where ever it is that my services are needed. I will come to you at your home or on location.
My services include wedding makeup/wedding party makeup. Make up for special occasions and events. Prom and or Galas. Halloween makeup/stage makeup and makeup for photo shoots/models and fashion shows. I live outside of Philadelphia area and I am willing to travel where ever it is that my services are needed.
No matter what your makeup needs are I promise to make you look and feel absolutely beautiful for your event! So get ready to glow with me!
I have been double certified as a makeup artist.
I have completed my studies in makeup artistry through QC Makeup Academy and have obtained the CIMP title. CIMP means Certified International Makeup Professional.
I was again certified in makeup artistry through The Jean Madeline Academy of Makeup were I was personally trained by celebrity makeup artist Rudy Miles of "beautybyrudy".
Staying up to date with the ever changing makeup trends is something that I take very serious. I attend classes and trainings whenever possible to ensure that I will be able to provide my clients with a beautiful flawless makeup application tailored specifically to their needs and desires.
Christina Bartelt-Kelly hasn't published any photos yet.


This year, all eyes will be on the 10th installment of the Otter African Trail Run (The Otter), as the Golden Trail Series (GTS) top 10 men and women race for the Series crown, while local South African talent give them a run for their money.
Race Director Mark Collins and his team are proud to play host to the prestigious finale and welcome world-class athletes from around the globe to the beautiful Garden Route. "I don't think anything has caused as much excitement in the trail running world as the Golden Trail Run Series, certainly not in marathon distance trail running. We, for one, as host of the final, are certainly very honoured to be a part of it. I feel history is being made," he said.
The Golden Trail Series is a collection of the five most iconic "short-distance" trail races on the planet, and was created to promote professional trail runners as the world-class athletes that they are, to acknowledge the passionate fans as an essential ingredient in the sport, and to showcase and protect the awe-inspiring nature and environments where the trail running's most legendary races occur. This year, the Series ends with the Finale at the Otter African Trail Run on Saturday, 20 October. The Otter boasts a 42km undulating, coastal route challenging even the most capable athletes. Typically, a recreational five-day hike, the pristine trail is exclusively booked for Otter entrants once a year over the Otter Trail Run. This year the typical Otter route is run in reverse, from Nature's Valley to Storm's River, in what is referred to as the Retto.
The top-10 men and top-10 women who qualified via the inaugural Golden Trail Series represent 11 different nations, including France, Great Britain, Italy, New Zealand, Norway, Poland, Spain, Sweden, Switzerland, the U.S.A. and of course, South Africa.
2017 defending champion, Christiaan Greyling, will be mixing it up with the GTS top 10. "I plan to run my own race and beat my time from last year, maybe that gives me a top 10, which would make me very content," says Greyling. "It is going to be a tough race with all the competition and I think about four guys will go below four hours this year." Robert Rorich (2nd place 2017) and Kane Reilley (3rd place 2017) will be looking to use their local trail knowledge as an advantage on Saturday.
In the women's race, Golden Trail Series points leader Ruth Croft from New Zealand headlines the star-studded women's lineup. Croft has been a consistent performer from the outset, and will be battling Sweden's Ida Nilsson, America's Megan Kimmel and others for the crown. Megan Mackenzie, South Africa's literal golden girl due to finishing in the GTS top 10 and 2017 Otter defending champion, has the advantage of local knowledge, which could spice things up come Saturday.
"I always have high hopes, never high expectations! It's been an amazing, but long year of racing. Otter is the most special race, and I honestly just want to run with my heart and cherish the moments it brings. I'm not putting any emphasis on results or defending my title, I want a strong, happy and celebratory run and if that means another win, awesome. If not, still awesome," said MacKenzie.
Local Robyn Owen, second across the line last year and 2016 Retto course record holder, will also be amongst the lineup. After her 2nd place win at Trofeo Kima, a technical, 52km SkyRun in Italy earlier this year, Owen could present a real challenge for the internationals. Her skill set favours the reverse direction of the Otter, and she's been known to be a bit of a wildcard, so the women's race will be one to watch for sure.
Not only will Saturday crown the 2018 Retto African Trail Run champions, but the Golden Trail Series winners too. The men's and women's GTS champions will be determined by each athlete's top three performances in the first five races of the series, plus his/her result at the Otter Trail on 20 October, while first* over the line claims the 2018 Otter title.
The competition figures to be off the charts this year, and certainly a race worth dialing into. "I would be surprised if we don't see a record. Like any other sport trail running is about getting it right on the day but with the depth of field we have this year more than one of them will be getting it right. Only a tiny handful of people on earth are capable of challenging those records but they are all here!! It's going to be insane," says Collins.
*this is subject to athlete finishing the race according to race rules.
"I still don't believe the South African public has quite grasped what a prestigious event our country is hosting and the calibre of athletes who will be shooting it on the trail this weekend. It is like the Tour de France of trail running happening on our doorstep," says Collins.
With that in mind, LIVEU is coming on board this year as the equipment sponsor of the Otter African Trail Run. As part of the Golden Trail Series strategy, LIVEU, along with Salomon will attempt to bring you live coverage of the leaders on Saturday 20 October. All live broadcasting will be available on Salomon Running channels, while the Otter Trail Run will be keeping spectators up to date on Twitter and Instagram. Alternatively, you can follow athletes SPOT trackers on the website.
New Zealand's Ruth Croft (Team Scott), Sweden's Ida Nilsson (Team Salomon), Spain's Laura Orgue** (Team Salomon), USA's Megan Kimmel (Team Salomon), Spain's Eli Gordon (Team Salomon), Great Britain's Holly Page (Team Salomon), Spain's Sheila Aviles Castano (Team Buff), Italy's Silvia Rampazzo (Team Tornado), Sweden's Fanny Borgstrom (Team Salomon), South Africa's Meg Mackenzie (Team Salomon), and France's Céline Lafaye (Team Merrell).
**Laura Orgue qualified in third place, but will not be racing in the Grand Finale due to injury. France's Céline Lafaye (Team Merrell) will take her place.


text:
Q: Delay between CloseHandle function call and SMB Close request The bit of code below opens a file on an SMB share and closes it immediately. For some reason I'm seeing a delay between the CloseHandle call and the SMB Close request being sent over the wire.
#include <Windows.h>
#include <stdio.h>

typedef NTSTATUS (__stdcall *NtQuerySecurityObjectPtr)(
    _In_  HANDLE               Handle,
    _In_  SECURITY_INFORMATION SecurityInformation,
    _Out_ PSECURITY_DESCRIPTOR SecurityDescriptor,
    _In_  ULONG                Length,
    _Out_ PULONG               LengthNeeded
    );

void printTime() {
    SYSTEMTIME time;
    GetSystemTime(&time);
    int required = GetTimeFormat(LOCALE_INVARIANT, 0, &time, nullptr, nullptr, 0);
    LPTSTR buffer = (LPTSTR)GlobalAlloc(GPTR, required * sizeof(TCHAR));
    GetTimeFormat(LOCALE_INVARIANT, 0, &time, nullptr, buffer, required);
    wprintf(L"%s\n", buffer);
}

int main()
{
    LPCTSTR file = L"\\\\192.168.13.163\\share\\file1";
    HANDLE f = INVALID_HANDLE_VALUE;

    f = CreateFile(
        file,
        GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
        nullptr,
        CREATE_ALWAYS,
        FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_SEQUENTIAL_SCAN,
        INVALID_HANDLE_VALUE
        );
    CloseHandle(f);
    printTime();

    return 0;
}

I ran this code with a debugger and put a breakpoint right after the printTime call. In one test run of this printTime outputs 12:18:11.
In Wireshark I see the corresponding Close request being sent out at 12:18:20. So there's about 10s delay between the function call and the message being sent out.
I thought this might be due to a handle being leaked somewhere or some other process keeping a handle to the file open, but I don't think that's the case. If I halt the program right before the CloseHandle call, the sysinternals handle tool, executed in a system user shell, shows me that my process has a handle to the file
C:\Users\pepijn\Desktop>Handle.exe file1

Handle v4.0
Copyright (C) 1997-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

SmbClose.exe       pid: 7020   type: File            C8: \Device\Mup\192.168.13.163\DMTest_share\file1

Running the same command right after the CloseHandle call results in no handles being found
C:\Users\pepijn\Desktop>Handle.exe file1

Handle v4.0
Copyright (C) 1997-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

No matching handles found.

Does anyone know what could be the cause of this delay?
The closest related question on this topic I could find is FileStream.Close() is not closing the file handle instantly. The accepted answer there is that some other process might be holding on to the file. As stated above, I don't think that's the case here. I don't have any virus scanners running and I would expect any open handles to show up in the output of Handle since it's running with elevated privileges.

A: Thanks to the first answer I had a better idea of where to look. As far as I can tell this is intentional behaviour in the Windows SMB redirector. It has a cache of open file handles that are reaped every x seconds. This is done to transparently optimise applications that open/close/reopen files often. There are a number of registry keys that should influence this (see https://support.microsoft.com/en-us/kb/102981, https://msdn.microsoft.com/en-us/library/windows/hardware/dn567661%28v=vs.85%29.aspx, https://social.msdn.microsoft.com/Forums/en-US/832d395b-6e6f-4658-8dbb-120138a4cd7c/smb2-registry-settings?forum=os_fileservices) but none of these seem to result in an immediate SMB close request on CloseHandle.
The best result I've been able to get is by setting CacheFileTimeout to 0. That still leaves a delay of somewhere between 3-5 seconds (probably determined by how often the cleanup timer is triggered).

A: This is apparently due to Batch Oplock (or relative Lease) granted by the server on file open. You can prove this by inspecting Create response with Wireshark.
One of recommended tricks to avoid batch oplocks being granted si opening the same file for reading in another application right before your original CreateFile call.

A: Not exactly an answer (sorry), but I think this might happen with local files as well. I'm working on backup software that runs on Windows and Linux, and has a test suite, during which it opens an old file, reads its contents, writes a new file, closes the old one and then renames over it.
On Unix this is fine because we can rename over an existing file, even an open one. On Windows these tests fail reliably if I don't close the filehandle first. However, even if I do, the tests fail randomly about 10% of the time, like this:
TRACE:   Trying to create testfiles/0_0\backup\01234567\refcount.rdb.rfw shared using dwShareMode FILE_SHARE_READ | FILE_SHARE_WRITE
[check fix] WARNING: Exception thrown: CommonException(OSFileError) (Failed to rename temporary refcount database file from testfiles/0_0\backup\01234567\refcount.rdb.rfwX to testfiles/0_0\backup\01234567\refcount.rdb.rfw: Access is denied. (5)) at C:\projects\boxbackup\lib\backupstore\BackupStoreRefCountDatabase.cpp:200

I know that I close the file with CloseHandle() before renaming over it. The symptoms would be perfectly explained by CloseHandle() happening asynchronously, but so far my experience and this question are the only evidence I have that this might happening. And this is on a local filesystem, not SMB (I think, because AppVeyor's internals are a bit of a black box to me).
Edit: I found confirmation and explanation in another StackOverflow question and answer:

I believe this is covered in Windows Internals. The short story is that even though you've called CloseHandle on the file handle, the kernel may still have outstanding references that take a few milliseconds to close.

redpajama_set_name: RedPajamaStackExchange


The latest entrant is Parag Parikh Financial Advisory Services (PPFAS), which has a long track record in portfolio management services. PPFAS is launching its 'Long Term Value Fund'.
The fund's investments in Indian equities would be to the tune of 65 per cent of the portfolio, with the rest being invested in international equity and/or debt.
The scheme emphasises on two important aspects of investing — a value focus and a long-term perspective.
PPFAS is targeting those interested in staying invested for a period of at least five years, for meaningful capital appreciation. Also, its focus seems to be on value investing and traditional parameters such as price-earnings multiple, return on capital, cash flows and debt equity ratio, among others, to identify stocks. In other words, 'flavour of the month' or momentum stocks and sectors may not find a place in the portfolio unless valuations are compelling.
There are many advantages to the fund's intended investing style.
Remaining firmly anchored to value means that there is greater scope for capital appreciation over the long term of five- seven years, though it may mean missing out on some short rallies.
PPFAS Long Term Value does not have any specific bias towards stocks based on their market capitalisation and is likely to be a multi-cap fund. This could help the fund rove across the market for suitable choices, widening its universe.
Interestingly, for a fund that seeks to keep its investors hooked for the long term, it does not intend to charge exit loads across any timeframe. The AMC has indicated that its senior management team would invest a 'substantial' portion of their personal investible surplus in the fund.
Of course, PPFAS' track record in overseas investing is untested and hence may be a tad risky.


For many years, we get our projects based on referrals from owners, brokers, and contractors whom we have worked with and established a reputation. Peter is highly recommended for incorporating architecture design into interior decorating, resulting in a unique selection of customized furniture, fabrics, and art work.
Time and care are devoted to cooperate with craftsman and local artists regardless the scope of work, in return we have a high quality collection of projects not only recommended by our clients, but also recognized by Elle Décor, New York Time, New York Magazine, Architectural Digest, and etc.
We are constantly looking for people to join forces, this provides us with opportunities to experiment with innovative technology that can be used in all ways. Please email your requests to peter@peterpawlak.com or call us at 917.447.4099.
Quiet colors, Bold impact Renovation that Work.


text:
Order of Sujata Massey Books
Sujata Massey is an English-American author of mystery, historical fiction and suspense novels. She is best known for her Rei Shimura series. Sujata was born in England to an Indian father and a German mother. She emigrated to the United States when she was 5 and was raised mostly in St. Paul, Minnesota, although she has called Baltimore, Maryland home for over a quarter century. Sujata has a B.A. in the Writing Seminars from the Johns Hopkins University. Prior to becoming a novelist, she worked as a features reporter for the Baltimore Evening Sun. Sujata is an Agatha and Macavity award-winning author.
Sujata Massey made her debut as a published author in 1997 with the novel The Salaryman's Wife. This began her Rei Shimura series. Below is a list of Sujata Massey's books in order of when they were first released:
Publication Order of Perveen Mistry Books
The Widows of Malabar Hill (2018)
The Satapur Moonstone (2019)
The Bombay Prince (2021)
Publication Order of Rei Shimura Books
The Salaryman's Wife (1997)
Zen Attitude (1998)
The Flower Master (1999)
The Floating Girl (2000)
The Bride's Kimono (2001)
The Samurai's Daughter (2003)
The Pearl Diver (2004)
The Typhoon Lover (2005)
Girl in a Box (2006)
Shimura Trouble (2008)
The Kizuna Coast (2014)
Publication Order of Rei Shimura Short Stories Books
The Deepest Blue (2011)
Junior High Samurai (2011)
The Convenience Boy (2011)
Publication Order of Rei Shimura Collections
Convenience Boy and Other Stories of Japan (2011)
The Sleeping Dictionary (2013)
The City of Palaces (2013)
Publication Order of Short Stories/Novellas
The Ayah's Tale (2013)
Publication Order of Anthologies
Baltimore Noir (2006)
Writes of Passage: Adventures on the Writer's Journey (2014)
Notes: The Widows of Malabar Hill is also known as A Murder on Malabar Hill. Killer Femmes 2: Small Bites also includes stories by Libby Fischer Hellmann, Christine Kling, Zoe Sharp and Julie Smith. The Sleeping Dictionary was also published as The City of Palaces.
If You Like Sujata Massey Books, You'll Love…
S.J. Rozan
Sujata Massey Synopsis: The Ayah's Tale is a novella by Sujata Massey. In 1952, Menakshi walks into a Penang library during the rainy season. She discovers a book written by Julian Winslett, a British war hero and writer, who was a young boy she cared for while working as a 16-year-old nanny in Bengal. His book is about those old days, and features the two of them as named characters. The 1920s British Raj was an era of expansive homes and gardens, elegant rail travel, and very strict divisions between Indians, Anglo-Indians and the British. For the rulers of India, it was a glorious period; but for Menakshi, it's a time she'd rather forget. She'd pushed away all her old feelings for Julian… but now they're back. As Menakshi reads Julian's book, she returns to a vanished world where luxury and deprivation co-exist in the same grand bungalow – and romance breaks all rules in the hills of Darjeeling and on the Bengal-Nagpur Railway. Menakshi's own recollections add suspense as his family heads toward rupture, and she is torn between loyalty toward the children and her own secret dreams.
Order of Books » Authors » Order of Sujata Massey Books

redpajama_set_name: RedPajamaCommonCrawl


text:
Charcotus clavatum är en djurart som tillhör fylumet skedmaskar, och som beskrevs av DattaGupta, A.K. 1981. Charcotus clavatum ingår i släktet Charcotus och familjen Bonelliidae. Inga underarter finns listade i Catalogue of Life.

Källor

Skedmaskar
clavatum

redpajama_set_name: RedPajamaWikipedia


text:
Jean-Pierre Bourdeaud'Huy (30 april 1964) is een Belgische politicus voor de MR. Hij is burgemeester van Mont-de-l'Enclus.

Biografie
Bourdeaud'Huy nam voor het eerst deel aan de gemeenteraadsverkiezingen in 2000. Bij de verkiezingen van 2006 haalde zijn partij MR een absolute meerderheid en Bourdeaud'huy werd burgemeester.

Voor de verkiezingen van 2012 verenigde de oppositie van PS, CdH en Ecolo zich op een kartellijst. De MR verbeterde echter nog haar score van 2006 en haalde 68% van de stemmen. Jean-Pierre Bourdeaud'huy bleef burgemeester.

Burgemeester van Mont-de-l'Enclus
MR-politicus


text:
Home Movies Xavier
Available Formats Secure Scanned : 01/27/2023 Watch HD Download HD
Xavier (2006)
Fourth Week Films and the New Orleans Jesuit Province present Xavier, a new PBS-style documentary film on the life of the famed 16th-century Jesuit missionary Francis Xavier. Narrated by Liam Neeson, Xavier tells the missionary's compelling story through dramatizations, interviews, contemporary location shots, paintings and engravings, maps, and most importantly, the extant letters of Xavier. The film features interviews with distinguished scholars of Jesuit and Renaissance history including Ingrid Rowland (Notre Dame University), Andrew Ross (University of Edinburgh), Lourdes del Costa (University of Goa, India), Anthony Ucerler, SJ (Jesuit Historical Institute in Rome), Gauvin Bailey (Clark University) and John O'Malley, SJ, (Weston Jesuit School of Theology).
Release: Sep 29, 2006
Country: India, United States of America
Cast: Liam Neeson
Crew: Jeremy Zipple (Director), Jeremy Zipple (Producer), Jeremy Zipple (Cinematography), Jeffrey C. Johnson (Producer), Jeffrey C. Johnson (Writer)
Documentary History TV Movie
Recommendation to Watch
Germany, Year Zero


text:
NomadWarMachine
NomadWarMachine on January 30, 2022 March 15, 2022
No early morning alarms, no dashing to the station No overcrowded trains, no soulless hotel rooms No buffet lunch tables, groaning with murdered animals, smelling of dead fish No late nights home: hungry, headachy, tired The joy of staying home, when conferences are online
Open Participants 2021, relaxation, The Network
This Christmas I've had a holiday. For (most of the) last three weeks I've not worried about work, or agonised about what I should be reading and writing. And as I relaxed, I realised that this is the first Xmas that I can remember for at least 20 years that I've not had a mountain of academic work hanging over me: no piles of essays to mark; no outstanding PhD thesis to guilt trip me. This meant that I've been […]
#TDC3649, Open Participants 2021, The Network
The DS106 Daily Create is 10 years old
So here's 10 reasons why you should join us in the Daily Create Teacher owl says Daily Creates are better than applesYou too can become a leaderAnyone can be a Daily Create InfluencerIt's free, and open to anyone to participateYou will meet True FriendsYou might be able to solve #SockGateThe Daily Create is not speciesist – we have participants from across the animal kingdomYou don't need to wear a fancy uniform to participate (most of the time you don't even […]
Hogmanay, Open Participants 2021, The Network
Happy Hogmanay
It's been a year, let's hope the next one is calmer. Here's wishing you all happiness, peace and whatever you need for 2022. Thank you to all my friends, thank you for CLMOOC and DS106. Some of us have put together a calendar for 2022 which you can download from the CLMOOC blog. Doodle Bird says Happy Hogmanay to you all.
ASCILITE, Open Participants 2021, The Network
ASCILITE 2021
Last month Wendy and I gave a presentation about the collaborative poem that happened as a result of a DS106 Daily Create. It was 9am Sydney time, making it early am for Wendy and late evening (10pm) for me, but we managed to present synchronously. Here's the slides Ascilite 2021 lines of thought: the emergence of meaning through collaborations and remix from NomadWarMachine We also wrote a short report which was our submission to the conference, and that's also available […]
Burns, Obama, Open Participants 2021, st Andrews Day, tdc3610, The Network
Today is St Andrew's Day, Scottish feast day of Andrew the Apostle. no day off for me, as although it's a Bank Holiday, institutions are not obliged to honour it (boo!). The Daily Create today asks us to use an online video generator to show What Might Obama Say About The Daily Create? I am not sure that my attempt is particularly successful, but here he is reciting the last stanza of Burns' Such A Parcel Of Rogues In A […]
5 in 1 story
NomadWarMachine on October 25, 2021 October 25, 2021
Grab the 5 nearest books around you. (Novels or textbooks, whatever story you're wanting to make.) Create a story from the following: The first sentence on p. 1 of the first book.The seventh sentence on p. 5 of the second book.The first sentence of the third paragraph on p. 20 of the third book.The fifteenth sentence on p. 47 of the fourth book.The last sentence on the last page of the fifth book. Give it a catchy title! #TDC1102
Open Participants 2021, The Network, trees
We're tired of trees
NomadWarMachine on September 26, 2021 September 26, 2021
We're tired of trees. We should stop believing in trees, roots, and radicles. They've made us suffer too much. D&G A Thousand Plateaus. p 15 Of course I'm not really tired of trees – but here's some from Mugdock that are looking pretty tired.
#Talklikeapirateday, Open Participants 2021, The Network
lines of thought, Open Participants 2021, The Network
Lines of Thought for ALT21
NomadWarMachine on September 13, 2021
Last week Wendy and I gave a presentation about the collaborative poem written for a DS106 Daily Create and some of the remixes that came from it. Here's the recording and a link to the slides. Lines of thought: the serendipitous emergence of collaborative learning from NomadWarMachine
#tdc3529, Bob Ross, Open Participants 2021, The Network
Bob Ross Godzilla
Sometimes I see a Daily Create that makes me wish I had a lot of time to spend on it. Friday was one of those days. The prompt was to make a Bob Ross style voice over. Could we do a Bob Ross style voice over for a Godzilla painting? https://t.co/9vtIqVv276 #ds106— paul bond (@phb256) September 3, 2021 I only had a few minutes, so I grabbed a pic of Godzilla from Flickr and ran it through a few filters […]
darning, make do and mend, Open Participants 2021, Sashiko, The Network
Visible darning
NomadWarMachine on September 5, 2021 September 5, 2021
Many years ago mum made me a blanket for my bed. It's made from woollen garments left at the end of a jumble sale, all in my favourite pinks. I put it on my bed when we first got the cats, and Lacey sees it as her own. Recently I noticed that it had been eaten by moths, so I brought it downstairs and put it on my yarn chest, intending to mend it. Of course, it is now Lacey's […]
Mull, Open Participants 2021, The Network
Mull, again
NomadWarMachine on August 31, 2021 August 31, 2021
A week away on Mull, one of my favourite places in the world. We had a beautiful lodge – big, top quality, nestling in the middle of nowhere. The neighbours were … Not all that friendly – tolerating us, at most. Some of them were fairly shy, only letting us look at them from a distance, through a window. But the weather was kind to us, and the views were stunning. While we were there we stopped at the abandoned […]


Here comes treble! This mischievous quartet of mewers has found a stash of black acrylics and created a paw-painted G-clef masterpiece! Exhibiting rich harmonies between the splatter paint, the paw prints, and the finely tuned main composition, these musical and artistic kittens know their stuff! With the help of artist Rocio Malave-Pfeffer, this talented kitten quartet brings you the Music Kittens T-Shirt.


text:
"""Parses a ZAP input file and outputs directories to compile."""

import argparse
import pathlib
import json
import typing
import sys

# List of directories in src/app/clusters to build for server clusters.
SERVER_CLUSTERS: typing.Dict[str, typing.List[str]] = {
    'ACCESS_CONTROL_CLUSTER': ['access-control-server'],
    'ACCOUNT_LOGIN_CLUSTER': ['account-login-server'],
    'ADMINISTRATOR_COMMISSIONING_CLUSTER': ['administrator-commissioning-server'],
    'ALARM_CLUSTER': [],
    'APPLICATION_BASIC_CLUSTER': ['application-basic-server'],
    'APPLICATION_LAUNCHER_CLUSTER': ['application-launcher-server'],
    'AUDIO_OUTPUT_CLUSTER': ['audio-output-server'],
    'BALLAST_CONFIGURATION_CLUSTER': [],
    'BARRIER_CONTROL_CLUSTER': ['barrier-control-server'],
    'BASIC_CLUSTER': ['basic'],
    'BINARY_INPUT_BASIC_CLUSTER': [],
    'BINDING_CLUSTER': ['bindings'],
    'BOOLEAN_STATE_CLUSTER': [],
    'BRIDGED_ACTIONS_CLUSTER': [],
    'BRIDGED_DEVICE_BASIC_CLUSTER': ['bridged-device-basic-information-server'],
    'CHANNEL_CLUSTER': ['channel-server'],
    'COLOR_CONTROL_CLUSTER': ['color-control-server'],
    'COMMISSIONING_CLUSTER': [],
    'CONTENT_LAUNCH_CLUSTER': ['content-launch-server'],
    'DESCRIPTOR_CLUSTER': ['descriptor'],
    'DEVICE_TEMP_CLUSTER': [],
    'DIAGNOSTIC_LOGS_CLUSTER': ['diagnostic-logs-server'],
    'DOOR_LOCK_CLUSTER': ['door-lock-server'],
    'ELECTRICAL_MEASUREMENT_CLUSTER': [],
    'ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER': ['ethernet-network-diagnostics-server'],
    'FAN_CONTROL_CLUSTER': ['fan-control-server'],
    'FIXED_LABEL_CLUSTER': ['fixed-label-server'],
    'FLOW_MEASUREMENT_CLUSTER': [],
    'GENERAL_COMMISSIONING_CLUSTER': ['general-commissioning-server'],
    'GENERAL_DIAGNOSTICS_CLUSTER': ['general-diagnostics-server'],
    'GROUP_KEY_MANAGEMENT_CLUSTER': ['group-key-mgmt-server'],
    'GROUPS_CLUSTER': ['groups-server'],
    'IAS_ZONE_CLUSTER': [],
    'IDENTIFY_CLUSTER': ['identify-server'],
    'ILLUMINANCE_MEASUREMENT_CLUSTER': [],
    'KEYPAD_INPUT_CLUSTER': ['keypad-input-server'],
    'LEVEL_CONTROL_CLUSTER': ['level-control'],
    'LOCALIZATION_CONFIGURATION_CLUSTER': ['localization-configuration-server'],
    'LOW_POWER_CLUSTER': ['low-power-server'],
    'MEDIA_INPUT_CLUSTER': ['media-input-server'],
    'MEDIA_PLAYBACK_CLUSTER': ['media-playback-server'],
    'MODE_SELECT_CLUSTER': ['mode-select-server'],
    'NETWORK_COMMISSIONING_CLUSTER': ['network-commissioning'],
    'OCCUPANCY_SENSING_CLUSTER': ['occupancy-sensor-server'],
    'ON_OFF_CLUSTER': ['on-off-server'],
    'ON_OFF_SWITCH_CONFIG_CLUSTER': [],
    'OPERATIONAL_CREDENTIALS_CLUSTER': ['operational-credentials-server'],
    'OTA_BOOTLOAD_CLUSTER': [],
    'OTA_PROVIDER_CLUSTER': ['ota-provider'],
    'OTA_REQUESTOR_CLUSTER': ['ota-requestor'],
    'POWER_SOURCE_CLUSTER': ['power-source-server'],
    'POWER_SOURCE_CONFIGURATION_CLUSTER': ['power-source-configuration-server'],
    'POLL_CONTROL_CLUSTER': [],
    'POWER_CONFIG_CLUSTER': [],
    'POWER_PROFILE_CLUSTER': [],
    'PRESSURE_MEASUREMENT_CLUSTER': [],
    'PROXY_CONFIGURATION_CLUSTER': [],
    'PROXY_DISCOVERY_CLUSTER': [],
    'PROXY_VALID_CLUSTER': [],
    'PUMP_CONFIG_CONTROL_CLUSTER': ['pump-configuration-and-control-server'],
    'PWM_CLUSTER': [],
    'RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER': [],
    'SCENES_CLUSTER': ['scenes'],
    'SOFTWARE_DIAGNOSTICS_CLUSTER': ['software-diagnostics-server'],
    'SWITCH_CLUSTER': ['switch-server'],
    'TARGET_NAVIGATOR_CLUSTER': ['target-navigator-server'],
    'TEMP_MEASUREMENT_CLUSTER': [],
    'TEST_CLUSTER': ['test-cluster-server'],
    'THERMOSTAT_CLUSTER': ['thermostat-server'],
    'THERMOSTAT_UI_CONFIG_CLUSTER': ['thermostat-user-interface-configuration-server'],
    'THREAD_NETWORK_DIAGNOSTICS_CLUSTER': ['thread-network-diagnostics-server'],
    'TIME_CLUSTER': [],
    'TIME_FORMAT_LOCALIZATION_CLUSTER': ['time-format-localization-server'],
    'TIME_SYNCHRONIZATION_CLUSTER': [],
    'UNIT_LOCALIZATION_CLUSTER': [],
    'USER_LABEL_CLUSTER': ['user-label-server'],
    'WAKE_ON_LAN_CLUSTER': ['wake-on-lan-server'],
    'WIFI_NETWORK_DIAGNOSTICS_CLUSTER': ['wifi-network-diagnostics-server'],
    'WINDOW_COVERING_CLUSTER': ['window-covering-server'],
    'ZLL_COMMISSIONING_CLUSTER': []
}

# List of directories in src/app/clusters to build for client clusters.
CLIENT_CLUSTERS: typing.Dict[str, typing.List[str]] = {
    'ACCESS_CONTROL_CLUSTER': [],
    'ACCOUNT_LOGIN_CLUSTER': [],
    'ADMINISTRATOR_COMMISSIONING_CLUSTER': [],
    'ALARM_CLUSTER': [],
    'APPLICATION_BASIC_CLUSTER': [],
    'APPLICATION_LAUNCHER_CLUSTER': [],
    'AUDIO_OUTPUT_CLUSTER': [],
    'BALLAST_CONFIGURATION_CLUSTER': [],
    'BARRIER_CONTROL_CLUSTER': [],
    'BASIC_CLUSTER': [],
    'BINARY_INPUT_BASIC_CLUSTER': [],
    'BINDING_CLUSTER': [],
    'BOOLEAN_STATE_CLUSTER': [],
    'BRIDGED_ACTIONS_CLUSTER': [],
    'BRIDGED_DEVICE_BASIC_CLUSTER': [],
    'CHANNEL_CLUSTER': [],
    'COLOR_CONTROL_CLUSTER': [],
    'COMMISSIONING_CLUSTER': [],
    'CONTENT_LAUNCH_CLUSTER': [],
    'DESCRIPTOR_CLUSTER': [],
    'DEVICE_TEMP_CLUSTER': [],
    'DIAGNOSTIC_LOGS_CLUSTER': [],
    'DOOR_LOCK_CLUSTER': [],
    'ELECTRICAL_MEASUREMENT_CLUSTER': [],
    'ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER': [],
    'FAN_CONTROL_CLUSTER': [],
    'FIXED_LABEL_CLUSTER': [],
    'FLOW_MEASUREMENT_CLUSTER': [],
    'GENERAL_COMMISSIONING_CLUSTER': [],
    'GENERAL_DIAGNOSTICS_CLUSTER': [],
    'GROUP_KEY_MANAGEMENT_CLUSTER': [],
    'GROUPS_CLUSTER': [],
    'IAS_ZONE_CLUSTER': [],
    'IDENTIFY_CLUSTER': [],
    'ILLUMINANCE_MEASUREMENT_CLUSTER': [],
    'KEYPAD_INPUT_CLUSTER': [],
    'LEVEL_CONTROL_CLUSTER': [],
    'LOCALIZATION_CONFIGURATION_CLUSTER': [],
    'LOW_POWER_CLUSTER': [],
    'MEDIA_INPUT_CLUSTER': [],
    'MEDIA_PLAYBACK_CLUSTER': [],
    'MODE_SELECT_CLUSTER': [],
    'NETWORK_COMMISSIONING_CLUSTER': [],
    'OCCUPANCY_SENSING_CLUSTER': ['occupancy-sensor-server'],
    'ON_OFF_CLUSTER': [],
    'ON_OFF_SWITCH_CONFIG_CLUSTER': [],
    'OPERATIONAL_CREDENTIALS_CLUSTER': [],
    'OTA_BOOTLOAD_CLUSTER': [],
    'OTA_PROVIDER_CLUSTER': [],
    'OTA_REQUESTOR_CLUSTER': [],
    'POLL_CONTROL_CLUSTER': [],
    'POWER_CONFIG_CLUSTER': [],
    'POWER_PROFILE_CLUSTER': [],
    'POWER_SOURCE_CLUSTER': [],
    'POWER_SOURCE_CONFIGURATION_CLUSTER': [],
    'PRESSURE_MEASUREMENT_CLUSTER': [],
    'PROXY_CONFIGURATION_CLUSTER': [],
    'PROXY_DISCOVERY_CLUSTER': [],
    'PROXY_VALID_CLUSTER': [],
    'PUMP_CONFIG_CONTROL_CLUSTER': ['pump-configuration-and-control-client'],
    'PWM_CLUSTER': [],
    'RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER': [],
    'SCENES_CLUSTER': [],
    'SOFTWARE_DIAGNOSTICS_CLUSTER': [],
    'SWITCH_CLUSTER': [],
    'TARGET_NAVIGATOR_CLUSTER': [],
    'TEMP_MEASUREMENT_CLUSTER': [],
    'TEST_CLUSTER': [],
    'THERMOSTAT_CLUSTER': ['thermostat-client'],
    'THERMOSTAT_UI_CONFIG_CLUSTER': [],
    'THREAD_NETWORK_DIAGNOSTICS_CLUSTER': [],
    'TIME_CLUSTER': [],
    'TIME_FORMAT_LOCALIZATION_CLUSTER': [],
    'TIME_SYNCHRONIZATION_CLUSTER': [],
    'TRUSTED_ROOT_CERTIFICATES_CLUSTER': [],
    'UNIT_LOCALIZATION_CLUSTER': [],
    'USER_LABEL_CLUSTER': [],
    'WAKE_ON_LAN_CLUSTER': [],
    'WIFI_NETWORK_DIAGNOSTICS_CLUSTER': [],
    'WINDOW_COVERING_CLUSTER': [],
    'ZLL_COMMISSIONING_CLUSTER': []
}

def get_cluster_sources(clusters: typing.Set[str],
                        source_map: typing.Dict[str,
                                                typing.List[str]], side: str):
    """Returns a list of cluster source directories for the given clusters.

    Returns:
      The set of source directories to build.
    """

    cluster_sources: typing.Set[str] = set()

    for cluster in clusters:
        if not cluster in source_map:
            raise ValueError("Unhandled %s cluster: %s"
                             " (hint: add to src/app/zap_cluster_list.py)" % (side, cluster))

        cluster_sources.update(source_map[cluster])

    return cluster_sources

def dump_zapfile_clusters(zap_file_path: pathlib.Path):
    """Prints all of the source directories to build for a given ZAP file.

    Arguments:
      zap_file_path - Path to the ZAP input file.
    """

    client_clusters: typing.Set[str] = set()
    server_clusters: typing.Set[str] = set()

    with open(zap_file_path, "r") as zap_file:
        zap_json = json.loads(zap_file.read())

        for endpoint_type in zap_json.get('endpointTypes'):
            for cluster in endpoint_type.get('clusters'):
                side: str = cluster.get('side')
                if side == 'client':
                    clusters_set = client_clusters
                elif side == 'server':
                    clusters_set = server_clusters
                else:
                    raise ValueError("Invalid side for cluster: %s" % side)

                if cluster.get('enabled') == 1:
                    clusters_set.add(cluster.get('define'))

    cluster_sources: typing.Set[str] = set()

    cluster_sources.update(
        get_cluster_sources(server_clusters, SERVER_CLUSTERS, 'server'))

    cluster_sources.update(
        get_cluster_sources(client_clusters, CLIENT_CLUSTERS, 'client'))

    for cluster in sorted(cluster_sources):
        print(cluster)

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--zap_file',
                        help='Path to .zap file',
                        type=pathlib.Path)

    args = parser.parse_args()

    dump_zapfile_clusters(args.zap_file)

    sys.exit(0)

if __name__ == '__main__':
    main()

redpajama_set_name: RedPajamaGithub


text:
Q: Using a conditional statement to send to different receiver actors I am new to akka and could use a little help on figuring this out, also please forgive me if I call something by the wrong name.  I have a json document that needs to go to one of two receivers based on whether or not a specific field is true.  I have been able to publish to various single consumers using:
Source(publisher).map{cmd =>
  println("****************** Pick up message"+cmd)
  val cmdAst = cmd.toString.parseJson
  cmdAst.convertTo[FormAdded]
}.runWith(Sink.actorSubscriber(ProcessorActor.props))

I have tried inserting a conditional statement like this:
var actorSubscriber = ProcessorActor.props

Source(publisher).map { cmd =>
  println("****************** Pick up message" + cmd)
  val cmdAst = cmd.toString.parseJson
  cmdAst.convertTo[FormAdded]
    if (cmdAst.convertTo[FormAdded].toLocation.toString().equalsIgnoreCase("Main")) {
      actorSubscriber = EventActor.props
    } else actorSubscriber = ProcessorActor.props
}.runWith(Sink.actorSubscriber(actorSubscriber))

Everything compiles and runs without errors, but when a form is submitted it never picks up and simply times out.
I have also tried to directly sink the subscriber the following way to the same result:
Source(publisher).map { cmd =>
  println("****************** Pick up message" + cmd)
  val cmdAst = cmd.toString.parseJson
  cmdAst.convertTo[FormAdded]
    if (cmdAst.convertTo[FormAdded].toLocation.toString().equalsIgnoreCase("Main")) {
      (Sink.actorSubscriber(EventActor.props)
    } else (Sink.actorSubscriber(ProcessorActor.props)}

Thank you

A: This can be accomplished with a Graph using a Broadcast and two distinct Sinks.  Here is an example using a Source of integers and splitting them to two different Sinks, one for evens and one for odds.
import scala.concurrent.duration._
import akka.stream.scaladsl.{Source, Sink, Flow, FlowGraph, Broadcast, Merge}
import akka.actor.ActorSystem
import akka.stream.ActorMaterializer

object TwoSinks extends App {

  implicit val actorSystem = ActorSystem()
  implicit val materializer = ActorMaterializer()

  FlowGraph.closed() { implicit builder: FlowGraph.Builder[Unit] =>
    import FlowGraph.Implicits._

    val source = Source(1 to 10)

    //beam splitter
    val bcast = builder.add(Broadcast[Int](2))

    def isEven(i : Int) = i % 2 == 0

    val evenFilter = Flow[Int].filter(isEven)
    val oddFilter  = Flow[Int].filter(!isEven(_))

    val evenSink = Sink.foreach[Int](i => println(s"evenSink received : $i"))
    val oddSink  = Sink.foreach[Int](i => println(s" oddSink received : $i"))

    source ~> bcast ~> evenFilter ~> evenSink
              bcast ~> oddFilter  ~> oddSink
  }.run()

  import actorSystem.dispatcher
  actorSystem.scheduler.scheduleOnce(10 seconds){actorSystem.shutdown()}
}//end object TwoSinks

You can easily extend this example to use a Sink.actorSubscriber which use Actors within your Sinks instead of println.  Using your specific code:
FlowGraph.closed() {implicit builder: FlowGraph.Builder[Unit] =>
  import FlowGraph.Implicits._

  def pickupMsg(cmd : String) =
    {println(s"****************** Pick up message: $cmd") ; cmd}

  //I don't know the type of cmdAst so I'm using "CmdAstType"
  type CmdAstType = ???

  def convert(cmd : String) : CmdAstType = {
    val cmdAst = cmd.toString.parseJson
    cmdAst.convertTo[FormAdded]
    cmdAst
  }//end def convert

  val source = Source(publisher).map(pickupMsg).map(convert)

  def isEvent(cmdAst : CmdAstType) : Boolean = cmdAst.convertTo[FormAdded]
                                                     .toLocation
                                                     .toString()
                                                     .equalsIgnoreCase("Main")

  val eventFilter     = Flow[CmdAstType].filter(isEvent)
  val processorFilter = Flow[CmdAstType].filter(!isEvent(_))

  val eventSink     = Sink.actorSubscriber[CmdAstType](EventActor.props)
  val processorSink = Sink.actorSubscriber[CmdAstType](ProcessorActor.props)

  val bcast = builder.add(Broadcast[CmdAstType](2))

  source ~> bcast ~> eventFilter     ~> eventSink
            bcast ~> processorFilter ~> processorSink

}//end FlowGraph.closed()

A: You can't make the Sink depend on the element: the flow already exists and contains fixed Source and Sink before it runs and begins to get elements from the source (there are ways to fan-out and have multiple sinks but none of them do what you want).
What you can do is have one Sink which will forward the elements it receives to different actors depending on the element. E.g. you can write a DispatchActor which looks at the messages it receives and sends them either to EventActor or ProcessorActor, and use it with Sink.actorSubscriber(DispatchActor.props).