NADH oxidase activity of rat and human liver xanthine oxidoreductase: potential role in superoxide production.
To characterise the NADH oxidase activity of both xanthine dehydrogenase (XD) and xanthine oxidase (XO) forms of rat liver xanthine oxidoreductase (XOR) and to evaluate the potential role of this mammalian enzyme as an O2*- source, kinetics and electron paramagnetic resonance (EPR) spectroscopic studies were performed. A steady-state kinetics study of XD showed that it catalyses NADH oxidation, leading to the formation of one O2*- molecule and half a H(2)O(2) molecule per NADH molecule, at rates 3 times those observed for XO (29.2 +/- 1.6 and 9.38 +/- 0.31 min(-1), respectively). EPR spectra of NADH-reduced XD and XO were qualitatively similar, but they were quantitatively quite different. While NADH efficiently reduced XD, only a great excess of NADH reduced XO. In agreement with reductive titration data, the XD specificity constant for NADH (8.73 +/- 1.36 microM(-1) min(-1)) was found to be higher than that of the XO specificity constant (1.07 +/- 0.09 microM(-1) min(-1)). It was confirmed that, for the reducing substrate xanthine, rat liver XD is also a better O2*- source than XO. These data show that the dehydrogenase form of liver XOR is, thus, intrinsically more efficient at generating O2*- than the oxidase form, independently of the reducing substrate. Most importantly, for comparative purposes, human liver XO activity towards NADH oxidation was also studied, and the kinetics parameters obtained were found to be very similar to those of the XO form of rat liver XOR, foreseeing potential applications of rat liver XOR as a model of the human liver enzyme.


Why blockchain cryptocurrencies will be instrumental to banks by 2020

Published January 22nd at 3:12pm

It is estimated that the banking industry’s gross output could be around $7.6 trillion worldwide by 2020, with $1 billion of this said to be from blockchain-based cryptocurrency activity. This may seem like an extremely small share of total gross output, however market implications are significant as the banking industry is beginning to welcome cryptocurrencies as a legitimate format to store value and act as a medium of exchange. As a result, it is expected that cryptocurrencies will achieve a business value growth of over 90% by 2020 through supporting technology and new digital business models.

The increased usage of cryptocurrencies as a valid format within the banking industry will no doubt force other sectors to reshape their business models, such as tax and accountancy methods, transaction and payment systems and pricing of goods, in order to incorporate this new currency within their businesses.

Delware legislation has also recognised and legalised bitcoin transactions for business and accounting records, and this legitimatisation through legislation has developed within the EU and other countries. Law is giving cryptocurrencies the recognition needed in order for them to be utilised in mainstream commerce.

There are over 900 cryptocurrencies within the market, all of which if were converted into US dollars, would exceed $155 billion, of which $74 billion (45% approximately) is attributed to bitcoin. The quantity of tokens entering the market is still increasing due to Initial Coin Offerings (ICOs) combined with an increasing media attention.

Complementary currencies have always been contextualised for specific uses, such as within gaming or time banks. Social scalability will always be a challenge until there is further usability and reliability in blockchain networks to convey trust. However, the banking industry’s $1 billion in business value from blockchain-based cryptocurrencies by 2020 should convey this level of trust, the knock on effect being more engagement and acceptance from all industries.

Banks are actively working on blockchain-based currencies, which may include using some of the new capabilities of cryptocurrencies or blockchain technology. It is therefore believed by 2022, at a bare minimum, one of the world’s leading central banks will have blockchain-enabled currency running through its monetary system

CIOs should keep their eyes on developments from a customer, economic and technological point of view:

Customer – When will customers accept and adopt cryptocurrencies as mediums of exchange? A big part of technology comes down to trust.

Economic – When will legislation be active across the world and set standards and frameworks in place, to allow a fluid exchange of cryptocurrencies, digital and physical assets and flat currencies?

Technological – When will technologies mature enough to accommodate every situation cryptocurrencies would be used in to include formal, traditional and economic activities?

Banks are viewing cryptocurrencies and digital assets in the same way as which they view traditional platforms. More varied business value will begin to accrue. This growth in value will be compounded as organisations then begin to accept cryptocurrencies as valid forms of payment.

Leaders in businesses should engage with seniors in their teams to develop strategies to best respond to a wider market adoption of cryptocurrencies. Cryptocurrencies and digital assets usage within strategies should also be incorporated via scenario planning which is based on growing market awareness. Finally a team within IT, legal and compliance will need heading up with an aim of prioritising digital business IT transformation needs, in preparation for the exploitation of cryptocurrencies, which will be instrumental to banks in the very near future.


FROM node:8

# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# Install app dependencies
COPY package.json /usr/src/app/
RUN npm install

# Bundle app source
COPY . /usr/src/app

CMD [ "npm", "start" ]


BlackBerry is denying a report that Korean smartphone giant Samsung has approached it with a takeover offer, saying it "has not engaged in discussions with Samsung with respect to any possible offer to purchase BlackBerry."

A statement released Wednesday by Blackberry said the company doesn't comment on "rumours or speculation." Samsung has also denied the takeover report, multiple media outlets say.

Earlier in the day, a Reuters report said Samsung had approached the company with a takeover offer.

Shares in the company, which has been working to regain market share in a fast-changing industry, were up as much as 30 per cent in late trading on Wednesday following the report of a possible takeover offer.

BlackBerry shares on the Toronto Stock Exchange closed at $15.02, up $3.42 from the previous day's closing price.

The initial Reuters report cited a person familiar with the matter and documents saying Samsung could offer as much as $7.5 billion for the Waterloo, Ont., company, looking to gain access to its patent portfolio.

'A real deal' for Samsung

"If they get [BlackBerry], Samsung's got themselves a real deal," said Ross Healy, a senior portfolio manager at MacNicol and Associates Asset Management, in an interview with CBC News.

Healy cited BlackBerry's cash holdings, patent portfolio and secure networking technology as potential assets for Samsung.

A serious bid from Samsung could attract attention from other potential buyers, said Healy, especially Google.

"The cost of BlackBerry would be chump change for that company."

Another analyst said a marriage between BlackBerry and Samsung would be mutually beneficial.

Samsung and BlackBerry have denied the report that a takeover offer has been discussed. (Dado Ruvic/Reuters) "These are two companies that have had significant dealings up until now," said independent technology analyst Carmi Levy in an interview with CBC News.

"BlackBerry announced a partnership with Samsung to bring security based products to market," added Levy. "So they are familiar with each other, they have worked with each other before, there are lots of opportunities for what the business calls 'synergies' between them, where they can leverage off of each other's business."

If the Samsung bid is more than just rumour, it would face scrutiny from the Canadian government. Industry Canada previously rejected a potential takeover bid for BlackBerry by Chinese technology company Lenovo.

A spokesman for Industry Minister James Moore told CBC News today that "Industry Canada does not comment on speculation or rumours."

Details of rumoured deal

South Korea's Samsung proposed an initial price range of $13.35 to $15.49 per share, which represents a premium of 38 per cent to 60 per cent over BlackBerry's current trading price, the source told Reuters.

The offer price would imply an enterprise value of $6 billion to $7.5 billion for BlackBerry, assuming conversion of $1.25 billion of convertible debt, according to the documents.

Representatives from the two companies, which are working with advisers, met last week to discuss a potential transaction, the source said, asking not to be identified because the conversations are private, the Reuters report says.


Q:

Ernie and the slice of Pi

Ernie is a renowned polyglot. Why just last week I saw him helping out at a Mathematics conference by acting as a simultaneous translator for seven guests who only spoke Hungarian, Icelandic, Swahili, Tongan, Arabic, Cantonese and Basque respectively. So Imagine my surprise last night when we went to a newly opened French Bistro and Ernie had to ask the waiter to translate the blackboard menu, which consisted of very elementary French such as soupe du jour and porc avec pommes de terre. So after a fine main course I asked why he  didn't know any French. "Ahh...", he said, with a look of reminiscence on his face, "it may not be fair, but I still blame the Geek Girl for that". Even for Ernie, that was a somewhat opaque statement so I asked him to explain a little more. And this is what he told me...

It all began on day one of my first Senior School Maths Olympiad. On
  the team for another school I saw the cutest geek girl you could
  imagine. I was smitten by the way her braces glinted in the sunlight.
  But the path to true love is not an easy one - I was younger than any
  of the other contestants and to my dismay she ignored me totally. At
  lunch time the older students played a game called 'Slice of Pi'. The
  rules were simple:
 The caller would shout out "Slice of Pi" followed by one or more pairs
 of integers *(p1,q1), (p2,q2)...(pn,qn)*.
 The responder had to reply with a single string of digits consisting of
 the *q1* digits of pi starting at the *p1th* place after teh decimal
 point, concatenated with the *q2* digits of pi starting at digit
 *p2*,...etc. right out to *qn* digits starting at place *pn*.

"So," I asked, if someone said "Slice of Pi (3,3), (1,1) (7,2) the correct response would be 159165?" Ernie paused for several seconds (longer than I would normally expect for an answer to a simple maths question) and then replied "Correct - and an adjudicator would confirm the answer was right using a paper table of pi from an old maths book". He continued...

One of the boys was almost always the winner. "He has memorized all
  the digits out to the 200th decimal place", claimed the Geek Girl with
  a look of adulation on her face. I instantly decided this was my
  chance to impress her - "Oh that's nothing", I boasted, "I bet I could
  learn all the way out to the 2000th place by tomorrow morning!" The
  others laughed in disbelief. "Then we will test you on that tomorrow!"
  said the team leader.
On my way home in the bus that night I realized what a task I had set
  myself. Like any sensible engineer I only knew 9 digits of pi and even
  if I could learn a digit every twenty seconds it would take more than
  eight hours to memorize the remaining 1991. I
  also needed to swot up for the next day's Programming Contest and knew
  that without a good night's sleep my performance would be dismal. But
  then I found the solution to all my problems in the issue of Popular
  Science where I found an article on how 'sleep-learning' experiments
  had been trialed back in the 1950's - as soon as I read the
  Introduction I was convinced it would work!
By the time I got home I had the plan in place. Luckily, my computer
  project at my last Junior Olympiad had been text scanning, character
  recognition, and text to speech translation and I still had the old
  code. I pulled down my copy of Smith's "The First Million Digits Of
  Pi", and set my  scanner onto it. Then I hacked out a quick routine
  that would repeatedly loop my text to speech algorithm through the
  first 2000 digits. My plan was to sleep for 12 hours with the digits
  playing to my subconscious mind as I slept, via a set of old
  headphones. The headphones were stereo, so I could play a second
  soundtrack into my other ear. Once the Pi file was ready I quickly
  scanned all three Volumes of Knuth's The art of Computer Programming
  using the same software and set up the Knuth file to play at 10 times
  normal speed so I could get through most of the series over-night. I
  got both files ready to run then hacked a 600 second delay in my text
  to speech program so I could get to sleep before the words began, set
  my alarm clock for 7:00 am, attached the earphones and fell into a
  deep sleep. What could possibly go wrong?
Unfortunately, the earphones blocked the sound of the alarm clock so
  it was 8:30 before I woke up. I had already missed the bus and had to
  cycle into town so never a chance to check if the sleep-learning had
  worked. I arrived at the Olympiad and joined the geek girl's team.
  "Right then", said the team leader, "time for your test Shorty. Let's
  start with something easy to begin with. Slice of Pi (1,9)". I opened
  my mouth (after all - I already knew the first 9 decimal places) and
  blurted out "112345569". I fled from the room in embarrassed. I also
  fell instantly out of love with the geek girl when I heard her
  donkey-like bray of laughter pursuing me out the door. It was a year
  before I was willing to show my face at another Olympiad.

"So the sleep learning didn't work?" I interrupted, "It just confused your mind?". "Not Quite", Ernie replied, and continued...

It took a few hours of investigation to discover what had happened. In
  my haste the night before I had confused the two files - so in one ear
  i had been hearing the same short section of Knuth repeated again and
  again and again all night - and simultaneously a vast number of digits
  of pi had been fed into my other ear (at 10x normal speed). The sleep
  learning had worked too well. My mind had absorbed all the digits of
  pi that I heard, but due to the multiple repetitions a quick-sort
  algorithm had been driven deep into my unconscious mind. Any time I
  tried to recollect a sequence of digits of pi (or a group of
  sequences), my subconscious automatically sorted the digits before
  relaying them to my conscious mind.
And there was another problem too. That evening I decided to take
  solace in Proust's 'À la recherche du temps perdu' in which I had
  been deeply engrossed over the previous few weeks, but was shocked to
  discover that I couldn't read a word of it. Every atom of the French
  language had been totally erased! I opened the Pop Sci magazine again
  and this time read the whole article. There was a short section
  near the end describing an unfortunate side effect of adding too many
  new memories in a short time. In some subjects the new memories
  displaced old memories. In my case all my knowledge of written and
  spoken French had been deleted!

At that moment I had to stop Ernie - "its a great tale", I said, chuckling with laughter "You almost had me believing you for a minute". "But it's true, Ernie asserted. "Test me if you like, and if it doesn't work like I told you I will buy you a good Whiskey - and to be fair, if it does work then you can shout me a bottle of Brandy."
So I quickly jotted down four numbers on a tissue so I could check them later and asked Ernie for the "Slice of Pi (p1,10), (p2,20), (p3,30), (p4,40)" Ernie paused for a moment and then replied " that would be...
 0000000000
 1111111111
 2222222222
 3333333333
 4444444444
 5555555555
 6666666666
 7777777777
 8888888888
 9999999999

"That's a bit unlikely", I said, "are you sure." "Of course I am!" Ernie replied, "You can check the digits online, if you don't believe me. What's more, if you can work out the minimum number of digits I must have learned to get the answer right, I will buy you a dozen bottles of Whiskey!".
Now I trust Ernie's word implicitly, so have already bought him the brandy, but I would love to get 12 bottles of whiskey in return. I decided to check out the numbers but realized I had left the tissue with the numbers p1, p2, p3, and p4 behind at the restaurant - the only thing I can remember about them was that p1 is less than p2 is less than p3 is less than p4*.
From the information provided can you confirm Ernie's digits could be correct for some p1,p2,p3 and p4, and if so is possible to calculate the minimum possible number of digits he knows?

A:

There are several possible solutions for $(p1, p2, p3, p4)$. Assuming that you with 'possible to calculate the minimum possible number of digits he knows' means a solution with the lowest possible $p4$, we have:

 (42, 10) = 9399375105
 (48, 20) = 51058209749445923078
 (92, 30) = 421170679821480865132823066470
 (210,40) = 5665933446128475648233786783165271201909

I've let my search for possible solutions run a little bit longer and if with 'minimum possible number of digits he knows' is ment to find the lowest possible value of $p4-p1$ (continuous range of digits), I soon found a range of only 65 digits: (1399,10), (1399,20), (1413,30) and (1424,40).
The solutions to the problem are actually not particularly rare. For $p4 <= 1000$ there are 1556 solutions and for $p4 <= 2000 $, there are 16376 solutions. That however, I find slightly odd. I would have expected the number of solutions to increase linearly with the number of combinations, which is at least roughly quartic in relation to $p4$ (doubling $p4$ should result in $2^4$ or 16 times as many solutions).


*hearts are made of one-washed unsanforized feelings, when washed hearts will shrink. please keep this in mind when choosing your path in life. hearts will also stretch inside up to 1.5″ after approximately 30 wears.


Attorneys for Purvi Patel, who was convicted under Indiana’s feticide law after ending her own pregnancy, have filed an appeal, reports WFYI.

She is represented pro bono by Stanford law professor Lawrence Marshall who founded the Center for Wrongful Convictions at Northwestern University and Indiana University law professor Joel Schumm.

“What I generally gravitate toward are cases where it seems like an intense passion has interfered with dispassionate interpretation and application of the law,” Marshall told the South Bend Tribune in April. “It struck me that this case may be a textbook example of that phenomenon.”

Patel showed up at the emergency room bleeding in 2013. After some hesitancy, Patel told doctors she lost the pregnancy and that she left the remains in a dumpster.

The National Asian Pacific American Women’s Forum has joined other women and reproductive rights groups in supporting Patel’s appeal. She is currently serving 20 years of a 46 year prison sentence.

In their appeal her attorneys wrote “there are powerful reasons to challenge the conclusion there was a live birth.”

You can read more of their arguments in WFYI..


Introduction {#sec1-0300060518764933}
============

The prevalence of spinal tuberculosis has been rising in African and Asian countries during the last decade because of the increasing number of patients with acquired immunodeficiency and multidrug-resistant tuberculosis.^[@bibr1-0300060518764933]^ Musculoskeletal tuberculosis accounts for approximately 10% of all types of extrapulmonary tuberculosis, and nearly half of these patients have spinal tuberculosis.^[@bibr2-0300060518764933],[@bibr3-0300060518764933]^ The main treatment for spinal tuberculosis is chemotherapy consisting of isoniazid, rifampicin, ethambutol, and pyrazinamide. However, surgical treatment is still necessary for patients with spinal cord injury and spinal instability due to tuberculosis lesions.^[@bibr4-0300060518764933]^ Both anterior and posterior approaches have been applied for the treatment of lumbosacral spinal tuberculosis, and satisfactory results have been reported by various authors.^[@bibr5-0300060518764933]^ However, there is no consensus on the optimal approach. The purpose of this study was to compare the outcomes of debridement and bone fusion by anterior or posterior procedures in the treatment of lumbosacral tuberculosis in adults and provide reference data for future clinical procedures.

Materials and methods {#sec2-0300060518764933}
=====================

Patient inclusion {#sec3-0300060518764933}
-----------------

All procedures in the current study were approved by the ethics committee of Xian Honghui Hospital, Xi'an Jiaotong University. All participating patients provided verbal informed consent. The clinical data of patients with a definitive diagnosis of lumbosacral tuberculosis treated by radical debridement and a strut grafting technique were retrospectively reviewed, and those who were treated with an anterior or posterior approach were included in the current study. Whether the anterior or posterior approach was applied was decided by comprehensive analysis of the position and extension of the foci, which were evaluated by anteroposterior and lateral radiographs, computed tomography, and magnetic resonance imaging. The surgical approach was primarily designed and recommended by the chief spine surgeon and approved by the patient after he or she had been provided with all information about the advantages and disadvantages of the two approaches.

Treatment strategy {#sec4-0300060518764933}
------------------

Only oral anti-tuberculosis drugs were administered in patients with no bacterial-induced spinal instability. The indications for surgical treatment were exacerbated collapse of a vertebral body, gradual worsening of pain, and radiculopathy.

Upon establishment of the clinical diagnosis in patients requiring surgery, treatment was begun with anti-tuberculosis drugs (isoniazid, 5 mg/kg; rifampicin, 10 mg/kg; ethambutol, 15 mg/kg; and pyrazinamide, 25 mg/kg) for 2 to 4 weeks prior to the operation. The surgery was carried out when the white blood cell count was normal or nearly normal, the erythrocyte sedimentation rate (ESR) and C-reactive protein were stable and started to decline, and the overall condition of the patient was adequate for surgery under general anesthesia.^[@bibr6-0300060518764933]^ The patients were treated with either anterior debridement and autologous bone grafting with instrumentation or posterior instrumentation with anterior debridement and autologous bone grafting in a titanium cage.

Operative procedure {#sec5-0300060518764933}
-------------------

The anterior approach was performed with the patient in the lateral decubitus position, with the more severely involved side upward. An oblique hypogastric incision was made according to the segment containing the lesion. After routine retroperitoneal exposure, distractor screws on the normal vertebrae adjacent to the lesion were used to stabilize the spine and partly correct the lordosis deformity during decompression and focal debridement. The tuberculous focus, including any prevertebral or paravertebral abscesses, collapsed intervertebral discs, or other necrotic tissues were completely removed through the healthy bleeding bone for spinal cord decompression. A suitable titanium mesh filled with autologous bone was selected and inserted into the bone to stabilize the vertebral height and locking nail--plate system ([Figure 1](#fig1-0300060518764933){ref-type="fig"}).

![Preoperative computed tomography and postoperative radiographic images of a patient who underwent anterior debridement, intervertebral fusion, and internal fixation for the treatment of lumbosacral tuberculosis.](10.1177_0300060518764933-fig1){#fig1-0300060518764933}

The posterior approach was performed as follows. After induction of general anesthesia, the patients were placed in the prone position. A mid-spinal incision was made and the bilateral facet joints and outer parts of the lamina were exposed. Shorter segmental fixation was preferred in the lumbosacral junction (at least one above and one below the lesion). Transpedicular screws were also placed in the affected vertebrae if the upper part of the vertebrae was not destroyed by infection. Transpedicular screws could be implanted in the ilium when the first sacral vertebra was severely damaged. After screw placement, a temporary 20- to 30-degree pre-bent rod was placed on the opposite side to avoid unexpected movements of the spine during debridement. After excision of the necrotic disc and collapsed vertebrae, saline irrigation and a flush tube were used to clean the paravertebral or psoas abscess. The patient's position was changed by controlling the position of the operating table to allow removal of latent pus if necessary while flushing the abscess. Suitable autogenous struts or allogenic bone was inserted into the prepared bone trough through the same incision to reconstruct the vertebrae. The kyphosis was rectified by compression and stretching of the internal fixation instrument ([Figure 2](#fig2-0300060518764933){ref-type="fig"}). Autologous or allograft bone particles were implanted in the lateral facet joints of diseased vertebrae and between the transverse processes. Streptomycin (1.0 g) and isoniazid (0.2 g) were administered locally, and a drainage tube was placed before the incisions were sutured. The biopsy specimens were sent for pathological examination.

![Computed tomography and radiographic images of lumbosacral tuberculosis before and after posterior surgery.](10.1177_0300060518764933-fig2){#fig2-0300060518764933}

The drainage tube was removed when the drainage flow was \<50 mL per 24 hours, and the patients were allowed to ambulate with protection of waist support at 1 week after removal of the drainage tube. All patients were treated with the above-mentioned antituberculous chemotherapy regimen for 12 to 18 months postoperatively. The braces were continually used for 6 to 8 months postoperatively. All patients were examined clinically and radiologically at 3, 6, and 12 months after surgery and then once a year. Radiographs, blood tests, the ESR, and hepatic function were examined.

Statistical analysis {#sec6-0300060518764933}
--------------------

Using IBM SPSS Statistics, version 19.0 (IBM Corp., Armonk, NY, USA), the lordotic angle, Oswestry disability index (ODI), and visual analog scale (VAS) pain scores were analyzed by paired t-tests preoperatively, postoperatively, and during the follow-up within groups and by independent-sample t-tests between groups. Differences were considered significant at P \< 0.05.

Results {#sec7-0300060518764933}
=======

General patient Information {#sec8-0300060518764933}
---------------------------

From July 2010 to July 2014, 115 patients with lumbar lumbosacral tuberculosis underwent surgical treatment in our department (anterior debridement and autologous bone grafting with instrumentation, n = 50; posterior instrumentation with anterior debridement and autologous bone grafting in a titanium cage, n = 65). There were no significant differences in the sex ratio or age between the two groups ([Table 1](#table1-0300060518764933){ref-type="table"}). The mean operation time was 236.7 minutes for the anterior approach and 82.5 minutes for the posterior approach, and the difference was significant (P = 0.05). The mean intraoperative hemorrhage was 505.0 mL for the anterior approach and 399.3 mL for the posterior approach, and the difference was significant (P = 0.04) ([Table 1](#table1-0300060518764933){ref-type="table"}).

######

Demographic characteristics of patients and surgical procedures

![](10.1177_0300060518764933-table1)

                                              Anterior approach   Posterior approach   P
  ------------------------------------------- ------------------- -------------------- ------
  Female/male                                 20/30               23/42                0.70
  Age, years                                  45.7 ± 8.4          47.2 ± 7.61          0.96
  Levels of lumbosacral tuberculosis lesion
   L3--L4                                     14                  16                   0.87
   L4--L5                                     19                  24
   L5--S1                                     17                  25
  Operation time, minutes                     236.70 ± 36.4       182.47 ± 29.6        0.05
  Intraoperative hemorrhage, mL               505.0 ± 112.4       399.31 ± 82.0        0.04

Data are presented as number of patients or mean ± standard deviation.

Treatment results {#sec9-0300060518764933}
-----------------

The mean follow-up was 41.5 months (range, 24--64 months). The surgical incisions in both groups healed without chronic infection, fistula formation, or recurrence. No complications related to instrumentation occurred. Two patients developed pneumonia. These symptoms disappeared after 1 week of anti-inflammatory and symptomatic supportive treatment. All patients experienced pain relief. No graft fracture, sliding, or resorption was observed. All patients experienced significant improvement in their constitutional symptoms and back pain after surgery. The white blood cell count and ESR had normalized in all patients by 3 months after surgery. Radiographs and/or computed tomography scans showed that all patients achieved bone fusion. The average fusion time was 6.9 months (range, 5--10 months).

The average VAS pain score was 6.9 (range, 5--8) preoperatively and decreased by 5.4 points at the last follow-up ([Table 2](#table2-0300060518764933){ref-type="table"}); there were no significant differences in the alleviation of pain at each time point between the two groups. Similarly, the ODI scores were not significantly different between the two groups at each time point. The lumbosacral lordotic angle was more significantly corrected by the posterior than anterior approach. The preoperative lumbosacral lordotic angle was 18.0 ± 8.8 and 19.4 ± 6.6 degrees in the anterior and posterior approach groups, respectively, which was not significantly different, and the postoperative angle was 27.1 ± 4.9 and 28.8 ± 7.0 degrees, respectively, with a significant difference (P \< 0.05). At the last follow-up, the lordotic angle was 22.0 ± 3.8 and 27.2 ± 5.1 degrees in the anterior and posterior approach groups, respectively, which was also significantly different (P \< 0.05).

######

Changes in ODI and VAS scores and lordotic angle preoperatively, postoperatively, and at the last follow-up

![](10.1177_0300060518764933-table2)

                       Anteriorapproach   Posteriorapproach   P
  -------------------- ------------------ ------------------- ------
  ODI
   Preoperatively      51.4 ± 10.9        49.2 ± 11.8         0.16
   Before discharge    31.3 ± 6.0         28.5 ± 5.6          0.23
   At last follow-up   1.5 ± 0.4          1.6 ± 0.5           0.35
  VAS
   Preoperatively      6.8 ± 1.0          6.4 ± 1.4           0.06
   At last follow-up   0.8 ± 0.1          0.6 ± 0.1           0.18
  Lordotic angle
   Preoperatively      18.0 ± 8.8         19.4 ± 6.6          0.52
   Before discharge    27.1 ± 4.9         28.8 ± 7.0          0.00
   At last follow-up   22.0 ± 3.8         27.2 ± 5.1          0.04

Data are presented as mean ± standard deviation.

ODI, Oswestry Disability Index; VAS, visual analog scale.

The neurologic deficits in all patients were improved at the follow-up examinations. Before the surgery, 4, 21, 42, and 48 patients had an American Spinal Injury Association (ASIA) spinal cord impairment scale grade of B, C, D, and E; these numbers of patients improved to 1, 13, 27, and 74 after the surgery and to 0, 5, 9, and 101 at the last follow-up ([Table 3](#table3-0300060518764933){ref-type="table"}). There were no significant differences in the ASIA grades at each time point between the two groups.

######

Changes in the ASIA spinal cord injury scale

![](10.1177_0300060518764933-table3)

                       B   C    D    E
  -------------------- --- ---- ---- ----
  Anterior approach
   Preoperatively      2   8    19   21
   Before discharge    1   3    11   35
   At last follow-up   0   2    4    44
  Posterior approach
   Preoperatively      2   13   23   27
   Before discharge    0   10   16   39
   At last follow-up   0   3    5    57

ASIA, American Spinal Injury Association.

Discussion {#sec10-0300060518764933}
==========

The spine is a common site for extrapulmonary tuberculosis, and spinal tuberculosis is still the most important cause of paraplegia in developing countries. Early intervention is vital in the treatment of spinal tuberculosis. Although antituberculosis chemotherapy effectively inactivates tuberculosis, vertebral collapse may continue. Surgical treatment is a necessity for patients with vertebral collapse and those who cannot tolerate long-term immobilization.^[@bibr7-0300060518764933]^ The main goals of surgical treatment involve removal of the focus, complete decompression of nerves, correction of the spinal deformity, and reconstruction of spinal stability.^[@bibr8-0300060518764933]^

Various surgical methods have been applied to treat lumbosacral tuberculosis. Because the inflammation is usually located in the anterior aspect, the anterior approach allows the surgeon to directly remove the infected focus and facilitates vertebral reconstruction. However, this approach may lead to inadequate kyphosis correction and loss of correction during follow-up. It has also been reported that the anterior approach may lead to injury of the peritoneum and a high rate of vascular complications.^[@bibr9-0300060518764933][@bibr10-0300060518764933]--[@bibr11-0300060518764933]^ In the current study, patients treated with the anterior approach had a longer operation time, more intraoperative hemorrhage, and greater loss of the correction angle at the 2-year follow-up.

Since the application of posterior spinal instrumentation systems, a single posterior approach can now be used to finish debridement, bone grafting, and instrumentation. The posterior approach creates enough operating space through resection of one side of the lamina, facet joint, diaphysis, and pedicle, allowing operation on the vertebral body at a 270-degree angle under direct visualization of the outside of the dura mater for complete removal of the focal tuberculous lesion without injuring the spinal cord.^[@bibr12-0300060518764933][@bibr13-0300060518764933]--[@bibr14-0300060518764933]^ Although several reports have compared the curative effect of anterior and posterior approaches to treat spinal tuberculosis, their results have been largely inconclusive, and few have focused on tuberculosis of the lumbosacral region.^[@bibr15-0300060518764933],[@bibr16-0300060518764933]^ The results of the current retrospective study indicate that for patients with tuberculosis of the lumbosacral region, the posterior approach requires a shorter operation time, induces less intraoperative hemorrhage, and allows for more gain and correction of the lordotic angle compared with the anterior approach. Additionally, the VAS, ODI, and ASIA scores were not significantly different between the two groups, indicating that the posterior approach may be a safer and more efficient treatment technique for lumbosacral tuberculosis. However, it is also possible that the results of this study were affected by the different patient inclusion criteria and operational technique of the surgeon. Although these factors may have introduced bias to the results of the current study, its retrospective nature makes it impossible to eliminate such bias. However, this study still suggests that the posterior approach is often more advantageous than the anterior approach.

Conclusion {#sec11-0300060518764933}
==========

When both approaches can be carried out for a patient with lumbosacral tuberculosis, the posterior approach should be favored over the anterior approach.

We thank Professor Wei Tian for his assistance with the study design and drafting of the manuscript.

Author contributions {#sec12-0300060518764933}
====================

Bolong Zheng was responsible for patient selection and recruitment and drafting of the manuscript, Dingjun Hao was responsible for carrying out the surgical procedures, Hua Guo was responsible for the statistical analysis and drafting of the manuscript, and Baorong He was responsible for the study design, team building, and revising of the manuscript.

Declaration of conflicting interest {#sec13-0300060518764933}
===================================

The authors declare that there is no conflict of interest.

Funding {#sec14-0300060518764933}
=======

This research received no specific grant from any funding agency in the public, commercial, or not-for-profit sectors.


News The Future’s Looking Bright for Bitcoin: Experts Predict $50K for 2018

I’ve had enough of being bombarded with FUD, from so-called ‘experts’ who don’t really ‘get’ Bitcoin. If I want predictions about the future of crypto, I’ll ask an expert in the blockchain industry. Fortunately I don’t have to, as CNBC already asked.

But First … This!

It’s easy to feel down when it’s cold, wet, and grey outside. Oh … and your investment lost over two-thirds of its value in the last six weeks. But we’ve all been through this before. Actually, some of you haven’t, and it’s you that I wanted a word with.

If you bought into Bitcoin, hoping to make an easy buck, then you were barking up the wrong tree. That ridiculous bubble just before Christmas; that was your fault! And nobody will feel sorry for you because you lost your nerve and your money.

Ahem. Now that’s dealt with, let’s continue.

The Sun Will Break Through These Clouds

I believe that we have already seen the worst of the burst, and that the steadying of the price since yesterday was the turning point. Take a look at the one year chart but ignore all the silliness of the last three months and draw a line straight to now. Looks good doesn’t it?

And I’m not the only one seeing sunshine on the horizon. Just check out these positive outlooks.

Who Said What?

Thomas Glucksmann of the GateCoin exchange suggested that regulatory recognition, combined with technological enhancements like the Lightning Network, could push crypto to all new highs this year, suggesting:

There is no reason why we couldn’t see bitcoin pushing $50,000 by December.

Outlier Ventures is a venture capital firm specialising in blockchain investments. CEO Jamie Burke said:

…after February the market will likely go on a bull run comparative if not greater than last year potentially reaching the trillion-dollar mark…

However, he did caution that this may be followed by a realignment as the market becomes mature.

Other commentators have suggested that the coins to watch are those with a utility and value outside of pure speculation. Mick Sherman, CEO of Hercules Tech, a company working with blockchain and big data, speculated:

…assets with a working platform and a clear-cut reason for requiring both a blockchain and their own token, are more likely to appreciate in value this year.

So … HODL, Don’t SODL

Everything is back on track. Bitcoin isn’t a short-term investment, as many are now finding out to their own chagrin. If we didn’t have these roller coasters, then we wouldn’t need to Hold On for Dear Life … but where would the fun in that be?

So lets continue onwards and upwards. But forget the moon. We’re following Elon’s Tesla all the way to Mars!

Do you think the worst for Bitcoin has passed? Will it reach $50,000 by the end of 2018? Let us know in the comments below.

Images courtesy of PublicDomainPictures, Coinmarketcap, and Bitcoinist archives.


Primitive macrophages control HSPC mobilization and definitive haematopoiesis.
In vertebrates, haematopoietic stem/progenitor cells (HSPCs) first emerge in the aorta-gonad-mesonephros (AGM) before colonizing transitory and subsequently definitive haematopoietic organs allowing haematopoiesis throughout adult life. Here we identify an unexpected primitive macrophage population accumulated in the dorsal mesenteric mesoderm surrounding the dorsal aorta of the human embryo and study its function in the transparent zebrafish embryo. Our study reveals dynamic interactions occurring between the HSPCs and primitive macrophages in the AGM. Specific chemical and inducible genetic depletion of macrophages or inhibition of matrix metalloproteinases (Mmps) leads to an accumulation of HSPCs in the AGM and a decrease in the colonization of haematopoietic organs. Finally, in vivo zymography demonstrates the function of primitive macrophages in extracellular matrix degradation, which allows HSPC migration through the AGM stroma, their intravasation, leading to the colonization of haematopoietic organs and the establishment of definitive haematopoiesis.


Trooper A. J. Sabol was driving his patrol cruiser shortly after 7:00 a.m. when he ran off the road and hit a curb at the entrance to the Kings Charter Shopping Center, according to State Police. The cruiser then struck a pickup truck, driven by Lindsay Noel, at a stop sign, causing both vehicles to overturn.


Category Archives: Headline News

Post navigation

Story by Katie Bisaro The Village of Warwick Board of Trustees meeting on Mon., Nov. 19 was filled to capacity with supporters of a program being proposed to the Village: Municipal Identification (Municipal ID). A presentation was made by Jonathan Bix, Executive Director of Nobody Leaves Mid-Hudson, a …Continue reading →

Story by Lourice Angie The heartwarming and overwhelming generosity of the community partnering with the County could be felt on Mon., Oct. 29. Hundreds of new and gently used winter coats, clothes, scarves, gloves, boots, and more were donated. The items were collected throughout the month in part of …Continue reading →

Story by Lourice Angie The Village of Warwick Recreation Department and the Warwick Lions Club hosted their annual spooktacular Halloween Costume Parade on Wed., Oct. 31. There were no tricks, only treats when it came to the warm fall weather this Halloween with sunny skies and temperatures reaching near …Continue reading →

Story by Lourice Angie Warwick Valley is very busy during the harvest season. It’s a time where visitors from near and far come to delight in the beauty of its history, hamlets and incomparable autumn views. Tourism is vital to the financial health of local farms and the …Continue reading →

Story by Jennifer O’Connor Supreme Court Justice Elaine Slobod dismissed a lawsuit filed against the Village of Warwick Planning Board and John Christison, of 16 Elm Street Realty, LLC. The lawsuit, which has cost Village taxpayers $11,000 to defend, was filed shortly after the Village of Warwick Planning Board …Continue reading →

Story by Shelley R. Clapper During public comment at the Greenwood Lake Commission meeting on Wed., Jul. 25, local residents voiced their concerns over the Commission’s recent lethal goose reduction project. Michele Shenker, who lives near the Thomas P. Morahan Waterfront Park in Greenwood Lake said that she …Continue reading →

Story by Katie Bisaro The Village of Warwick Planning Board held a Public Hearing on Thurs., Jul. 19 to listen to the comments and concerns of residents regarding the proposed Village View subdivision to be located in the area of Locust St. and Woodside Dr. Planning Board Chairman …Continue reading →

Story by Sara Paul Ryan Caldwell has witnessed several friends overdose at a young age. Perhaps just as horrific as the actual deaths, according to Caldwell, is the silence and shame that surround the tragedies. “When someone dies from an overdose, you often hear they suffered from ‘heart …Continue reading →

Follow Us:

Follow Us:

Translate:

Hours & Info

The Warwick Valley Dispatch, a weekly newspaper, was founded in 1885 by George F. Ketchum and has been in the same family for its entire 130 years of providing local news to Town of Warwick residents. The newspaper is printed on a 1930s web press in the Dispatch building, located at 2 Oakland Avenue in Warwick, NY.


I have a show coming up where I'll now have some new product to put out with beautiful new ear wires on my earrings and new clasps on my necklaces! I did them before but now I really know how to do them better. Thank you so much Wendy Jo, you're a wonderful teacher and I hope to see you again in another class at some point!

Alicia R., Falmouth, MA

Keum Boo Applications

About this course

Keum boo is a cost-efficient way to incorporate high karat gold into jewelry designs, while simultaneously adding pattern, color, and dimension. In this workshop, students will use this ancient Korean technique of bonding high karat gold foil to silver. Embellishment techniques such as roller printing and adding a patina, will also be demonstrated to enhance and emphasize metal surfaces.

Rolling gold foil allows for variation on foil thickness to one’s taste and is a bit more economical for those who plan to do a lot of 'keum-booing’ and have access to a rolling mill. Wendy will demonstrate rolling gold sheet into foil, showing students how to have total control over their gold usage. There will be time for students to practice this technique if they wish, however, this is optional in order to keep materials fees affordable. Ready-to-use foil is provided in the materials kit.

The class will be a combination of teacher demonstrations with ample time built in for student practice and fabrication. As time allows, students are encouraged to use their samples to make a basic pair of earrings or a pendant.

Meet the Instructor

Wendy Jo New

"Growing up, I always was mesmerized by sparkling gemstones and metals and I often incorporate something illuminating into my designs. Whether or not I intricately plan a jewelry piece in advance of producing it or just spontaneously fabricate one as I go along, the result is inevitably something that is unique with a contemporary flair that complements, rather than overwhelms, a wearer. When designing jewelry or other metal work, I always think about whether I would wear it, use it, and/or display it. Anyone who knows me sees a reflection of me in what I design.

I produce fine contemporary jewelry and other metal designs primarily in the precious metals of silver, argentium, gold, and/or palladium. These are often further defined with the addition of texturing, gemstones and other unique lapidary, or resin inlay. I also manufacture photo-etched metal cover plates which may be attached to journals or framed. Larger etchings are used in buildings as entry door logos, addresses, and the like.

In addition to participating in art shows, sales, and doing commission work, I love providing instruction in jewelry design and metal fabrication. My work can be seen and purchased at galleries and stores, as well as in my own online store. Designing and fabricating engagement and wedding bands and other jewelry, often with people's stones, is particularly meaningful to me."

-Wendy

Materials & Tools

There is a $40 materials kit for this course, which is payable upon registration. The kit includes 24 kt gold foil as well as fine, sterling, and Argentium silver and findings.

Students should bring

Students Should Bring:

Basic metals hand tools (saw blades, files, sanding sticks)

An exacto knife—the thin handled type

Optional

Roll your own gold foil - optional: Students may bring a small piece of 24k gold sheet (even 22k works) to roll in the rolling mill if they wish to practice making their own foil.

Steel or agate burnisher (Metalwerx also has these available for use during class)

**If you normally wear contact lenses, please make sure to wear or bring your glasses for this class.

Workshop

Tuition

$150.00$142.50
5% discount until November 20

Materials Cost

$40.00

Instructor

Wendy Jo New

Date

December 20, 2019

Time

10:00 AM-5:00 PM

Length

1 day

Level

Basic and above

Jewelry 1 skills required

Location

Metalwerx

I have a show coming up where I'll now have some new product to put out with beautiful new ear wires on my earrings and new clasps on my necklaces! I did them before but now I really know how to do them better. Thank you so much Wendy Jo, you're a wonderful teacher and I hope to see you again in another class at some point!


Taco Bell Has Already Sold 53 Million Orders of Nacho Fries

Move over, Doritos Locos tacos: Taco Bell’s Nacho Fries have snatched the title of the most successful new menu item launch in the chain’s history, Nation’s Restaurant News reports.

Since their launch on January 25, Taco Bell has sold 53 million orders of the fries, which are coated with a “bold Mexican seasoning” and served with a side of nacho cheese sauce for dipping. The company tells NRN that they’re seeing the fries — which are $1, or 49 cents when tacked on to another menu item — included in one out of every three orders.

Related video: Taco Bell just added a new Skittles-flavored slushie to its menu, and hello, sugar overload (provided by Hello Giggles)

Eater NY critic Robert Sietsema sampled the Nacho Fries shortly after they launched in January, and was unimpressed, writing, “The sauce seems more chemical than culinary, and has little discernible taste ... The outside [of the fries] was fairly crisp, while the inside was more like instant mashed potatoes.”

Sietsema may not be much of a fan, but the chain’s loyal customers are clearly on board with the Nacho Fries:


---
title: "Polymorphic relations"
lang: en
layout: page
keywords: LoopBack
tags:
sidebar: lb3_sidebar
permalink: /doc/en/lb3/Polymorphic-relations.html
summary:
---

LoopBack supports _polymorphic relations_ in which a model can belong to more than one other model, on a single association.
For example, you might have a Picture model that belongs to either an Employee model or a Product model.

The examples below use three example models: Picture, Employee, and Product, where a picture can belong to either an employee or a product.

## HasMany polymorphic relations

Take the following scenario as example:

> A Picture model belongs to either an Employee model or a Product model

A hasMany polymorphic relation means:

- There are two properties created in model Picture, one serves as a discriminator, which states what model the picture belongs to, and the other one serves as a foreignKey, which is the id(or primaryKey) value of either the employee or product.

- There are CRUD apis added to modelFrom(Employee and Product), by which you can create/modify/delete modelTo instance that belongsTo it. For example, `employee.pictures.create()` creates a new picture belongsTo employee.

If you want to have the api which retrieves the model that a modelTo instance belongsTo, which in our case is `picture.imageable()`, make sure you also define the corresponding belongsTo relation described in the next section [BelongsTo polymorphic relations](#belongsto-polymorphic-relations)

### Parameters for the definition

* `type` - the relation type, in this case is 'hasMany'
* `as` - redefines **this** relation's name (optional)
* `model` - name of modelTo
* When the `polymorphic` property is an `Object`:
  - `selector` (suggested) or as - matching **belongsTo** relation name (required) if both foreignKey and discriminator are **NOT** provided (extraneous) throws error if **BOTH** foreignKey and discriminator are provided
  - `foreignKey`:  A property of modelTo, representing the fk to modelFrom's id generated by default as `as + 'Id'`
  - `discriminator`: A property of modelTo, representing the actual modelFrom to be looked up and defined dynamically generated by default as `as + 'Type'`
* When the `polymorphic` property is a  `String` (shorthand declaration):
  - Matching **belongsTo** relation name `foreignKey` is generated as `polymorphic + 'Id'`
  - `discriminator` is generated as `polymorphic + 'Type'`

Note that `as` inside `polymorphic` object will be deprecated in LoopBack 4.  Use `selector` instead.

In the following example, model 'Employee' defines the relation with a shorthand declaration, and model 'Product' defines it with a complete polymorphic object declaration.

{% include code-caption.html content="common/models/employee.json" %}

```javascript
{
  "name": "Employee",
  "base": "PersistedModel",
  ...
  "relations": {
    "pictures": {
      "type": "hasMany",
      "model": "Picture",
      "polymorphic": "imageable"
    }
  }
...
```

And:

{% include code-caption.html content="common/models/product.json" %}
```javascript
{
  "name": "Product",
  "base": "PersistedModel",
  ...
  "relations": {
    "pictures": {
      "type": "hasMany",
      "model": "Picture",
      "polymorphic": {
        "foreignKey": "imageableId",
        "discriminator": "imageableType"
       }
    }
  }
...
```
Alternately, provide `selector` in the `polymorphic` object:

```javascript
{
  "name": "Product",
  "base": "PersistedModel",
  ...
  "relations": {
    "pictures": {
      "type": "hasMany",
      "model": "Picture",
      "polymorphic": {
        "selector": "imageable"
       }
    }
  }
...
```

You can also define a polymorphic hasMany relation in code:

{% include code-caption.html content="common/models/employee.js" %}
```javascript
Employee.hasMany(Picture, { polymorphic: 'imageable' });
```

And:

{% include code-caption.html content="common/models/product.js" %}
```javascript
Product.hasMany(Picture, { polymorphic: {
  foreignKey: 'imageableId',
  discriminator: 'imageableType'
  }
});
```

Alternatively, use `selector`:

```javascript
Product.hasMany(Picture, { polymorphic: {
  selector: "imageable"
  }
});
```

## BelongsTo polymorphic relations

Because you define the related model dynamically, you cannot declare it up front.
So, instead of passing in the related model (name), you specify the name of the polymorphic relation.

To define a belongsTo polymorphic relation, provide the following parameters:

* `type`: the relation type, in this case is 'belongsTo'
* `as`: redefines **this** relation's name (optional)
* `polymorphic`: Can be either an object or a Boolean value.
  - When its value is an object:
    * foreignKey:  A property of modelTo, representing the foreign key to modelFrom's id.
    * discriminator: A property of modelTo, representing the actual modelFrom to be looked up and defined dynamically.
  - When its value is Boolean:
    * `foreignKey` is generated as `relationName + 'Id'`.
    * `discriminator` is generated as `relationName + 'Type'`.

{% include note.html content="Do not provide a `model` field in the relation definition.  If you define it, LoopBack throws an error as relation validation.
Also, do not provide `selector` or `as` inside polymorphic object.
" %}

{% include code-caption.html content="common/models/picture.json" %}

```javascript
{
  "name": "Picture",
  "base": "PersistedModel",
  ...
  "relations": {
    "imageable": {
      "type": "belongsTo",
      "polymorphic": true
    }
  },
...
```

Alternatively, use an object for setup:

```javascript
{
  "name": "Picture",
  "base": "PersistedModel",
  ...
  "relations": {
    "imageable": {
      "type": "belongsTo",
      "polymorphic": {
        "foreignKey": "imageableId",
        "discriminator": "imageableType"
      }
    }
  },
...
```

Or, in code:

{% include code-caption.html content="common/models/picture.js" %}
```javascript
Picture.belongsTo('imageable', {
  polymorphic: true
});
// Alternatively, use an object for setup
Picture.belongsTo('imageable', {
  polymorphic: {
    foreignKey: 'imageableId',
    discriminator: 'imageableType'
  }
});
```

## HasOne polymorphic relations

A hasOne relation represents a "one-to-one" relation between models while a hasMany relation represents a "one-to-many" relation. For details, see [hasMany relations](HasMany-relations.html) and [hasOne relations](HasOne-relations.html).

The relation definitions in 'HasOne' is almost same as 'HasMany'; the only difference is `type` should be 'hasOne'.  For details, refer to [HasMany polymorphic relations](#hasmany-polymorphic-relations).

The following code shows how to dynamically define a 'HasOne' polymorphic relation, and also redefines the relation name with `as`: you can specify `as: 'avatar'` to explicitly set the name of the relation. If not set, it defaults to the polymorphic relation name.

{% include code-caption.html content="/common/models/model.js" %}
```javascript
Picture.belongsTo('imageable', {polymorphic: true});
Employee.hasOne(Picture, {as: 'avatar', polymorphic: 'imageable'});
Product.hasOne(Picture, {polymorphic: {as: 'imageable'}});

// To create a picture belongs to an employee, you can use the method below
employee.avatar.create();
```

## HasManyThrough polymorphic relations

To define a hasManyThrough polymorphic relation, there must be a "through" model, for example:

> Employee hasMany Picture through ImageLink polymorphically
>
> Product hasMany Picture through ImageLink polymorphically

A hasManyThrough polymorphic relation creates three properties in the the "through" model:
- The discriminator (the value is either `Employee` or `Product`)
- The foreign key (the ID or primary key value of either an employee or a product).
- A `foreignKey` property that references the Picture model.

The first two properties above are same as in the "to" model in a hasMany polymorphic relation.

Then here's an example of a polymorphic hasManyThrough relation:

First define relations in through model ImageLink.

{% include code-caption.html content="/common/models/ImageLink.json" %}
```javascript
{
  "name": "ImageLink",
  "base": "PersistedModel",
  ...
  "relations": {
    "picture": {
      "type": "belongsTo",
      "model": "Picture",
      "foreignKey": ""
      "imageable": {
        "type": "belongsTo",
        "polymorphic": true
      }
    }
  }
...
}
```

Then in the Employee (or Product) model.
{% include code-caption.html content="/common/models/Employee.json" %}
```javascript
{
  "name": "Employee",
  "base": "PersistedModel",
  ...
  "relations": {
    "pictures": {
      "type": "hasMany",
      "model": "Picture",
      "through": "ImageLink",
      "polymorphic": "imageable"
    }
  },
...
}
```

Optionally, you can define an `invert hasMany` relation in the Picture model.

{% include code-caption.html content="/common/models/Picture.json" %}
```javascript
{
  "name": "Picture",
  "base": "PersistedModel",
  ...
  "relations": {
    "employees": {
      "type": "hasMany",
      "model": "Employee",
      "through": "ImageLink",
      "invert": true,
      "polymorphic": "imageable"
    },
    "products": {
      "type": "hasMany",
      "model": "Product",
      "through": "ImageLink",
      "invert": true,
      "polymorphic": "imageable"
    }
  },
...
}
```

Equivalently, in JavaScript:

{% include code-caption.html content="/server/boot/boot-script.js" %}
```javascript
Employee.hasMany(Picture, {
  as: 'pictures',
  polymorphic: {
    foreignKey: 'imageableId',
    discriminator: 'imageableType'
  },
  through: ImageLink
});
Product.hasMany(Picture, {
  as: 'pictures',
  polymorphic: {
    foreignKey: 'imageableId',
    discriminator: 'imageableType'
  },
  through: ImageLink
});
ImageLink.belongsTo(Picture, {});
ImageLink.belongsTo(ImageLink, {polymorphic: true});

// Optionally define invert hasMany relation in Picture
Picture.hasMany(Employee, {through: ImageLink, polymorphic: 'imageable', invert: true});
Picture.hasMany(Product, {through: ImageLink, polymorphic: 'imageable', invert: true});
```

## HasAndBelongsToMany polymorphic relations

A hasAndBelongsToMany polymorphic relation is similar to a [hasManyThrough polymorphic relation](#hasmanythrough-polymorphic-relations).
It also requires an explicit 'through' model, in our example: `ImageLink`.

However, a hasAndBelongsToMany relation will automatically set up a belongsTo relation in through model, like this: `ImageLink.belongsTo(Picture, {})` and `ImageLink.belongsTo(ImageLink, {polymorphic: true})`.

{% include code-caption.html content="/common/models/model.js" %}
```javascript
Employee.hasAndBelongsToMany(Picture, {
  through: ImageLink,
  polymorphic: 'imageable'
});
Product.hasAndBelongsToMany(Picture, {
  through: ImageLink,
  polymorphic: 'imageable'
});
// Optionally, define inverse hasMany relations with '(invert: true)'
Picture.hasMany(Employee, {
  through: ImageLink,
  polymorphic: 'imageable',
  invert: true
});
Picture.hasMany(Product, {
  through: ImageLink,
  polymorphic: 'imageable',
  invert: true
});
```

## Dealing with polymorphic.idType

Because `modelTo` is unknown up-front (it's polymorphic), you cannot rely on `modelTo` for getting the `foreignKey` type.  You can explicitly declare the idType as shown below.

The example below should provide the following results:

```javascript
[{
  url: 'john.jpg',
  imageableType: 'Employee',
  imageableId: '1',
  id: 1
}, {
  url: 'joe.jpg',
  imageableType: 'Product',
  imageableId: '1',
  id: 2
}]

Employees: [{
  username: 'John',
  id: 1
}]

Products: [{
  name: 'Joe',
  id: 1
}]
```

```javascript
var Employee = app.models.Employee;
var Product = app.models.Product;
var Picture = app.models.Picture;

Employee.hasOne(Picture, {
  as: 'avatar',
  polymorphic: {
    foreignKey: 'imageableId',
    discriminator: 'imageableType'
  }
});

Product.hasOne(Picture, {
  as: 'imageable',
  polymorphic: {
    foreignKey: 'imageableId',
    discriminator: 'imageableType'
  }
});

Picture.belongsTo('owner', {
  idName: 'username',
  polymorphic: {
    idType: Employee.definition.properties.username.type,
    foreignKey: 'imageableId',
    discriminator: 'imageableType'
  }
});

//Creating demo employee, product pictures then listing them
function createEmployee(cb) {
  Employee.create({
    username: "John"
  }).then(function(employee) {
    employee.avatar.create({
      url: "john.jpg"
    }, function() {
      cb();
    });
  });
}

function createProduct(cb) {
  Product.create({
    name: "Joe"
  }).then(function(product) {
    product.imageable.create({
      url: "joe.jpg"
    }, function() {
      cb();
    });
  });
}

function listPictures() {
  Picture.find(function(err, res) {
    console.log("\nPictures:\n", res);
  })
}

function listProducts() {
  Product.find(function(err, res) {
    console.log("\nProducts:\n", res);
  })
}

function listEmployees() {
  Employee.find(function(err, res) {
    console.log("\nEmployees:\n", res);
  })
}

//executing the demo
createEmployee(function() {
  createProduct(function() {
    listPictures();
    listEmployees();
    listProducts();
  });
});
```


#include "DarkSDK.h"
#include "physics.h"

float g_fSpeed        = 0.1f;		// speed at which camera moves
float g_fTurn         = 0.03f;		// turn speed for mouse look
float g_fOldCamAngleX = 0.0f;		// to store original x angle
float g_fOldCamAngleY = 0.0f;		// to store original y angle
float g_fCameraAngleX = 0.0f;		// to sotre new x angle
float g_fCameraAngleY = 0.0f;		// to store new y angle

// forward declaration for functions
void userInput ( void );			// handles user input
void showFPS   ( void );			// show frame rate

void DarkSDK ( void )
{
	dbPhyStart ( );

	dbAutoCamOff ( );
	dbSyncOn ( );
	//dbSyncRate ( 60 );
	dbSyncRate ( 0 );
	dbColorBackdrop ( 0 );
	dbMakeLight ( 1 );
	dbSetDirectionalLight ( 1, -5, -5, 5 );

	//dbSetTextFont ( "tahoma" );
	//dbSetTextSize ( 32 );

		dbMakeObjectBox ( 1, 50, 1, 50 );
	dbPhyMakeRigidBodyStaticBox ( 1 );

	float fX = 10.0f;
	float fY = 1.0f;

	fY = 1.0f;

	for ( int i = 10; i < 20; i++ )
	{
		dbMakeObjectBox ( i, 2, 2, 2 );
		dbPositionObject ( i, -10, fY, 0 );

		fY += 2.0f;

		dbPhyMakeRigidBodyDynamicBox ( i );
	}

	dbMakeObjectCube ( 2, 5 );
	dbPositionObject ( 2, 0, 5, 0 );
	dbPhyMakeRigidBodyDynamicBox ( 2, 5 );

	dbMakeObjectSphere ( 3, 20 );
	dbPositionObject ( 3, 20, 20, 0 );
	dbSetObjectWireframe ( 3, 1 );
	//dbGhostObjectOn ( 3 );

	float fSize = dbObjectSize ( 2 );

	dbPhyMakeTriggerSphere ( 1, 20, 10, 0, 10 );
	//dbPhyMakeTriggerBox	( 1, 20, 10, 10, 10, 10, 10, 0.0f, 0.0f, 0.0f );

	dbRandomize ( dbTimer ( ) );

	for ( int i = 1; i < 30; i++ )
	{
		if ( dbObjectExist ( i ) )
		{
			dbColorObject			 ( i, dbRgb ( dbRnd ( 255 ), dbRnd ( 255 ), dbRnd ( 255 ) ) );
			dbSetObjectSpecular		 ( i, dbRgb ( dbRnd ( 255 ), dbRnd ( 255 ), dbRnd ( 255 ) ) );
			dbSetObjectSpecularPower ( i, 255 );
			dbSetObjectAmbient		 ( i, 0 );
		}
	}

	dbPositionCamera ( 0, 20, -70 );

	//dbRotateObject ( 2, 0, 90, 0 );

	while ( !dbEscapeKey ( ) )
	{
		char szFPS [ 256 ] = "";
		strcpy ( szFPS, "fps = " );
		strcat ( szFPS, dbStr ( dbScreenFPS ( ) ) );
		dbText ( dbScreenWidth ( ) - 20 - dbTextWidth ( szFPS ), dbScreenHeight ( ) - 40, szFPS );

		if ( dbSpaceKey ( ) )
			dbPhySetRigidBodyLinearVelocity ( 2, 10, 10, 0 );

		while ( dbPhyGetTriggerData ( ) )
		{
			dbPhySetRigidBodyLinearVelocity ( 10, -10, 10, 0 );
		}

		//	showFPS   ( );
		//userInput ( );

		//dbPhyUpdateStep1 ( );

		dbPhyUpdate ( );
		dbSync      ( );

		//dbPhyUpdateStep2 ( );
	}

	dbPhyEnd ( );
}

void showFPS ( void )
{
	char szFPS [ 256 ] = "";
	strcpy ( szFPS, "fps = " );
	strcat ( szFPS, dbStr ( dbScreenFPS ( ) ) );
	dbText ( dbScreenWidth ( ) - 20 - dbTextWidth ( szFPS ), dbScreenHeight ( ) - 40, szFPS );
}

void userInput ( void )
{
	dbControlCameraUsingArrowKeys ( 0, g_fSpeed, g_fTurn );

	g_fOldCamAngleY = g_fCameraAngleY;
	g_fOldCamAngleX = g_fCameraAngleX;

	g_fCameraAngleY = dbWrapValue ( g_fCameraAngleY + dbMouseMoveX ( ) * 0.4f );
	g_fCameraAngleX = dbWrapValue ( g_fCameraAngleX + dbMouseMoveY ( ) * 0.4f );

	dbYRotateCamera ( dbCurveAngle ( g_fCameraAngleY, g_fOldCamAngleY, 24 ) );
	dbXRotateCamera ( dbCurveAngle ( g_fCameraAngleX, g_fOldCamAngleX, 24 ) );

	char* szKey = dbInKey ( );

	if ( strcmp ( szKey, "+" ) == 0 )
	{
		if ( g_fSpeed < 1000 )
			g_fSpeed = g_fSpeed + 0.01f;
	}

	if ( strcmp ( szKey, "-" ) == 0 )
	{
		if ( g_fSpeed > 0.02f )
			g_fSpeed = g_fSpeed - 0.01f;
	}

	//float fHeight = dbGetTerrainGroundHeight ( 1, dbCameraPositionX ( ), dbCameraPositionZ ( ) );
	//dbPositionCamera ( dbCameraPositionX ( ), fHeight + 3.0f, dbCameraPositionZ ( ) );
}


Transforming growth factor-beta1 up-regulates p15, p21 and p27 and blocks cell cycling in G1 in human prostate epithelium.
Transforming growth factor-beta1 (TGFbeta1) is inhibitory to most epithelia, but its role in the control of proliferation of prostatic epithelium is unclear. In some cells, TGFbeta1 inhibition is achieved by up-regulation of cyclin-dependent kinase (cdk) inhibitors including p15, p21 and p27. Our aims were to determine whether the effects of TGFbeta1 on human prostatic epithelial cell cycle kinetics were mediated by alterations in the levels of the cdk inhibitors p15, p16, p21 and p27 and hypo-phosphorylated retinoblastoma protein (Rb). Human prostatic epithelial cells in primary culture were grown in the presence of TGFbeta1 (0-10 ng/ml) for up to 4 days and proliferation assessed using a [3H]thymidine uptake assay. Levels of p15, p16, p21 and p27 were measured at both mRNA and protein level by means of a reverse transcriptase PCR-based assay and Western analysis. Rb and cdk2 levels were measured. Exogenous TGFbeta1 (0-5 ng/ml) inhibited proliferation. This was associated with blocking of the cell cycle at G1, and up to 4-fold increases in p15, p21 and p27 mRNA levels, but no change was observed in p16 mRNA levels; these changes were not blocked by cycloheximide. Increased levels of p15, p21 and p27 protein were also accompanied by increased levels of hypo-phosphorylated Rb and decreased cdk2 kinase activity. TGFbeta1 has mainly inhibitory effects on benign human prostatic epithelium, which are caused by up-regulation of cdk inhibitors, hypo-phosphorylation of Rb and delaying of the cell cycle in G1.


Our Mission

CollegeSpring is dedicated to helping students from low-income backgrounds pursue the college educations they deserve.

Unfortunately, some American high school students face a much longer and rougher road to college than others. This is particularly true for students from low-income backgrounds, who often lack access to the same assistance and resources as their wealthier peers: test preparation, college coaching, information about financial aid, and networks of college-educated people in their community.

Add these inequities together, and it’s not hard to understand why many smart, hardworking, and resilient students never have the opportunity to attend college—or to receive the financial benefits of a degree.

CollegeSpring exists to bridge that gap. We work with students in their classrooms to help them increase their SAT and ACT scores and confidently navigate the application process—empowering them to demonstrate their true potential, and increasing their chances of attending a four-year college by nearly 50 percent.


Q:

Intelligent subreporting in Crystal Reports?

Here's my situation. I've got to report a list of activities for a place chronologically. There are a multitude of different kinds of activities. They do share some data in common (i'll put this in the main report), but I want to have it so that depending on what kind of activity is done, a different subreport shows the details that are unique for each activity. Is this possible?

A:

Yes, you could suppress the subreports using formulae which look at the fields you use to link the main report to the subreports.


Q:

normalizing dataset for extrapolation - sample or population mean and standard deviation?

I am currently fitting models that are intended to be used for extrapolating from a limited sample to a large population. For a specific example, one model is predicting water temperature in rivers based on attributes of the river. The sample includes data from approximately 1,000 river segments (a river segment is a unique length of a river), which will be used to extrapolate to over 100,000 river segments. This is a neural network model, but I have the same question for a different model using hierarchical logistic regression models, so the question is not statistical method specific.
I have read and have found through experience that normalizing my modeling dataset can improve model fit. However, I am unsure in this instance because the goal is extrapolating to the population. Should the predictors be normalized [(y - mean)/stdev] based on their mean and sdev in the sample or in the population of river segments?
I have taken the opinion that I should normalize based on the population to help ensure that the population variability is represented adequately in the modeling dataset.
I apologize if there is a cross posting, as I have searched for this answer thoroughly and have not seen a similar question or discussion anywhere. So I am asking this here. Please point me to an answer if one exists elsewhere.

A:

I assume that you are scaling the data in order to improve convergence of the training algorithm. If so, it doesn't make much difference what values you use, except that you have to consistently apply the same scaling to non-training data as to training data.


Q:

JavaFX textarea displaying big file

I'm trying to show on screen a textfile content using JavaFX textarea. I success doing it with small files, but with big ones everything becomes too slow. File with size 64KB was read in 1 second, and it takes 2 minutes to display it. There is code:
try (FileReader fileReader = new FileReader(file); BufferedReader reader = new BufferedReader(fileReader)) {
    char[] buf = new char[102400];
    int haveRead;
    while ((haveRead = reader.read(buf)) != -1) {
        buf = Arrays.copyOf(buf, haveRead);
        String str = new String(buf);
        textArea.appendText(str);
        log.trace(str);
    }
} catch (IOException e) {
    log.error("Error while reading file", e);
}

Logging shows that even with multithreading almost all time program waiting for

textArea.appendText(str);

What to do? Is there faster implementation or mine faults in code? or the only way is to do buffer of displaying text, somehow overriding the behavior of textarea slider?

A:

Don't use TextArea when you have more than thousand lines of text.
If you want just to display the text simply use a ListView<String>:
But if you need to edit the Text you have to build your own BigTextArea or look for a good library with one. For example RichTextFx:
StyleClassedTextArea bigTextArea = new StyleClassedTextArea();
try (FileReader fileReader = new FileReader(file);
                    BufferedReader reader = new BufferedReader(fileReader)) {
    StringBuilder sb = new StringBuilder();
    while ((haveRead = reader.read(buf)) != -1) {
        sb.append(buf);
    }
    bigTextArea.appendText(sb.toString());
} catch (IOException e) {
    log.error("Error while reading file", e);
}