text:
Yorkshire signs Haris Rauf after forming a partnership with Lahore Qalandars
byNews Desk
Yorkshire has announced its partnership with Lahore Qalandars of Pakistan Super League and has also signed bowler Haris Rauf.
🤝 Yorkshire County Cricket Club today announces that it has entered into a partnership with Pakistan Super League team, the Lahore Qalandars #OneRose
— Yorkshire CCC (@YorkshireCCC) December 21, 2021
Following a serious racism issue at the English club, Yorkshire announced a partnership with Lahore Qalandars of the Pakistan Super League (PSL), which includes a player exchange program, through which the county has signed the talented fast pace bowler Haris Rauf.
Kamran Akmal appointed head of selection committee for age-group trials
Yorkshire, who has been criticized for failing to develop South Asian cricketers on their doorstep, claimed the new collaboration would allow them to "learn from and emulate" the Qalandars' player development program, which provides opportunities and equipment to over 150 young players.
Haris Rauf will join Yorkshire as an overseas player for a portion of next season as part of an exchange scheme designed to allow international players to learn from one another.
Young players from Yorkshire will be able to play in Lahore on scholarship, and Pakistani cricketers will get the opportunity to visit England.
On top of that Yorkshire county club will visit Pakistan on January 16th to play a friendly game against Lahore Qalandars in their home ground, Gaddafi Stadium.
Former Yorkshire player Azeem Rafiq, who was born in Pakistan, accused the county of failing to appropriately deal with his complaints of abuse while at the club, claiming he was pushed to suicidal thoughts.
The whole scene caused the club's chairman and chief executive to quit in November, followed by the entire coaching staff earlier this month.
Yorkshire's new chairman, Kamlesh Patel, expressed his hope that the partnership would contribute to the creation of a county that is "welcoming and helpful to everybody."
"The work the Lahore Qalandars do both on and off the pitch is remarkable and can serve as a benchmark for clubs around the world, ours included, for how best to spot, foster, and support talent at all levels in the game of cricket," he continued.Interim director of cricket Darren Gough said he was "thrilled" to welcome Rauf, who has represented Pakistan in one-day and T20 cricket and was looking forward to learning from the player development program.
Tags: Haris RaufLahore QalandarslatestYorkshire
A source of economic, political, business, finance, health and sports updates.
On Wednesday in Islamabad, Pakistan defeated Palestine 11-3 in the West Asia Cup 2023. https://twitter.com/pakbaseball/status/1620719663293374473 Amjad and Zohaib of Pakistan...
Cricket player Azam Shah has grown accustomed to being judged more on the basis of his physical appearance than his...
Asma Ashraf, Pakistani woman gets prestigious French award


text:
Disney Casting Calls
You are at:Home»Disney Auditions»Walt Disney Studios feature film 'The Black Hole' casting information
Walt Disney Studios feature film 'The Black Hole' casting information
By BA on	 December 5, 2009 Disney Auditions
The Disney team that brought you "TRON Legacy" is now set to go into production on a new take of the 1979 Disney film "The Black Hole". Plot details are being kept secret, but the remake is expected to take a more "hard sci-fi" approach to black holes.
This film is being made by producer Sean Bailey, who was set to produce "20,000 Leagues Under The Sea", however Disney has canceled production on 20,000 Leagues in favor of this film.
See the post titled Headshot and Resume Information regarding how to submit for acting roles.
Submit photos and resumes by mail only.
No phone calls or personal drop-offs.
Principal Actor Casting:
Extras Casting:
Do NOT send photos and resumes to the production companies (they will most likely end up in the trash can), they do not cast the films. They hire casting directors who sort through the thousands of submissions.
500 South Buena Vista Street
Media Talent Group
9200 Sunset Blvd. Stuite 550
Idealogy
3000 Olympic Blvd.
Sean Bailey
Director: Joseph Kosinski
Writer: Travis Beacham
A new concept of the 1979 Disney sci-fi film, that followed a group of space explorers aboard the USS Palomino who come across a lost ship, the USS Cygnus, hovering outside a black hole. Inside the Cygnus, the explorers meet a scientist, commanding an army of faceless robots, who explains his crew deserted him as he planned to go through the black hole. The explorers soon discover that the robots are the remnants of the former crew and that the scientist has no intention of letting them leave.
By Alan Gray
Anaheim, CA Disneyland Resort Character Performer Open Call
By John Done
'Star Wars: Episode IX' to audition actresses for 'Mara' and 'Caro'
By B A
'Star Wars: Episode IX' set to begin casting new starring and supporting roles
Steven Bernstein Director and Writer on ActingUpRadio.com
How to Get Kids or Teens Into Acting or Modeling?
CONTEST ALERT! Win Amazing Prizes and the Spotlight You Deserve!
How to Really Audition for Disney
Before They Were Famous, They Were…
Archives Select Month September 2019 June 2019 January 2019 November 2018 October 2018 August 2018 July 2018 June 2018 May 2018 April 2018 March 2018 January 2018 October 2017 September 2017 August 2017 July 2017 May 2017 April 2017 March 2017 February 2017 December 2016 November 2016 October 2016 September 2016 August 2016 July 2016 June 2016 December 2013 November 2013 July 2013 June 2013 May 2013 April 2013 December 2012 November 2012 October 2012 September 2012 July 2012 May 2012 April 2012 February 2012 January 2012 November 2011 August 2011 June 2011 May 2011 April 2011 March 2011 January 2011 December 2010 September 2010 August 2010 July 2010 June 2010 May 2010 April 2010 March 2010 February 2010 January 2010 December 2009 October 2009 September 2009 August 2009 July 2009 June 2009 May 2009 March 2009 February 2009 November 2008 September 2008 August 2008 May 2008 April 2008 March 2008 February 2008 November 2007 September 2007 August 2007
Categories Select Category Acting Career Atlanta Casting Calls Casting Casting and Auditions Information Disney Auditions Disney Casting Calls Disney Talent Search Marvel Films Casting Calls Marvel Studios Movie News New York Casting Calls Pirates of the Caribbean: Dead Men Tell No Tales Press Release

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Vue3: Toggle Class on Click Yesterday I started working with Vue and have already learned quite a bit. Now I have seen, you can toggle classes directly on the HTML object via the @click event.
Unfortunately, I do not really succeed. With Blank Javascript no problem, but I want to implement this with Vue.
<li @click=" show = !show" :class="{ active: show }" class="nav-item dropdown">

setup() {
    const show = false

    return { show };
},

In this is "show" the class which i want to toggle.

A: This may be working fine
<script>
import { ref } from 'vue'

export default {
  setup() {
    const show = ref(false)
    return { show }
  }
}
</script>

<template>
  <li @click="show = !show" :class="{ active: show }" class="nav-item dropdown">toggle me</li>
</template>

<style>
  .active {
    background-color: red;
  }
</style>

Playground link

This is also a valid syntax btw
<script setup>
import { ref } from 'vue'

const show = ref(false)
</script>

You can also use :class="show && 'active'" if you prefer to not have to invert/think of the actual order every-time (personal preference, exactly the same at the end).

redpajama_set_name: RedPajamaStackExchange


Operation New Dawn Veteran. I was attached to the Seabees and deployed to Iraq in May 2011 till almost the end of that year. It was until part way through that deployment that I started to see through the hypocrisy that makes up the United States Government and Military.


text:
#Connectivity#5G#Networking
Nokia reaches 100 contracts as the 5G race continues
Nokia signed 17 new 5G contracts in Q3, a figure that helps make up for losing a $6.6bn Verizon contract
|Oct 6| 4 min read
Nokia won 17 new 5G contracts in Q3 2020, bringing the total number of commercial 5G deals signed by the company to 100 deals with individual customers, and representing 160 commercial engagements.
Most recently, Nokia signed a new deal with BT to become the UK telecom company's largest infrastructure partner, providing equipment and services across BT's UK network. The Finnish firm has also been expanding its enterprise customer base, with the recent addition of deals with Deutsche Bahn, Toyota Production Engineering and Sandvik. Enterprise customers now account for 12% of the company's 5G contracts.
This announcement comes on the heels of a tough summer for the Finnish tech giant. Korean electronics leader Samsung recently announced that had been selected by Verizon as the company's 5G network partner in the US, following the termination of Verizon and Nokia's relationship earlier in the year. The deal will reportedly net Samsung $6.6bn and provide the Korean company a vital inroad into the telecom equipment industry.
Currently, Huawei controls the largest share of this market, with 28%, with Nokia and Ericsson controlling 16% and 14% respectively. In 2019, Samsung held just 3% of this industry, but looks to be expanding aggressively into markets outside of China. Unfortunately for Nokia (and Ericsson), this puts them in direct competition with Samsung.
For now, however, Nokia appears to be well-positioned to continue growing apace. Huawei is experiencing continued issues due to its fractious relationship with the US and the Trump administration, and Nokia still has a strong presence in the US market - despite its departure from Verizon.
AT&T, T-Mobile and Sprint (pre merger) have all used Nokia as a parter on their 5G network rollouts, and isn't far behind its local competitor, Ericsson, which hit the 100 deal mark in August. In the same month, Nokia reportedly contributed to the world's first large-scale 5G SA launch with T-Mobile in the US.
Read about the future of 5G in zero gravity
The future of 5G in zero G(ravity)
6G to launch in 2026
Verizon recognised as best US telco network by RootMetrics


This software powers the XD/XH/XA/XR access points and is the backbone of Xirrus distributed architecture. It optimizes resources, manages performance and enforces policies in each AP. Together with the cloud based or the on-premises management, AOS delivers superior user experience and simple management of Wi-Fi network.


text:
/**
 * @file    templates/chcore.c
 * @brief   Port related template code.
 * @details This file is a template of the system driver functions provided by
 *          a port. Some of the following functions may be implemented as
 *          macros in chcore.h if the implementer decides that there is an
 *          advantage in doing so, for example because performance concerns.
 *
 * @addtogroup core
 * @details Non portable code templates.
 * @{
 */

#include "ch.h"

/**
 * @brief   Port-related initialization code.
 * @note    This function is usually empty.
 */
void port_init(void) {
}

/**
 * @brief   Kernel-lock action.
 * @details Usually this function just disables interrupts but may perform more
 *          actions.
 */
void port_lock(void) {
}

/**
 * @brief   Kernel-unlock action.
 * @details Usually this function just enables interrupts but may perform more
 *          actions.
 */
void port_unlock(void) {
}

/**
 * @brief   Kernel-lock action from an interrupt handler.
 * @details This function is invoked before invoking I-class APIs from
 *          interrupt handlers. The implementation is architecture dependent,
 *          in its simplest form it is void.
 */
void port_lock_from_isr(void) {
}

/**
 * @brief   Kernel-unlock action from an interrupt handler.
 * @details This function is invoked after invoking I-class APIs from interrupt
 *          handlers. The implementation is architecture dependent, in its
 *          simplest form it is void.
 */
void port_unlock_from_isr(void) {
}

/**
 * @brief   Disables all the interrupt sources.
 * @note    Of course non-maskable interrupt sources are not included.
 */
void port_disable(void) {
}

/**
 * @brief   Disables the interrupt sources below kernel-level priority.
 * @note    Interrupt sources above kernel level remains enabled.
 */
void port_suspend(void) {
}

/**
 * @brief   Enables all the interrupt sources.
 */
void port_enable(void) {
}

/**
 * @brief   Enters an architecture-dependent IRQ-waiting mode.
 * @details The function is meant to return when an interrupt becomes pending.
 *          The simplest implementation is an empty function or macro but this
 *          would not take advantage of architecture-specific power saving
 *          modes.
 */
void port_wait_for_interrupt(void) {
}

/**
 * @brief   Halts the system.
 * @details This function is invoked by the operating system when an
 *          unrecoverable error is detected (for example because a programming
 *          error in the application code that triggers an assertion while in
 *          debug mode).
 */
void port_halt(void) {

  port_disable();
  while (TRUE) {
  }
}

/**
 * @brief   Performs a context switch between two threads.
 * @details This is the most critical code in any port, this function
 *          is responsible for the context switch between 2 threads.
 * @note    The implementation of this code affects <b>directly</b> the context
 *          switch performance so optimize here as much as you can.
 *
 * @param[in] ntp       the thread to be switched in
 * @param[in] otp       the thread to be switched out
 */
void port_switch(thread_t *ntp, thread_t *otp) {
}

/** @} */

redpajama_set_name: RedPajamaGithub


A Piece of My Mind: Here is my June shower update!
Here is my June shower update!
Now the debate in my head on how to present this data rages on. Being an economist, I can tell you that I can fix these numbers (much like statistics) to say whatever I want them to say. Rather than making the call and dealing with the consequences, I am going to present two different methods.
Either way, I am doing well and am under the 5 minute challenge, but if I do it per shower, I am over my personal goal of four minutes. Not bad for month one, but there is still room for improvement.
Awesome! I just may be inspired to take this challenge, too. Do you shut off the water to shave, or how do you shave and shower in under 4 minutes?
Quickly? LOL! I don't use shave gel or anything. Basically, I quickly wash my hair, do the underarms and then once or twice a week do the legs, but I almost never shave above the knee. If I need to do a more thorough job, I turn off the water. Oh, and I wash my hair and body at once to help save on the rinse time.


The Town of Braintree requires that all dog owners must register their dog(s) each year.
The purpose of this Ordinance (PDF) is to protect the health, safety, and welfare of all the inhabitants who frequent and live in the town. It is further the purpose of this ordinance to prevent the needless health hazards caused by dog bites and dog feces upon public and private properties.
The 2019 dog licensing period will run from April 1 until June 30. All renewal requests either in person, by mail or online, must be submitted by this time to avoid a late fee. The licenses will be valid from April 1, 2019, through March 31, 2020.
Beginning April 1, 2019, you can register your dog online for the current licensing period. Use Braintree's Online Dog Licensing System to license or register your dog.
* Please note that online renewals must have up-to-date rabies inoculation information.
The Annual Rabies Clinic will be held on Saturday, May 11, 2019, at Town Hall and will run from 10 a.m. until Noon. The vaccination fee per animal will be $15. Clinic sponsored by the Town of Braintree, Braintree Jaycees and Dr. Joseph Cosman, DMV of the VCA.
The Office of the Town Clerk will be open during normal business hours for dog license renewals and new licenses.
Anyone seeking more information may contact the Office of the Town Clerk at 781-794-8240.


Title: Urban rejuvenation through collective (en bloc) sales in Singapore: Property rights or property wrongs?
Citation: Christudason, A. (2012). Urban rejuvenation through collective (en bloc) sales in Singapore: Property rights or property wrongs?. Journal of Urban Regeneration and Renewal 5 (1) : 51-64. ScholarBank@NUS Repository.
Abstract: In land-scarce Singapore, which covers only 693 km2, the government is constantly grappling with the issue of judicious allocation of resources between competing uses. In order to generate more housing stock for an increasing population, which is expected to hit 6.5 million by 2027, the government actively promotes private-sector-led redevelopment and urban rejuvenation. One of the measures taken to facilitate such redevelopment involved the enactment of radical legislation concerning collective sales. In a collective sale, all owners of separate units within a development agree to sell their properties collectively and at the same time to a single buyer. Such a sale is feasible when the site has redevelopment potential. In the past, when a collective sale of a development was proposed in Singapore, there had to be unanimous consent among the property owners. Arising from legislative amendments in 1999, however, where just a majority of owners in a development agreed to sell their units, the unwilling minority would be required to sell theirs too. Not unexpectedly, this law was perceived as an abrogation of fundamental property rights in Singapore. It evoked much discontent, resulting in numerous cases being brought before the Strata Titles Board and courts. Myriad objections were raised by the minority, and several cases which came before the Strata Titles Board and the Singapore Courts are singled out in this paper for further discussion. They showcase the legal complexities that surround the central issue of how and to what extent the minority's property rights can (or should) be safeguarded in the face of majority rule in collective sales. While the Canadian provinces of New Brunswick, Nova Scotia and Ontario had already implemented 80 per cent majority rule for collective sales in 1969 and 1989, respectively, this paper provides an Asian perspective by focusing on the Singapore position and making reference to the position in Hong Kong, which not only faces similar land scarcity and urban renewal issues, but also has similar legislation. It cannot be gainsaid that one of the positive effects of the collective sale phenomenon in Singapore has been land maximisation and urban rejuvenation, but in the aftermath of this phenomenon, this paper posits that the sacrifice by the minority of their property rights has resulted in property wrongs. © Henry Stewart Publications.


clare e. potter is a writer, performer and educator from Cefn Fforest. She spent ten years in the Deep South where she did an MA in Afro-Caribbean literature. She teaches creative writing at Cardiff University and won the John Tripp Award for Spoken Poetry. Her work as been published in Planet, New Welsh Review, Wales Arts Review, Mslexia, Cahoots Magazine, Cambrensis, The Seminary Ridge Review Journal and various anthologies. Her first poetry collection is spilling histories. Last year, she received a bursary from Literature Wales and has written a subsequent collection, A Certain Darkness. She has written for the Welsh National Opera in community theatre and singing projects, and has received various commissions to write poetry in collaboration with artists: a poem for the new Keir Hardie Health Park, and street poetry in the pavements of Pontypridd, for example. She has read at the Hay Festival and at the Smithsonian Folk-Life Festival. She is currently writing two librettos and a film script, working on a jazz/poetry collaboration and about to begin a collection of poetry in Welsh.


Acumatica has announced that it has raised $25 million in a series C funding round led by Accel-KKR. This is the second significant investment into an ERP vendor that claims it is the worlds fastest growing.
The money will be spent on two things. Supporting its growth trajectory and developing the AI and machine learning capability within its ERP software.
This funding round doubles the total of funds previously raised and almost certainly dilutes the investment made by MYOB in 2014 of $13.3 million.
Earlier this year Accel KKR also invested in Kimble Applications another fast growing company. Kimble develops Professional Services Automation software based on the Salesforce platform. This is the fifth investment it has made this year, other investments include ToolsGroup, Insurance Technologies Corporation, FastSpring and Kimble Applications . Accel KKR also invested in another ERP application Kerridge Commercial Systems in 2015.
It is somewhat unusual to have two potentially competing products in the portfolio but Kerridge works more in the HVAC and Automotive aftersales market. Acumatica targets a range of industries including Field Service, Commerce, Manufacturing, and Construction in which it has developed specific vertical editions. Its growth has been stunning, achieving 100% revenue growth over the last three years. It now has more than 4,000 customers across the globe.
Unusually it works through indirect channels solely with an extensive partner network. There are three different approaches. It has more than 400 partners. It engages with ISVs to further develop the software. Acumatica also has a white label solution that Visma (Northern Europe) and MYOB (Australasia) utilise.
Joe Porten, Principal at Accel-KKR commented: "Acumatica has built a differentiated cloud ERP platform with a loyal and fast-growing customer base and global reach through its channel partners".
Accel KKR is selecting its investments wisely. While Acumatica has enjoyed huge growth over the last three years it will want to continue that growth. It has only 220 employees currently. Expansion into overseas markets will mean that it will need to grow and support the channel partner ecosystem in the future.
This is also the right time to invest. With Oracle investing heavily in its expansion of NetSuite, Acumatica needs to increase its presence internationally or risks losing out. However, compared to the sums invested by Oracle, Acumatica will need to spend the money wisely. If they want to build further AI and Machine learning capability, will they build it organically or will they look to acquire any company? Accel KKR can certainly advise them through acquisitions. This is an approach that KCS has taken over its geographic expansion in the last few years.


text:
Shop Cherry Hill Mall Like A Fashionista
By Heather Morse
We all know one – the woman who always (and we mean always) looks trendy and put together with great accessories, to-die-for shoes and figure-flattering pieces. We convinced three SJ fashionistas to let us in on their stylish secrets and give us a peek at their favorites for the current season.
Their go-to destination for finding fabulous fashion? The Cherry Hill Mall. We followed our style stars for a day of mall shopping and got a feel for what it takes to put together their total style package. Get ready for some hot advice you can use to define and refine your own look. SJ fashionistas, this is for you!
Sarah Gleeson
Shopping isn't just a fun pastime for Sarah Gleeson – it's actually part of her job. As a personal stylist and fashion blogger, she's constantly searching for the perfect pieces to keep her look ahead of the curve.
"I'm lucky because I always have a valid reason to shop, and I absolutely love to shop," she says.
Fedora, Forever 21, $12.80; jacket, Leith at Nordstrom, $74; blouse, Ace Delivery at Nordstrom, $74; skirt, Forever 21, $17.80; bracelet, Forever 21, $2.99; clutch, Brighton Collectibles, $130; shoes, Tildon at Nordstrom, $69.95
This spring, the fashion-forward Collingswood resident has found herself mixing unexpected patterns to reflect her one-of-a-kind style. "I love to put on something tough, like a military-inspired jacket, with something soft, like a lacy skirt. It looks feminine and sweet, but with a bit of an edge," she says.
Though plenty of stores like GUESS by Marciano, Banana Republic and Forever 21 are full of trendy prints ranging from floral to tribal, "many women are afraid to mix patterns because they're afraid they don't go together," says Gleeson. "The trick to making it work is finding pieces in a similar color palette. Blue polka dots can look amazing with blue stripes, for example."
Gleeson also isn't afraid to make a memorable outfit with unexpected pairings to. That may mean putting on a graphic T-shirt with a floaty tulle skirt, or layering a chunky sweater over a formal dress.
"Sequins are the perfect example," she says. "They're really popular right now, but so many people think they're only for nighttime. I love wearing them in the daytime – it's unexpected, and when the sunlight catches them, they're beautiful.
"Too many women buy beautiful things only to leave them in their closet," she says. "I'm a firm believer that if you love a piece of clothing, you can make it work as part of your everyday wardrobe. You just have to be willing to be a little daring and maybe step outside your comfort zone. But mainly you just have to have fun with your clothes."
Tamirra Williams
Tamirra Williams spends a lot of time running from appointment to appointment, but she never leaves home without first putting on a terrific pair of shoes.
"My style is definitely centered around shoes – I think they're the perfect way to take any outfit from drab to fabulous," says Williams, a Williamstown resident who is the vice president of adult residential services for the SJ nonprofit Twin Oaks and the mother of an active 7-year-old boy. "You could say I'm a shoe fanatic."
Dress, White House | Black Market, $170; jacket, McGinn at Nordstrom, $320; shoes, Sam Edelman at Nordstrom, $194.95; earrings, Forever 21, $4.80; planner, Brighton Collectibles, $179
Being the shoe lover she is, Williams says she has a hard time picking her favorite trend of the season. "I find myself gravitating toward shoes with bold colors and playful patterns, though. Greens and blues are big this spring, and I'm loving the coral color that's popular. I've also seen some great lace detail on heels at several stores."
And whether you like your shoes high or low, flashy or subdued, Williams insists there's at least one trend that everyone can enjoy flaunting this season. "I personally love the tall, strappy heels that are in stores like BCBGMAXAZRIA and Nordstrom, but they're not for every woman," she says.
Those who prefer lower-heeled styles will find an assortment of wedges and shorter sandals in mall hot spots that include White House | Black Market and COACH. "What's great about those styles," she says, "is that you can look professional wearing them with a dress at work, or you can pair them with jeans for a more laid-back look."
Williams says you can always opt for a pastel shade – think mint green or pale pink – if the more vibrant, neon-inspired hues that are also hot this season aren't your thing. "Apricot is a great color to mix and match because it looks good with so many other colors."
No matter your style, Williams insists "a great shoe can help your outfit look put together and fashionable. Don't be afraid to be daring and try something new – you never know how shoes in a different style or bold color can transform your entire look."
Tinamarie Dorfner
For Tinamarie Dorfner, fashion is all about self-expression.
Blouse, Michael Kors, $79.50; pants, Michael Kors, $89.50; jacket, Caché, $148; scarf, Henri Bendel, $138; watch, COACH, $128; shoes, Calvin Klein at Macy's, $119
"I went to Catholic school growing up, so I was stuck wearing a uniform for years," she says. "The day I graduated high school, I was so excited I could finally put together outfits that showed my style. Some of them were a little crazy, but it was great to be able to experiment."
After spending years building her wardrobe, Dorfner has since cultivated a look that reflects her vibrant personality and is perfectly suited for her happy – though sometimes hectic – lifestyle. "I have three kids, I'm the administrator for a medical practice and I host a cooking show on the Comcast Network, so I need clothes that can go from work to my kids' practices to a meeting," says the Moorestown resident.
It's a dilemma many busy women can relate to, and the solution, says Dorfner, is accessories. "The right accessories sharpen your outfit, make you look younger and show you're fashion-forward, even if you're wearing something that's been in your closet for years. And what's great is that you can spend a little or spend a lot on accessories, depending on your budget."
This season, Dorfner is especially fond of colorful scarves and necklaces paired with everything from business suits to jeans. "You'll see bright pinks, blues, greens and yellows in stores like Henri Bendel and Caché, and I love paring them together. You never used to see something like a yellow scarf and a blue dress together, but it works. You don't have to be constrained – anything goes," she says.
The key to successfully pulling off the must-have accessories of spring is to keep things simple. "You shouldn't go overboard with too many pieces," Dorfner advises. "Pick one accessory that adds pizzazz – if you're wearing a fabulous scarf, keep your jewelry minimal. Accessories should add to your outfit and complement your personality, not overwhelm it."
Full Circle: Gun Control
Best Dentists 2013
Wide Awake: Wide Awake


Northern Kentucky University (NKU) seeks excellence by enriching its educational environment and culture through the diversity of its administration, faculty and staff and by embracing inclusiveness, equity, and global awareness in all dimensions of its work. NKU is an Equal Opportunity/Equal Access/Affirmative Action institution. We encourage applications by members of diverse groups and by persons with a demonstrated commitment to issues of diversity and experience in achieving goals relative to inclusive excellence.
Located seven miles from downtown Cincinnati in an area offering an outstanding quality of life, NKU is a nationally recognized metropolitan university committed to active engagement with the Northern Kentucky/Greater Cincinnati region of nearly two million people. Any candidate who is offered a position will be required to go through a pre-employment criminal background check as mandated by state law.
Northern Kentucky University is a tobacco-free campus.


text:
Black Mass aka Black Lies
October 11, 2013 Uncategorizedmtc9393
Catching up on my reading I've also come across the new book by Lehr and O'Neill on Whitey. Much of it is a repeat if not retraction of some of the material that was set out in Black Mass. No longer do they maintain the position that there was the secret Wollaston Beach meeting where FBI Agent John Connolly first recruited Whitey with the idea that he would help him fight the Mafia. They suggest now that Connolly was going to recruit Whitey as an informant which he did "In a series of meetings throughout 1974, which included at least one get-together that also involved Stevie Flemmi and Dennis Condon at a coffee shop in the close suburb of Newton, Connolly drew from the playbook his predecessors have developed."
They say that Connolly's ultimate pitch was "that Boston Mafia underboss Gennaro "Jerry" Angiulo and his five brothers stationed in the city's North End neighborhood were out to get Whitey . . . that the Mafia had a slew of its own "sources" at the local level of law enforcement, and that Whitey therefore needed a friend at a higher level. The FBI would be an ideal match."
This is more in line with the story put out by the other Globe authors Cullen and Murphy in their book as the basis for Whitey being recruited by Connolly. The authors don't even recognize the internal contradiction in their writings. First, during this time period Winter Hill and Whitey, as the authors had earlier written, were on good terms with Angiulo, they had taken on the contract of wiping out Indian Al and his gang. Howie Winter and John Martorano were meeting directly with Gerry Angiulo. The idea Whitey would believe Connolly's pitch when his partners were in direct contact with Gerry begger belief. Next, the idea of Connolly telling Whitey he could use connections in law enforcement makes Whitey look like a naive waif. Whitey figured this out a long time before Connolly came along.
The overall problem is none of those who have written about Whitey have any idea how it was he first got hooked up with Connolly. They sit around and come up with things like above which are contradictory to other parts of their story. Nor have they dealt with the idea that Stevie Flemmi never stopped being an FBI informant even though not carried on the books as such. They also point to the FBI's opening a file on September 18, 1975, as proof that Whitey was an informant (the authors have him as a Top Echelon informant at that time but it wasn't until later he was designated as that) when we know that there is no relation between an FBI informant file and reality.
There is much like that demonstrating the authors mistaken assumptions and misleading information. What prompted me to write this post however was not the above. I'm just coming to the end of Chapter 16 and the authors are writing about the Richie Castucci case. The federal prosecutors with their gangster witnesses have put it out that Castucci was murdered because he was an FBI informant and Connolly tipped of the gangsters to that fact. I've previously shown that was not the case in my book Don't Embarrass The Family.
The reason why Castucci was killed was because it allowed Winter Hill to get out of debt it owed the NY Mafia. Castucci was the courier who would take the money owed by Winter Hill to the NY Mafia. Winter Hill came up with the idea that it could wipe out its $150,000 plus debt by murdering him and then telling the NY Mafia people that they had paid him the money. It lured him to Somerville telling him it had the money, gave him the money, and then killed him. It told NY someone else must have killed him and taken the money. It saved itself a lot of money.
Lehr and O'Neill write: "Castucci's killing at the end of the nation's bicentennial year marked another historic milestone. Castucci was the first murder resulting from a Connolly tip — a killing, no less, of an FBI informant who was cooperating against them. "Castucci was the first [informant]," a federal judge later ruled, "killed by, or at the behest of Bulger and Flemmi after the disclosure of his identity to them by Connolly."
The judge's quote is taken from a September 5, 2006 decision by Judge Lindsay who noted: "Castucci was the first of four FBI informants . . . . " with the rest as set out by the authors. Judge Lindsay based his findings on Stevie Flemmi's testimony. It may be he did not have the information on ripping off the NY Mafia from Flemmi but in any event Flemmi is far from a paragon of truth as we've seen.
Lehr and O'Neill then note: "Castucci killing was the "gateway killing." . . . Connolly had gone the distance — violating every FBI rule in the book, exposing an informer, and conspiring, in effect, in murder?
The authors leave out a critical bit of information that they should have told the readers of their book. It is this big deliberate deception that makes their product suspect and their motives questionable. The information does not fit into their thesis so they omit it.
They fail to mention that in 2002 Connolly was charged with obstruction of justice by disclosing that Castucci was an informant. This would be the only time the government would have to prove to a jury that was the case. The government failed. Connolly was acquitted of that charge by a federal jury in Boston. I would suggest that is an important piece of the story. I wonder why the authors didn't think so.
← Howie Carr's Latest In His Comic Book Series	The FBI At Work – Our Secret Police →
9 thoughts on "Black Mass aka Black Lies"
29cherokee says:
Thanks for your tireless efforts to keep 'em honest on the facts of this sordid mess. It is only through your work that I have realized that Black Mass was as much a vehicle of disinformation as anything uttered by the professional liars at the FBI.
Thank you for your kind words. Also, I got your email and I'll respond to it in a bit. But as to your question whether I am semi-retired the answer is yes. My inattention to the blog lately is a reflection of this. Tomorrow night I'm giving a talk on Whitey to a group and I've spent some time figuring out how to take the barrel full of worms and put the best ones into a cup. It's been a hard process for me and reminds me how much a good teacher must work to put together a lesson plan.
Even when the blog was steaming along and I was making the daily trek to the trial I considered myself semi-retired. As you know I started another blog "hubgab" but find keeping that going takes me too far out of the semi-retire status that I enjoy.
Thanks for reading and for your contributions.
Matt: a few thoughts:
1. I'd sign up for your letter-writing campaign, but I'm afraid it'd only be you, me and few cousins from Southie-Savie writing the letters. Hopefully you'll get "Ten Stout Hearted Men" (or women) to enlist. A suggested letter campaign: Write the FCC to restrict Howie Carr, Billy O'Reilly, Ann Coulter, Chris Matthews et al from engaging in Commercial Speech by selling their books on line. Make them pay advertiser's fees to do so. Commercial speech can be regulated.
2. Just a bit more about our corrupt Press/Media, whose corruption of thought, lies and disinformation, has been amply demonstrated in your blog: Last week, the New York Times, which in my humble opinion is a liberal rag for smarty-pants, for Post-Grads; it has a lot of info (background, historical, socio-political; most of it distorted claptrap in most articles—but it does have A Lot of Info); well the NYT printed an Op-Ed column blaming "The Republicans" for the Shutdown; a day later, it printed five (5) letters to the editor about the Op-Ed column. All five letters blamed "The Republicans" for the Shutdown.
3. I talked to a guy down the gym last week who said he blamed "The Republicans". His job: a federal white color worker. Someone reported that, in one survey, almost 100% of the voters in the Federal Department of Education voted for Obama. Group Think!! No diversity of thought in the FEDs. (How many political conservatives work for the Boston GLOB?)
4. I detest the current crop of Republican and Democrat politicos whose only interest is money, power and re-election. They exempt the President and Congress from the full Obamacare plan (Congress gives itself subsidies to buy insurance; no other American gets subsidies; the President's Office and Staff are exempt (that's so he'll sign the bill giving Congress subsidies.) The Pres and Congress make sure certain favored big businesses and unions are exempt from Obamacare (at least for the short term.: Waivers, they call them.)
CONCLUSION: Throw ALL OF THE UN-AMERCAN bums out! All of them, including everyone in the DOJ. Bring in new idealistic young people whose God is not gold, who respect the Constitution and Laws of the U.S. and who respect elemental principles of Fairness and Equal Justice (not dainty kid-glove treatment for the Congressman's wife and prosecutorial brute blunt force for the bookie's wife and for a septuagenarian City Councilor who the FEDs prosecuted, bankrupted and imprisoned for three years after they forced him (a sting) to take an envelope with a few hundred dollars in it. Three years for $1,000; twelve years for 20 murders.)
P.S. End all joint Press-Judiciary Committees on both the state and federal level: their transparent purpose and blatant effect is "inside trading of info": they favor, protect and promote each other ("one hand washing the other" while they wash their hands of justice, fairness and impartiality), and both courts and press keep the American people at bay and in darkness. End all joint Government-Private Sector Partnerships. Government should have no favored businesses (especially not the press), no "special" partners (special interests) and no favored "parties." Cut THE FED WORKFORCE IN HALF; START WITH Wash. D.C., THE DOJ especially AND then clean house at the MOAKLEY COURTHOUSE. End big government, the plantation mentality, the police state, the spy state, and intemperate-judge-ruled America. Oust those judges who think they can "feel" justice like they feel a pea under a mattress. Oust such delusional judges who make findings of fact in a civil case against a person who is not represented by counsel.
Just got this email from Ed Tatro
Still waiting to take Matt and Ed out sandwiches at Doyles Tavern in JP
FROM AN OFFICE BUILDING WITH A HIGH-POWERED RIFLE — DON ADAMS
EX-FBI AGENT EXPOSES SPECIFIC AGENTS WHO COVERED UP THE KENNEDY ASSASSINATION.
HE SHOWS SPECIFIC FRAUDULENT AND DOCTORED FBI DOCUMENTS IN THE CASE IN HIS BOOK.
I WILL BE INTERVIEWING HIM IN TWO WEEKS IN ILLNOIS VIA SKYPE.
I just finished the book. I thought it was very well written and interesting. With all due respect to the author it seemed to go into a lot of detail.When you come back live I would like to go over a few John C points. It was well worth the time to read if for entertainment if nothing else. Good details on how he was caught. The FBI would not win any awards for that.
Henry Barth says:
Off-topic, but a further example of the Feds newest "war on crime" which has morphed into fighting everything:
Preston, Idaho is a town of roughly 5,000 people that earned brief notoriety a decade ago as the setting for the whimsical film "Napoleon Dynamite." It is blessedly devoid of violent crime, and has no need for its six-officer police department.
Yet Chief Ken Geddes believes that Preston's superficial placidity disguises the potential for apocalyptic violence. At least that's what he's saying to pre-empt potential criticism of his decision to acquire a combat-grade armored vehicle from the Department of Homeland Security.
http://www.lewrockwell.com/2013/10/william-norman-grigg/every-little-town-with-a-cop-tank/
Matt and N: Right on!!! Lehr and O'Neil and Cullen and Gelzinis and Howie Carr perpetually lie both by direct commission and by deliberate omission. Here, Matt exposes Lehr and O'Neil as grotesque liars: they omit two crucial facts: (1) John Connolly was acquitted by a Federal Jury after a lengthy federal trial in 2002 of leaking any information that led to anyone's death. Not guilty!!! Specifically, not guilty of any involvement in Castucci's, Halloran's or anyone else's murder. In that criminal trial the FEDs put on known serial perjurers (Salemme (subsequently convicted of perjury) and Morris and Weeks (who fancifully boasted having "six FBI agents with machine guns on the payroll")and even though these career criminals lied through their teeth, Connolly was fully acquitted of leaking any information that led to anyone's death. (2) In a Civil Trial in 2006 (?) where John Connolly was falsely found by a single judge, Lindsey, "as a matter of fact" to have leaked info, please consider these facts: (A) John Connolly was not represented by counsel in the Civil Trial; and (B) both the civil plaintiffs (victims' families) and the defendants (the FBI and DOJ) singled out John Connolly and threw him under the bus; both painted him "black as night"; both portrayed him as a "rogue cop"; (no one testified in his defense.) He was everyone's scapegoat. Judge Lindsey is a fool for falling for the plaintiffs'/cefendants' false claims that John Connolly led the FBI/DOJ astray. The higher ups in the FBI/DOJ were and are rotten to the core. But that's "justice" in America. Find a scapegoat on the lower rung of the FBI/DOJ/Homeland-Security ladder and hang that man to the nearest tree; hang the man who is not represented by counsel. Evil persons who purport to be "reporters" are outright liars, flagrantly and unforgivably lying by what they include and leave out from their "books", "columns" "talk-shows", their home-spun fairy tales, their calumniating horror stories woven out of venom and their personal biases. Blame O'Neil, Lehr, Cullen, Howie Carr et al who have been lying to the American people for decades. They've engaged in a Personal Vendetta against one great American and his family and friends: Billy Bulger: they are part of the evil Zeitgeist whipped up in Boston to get the conservative-hard-working-pro-life-pro-family-faithful-church-going-Irish-Catholic-intellectual-political-leader from South Boston: William Bulger. CONCLUSION: So reflect on (A) John Connolly's Criminal Trial where the Federal jury acquitted him of any involvement in anyone's murder and (B) the Federal Civil trial where Connolly, unrepresented by counsel, was scapegoated and lynched by the judge, plaintiffs' counsel and FBI/DOJ's lawyers, who failed to provide him any defense. A trial where all sides say before trial: "This man is liable." Some trial: It makes me sick to my stomach to think about how corrupt our society has become and the press is a co-conspirator in the corruption. Moakley Courthouse is a Temple of Iniquity. The Globe, too.
n connolly says:
Everything the authors, prosecutors and judges said about FBI leaks were false. The Halloran case refutes that bogus theory. People killed because of law enforcement leaks is a total fantasy. Were O'Toole, O'Sullivan, Barrett, Connors, Veranis, King and Leonard killed because of a leak. Absolutely not. Everyone in Boston knew Halloran was co operating with the law. OC hitmen don't make bail on 1st degree murder cases unless a deal was in place. Remember Connolly was found nor guilty of leaks in the Castucci, Halloran and Callahan matters by a jury of his peers in Boston. Yet a dishonest judge gave him ten years for the trivial things he was convicted of. Martha Stewart got three months for similar acts. Turner gets three years for less than a grand and the Congressman's wife is offered probation for eight million. The Moakley Courthouse is a cesspool of corruption. 2.Read parts of the Flemmi book. Found the claim that Donahue was the get away driver in the Pappas murder interesting. If true Donahue is no victim. If he was an accessory to Halloran's murder. If he facilitated his escape. If he knowingly associated with a known killer his portrayal by the media as an " innocent" is deceitful. A Bob Dylan song said " the witnesses all lied and the press went along for the ride". He could change the title from " Hurricane" to John Connolly and the lyrics would fit.
Rather Not says:
N, If the book "Rifleman" has information regarding unsolved cases, which it definitely does, will those be pursued? As a layman, I don't know the legal technicalities, but is it still possible?


text:
Rethinking Body Property
Florida State University Law Review, Vol. 44, No. 1, pp. 193-259 (2016)
Northeastern University School of Law Research Paper No. 358-2019
69 Pages Posted: 8 Nov 2019
See all articles by Kara W. Swanson
Kara W. Swanson
Northeastern University - School of Law
Date Written: 2016
Body products, including blood, gametes, and kidneys, are a routine part of contemporary medicine. They are also controversial. There is a strong preference for donated gifts, based on an intuition that gifts are pure, altruistic, and healthy, and that purchased products (commodities) are tainted, exploitative, and dangerous. Law and policy reflect this dichotomy, preventing market exchanges either by declaring body products non-property or banning sales by the supplying body. Yet with growing scarcity leading to injustice in the allocation and harvesting of body products, calls to allow sales have been increasing, motivating proposals to increase supplies by compensating bone marrow and breast milk suppliers.
This Article contributes to these pressing debates in two ways. First, it uses original historical research to demonstrate that the morally inflected gift/commodity dichotomy is a historical artifact, neither universal nor inevitable, and thus need not be the assumed basis for law and policy. Second, in a novel use of the intellectual history of property, it brings body products for the first time into the framework of recent progressive property scholarship to rethink body property.
The first body products, disembodied breast milk and blood, entered medicine at the turn of the twentieth century. I argue that for a half century, these body products were property-in-action, bought and sold as a means to the medically defined ends of advancing recipient and supplier health. The dichotomy and condemnation of sales emerged only later, as body products transitioned to property-at-law. I argue that the focus on supplier compensation was not a needed correction to marketplace harms, as commonly assumed, but rather a result of (i) medical opposition to single-payer health care, (ii) product liability law, and (iii) racism. This transition, analyzed in light of historical trends in property theory, is revealed as a shift to a narrower understanding of body products as property, presumed to satisfy only the individual preferences of market participants.
Using this analysis, this Article offers guidance for rethinking body property. Exposing body product exceptionalism within the law of property, this Article uses history to demonstrate how body products, like other forms of property, can have purposes beyond individual preference satisfaction. In place of regulation focused on banning market-alienability, the law of body products as property can be theorized and rewritten to focus on the ends of patient treatment and public health, incorporating the use of regulated markets to serve the goals of increased access to medical treatment while also avoiding supplier exploitation.
Keywords: body products, property, breast milk, blood, kidneys
Swanson, Kara W., Rethinking Body Property (2016). Florida State University Law Review, Vol. 44, No. 1, pp. 193-259 (2016), Northeastern University School of Law Research Paper No. 358-2019, Available at SSRN: https://ssrn.com/abstract=3481165
Kara W. Swanson (Contact Author)
Northeastern University - School of Law ( email )


41 year-old male was recently diagnosed as having multiple sclerosis (MS) after episodes of leg and shoulder weakness and parasthesis. Lately he experiences dizziness. His MRI showed several demyelinating lesions, other ancillary tests showed demyelinating damage to the auditory and visual pathway. Currently he has no functional or sensorial deficiencies. He was offered several immunomodulatory treatment options: Rebif, Betaferon and Copaxone, and asks about their pros, cons and complications, and about the differential diagnosis.
I have concerns regarding the diagnosis of MS and would like to understand what other illnesses may explain my complaints (i.e. what is the differential diagnosis).
Moreover, having been diagnosed with MS, I would like to know what is the best timing for treatment initiation. I am also interested in understanding all relevant treatment options, pros, cons and complications.
I am a 41 year-old male, and was recently diagnosed as having multiple sclerosis (MS).
This year I had most probably only one relapse episode. Expanded Disability Status Scale (EDSS) is currently zero and I currently have no functional or sensorial deficiencies.
After being examined in the Multiple Sclerosis Center, Cheim Sheba Meical Center, Israel, I was offered immunomodulatory treatment, with the following options: Rebif, Betaferon and Copaxone.
The symptoms and ancillary tests that you describe are consistent with a diagnosis of multiple sclerosis. You had at least one clinical episode in 2007 and an MRI consistent with MS at the time (although this is only by your report). In addition the VEPs were abnormal. Thus in 2007 we would have given you the diagnosis of "clinically isolated syndrome". For a diagnosis of MS you would need the occurrence of another clinical event or new MRI lesions.
According to your note, you have one additional lesion on the MRI from 2009 and the BEARs are now abnormal. This then provides evidence of dissemination in time and confirms the diagnosis of MS.
The differential diagnosis depends on what the MRI lesions look like. If they have the typical shape and distribution, then there would be little doubt about the diagnosis. In general, when we see a new patient we order blood tests to rule out lupus or other rheumatologic diseases.
As far as treatment, we recommend starting as soon as possible so as to prevent irreversible damage to the central nervous system. In studies where a group of patients receive the test drug while another group received placebo, the placebo treated patients never "catch up" with the treated group even after they receive the real drug.
The major beneficial effects of medications is the prevention of relapses and new MRI lesions.
- Betaseron (interferon beta 1b) a subcutaneous injection taken every other day.
- Avonex (interferon beta 1a) an intra muscular injection taken once weekly. A low dose of interferon beta 1a.
- Rebif (interferon beta 1a) a subcutaneous injection taken three times per week.
- Copaxone (glatiramer acetate) a subcutaneous injection taken on a daily basis. Immunomodulating therapy is commonly initiated when the diagnosis is first established.
All of these medications work to re balance the activated immune response and delay the progression of the disease by decreasing the attack rate and activity on brain MRI.
• Immediate Post-Injection Reaction (IPIR): In approximately 10% of patients given Copaxone" in trials, a post-injection reaction occurred, usually within minutes after injecting, and included flushing (feeling warmth and/or appearing red), chest tightness or pain with palpitations, anxiety and trouble breathing. Referred to as the Immediate Post-Injection Reaction (IPIR), symptoms lasted for only a few minutes and resolved without any treatment required. Generally, this reaction happens several months after starting the medication but may occur anytime. Most patients only have it once but it can happen several times. If you experience this after being on Copaxone for a while, it is important to try to relax, keep your head upright, and breathe slowly. If this reaction does not go away on its own or if you have symptoms of tongue or face swelling, or experience extreme trouble breathing, seek immediate medical attention. Either way, you should contact your physician describing the experience, and do not give yourself anymore injections until your physician tells you to begin again.
• Chest pain: In trials, several patients experienced chest pain as a lone symptom that was not related to any other symptom as described above with the IPIR and did not necessarily occur immediately after injecting. It lasted only a few minutes and most episodes occurred after at least one month of therapy.
In general, interferons have more side effects than the copaxone, but the interferons start working faster.
Regardless of what medication is initiated, the patient should be followed by clinical examination and by MRI of brain and spine. If clinical attacks continue or if new MRI lesions occur, then another medication may be selected.


Lance and Tina Holland spent their young adulthoods as back country guides in various parts of the southern Appalachians leading to twenty year careers. Lance as a Location Manager/Scout for major motion pictures including The Last of the Mohicans and The Fugitive. Tina as the storekeeper at Fontana Village catering to tourists and Appalachian Trail hikers. In 2010 they combined their talents to create a unique experience at Appalachian Mercantile.


text:
package ubic.gemma.core.analysis.service;

import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.iterators.TransformIterator;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ubic.basecode.ontology.model.OntologyTerm;
import ubic.basecode.util.DateUtil;
import ubic.basecode.util.FileTools;
import ubic.gemma.core.ontology.providers.GeneOntologyService;
import ubic.gemma.core.ontology.providers.GeneOntologyServiceImpl;
import ubic.gemma.model.association.BioSequence2GeneProduct;
import ubic.gemma.model.common.description.Characteristic;
import ubic.gemma.model.expression.arrayDesign.ArrayDesign;
import ubic.gemma.model.expression.designElement.CompositeSequence;
import ubic.gemma.model.expression.experiment.ExpressionExperiment;
import ubic.gemma.model.genome.Gene;
import ubic.gemma.persistence.service.association.Gene2GOAssociationService;
import ubic.gemma.persistence.service.expression.arrayDesign.ArrayDesignService;
import ubic.gemma.persistence.service.expression.designElement.CompositeSequenceService;
import ubic.gemma.persistence.util.EntityUtils;
import ubic.gemma.persistence.util.Settings;

import java.io.*;
import java.util.*;
import java.util.regex.Pattern;
import java.util.zip.GZIPOutputStream;

/**
 * @author Paul
 * @see    ArrayDesignAnnotationService
 */
@Component
public class ArrayDesignAnnotationServiceImpl implements ArrayDesignAnnotationService {

    private static final String COMMENT_CHARACTER = "#";
    private static final Log log = LogFactory.getLog( ArrayDesignAnnotationServiceImpl.class.getName() );

    public static File getFileName( String fileBaseName ) {
        String mungedFileName = ArrayDesignAnnotationServiceImpl.mungeFileName( fileBaseName );
        return new File( ArrayDesignAnnotationService.ANNOT_DATA_DIR + mungedFileName
                + ArrayDesignAnnotationService.ANNOTATION_FILE_SUFFIX );
    }

    /**
     * Remove file separators (e.g., "/") from the file names.
     *
     * @param  fileBaseName file base name
     * @return              munged name
     */
    public static String mungeFileName( String fileBaseName ) {
        if ( fileBaseName == null ) {
            return null;
        }
        return fileBaseName.replaceAll( Pattern.quote( File.separator ), "_" );
    }

    /**
     * @param  arrayDesign array design
     * @return             Map of composite sequence ids and transient (incomplete) genes. The genes only have the
     *                     symbol filled in.
     */
    public static Map<Long, Collection<Gene>> readAnnotationFile( ArrayDesign arrayDesign ) {
        Map<Long, Collection<Gene>> results = new HashMap<>();
        File f = new File( ArrayDesignAnnotationService.ANNOT_DATA_DIR + ArrayDesignAnnotationServiceImpl
                .mungeFileName( arrayDesign.getShortName() ) + ArrayDesignAnnotationService.STANDARD_FILE_SUFFIX
                + ArrayDesignAnnotationService.ANNOTATION_FILE_SUFFIX );
        if ( !f.canRead() ) {
            ArrayDesignAnnotationServiceImpl.log.info( "Gene annotations are not available from " + f );
            return results;
        }

        Map<String, Long> probeNameToId = new HashMap<>();
        ArrayDesignAnnotationServiceImpl.populateProbeNameToIdMap( arrayDesign, results, probeNameToId );
        ArrayDesignAnnotationServiceImpl.log.info( "Reading annotations from: " + f );
        try (InputStream is = FileTools.getInputStreamFromPlainOrCompressedFile( f.getAbsolutePath() )) {
            return ArrayDesignAnnotationServiceImpl.parseAnnotationFile( results, is, probeNameToId );
        } catch ( IOException e ) {
            throw new RuntimeException( e );
        }
    }

    /**
     * This tries to read one of the annotation files (noparents, bioprocess or regular) to get the gene information -
     * GO annotations are not part of the result.
     *
     * @param  arrayDesign array design
     * @return             Map of composite sequence ids to an array of delimited strings: [probe name,genes symbol,
     *                     gene Name,
     *                     gemma gene id, ncbi id] for a given probe id. format of string is geneSymbol then geneNames
     *                     same as found
     *                     in annotation file.
     */
    public static Map<Long, String[]> readAnnotationFileAsString( ArrayDesign arrayDesign ) {
        Map<Long, String[]> results = new HashMap<>();
        File f = new File( ArrayDesignAnnotationService.ANNOT_DATA_DIR + ArrayDesignAnnotationServiceImpl
                .mungeFileName( arrayDesign.getShortName() ) + ArrayDesignAnnotationService.STANDARD_FILE_SUFFIX
                + ArrayDesignAnnotationService.ANNOTATION_FILE_SUFFIX );
        if ( !f.canRead() ) {
            /*
             * Look for more files.
             */
            f = new File( ArrayDesignAnnotationService.ANNOT_DATA_DIR + ArrayDesignAnnotationServiceImpl
                    .mungeFileName( arrayDesign.getShortName() ) + ArrayDesignAnnotationService.NO_PARENTS_FILE_SUFFIX
                    + ArrayDesignAnnotationService.ANNOTATION_FILE_SUFFIX );

            if ( !f.canRead() ) {
                f = new File( ArrayDesignAnnotationService.ANNOT_DATA_DIR + ArrayDesignAnnotationServiceImpl
                        .mungeFileName( arrayDesign.getShortName() )
                        + ArrayDesignAnnotationService.BIO_PROCESS_FILE_SUFFIX
                        + ArrayDesignAnnotationService.ANNOTATION_FILE_SUFFIX );
            }

            if ( !f.canRead() ) {
                ArrayDesignAnnotationServiceImpl.log
                        .info( "Gene annotations are not available in " + ArrayDesignAnnotationService.ANNOT_DATA_DIR );
                return results;
            }
        }

        Map<String, Long> probeNameToId = new HashMap<>();

        int FIELDS_PER_GENE = 5; // used to be 3, now is 5;

        boolean warned = false;
        for ( CompositeSequence cs : arrayDesign.getCompositeSequences() ) {
            results.put( cs.getId(), new String[FIELDS_PER_GENE] );
            if ( probeNameToId.containsKey( cs.getName() ) && !warned ) {
                ArrayDesignAnnotationServiceImpl.log
                        .warn( "Duplicate probe name: " + cs.getName() + " for " + arrayDesign + " (further warnings suppressed)" );
                warned = true;
            }
            probeNameToId.put( cs.getName(), cs.getId() );
        }

        try (InputStream is = FileTools.getInputStreamFromPlainOrCompressedFile( f.getAbsolutePath() );
                BufferedReader br = new BufferedReader( new InputStreamReader( is ) )) {
            ArrayDesignAnnotationServiceImpl.log.info( "Reading annotations from: " + f );

            String line;

            while ( ( line = br.readLine() ) != null ) {
                if ( StringUtils.isBlank( line ) || line
                        .startsWith( ArrayDesignAnnotationServiceImpl.COMMENT_CHARACTER ) ) {
                    continue;
                }
                String[] fields = StringUtils.splitPreserveAllTokens( line, '\t' );

                if ( fields.length < 3 )
                    continue; // means there are no gene annotations.

                String probeName = fields[0];

                if ( !probeNameToId.containsKey( probeName ) )
                    continue;
                Long probeId = probeNameToId.get( probeName );

                results.get( probeId )[0] = probeName; // Probe Name (redundant!)
                results.get( probeId )[1] = fields[1]; // Gene Symbol(s)
                results.get( probeId )[2] = fields[2]; // Gene Name

                // fields[3] is the GO annotations, we skip that.

                if ( fields.length > 4 ) {
                    results.get( probeId )[3] = fields[4]; // Gemma Id
                }

                if ( fields.length > 5 ) {
                    results.get( probeId )[4] = fields[5]; // NCBI id.
                }

            }

            is.close();

            return results;
        } catch ( IOException e ) {
            throw new RuntimeException( e );
        }
    }

    private static Map<Long, Collection<Gene>> parseAnnotationFile( Map<Long, Collection<Gene>> results, InputStream is,
            Map<String, Long> probeNameToId ) {
        try {

            BufferedReader br = new BufferedReader( new InputStreamReader( is ) );
            String line;

            while ( ( line = br.readLine() ) != null ) {
                if ( StringUtils.isBlank( line ) || line
                        .startsWith( ArrayDesignAnnotationServiceImpl.COMMENT_CHARACTER ) ) {
                    continue;
                }
                String[] fields = StringUtils.splitPreserveAllTokens( line, '\t' );

                if ( fields.length < 3 )
                    continue; // means there are no gene annotations.

                String probeName = fields[0];

                if ( !probeNameToId.containsKey( probeName ) )
                    continue;
                Long probeId = probeNameToId.get( probeName );

                List<String> geneSymbols = Arrays.asList( StringUtils.splitPreserveAllTokens( fields[1], '|' ) );
                List<String> geneNames = Arrays.asList( StringUtils.splitPreserveAllTokens( fields[2], '|' ) );

                if ( geneSymbols.size() != geneNames.size() ) {
                    ArrayDesignAnnotationServiceImpl.log
                            .warn( "Annotation file format error: Unequal number of gene symbols and names for probe="
                                    + probeName + ", skipping row" );
                    continue;
                }

                List<String> gemmaGeneIds = null;
                List<String> ncbiIds = null;

                if ( fields.length > 4 ) { // new style. fields[3] is the GO annotations.
                    gemmaGeneIds = Arrays.asList( StringUtils.splitPreserveAllTokens( fields[4], '|' ) );
                }
                if ( fields.length > 5 ) {
                    ncbiIds = Arrays.asList( StringUtils.splitPreserveAllTokens( fields[5], '|' ) );
                }

                for ( int i = 0; i < geneSymbols.size(); i++ ) {

                    String symbol = geneSymbols.get( i );
                    String name = geneNames.get( i );

                    if ( StringUtils.isBlank( symbol ) ) {
                        continue;
                    }

                    String[] symbolsB = StringUtils.split( symbol, ',' );
                    String[] namesB = StringUtils.split( name, '$' );

                    for ( int j = 0; j < symbolsB.length; j++ ) {

                        String s = symbolsB[j];

                        Gene g = Gene.Factory.newInstance();
                        g.setOfficialSymbol( s );

                        try {
                            if ( gemmaGeneIds != null ) {
                                g.setId( Long.parseLong( gemmaGeneIds.get( j ) ) );
                            }

                            if ( ncbiIds != null ) {
                                g.setNcbiGeneId( Integer.parseInt( ncbiIds.get( j ) ) );
                            }
                        } catch ( NumberFormatException e ) {
                            // oh well, couldn't populate extra info.
                        }

                        if ( namesB.length >= j + 1 ) {
                            String n = namesB[j];
                            g.setName( n );
                        }

                        results.get( probeId ).add( g );
                    }
                }
            }

            return results;
        } catch ( IOException e ) {
            throw new RuntimeException( e );
        }
    }

    private static void populateProbeNameToIdMap( ArrayDesign arrayDesign, Map<Long, Collection<Gene>> results,
            Map<String, Long> probeNameToId ) {
        for ( CompositeSequence cs : arrayDesign.getCompositeSequences() ) {
            results.put( cs.getId(), new HashSet<Gene>() );
            if ( probeNameToId.containsKey( cs.getName() ) ) {
                ArrayDesignAnnotationServiceImpl.log.warn( "Duplicate probe name: " + cs.getName() );
            }
            probeNameToId.put( cs.getName(), cs.getId() );
        }
    }

    @Autowired
    private ArrayDesignService arrayDesignService;

    @Autowired
    private CompositeSequenceService compositeSequenceService;

    @Autowired
    private ExpressionDataFileService expressionDataFileService;

    @Autowired
    private Gene2GOAssociationService gene2GOAssociationService;

    @Autowired
    private GeneOntologyService goService;

    private final Transformer goTermExtractor = new Transformer() {
        @Override
        public Object transform( Object input ) {
            return GeneOntologyServiceImpl.asRegularGoId( ( ( OntologyTerm ) input ) );
        }
    };

    /*
     * (non-Javadoc)
     *
     * @see
     * ubic.gemma.core.analysis.service.ArrayDesignAnnotationService#create(ubic.gemma.model.expression.arrayDesign.
     * ArrayDesign, java.lang.Boolean)
     */
    @Override
    public void create( ArrayDesign inputAd, Boolean overWrite ) throws IOException {

        if ( !goService.isReady() ) {
            throw new IllegalStateException( "GO was not loaded" );
        }

        ArrayDesign ad = arrayDesignService.thaw( inputAd );

        log.info( "== Creating annotation files for: " + ad );

        String shortFileBaseName = ArrayDesignAnnotationServiceImpl.mungeFileName( ad.getShortName() )
                + ArrayDesignAnnotationService.NO_PARENTS_FILE_SUFFIX;
        File sf = ArrayDesignAnnotationServiceImpl.getFileName( shortFileBaseName );
        String bioFileBaseName = ArrayDesignAnnotationServiceImpl.mungeFileName( ad.getShortName() )
                + ArrayDesignAnnotationService.BIO_PROCESS_FILE_SUFFIX;
        File bf = ArrayDesignAnnotationServiceImpl.getFileName( bioFileBaseName );
        String allParFileBaseName = ArrayDesignAnnotationServiceImpl.mungeFileName( ad.getShortName() )
                + ArrayDesignAnnotationService.STANDARD_FILE_SUFFIX;
        File af = ArrayDesignAnnotationServiceImpl.getFileName( allParFileBaseName );

        if ( !overWrite && sf.exists() && bf.exists() && af.exists() ) {
            log.info( "Files exist already, will not overwrite (use overWrite option to override)" );
            return;
        }

        Collection<CompositeSequence> compositeSequences = ad.getCompositeSequences();
        log.info( "Starting getting probe specificity" );

        Map<CompositeSequence, Collection<BioSequence2GeneProduct>> genesWithSpecificity = compositeSequenceService
                .getGenesWithSpecificity( compositeSequences );

        log.info( "Done getting probe specificity" );

        boolean hasAtLeastOneGene = false;
        for ( CompositeSequence c : genesWithSpecificity.keySet() ) {
            if ( genesWithSpecificity.get( c ).isEmpty() ) {
                continue;
            }
            hasAtLeastOneGene = true;
            break;
        }

        if ( !hasAtLeastOneGene ) {
            log.warn( "No genes: " + ad + ", skipping" );
            return;
        }

        if ( overWrite || !sf.exists() ) {
            this.processCompositeSequences( ad, shortFileBaseName, OutputType.SHORT, genesWithSpecificity, overWrite );

            /*
             * Delete the data files for experiments that used this platform, since they have the old annotations in
             * them (or no annotations)
             */
            Collection<ExpressionExperiment> ees = arrayDesignService.getExpressionExperiments( ad );
            if ( !ees.isEmpty() ) log.info( "Deleting data files for " + ees.size() + " experiments which use " + ad.getShortName()
                    + ", that may have outdated annotations" );
            for ( ExpressionExperiment ee : ees ) {
                this.expressionDataFileService.deleteAllFiles( ee );
            }

        } else {
            log.info( sf + " exists, will not overwrite" );
        }

        if ( overWrite || !bf.exists() ) {
            this.processCompositeSequences( ad, bioFileBaseName, OutputType.BIOPROCESS, genesWithSpecificity, overWrite );
        } else {
            log.info( bf + " exists, will not overwrite" );
        }

        if ( overWrite || !af.exists() ) {
            this.processCompositeSequences( ad, allParFileBaseName, OutputType.LONG, genesWithSpecificity, overWrite );
        } else {
            log.info( af + " exists, will not overwrite" );
        }
    }

    @Override
    public void deleteExistingFiles( ArrayDesign ad ) {
        String shortFileBaseName = ArrayDesignAnnotationServiceImpl.mungeFileName( ad.getShortName() )
                + ArrayDesignAnnotationService.NO_PARENTS_FILE_SUFFIX;
        File sf = ArrayDesignAnnotationServiceImpl.getFileName( shortFileBaseName );
        String biocFileBaseName = ArrayDesignAnnotationServiceImpl.mungeFileName( ad.getShortName() )
                + ArrayDesignAnnotationService.BIO_PROCESS_FILE_SUFFIX;
        File bf = ArrayDesignAnnotationServiceImpl.getFileName( biocFileBaseName );
        String allparFileBaseName = ArrayDesignAnnotationServiceImpl.mungeFileName( ad.getShortName() )
                + ArrayDesignAnnotationService.STANDARD_FILE_SUFFIX;
        File af = ArrayDesignAnnotationServiceImpl.getFileName( allparFileBaseName );

        int numFilesDeleted = 0;
        if ( sf.canWrite() && sf.delete() ) {
            numFilesDeleted++;
        }
        if ( bf.canWrite() && bf.delete() ) {
            numFilesDeleted++;

        }
        if ( af.canWrite() && af.delete() ) {
            numFilesDeleted++;

        }
        ArrayDesignAnnotationServiceImpl.log.info( numFilesDeleted + " old annotation files deleted" );

    }

    /*
     * (non-Javadoc)
     *
     * @see ubic.gemma.core.analysis.service.ArrayDesignAnnotationService#generateAnnotationFile(java.io.Writer,
     * java.util.Collection)
     */
    @Override
    public int generateAnnotationFile( Writer writer, Collection<Gene> genes ) {

        Map<Gene, Collection<Characteristic>> goMappings = gene2GOAssociationService.findByGenes( genes );

        for ( Gene gene : genes ) {
            Collection<OntologyTerm> ontologyTerms = this.getGoTerms( goMappings.get( gene ), OutputType.SHORT );

            Integer ncbiId = gene.getNcbiGeneId();
            String ncbiIds = ncbiId == null ? "" : ncbiId.toString();
            String geneString = gene.getOfficialSymbol();
            String geneDescriptionString = gene.getOfficialName();
            try {
                Long id = gene.getId();
                this.writeAnnotationLine( writer, geneString, ncbiIds, geneDescriptionString, ontologyTerms,
                        id.toString(), ncbiIds );
            } catch ( IOException e ) {
                throw new RuntimeException( e );
            }
        }
        return genes.size();
    }

    private int generateAnnotationFile( Writer writer,
            Map<CompositeSequence, Collection<BioSequence2GeneProduct>> genesWithSpecificity, OutputType ty )
            throws IOException {

        int compositeSequencesProcessed = 0;
        int simple = 0;
        int empty = 0;
        int complex = 0;
        // we used LinkedHasSets to keep everything in a predictable order - this is important for the gene symbols,
        // descriptions and NCBIIds (but not important for GO terms). When a probe maps to multiple genes, we list those
        // three items for the genes in the same order. There is a feature request to make
        // the order deterministic (i.e.,lexicographic sort), this could be done by using little gene objects or whatever.
        Collection<OntologyTerm> goTerms = new LinkedHashSet<>();
        Set<String> genes = new LinkedHashSet<>();
        Set<String> geneDescriptions = new LinkedHashSet<>();
        Set<String> geneIds = new LinkedHashSet<>();
        Set<String> ncbiIds = new LinkedHashSet<>();

        Map<Gene, Collection<Characteristic>> goMappings = this.getGOMappings( genesWithSpecificity );

        for ( CompositeSequence cs : genesWithSpecificity.keySet() ) {

            Collection<BioSequence2GeneProduct> geneclusters = genesWithSpecificity.get( cs );

            if ( ++compositeSequencesProcessed % 2000 == 0 && ArrayDesignAnnotationServiceImpl.log.isInfoEnabled() ) {
                ArrayDesignAnnotationServiceImpl.log
                        .info( "Processed " + compositeSequencesProcessed + "/" + genesWithSpecificity.size()
                                + " compositeSequences " + empty + " empty; " + simple + " simple; " + complex
                                + " complex;" );
            }

            if ( geneclusters.isEmpty() ) {
                this.writeAnnotationLine( writer, cs.getName(), "", "", null, "", "" );
                empty++;
                continue;
            }

            if ( geneclusters.size() == 1 ) {
                // common case, do it quickly.
                BioSequence2GeneProduct b2g = geneclusters.iterator().next();
                Gene g = b2g.getGeneProduct().getGene();
                goTerms = this.getGoTerms( goMappings.get( g ), ty );
                String gemmaId = g.getId() == null ? "" : g.getId().toString();
                String ncbiId = g.getNcbiGeneId() == null ? "" : g.getNcbiGeneId().toString();
                this.writeAnnotationLine( writer, cs.getName(), g.getOfficialSymbol(), g.getOfficialName(), goTerms,
                        gemmaId, ncbiId );
                simple++;
                continue;
            }

            goTerms.clear();
            genes.clear();
            geneDescriptions.clear();
            geneIds.clear();
            ncbiIds.clear();

            for ( BioSequence2GeneProduct bioSequence2GeneProduct : geneclusters ) {

                Gene g = bioSequence2GeneProduct.getGeneProduct().getGene();

                genes.add( g.getOfficialSymbol() );
                geneDescriptions.add( g.getOfficialName() );
                geneIds.add( g.getId().toString() );
                Integer ncbiGeneId = g.getNcbiGeneId();
                if ( ncbiGeneId != null ) {
                    ncbiIds.add( ncbiGeneId.toString() );
                }
                goTerms.addAll( this.getGoTerms( goMappings.get( g ), ty ) );

            }

            String geneString = StringUtils.join( genes, "|" );
            String geneDescriptionString = StringUtils.join( geneDescriptions, "|" );
            String geneIdsString = StringUtils.join( geneIds, "|" );
            String ncbiIdsString = StringUtils.join( ncbiIds, "|" );
            this.writeAnnotationLine( writer, cs.getName(), geneString, geneDescriptionString, goTerms, geneIdsString,
                    ncbiIdsString );
            complex++;

        }
        writer.close();

        return compositeSequencesProcessed;
    }

    private Map<Gene, Collection<Characteristic>> getGOMappings(
            Map<CompositeSequence, Collection<BioSequence2GeneProduct>> genesWithSpecificity ) {
        ArrayDesignAnnotationServiceImpl.log.info( "Fetching GO mappings" );
        Collection<Gene> allGenes = new HashSet<>();
        for ( CompositeSequence cs : genesWithSpecificity.keySet() ) {

            Collection<BioSequence2GeneProduct> geneclusters = genesWithSpecificity.get( cs );
            for ( BioSequence2GeneProduct bioSequence2GeneProduct : geneclusters ) {

                Gene g = bioSequence2GeneProduct.getGeneProduct().getGene();
                allGenes.add( g );
            }
        }
        Map<Gene, Collection<Characteristic>> goMappings = gene2GOAssociationService.findByGenes( allGenes );
        ArrayDesignAnnotationServiceImpl.log.info( "Got GO mappings for " + goMappings.size() + " genes" );
        return goMappings;
    }

    /**
     * @param  ty Configures which GO terms to return: With all parents, biological process only, or direct annotations
     *            only.
     * @return    the goTerms for a given gene, as configured
     */
    private Collection<OntologyTerm> getGoTerms( Collection<Characteristic> ontologyTerms, OutputType ty ) {

        Collection<OntologyTerm> results = new HashSet<>();
        if ( ontologyTerms == null || ontologyTerms.size() == 0 )
            return results;

        for ( Characteristic vc : ontologyTerms ) {
            results.add( goService.getTermForId( vc.getValue() ) );
        }

        if ( ty.equals( OutputType.SHORT ) )
            return results;

        if ( ty.equals( OutputType.LONG ) ) {
            Collection<OntologyTerm> oes = goService.getAllParents( results );
            results.addAll( oes );
        } else if ( ty.equals( OutputType.BIOPROCESS ) ) {
            Collection<OntologyTerm> toRemove = new HashSet<>();

            for ( OntologyTerm ont : results ) {
                if ( ( ont == null ) ) {
                    continue; // / shouldn't happen!
                }
                if ( !goService.isBiologicalProcess( ont ) ) {
                    toRemove.add( ont );
                }
            }

            for ( OntologyTerm toRemoveOnto : toRemove ) {
                results.remove( toRemoveOnto );
            }
        }
        return results;
    }

    private Writer initOutputFile( ArrayDesign arrayDesign, String fileBaseName, boolean overWrite ) throws IOException {

        Writer writer;
        if ( StringUtils.isBlank( fileBaseName ) ) {
            ArrayDesignAnnotationServiceImpl.log.info( "Output to stdout" );
            writer = new PrintWriter( System.out );
        } else {

            File f = ArrayDesignAnnotationServiceImpl.getFileName( fileBaseName );

            if ( f.exists() ) {
                if ( overWrite ) {
                    ArrayDesignAnnotationServiceImpl.log.warn( "Will overwrite existing file " + f );
                    EntityUtils.deleteFile( f );
                } else {
                    return null;
                }
            } else {
                ArrayDesignAnnotationServiceImpl.log.info( "Creating new annotation file " + f + " \n" );
            }

            EntityUtils.mkdirs( f.getParentFile() );
            writer = new OutputStreamWriter( new GZIPOutputStream( new FileOutputStream( f ) ) );
        }
        StringWriter buf = new StringWriter();
        buf.append( "# Annotation file generated by Gemma\n" );
        buf.append( "# Generated " ).append( DateUtil.convertDateToString( new Date() ) ).append( "\n" );
        buf.append( ExpressionDataFileService.DISCLAIMER );
        buf.append( "# Gemma link for this platform: " ).append( Settings.getBaseUrl() )
                .append( " arrays/showArrayDesign.html?id=" ).append( arrayDesign.getId().toString() ).append( "\n" );
        buf.append( "# " ).append( arrayDesign.getShortName() ).append( "  " ).append( arrayDesign.getName() )
                .append( "\n" );
        buf.append( "# " ).append( arrayDesign.getPrimaryTaxon().getScientificName() ).append( "\n" );

        writer.write( buf.toString() );
        writer.write( "ProbeName\tGeneSymbols\tGeneNames\tGOTerms\tGemmaIDs\tNCBIids\n" );

        return writer;
    }

    /**
     *
     * @param  arrayDesign
     * @param  fileBaseName
     * @param  outputType
     * @param  genesWithSpecificity
     * @param  overWrite
     * @throws IOException
     */
    private void processCompositeSequences( ArrayDesign arrayDesign, String fileBaseName, OutputType outputType,
            Map<CompositeSequence, Collection<BioSequence2GeneProduct>> genesWithSpecificity, Boolean overWrite ) throws IOException {

        if ( genesWithSpecificity.size() == 0 ) {
            log.info( "No sequence information for " + arrayDesign + ", skipping" );
            return;
        }

        try (Writer writer = initOutputFile( arrayDesign, fileBaseName, overWrite )) {

            // if no writer then we should abort (this could happen in case where we don't want to overwrite files)
            if ( writer == null ) {
                log.info( arrayDesign.getName() + " annotation file already exits.  Skipping. " );
                return;
            }

            log.info( arrayDesign.getName() + " has " + genesWithSpecificity.size() + " composite sequences" );

            generateAnnotationFile( writer, genesWithSpecificity, outputType );

            log.info( "Finished processing platform: " + arrayDesign.getName() );

        }
    }

    /**
     * Adds one line at a time to the annotation file.
     */
    private void writeAnnotationLine( Writer writer, String probeId, String gene, String description,
            Collection<OntologyTerm> goTerms, String geneIds, String ncbiIds ) throws IOException {

        if ( ArrayDesignAnnotationServiceImpl.log.isDebugEnabled() )
            ArrayDesignAnnotationServiceImpl.log.debug( "Generating line for annotation file  \n" );

        if ( gene == null )
            gene = "";

        String formattedDescription = description;
        if ( description == null ) {
            formattedDescription = "";
        } else {
            // Try to help ensure file is readable by third-party programs like R. See bug 1851
            formattedDescription = formattedDescription.replaceAll( "#", "_" );
        }

        writer.write( probeId + "\t" + gene + "\t" + formattedDescription + "\t" );

        if ( goTerms != null && !goTerms.isEmpty() ) {
            String terms = StringUtils.join( new TransformIterator( goTerms.iterator(), goTermExtractor ), "|" );
            writer.write( terms );
        }

        writer.write( "\t" + geneIds + "\t" + ncbiIds + "\n" );

    }

}


Just a quick one here.
Use needlenose pliers to reach into each barrel and grab the end of the peg.
Rotate the peg back and forth 1.5 to 2 turns until it fatigues and fails near the end. Take care not to bend the peg, or you will need to drill the access hole in the backplate to remove the valve block (Triad) or disassemble the gun normally (RC) and clean up the mess.
While there have been claims by Nerfhaven users that full peg and web removal on the Triad constitutes a flow improvement with attendant velocity increase, the chronograph says otherwise. I don't think it's worth the hassle to disassemble a Triad unless you want to fire solid core darts and have to get rid of the entire peg.
Flip out the cylinder. Use dikes to snip the peg webs. Discard pegs. Remove any sharp edges with a knife.
[Rant] Nerf public image, part 1.
DZ Post categories and general approach.
[Rant] Dart tip code skepticism gets hostile.
So this is how it begins.


text:
1998 XX93  är en trojansk asteroid i Jupiters lagrangepunkt L4. Den upptäcktes 15 december 1998 av LINEAR i Socorro County, New Mexico.

Asteroiden har en diameter på ungefär 45 kilometer.

Referenser

Jupiters trojaner, grekiska lägret
Ej namngivna småplaneter
Astronomiska upptäckter av LINEAR
Astronomiska upptäckter 1998

redpajama_set_name: RedPajamaWikipedia


text:
Search Reviews /
Borrowed Stilettos
4½ Stars
Author: Rebecca J. Clark
Review by: Roza
* Contemporary
Publisher: Independently Published
Red Stilettos, #1
Happily-ever-after, here we come, complete with rainbows, flowers, gurgling mountain streams, mistaken identities, and everything else!
I do wish Ava/Audrey and Zach had had more time to play with his family. They were having such fun, and then they had to go off to the mountains, and when they came back, Audrey/Ava was waiting for them, and everything crashed and burned in a matter of hours. That was the best part, for me, the sheer audacity of what they were doing and how much fun they were having with it. I admit, the rope was a bit of a surprise to me given her assumed personality, but it appeared to work just fine.
This is a cheerful, happy, and quick read. A little bare and obvious of plot sometimes, but the entertainment value makes up for it just fine.
Book Blurb for Borrowed Stilettos
It's a classic case of mistaken identity. But this time, it's no mistake.
Plans go hilariously and seductively awry when mild-mannered Audrey Thompson dresses as Ava, her flamboyant but cowardly twin. It is Audrey's task, as Ava, to break up with Ava's fiancé, Zach Banister. However, as Audrey is stuffing her bra and tottering around in her sister's stilettos, she falls for Zach instead. Little does she know Zach has an agenda all his own.
Night Owl Reviews Feb, 2010 4.50
Sam Crescent
Rebecca Brooks
Magali A. Fréchette
Elicia Hyder
Kathy Lyons
Sheila Roberts
Carla Neggers
Rachel A. Marks
It's hard to walk away from a good book. "Hard Riding Cowboy" fits that description to a tee. Romance author Stacey Kennedy tempts with heat, grabs a hold of the heart and keeps the laughs going... ev...
It's Getting Scot in Here
I had been looking forward to this book for quite some time, and for the most part, it did not disappoint. Niall MacTaggert and his brothers must wed women of their mother's choosing if they hope to r...
Galaxies and Oceans
"Galaxies and Oceans" by N.R. Walker details the debilitating emotional and physical journey that Aubrey Hobbs has taken to get to the small town of Hadley Cove on a remote island. His unexpected conn...
Hidden Cargo
"Hidden Cargo" by Sarah Marsh follows the adventures of Cassie, who is kidnapped from Earth and ends up on the island of Ilya on the world of Dolak. Not only is it impossible for her to return home, b...
Hell's King
I have thoroughly enjoyed this clever trilogy. The main character's chemistry is delightful and each accepts the others "flaws" be they real or not. While no one they know seems too thrilled they are...
Get More Bookish Recommendations


text:
Q: Universal Turing Machine Problems If I have a machine, call it machine 1, that is able to solve a problem: it's just a machine, not per se a Turing machine. It can solve one specific problem.
If this exact same problem can be solved on a Universal Turing Machine, then is my original machine, 1, a Universal Turing Machine too?
This does not hold for all problems, which is already ansered. Are there any problems which have this described property at all? If it is absolutely not true, then why?
Can someone give an example of a problem to be solved. If this problem is solved by my original machine, 1, definately makes this a Universal Turning Machine? Or does such a problem not exists? If it doesn't exists, why?
I'm very interested, but can't figure it out... Thanks.
Edit: made the question more clear.

A: A Universal Turing Machine can solve any of a huge class of problems.
If your machine(1) can solve 1+1, that doesn't mean it can solve any of the huge class. So it may not be a Universal Turing Machine.

A: The logicians differentiate between "sufficient" and "neccessary" conditions. Take, for example, the sentence

The sky is blue.

(let's just assume that's always true). What you know now is this:

When you look at the sky, you see the color blue.

What you don't know is this:

When you see the color blue, you're looking at the sky.

-- you might as well be looking at your neighbour's car.
In logical terms, the color blue is neccessary for the sky, but it's not sufficient.
The same is true for your case: Machine (1) does solve your problem, so it's indeed a solvable problem. Hence, being able to solve the problem is a neccessary condition for a UTM, but not a sufficient one, because a UTM must be able to solve any problem (that's solvable at all), not just this single one.

A: A universal turing machine can solve any code that any specific turing machine can solve.
So your universal turing machine (2) can solve the problem that your original turing machine (1) was designed to solve.
Your original turing machine (1) however can solve only that exact problem and can't solve any other problem (including the "problem" of being a universal turing machine).
So no, your original turing machine is not a universal turing machine according to your description. (It might be if the you define it to, but that's kind of cheating).

A: The point of the Universal Turning Machine (UTM) is that for any Turing Machine (TM) you could take that TM and create an encoding for it that describes the operation of the TM and have that encoding run on another TM.
The UTM is a TM which has an definition sufficiently powerful such that any other TM definition could be rewritten in it.
Think of the UTM as an interpreter. The TM is a specific task.
Unless the TM is also in the class of interpreters then it is not a UTM as well. (Because a UTM is also a specifically tasked TM).
So to answer your second question: if you can show that the UTM and TM are equivalent then you have shown that TM is also a UTM. To do this you need to be able to show how an encoded program for the UTM can be changed into an equivalent program for the TM.

A:
Can someone give an example of a problem to be solved.

Sure: Given encoded turning machine and data, what is the result :) If your machine can solve this problem, it is surely UTM.
Do you know the line of reasoning why those different problems are in NP? Like 'can i solve the 3-sat problem when I have a machine that solves the Hamiltonian problem?' You can surely use the same to answer your question.

A: Proving the Turing completeness of a particular system is not trivial, unless you can easily show that it's equivalent/isomorphic to another system that is know to be Turing complete. So short answer: there is no simple test that you can put your machine through to check whether it is Turing complete. You have to analyze and show properties of the system as a whole.
If you want to learn more about this topic, read these articles about Turing completeness and computability theory.

A: Imagine a UTM as if how would you proceed if you have to write a code(High level) for simulating the turing machine.You will require the following:
1.Array to hold the input symbols and the stuff that yiu would do on it.
2.An array(possible 2-d) to hold the transition function that you will prompt the user.
3.An algorithm that read user's inputs of transition functions and simulates it on array 1.
4.Few variables that your program will need to track its own state.
If you think in this way,if you end up getting a perfectly working code you end up with a perfect UTM.
However the catch is no matter how efficiently you code you can't stop the user from entering transition functions that can cause your code to run forever.So there will be certain problems for which UTM will fail,and then we say that for those problems we can't develop a membership testing machine.(though notice a membership verification machine is always possible)


text:
Q: Cakephp 3 update value in validation provider if returning false In my model I would like to update a value in my validation provider
For exemple if the $value = '4012*'
It is not alphanumeric so I want $value to empty to save it my database
Model/Table/ProductsTable
public function validationDefault(Validator $validator)
{
    $validator
        ->allowEmpty('code')
        ->add('code', 'alphaNum', [
              'rule' => 'isalphaNum',
              'message' => 'Code is wrong',
              'provider' => 'table']);
    return $validator;
}

public function isalphaNum($value, array $context)
{
  if (!ctype_alnum($value)) {
    //Update a warning table
    $warning = new Warnings;
    $warning->insert('Code is wrong',
                     $context['data']['code'],
                     $context['field'],
                     $value
                   );
   //UPDATE THE VALUE TO EMPTY
   $value = "";

  }
    return true;
}

The problem is when I debug my value in my isalphaNum function, it is empty, Good!. But after the validation and when it is saved in the database it is my intial value saved in this exemple '4012*'.
Where should I change my value?