OSCE Secretary General Thomas Greminger (r) meets Jens Stoltenberg, NATO Secretary General, 21 September 2017.
The steady development of close co-operation between the OSCE and the North Atlantic Treaty Organization (NATO) is one of the most significant features of post-Cold War patterns in inter-organizational co-operation.
Relations between the OSCE and the North Atlantic Treaty Organization (NATO) have been crucial in developing the security architecture of post-Cold War Europe. Since the beginning of the Helsinki process, NATO has significantly contributed to the debate within the OSCE (then Conference on Security and Co-operation in Europe) on developing the OSCE Security Model. NATO's important role in promoting security in Europe is emphasized in a number of OSCE documents, such as the 2003 OSCE Strategy to Address Threats to Security and Stability in the Twenty-First Century.
After the tragedy of the 9/11 attacks, relations have continued to expand, reflecting the new focus on agendas set by the OSCE participating States at the recent meetings of the OSCE Ministerial Council and by the NATO Member States at the NATO Istanbul Summit. The Istanbul Summit Communiqué states that "NATO and the OSCE have largely complementary responsibilities and common interests, both functionally and geographically. NATO will continue to further develop co-operation with the OSCE in areas such as conflict prevention, crisis management and post-conflict rehabilitation."
In the field, since its deployment in July 1999, the OSCE Mission in Kosovo has developed close links with the NATO-led Kosovo Force (KFOR), which provides a secure environment for the international community in the province. The NATO-led Stabilization Force (SFOR)in Bosnia and Herzegovina and the OSCE Mission to Bosnia and Herzegovina worked closely together to implement the Dayton Peace Agreement.
On regional issues, the combined efforts of the EU, NATO and the OSCE have been instrumental in preventing crises from escalating and in stabilizing the situations in both Southern Serbia in 2000-2001 and the former Yugoslav Republic of Macedonia in 2001. For example, joint efforts facilitated the signing of the Ohrid Framework Agreement on 13 August 2001.
In 2004, 2005 and 2014, the NATO-led International Security Assistance Force in Afghanistan provided substantial security assistance to the OSCE's Election Support Teams that were deployed to Afghanistan for the Presidential and Parliamentary elections respectively.


text:
UN Human Rights Report: Syria 'exterminating detainees'
by SOFREP Feb 9, 2016
They accuse President Bashar al-Assad's regime of crimes against humanity, in a report for the UN Human Rights Council. The study says both loyalist and anti-government forces have committed possible war crimes. Many detainees were tortured, some were beaten to death, and others died from lack of food, water, or medical care. The findings come from interviews with hundreds of witnesses and cover the period since the start of anti-government protests in March 2011. The report says thousands of detainees have been killed while in the custody of warring parties during that time.
Read More- BBC
Image courtesy of BBC
Suddenly the world discovers Yemen as the Gulf Cooperation Council unravels: torture, black sites, claims of US involvement
Amnesty International accuses Assad regime of mass executions in military prison
UN holds an emergency meeting on the suspected use of chemical weapons in Syria
Fighting in Aleppo ends in Syrian victory amid allegations of civilian 'slaughter'
Amnesty says Syria executes, tortures thousands at prison; government denies
The vile legacy of ISIS: 200 mass graves unearthed

redpajama_set_name: RedPajamaCommonCrawl


text:
Catalog start Author + Title " Haggadah." Remove constraint Author + Title: " Haggadah." Library Art & Architecture (Bowes) Remove constraint Library: Art & Architecture (Bowes)
Art & Architecture (Bowes)[remove]2
Epstein, Marc Michael, 1964-1
Narkiss, Bezalel1
N - Visual Arts 2
ND - Painting 2
Jewish illumination of books and manuscripts2
Golden Haggadah1
Haggadah1
Illumination of books and manuscripts, Medieval1
Judaism1
Manuscripts, Hebrew1
Illustrations1
British Library1
Sort by year (old to new)
1. The Golden Haggadah [1997]
Narkiss, Bezalel.
London : British Library, 1997.
Book — 71 p. : col. ill. ; 28 cm.
The "Golden Haggadah" is one of the outstanding works among the British Library's collection of Hebrew manuscripts. The Haggadah, a type of prayer book, is the order of service for the celebration of Passover-eve in the home. Traditionally, it is the most richly decorated and illuminated of all Jewish prayerbooks. Written and illuminated in Northern Spain, probably Barcelona, in around 1320, the "Golden Haggadah" is a superb example of a Spanish style of the Haggadah, opening with several full-page illustrations narrating the story of the Exodus and the Passover ritual. This volume provides an account of the manuscript's creation and history. It reproduces all the manuscript's major illustrations and provides an accessible introduction to Hebrew manuscript art as well as an authoritatie commentary on the content and illustrative scheme of the "Golden Haggadah".
(source: Nielsen Book Data)
Art & Architecture Library (Bowes)
Status of items at Art & Architecture Library (Bowes)
ND3380.4 .H33 G64 1997 Unknown
2. The medieval Haggadah : art, narrative, and religious imagination [2011]
Epstein, Marc Michael, 1964-
New Haven : Yale University Press, c2011.
Book — xi, 324 p. : col. ill. ; 29 cm.
A note on the manuscripts
introduction. Jewish visual culture as memory's mirror
The Birds' Haggadah
Birds' Head revisited
Socioreligious stratification
Narrative sequence
Eucharistic polemics
Metahistorical connections
Eschatological hopes
The Golden Haggadah
Women hidden in plain sight
The Rylands and "Brother" Haggadot
Siblings : identical or fraternal?
Iconography in dialogue
In this beautifully illustrated book, historian Marc Michael Epstein explores four magnificent and enigmatic illuminated haggadot-manuscripts created for use at home services on Passover. They include the earliest known surviving illuminated haggadah: the Birds' Head Haggadah, made in Mainz around 1300, in which many of the faces on the human figures depicted throughout are replaced with those of birds. Also presented is the Golden Haggadah from Barcelona, c. 1320-30, along with two Spanish "siblings, " the Rylands Haggadah and its purported Brother, made between 1330 and 1340, which share similar iconography and style. Though the importance of these manuscripts is universally acknowledged, Epstein examines them with fresh and creative eyes, offering insightful solutions to long-unresolved questions concerning the meaning of the art contained within them. In addition, he uses these treasured volumes as a springboard to address broader issues in the study of Jewish thought and culture.
ND3380.4 .H33 E68 2011 Unknown


← Dying reporter's memoir goes to Universal — Who could play her?
It's been thirty years since Alfred Hitchcock died, and more than fifty years since his most famous film — "Psycho." So while his name, reputation and image remain in the public consciousness, generations have grown up not knowing much more than that about him.
McLaughlin can't recall ever "seeing this sort of creative relationship before" on the screen. But Mirren can.
McLaughlin built Alma's role up in the script for "Hitchcock" once Mirren was floated as a possible co-star, "and you've got to give someone of her stature something interesting to play." Though the film takes liberties with Hitchcock's battle with the flu during the filming of 'Psycho' and puts Alma on the set, directing in his stead, and invents a possible romantic dalliance of her own to match her husband's fetishizing his blonde leading ladies, McLaughlin didn't have to invent much to put the director's "toughest audience" front and center in the film. And the relationship he captures can't have been an easy one in real life.
Mirren met the real Alfred Hitchcock back when he was casting one of his last films, "Frenzy," a brief audition that did not go well thanks to Hitch's pre-conceived casting notions and what Mirren describes as her young "arrogant and ignorant" attitudes about who constituted a great director – Fellini, Bertolucci, et al.
f the film sends people out to rent "Psycho" to try and recall what all the fuss was about with this ground-breaking/censorship shattering horror film was about, that's to be expected, McLaughlin says. And if Mirren's performance in it sends film buffs back to their Hitchcock libraries, maybe to re-read this biography or that one, that's a good thing, too — Mirren adds.


Full Moon Fortunes Slot, licenced through Playtech, for free with no download.
Full Moon Fortunes is a 5 reel, 20 pay line slot game with a werewolf theme from the software developers at Ash Gaming. The game starts with an intro that will get players in the mood before they are taken to the reels which are blood soaked and accompanied with spooky music and other howling sounds. The wild is depicted by the howling wolf symbol and can substitute for all symbols except the scatter. Players that manage to land 5 wilds will be rewarded with the 500 coin jackpot. There is a great feature on this slot also and this is when the full moon appears on reel 5, all the symbols that show Dr Blackwood will turn into a wild werewolf and not only this the wild werewolf also increases the multiplier to 5x, as with the regular wild though this will only substitute for the regular symbols. Players that land three or more Tombstone Bonus icons anywhere on the reels will be rewarded with the free spins round.
Full Moon Fortunes 4.33 average 5 based on 3 votes 3.


Woo-Hoo! I Found A New Web Host!
You already know what I've been going through with my web hosting issues lately, so I'll spare you the recap (you can view my previous posts) and get right into it.
I received a lot of great referrals and have spoken to a TON of hosting companies over the past 2 weeks: BlueHost, MediaTemple, Choopa, DreamHost, SurpassHosting, GoDaddy, etc. The list literally goes on and on.
I contacted ALL of them. It took me forever but I did it. One reason was because I wanted to really get my feet wet and find out what was being offered but also because I wanted to understand what I needed.
I'm not the most technical person in the world but I can tell when someone is just trying to sell, so I contacted them all to ask them the same questions over and over again so I can hear multiple replies and learn about this stuff.
They say the only way to learn something is to ask questions; so that's what I did.
The main thing I learned from all this: the web hosting industry might be very competitive, but it's not very innovative.
What I mean by that is, they all pretty much operate the exact same way. It's more or less the same technology, used in the same ways and only priced & marketed differently to drive competition.
They're not setup to "think differently".
"Unlimited" is just a sales pitch to attract people like me who don't want to look at a bunch of technical specs but just assume that we'll be covered.
There's always a cap, but if you are on a shared account, chances are your website won't see the type of traffic to ever see overages anyways.
Given the fact that there is no real "unlimited bandwidth", that still doesn't make note of system resources.
On your computer, you might be browsing the net on Firefox, listening to music on iTunes, chatting with friends on AIM and typing a document in Word. Each of these programs uses up resources on your computer.
Same thing applies to web servers, but instead of just one person using these programs, it's everybody who visits your website that uses these programs.
Not only that, if you're on a shared account, you're probably sharing that one server with about 700 other customers. So imagine all of your visitors, plus the visitors of all those other 700 customers.
That's a massive flood of people.
So that entire audience is accessing your site and therefore using a piece of your server's resources. On a shared account, you only get a certain percentage of those resources allocated to you. By adding resource hogging plugins or getting a spike in traffic, you can end up going over that percentage and your account will be temporarily suspended so that the other 700 sites on your server remain uninterrupted.
Imagine the amount of traffic you get from the front page of Digg.com. That amount of traffic will definitely create major downtime for you like it did for me.
My account was knocked off for a good 20 hours as I searched for solutions while still doing my best to do my actual work, which at the time was managing 3 short-staffed events (hell on earth).
My old webhost, HostGator, continuously tried to sell me a $300/month dedicated server as a "solution".
I barely pay $300 a year right now!
I kept trying to explain to them that this was the first time my site has ever experienced that type of traffic and that I truly do not require a dedicated server.
This is a PERSONAL blog. I don't update it multiple times a day or even daily.
Hell, sometimes I don't even post for a week or two.
I don't sell ads on here and I don't put any budget into promoting it. Only word-of-mouth & word-of-mouse. That's it.
Keeping that in mind, while my web traffic is decent for a personal blog, it in no way compares to NecoleBitchie.com or NahRight.com. So a $300/month dedicated server would be a little overkill for my needs; especially since I don't run any ads on here like I mentioned.
People shouldn't have to conform to technical limitations; technical solutions should be made to meet consumer needs.
So before leaving a comment or sending me an email telling me about how servers are built and why there is nothing on the market to cater to my needs; understand that I'm not the type of person to accept those kinds of limitations. That doesn't make any sense to me.
As long as it takes, I will hunt for a solution.
All I wanted is a hosting account where I could be equipped with enough specs (bandwidth, storage, etc) to keep me running smoothly on a daily basis and also be equipped to handle occasional spikes in traffic like the one I experienced.
For the technical reasons I've specified above, no web hosts were able to attend to my needs and all started pitching me $300/month accounts or told me to take my chances with a shared account but will experience another suspension if I get any more Digg-like spikes.
So basically, pay a ton or hinder your site's potential.
Luckily, I was able to find one company that works differently; MediaTemple.
Apparently, they created their own system to handle situations like this. Instead of being setup on a server with limited resources, I'm setup on a "cluster grid" with access to resources on other systems throughout that grid. So my site can access the resources it needs whenever it needs it.
Think of it like this: rather than only having access to the clothes in your closet (most hosting companies), you can have access to all the clothes in the mall (mt).
Interestingly enough, when I spoke with a few of the web hosts mentioned above, some of them even recommended that I go with MediaTemple. I didn't understand why until a few of them began to defining me as a "prosumer with custom needs", which they (and apparently 99% of the hosting companies) are not equipped to service.
Not because they're not good; but because they're not setup to serve this niche (even though I believe this isn't as niche as they may assume).
Most hosting companies don't create their own technology; they just buy, maintain and sell it in packages.
Luckily, MediaTemple is setup differently.
This isn't an ad for them; rather this is my expression of relief that I was able to find what I was looking for.
Many people have been messaging me about this whole ordeal and asking which host I ended up choosing and why; mostly because they face similar issues and need answers.
Well, MediaTemple was my choice. So far, they've been great at helping me get all setup and I hope to see it continue down this lane.
I didn't know ANY of that. Thanks for the quick rundown. I think I might have to switch also!
It looks like someone did their homework. You pretty much nagged everything down when it comes to web hosting. I think you made a great choice going with MediaTemple.
@Frank – No problem. I know it's not the most technical rundown, but my intention was to just simplify 2-3 points to non-technical users like you and me. Thanks for your comment and good luck on your switch.
@Clyde Smith – That's a great idea Clyde. I checked a few webhost review boards to check what others' experiences were. I noticed a ton of complaints about HostGator, so at least I knew I wasn't alone on that one. MediaTemple seemed to have gotten great reviews across the board and they were they only company I found that offered the solution I was looking for. I'm happy I went with them.
@Upscale Swagger – Thanks man. Yeah, I wanted to make sure that I understood what it was that I needed and what my best options were. It seems like most hosting companies are just not setup to accommodate users like me and end up selling dedicated accounts to people who just don't need it. I've already spoken to a quite a few people who were convinced to go with dedicated and after showing them the MediaTemple options, they're making the switch and will be paying FAR LESS than they are now. It's just too bad most general users don't know the facts & options.
@John Morris – Hey John. If you check, you'll actually notice that I linked the image straight to your blog post. I tried placing a caption however the caption border doesn't display around it (I have to look into my stylesheet to see why), so I didn't include text as it clashes with the body of the actual post. The image still links back to your post though. If you prefer that I not use it/link to your post, just let me know and I'll remove it asap. Thanks.
"Instead of being setup on a server with limited resources, I'm setup on a "cluster grid" with access to resources on other systems throughout that grid. So my site can access the resources it needs whenever it needs it.": I'm sorry but you are just too naive. This is their marketing pitch but it isn't true… Your website will not use the power from many servers and will not handle more traffic than on any other shared hosting.
"I hate marketing terms with the burning passion of a thousand suns.
^Moe^ Thanks for the post. I learned a lot and will keep this in mind when I do my website.
I'm the owner of hostgator and I'm truly sorry for your experience. It is very strange indeed that we tried pushing you to a $300 a month server. No one on my staff is paid based off commissions, nor is anyone required to hit any type of sales numbers.
Whomever told you that you needed a dedicated server must have truly believed that. You most likely crashed the shared box you were on.
Do you have a ticket number I can review on this? If not could you email me your email address to brent@hostgator.com and I'll be able to look it up?
I'd love to review this situation. Thanks so much!!
I was thinking about this situation for my blog because I used hosts like GoDaddy and such. I know TechCrunch uses MediaTemple so its the main reason why i would use it. You get a link form Digg or Yahoo front page and your blog is toast.
I do think though another solution wold be to blog on wordpress.com. its free and you don't have to worry about your blog being down.
@John – Thanks for your comment but as I mentioned in my blog post; I don't really care too much about the detailed technical specs of this. The most important thing to me is results and from everyone whom I have spoken to who is hosted with MediaTemple on the (gs) account, they have all echoed the same sentiment of contentment.
Amongst the several MediaTemple customers I have spoken to, about 7 of them have been featured on Digg.com, and not a single one of them had their service interrupted even momentarily. The only person whose blog did not remain up did so herself because after she received notice from MediaTemple of possibly going over her allocated GPUs and end up paying some overages, she chose to switch it off for a day in fear of excessive overage fees. I was concerned about how excessive these overage fees may be, but from all the customers I've spoken to who've undergone a similar experience, it's not significant enough of a fee for me to switch my site off and now at least I have the option of keeping my site up even if I have to just pay a little bit more when experiencing a major traffic spike.
@Casey – Thanks and good luck launching your website. Definitely send me the link once you decide to start it so I can check it out!
@Brent – Thanks for your comment Brent. Email sent.
@Phil – You're right and my blog was toast for about 20 hours unfortunately.
I looked into WordPress.com and Blogger before launching my blog but personally, I prefer the flexibility of having it self-hosted. If you do switch, definitely look into MediaTemple.
Most customers don't care about the technical reason a website is down, they just want it up and up now! After it is up, they'll want to know the techy stuff if they are techs.
Previous post: Wow HostGator. Just Wow.


Cheney School District is currently taking applications for substitute school bus drivers. This is a part time job and great opportunity for college students, retired persons and stay at home parents looking to make some extra money. Interested persons may apply at the Cheney School District Transportation Department at 2736 N Sixth St, Cheney WA, any questions please call 559-4523.


text:
States are seeing record numbers of new cases reported as hospitalization numbers remain elevated.
There is hope on the horizon as TidalHealth has become a distribution center for a new COVID-19 treatment and vaccine preparations have been underway in response to promising trial results from at least three major drug companies.
Gov. Larry Hogan is expected to provide an overview of Maryland's vaccination plan Tuesday, Dec. 8.
Here's an overview of COVID-19 data from Maryland, Delaware and Virginia from the seven days ending Monday, Dec. 7:
Maryland set a new record in the past week for daily cases reported.
Twice there were upwards of 3,000 infections added to the state's COVID-19 case tally in a single day. This last week has been the first time the state has added more than 3,000 cases in a 24-hour period.
The 3,792 cases reported for Friday, Dec. 4, are a new daily high for Maryland. The previous record was a 2,910-case increase from Nov. 19. Before November, the state had yet to report more than 2,000 cases in a day.
There was also a new high in terms of testing volume, which blew past 50,000 tests administered for both Dec. 3 and Dec. 4.
The state's COVID-19 case count surpassed 200,000 in the last seven days, reaching 217,329 as of Monday morning. There were 18,959 infections added over this period, an increase of roughly 9.6%.
The Lower Eastern Shore saw a combined 618 more residents test positive for the virus. The largest portion of those new cases is from Somerset County, where there has been a substantial uptick in cases associated with Eastern Correctional Institution in Westover.
More:Somerset County has Maryland's top COVID-19 positivity rate. Where cases are coming from
As of the Maryland Department of Public Safety and Correctional Service's Friday, Dec. 4, data, 442 inmates and 125 staff members have tested positive for the virus. That's 249 new cases reported compared to data from Friday, Nov. 27, with cases having doubled during this time among inmates.
Since last Monday, Wicomico County has gained 241 cases, Worcester has gained 112 and Somerset has gained 265.
Here's where the case totals now stand in these three counties, with virus-related deaths in parentheses:
Wicomico County - 3,681 (60) +241
Worcester County - 1,595 (39) +112
Somerset County - 1,183 (9) +265
Wicomico County officials have also begun to report inmates testing positive at the local jail. A Dec. 2 news release shows six cases identified among the inmate population.
There had been at least five cases in the Wicomico County Detention Center's staff up to that point, according to Maryland Department of Health data, but this marks the first cases for inmates.
"The Detention Center has very stringent Covid-19 protocols in place. The facility personnel are partnering with the Wicomico County Health Department as they work towards containing, mitigating and contact tracing to limit the possibility additional cases," the release stated.
Somerset County has the third highest positivity rate in Maryland as of Monday morning at 16.9%. It's one of five Maryland jurisdictions with a rate above 10%. Wicomico and Worcester counties are both below the Maryland positivity rate of 7.89%.
There are 1,561 COVID-19 patients hospitalized across the state, which is 34 more beds filled compared to last Monday.
More:TidalHealth gets COVID-19 treatment to help those at risk for severe symptoms
More:Maryland to get 'tiny fraction' of COVID-19 vaccine needed in first round: Gov. Hogan
However, current hospitalizations have come down from a high over the weekend of 1,598 reported Saturday.
The metric has yet to exceed the record level reached at the end of April of 1,711.
The number of patients in intensive care has increased from 344 to 388. There was a slight drop in ICU patients from the 393 listed for Sunday.
Mid-November saw current hospitalizations shoot above 1,000 for the first time since early June, and they have been trending upward ever since.
Virginia's Eastern Shore Health District has reported another 68 COVID-19 cases throughout the past week.
There were 62 new cases identified in Accomack County, where 1,408 residents have tested positive for the virus, and six in Northampton County, where 358 residents have contracted it.
The statewide case total increased by 21,035 infections to 258,870, which is upwards of 4,000 cases more than what was added to the state's tally for the week prior.
More:Another Accomack school shuts down after COVID outbreak
There have been no virus-related deaths reported on the Eastern Shore over the past seven days, but two more COVID-19 patients have been hospitalized from Accomack.
The two Shore counties have reported a combined 159 virus-related hospitalizations throughout the pandemic — 109 from Accomack and 50 from Northampton.
The number of hospitalized COVID-19 patients across Virginia sits at 1,885, with 227 more hospitalizations listed over the last seven days.
Current hospitalizations are now significantly higher than they were at the pandemic's May peak of 1,625. The metric reached as high in the past week as 1,969 hospital beds filled by COVID-19 patients, but has come back down.
COVID-19 outbreaks within the Eastern Shore Health District have increased to 19 — four in long-term care facilities, 11 in congregate settings, one in a correctional facility, one in a health care setting and two in K-12 schools.
There has been one additional outbreak reported in a congregate setting. The Virginia Department of Health defines this as "an environment where a number of people reside, meet or gather in close proximity for either a limited or extended period of time." It could be a homeless shelter, group home, prison, detention center, school or workplace.
There have been 903 COVID-19 cases associated with the region's outbreaks, which is an increase of nine over last Monday's total.
Monday is the third day in a row that Delaware's COVID-19 hospitalizations have been reported at more than 300.
Current hospitalizations stood at 322 as of Monday's data release, representing 79 more patients across the state than there were a week ago.
The state's case total has reached 40,711. Another 5,057 were added over the past week, bringing the seven-day average for new cases to 721. Last Monday, that average was at 428.
More:Delaware is reporting more than three times as many COVID-19 cases each day as it did one month ago
More:Coronavirus in Delaware: Hospitalizations top 300 for the first time since April
The seven-day average for Sussex County for new daily cases has entered the triple digits, spiking to 129.4.
The county's rolling case average has not been above 100 since mid-May, and has not met or exceeded Monday's level since late April.
Sussex gained 919 cases and six virus-related fatalities over the last week.
The lower Delaware county's tally of infected residents is up to 11,355, while the death toll sits at 268.
The current hospitalizations for Sussex have gone from 55 to 67. The first half of June was the last the time COVID-19 hospitalization numbers were at that level for the county.
© 2021 www.delmarvanow.com. All rights reserved.


text:
CBN received over 8m applications for COVID-19 loans
CBN: We received more than 8 million applications for COVID-19 loans
The Central Bank of Nigeria (CBN) claims to have received more than 8 million applications for a COVID-19 mortgage loan (TCF).
Osita Nwanisiobi, CBN's communications director, announced this during a one-day discussion on setting up a working group and civic group in Enugu province.
This site was launched in 2020. April As funding to support households and small and medium-sized enterprises (SMEs) in COVID-19 affected countries is everywhere.
Apex Bank has updated its application.
According to Nwanisiobi, the TCF has helped Nigeria emerge from the recession and achieved current gross domestic product (GDP) growth of 5.01 percent.
He added that more than 600,000 applicants have so far benefited from various COVID-19 protection programs.
"If you were to say that there are people who still want a COVID-19 site and haven't received it, honestly, I would agree with you," Nwanisiobi said.
"We started with about N50 billion. We moved from N100 billion to N300 billion. Today, we are talking about N400 billion. Now the number of applications that we have is over eight million, and we have done over 600,000.
"The governor (Godwin Emefiele) is passionate because he has also seen that what we have done on this issue is also helping Nigerians emerge from the recession and declare the GDP we have, and so he plans to do more."
Nwanisobi added that CBN has carried out 37 service projects, particularly in agriculture, to boost the economy, reduce funding and create more jobs for young people.
The scheme (TCF) is disbursed through the Nigeria Incentive-Based Risk Sharing System for Agricultural Lending Microfinance Bank (NMFB) and the exit day for this intervention is on December 31, 2024.


text:
News | Columns | Obituaries | Classifieds | Guides | Subscribe | Ad Rates
Current Obituaries | Obituary Archives
Dennis Oslowski, 71
Dennis (Hick) Wayne Oslowski, age 71, of McGrath, formerly of Delano, went home to be with his Lord and Savior, Jesus Sunday, July 7, 2019, after a long and hard-fought battle with prostate cancer.
Funeral services will take place Monday, July 15 at 10 a.m. at Isle Evangelical Free Church with the Rev. Kerry Johnston officiating. Interment will be at Camp Ripley, Little Falls.
Arrangements are with Mille Lacs Funeral and Cremation Services, Isle, MN.
Dennis was born Jan. 11, 1948, in Watertown, to Lee and Viola Oslowski.
He graduated from Delano High School, and then was drafted into the US Army, serving mostly in Germany.
Dennis had a tremendous work ethic, doing many different jobs. Some highlights were a maintenance supervisor job for Litton Microwaves, and being a telephone installation service manager for USEB (United States Equipment Brokers) for many years.
His main vocation was carpentry, and he worked as a licensed independent contractor for the last 15 years before retirement.
Dennis played fast pitch and modified softball for Delano and surrounding towns. He also worked as an umpire for the ASA for five years. He was a member of the Delano Bowling League, bowling the first 60 series in the new bowling alley.
He loved the outdoors and wildlife, hunting, fishing, gardening, and his sports teams including the Wild, Twins, Vikings, and the Isle Huskies, watching his boys play.
Dennis loved caring for the many animals at H&H Goat Haven farm for the last 13 years. He was active with his church and helped with the AWANA program for many years. Dennis truly loved all of the children he worked with.
A man of his word, honest, and having integrity, Dennis always prayed for his country and the military. Above all, he loved his family and took in other children as his own.
Dennis is now reunited with his parents, Lee and Viola Oslowski; his sister, Peggy Kolasa; and his stepson, Tronn Paulsen.
He leaves behind his wife, Helena Oslowski; sons Aaron and Hunter Oslowski, daughter Tash (Jesse) Laudenbach; stepson Ryan (Charissa) Yollen; three grandchildren: Laney, Jadde, and Alex; his siblings, Donny (Brenda) Oslowski, Lee (Arlene) Oslowski, Gail Loeffler, and Gary (Cathy) O'Borsky; other relatives, and his church family.
Dennis (Hick), you will be missed beyond words and we look forward to the day we meet again.
Herald Journal | Dassel-Cokato Enterprise Dispatch | Delano Herald Journal
© Herald Journal Publishing, Inc.


... but managed to come back for the final seven games of the regular season, ... He joined the club during their winter break in Dubai, ... DAVID BECKHAM.
Bend It Like Beckham (2002) ... Cup Final Referee ... Professional Services. Get more at IMDbPro; Add posters & stills to this title; Explore More.
Beckham's career began when he signed a professional contract ... David Beckham was sent off in the quarter final against ... and was visible during the games.
Game Details. Home: 8/5 Draw: 5/2 Away: ... David Beckham named 'Sexiest Man Alive' ... Next season may be last as player. LA Galaxy Nov 2, 2015 ESPN staff. Read.
... Soccer Questions including "Who invented the game called ... with some video "how to become a professional soccer ... on a field during a U7 soccer game?
As a young player, I once asked how far a soccer player ran during a game. This guy from "the old country" said 10 miles. So I divided 10 miles by 90 minutes.
Young footballers given chance to become the next Becks?


There was a time when beauty brands were far behind in the digital landscape; not anymore. Through social media and digital technology many companies are now giving consumers more access to their culture, and communicating consistently across different media channels. The emergence of digital technology and social media changed retail environments; suddenly, brands had to replicate their expertise, services, and brick and mortar experiences online. In the late noughties, companies began to innovate, e-commerce came to prominence, and consumer demand for the best products changed retail production cycles. Now in 2013, beauty brands must stay engaging and make sure their consumers feel connected to the brand, and confident they can make secure online purchases. To learn about some of the best tech-savvy beauty brands, click though to style notes.


TY4follow @TheLmao0! My #socialentrepreneur #socialenterprise #socent – This website is a DBA of Mr. John Carson Lester Jr & the TeleDistributors Call Center. Click the COG to the TOP LEFT to SWITCH between our MANY THEMES!
TY4follow @TheLmao0! My #socialentrepreneur #socialenterprise #socent @ https://t.co/SgTj5PG8g9 What do U do?


These white mother of pearl shell and sterling silver earrings are a pretty textured diamond shape.
These white mother of pearl shell and sterling silver earrings are a pretty textured diamond shape. The mother of pearl shell is set in silver at the top and features a hook style ear wire.
These large earrings are approximately 2" long ( including the earwire) by .9" wide. Please note that the dime is not included but shown to help you gauge the size of the earrings.
These earrings would make a great gift for anyone who likes large earrings, shells, the beach, or handmade sterling silver jewelry.
The back of these earrings are stamped 925 so you can rest assured you are getting genuine sterling silver jewelry. These earrings come with our original store tag as well as our store's gift box that is great for giving or storage for years to come.


BAKERSFIELD — The murder trial of Sabrina Limon began Monday, eight months after her former lover Jonathan Hearn pleaded guilty to voluntary manslaughter — for the 2014 shooting death of Limon's husband at a BNSF Railway facility in Tehachapi — and agreed to testify against her.
Prosecuting attorney Eric Smith told jurors the relationship between Hearn, 27, of Hesperia, and Sabrina Limon, of Helendale, began casually in late 2012, but had intensified by early 2014 to the extent that they desired a life with 38-year-old Robert Limon out of the picture.
Smith said a more than $300,000 life-insurance policy and "lifelong benefits from the railroad" was the financial motive behind an alleged decision to kill Robert Limon while he was at work.
Meanwhile, defense attorney Richard Terry said the only evidence of a financial motive lived in the fact that Sabrina Limon received benefits after her husband's death.
Terry did not dispute the affair; however, he said Sabrina Limon, 37, was manipulated by the "highly intelligent" Hearn, who had "decided she was never going to divorce" her husband.
"The only evidence they have that Sabrina was involved (in the murder) is Jonathan," Terry said.


text:
What Toronto's top minds are reading this summer
By Megan OgilvieData Reporter
Sun., Aug. 8, 2010timer8 min. read
It's the height of summer and, for many of us, the time to settle into a Muskoka chair with a good book and a cool drink.
The Star wondered what the city's top scientists and scholars read when they aren't in their labs, at their computers or writing manuscripts.
So, we asked seven bright minds to tell us what books they are enjoying while relaxing in their backyard or lounging by the lake.
It's a lively list that includes everything from Agatha Christie to the short stories of Russian writer and adventurer Alexander Kuprin.
Maybe you'll find something here to add to your reading list.
JOHN POLANYI
Professor of Chemistry, University of Toronto
Polanyi shared the 1986 Nobel Prize in Chemistry for pioneering reaction dynamics, a new field of research in chemistry that has helped scientists understand how chemical reactions take place.
What he recommends:
The Age of Wonder: How the Romantic generation discovered the terror and beauty of science by Richard Holmes. "Surely the best book ever written about the band of scientists who – with their sailing ships, telescopes, balloons and near-lethal gases — laid the groundwork for our age of science, two centuries ago in the early 1800's; every one a passionate human being."
What he is reading:
The Strangest Man: The hidden life of Paul Dirac, quantum genius by Graham Farmelo. "It succeeds in the impossible task of bringing to life the bloodless figure of Paul Dirac, one of the founders of modern physics, a genius admired by Albert Einstein and shunned by dinner companions. It, too, opens up new worlds. You don't have to have studied particle-physics to enjoy it; my (portrait painter) wife is reading it for the second time."
His seasonal preference:
"I read abandoned books in summer evenings, latterly Agatha Christie (Murder In The Mews'; cardboard characters who know their place in society but bow to the genius of, ugh, a Frenchman, Hercule Poirot) and, if you can remember him, a memoir by Peter Townsend (Time and Chance; gallant pilot makes the mistake of a lifetime at Buckingham Palace)."
JANICE GROSS STEIN
Belzberg Professor of Conflict Management, University of Toronto and Director of the University of Toronto's Munk School of Global Affairs
What she recommends:
The Thousand Autumns of Jacob de Loet by David Mitchell. "This is a singular writer, with an extraordinary sensibility to language, rhythm and pace. He is a joy to read, and this novel is among his finest."
What Science Offers the Humanities by Edward Slingerland. "A particular pleasure, Slingerland looks at new research in neuroscience and takes apart the mind-body divide that informs so much of the way we think. The prose is readable and the knowledge is so important."
What she is reading:
Solar by Ian McEwan. "I read McEwan for the chill, the coldness at the core that comes when you least expect it, around a corner that you don't plan to turn. I have not yet turned that corner in this novel."
Fooled by Randomness: The hidden role of chance in life and in the markets by Nassim Nicholas Taleb. "With arrogance and self-assurance, Taleb wanders through history, mathematics, and probability. The scope and the breadth are quite wonderful, an antidote to the narrowness of so much of contemporary work."
And, when she's tired:
About Face by Donna Leon. "I join my favourite detective in Venice, cynical and weary Inspector Brunetti, who lunches at home with his wife who is a professor of English and an inspired cook, and stops for a grappa late at night in a darkened bar when he is on the hunt."
EUGENIA KUMACHEVA
An expert in physical and polymer chemistry, Kumacheva won the 2008 L'Oreal-UNESCO Women in Science prize for developing new materials with myriad applications, including the targeted drug delivery.
Eurekas and Euphorias: The Oxford book of scientific anecdotes by Walter Gratzer. "This is an insightful and entertaining book that describes the episodes of drama and comedy of scientific discoveries. Although entitled "an Oxford book of scientific anecdotes", it can be opened at random to meet scientists making discoveries in prison cells or in a madhouse, the physicist dissolving his Nobel Prize medal in acid in order to prevent it from falling into the hands of the Nazis, or the battle of the female scientist with the French Academy."
What she is re-reading:
"The novels and short stories by the Russian writer, pilot, explorer and adventurer Alexander Kuprin. He was one of the most popular writers in Russia in early-twentieth-century. Kuprin drew inspiration from the daily lives of people around him, blending realism with romanticism. My favorite novels are The Garnet Bracelet (the tragedy and beauty of hopeless love) and Yama (The Pit) about the life of prostitutes. The author's dedication for the second book is: "I know that many will find this book immoral and indecent; nevertheless I dedicate it with all my heart to MOTHERS and YOUTHS." There is one more reason I like Kuprin so much. He lived in my hometown Odessa and he wrote most touching and funny stories about the life of people in this place."
RON DEIBERT
Director of the Citizen Lab at the University of Toronto's Munk School of Global Affairs
In April, Deibert and his team of computer security experts announced they had cracked a massive cyber espionage ring that had infiltrated the Indian government. Their report made front page news around the world.
The Forever War by Dexter Filkins. "A hauntingly realistic account of the Afghanistan and Iraqi conflicts from a "grounded" perspective. Considering that Canada has committed the lives of not only its armed forces to the Afghanistan security mission, but countless individuals working for humanitarian organizations as well, this book should be considered a civic responsibility. I could not put it down, even when it made me squirm."
The Men Who Stare at Goats by Jon Ronson. "The book is much different than the movie, more of an investigative inquiry into the U.S. military's exploration of the paranormal. I recommend it for two reasons: First, it is very funny and after reading Dexter Filkin's Forever War everyone will need a laugh. Second, and more substantively, very few people understand the extent to which the manipulation of ideas is part of standard military doctrine. We tend to think of propaganda as something quaint from the Cold War or World War II and largely obsolete in today's world. Nothing could be further from the truth. Although not called "propaganda" any more, the U.S. military invests billions of dollars in "psychological operations" (PSYOPS), ranging from the blasting of heavy metal music over loudspeakers to sleep deprivation to secret publication of blogs that spread views favorable to U.S. strategic interests. Very few people understand the full extent of the "war of ideas". This book is a fun introduction."
RAY JAYAWARDHANA
Professor of Astronomy & Astrophysics, University of Toronto
A Canada Research Chair in observational astrophysics, and expert in the formation of stars, planets and brown dwarfs, Jayawardhana won the 2009 Steacie Prize, one of Canada's most prestigious honours for stars in Science and Engineering. He is also an award-winning science writer.
The World Is What It Is: The Authorized Biography of V.S. Naipaul by Patrick French. "It is a gripping and somewhat ruthless portrait of the literary giant."
Along with two of his old favourites: Things Fall Apart by Chinua Achebe and The Old Man Who Read Love Stories by Luis Sepulveda. "Both are deceptively simple yet powerful tales that stay with you for a long time."
There are a few on his shelf:
The Age of Wonder by Richard Holmes (about how scientific discoveries of 18th century Britain fed the Romantic imagination), The Ascent of George Washington by John Ferling (because I'm a bit of a political junkie!), and Wolf Hall by Hilary Mantel (frankly, I want to know what all the buzz is about).
MICHAEL POLLANEN
Director of the University of Toronto's Centre for Forensic Science and Medicine and Chief of the Ontario Forensic Pathology Service
Pollanen was a member of the Canadian team deployed to help identify victims of the Jan. 12 earthquake.
What he is reading and recommends:
Quantum: Einstein, Bohr and the great debate about the nature of reality by Manjit Kumar. "I am reading this because the early controversy about the nature of quantization polarized two of the greatest minds in the 20th century (Einstein and Bohr). I want to see if the Einstein-Bohr debate shreds any light on the nature of scientific controversy."
What he will re-read and recommends: The Story of St. Michele by Axel Munthe. "It is the best historical memoir (published 1929) of a doctor's life that has ever been written and it has hilarious stories about the nature of the doctor-patient relationship!"
NATALIE ZEMON DAVIS
Professor of Medieval Studies, University of Toronto
A renowned historian, Zemon Davis won the 2010 Holberg International Memorial Prize, which is awarded for outstanding scholarly work in the arts and humanities, social sciences, law or theology.
Out Stealing Horses by Per Petterson. "A gripping novel about relations between fathers and sons and the perplexities of family life in rural Norway after World War II. A splendid translation from the Norwegian."
I Shall Not Hate: A Gaza Doctor's Journey by Izzeldin Abuelaish. "A moving and ultimately hopeful memoir on the struggle of a Gaza refugee to make his vocation as an obstetrician and fertility specialist and of his collaboration and friendship with some Israeli physicians to create bonds that go beyond Hamas rockets and IDF war-planes and Israeli security walls."
What she is reading (or plans to read):
Das Geheimnis des Kalligraphen by Rafik Schami. "I've just started this amazing novel, The Secret of the Calligrapher, by the Syrian-German novelist Schami. It's set in the 1950s in Damascus, and I want to learn more about life in that part of the world. I'm interested in letters and the mysteries of writing, which seem to be all tied up with human love. I'm also enjoying the improvement of my reading of literary German."
The Book of Secrets by M.G. Vassanji. "I have loved his other novels, and this one, which has a historical dimension to it, looks intriguing. AND more secrets to decipher!"
Why Translation Matters by Edith Grossman. "Translation is a major theme in my own historical inquiry and writing of late, and I want to see how this master of literary translation thinks about her practice."


What happens when you take a stunning mama-to-be, a gorgeous man who's crazy in love with her, beautiful light… and only about 1/3 of the time you had planned for the session? You give a round of encouraging high fives, and you hustle. And maaaannnnn, this time it totally worked!
Jaky & Mychel took incredible direction, and worked just as hard as we did to make this happen in 25 minutes before the sun set. Take THAT, traffic! You can't crush that McG Magic!!
Is it creepy to say I'm obsessed with your face bones? Yes? Ok… still, though. I am.
This session is SO stunning, I have no words! Knocked it out of the park–ALL of you!


text:
Difference between revisions of "label End Date"
m (9 revision(s))
* for companies (holdings, distributors), it's the date at which the company stopped to exist (be it bankrupted or dismantled)
* for imprints, collection names (when used as labels) and subdivisions (or subsidiaries) for which there is no available (or hard to find) dismantling date, it's the release date of the last ever issued release under that label name
* for bootlegs company, or otherwise obscure/dubious companies, it's tolerable also to use the release date of the last release, unless one has more accurate informations
* for bootlegs company, or otherwise obscure/dubious companies, it's tolerable also to use the release date of the last release, unless one has more accurate information
Like other dates in [[MusicBrainz]] (be it in [[Release Event|ReleaseEvent]]<nowiki></nowiki>s, in [[Advanced Relationships|AdvancedRelationships]], [[Artist Begin Date|ArtistBeginDate]] and [[Artist End Date|ArtistEndDate]]) the '''begin date''' of a [[Label]] can vary in its accuracy from just a year to the exact day. Note that you cannot enter just a day without specifying a month or just a month without a year though.
The '''end date''' of a [[Label]] corresponds with the [[Label Begin Date|LabelBeginDate]].
==Additional Informations==
==Additional Information==
Of course, you shouldn't document an '''end date''' just because a label hasn't released anything in a while. Companies may go dormant - that doesn't mean they stopped existing. A good example is the label ''E.S.P.'', which stayed dormant for nearly thirty years then resurfaced. Furthermore, trademarks may change hand and be unused for several years, before being used again.
{{LabelFooter}}
----{{DocumentationFooter|1.0|dmppanda}}
{{DocumentationFooter|1.0|dmppanda}}
[[Category:To Be Reviewed]] [[Category:Terminology]] [[Category:Label]] [[Category:WikiDocs Page]]
Template:LabelHeader
The end date property of a Label stores the date at which the label ceased to exist. The meaning may depend on the type of label you're dealing with:
for companies (holdings, distributors), it's the date at which the company stopped to exist (be it bankrupted or dismantled)
for imprints, collection names (when used as labels) and subdivisions (or subsidiaries) for which there is no available (or hard to find) dismantling date, it's the release date of the last ever issued release under that label name
for bootlegs company, or otherwise obscure/dubious companies, it's tolerable also to use the release date of the last release, unless one has more accurate information
Like other dates in MusicBrainz (be it in ReleaseEvents, in AdvancedRelationships, ArtistBeginDate and ArtistEndDate) the begin date of a Label can vary in its accuracy from just a year to the exact day. Note that you cannot enter just a day without specifying a month or just a month without a year though.
The end date of a Label corresponds with the LabelBeginDate.
Of course, you shouldn't document an end date just because a label hasn't released anything in a while. Companies may go dormant - that doesn't mean they stopped existing. A good example is the label E.S.P., which stayed dormant for nearly thirty years then resurfaced. Furthermore, trademarks may change hand and be unused for several years, before being used again.
You shouldn't, either, consider a label ended just because it was bought by another label, or changed hands: it may very well continue its existence as a subsidiary, and eventually spin-off of its parent company at some point.
Labels activities may be very complex (dismantling, dormant labels, reviving), and the concept of a single life between two points in time (begin date and end date) may prove rather inadequate (or at least a raw approximation).
Template:LabelFooter
Template:DocumentationFooter
Retrieved from "http://wiki.musicbrainz.org/index.php?title=label_End_Date&oldid=27590"
To Be Reviewed
WikiDocs Page


text:
Michelin Group wins Road Safety Award
ERJ staff report (DS)
New York - The Michelin Group has received the Prince Michael International Road Safety Award at the Policy & Donor Forum, held in New York on May 2.
"Michelin is a global leader in road safety innovation not only through its product development but also in the field of care for its own employees," said His Royal Highness Prince Michael of Kent, Royal Patron of The Commission for Global Road Safety, and added: "But its wider corporate commitment to community safety and international programs is an outstanding example to all businesses."
A cousin of Queen Elizabeth II, HRH Prince Michael of Kent GCVO is Royal Patron of the Commission for Global Road Safety. The Prince Michael International Road Safety awards are presented to organisations in recognition of outstanding achievements or innovations. First introduced in the United Kingdom by the Prince himself in 1987, the awards were made international in 2001 and the Prince has committed to supporting the Global Decade of Action for Road Safety with the awards.
Press release from Michelin


Created exclusively for the 7th edition of Only Watch, Paiget introduces a timepiece inspired by its rich heritage. As the premier international watchmaking charity event, Only Watch brings together the creative and technical talent of international watchmakers to help raise funds for scientific and medical research into Duchenne muscular dystrophy.
For the 7th edition of Only Watch, Piaget has revisited its heritage as the Maison that defied conventions in the 1950s with an out of the ordinary cushion-shaped watchcase. Neither round, square nor rectangular, but all three at once, this unconventional watch displays the finest Piaget goldsmithing with superimposed matt and shiny surfaces to create the depth effect on the case. As presented in the Only Watch sales catalogue, this atypical piece was one of a number of Piaget watches once owned by cultural icon Andy Warhol, and now part of the Maison's patrimony. For Only Watch 2017, Piaget introduces a Black Tie Vintage Inspiration piece in yellow gold recalling the colour theme of this year's edition of Only Watch, featuring a hard stone dial in brown pietersite. Known as the Tempest Stone with its highly charged energy, pietersite is a powerful protection stone, especially against the elements. The Piaget Black Tie Vintage inspiration watch takes an important piece of cultural heritage and revisits it in present-day mode echoing the audacious style that captured imaginations in the 1950s and 1960s. To underscore the unique nature of this creation, the case-back is engraved with the inscription "Only Watch 2017 – Unique Piece".


text:
import os
import random
import string
import warnings

import numpy as np
from astropy import log
from astropy.io import fits

import stingray

from .events import EventList
from .gti import cross_two_gtis
from .io import high_precision_keyword_read
from .lightcurve import Lightcurve
from .utils import genDataPath

HAS_ZARR = False
try:
    import zarr

    HAS_ZARR = True
    from numcodecs import Blosc
except ImportError:
    zarr = None
    pass

__all__ = ["createChunkedSpectra", "saveData", "retrieveData"]

def _saveChunkLC(lc, dir_name, chunks):
    """
    Save Lightcurve in chunks on disk.

    Parameters
    ----------
    lc: :class:`stingray.Lightcurve` object
        Lightcurve to be saved

    dir_name: string
        Top Level diretory name where Lightcurve is to be saved

    chunks: int
        The number of elements per chunk
    """
    # Creating a Nested Store and multiple groups for temporary saving
    store = zarr.NestedDirectoryStore(dir_name)
    lc_data_group = zarr.group(store=store, overwrite=True)
    main_data_group = lc_data_group.create_group("main_data", overwrite=True)
    meta_data_group = lc_data_group.create_group("meta_data", overwrite=True)

    compressor = Blosc(cname="lz4", clevel=1, shuffle=-1)  # Optimal

    main_data_group.create_dataset(
        name="times",
        data=lc.time,
        compressor=compressor,
        overwrite=True,
        chunks=(chunks,),
    )

    main_data_group.create_dataset(
        name="counts",
        data=lc.counts,
        compressor=compressor,
        overwrite=True,
        chunks=(chunks,),
    )

    if lc._counts_err is not None:
        main_data_group.create_dataset(
            name="count_err",
            data=lc.counts_err,
            compressor=compressor,
            overwrite=True,
            chunks=(chunks,),
        )

    main_data_group.create_dataset(
        name="gti", data=lc.gti.flatten(), overwrite=True
    )

    meta_data_group.create_dataset(
        name="dt", data=lc.dt, compressor=compressor, overwrite=True
    )

    meta_data_group.create_dataset(
        name="err_dist",
        data=lc.err_dist,
        compressor=compressor,
        overwrite=True,
    )

    meta_data_group.create_dataset(
        name="mjdref", data=lc.mjdref, compressor=compressor, overwrite=True
    )

def _saveChunkEV(ev, dir_name, chunks):
    """
    Save EventList in chunks on disk.

    Parameters
    ----------
    ev: :class:`stingray.events.EventList` object
        EventList to be saved

    dir_name: string
        Top Level diretory name where EventList is to be saved

    chunks: int
        The number of elements per chunk

    Raises
    ------
    ValueError
        If there is no data being saved
    """
    # Creating a Nested Store and multiple groups for temporary saving
    store = zarr.NestedDirectoryStore(dir_name)
    ev_data_group = zarr.group(store=store, overwrite=True)
    main_data_group = ev_data_group.create_group("main_data", overwrite=True)
    meta_data_group = ev_data_group.create_group("meta_data", overwrite=True)

    compressor = Blosc(cname="lz4", clevel=1, shuffle=-1)

    if ev.time is not None and (ev.time.all() or ev.time.size != 0):
        main_data_group.create_dataset(
            name="times",
            data=ev.time,
            compressor=compressor,
            overwrite=True,
            chunks=(chunks,),
        )

    if ev.energy is not None and (ev.energy.all() or ev.energy.size != 0):
        main_data_group.create_dataset(
            name="energy",
            data=ev.energy,
            compressor=compressor,
            overwrite=True,
            chunks=(chunks,),
        )

    if ev.pi is not None and (ev.pi.all() or ev.pi.size != 0):
        main_data_group.create_dataset(
            name="pi_channel",
            data=ev.pi,
            compressor=compressor,
            overwrite=True,
            chunks=(chunks,),
        )

    if ev.gti is not None and (ev.gti.all() or ev.gti.shape[0] != 0):
        main_data_group.create_dataset(
            name="gti", data=ev.gti.flatten(), overwrite=True
        )

    if ev.dt != 0:
        meta_data_group.create_dataset(
            name="dt", data=ev.dt, compressor=compressor, overwrite=True
        )

    if ev.ncounts:
        meta_data_group.create_dataset(
            name="ncounts",
            data=ev.ncounts,
            compressor=compressor,
            overwrite=True,
        )

    if ev.notes:
        meta_data_group.create_dataset(
            name="notes", data=ev.notes, compressor=compressor, overwrite=True
        )

    meta_data_group.create_dataset(
        name="mjdref", data=ev.mjdref, compressor=compressor, overwrite=True
    )

def _saveFITSZarr(f_name, dir_name, chunks):
    """
    Read a FITS file and save it for further processing.

    Parameters
    ----------
    f_name: string
        The name of file with which object was saved

    dir_name: string
        The name of the top level directory where the file is to be stored

    chunks: int
        The number of elements per chunk
    """

    compressor = Blosc(cname="lz4", clevel=1, shuffle=-1)

    store = zarr.NestedDirectoryStore(dir_name)
    fits_data_group = zarr.group(store=store, overwrite=True)
    main_data_group = fits_data_group.create_group("main_data", overwrite=True)
    meta_data_group = fits_data_group.create_group("meta_data", overwrite=True)

    with fits.open(f_name, memmap=True) as fits_data:
        for HDUList in fits_data:
            if HDUList.name == "EVENTS":
                times = HDUList.data["TIME"]
                chunks = times.size if times.size < chunks else chunks

                main_data_group.create_dataset(
                    name="times",
                    data=times,
                    compressor=compressor,
                    overwrite=True,
                    chunks=(chunks,),
                )

                for col in ["PI", "PHA"]:
                    if col in HDUList.data.columns.names:
                        main_data_group.create_dataset(
                            name=f"{col.lower()}_channel",
                            data=HDUList.data[col],
                            compressor=compressor,
                            overwrite=True,
                            chunks=(chunks,),
                        )

                meta_data_group.create_dataset(
                    name="tstart",
                    data=HDUList.header["TSTART"],
                    compressor=compressor,
                    overwrite=True,
                )

                meta_data_group.create_dataset(
                    name="tstop",
                    data=HDUList.header["TSTOP"],
                    compressor=compressor,
                    overwrite=True,
                )

                meta_data_group.create_dataset(
                    name="mjdref",
                    data=high_precision_keyword_read(HDUList.header, "MJDREF"),
                    compressor=compressor,
                    overwrite=True,
                )

            elif HDUList.name == "GTI":
                # TODO: Needs to be generalized
                start, stop = HDUList.data["START"], HDUList.data["STOP"]
                gti = np.array(list(zip(start, stop)))
                main_data_group.create_dataset(
                    name="gti",
                    data=gti.flatten(),
                    compressor=compressor,
                    overwrite=True,
                )

def saveData(data, persist=False, dir_name=None, chunks=None):
    """
    Saves Lightcurve/EventList or any such data in chunks to disk.

    Parameters
    ----------
    data: :class:`stingray.Lightcurve` or :class:`stingray.events.EventList` object or string
        Data to be stored on the disk.

    persist: bool
        If the data is to be stored on the disk permanently.

    dir_name: string, optional
        Name of top level directory where data is to be stored, by default randomNameGenerate()

    chunks: int, optional
        Length of data chunks in number of bins. If None, it is calculated
        based on the system resources

    Returns
    -------
    string
        Name of top level directory where data is to be stored

    Raises
    ------
    ValueError
        If data is not a Lightcurve or EventList
    """
    from sys import platform

    HAS_PSUTIL = False
    try:
        import psutil

        HAS_PSUTIL = True
    except ImportError:
        if not (platform == "linux" or platform == "linux2"):
            warnings.warn(
                "The chunk size will not depend on available RAM and will slowdown execution."
            )

    if not persist:
        import tempfile

        dir_name = tempfile.mkdtemp()
    else:
        dir_name = (
            "".join(random.choices(string.ascii_letters + string.digits, k=10))
            if dir_name is None
            else dir_name
        )

    if chunks is None:
        ideal_chunk, safe_chunk = 8388608, 4193404

        if HAS_PSUTIL:
            free_m = (
                psutil.virtual_memory().available + psutil.swap_memory().free
            ) / 10 ** 9
            chunks = ideal_chunk if free_m >= 10.0 else safe_chunk
        else:
            if platform == "linux" or platform == "linux2":
                free_m = int(
                    os.popen("free -t -m").readlines()[-1].split()[-1]
                )
                chunks = ideal_chunk if free_m >= 10000 else safe_chunk
            else:
                chunks = safe_chunk

    if isinstance(data, Lightcurve):
        if data.time.size < chunks:
            chunks = data.time.size
        _saveChunkLC(data, dir_name, chunks)

    elif isinstance(data, EventList):
        if not (
            data.time is not None and (data.time.all() or data.time.size != 0)
        ):
            raise ValueError(
                ("The EventList passed is empty and hence cannot be saved")
            )

        if data.time.size > 0 and data.time.size < chunks:
            chunks = data.time.size

        _saveChunkEV(data, dir_name, chunks)

    elif os.path.exists(data) and os.stat(data).st_size > 0:
        _saveFITSZarr(data, dir_name, chunks)

    else:
        raise ValueError((f"Invalid data: {data} ({type(data).__name__})"))

    return dir_name

def _retrieveDataLC(data_path, chunk_size=0, offset=0, raw=False):
    """
    Retrieve data from stored Lightcurve on disk.

    Parameters
    ----------
    data_path: list
        Path to datastore

    chunk_size: int, optional
        Size of data to be retrieved, default 0

    offset: int, optional
        Offset or start element to read the array from, default 0

    raw: bool, optional
        Only to be used for if raw memory mapped zarr arrays are to be obtained, default False

    Returns
    -------
    :class:`stingray.Lightcurve` object or tuple
        Lightcurve retrieved from store or data of Lightcurve

    Raises
    ------
    ValueError
        If offset provided is larger than size of array.
    """
    times = zarr.open_array(store=data_path[0], mode="r", path="times")
    counts = zarr.open_array(store=data_path[0], mode="r", path="counts")
    try:
        count_err = zarr.open_array(
            store=data_path[0], mode="r", path="count_err"
        )
    except ValueError:
        count_err = None

    gti = zarr.open_array(store=data_path[0], mode="r", path="gti")[...]
    gti = gti.reshape((gti.size // 2, 2))

    dt = zarr.open_array(store=data_path[1], mode="r", path="dt")[...]
    mjdref = zarr.open_array(store=data_path[1], mode="r", path="mjdref")[...]
    err_dist = zarr.open_array(store=data_path[1], mode="r", path="err_dist")[
        ...
    ]

    if raw:
        return (
            times,
            counts,
            count_err,
            gti,
            float(dt),
            str(err_dist),
            float(mjdref),
        )
    else:
        if chunk_size == 0 or chunk_size > times.size:
            chunk_size = times.size
            log.info(
                f"Retrieving the whole array (Chunk size > size of times)"
            )

        if offset > times.size:
            raise ValueError(
                (f"Offset cannot be larger than size of array {times.size}")
            )

        times = times.get_basic_selection(slice(offset, chunk_size))[...]
        gti_new = cross_two_gtis(
            gti,
            np.asarray(
                [[times[0] - 0.5 * float(dt), times[-1] + 0.5 * float(dt)]]
            ),
        )

        return Lightcurve(
            time=times,
            counts=counts.get_basic_selection(slice(offset, chunk_size))[...],
            err=count_err.get_basic_selection(slice(offset, chunk_size))[...]
            if count_err is not None
            else None,
            gti=gti_new,
            dt=float(dt),
            err_dist=str(err_dist),
            mjdref=float(mjdref),
            skip_checks=True,
        )

def _retrieveDataEV(data_path, chunk_size=0, offset=0, raw=False):
    """
    Retrieve data from stored EventList on disk.

    Parameters
    ----------
    data_path: list
        Path to datastore.

    chunk_size: int
        Size of data to be retrieved

    offset: int
        Offset or start element to read the array from

    raw: bool
        Only to be used for if raw memory mapped zarr arrays are to be obtained

    Returns
    -------
    :class:`stingray.events.EventList` object or tuple
        EventList or data of EventList retrieved from store.

    Raises
    ------
    ValueError
        If array does not exist at path

    ValueError
        If offset provided is larger than size of array.

    ValueError
        If the file to read is empty
    """
    try:
        times = zarr.open_array(store=data_path[0], mode="r", path="times")
    except ValueError:
        raise ValueError("This file contains no events.")

    try:
        energy = zarr.open_array(store=data_path[0], mode="r", path="energy")
    except ValueError:
        energy = None

    try:
        pi_channel = zarr.open_array(
            store=data_path[0], mode="r", path="pi_channel"
        )
    except ValueError:
        pi_channel = None

    try:
        gti = zarr.open_array(store=data_path[0], mode="r", path="gti")[...]
        gti = gti.reshape((gti.size // 2, 2))
    except ValueError:
        gti = None

    try:
        dt = zarr.open_array(store=data_path[1], mode="r", path="dt")[...]
    except ValueError:
        dt = 0

    try:
        ncounts = zarr.open_array(
            store=data_path[1], mode="r", path="ncounts"
        )[...]
    except ValueError:
        ncounts = None

    try:
        mjdref = zarr.open_array(store=data_path[1], mode="r", path="mjdref")[
            ...
        ]
    except ValueError:
        mjdref = 0

    try:
        notes = zarr.open_array(store=data_path[1], mode="r", path="notes")[
            ...
        ]
    except ValueError:
        notes = ""

    if raw:
        return (
            times,
            energy,
            int(ncounts),
            float(mjdref),
            dt,
            gti,
            pi_channel,
            str(notes),
        )
    else:
        if chunk_size == 0 or chunk_size > times.size:
            chunk_size = times.size
            log.info(
                f"Retrieving the whole array (Chunk size > size of times)"
            )

        if offset > times.size:
            raise ValueError(
                "No element read. Offset cannot be larger than size of array"
            )

        time = times.get_basic_selection(slice(offset, chunk_size))
        energy = (
            energy.get_basic_selection(slice(offset, chunk_size))
            if energy is not None
            else None
        )
        pi = (
            pi_channel.get_basic_selection(slice(offset, chunk_size))
            if pi_channel is not None
            else None
        )

        gti_new = None
        if gti is not None:
            gti_new = cross_two_gtis(
                gti,
                np.asarray(
                    [[times[0] - 0.5 * float(dt), times[-1] + 0.5 * float(dt)]]
                ),
            )
            warnings.warn(
                "GTI management is tricky when partially loading event lists "
                "from ZARR arrays. Please use with care.",
                UserWarning,
            )

        if pi_channel is not None:
            pi_channel = pi_channel.get_basic_selection(
                slice(offset, chunk_size)
            )
        else:
            pi_channel = None

        return EventList(
            time=time,
            energy=energy,
            ncounts=ncounts,
            mjdref=float(mjdref),
            dt=float(dt),
            gti=gti_new,
            pi=pi_channel,
            notes=str(notes),
        )

def retrieveData(
    data_type, dir_path, chunk_data=False, chunk_size=0, offset=0, raw=False
):
    """
    Retrieves Lightcurve/EventList or any such data from disk.

    Parameters
    ----------
    data_type: string
        Type of data to retrieve i.e. Lightcurve, Eventlist, FITS data to retrieve

    dir_path: string
        Path to zarr datastore + Top level directory name for data

    chunk_data: bool, optional
        If only a chunk of data is to be retrieved, by default False

    chunk_size: int, optional
        Number of values to be retrieved, by default 0

    offset: int, optional
        Start offset from where values are to be retrieved, by default 0

    raw: bool, optional
        Only to be used for if raw memory mapped zarr arrays are to be obtained, by default False

    Returns
    -------
    :class:`stingray.events.EventList` object or :class:`stingray.Lighrcurve` object or tuple
        EventList or Lightcurve created from store or raw data

    Raises
    ------
    ValueError
        If datatype is not Lightcurve or EventList of FITS
    """
    data_path = genDataPath(dir_path)

    if chunk_data is True and offset >= chunk_size:
        raise ValueError(("offset should be less than chunk_size"))

    if data_type.lower() == "lightcurve":
        if chunk_data is True and chunk_size > 0:
            return _retrieveDataLC(
                data_path, int(chunk_size), int(offset), raw=raw
            )
        else:
            return _retrieveDataLC(data_path, raw=raw)

    elif data_type.lower() == "eventlist" or data_type.lower() == "fits":
        if chunk_data is True and chunk_size > 0:
            return _retrieveDataEV(
                data_path, int(chunk_size), int(offset), raw=False
            )
        else:
            return _retrieveDataEV(data_path, raw=raw)

    else:
        raise ValueError(
            (f"Invalid data: {data_type} ({type(data_type).__name__})")
        )

def _combineSpectra(final_spectra):
    """
    Create a final spectra that is the mean of all spectra.

    Parameters
    ----------
    final_spectra: :class:`stingray.AveragedCrossspectrum/AveragedPowerspectrum' object
        Summed spectra of all spectra

    Returns
    -------
    :class:`stingray.events.EventList` object or :class:`stingray.Lighrcurve` object
        Final resulting spectra.
    """
    final_spectra.power /= final_spectra.m
    final_spectra.unnorm_power /= final_spectra.m
    final_spectra.power_err = (
        np.sqrt(final_spectra.power_err) / final_spectra.m
    )

    if isinstance(
        final_spectra, stingray.AveragedCrossspectrum
    ) and not isinstance(final_spectra, stingray.AveragedPowerspectrum):
        final_spectra.pds1.power /= final_spectra.m
        final_spectra.pds2.power /= final_spectra.m
        final_spectra.nphots1 /= final_spectra.m
        final_spectra.nphots2 /= final_spectra.m
    else:
        final_spectra.nphots /= final_spectra.m

    return final_spectra

def _addSpectra(final_spectra, curr_spec):
    """
    Add various Spectra(AveragedCrossspectrum/AveragedPowerspectrum) for combination.

    Parameters
    ----------
    final_spectra: object
        Final Combined AveragedCrossspectrum or AveragedPowerspectrum

    curr_spec: object
        AveragedCrossspectrum/AveragedPowerspectrum to be combined

    first_iter: bool
        Check for first iteration variable

    Returns
    -------
    final_spectrum: :class:`stingray.crossspectrum.AveragedCrossspectrum` object or :class:`stingray.powerspectrum.AveragedPowerspectrum` object
        Combined AveragedCrossspectrum/AveragedPowerspectrum
    """

    final_spectra.power += curr_spec.power * curr_spec.m
    final_spectra.unnorm_power += curr_spec.unnorm_power * curr_spec.m
    final_spectra.power_err += curr_spec.power_err ** 2 * curr_spec.m

    final_spectra.m += curr_spec.m

    if isinstance(final_spectra, stingray.AveragedPowerspectrum):
        final_spectra.nphots += curr_spec.nphots * curr_spec.m

    elif isinstance(final_spectra, stingray.AveragedCrossspectrum):
        final_spectra.pds1.power += curr_spec.pds1.power * curr_spec.m
        final_spectra.pds1.power += curr_spec.pds1.power * curr_spec.m

        final_spectra.nphots1 += curr_spec.nphots1 * curr_spec.m
        final_spectra.nphots2 += curr_spec.nphots2 * curr_spec.m

    return final_spectra

def _chunkLCSpec(
    data_path, spec_type, segment_size, norm, gti, power_type, silent
):
    """
    Create a chunked spectra from Lightcurve stored on disk.

    Parameters
    ----------
    data_path: string
        Path to stored Lightcurve or EventList chunks on disk

    spec_type: string
        Type of spectra to create AveragedCrossspectrum or AveragedPowerspectrum.

    segment_size: float
        The size of each segment to average in the AveragedCrossspectrum/AveragedPowerspectrum.

    norm: {``frac``, ``abs``, ``leahy``, ``none``}
        The normalization of the (real part of the) cross spectrum.

    gti: 2-d float array
        `[[gti0_0, gti0_1], [gti1_0, gti1_1], ...]`` -- Good Time intervals.
        This choice overrides the GTIs in the single light curves. Use with
        care!

    power_type: string
        Parameter to choose among complete, real part and magnitude of
         the cross spectrum. None for AveragedPowerspectrum

    silent: bool
        Do not show a progress bar when generating an averaged cross spectrum.
        Useful for the batch execution of many spectra

    dt1: float
        The time resolution of the light curve. Only needed when constructing
        light curves in the case where data1 or data2 are of :class:EventList

    Returns
    -------
    :class:`stingray.events.EventList` object or :class:`stingray.Lighrcurve` object
        Summed computed spectra

    Raises
    ------
    ValueError
        If spectra is not AveragedCrossspectrum or AveragedPowerspectrum

    ValueError
        If previous and current spectra frequencies are not identical
    """
    times, counts, counts_err, gti_new, dt, err_dist, mjdref = _retrieveDataLC(
        data_path[0:2], raw=True
    )
    final_gti = gti_new.reshape((gti_new.size // 2, 2))

    if spec_type.lower() == "averagedpowerspectrum":
        fin_spec = stingray.AveragedPowerspectrum()

    elif spec_type.lower() == "averagedcrossspectrum":
        fin_spec = stingray.AveragedCrossspectrum()
        (
            times_other,
            counts_other,
            counts_err_other,
            gti_other,
            dt_other,
            err_dist_other,
            mjdref_other,
        ) = _retrieveDataLC(data_path[2:4], raw=True)
        gti_new_other = gti_other.reshape((gti_other.size // 2, 2))
        final_gti = cross_two_gtis(final_gti, gti_new_other)
    else:
        raise ValueError((f"Invalid spectra-type {spec_type}"))

    nchunks_per_segment = max(
        int(np.rint(segment_size / dt / times.chunks[0])), 1
    )

    new_segment_size = nchunks_per_segment * times.chunks[0] * dt
    if not np.isclose(new_segment_size, segment_size):
        warnings.warn("Adapting segment_size to a fixed number of chunks")
        segment_size = new_segment_size

    step = times.chunks[0] * nchunks_per_segment
    prev_freq = None
    for i in range(0, times.size, step):
        nmax = i + step
        if nmax > times.size and (nmax - times.size) * dt < segment_size:
            continue
        time = times.get_basic_selection(slice(i, i + step))
        count = counts.get_basic_selection(slice(i, i + step))
        count_err = None
        if counts_err is not None:
            count_err = counts_err.get_basic_selection(slice(i, i + step))

        gti_new = np.asarray([[time[0] - 0.5 * dt, time[-1] + 0.5 * dt]])

        lc1 = Lightcurve(
            time=time,
            counts=count,
            err=count_err,
            gti=gti_new,
            err_dist=err_dist,
            mjdref=mjdref,
            dt=dt,
            skip_checks=True,
        )

        if isinstance(fin_spec, stingray.AveragedPowerspectrum):
            avg_spec = stingray.AveragedPowerspectrum(
                data=lc1,
                segment_size=segment_size,
                norm=norm,
                gti=gti_new,
                silent=True,
                large_data=False,
            )

        else:
            time_other = times_other.get_basic_selection(slice(i, i + step))
            count_other = counts_other.get_basic_selection(slice(i, i + step))
            count_err_other = None
            if counts_err_other is not None:
                count_err_other = counts_err_other.get_basic_selection(
                    slice(i, i + step)
                )

            gti_new_other = np.asarray(
                [[time_other[0] - 0.5 * dt, time_other[-1] + 0.5 * dt]]
            )

            lc2 = Lightcurve(
                time=time_other,
                counts=count_other,
                err=count_err_other,
                gti=gti_new_other,
                err_dist=err_dist_other,
                mjdref=mjdref_other,
                dt=dt_other,
                skip_checks=True,
            )

            assert np.allclose(
                gti_new, gti_new_other
            ), "The two light curves should cover identical time frames"

            avg_spec = stingray.AveragedCrossspectrum(
                data1=lc1,
                data2=lc2,
                segment_size=segment_size,
                norm=norm,
                gti=gti_new,
                power_type=power_type,
                silent=True,
                large_data=False,
            )

        # First iteration
        if i == 0:
            fin_spec = avg_spec
            prev_freq = avg_spec.freq
            continue

        # All others
        if not np.allclose(prev_freq, avg_spec.freq):
            bad = ~np.isclose(prev_freq, avg_spec.freq)
            raise ValueError(
                (
                    f"Spectra have unequal frequencies: "
                    f"{avg_spec.freq[bad]} vs {prev_freq[bad]}"
                )
            )
        fin_spec = _addSpectra(fin_spec, avg_spec)
        prev_freq = avg_spec.freq

    fin_spec.gti = final_gti
    return fin_spec

# TODO: Add support for eventlist soon!
# def _chunkEVSpec(data_path, spec_type, segment_size, norm, gti, power_type,
#                  silent, dt1):
#     """
#     Create a chunked spectra from EventList stored on disk.
#
#     Parameters
#     ----------
#     data_path: string
#         Path to stored Lightcurve or EventList chunks on disk
#
#     spec_type: string
#         Type of spectra to create AveragedCrossspectrum or AveragedPowerspectrum.
#
#     segment_size: float
#         The size of each segment to average in the AveragedCrossspectrum/AveragedPowerspectrum.
#
#     norm: {``frac``, ``abs``, ``leahy``, ``none``}
#         The normalization of the (real part of the) cross spectrum
#
#     gti: 2-d float array
#         `[[gti0_0, gti0_1], [gti1_0, gti1_1], ...]`` -- Good Time intervals.
#         This choice overrides the GTIs in the single light curves. Use with
#         care!
#
#     power_type: string
#         Parameter to choose among complete, real part and magnitude of
#          the cross spectrum. None for AveragedPowerspectrum
#
#     silent: bool
#         Do not show a progress bar when generating an averaged cross spectrum.
#         Useful for the batch execution of many spectra
#
#     dt1: float
#         The time resolution of the light curve. Only needed when constructing
#         light curves in the case where data1 or data2 are of :class:EventList
#
#     Returns
#     -------
#     :class:`stingray.events.EventList` object or :class:`stingray.Lighrcurve` object
#         Summed computed spectra
#
#     Raises
#     ------
#     ValueError
#         If spectra is not AveragedCrossspectrum or AveragedPowerspectrum
#
#     ValueError
#         If previous and current spectra frequencies are not identical
#     """
#     times, energy, ncounts, mjdref, dt, gti_new, pi_channel, notes = _retrieveDataEV(
#         data_path[0:2], raw=True)
#     gti_new = gti_new.reshape((gti_new.size // 2, 2))
#
#     if spec_type.lower() == 'averagedpowerspectrum':
#         fin_spec = stingray.AveragedPowerspectrum()
#
#     elif spec_type.lower() == 'averagedcrossspectrum':
#         fin_spec = stingray.AveragedCrossspectrum()
#         times_other, energy_other, ncounts_other, mjdref_other, dt_other, gti_other, pi_channel_other = _retrieveDataEV(
#             data_path[2:4], raw=True)
#         gti_new_other = gti_other.reshape((gti_other.size // 2, 2))
#
#     else:
#         raise ValueError((f"Invalid spectra {spec_type}"))
#
#     first_iter = True
#     for i in range(times.chunks[0], times.size, times.chunks[0]):
#         gti_new = cross_two_gtis(
#             gti_new,
#             np.asarray([[
#                 times.get_basic_selection(i - times.chunks[0]) - 0.5 * dt,
#                 times.get_basic_selection(i) + 0.5 * dt
#             ]]))
#         ev1 = EventList(
#             time=times.get_basic_selection(slice(i - times.chunks[0], i))
#             if times is not None else None,
#             energy=energy.get_basic_selection(slice(i - times.chunks[0], i))
#             if energy is not None else None,
#             ncounts=ncounts,
#             mjdref=mjdref,
#             dt=dt,
#             gti=gti_new,
#             pi=pi_channel.get_basic_selection(slice(i - times.chunks[0], i))
#             if isinstance(pi_channel, zarr.core.Array) else pi_channel,
#             notes=notes)
#
#         if isinstance(fin_spec, stingray.AveragedPowerspectrum):
#             avg_spec = stingray.AveragedPowerspectrum(
#                 data=ev1,
#                 segment_size=segment_size,
#                 norm=norm,
#                 gti=gti,
#                 silent=silent,
#                 dt=dt1,
#                 large_data=False)
#
#         elif isinstance(fin_spec, stingray.AveragedCrossspectrum):
#             gti_new_other = cross_two_gtis(
#                 gti_other,
#                 np.asarray([[
#                     times_other.get_basic_selection(i - times_other.chunks[0])
#                     - 0.5 * dt_other,
#                     times_other.get_basic_selection(i) + 0.5 * dt_other
#                 ]]))
#
#             ev2 = EventList(
#                 time=times_other.get_basic_selection(slice(i - times.chunks[0], i)) if time_other is not None else None,
#                 energy=energy_other.get_basic_selection(slice(i - times.chunks[0], i)) if energy_other is not None else None,
#                 ncounts=ncounts_other,
#                 mjdref=mjdref_other,
#                 dt=dt_other,
#                 gti=gti_new_other,
#                 pi=pi_channel_other.get_basic_selection(slice(i - times.chunks[0], i)) if isinstance(pi_channel_other, zarr.core.Array) else pi_channel_other,
#                 notes=notes_other)
#
#             avg_spec = stingray.AveragedCrossspectrum(
#                 data1=ev1,
#                 data2=ev2,
#                 segment_size=segment_size,
#                 norm=norm,
#                 gti=gti,
#                 power_type=power_type,
#                 silent=silent,
#                 dt=dt1,
#                 large_data=False)
#
#         if first_iter:
#             prev_freq = avg_spec.freq
#             fin_spec = _addSpectra(fin_spec, avg_spec, first_iter)
#         else:
#             if np.array_equal(prev_freq, avg_spec.freq):
#                 fin_spec = _addSpectra(fin_spec, avg_spec, first_iter)
#                 prev_freq = avg_spec.freq
#             else:
#                 raise ValueError((
#                     f"Spectra have unequal frequencies {avg_spec.freq.shape}{prev_freq.shape}"
#                 ))
#
#         first_iter = False
#     fin_spec.gti = cross_two_gtis(gti_new, gti_new_other)
#
#     return fin_spec

def createChunkedSpectra(
    data_type,
    spec_type,
    data_path,
    segment_size,
    norm,
    gti,
    power_type,
    silent,
    dt=None,
):
    """
    Create a chunked spectra from zarr files stored on disk.

    Parameters
    ----------
    data_type: string
        Data in Lightcurve or EventList

    spec_type: string
        Type of spectra to create AveragedCrossspectrum or AveragedPowerspectrum

    data_path: list
        Path to datastore

    segment_size: float
        The size of each segment to average in the AveragedCrossspectrum/AveragedPowerspectrum

    norm: {``frac``, ``abs``, ``leahy``, ``none``}
        The normalization of the (real part of the) cross spectrum

    gti: 2-d float array
        `[[gti0_0, gti0_1], [gti1_0, gti1_1], ...]`` -- Good Time intervals.
        This choice overrides the GTIs in the single light curves. Use with
        care!

    power_type: string
        Parameter to choose among complete, real part and magnitude of
         the cross spectrum. None for AveragedPowerspectrum

    silent: bool
        Do not show a progress bar when generating an averaged cross spectrum.
        Useful for the batch execution of many spectra

    dt: float, optional
        The time resolution of the light curve. Only needed when constructing
        light curves in the case where data1 or data2 are of :class:EventList, by default None

    Returns
    -------
    :class:`stingray.events.EventList` object or :class:`stingray.Lighrcurve` object
        Final computed spectra
    """
    if data_type.lower() == "lightcurve":
        fin_spec = _chunkLCSpec(
            data_path=data_path,
            spec_type=spec_type,
            segment_size=segment_size,
            norm=norm,
            gti=gti,
            power_type=power_type,
            silent=silent,
        )

    else:
        raise NotImplementedError("Only input light curves are allowed")

    return _combineSpectra(fin_spec)

redpajama_set_name: RedPajamaGithub


This was my senior design project at Georgia Tech. My team members were Chris Sidi, Bill Phillips, and Jimmy Espana. The goal was to graphically visualizing how an individual message gets routed through the network, which regions of the network are experiencing heavy or light traffic, and which regions of the network are generating heavy or light traffic. Our customer for this project was Dr. Brian Cooper.


text:
Q: Multi-member governance tools for resources For a consortium with multiple enterprise parties operating a permissioned blockchain, how does governance of the shared infrastructure work with Kaleido?
I assume that one party can launch the blockchain platform (with a fixed set of nodes), invite members, give invited members limited capabilities to manage the shared resources (e.g. they can set up private channels and invite other members, and perhaps add/remove their own nodes/peers?).
Does the party who launches the blockchain consortium instance have more "powers" than invited members (e.g. which AWS region to deploy to)?
Can an invited member add more peers or remote nodes than the rest of the consortium, and then perform something like a 51% attack?
Can payments be split between consortium members?
The encrypted storage: how is this governed between multiple members of a consortium?
I would appreciate any feedback.
Kind Regards,
Zaid

A:
Does the party who launches the blockchain consortium instance have more "powers" than invited members (e.g. which AWS region to deploy to)?

In the current open beta functionality, Kaleido does exposed the ability for the original creator of a consortium/environment to delete it. Including all nodes owned by all members. This is a convenience feature for PoC stage consortium. Please drop support@kaleido.io an email note directly if you are at a stage with a project where you need to discuss a fully decentralized governance model where this ability is removed.

Can an invited member add more peers or remote nodes than the rest of the consortium, and then perform something like a 51% attack?

Each consensus algorithm has different byzantine fault tolerance characteristics, and you can read about them here:
https://kaleido.io/consensus-algorithms-poa-ibft-or-raft/
In the current open beta, members invited/permissioned into the private chain are able to add multiple nodes that participate in forming consensus (Clique signers / IBFT validators). Again please contact Kaledio if you have specific requirements in this area.

Can payments be split between consortium members?

Kaleido is not currently charging for the open beta. However, the ownership model of the Kaleido cloud resources, is that each Kaleido organization owns its own nodes. Each member running nodes in a Kaleido private chain has the control over the lifecycle and operations of their own nodes. As such, it would follow that each participant would pay for their own nodes in such a model.

The encrypted storage: how is this governed between multiple members of a consortium?

The Kaleido tenancy model is described here:
https://docs.kaleido.io/getting-started/overview/kaleido-tenancy-model/
A further option for encryption of sensitive key materials, is to use use per-tenant master encryption keys stored outside of the Kaleido platform in the AWS Key Management Service (KMS):
https://kaleido.io/why-your-keys-are-safe-in-kaleido/
If you are interested in further details of the virtualization technologies Kaleido uses to dedicate isolated storage to each node, please reach out directly to support.
Many thanks for your questions, and I hope this response gives some additional clarity on the features available in the Kaleido open beta.
Please do reach out to support@kaleido.io directly if you'd like to learn more.
Regards, Peter

redpajama_set_name: RedPajamaStackExchange


A restaurant, a fitness center, and a bar/lounge are available at this smoke-free hotel. Free buffet breakfast and free WiFi in public areas are also provided. Other amenities include a coffee shop/café, a 24-hour business center, and valet parking.
A hotel's guest rating is calculated using data provided under license by TripAdvisor. A total of 951 have reviewed the Storchen Zurich, giving it a rating of 4.5, on a scale of 1-5.


Katja Sussner is working for the House of World Cultures (HKW) in Berlin, a leading centre for interdisciplinary discourse and contemporary arts. She is responsible for projects on migration within the department of Literature and Humanities. Katja holds a diploma in International Cultural and Business Studies from the University of Passau. She has worked and studied in Argentina, Brazil and the Netherlands and received grants from the German Academic Exchange Service (DAAD). Her work experience include assignments as Program Manager with the Center for Metropolitan Studies Berlin/NYC at the Technical University in Berlin, the BMW Group, the Körber Foundation and various charitable institutions, where Katja has focused on project design and project management. She held a full-time position with the Global Public Policy Institute from February-December 2004.


text:
Karel Jungwiert (* 1. listopadu 1944, Vlkovec, nyní součást obce Chocerady) je český právník.

Život
V letech 1950–1958 absolvoval povinnou školní docházku. V roce 1962 ukončil maturitou střední vzdělání na střední průmyslové škole. V letech 1964–1969 studoval v denním studiu na Právnické fakultě Univerzity Karlovy a v dubnu 1970 vykonal rigorózní zkoušku v oboru ústavní právo.

V roce 1967 a 1968 byl jako student členem KSČ. Koncem roku 1968 odevzdal členský průkaz. Poté působil v advokacii jako advokátní čekatel Městského sdružení advokátů v Praze. Jako obhájce kriticky hodnotil postup soudu při hlavním líčení v červenci 1970 u obvodního soudu pro Prahu 4, tak jako okupaci Československa vojsky Varšavské smlouvy. Z advokacie byl nucen nedobrovolně odejít. Následně vystřídal několik zaměstnání. Živil se jako podnikový právník a částečně i jako dělník. Poté vykonal advokátní zkoušku u Městského sdružení advokátů v Praze a od 1. 6. 1974 až do 6. 4. 1989 působil jako advokát v advokátní poradně č. 9 v Praze. Převážně se věnoval trestní a občanskoprávní problematice.

Bez povolení úřadů opustil na jaře roku 1989 Československo. V srpnu 1990 se z emigrace (Francie a Kanada) vrátil. V letech 1990–1992 byl vedoucím sekretariátu Federálního shromáždění ČSFR. JUDr. Otakar Motejl jako předseda Nejvyššího soudu České a Slovenské Federativní Republiky navrhl dne 4. prosince 1991 prezidentovi ČSFR, Václavu Havlovi, aby jej jmenoval soudcem Nejvyššího soudu České a Slovenské Federativní Republiky. Dne 31. ledna 1992 Václav Havel předložil Sněmovně lidu, Sněmovně národů Federálního shromáždění České a Slovenské Federativní Republiky jmenovací dekrety soudců Nejvyššího soudu České a Slovenské Federativní Republiky JUDr. Igora Burgera a JUDr. Karla Jungwierta ke schválení.

Po krátkém působení na Nejvyšším soudu České republiky v letech 1992–1993 se stal 23. září 1993 soudcem Evropského soudu pro lidská práva ve Štrasburku na dobu do 31. 10. 1998 a opět od 1. 11. 1998 do 31. 10. 2010. Počátkem roku 2010 soud zahájil reformu, podle které se mj. mandáty soudců automaticky prodlužují, pokud sami nerezignují. Působil zde tak až do roku 2012, kdy jej vystřídal Aleš Pejchal.

S výjimkou let 1967 a 1968 nebyl členem žádné politické strany. Má tři děti (syna Bruna, dcery Petru a Lucii).

Externí odkazy

 Tisk číslo 1252 Federálního shromáždění České a Slovenské Federativní Republiky
  Aktualizovaný seznam soudců (10. shora)
  Seznam soudců (2003) (formát PDF)

Evropský soud pro lidská práva
Čeští advokáti
Čeští soudci
Soudci mezinárodních soudů a tribunálů
Čeští emigranti a exulanti
Absolventi Právnické fakulty Univerzity Karlovy
Narození v roce 1944
Narození 1. listopadu
Žijící lidé
Muži

redpajama_set_name: RedPajamaWikipedia


Mercedes Benz Star diagnosis Car Diagnostic Tools MB star C3 can realizes all the function of official factory BENZ compact 3 and it is one of the best assistant for maintenance man to make star diagnosis.
Also we have Turkish, Finnish, Polish, Hungarian, Korean, Czech, and Dutch. Those kinds of rare Language available!
1. Realizes all the function of official factory BENZ compact 3.
2. MB star C3 Multiplexer can connect to factory computer and IBM laptop.
3. Complete maintenance data. It could offer full disassembly and assembly circuit diagram, working principle and element place anytime needed. It is the best assistant for maintenance man to make Mercedes obd.
SR2/2000/XP with the latest service pack installed.
Smart TAN Code: Opened special function in DAS program with Smart cars.
Benz star c3, c3 star, MB STAR C3, Mercedes Benz C3, Mercedes benz star C3, mercedes star C3. Bookmark.