Increased perivascular laminin predicts damage to astrocytes in CA3 and piriform cortex following chemoconvulsive treatments.
Status epilepticus (SE) induced by pilocarpine or kainate is associated with yet not systemically investigated astrocytic and vascular injuries. To investigate their possible association with neuronal damage, the changes in glial fibrillary acidic protein (GFAP), laminin and neuron-specific nuclear protein (NeuN) immunoreactivities were analyzed in rats treated with pilocarpine (380 mg/kg) or kainate (15 mg/kg), and receiving diazepam (20mg/kg) after 10 min of SE. A different group of rats was injected with endothelin-1 (ET-1) in the caudate putamen to reproduce the changes in GFAP and laminin immunoreactivities associated with ischemia. Focal loss of GFAP immunostaining was accompanied by increased laminin immunoreactivity in blood vessels, in all the examined groups. Regression analysis revealed a significant (P<0.01) relationship between astrocytic lesion and increased laminin immunoreactivity in the piriform cortex (Pir) of both pilocarpine (R(2)=0.88) and kainate (R(2)=0.94) groups of treatment. A significant relationship (P<0.01; R(2)=0.81) was also present in the cornu Ammonis 3 (CA3) hippocampal region of pilocarpine-treated rats. At variance, neuronal and glial lesions were significantly related (P<0.05, R(2)=0.74) only in the substantia nigra of pilocarpine-treated rats. The ratio between areas of GFAP and laminin changes of immunoreactivity in the ET-1 group was similar to those found in pilocarpine- and kainate-treated rats in specific brain regions, such as the hippocampal CA3 subfield, Pir and the anterior olfactory nucleus. The amygdala and submedius thalamic nucleus in the pilocarpine group, and the perirhinal and entorhinal cortices in the kainate group, also presented ischemic-like changes. These results indicate that laminin immunoreactivity is upregulated in the basal lamina of blood vessels after SE induced by pilocarpine or kainate. This phenomenon is significantly associated with lesions involving more glial than neuronal cells, in specific cerebral regions.


                      United States Court of Appeals
                            FOR THE EIGHTH CIRCUIT
                                     ___________

                                     No. 99-1444
                                     ___________

United States of America,              *
                                       *
            Plaintiff/Appellee,        *
                                       * Appeal from the United States
     v.                                * District Court for the Eastern
                                       * District of Missouri.
Jerome Williams, a/k/a Bobo Williams, *
                                       *
            Defendant/Appellant.       *
                                  ___________

                               Submitted: September 14, 1999
                                   Filed: October 15, 1999
                                    ___________

Before RICHARD S. ARNOLD, BRIGHT and LOKEN, Circuit Judges.
                           ___________

BRIGHT, Circuit Judge.

        Jerome Williams appeals his convictions on two counts of felon in possession
of a firearm, in violation of 18 U.S.C. § 922(g)(1), and one count of possession of an
unregistered firearm, in violation of 26 U.S.C. § 5841. For these three counts, Williams
received a sentence of 288 months (twenty-four years) imprisonment. Williams claims
hidden bias in the testimony of Kevin Murray, the government's sole corroborating
witness. The bias rested on circumstances indicating that Murray may have testified
favorably to the government to avoid revocation of his probation. On appeal Williams
raises two issues: (1) the government violated Brady v. Maryland, 373 U.S. 83 (1963),
when it failed to disclose Murray's full criminal history, including information about his
probationary status and the possible revocation of his parole, and (2) the district court
erred by refusing to allow cross-examination of Murray about pending charges that
could support a claim of bias. We affirm the district court because the stipulation, to
which both sides ultimately agreed, corrected the government's failure to disclose the
information and rendered any erroneous omissions harmless.

I.    BACKGROUND

       James Lawson and Tanya Hanks are common law spouses. Around the time of
the incident, they had separated temporarily. Kevin Murray lived in the apartment
below Hanks prior to and at the time of the incident. On Sunday, April 5, 1998, Hanks
invited Lawson to the apartment, where they met outside and walked into the apartment
together. Before going inside, they greeted Kevin Murray, who was outside the
building working on his car.

       Lawson testified that Jerome Williams, who was waiting inside the apartment,
threatened him with a sawed-off shotgun when he entered the kitchen with Hanks.1
Williams hit Lawson with the gun twice, and then discharged the gun; the blast left
Lawson with a head wound. Lawson ran from the apartment to his car as Williams
chased him with the gun. Williams then shot out two of Lawson's tires, but Lawson
managed to drive to a gas station before he lost consciousness. Murray was still
outside working on his car when these events occurred. Williams – according to the
government – then ran off and threw the shotgun in a dumpster. Mark Wilderman, a
local resident, was walking his dog when he heard a gun blast. He then saw a black
male run by him and throw a shotgun in a dumpster. Wilderman was unable to identify
Williams as the man who ran by him that day.

      1
       At trial, the defense suggested that Tanya Hanks and not Jerome Williams had
possessed and used the sawed-off shotgun.

                                          –2–
       The police did not make an arrest on the day of the attack, but on April 8, 1998,
law enforcement officers stopped a vehicle with a crooked license plate. Williams was
a passenger in that car, and when the police tried to stop the vehicle, Williams jumped
from the vehicle and ran. The officers chased him on foot and saw him throw a dark
object from his pocket into the bushes. Police recovered a black .38 caliber revolver
from the site. Later, Lawson identified Williams as the man who had attacked him.

        At trial, Kevin Murray was the single witness able to corroborate Lawson's
identification of Williams as his assailant. When subpoenaed, Murray tried to evade
testifying at trial because, unbeknownst to the government or defense counsel, he had
warrants pending against him for misdemeanor stealing charges in other jurisdictions.
The briefs are unclear about the exact charges pending against Murray in other
jurisdictions. According to the government, Murray had both a “misdemeanor
conviction” against him as well as “pending misdemeanor warrants.” According to the
defense, Murray was on “probation” and was “wanted in several jurisdictions.” It
appears from the record that Mr. Murray not only had a list of prior felony convictions
that included rape and failure to appear, but was on probation at the time for a
misdemeanor stealing conviction and had warrants pending for his arrest on other
misdemeanor stealing charges.

        The government brought Murray into court to testify on a material witness
warrant. At the time the federal prosecutor was preparing Murray as a witness, he
discovered from Murray's lawyer, Eric Butts, that Murray had these warrants pending
in other jurisdictions. During that conversation, Mr. Butts asked the federal prosecutor
to call local prosecutors to inform them that Murray was a government witness in this
trial. The federal prosecutor agreed to do so, but informed Mr. Butts that he would not
request leniency for Murray. On direct examination, the government questioned
Murray about his prior felony convictions, but not the misdemeanor conviction for
which he was on probation, nor the pending warrants for stealing. The government also

                                          –3–
asked Murray whether he was receiving any benefit for his testimony on direct
examination, and Murray responded that he was not.

       After Murray had testified and been released as a witness in this case, the federal
prosecutor informed defense counsel and the district court about Murray's pending
charges, his probationary status, and the promised conversation between the federal and
local prosecutors. Once notified, the defense counsel requested that she be allowed to
recall the witness and cross-examine him about his prior misdemeanor conviction,
probationary status, and pending warrants in order to demonstrate that the witness,
facing the possible revocation of his probation, could be biased in favor of the
government in the hope that the government would suggest to local prosecutors that
they be more lenient with him. When the district court disallowed the cross-
examination, the prosecution and defense agreed to a stipulation that would inform the
jury of Murray's situation. Without waiving any of defendant's objections, the trial
court directed defense counsel to read the stipulation to the jury before closing
arguments. The stipulation stated:

       The United States versus Jerome Williams. Stipulation: The parties
       hereby agree that prior to his testimony, the Government informed Kevin
       Murray that a Government prosecutor would inform prosecuting attorneys
       in another jurisdiction where Mr. Murray had misdemeanor warrants
       pending that he had testified in this case. The Government did not agree
       to make any request for leniency on Mr. Murray's behalf. So stipulated
       and agreed by Gabriel Gore . . . .

Trial Tr. (II) at 174.

                                           –4–
II.    DISCUSSION

       A.     Brady Violation

       Williams contends that the government violated Brady when it failed to inform
defense counsel that Murray was a probationer whose status could be revoked because
of pending misdemeanor charges. "To succeed on a Brady claim, [a] 'defendant must
show that the prosecution suppressed the evidence, the evidence was favorable to the
accused, and the evidence was material to the issue of guilt or punishment.'" United
States v. Whitehead, 176 F.3d 1030, 1036 (8th Cir. 1999) (quoting United States v.
Flores-Mireles, 112 F.3d 337, 339-40 (8th Cir. 1997)). "[T]he Brady rule applies to
impeachment evidence, as well as to exculpatory evidence." United States v. Wayne,
903 F.2d 1188, 1192 (8th Cir. 1990).

        Here, reversal based on a violation of the Brady rule cannot prevail because the
error was not prejudicial and amounted to harmless error. Williams emphasizes that
the pending charges against Murray, in the context of Murray's awareness that the
government would speak with local prosecutors about his assistance in this trial, raised
an inference of bias. We agree that the government should have disclosed the
information regarding the pending warrants, misdemeanor conviction, and probationary
status to defense counsel prior to Murray's cross-examination. Although normally the
prosecution need not disclose the mere existence of pending warrants, here the pending
warrants underlay the basis for the federal prosecutor’s promised communications with
local prosecutors. The evidence of Murray’s probationary status and pending
warrants, in combination with the promise of a conversation between prosecutors about
Murray's role as a government witness, could raise an inference that the defendant was
testifying in order to benefit himself. It is a Brady violation to fail to disclose evidence
that a witness is testifying solely to curry the government’s favor in his own
prosecution. See Reutter v. Solem, 888 F.2d 578, 581-82 (8th Cir. 1989). However,
the stipulation sufficiently corrected any otherwise material omissions because

                                           –5–
ultimately the jury learned of Murray's entire criminal history except one misdemeanor
conviction for which he was on probation. Moreover, defense counsel read the
stipulation to the jury before closing arguments; therefore, she had the opportunity to
draw the jury's attention to the witness's bias through argument that she otherwise
would have had through cross-examination.

      B.     Limitations of Cross-Examination

       The limitation on cross-examining Murray also constitutes harmless error. Here,
the district court refused to allow cross-examination on the misdemeanor charges
because they were “wanteds” or pending charges which he found inadmissible for
purposes of impeaching the witness's credibility. This holding does not violate the
Sixth Amendment, see Wise v. Bowersox, 136 F.3d 1197, 1205 (8th Cir. 1998), but
introduction of such evidence is permissible under Rule 608. The presence of
outstanding warrants together with defendant's status as a probationer may serve as a
basis to contend that these circumstances influenced the witness to testify favorably for
the prosecution.2 While the district court may have erred by rejecting a limited cross-
examination on this topic, that decision did not sufficiently prejudice the defendant to
warrant reversal.

      2
        Evidence of witness bias generally should be made available to the jury. See
4 JACK B. WEINSTEIN ET AL., WEINSTEIN'S FEDERAL EVIDENCE § 607.04[1] (2d ed.
1999) ("Since bias of a witness is always significant in assessing credibility, the trier
of fact must be sufficiently informed of the underlying relationships, circumstances, and
influences operating on the witness to determine whether a modification of testimony
reasonably could be expected as a probable human reaction.") (footnote omitted); see
also Davis v. Alaska, 415 U.S. 308, 317 (1974) ("[T]he jurors were entitled to have the
benefit of the defense theory [of witness bias] . . . so that they could make an informed
judgment as to the weight to place on [the witness's] testimony . . . .").

                                          –6–
III.   CONCLUSION

       For the reasons stated above, we affirm the convictions.

       A true copy.

             Attest:

                      CLERK, U.S. COURT OF APPEALS, EIGHTH CIRCUIT.

                                         –7–


FreeBSD, p0f, and USB pcap

If, like me, you had a working FreeBSD system with amavisd-new and p0f set up, you might find that p0f suddenly stopped working at some point. The cause for this is that it tries to use pcap on the USB bus, which it cannot do. The solution is to put hw.usb.no_pf=1 in your /boot/loader.conf.


Jim Schillreff – Jimmy’s Java

We have been using our roaster in a production environment for 3 months and are extremely satisfied with the value-to-cost of the Artisan V Roaster. We can consistently roast back-to-back ‘super loads’ (over 5lbs) with little or no trouble (after the heat shield upgrade). Ken and the folks at Coffee Crafters are always available to talk and are ready to incorporate suggestions for improvements into the equipment. We have found it VERY easy to service (yes we have had several significant problems that were solved with the heat shield upgrade) and even the most major repair can be made by any reasonably savvy roaster-owner. We plan on buying a second roaster this Fall.


New tech borrows vintage style at CES 2014 (pictures)

There's always a handful of stylishly vintage themed gadgets if you look for them here at CES. Crosley is of course a favorite here, but this year we spotted a number of hip looking retro tech items of interest.

Read More

Crosley CR8015 Distiller

At CES each year we see all manner of new tech products that are built with retro style. Here's a collection of new gadgets that lean on vintage aesthetics.

Ion Bluetooth adapter

Have an old car with a tape deck but want to listen to your music off an iPod or phone while driving? This little baby from Ion is a Bluetooth adapter in the form of an audio tape you stick right in your deck.


Two protesters arrested at Thomas Square

Two members of (de)Occupy Honolulu were arrested after they refused to vacate a tent set up on the sidewalk on South Beretania Street in front of Thomas Square this afternoon.

Jehle Phillips-Frankie, 20, and Catherine Russell, 34, were arrested at 3:45 p.m. and charged with obstructing government operations, a misdemeanor. They were each released on $100 bail, said Andrew Smith, another (de)Occupy Honolulu member.

Smith said that city officials backed by Honolulu police officers went to Thomas Square about 11 a.m. to clear out tents, chairs and other items that were tagged under the city’s store property ordinance.

Phillips-Frankie and Russell, and a third (de)Occupy Honolulu member chained themselves to a pallet inside a tent and then refused to follow demands by police and city officials to vacate the tent, Smith said.

City employees then left but police returned about 3:45 and arrested Phillps-Frankie and Russell, who had by then stepped out of the tent, Smith said.

Smith said police could have handled the situation better and that it was “really shady” that HPD returned to make the arrests after television news crews had left the scene.

Smith said it was the 35th time officers have raided the (de)Occupy Honolulu site. The group has been there since Nov. 5.


Things you might also like

The theory that Android smartphone users don't buy apps is wrong, according to new data that shows 93 per cent of Android phone owners are buying apps rather than just downloading free ones.

In a recent survey by Android keyboard developer Swiftkey, the data reveals that twice the number of Android owners own more than 20 apps compared to users last year.

The results suggest that the Google Play store is finally coming of age and that Android users are happy to pay for apps if they feel they are worth it.

In comparison the same survey last year found that in 2011 Apple users were four times more likely to have more than 20 paid apps on their phone compared to Android users (39 per cent vs. 10 per cent).

Now in 2012 the gap has narrowed.

According to the results of almost 14,000 Android users, Google phone users are paying for apps more than ever.

In 2012, 19 per cent of Android phone owners said they now had more 20 apps on their phone.

Apple users now have fewer: only 26 per cent have over 20 apps in 2012.

That trend is confirmed further when you look at free apps and their downloads. In 2011 Android users were four times more likely than Apple users to have never paid for an app (12 per cent vs 3 per cent).

Now in 2012 the difference is minimal: 7 per cent of Android users have not bought a single app compared to only 6 per cent of Apple users.


Alexandria (Agenzia Fides) - He was released from prison accused of having planned and carried out the attack on New Year's Eve 2011 at the Coptic church of Saints Mark and Peter in Alexandria, Egypt, which caused 23 deaths and nearly a hundred wounded among the faithful who had gathered at the place of worship to participate in the midnight liturgical rite. We are talking about Ahmad Lutfi Ibrahim, The accused is now under house arrest. He must answer charges of terrorist attack and incitement to violence.
After almost six years, the dynamics of the massacre of San Silvestro in Alexandria are not at all clear. Already in the first hours after the attack, the official versions provided on how the attack was carried out differed from those who were talking about suicide attack and those who reported the use of a car bomb. Investigations conducted by the Egyptian Interior Ministry immediately followed an Islamist line of investigation, blaming an extremist group based in the Gaza Strip for the attack. After the start of the Arab Spring and the resignation of President Hosni Mubarak, different reconstructions indicated the apparatus of the Egyptian Ministry of Interior as instigators of the massacre, as part of a "strategy of tension" aimed at increasing social alarm to back up the declining power of the same Mubarak. (GV) (Agenzia Fides 07/10/2016)


Q:

Comparison: import statement vs __import__ function

As a followup to the question Using builtin __import__() in normal cases, I lead a few tests, and came across surprising results.
I am here comparing the execution time of a classical import statement, and a call to the __import__ built-in function.
For this purpose, I use the following script in interactive mode:
import timeit

def test(module):
    t1 = timeit.timeit("import {}".format(module))
    t2 = timeit.timeit("{0} = __import__('{0}')".format(module))
    print("import statement:   ", t1)
    print("__import__ function:", t2)
    print("t(statement) {} t(function)".format("<" if t1 < t2 else ">"))

As in the linked question, here is the comparison when importing sys, along with some other standard modules:
>>> test('sys')
import statement:    0.319865173171288
__import__ function: 0.38428380458522987
t(statement) < t(function)

>>> test('math')
import statement:    0.10262547545597034
__import__ function: 0.16307580163101054
t(statement) < t(function)

>>> test('os')
import statement:    0.10251490255312312
__import__ function: 0.16240755669640627
t(statement) < t(function)

>>> test('threading')
import statement:    0.11349136644972191
__import__ function: 0.1673617034957573
t(statement) < t(function)

So far so good, import is faster than __import__().
This makes sense to me, because as I wrote in the linked post, I find it logical that the IMPORT_NAME instruction is optimized in comparison with CALL_FUNCTION, when the latter results in a call to __import__.
But when it comes to less standard modules, the results reverse:
>>> test('numpy')
import statement:    0.18907936340054476
__import__ function: 0.15840019037769792
t(statement) > t(function)

>>> test('tkinter')
import statement:    0.3798560809537861
__import__ function: 0.15899962771786136
t(statement) > t(function)

>>> test("pygame")
import statement:    0.6624641952621317
__import__ function: 0.16268579177259568
t(statement) > t(function)

What is the reason behind this difference in the execution times?
What is the actual reason why the import statement is faster on standard modules?
On the other hand, why is the __import__ function faster with other modules?
Tests lead with Python 3.6

A:

timeit measures the total execution time, but the first import of a module, whether through import or __import__, is slower than subsequent ones - because it's the only one that actually performs module initialization. It has to search the filesystem for the module's file(s), load the module's source code (slowest) or previously created bytecode (slow but a bit faster than parsing the .py files) or shared library (for C extensions), execute the initialization code, and store the module object in sys.modules. Subsequent imports get to skip all that and retrieve the module object from sys.modules.
If you reverse the order the results will be different:
import timeit

def test(module):
    t2 = timeit.timeit("{0} = __import__('{0}')".format(module))
    t1 = timeit.timeit("import {}".format(module))
    print("import statement:   ", t1)
    print("__import__ function:", t2)
    print("t(statement) {} t(function)".format("<" if t1 < t2 else ">"))

test('numpy')
import statement:    0.4611093703134608
__import__ function: 1.275512785926014
t(statement) < t(function)

The best way to get non-biased results is to import it once and then do the timings:
import timeit

def test(module):
    exec("import {}".format(module))
    t2 = timeit.timeit("{0} = __import__('{0}')".format(module))
    t1 = timeit.timeit("import {}".format(module))
    print("import statement:   ", t1)
    print("__import__ function:", t2)
    print("t(statement) {} t(function)".format("<" if t1 < t2 else ">"))

test('numpy')
import statement:    0.4826306561727307
__import__ function: 0.9192819125911029
t(statement) < t(function)

So, yes, import is always faster than __import__.

A:

Remember that all modules get cached into sys.modules after the first import, so the time...
Anyway, my results look like this:
#!/bin/bash

itest() {
    echo -n "import $1: "
    python3 -m timeit "import $1"
    echo -n "__import__('$1'): "
    python3 -m timeit "__import__('$1')"
}

itest "sys"
itest "math"
itest "six"
itest "PIL"

import sys:  0.481
__import__('sys'):  0.586
import math:  0.163
__import__('math'):  0.247
import six:  0.157
__import__('six'):  0.273
import PIL:  0.162
__import__('PIL'):  0.265

A:

What is the reason behind this difference in the execution times?

The import statement has a pretty straighforward path to go through. It leads to IMPORT_NAME which calls import_name and imports the given module (if no overriding of the name __import__ has been made):
dis('import math')
  1           0 LOAD_CONST               0 (0)
              2 LOAD_CONST               1 (None)
              4 IMPORT_NAME              0 (math)
              6 STORE_NAME               0 (math)
              8 LOAD_CONST               1 (None)
             10 RETURN_VALUE

__import__, on the other hand, goes through the generic function call steps that all functions do via CALL_FUNCTION:
dis('__import__(math)')
  1           0 LOAD_NAME                0 (__import__)
              2 LOAD_NAME                1 (math)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE

Sure, it's builtin and so faster than normal py functions but it is still slower than the import statement with import_name.
This is why, the difference in time between them is constant. Using @MSeifert snippet (that corrected the unjust timings :-) and adding another print, you can see this:
import timeit

def test(module):
    exec("import {}".format(module))
    t2 = timeit.timeit("{0} = __import__('{0}')".format(module))
    t1 = timeit.timeit("import {}".format(module))
    print("import statement:   ", t1)
    print("__import__ function:", t2)
    print("t(statement) {} t(function)".format("<" if t1 < t2 else ">"))
    print('Diff: {}'.format(t2-t1))

for m in sys.builtin_module_names:
    test(m)

On my machine, there's a constant diff of around 0.17 between them (with slight variance that's generally expected)
*It is worth noting that these aren't exactly equivalent. __import__ doesn't do any name binding as the bytecode attests.


Investigations into the mechanism of adsorption of carbon nanotubes onto aminopropylsiloxane functionalized surfaces.
The factors that control carbon nanotube (CNT) adsorption onto aminopropyl siloxane (APS)-derivatized surfaces were investigated using two distinct types of well-characterized films with significant differences in their detailed structures. Both types of APS films showed a marked increase in CNT adsorption relative to untreated SiO2 surfaces but differed in the amount of CNTs adsorbed. To gain insight into the factors governing adsorption, the surface coverage of the CNTs was monitored as a function of the pH during the deposition, the surfactant used to suspend the CNTs, and the type and amount of salt added to the deposition solution. The adsorption is shown to be governed by electrostatic and VDW forces. In the case of complimentarily charged surfaces, the adsorption is proposed to occur through an ion exchange mechanism.


Q:

How to update pandoc on centos linux?

I dowloaded cabal-install-1.20.0.3.tar.gz file and extracted when I try to run am getting following errors.My aim is to update pandoc. Now I have pandoc 1.9 but I need 1.12 version.To update pandoc am trying to update cabal library.But no luck
root@gains [/home/quotequadsco/pkp/cabal-install-1.20.0.3]# sh bootstrap.sh
Using gcc for C compiler. If this is not what you want, set CC.
Using /usr/libexec/gcc/x86_64-redhat-linux/4.4.7/collect2 instead.
Checking installed packages for ghc-7.0.4...
deepseq is already installed and the version is ok.
time is already installed and the version is ok.
Cabal-1.20.0.0 will be downloaded and installed.
transformers is already installed and the version is ok.
mtl is already installed and the version is ok.
text is already installed and the version is ok.
parsec is already installed and the version is ok.
network is already installed and the version is ok.
HTTP-4000.2.12 will be downloaded and installed.
zlib is already installed and the version is ok.
random is already installed and the version is ok.
stm is already installed and the version is ok.

Downloading Cabal-1.20.0.0...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  318k    0  318k    0     0   688k      0 --:--:-- --:--:-- --:--:-- 1439k
[ 1 of 76] Compiling Distribution.PackageDescription.Utils ( Distribution/PackageDescription/Utils.hs, Distribution/PackageDescription/Utils.o )
[ 2 of 76] Compiling Distribution.Simple.CCompiler ( Distribution/Simple/CCompiler.hs, Distribution/Simple/CCompiler.o )
[ 3 of 76] Compiling Distribution.Compat.CreatePipe ( Distribution/Compat/CreatePipe.hs, Distribution/Compat/CreatePipe.o )
[ 4 of 76] Compiling Distribution.Compat.Environment ( Distribution/Compat/Environment.hs, Distribution/Compat/Environment.o )
[ 5 of 76] Compiling Distribution.Compat.Exception ( Distribution/Compat/Exception.hs, Distribution/Compat/Exception.o )
[ 6 of 76] Compiling Distribution.Compat.TempFile ( Distribution/Compat/TempFile.hs, Distribution/Compat/TempFile.o )
[ 7 of 76] Compiling Distribution.Compat.CopyFile ( Distribution/Compat/CopyFile.hs, Distribution/Compat/CopyFile.o )
[ 8 of 76] Compiling Distribution.GetOpt ( Distribution/GetOpt.hs, Distribution/GetOpt.o )
[ 9 of 76] Compiling Distribution.Compat.ReadP ( Distribution/Compat/ReadP.hs, Distribution/Compat/ReadP.o )
[10 of 76] Compiling Distribution.Text ( Distribution/Text.hs, Distribution/Text.o )
[11 of 76] Compiling Distribution.Version ( Distribution/Version.hs, Distribution/Version.o )
[12 of 76] Compiling Language.Haskell.Extension ( Language/Haskell/Extension.hs, Language/Haskell/Extension.o )
[13 of 76] Compiling Distribution.TestSuite ( Distribution/TestSuite.hs, Distribution/TestSuite.o )
[14 of 76] Compiling Distribution.System ( Distribution/System.hs, Distribution/System.o )
[15 of 76] Compiling Distribution.Simple.PreProcess.Unlit ( Distribution/Simple/PreProcess/Unlit.hs, Distribution/Simple/PreProcess/Unlit.o )
[16 of 76] Compiling Distribution.ReadE ( Distribution/ReadE.hs, Distribution/ReadE.o )
[17 of 76] Compiling Distribution.Verbosity ( Distribution/Verbosity.hs, Distribution/Verbosity.o )
[18 of 76] Compiling Distribution.Package ( Distribution/Package.hs, Distribution/Package.o )

Distribution/Package.hs:91:59:
    No instance for (NFData Version)
      arising from a use of `rnf'
    Possible fix: add an instance declaration for (NFData Version)
    In the second argument of `seq', namely `rnf version'
    In the expression: rnf name `seq` rnf version
    In an equation for `rnf':
        rnf (PackageIdentifier name version) = rnf name `seq` rnf version

Error during cabal-install bootstrap:
Compiling the Setup script failed.

Actually I need to update cabal but every attemp fails.
I tried cabal install cabal-install and got following errors
cabal: cannot configure unix-2.7.0.1. It requires base >=4.5 && <4.8
For the dependency on base >=4.5 && <4.8 there are these packages:
base-4.5.0.0, base-4.5.1.0, base-4.6.0.0, base-4.6.0.1, base-4.7.0.0 and
base-4.7.0.1. However none of them are available.

Additional note:Centos 6.6
caball-install version 0.10.2 using version 1.10.2.0 of the Cabal library
GHC version 7.0.4
haskell-platform-2011.4.0.0-6.el6.x86_64
How to resolve it pls help me!

A:

After googling for so long, I got my solution. This issue is because of an old version of ghc.
I downloaded ghc 7.8.3 source tarball from here and installed it.
Then ghc 7.8.3 had old version of cabal so, have to unregister it from ghc 7.8.3 using
ghc unregister Cabal .
Then run bootstrap.sh from cabal-install-1.20 folder and got cabal-install 1.20 successfully and run  cabal update pandoc then,pandoc 1.13 version could be installed


The electronic health record (EHR) promises to revolutionize the practice of medicine. Advocates tout its ability to reduce costs and improve health by standardized practice and reducing medical errors. However, physician adoption has been slow. The Institute of Medicine and the Leapfrog Group cite physician adoption as a significant barrier. There is growing evidence, however, that adoption has been delayed by the negative impact of EHRs on workflow, communications and patient care. We believe substantial improvement in the health care provider's perception of usability can be achieved by creating realistic clinical scenarios, incorporating best practices of Human-Computer Interactions (HCI) design and partnering providers and experts together to build usable, vendor-neutral EHR models. We have three specific aims: 1) Determine the usability of the electronic health record as measured by provider-defined usability (efficiency, effectiveness and satisfaction). We will use cardiovascular clinical scenarios and trained simulated patients (actors) to test existing installed electronic health records. 2) Using value-based software engineering principles and agile development methods link providers with clinical content and HCI experts to build and test wireframe models of desired EHR functionality. 3) Using information obtained through Specific Aims 1 and 2 synthesize the characteristics of users' preferences (clinical setting, clinical expertise and learning style, etc.) and demographics (age, gender, race/ethnicity, and comfort with technology) to propose a set of best practice designs to guide EHR developers. This grant can significantly impact future EHR systems by providing a framework and reliable methods to measure the usability of the EHR by nurses and physicians caring for the patient. Although using cardiovascular clinical scenarios we believe these results will be generalizable to other health care teams.


Home Affairs Minister Peter Dutton has suggested DNA testing would be required to verify the Australian citizenship claims of IS brides trapped in Syria.

However, he argued it was very difficult to see how the women and their children could be repatriated.

"There are some people who may claim to be Australian citizens - we don't know whether they are," Mr Dutton told 3AW Radio on Tuesday.

"You would need DNA testing and you'd need other checks to be made," he said.

"But it is an incredibly dangerous situation and the government has been very clear that we aren't going to put defence personnel or DFAT personnel or home affairs personnel in harm's way to provide support to these people."

Mr Dutton said there was no question the return of IS brides would expose Australia to an increased risk of terror.

"Some people will face arrest if they do get back to Australia because we've been able to gather enough evidence in relation to them," he said.

"Others we just don't know the level of threat.

AAP

"There are others who, on the advice from the agencies, pose a very significant threat. That is, there is a probability of them committing a terrorist offence if they return to Australia."

Labor is not entirely satisfied with the Morrison government's argument that it is too risky to bring home Australian women and children trapped in the fighting in Syria.

Their families have pleaded with the federal government to help extract them from the al-Hawl camp.

Labor frontbencher Madeleine King said her colleagues would continue to pursue the issue throughout the week of Senate estimates hearings.

Getty Images

"I think this is a desperately grave situation that's happening in these camps," she told ABC radio.

"It is a very difficult decision for the government, what is being put to them, and I accept that.

"I accept it's a grave decision to have to think about and consider, putting other Australians' lives in peril to go into a very dangerous situation in foreign lands, so we will examine it further."

Meanwhile a survey has found most Australians are opposed to the repatriation of the IS wives and children.

READ MORE Amid confusion, Donald Trump says small number of US troops will be left in Syria

There are 20 Australian women and 46 children stranded in northern Syria following the defeat of IS.

Some 59 per cent of 1634 voters polled late last week were opposed to their return, The Australian reported on Tuesday.

Another 36 per cent of respondents were in favour.

Opposition to their return was strongest among coalition voters at 70 per cent, according to the Newspoll.

But Labor voters appeared to be split on the issue, with 50 per cent in favour of their repatriation and 45 per cent against.


pH-dependent changes of ganglioside biosynthesis in neuronal cell culture.
Ganglioside biosynthesis was studied in primary cultured murine cerebellar cells after labeling with [14C]galactose. A shift in biosynthesis from "a"-series to "b"-series gangliosides was observed after lowering the pH of the culture medium from 7.4 to 6.2; this effect was fully reversible on changing back to pH 7.4. The observed regulatory effect of pH is in accordance with a recent model of ganglioside biosynthesis. Sialyltransferase II (ST II), the first enzyme for biosynthesis of "b"-series gangliosides, is more active at pH 6.2 than Gal-NAc-transferase, the first enzyme for synthesis of "a"-series gangliosides, which is more active than sialyltransferase II at pH 7.4.


Changes in mode of control and self-control for post myocardial infarction patients evidencing Type A behavior: the effects of a cognitive/behavioral intervention and/or cardiac counseling.
A control model of psychological health was utilized to assess the effects of a cognitive/behavioral intervention and/or cardiac counseling with post myocardial infarction patients evidencing Type A behavior. A previously developed four quadrant control inventory measuring perceived mode of control and perceived self-control was given to groups in two sections of the Recurrent Coronary Prevention Project. The experimental group (coronary counseling plus cognitive/behavioral intervention) was tested after one year (E1) and two years (E2) of treatment. The cardiac counseling group was assessed only after two years (C2). As hypothesized, the cognitive/behavioral treatment section at E2 had a significantly higher overall satisfaction level and congruence between real and ideal self on each of the four quadrants than at E1, and than the cardiac counseling only (C2). Further, on each of the four quadrants, E2 had a psychologically healthier mode of control profile than the cardiac counseling only (C2); and a healthier profile on both the positive assertive and positive yielding mode of control than at E1. Finally, E2's self-control score was significantly higher than C2's. Comments on future directions in measuring perceived control, and on the relationship of control and Type A behavior are offered.


MIRRORBLAZE: The impact of technology on the Trail

by david axel kurtz

The AT is changing. Base weights plummet. Neros get bigger and bigger. Nobos are starting earlier, yoyos are finishing later. Flip-floppers are the new normal. Trail towns are rotting. Drones are coming. The line between supported and unsupported is going to disappear. And maybe I should take a moment to explain what any of that means, so that you can understand what the future holds for hikers and for the trail.

The Appalachian Trail has always had its own little lexicon. Like the trail it changes. Like the trail, it usually gets longer.

A thru-hiker is one going from the top of the trail to the bottom. One may hike from Springer Mountain in Georgia to Mount Katahdin in Maine or the reverse. The former were first called northbounders. But hikers will never miss an opportunity to shed a syllable or two – one part a love of insular lingo, one part just a hatred of syllables – and this was immediately shortened to nobo. Southbounders are hiking sobo, or are on a sobo, or are a sobo – you get the idea.

Nobo and sobo are just the two main types of thru-hike. Some people start at Harpers Ferry – just shy of the midpoint of the trail – and head north to K, only to jump back to Harpers and hike sobo to Springer. This is a flip-flop, and those who hike it, flip-floppers. Whereas some people hike the entire trail, nobo or sobo, and then turn on their heels and hike it right back again. This fine double hike is called a yo-yo; the people who hike it are called insane, clinically; but in the parlence of the trail, yoyos.

On the long cold nights (and, worse, the long hot days), hikers are inclined to talk of all manner of things. Daydreaming about the trail is known to occur. It does take a certain creative spark to see the trail, not as it is, but as it could be. This spark is fairly well prevalent among the hikers, who tend to be young, intelligent, motivated (obviously), good planners (necessarily), and also have this disturbing tendency to be engineers or consultants.

In 2017, a certain hiker (IT WAS ME) suggested a froyo as a variation upon the yoyo – a hike where one would go northbound during the warm hiking months; wait in Maine until the weather became cold; then hike the trail southbound in the winter. This would allow them to experience two distinctly different hikes.

In 2018 the same hiker suggested the cyco, wherein one would hike the length of the trail, and then bike back along the roads which follow it – mountain bikes not being allowed on the trail itself, for much the same reason that thru-hikers aren’t allowed on the interstate.

But these are variations of direction. At their core they assume: same trail, same hikers. With so many hikers – and the ethos of HYOH, Hike Your Own Hike - there have also arisen variations of the trail hiked, and the literal act of hiking.

A thru-hiker is one who hikes the entire trail. But it’s not uncommon for one to miss a few miles here or there – a wrong turn, maybe, or maybe you get off the trail to the left of a town and then get on the trail to the right of it, walking two aching miles of pavement but missing a mile of soft earth in the process. These people are no less thru-hikers. This is why the Appalachian Mountain Club refers, not to thru-hikers, but to “two thousand milers” – people who have hiked over 2,000 miles, while the full length of the trail proper is actually around 2,200.

This hiker is considering trying to thru-hike this year. He might very well skip Pennsylvania from Duncannon to Delaware Water Gap, having already hiked it, and found it to be *awful*. This would put his thru-hike at a mere 2050 miles. He would still call himself a thru-hiker. As would his feet – and they’d thank him for skipping those awful Keystone State rocks.

A detour which you hike is called a blue blaze – again it can refer to the hike, the hiker, or be used as a verb. This is because such trails are marked with literal blue blazes, in contrast to the white blazes that mark the AT proper. A detour which you don’t hike is called a yellow blaze – a joke referring to the fact that it usually involves a car, which follows the yellow markings in the road – and also incapsulates a judgment of cowardice here and there.

Some people might skip a mountain or two due to inclement weather – sometimes a week goes by without a day where one could safely ascend Mount Washington. A common blue blaze goes around the highly toxic superfund site at the Palmerton Gap, and it must be noted that this “winter trail” actually adds about a mile of distance without losing any altitude achieved. Some people skip small sections that they’ve previously hiked. Many repeat thru-hikers skip Rocksylvania (or wish they had). Some people might jump ahead 20 miles to catch up with a hiker whose trail name is Really Great Butt. None of this is begrudged. But it shows that the definition of “the trail” is fluid from hiker to hiker.

This definition also changes for every hiker from year to year. The trail changes. It moves – a little here, a little there. It always starts and ends in the same place, but most everything in the middle is up for grabs – to the point that less than 2% of the current trail is as it was when it was created.

Why is it changed? Usually it is simply as a response to erosion – to allow the earth to heal here, the trail is moved there for a time. Sometimes it is as a result of changes to the landscape – a boulder falls, a dam collapses, the trees are too damn high. Sometimes the trail is changed to make it easier. And most commonly, when the trail is changed for some other purpose, the new route will be the easiest of the possible routes available. As a result, it is generally considered that the Trail is easier than it was at the outset, and that it gets a little easier every year.

And that’s just what is hiked; the hikers too are changing. This mainly expresses itself as improvements to a hiker’s gear – their kit – the contents of their pack. Improvements in gear are still happening at a staggering pace, and have had a truly mind-boggling impact on the hike. A hiking pack in the 1940s might weigh 70 or 80 pounds. In the 1980s, it probably weighed half of that; in the 2000s, half again; until a certain hiker in 2017 enjoyed a base weight of under seven pounds. The same hiker proposes that this halving of weight be referred to as Less’s Law. (I’ll hike myself out.)

It is worth noting that a base weight of seven pounds does not actually leave much room for decreases. A halving of minimum weight (at same level of functionality) would leave a hiker only 3 pounds lighter than they are now. That’s nothing. That’s about the weight of an extra day’s food, or an extra bottle of water, or a full bladder for Christ’s sake. A 3lb reduction, even if it represents 50% of one’s base weight, will hardly be noticeable. Less’s Law has been identified and immediately it is irrelevant.

(Axel’s Corollary to Less’s Law: when the decrease in base weight is less than the weight of an extra bottle of water, it is irrelevant; when one’s total base weight is less than the weight of a bottle of water, one’s base weight is irrelevant entire).

It must be noted that, while Weight has always been the devil on a hiker’s shoulders, its sidekick Volume has also been a burden. In general, modern gear is smaller than older gear – there’s a great picture on the top of r/ultralight of a 110L backpack (this hiker has no trouble using a 57L even for winter hiking). Over the coming years, as weight decreases smash headfirst into diminishing returns, volume decreases will undoubtedly continue – but they’ve never been the priority, and we’re already kicking their ass as well.

I’d file these under “improvements in form.” There have been, and will continue to be, improvements in the function of gear. This includes e.g. faster and more effective water filters; more breathable fabrics; comfortable shoes; more gear is now inherently waterproof; more gear, even ultralight gear, is becoming terribly durable; lead times in manufacture are decreasing; prices are coming down; and batteries are lasting longer, which, thumbsup.jpg.

The effects ot these improvements to gear have been profound. Outside of the uncertainty and the danger of the early hikes; they were slow. Carrying a huge pack really slows you down. The earliest hikers would often hike 10 miles in a day. Now, in a bit of shape and with proper gear, hiking 20 in a day is not at all uncommon; people, regular people, will marathon (26 miles) or even push into 30s - every single day. That would have been impossible two generations ago, and both rare and much harder even in the last generation. In short: these improvements to gear have not made people hike less hard; it has simply increased the amount of hiking one gets done when one pushes oneself. People aren’t hiking easier; they are hiking faster. But it means they are finishing the trail in 4 months (or less), rather than 6 months or more – and that certainly changes the experience.

At the intersection of function and form, a hiker might consider a gedankenexperiment: would they rather hike with a 50 pound pack and a cell phone, or a 5 pound pack and phone-free? The meta-answer is: they would be two very different hikes – both of them different from an AT hike as originally envisaged, and both different from an AT hike as is often undertaken now.

It is also generally considered that the amenities along the trail improve every year. There are towns. There are gas stations and convenience stores. Thanks to the internet they are all easily identified. In the 1950s I rather assume that one would have to depart the trail; hike into town; ask around; find a little store; wait for it to open; and purchase whatever canned goods or dry goods were available. Now one can buy dehydrated hiker’s meals at most every little store along the trail – to say nothing of the preposterously calorically dense snack foods that fill every gas station in America, and which one should really only consume if one has just hiked 1100 miles and has another 1100 to go.

It is worth considering that the general wisdom, here, is wrong – that the heyday of AT amenities might actually be behind us. As one hikes, one encounters no shortage of closed businesses. Some of the Trail Towns – towns near the trail, even towns where the trail runs right down the sidewalks of Maine Street – are fallen on very hard times. Some of them don’t have a lot of businesses left open. Some of them are really a little scary. Hostels like the Bear’s Den are probably less dangerous than sleeping in an actual bear’s den. I never encountered a shelter that was less comfortable than The Doyle.

On the face of it, these are universal changes to the trail; they affect all hikers equally. But this brings us to the other variation, which is in the way one hikes. Most hikes are unsupported – if a hiker wants to resupply (i.e. buy Knorrs sides and jars of peanut butter), they have to depart the trail and head for a grocery store. Sometimes this is a matter of walking a few feet; sometimes it’s walking, or hitchhiking, a few miles. Some few hikers are supported; these are people who arrange for supplies to be brought to them along the trail. These hikers are, pretty much exlusively, those who are trying to set some sort of record. Although even here they are robbed of some glory, as the Trail keeps records for both supported and unsupported hikes.

In the future, however, this is going to change – I bet my poles on it. In my life off-trail – in the cotton life, that most poetic of phrases – I no longer drive to the grocery store; I get food deliveries. These are assembled by people in the grocery store; driven to me by human drivers; brought to my apartment door by a human deliverator. Amazon – my delivery service of choice – is already in the process of replacing the human factor at each of these steps. The grocery stories are being replaced by warehouses, where, as with all other Amazon warehouses, workers are being replaced by machines (robots, if you will). The cars are beginning to drive themselves. Rolling drones – little more than dumber Roombas – are being rolled out to bring the groceries from curb to doorstep. Amazon is already testing aerial drones for the delivery of food and packages. And they’re doing all of this only because it’s cheaper to use robots than minimum-wage employees, and faster to use a sky-darkening horde of VTOL craft than it is to drive in urban traffic.

There will be a trickle-down of this technology. At the easiest, current logistical innovations – GrubHub, Uber, Amazon Prime, Fresh Direct – make it much easier to get to and from a trailhead; to get resupply of food or gear; to get a pepperoni pizza delivered to certain shelters (I’ve done this) (it’s better than a weekend in Amsterdam). On the other hand, if one could get pizza delivered every night, one would never have to worry about resupply. This would eliminate the entire idea of an unsupported hike. It would be wonderful in many ways – but would it still be a thru-hike? Would the Trail still be the Trail?

Let us daydream for a moment. It is now 2018. There are already drones delivering mail, and (in three states) self-driving cars on the roads. In 2023 they will be becoming common; in 2028 I expect they will be ubiquitous, the rule rather than the exception. As a result, I firmly expect that – within ten years – one will be able to order a complete food resupply and have it waiting for you, in the back of a self-driving car, at any of the frequent points where the trail crosses a road. It would not surprise me if one will be able to order a drone delivery, and then not to road intersections, but upon the trail itself.

Imagine how wonderful it would be to hike a 20- or even 30-mile day, collapse by a little wooden shelter in a small clearing by a babbling brook, pull out your phone, and soon thereafter a whirring little drone will drop you down a six-pack and a 20″ with extra cheese. Perhaps you cannot imagine the wonders of this until you have been a long-distance hiker. I can assure you that it is paradise enow.

Undoutedbly it would be expensive. Most hikers cannot afford to eat a pizza every day, even if one were available. But on the other hand, the possibility of drone resupply would mean that hikers would not have to carry food – or not much of it – in their packs. That would eliminate a large amount of weight from the hiker’s back, allowing them to hike longer, faster, and in greater comfort. Hell, there were times when I would be carrying more food weight than gear weight. Drone ressuply could make that a thing of the past.

Also, it could allow one to get deliveries of real food. Not just pizza. Protein. VEGETABLES. A thru-hiker is usually at a calorie deficit, and almost always is lacking in at least one macronutrient (protein) if not others. The extent to which a thru-hiker, on an average day, is lacking in micronutrients (vitamins, minerals) or phytonutrients (fruits and veggies) borders on the comical. It must have an impact on the hiker’s overall health. It must impact their ability to hike. Drones could eliminate this problem.

The problem, here, is that it could allow the average thru-hike to go from unsupported to supported. It would remove the need to resupply, to plan resupplies, to plan – well – anything. It would remove the logistical and tactical elements from hiking. Would that be a fundamental degredation of the nature of the hike, or a fundamental improvement to it – allowing one to push oneself harder, and therefore cover more miles in a day – in a nutshell, just letting one hike better?

It is an ontological question: what is the Trail? Is it the easiest possible path between Point A (Springer) and Point B (K)? Or is it necessarily hard? Is it a long hike aided by the best technology of Now, or the best technology of 1930? Is it necessary that it require planning, thatthere be an element of adventure? Or is hiking all day hard enough, thank you very much, now where’s my drone pizza and six side salads?

I would illustrate this point through a few examples.

-Alice is a hiker. She is carrying a backpack containing 57 pounds of gear and equipment. She is living off of peanut butter and Knorr’s pasta sides. She can only carry 3 days worth of supplies at once, so she is having to plot her resupplies carefully. She gets to go into every town. She hitchhikes a lot. She meets tons of people. She burns through two pairs of heavy over-ankle hiking boots. She makes it to Katahdin in 200 days, and is a thru-hiker.

-Bob is a hiker. He is carrying a backpack containing 10 pounds of gear and equipment. He is eating the same as Alice, but he can carry two weeks worth of food without really weighing himself down. He goes into town a bit less than Alice. He hikes a bit faster in his trail runners – burns through four pairs but that’s to be expected. He makes it to Katahdin in 160 days, and is a thru-hiker.

-Chuck is a hiker. He is carrying a pack that weighs 4 pounds soaking wet (which it never is, because it’s waterproof). He gets all his food delivered by drone. It costs him more but boy is he healthier and happier. He only stops in town when he needs a shower, and then doesn’t bother sleeping there. He makes it to Katahdin in 120 days, and is a thru-hiker.

-Drew is a hiker. She does not carry a backpack or food. Every night a drone brings her, not only dinner, but a sleeping bag and hammock. Every morning she packs it up and the drone takes it away. She never goes into town at all, never sleeps in shelters – she even sends her hiking clothing out with the drone some nights, and in the morning it comes back freshly laundered. She eats well and healthfully every single day. She makes it to Katahdin in 90 days, and is a thru-hiker.

These are four different types of hikes that, I expect, will be available to average hikers within the next decade. As it is, the early AT hikers had it much harder than Alice – they had no cell phones, nothing comparable to a modern guidebook, much less development along the trail, far fewer resupply options, and even heavier packs. Whereas Bob is now the average, Chuck is fast approaching, and Drew is really not that far away. Technology is significantly impacting the way we hike. Soon it will be to the point that it has changed what the hike is itself – if, indeed, we aren’t at that point already.

Personally, this hiker would much prefer to hike as Chuck. He thinks that hiking as Drew would be going too far – but on the other hand, he thinks he might be deluding himself. The difference between Chuck and Drew is minuscule, and hiking with a 4 pound pack just to say that one is carrying one’s gear is a pretty weak imitation of the thru-hikers of yore. Certainly the difference between Chuck and Drew is nothing compared to the difference between Alice and Bob, and that is a distance we have already traveled. And still we think ourselves thru-hikers. (Are we?)

It might even be worth considering that the next generation’s improvements to “the Trail” could focus, not on trail or pack, but on the hikers themselves. Improvements in sports medicine. Better painkillers. Safe steroids. Over-the-counter EPO. Nanotechnology. Stuff that is barely on the horizon now. But one day or another it will start to arrive, and when it does, we will look back on the days when we worried about cutting a few grams from our base weight as the Dark Ages – when feet don’t hurt, when muscles don’t ache, when average people start doing ultras every day.

This hiker might wonder whether a distinction might be made, not between types of hikes, but between trails. For example: maybe the AT would allow drone resupply; the PCT would not, but would allow cell phones and ultralight base weights; the GDT would ban drones and mandate a minimum base weight, much as a drag race might disqualify a car that is too light. This way a hiker could still “old school” it on the AT, but would have to fight the pressure against it; whereas a hiker on the GDT would know that they were similarly situated, that those they met would be HEOH – Hiking Each Other’s Hike.

This hiker wonders whether, in the future, “slack packing” will not be taking off your pack in exchange for a lighter one, but will rather be dumping your light pack in exchange for a heavier one, so that you can experience what hiking used to be like – and appreciate, deeply, how good you now have it.

This hiker wonders whether increases in the ease of the Trail will allow more people to take up “lifestyle hiking,” whereby they incorporate long-distance hiking (or biking) into their daily lives – a dozen miles, a little siesta, an afternoon of work on a little laptop. Doesn’t sound like a bad life. Not for a semester, not for a year. Not, perhaps, for a whole lot longer than that.

The Trail is always changing. So are hikers, so are the way we hike. It is important, at the very least, to understand this – to remember what the Trail used to be, so that it can inform what we want it to be. This humble hiker likes his seven pound base weight. He would not turn up his nose at anything which got him more food on the trail. If hiking gets easier, he’ll hike faster. He’ll hike more, not less. He’ll hike longer, cover more miles, climb more mountains, see more shining seas.


Homosexual PE teacher enjoyed playing ball games. Only not the type of ball games many others do such as football and rugby. The balls he enjoyed playing with belonged to students he taught at the Birmingham school he worked at. The repulsive pervert took advantage of Islams sex segregation rules. Coaxing a male who would have had little contact with a female into bed under the guise of practicing for his future wife.

Shakeel Ahmed leaves Birmingham Crown Cour

A PE teacher at a Birmingham school has gone on trial accused of sexually abusing a former pupil at a hotel.It is alleged Shakeel Ahmed, 45, also molested another student during football games.Ahmed, of Hugh Road, Small Heath , has denied two charges of sexual activity with a child by a person in a position of trust and sexual assault

.Rebecca Wade, prosecuting at Birmingham Crown Court, said: “The prosecution case is that the defendant abused the trust placed in him in his capacity as a teacher and ultimately abused two teenage boys.”She said the victim had left school but later bumped into the defendant and they had exchanged numbers.They met on a number of occasions when Ahmed would be “over familiar”, hugging him and kissing him on the cheek, said Miss Wade.Birmingham Crown Court, where the trial is taking place.

The court heard that on July 19 the defendant had allegedly offered to take the victim to Manchester for a football tour and to watch a film.But Miss Wade said the victim was “surprised” that Ahmed had only booked one room with a double bed at their hotel. When they went into the room the defendant began to take his clothes off and lay down on the bed and asked the victim to undress too, she said.“He was in a state of shock at what this man in whom he had placed a significant amount of trust and respect was doing,” she said.“He felt trapped so he did what was asked of him and took his clothes off.”

Miss Wade said Ahmed had then asked the victim about how he needed to practice how to kiss his future wife, before giving him a “passionate” kiss.She said: “(he) did not know what to do. He was away from home and barely had any money. He had no phone and had no way of getting help.”Miss Wade said they went into the city for a meal and to the cinema and Ahmed told the victim they were going to “practice” again when they got back to the room but the victim refused .Miss Wade said the victim later told an aunt what had happened to him.

The court heard a second complainant later claimed Ahmed would mark him during football games in PE and touch him indecently.When arrested and interviewed, Ahmed denied sexually abusing either of the alleged victims.(proceeding)

Archives

Archives

NOTE: 'ASIAN' = MUSLIM 99% OF THE TIMEThe politically correct term 'Asian' is used by the leftist UK media as a way to cast suspicion on a wider group of people and take some of the negative attention away from the group usually responsible for committing the heinous acts. A perfect example would be the Muslim grooming gang epidemic which are constantly referred to by the press and authorities as 'Asian' grooming gangs. It isn't people from China, Japan or any Far Eastern Asian place. Nor is it Sikhs, Hindus, Buddhists,Christians Etc....They are Muslims!!!! Please keep this in mind when seeing the term 'Asian' on any post

HOW YOU CAN HELP

Kafir Crusaders would never ask for donations, . The blog is out of necessity to make people aware of the threat of political Islam to all our futures.KC would much rather you donate your time,spread the word and help open peoples eyes.

SOCIAL MEDIA: Please consider sharing the articles using the buttons below each post on Facebook, Twitter, G+1, Reddit, etc or anywhere else such as message boards. Shares/Links to pages on this blog are important for search engine placement.Makes the difference between surfers getting pro-Islam websites or KC and learning the truth when they search


138 S.E.2d 827 (1964)
263 N.C. 88
J. Archie WILSON
v.
Marian S. WILSON.
No. 453.
Supreme Court of North Carolina.
November 25, 1964.
Morris & Grandy, Raleigh, for plaintiff.
Lake, Boyce & Lake, Raleigh, for defendant.
*828 PER CURIAM.
"Assignments of error must be based on exceptions duly noted, and may not present a question not embraced in the exception." 1 Strong: N. C. Index, Appeal and Error, s. 19, p. 89. The only exception in the record on this appeal is to the signing and entry of the judgment. "An exception to the judgment presents the correctness of the judgment and whether it is supported by the verdict, properly interpreted, but it cannot affect the verdict." ibid., s. 21, p. 93.
The first and third issues, when considered according to their phraseology, are inconsistent and repugnant. But when interpreted by reference to the pleadings, evidence and charge of the court (Moore v. Humphrey, 247 N.C. 423, 101 S.E.2d 460), the verdict is sustained, except as to the surety on plaintiff's undertaking in claim and delivery. Such surety must be discharged from liability where it is determined by the verdict that plaintiff is entitled to the possession of the chattel in question.
The judgment as against John B. Rogers, surety, will be vacated. In all other respects the judgment is affirmed.
Modified and affirmed.


Mutational and pH studies of the 3' --> 5' exonuclease activity of bacteriophage T4 DNA polymerase.
The 3' --> 5' exonuclease activity of proofreading DNA polymerases requires two divalent metal ions, metal ions A and B. Mutational studies of the 3' --> 5' exonuclease active center of the bacteriophage T4 DNA polymerase indicate that residue Asp-324, which binds metal ion A, is the single most important residue for the hydrolysis reaction. In the absence of a nonenzymatic source of hydroxide ions, an alanine substitution for residue Asp-324 reduced exonuclease activity 10-100-fold more than alanine substitutions for the other metal-binding residues, Asp-112 and Asp-219. Thus, exonuclease activity is reduced 10(5)-fold for the D324A-DNA polymerase compared with the wild-type enzyme, while decreases of 10(3)- to 10(4)-fold are detected for the D219A- and D112A/E114A-DNA polymerases, respectively. Our results are consistent with the proposal that a water molecule, coordinated by metal ion A, forms a metal-hydroxide ion that is oriented to attack the phosphodiester bond at the site of cleavage. Residues Glu-114 and Lys-299 may assist the reaction by lowering the pK(a) of the metal ion-A coordinated water molecule, whereas residue Tyr-320 may help to reorient the DNA from the binding conformation to the catalytically active conformation.


In the DC Comics, Red Hood was formerly Jason Todd, the second Robin sidekick to Batman, after Dick Greyson. Jason Todd was brutally killed by The Joker in the iconic 1988 comic Death in the Family, before he was eventually resurrected through the Lazarus Pit, transforming into the vengeful character known as the Red Hood. The Red Hood went on to become an important character in the comics as an anti-hero who became part of The Dark Knight's rogue's gallery.

The report from August claimed that Ben Affleck is developing this story with DC's Geoff Johns, and if this new report is accurate, the writers will be adapting both the Death in the Family and Under the Red Hood comics. The Red Hood character is described as DC's "answer" to Marvel's The Winter Soldier (Sebastian Stan), a character who started out as a sidekick before transforming into an evil villain. This new story will reportedly feature The Dark Knight facing both The Joker and The Red Hood.

The Batman Reboot will follow Jason Todd, who has returned from the grave and is posing as Batman, trying to portray him as a villain, while leaving clues to his real identity for Batman to decipher. This will all lead to a confrontation between Batman, The Joker and The Red Hood, with The Joker described as a "primary villain" alongside Red Hood. As for the first Robin, Dick Greyson, he is expected to be referenced in Batman v Superman: Dawn of Justice, but not seen, although he will show up in the solo film as Nightwing, helping Batman battle The Red Hood and The Joker.

The latest trailer for Batman v Superman: Dawn of Justice showed Bruce Wayne gazing at Robin's costume, which had a message from The Joker written on it. This implies that he still mourns the death of his sidekick, and it could set the table for this solo movie featuring Batman, The Joker and The Red Hood. It isn't known how closely Ben Affleck and Geoff Johns will be adapting these stories, but hopefully we'll find out new details soon. Are you excited to see The Red Hood and The Joker in the new Batman Reboot?


/***
Copyright 2012 Yotam Rubin <yotamrubin@gmail.com>
   Sponsored by infinidat (http://infinidat.com)

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
***/

#ifndef MAX_ELEMENTS
	#define MAX_ELEMENTS (20)
#endif

#include "bool.h"
#include "macros.h"
#include <string.h>
#include <pthread.h>

/* These macros assume the following:
  - listdatatype is defined to hold the name of the datatype in the list
  - listname is defined to hold the name of list
  - MAX_ELEMENTS is defined to the hold the number of max elements in the list
*/

#define CREATE_LIST_PROTOTYPE(listname, listdatatype)                   \
	typedef struct listname##_s {                                       \
	int element_count;                                                  \
	listdatatype elements[MAX_ELEMENTS];                                \
} listname;                                                             \
                                                                        \
void listname ## __##init(listname *self);                              \
void listname ## __##clear(listname *self);                             \
void listname ## __##fini(listname *self);                              \
int listname##__from_buffer(listname *self, char *buffer, int buffer_size); \
int listname##__add_element(listname *self, listdatatype *element);     \
int listname##__allocate_element(listname *self); \
int listname##__get_element(listname *self, int __index, listdatatype *output_element); \
int listname##__get_element_ptr(listname *self, int __index, listdatatype **element_ptr); \
int listname##__remove_element(listname *self, int __index);              \
int listname##__element_count(listname *self);                          \
int listname##__last_element_index(listname *self);                     \
int listname##__dequeue(listname *self, listdatatype *output_element);  \
int listname##__find_element(listname *self, listdatatype *element);    \
bool_t listname##__insertable(listname *self);

#define CREATE_LIST_IMPLEMENTATION(listname, listdatatype)              \
void listname ## __##init(listname *self)                               \
{                                                                       \
	memset(self, 0, sizeof(*self));                                     \
}                                                                       \
                                                                        \
int listname##__from_buffer(listname *self, char *buffer, int buffer_size) \
{                                                                       \
	listname *other = (listname *) buffer;                              \
	listname ## __##init(self);                                         \
	if (buffer_size != sizeof(*self)) {                                 \
		return -1;                                                      \
	}                                                                   \
	memcpy(&self->elements, other->elements, buffer_size);              \
	self->element_count = other->element_count;                         \
	return 0;                                                           \
}                                                                       \
                                                                        \
void listname ## __clear(listname *self) {                              \
	self->element_count = 0;                                            \
}                                                                       \
                                                                        \
void listname ## __##fini(listname *self)                               \
{                                                                       \
	memset(self, 0, sizeof(*self));                                     \
}                                                                       \
                                                                        \
int listname##__add_element(listname *self, listdatatype *element)      \
{                                                                       \
	if (MAX_ELEMENTS == listname##__element_count(self)) {              \
		return -1;                                                      \
	}                                                                   \
	memcpy(&self->elements[self->element_count], element, sizeof(*element)); \
	self->element_count++;                                              \
	return 0;                                                           \
}                                                                       \
                                                                        \
int listname##__allocate_element(listname *self)                        \
{                                                                       \
	if (MAX_ELEMENTS == listname##__element_count(self)) {              \
		return -1;                                                      \
	}                                                                   \
	self->element_count++;                                              \
	return 0;                                                           \
}                                                                       \
                                                                        \
                                                                        \
int listname##__get_element(listname *self, int __index, listdatatype *output_element) \
{                                                                       \
	int rc = 0;                                                         \
	if (__index >= self->element_count) {                                 \
		memset(output_element, 0, sizeof(*output_element));             \
		rc = -1;                                                        \
		goto Exit;                                                      \
	}                                                                   \
                                                                        \
	memcpy(output_element, &self->elements[__index], sizeof(*output_element)); \
Exit:                                                                   \
	return rc;                                                          \
}                                                                       \
                                                                        \
int listname##__get_element_ptr(listname *self, int __index, listdatatype **output_element_ptr) \
{                                                                       \
	int rc = 0;                                                         \
	if (__index >= self->element_count) {                                 \
		rc = -1;                                                        \
		goto Exit;                                                      \
	}                                                                   \
                                                                        \
	*output_element_ptr = &self->elements[__index];                       \
Exit:                                                                   \
	return rc;                                                          \
}                                                                       \
                                                                        \
int listname##__remove_element(listname *self, int __index)               \
{                                                                       \
	int size_of_moved_elements = 0;                                     \
                                                                        \
	if (__index >= listname##__element_count(self)) {                     \
		return -1;                                                      \
	}                                                                   \
                                                                        \
	size_of_moved_elements = sizeof(self->elements[__index]) * (self->element_count - __index - 1); \
	if (!size_of_moved_elements) { self->element_count--; return 0; } \
	memmove(&self->elements[__index], &self->elements[__index + 1], size_of_moved_elements); \
                                                                        \
	self->element_count--;                                              \
                                                                        \
	return 0;                                                           \
                                                                        \
}                                                                       \
                                                                        \
int listname##__dequeue(listname *self, listdatatype *output_element)   \
{                                                                       \
	int rc = -1;                                                        \
	if (0 == listname##__element_count(self)) {                         \
		rc = -1;                                                        \
		goto Exit;                                                      \
	}                                                                   \
                                                                        \
	listname##__get_element(self, 0, output_element);                   \
	listname##__remove_element(self, 0);                                \
    rc = 0;                                                             \
Exit:                                                                   \
	return rc;                                                          \
                                                                        \
}                                                                       \
                                                                        \
int listname##__element_count(listname *self)                           \
{                                                                       \
	int rc;                                                             \
	rc = self->element_count;                                           \
                                                                        \
	return rc;                                                          \
}                                                                       \
                                                                        \
int listname##__last_element_index(listname *self)                      \
{                                                                       \
	return (listname##__element_count(self) - 1);                       \
}                                                                       \
                                                                        \
int listname##__find_element(listname *self, listdatatype *element)     \
{                                                                       \
	int i = 0;                                                          \
	int element_count = 0;                                              \
	int rc = -1;                                                        \
	listdatatype tmp_element		;                                   \
                                                                        \
	element_count = listname##__element_count(self);                    \
	while(i < element_count) {                                          \
		listname##__get_element(self, i, &tmp_element);                 \
		rc = memcmp(element, &tmp_element, sizeof(*element));           \
		if (0 == rc) {                                                  \
			return i;                                                   \
		}                                                               \
		i++;                                                            \
	}                                                                   \
                                                                        \
	if (0 != rc) {                                                      \
		rc = -1;                                                        \
	}                                                                   \
                                                                        \
	return rc;                                                          \
}                                                                       \
                                                                        \
bool_t listname##__insertable(listname *self) {                         \
	return (!(listname##__element_count(self) == MAX_ELEMENTS));        \
}


VANCOUVER – Canuck general manager Jim Benning has never been more popular than he was at the trade deadline last year when he managed to leverage outgoing soon-to-be unrestricted free agents Alex Burrows and Jannik Hansen for good prospects.

Hansen fetched 2014 first-rounder Nikolay Goldobin from the San Jose Sharks, while the Ottawa Senators somehow gave the Canucks 2016 second-rounder Jonathan Dahlen for Burrows.

Dahlen is having another impressive point-per-game season in Sweden’s second division of pro hockey, but is probably at least another year away from challenging for a Canuck roster spot. And Goldobin, after some ridiculous over-hyping by the media, is still struggling in his third pro season to transfer his decent American Hockey League game to the NHL.

Still, these trades look like Roberto Luongo-for-Todd Bertuzzi when you see what Burrows, 36, and Hansen, 31, have done this season, combining for three goals and 13 assists in 85 games.

Benning’s widespread popularity, alas, didn’t hold although his recent three-year contract extension is validation that his drafting and player development have the Canucks on the right path. He probably won’t convert many of his critics at this year’s deadline because his biggest decisions might be to retain the Canucks’ most expendable trade chips.

Erik Gudbranson was already signed to a three-year extension with a $4 million cap hit and now the GM must make a decision on 34-year-old impending UFA Thomas Vanek, who has surpassed expectations in Vancouver and should be a prime rental candidate, except the market is soft for sellers and the Austrian winger with little playoff success probably isn’t at the top of anyone’s wish list.

Needs:

Can we say “everything?” The Canucks are staggering towards another bottom-five finish and their 14-10-4 start, before a slew of key injuries scuttled their season, is difficult to remember.

Vancouver needs more skill and offensive depth, more speed, more defencemen, more grit and more consistent goaltending. Other than that, the club is set.

Actually, Benning has assembled the most impressive prospect pool in franchise history. Calder Trophy candidate Brock Boeser is the first to arrive. But the talent pipeline still lacks elite defence prospects other than 2016 fifth-overall pick Olli Juolevi – and nobody knows whether he’ll be a complementary or core piece. So the blue line is the Canucks’ weakest area from a positional standpoint.

Pending free agents, age, salaries:

UFAs:

• Daniel Sedin, 37, $7 million

• Henrik Sedin, 37, $7 million

• Thomas Vanek, 34, $2 million

• Alex Biega, 29, $750,000

• Darren Archibald, 28, $650,000

• Nic Dowd, 27, $640,000

RFAs:

• Sven Baertschi, 25, $1.85 million

• Troy Stecher, 23, $925,000

• Markus Granlund, 24, $900,000

• Jake Virtanen, 21, $894,167

• Derrick Pouliot, 24, $800,000

• Philip Holm, 26, $925,000

Vancouver Canucks on Sportsnet NOW Want to livestream all 82 Canucks games this season? See how you can stream this + over 300 regular season NHL games with Sportsnet NOW.

Potential assets to move:

Ben Hutton: Five times in the past two months, 24-year-old Hutton has been removed from the lineup by coach Travis Green – a scratching unthinkable two seasons ago when the defenceman made the Canucks straight out of college hockey and was seen as a future core piece. But Hutton’s game hasn’t progressed and Green has warned several times that players in their early-20s who have made the NHL shouldn’t assume they’re going to stay there. Another guy still looking for a box in which to organize his many tools, Hutton has another season under contract at $2.8 million and possesses the size and mobility to at least interest some teams.

Anders Nilsson: The backup goalie has been a major disappointment since his excellent start to the year, and the Canucks need to create an opening next season for outstanding AHL goalie Thatcher Demko. But Nilsson has another year at $2.5 million, which makes him almost untradeable. No one looking for a starter is looking at Nilsson, and anyone in need of a backup can probably find someone cheaper or more reliable or both.

Chris Tanev: His name surfaces periodically in trade speculation, which pleases rebuild extremists who believe anyone who is 28 years old and has as much value at Tanev should be leveraged for futures. Tanev is one of the best shutdown defencemen in the league and, due $4.45 million each of the next two seasons, would come with cost certainty. But Tanev is brittle – he is currently out of the lineup with his fourth different injury this season – and this undermines his trade value. Another problem: Benning doesn’t want to trade Tanev, figuring the Canucks may actually need a few excellent players over the age of 25 while the kids develop.

31 Thoughts: The Podcast Jeff Marek and Elliotte Friedman talk to a lot of people around the hockey world, and then they tell listeners all about what they’ve heard and what they think about it.

Draft Picks:

2018: 1st, 2nd, 3rd, 5th, 6th, 7th.

2019: 1st, 2nd, 3rd, 4th, 5th, 6th, 7th.

One bold move the Canucks could make:

In order, here are the Canucks’ best prospects at forward: Elias Pettersson, 19, Kole Lind, 19, Adam Gaudette, 21, Jonah Gadjovich, 19, Jonathan Dahlen, 20. It’s naïve to think they’ll all be NHLers, let alone impact players in the best league in the world. But with Bo Horvat, 22, and Brock Boeser, 20, already locked into top-six spots forever, the Canucks have enough Grade-A forward prospects to trade one of them for futures on defence.

I think the Canucks shouldn’t…:

Trade any of their elite prospects or any draft pick lower than a fifth-rounder, or keep Vanek at all if they get offered anything better than a fifth-rounder.


Q:

Certificate stored in cert store disappearing from ASP.NET application over time

I've got a code signing certificate from Thawte that I'm using to dynamically generate and sign ClickOnce deployment manifests.  The problem is that the ASP.NET application that generates and signs these manifests works fine when we restart IIS or re-import the signing certificate, but over time the following function fails to find the certificate:
private static X509Certificate2 GetSigningCertificate(string thumbprint)
{
    X509Store x509Store = new X509Store(StoreLocation.CurrentUser);
    try
    {
        x509Store.Open(OpenFlags.ReadOnly);
        X509Certificate2Collection x509Certificate2Collection = x509Store.Certificates.Find(
            X509FindType.FindByThumbprint, thumbprint, false);

        if (x509Certificate2Collection.Count == 0)
            throw new ApplicationException(
                "SigningThumbprint returned 0 results.  Does the code signing certificate exist in the personal store?",
                null);

        if (x509Certificate2Collection.Count > 1)
            throw new ApplicationException(
                "SigningThumbprint returned more than 1 result.  This isn't possible", null);

        var retval = x509Certificate2Collection[0];

        if(retval.PrivateKey.GetType() != typeof(RSACryptoServiceProvider))
            throw new ApplicationException("Only RSA certificates are allowed for code signing");

        return retval;
    }
    finally
    {
        x509Store.Close();
    }
}

Eventually the application starts throwing errors that it can't find the certificate.  I'm stumped because I think the cert is installed correctly (or mostly correct) because it does find the cert when we start the ASP.NET application, but at some point we hit the Count==0 branch and it's just not true: the cert is in the application pool user's "Current User\Personal" cert store.
Question: Why might a cert all of a sudden "disappear" or not be able to be found?

A:

Figured it out on our own (painfully).
The certificate needed to be installed in the LocalMachine store and the application pool account read permissions to the cert using WinHttpCertCfg or CACLS.exe if it's going to be used from an ASP.NET application.  Using the CurrentUser store of the account running the application pool was causing the problem.  I'm guessing there's some sort of race condition or something that's not entirely cool about accessing the CurrentUser store from a user that isn't running in a interactive logon session.
We were unable to do this at first because we were invoking the MAGE tool to do the ClickOnce deployment manifest creation/signing, and that requires the code signing cert to be in the CurrentUser\My store.  However, we've eliminated the need for MAGE by a) creating the manifest from a template file and replacing the values we need to substitute out and b) by signing the manifest by calling the code MAGE calls via reflection that exists in the BuildTasks.v3.5 DLL.  As a result we have more control over what cert we use to sign the manifest and can put it wherever we want.  Otherwise we'd be stuck had we not gone a little "lower level".


Montreal Life Stories, from the Centre for Oral History and Digital Storytelling

This week’s episode: “The Roma: From Then to Now,” in an interview with Gerhard Baumgartner.

Gerhard Baumgartner is an Austrian historian specializing in minority questions and particularly, the Roma genocide of World War II. He presented a talk on this subject, this past Monday, cosponsored by the Montreal Holocaust Memorial Centre, Montreal Life Stories, the Center for Oral History and Digital Storytelling, and the Montreal Institute for Genocide and Human Rights Studies.

But what’s the subtext here? Could it have to do with a general fear from the provinces that our supposedly anti-federalist Conservative government might just be trying to centralize power in Ottawa? The Harper gov’t has mused that it might not need the provinces to approve senate reform even though it represents a fundamental change to the charter.


I just took a two-week vacation and, even better, a connectivity holiday. I didn't go entirely without e-mail, but living without e-mail isn't viable long term. By scaling back instead, I may have found a way to a saner relationship with e-mail now that I've returned.

From Aug. 8 to 12, I was on the John Muir Trail in the Sierra Nevada mountain range, 50 miles from the nearest cell tower. In other words, it was impossible to make phone calls or connect to e-mail and the Web. I left all my devices in the car.

When I returned to Tuolumne Meadows in Yosemite, I turned on my BlackBerry, downloaded over 1,000 messages and used the following e-mail triage criteria:

If the e-mail was a CC or FYI, I read it, deleted it and didn't respond.

If it was from a vendor, I deleted it without reading it. After my vacation, I would have plenty of time to review products.

If the e-mail was from my staff asking me to help with a project or budget issue, I responded.

If it was from a customer who needed a question answered or wanted to make a complaint, I responded.

For the rest of my vacation, through Aug. 22, I used this same triage technique. I ended up sending about 10 e-mails a day. I made no phone calls. Normally, I probably send out about 300 e-mails and make 20 phone calls.

When I reconnected to a network on Aug. 22, I simply highlighted the thousands of e-mails in my in-box and pressed Delete.

It was liberating.

I know that I left hundreds of vendor questions unanswered. But I also know that I read every e-mail that contained an FYI and that I responded to every customer or staff need. As of early September, I've received only two or three resends from folks who wanted a response while I was on vacation. I've suffered no negative consequences from deleting all those thousands of e-mails sent to me in August.

My ability to send just 10 e-mails a day and keep the peace raises the question: Have we created an e-mail culture that is so overwhelming that we need to spend hours a day just keeping up with our in-boxes? Maybe a bulk delete -- the equivalent of declaring e-mail bankruptcy -- is something I should try now and then as a way of cleaning the slate.

When I reconnected on Aug. 22, I deleted thousands of e-mails.

If I lose anything important when I do that -- if there are issues that I failed to resolve or areas where I need to intervene -- I'll receive a follow-up e-mail asking for help.

My experience during the two weeks of my vacation taught me that we are often too quick to send an e-mail, escalate a problem or delegate simple issues. In the days before e-mail, we may have been more productive just because instant communication was not available and we were forced to work out problems on our own.

Of course, all my staffers were very supportive. The fact that I could delete thousands of e-mails without consequence is a tribute to their ability to resolve complex issues independently.

My connectivity holiday extended to complete separation from news, RSS feeds and my blog. All that keyboard time was replaced with family time and the joy of not knowing what time of day -- or even what day -- it was.

I always get a great deal from vacations. Over the years, I've learned alpine climbing skills, enjoyed the time I've gotten to spend with my family, and derived the satisfaction that comes from having to focus on the basics of eating, sleeping and avoiding sunburn.

This year, I learned that an e-mail and connectivity holiday is possible. If you sent me an e-mail in August that I didn't respond to, and if the issue you were addressing is still important, send it again. Otherwise, relish the digital silence!

John D. Halamka is CIO at CareGroup Healthcare System, CIO and associate dean for educational technology at Harvard Medical School, chairman of the New England Health Electronic Data Interchange Network, chair of the national Healthcare Information Technology Standards Panel and a practicing emergency physician. You can contact him at jhalamka@caregroup.harvard.edu.