Q:

Convert I2C Sensor (DS1624) reading into number

First off, sorry for the confusing title. It's pretty late here and I wasn't able to come up with a better one.
So, I have a I2C temperature sensor that outputs the current temperature as a 16 bit word. Reading from LEFT to RIGHT, the 1st bit is the MSB and the 13th bit is the LSB, so 13 bits are payload and the last 3 bits are zeros. I want to read out that sensor with a Raspberry Pi and convert the data.
The first byte (8 bits) are the integer part of the current temperature. If and only if the temperature is negative, the two's complement of the entire word has to be built.
the second byte is the decimal part which has to be multiplied by 0.03125.
So, just a couple of examples (TEMP DIGITAL OUTPUT (Binary) / DIGITAL OUTPUT (Hex), taken from the data sheet here http://datasheets.maximintegrated.com/en/ds/DS1624.pdf)
 +125˚C    | 01111101 00000000 | 7D00h
+25.0625˚C | 00011001 00010000 | 1910h
+½˚C       | 00000000 10000000 | 0080h
0˚C        | 00000000 00000000 | 0000h
-½˚C       | 11111111 10000000 | FF80h
-25.0625˚C | 11100110 11110000 | E6F0h
-55˚C      | 11001001 00000000 | C900h

Because of a difference in endianness the byte order is reversed when reading the sensor, which is not a problem. For example, the first line would become 0x007D instead of 0x7D00, 0xE6F0 becomes F0E6, and so on...
However, once I build the two's complement for negative values I'm not able to come up with a correct conversion.
What I came up with (not working for negative values) is:
import smbus
import time
import logging

class TempSensor:
"""

Class to read out an DS1624 temperature sensor with a given address.

DS1624 data sheet: http://datasheets.maximintegrated.com/en/ds/DS1624.pdf

Usage:

    >>> from TempSensor import TempSensor
    >>> sensor = TempSensor(0x48)
    >>> print "%02.02f" % sensor.get_temperature()
    23.66

"""

# Some constants
DS1624_READ_TEMP = 0xAA
DS1624_START = 0xEE
DS1624_STOP = 0x22

def __init__(self, address):
    self.address = address
    self.bus = smbus.SMBus(0)

def __send_start(self):
    self.bus.write_byte(self.address, self.DS1624_START);

def __send_stop(self):
    self.bus.write_byte(self.address, self.DS1624_STOP);

def __read_sensor(self):
    """
    Gets the temperature data. As the DS1624 is Big-endian and the Pi Little-endian,
    the byte order is reversed.

    """

    """
    Get the two-byte temperature value. The second byte (endianness!) represents
    the integer part of the temperature and the first byte the fractional part in terms
    of a 0.03125 multiplier.
    The first byte contains the value of the 5 least significant bits. The remaining 3
    bits are set to zero.
    """
    return self.bus.read_word_data(self.address, self.DS1624_READ_TEMP)

def __convert_raw_to_decimal(self, raw):
    # Check if temperature is negative
    negative = ((raw & 0x00FF) & 0x80) == 0x80

    if negative:
        #  perform two's complement
        raw = (~raw) + 1

    # Remove the fractional part (first byte) by doing a bitwise AND with 0x00FF
    temp_integer = raw & 0x00FF

    # Remove the integer part (second byte) by doing a bitwise AND with 0XFF00 and
    # shift the result bits to the right by 8 places and another 3 bits to the right
    # because LSB is the 5th bit
    temp_fractional = ((raw & 0xFF00) >> 8) >> 3

    return temp_integer + ( 0.03125 * temp_fractional)

def run_test(self):
    logging.basicConfig(filename='debug.log', level=logging.DEBUG)

    # Examples taken from the data sheet (byte order swapped)
    values = [0x7D, 0x1019, 0x8000, 0, 0x80FF, 0xF0E6, 0xC9]

    for value in values:
        logging.debug('value: ' + hex(value) + ' result: ' + str(self.__convert_raw_to_decimal(value)))

def get_temperature(self):
    self.__send_start();
    time.sleep(0.1);
    return self.__convert_raw_to_decimal(self.__read_sensor())

If you run the run_test() method you'll see what i mean. All negatives values are wrong.
The results I get are:
DEBUG:root:value: 0x7d result: 125.0
DEBUG:root:value: 0x1019 result: 25.0625
DEBUG:root:value: 0x8000 result: 0.5
DEBUG:root:value: 0x0 result: 0.0
DEBUG:root:value: 0x80ff result: 1.46875
DEBUG:root:value: 0xf0e6 result: 26.03125
DEBUG:root:value: 0xc9 result: 55.96875

So, I've been banging my head for hours on this one, but it seems I'm lacking the fundamentals of bit-wise operations. I believe that the problem is the masking with the logical AND when values are negative.
EDIT: There are a couple of implementations on the web. None of them works for negative temperatures. I tried it by actually putting the sensor in ice water. I haven't tried the Arduino C++ version yet, but from looking at the source code it seems it doesn't build the two's complement at all, so no negative temperatures either (https://github.com/federico-galli/Arduino-i2c-temperature-sensor-DS1624/blob/master/DS1624.cpp).

A:

Two things, you've got your masks turned around, raw & 0x00ff is the fractional part, not the integer part, and second, this is my solution, given the inputs in your table, this seems to work for me:
import struct

def convert_temp (bytes):
    raw_temp = (bytes & 0xff00) >> 8
    raw_frac = (bytes & 0x00ff) >> 3

    a, b = struct.unpack('bb', '{}{}'.format(chr(raw_temp), chr(raw_frac)))
    return a + (0.03125 * b)

The struct module is really nifty when working with more basic data types (such as signed bytes). Hope this helps!
Edit: ignore the comment on your masks, I see my own error now. You can switch around the bytes, should be no problem.
Struct explanation:
Struct.(un)pack both take 2 arguments, the first is a string that specified the attributes of your struct (think in terms of C). In C a struct is just a bunch of bytes, with some information about their types. The second argument is the data that you need decoded (which needs to be a string, explaining the nasty format()).
I can't seem to really explain it any further, I think if you read up on the struct module, and structs in C, and realize that a struct is nothing more then a bunch of bytes, then you should be ok :).
As for the two's complement, that is the regular representation for a signed byte, so no need to convert. The problem you where having is that Python doesn't understand 8-bit integers, and signedness. For instance, you might have a signed byte 0x10101010, but if you long() that in Python, it doesn't interpret that as a signed 8-bit int. My guess is, it just puts it inside and 32-bit int, in which case the sign bit gets interpretted as just the eighth bit.
What struct.unpack('b', ...) does, is actually interpret the bits as a 8-bit signed integer. Not sure if this makes it any clearer, but I hope it helps.


/**
 *    Copyright 2009-2019 the original author or authors.
 *
 *    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.
 */
package org.apache.ibatis.type;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import org.junit.jupiter.api.Test;

class StringTypeHandlerTest extends BaseTypeHandlerTest {

  private static final TypeHandler<String> TYPE_HANDLER = new StringTypeHandler();

  @Override
  @Test
  public void shouldSetParameter() throws Exception {
    TYPE_HANDLER.setParameter(ps, 1, "Hello", null);
    verify(ps).setString(1, "Hello");
  }

  @Override
  @Test
  public void shouldGetResultFromResultSetByName() throws Exception {
    when(rs.getString("column")).thenReturn("Hello");
    assertEquals("Hello", TYPE_HANDLER.getResult(rs, "column"));
    verify(rs, never()).wasNull();
  }

  @Override
  public void shouldGetResultNullFromResultSetByName() throws Exception {
    // Unnecessary
  }

  @Override
  @Test
  public void shouldGetResultFromResultSetByPosition() throws Exception {
    when(rs.getString(1)).thenReturn("Hello");
    assertEquals("Hello", TYPE_HANDLER.getResult(rs, 1));
    verify(rs, never()).wasNull();
  }

  @Override
  public void shouldGetResultNullFromResultSetByPosition() throws Exception {
    // Unnecessary
  }

  @Override
  @Test
  public void shouldGetResultFromCallableStatement() throws Exception {
    when(cs.getString(1)).thenReturn("Hello");
    assertEquals("Hello", TYPE_HANDLER.getResult(cs, 1));
    verify(cs, never()).wasNull();
  }

  @Override
  public void shouldGetResultNullFromCallableStatement() throws Exception {
    // Unnecessary
  }

}


China disrupts some websites linked to US content delivery network

It's no surprise when China censors a site with anti-government content, but starting last week the country has potentially cut access to scores of non-political sites with a block on U.S. content delivery network EdgeCast Networks.

The "Great Firewall of China" has begun filtering out more sites and networks connected to EdgeCast customers, preventing the services from appearing in the country, the Verizon-owned company said in a blogpost Monday.

"This week we've seen the filtering escalate with an increasing number of popular web properties impacted," it said. "and even one of our many domains being partially blocked...with no rhyme or reason as to why."

EdgeCast didn't mention which specific services had been affected. But from Beijing, sites from its customers including Mercedes-Benz, Sony and humor website Break.com all appeared to be blocked.

"We can say that only a subset of our customers were impacted," Edgecast said in an email. The company has a "number of methods" to mitigate the problems and has given its customers access to them, Edgecast added without elaborating. It has business with over 6,000 companies.

Censorship monitoring group GreatFire.org said that starting on Nov. 12 China had begun disrupting EdgeCast's service, with a block on edgecastcdn.net.

Other sites that appear to be affected include The Atlantic, developer platform Drupal and art showcasing site deviantART, GreatFire added in a Tuesday blogpost..

China, already infamous for its online censorship, has never said why certain sites are blocked, only suggesting that they broke the law in some way. The country has typically targeted Internet services with the potential to spread politically sensitive posts, and blocked access to Facebook, Twitter and YouTube.

Starting this year, however, China has become more aggressive in cutting access to foreign Internet services. In late May, the country began blocking all Google services. Later, the censors went after messaging apps including Line and photo-sharing app Instagram.

The block on EdgeCast may have been an attempt to cut access to one particular site, but ended up affecting several others.

GreatFire.org, which opposes the country's censorship, has been setting up mirror sites so that Chinese users can circumvent the censors and access banned services such as Google search.

These mirror sites work by hosting them on major cloud platforms from Amazon Web Services and EdgeCast, and using an encrypted domain. To block the mirror sites, China would have to cut access to the entire domain.

"In the case of EdgeCast, the authorities have chosen to block access to their service altogether," GreatFire said in its blogpost.

Copyright 2016 IDG Communications. ABN 14 001 592 650. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of IDG Communications is prohibited.


// 32feet.NET - Personal Area Networking for .NET
//
// InTheHand.Net.Bluetooth.BLUETOOTH_DEVICE_INFO
//
// Copyright (c) 2003-2008 In The Hand Ltd, All rights reserved.
// This source code is licensed under the MIT License

using System;
using System.Runtime.InteropServices;
#if WinXP
using InTheHand.Win32;
using System.Text;
using System.Diagnostics;
#endif

namespace InTheHand.Net.Bluetooth.Msft
{

#if WinXP
    [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
#endif
    internal struct BLUETOOTH_DEVICE_INFO
    {
        internal int dwSize;
        internal long Address;
        internal uint ulClassofDevice;
#if WinXP
        [MarshalAs(UnmanagedType.Bool)]
#endif
        internal bool fConnected;
#if WinXP
        [MarshalAs(UnmanagedType.Bool)]
#endif
        internal bool fRemembered;
#if WinXP
        [MarshalAs(UnmanagedType.Bool)]
#endif
        internal bool fAuthenticated;
#if WinXP
        internal SYSTEMTIME stLastSeen;
        //[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.U1)]
        internal SYSTEMTIME stLastUsed;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst=248)]
#endif
        internal string szName;

        public BLUETOOTH_DEVICE_INFO(long address)
        {
            dwSize = 560;
            this.Address = address;
            ulClassofDevice = 0;
            fConnected = false;
            fRemembered = false;
            fAuthenticated = false;
#if WinXP
            stLastSeen = new SYSTEMTIME();
            stLastUsed = new SYSTEMTIME();

            // The size is much smaller on CE (no times and string not inline) it
            // appears to ignore the bad dwSize value.  So don't check this on CF.
            System.Diagnostics.Debug.Assert(Marshal.SizeOf(typeof(BLUETOOTH_DEVICE_INFO)) == dwSize, "BLUETOOTH_DEVICE_INFO SizeOf == dwSize");
#endif
            szName = "";
        }

        public BLUETOOTH_DEVICE_INFO(BluetoothAddress address)
        {
            if (address == null) {
                throw new ArgumentNullException("address");
            }
            dwSize = 560;
            this.Address = address.ToInt64();
            ulClassofDevice = 0;
            fConnected = false;
            fRemembered = false;
            fAuthenticated = false;
#if WinXP
            stLastSeen = new SYSTEMTIME();
            stLastUsed = new SYSTEMTIME();

            // The size is much smaller on CE (no times and string not inline) it
            // appears to ignore the bad dwSize value.  So don't check this on CF.
            System.Diagnostics.Debug.Assert(Marshal.SizeOf(typeof(BLUETOOTH_DEVICE_INFO)) == dwSize, "BLUETOOTH_DEVICE_INFO SizeOf == dwSize");
#endif
            szName = "";
        }

#if WinXP
        internal DateTime LastSeen
        {
            get
            {
                return stLastSeen.ToDateTime(DateTimeKind.Utc);
            }
        }
        internal DateTime LastUsed
        {
            get
            {
                return stLastUsed.ToDateTime(DateTimeKind.Utc);
            }
        }
#endif

        //--------
#if !NETCF
        internal static BLUETOOTH_DEVICE_INFO Create(BTH_DEVICE_INFO deviceInfo)
        {
            Debug.Assert(0 != (deviceInfo.flags & BluetoothDeviceInfoProperties.Address),
                "BTH_DEVICE_INFO Address field flagged as empty!: " + deviceInfo.address.ToString("X12"));
            BLUETOOTH_DEVICE_INFO bdi0 = new BLUETOOTH_DEVICE_INFO(deviceInfo.address);
            //
            if (0 != (deviceInfo.flags & BluetoothDeviceInfoProperties.Cod)) {
                bdi0.ulClassofDevice = deviceInfo.classOfDevice;
            }
            byte[] nameUtf8 = deviceInfo.name;
            if (0 != (deviceInfo.flags & BluetoothDeviceInfoProperties.Name)) {
                int end = Array.IndexOf<byte>(nameUtf8, 0);
                if (end != -1) {
                    string name = Encoding.UTF8.GetString(nameUtf8, 0, end);
                    bdi0.szName = name;
                }
            }
            bdi0.fAuthenticated = 0 != (deviceInfo.flags & BluetoothDeviceInfoProperties.Paired);
            bdi0.fConnected = 0 != (deviceInfo.flags & BluetoothDeviceInfoProperties.Connected);
            bdi0.fRemembered = 0 != (deviceInfo.flags & BluetoothDeviceInfoProperties.Personal);
            //
            return bdi0;
        }
#endif

    }
}


Transcript for Turkish Airlines makes emergency landing at JFK Airport

Back at home, the emergency landing at JFK in New York. More than two dozen passengers and crew injured by severe turbulence. The shaking so violent, some passengers afraid they weren't going to make it. A crew member even breaking his leg. Here's Zachary kiesch. Reporter: It was less than an hour before landing when the turbulence hit. Turkish 1, unable to maintain personal space due to turbulence. Reporter: The passenger who took this video said there was no warning. And that the shaking lasted more than five minutes, causing serious injuries. I see people starting to, like, fly in the plane. Then seeing blood all over. Reporter: A bloody handprint, visible, as passengers tried to steady themselves. Some were slashed on the head and back. One flight attendant broke her leg. The severity clear in this exchange with the tower. Do you have a doctor onboard? We do. He's helping her right now. But we're going to need assistance after the landing. Reporter: A passenger told us, although the seat belt light was on, many were standing to stretch after a long flight. A lot of people jerked up, some people hit the ceiling. Some people hit the sides of the it really just came out of nowhere. It was pretty dramatic, and you could definitely feel the zero gravity sense of dropping. Reporter: The flight was met by ambulances at JFK, and 30 were taken to the hospital. A crew member seen here limping off the flight. Many put on stretchers. Most of the passengers have been released. Five are still in the hospital with non-life threatening injuries. Now, the plane was inspected, determined to be okay, and put back in service. Tom? Zachary, thank you.

This transcript has been automatically generated and may not be 100% accurate.


Transparency Market Research has released a new market report titled “Solder Paste Market (Product, Application, and Region) – Global Industry Analysis, Size, Share, Growth, Trends, and Forecast -– 2017–2025.” According to the report, the global flexographic printing inks market was valued at US$ 6,560.4 Mn in 2016 and is projected to reach US$ 10,919.4 Mn by 2025, expanding at a CAGR of 5.8% from 2017 to 2025.

Flexographic printing is one of the most important conventional printing processes. It uses flexible printing plates to print on various substrates. Historically, flexographic printing was known as aniline printing, primarily because flexographic printing presses used inks based on aniline dyes. The flexographic printing process is used mostly on flexible materials including corrugated boxes, paper and plastic bags, folding cartons, milk cartons, disposable cups, tags and labels. Printing plates used in printing processes are made up of plastic, rubber or photopolymer. This assures high flexibility and elevated longevity. Flexographic printing plates have raised images, which are rubbed against the substrate to produce the necessary image on it. Flexographic ink is supplied to ink rolls through the ink reservoir. These rolls further supply the ink to anilox rolls, which meter the ink and apply the necessary quantity of ink to the cylinder containing flexographic plates. These plates are pressed against the substrate to produce the required image on the substrate.

Stringent regulations related to VOC emissions have forced ink manufacturers to comply with environmental, health, and safety standards during the production of printing inks. The U.S. Environmental Protection Agency (EPA) developed the EPA test method 24 as a standard test to determine the amount of VOCs in inks. Usage of inorganic solvents and toxic metals such as cadmium, hexavalent chromium, lead, and mercury in printing inks adversely affects the environment.

Volatility in crude oil prices currently prevailing in the market is a key factor likely to affect the flexographic printing inks market. Crude oil is one of the major raw materials used in printing inks. Its prices have been fluctuating significantly for the last few years, which has adversely affected the prices of inks used in the publication industry. Other factors such as rising GDP and growing population of young consumers and continuously changing lifestyles are likely to boost the demand for packaged consumer products. This, in turn, is anticipated to propel the packaging industry and therefore the flexographic printing inks market across the globe.

Global flexographic printing inks market has been segmented into three categories: product, application, and region. Asia Pacific is expected to remain a highly attractive region for the flexographic printing inks market. Given that more than half the global population and emerging markets are in the region, international players have increased their focus on Asia Pacific.

Market for flexographic printing inks in North America and Europe are more mature when compared to Asia Pacific, Middle East & Africa, and Latin America.

Asia Pacific dominated the global flexographic printing inks market, accounting for more than 37.2% of the total market volume in 2016. The region is expected to offer significant potential for the flexographic printing inks market in the near future. Increased investments in China, India, and ASEAN are likely to boost the demand for them in the next few years. In Asia Pacific, several established players are estimated to enter into strategic alliances with local players to consolidate their market share. Various companies engaged in the printing inks business are focusing on ways to ease the availability of raw materials for the production of printing ink-based products.

Flexographic printing ink is a highly fragmented market with several manufacturers/ vendors/ suppliers. Some companies have a limited market presence in Middle East & Africa and Latin America. This offers them the prospect to establish research & development facilities in these regions in order to offer better solutions to customers. Furthermore, manufacturers could expand their distribution network with the addition of local distributors and sales offices. Exporting products to these regions could also provide ample growth opportunities for manufacturers based in North America and Europe.

Thus, companies in Middle East & Africa and Latin America, operating in the flexographic printing ink market need to focus on increasing their share among the existing end-users. Product improvement, growth in sales force, and competitive pricing are factors estimated to help them strengthen their position.

In Latin America, rise in ad spending, personalization, outdoor advertising, and packaging offers growth opportunities to the flexographic printing inks market. Digital transformation and office initiatives are predicted to remain at the forefront of business aspirations in the next few years in Middle East & Africa.

Transparency Market Research (TMR) is a global market intelligence company providing business information reports and services. The company’s exclusive blend of quantitative forecasting and trend analysis provides forward-looking insight for thousands of decision makers. TMR’s experienced team of analysts, researchers, and consultants use proprietary data sources and various tools and techniques to gather and analyze information.

TMR’s data repository is continuously updated and revised by a team of research experts so that it always reflects the latest trends and information. With extensive research and analysis capabilities, Transparency Market Research employs rigorous primary and secondary research techniques to develop distinctive data sets and research material for business reports.


Q:

Search Wildcard('<', '>'), count it and get the position in java

I want to search Wildcard('<', '>') in a string, count them and get their positions in java. My string is like below

Peter <5554>, John <5556>,

which function should I use? Thank you.

A:

You  should use Pattern and Matcher:
Pattern pattern = Pattern.compile("<[^>]*>");
Matcher matcher = pattern.matcher("Peter <5554>, John <5556>,");
while (matcher.find()) {
   System.out.println("index="+matcher.start()+" - "+matcher.group());
}

Output:
index=6 - <5554>
index=19 - <5556>


Question-focused dataset

A question-focused dataset (QFD) is a subset of data that is derived from one or more parent data sources and substantively transformed in order to answer a specific analytic question or small set of questions.  Since by definition a QFD is designed with a specific question in mind, it should perform much better at answering the question that the parent repository.

References

See also

Analytic induction
Case study
Content analysis
Critical theory
Sensemaking
Focus group
Grounded theory
Evidential reasoning approach
Quantitative research
Qualitative research
Sampling (case studies)

Category:Qualitative research


/*
 * Copyright 2004,2006 The Poderosa Project.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 *
 * $Id: TerminalUtil.cs,v 1.2 2011/10/27 23:21:58 kzmi Exp $
 */
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Windows.Forms;

using Poderosa.ConnectionParam;
using Poderosa.Util;

namespace Poderosa.Terminal {

    /// <summary>
    ///
    /// </summary>
    /// <exclude/>
    public enum TerminalMode {
        Normal,
        Application
    }

    /// <summary>
    ///
    /// </summary>
    /// <exclude/>
    public class TerminalUtil {
        public static char[] NewLineChars(NewLine nl) {
            switch (nl) {
                case NewLine.CR:
                    return new char[1] { '\r' };
                case NewLine.LF:
                    return new char[1] { '\n' };
                case NewLine.CRLF:
                    return new char[2] { '\r', '\n' };
                default:
                    throw new ArgumentException("Unknown NewLine " + nl);
            }
        }
        //TODO staticにしたほうがいい？ うっかり破壊が怖いが
        public static byte[] NewLineBytes(NewLine nl) {
            switch (nl) {
                case NewLine.CR:
                    return new byte[1] { (byte)'\r' };
                case NewLine.LF:
                    return new byte[1] { (byte)'\n' };
                case NewLine.CRLF:
                    return new byte[2] { (byte)'\r', (byte)'\n' };
                default:
                    throw new ArgumentException("Unknown NewLine " + nl);
            }
        }
        public static NewLine NextNewLineOption(NewLine nl) {
            switch (nl) {
                case NewLine.CR:
                    return NewLine.LF;
                case NewLine.LF:
                    return NewLine.CRLF;
                case NewLine.CRLF:
                    return NewLine.CR;
                default:
                    throw new ArgumentException("Unknown NewLine " + nl);
            }
        }

        //有効なボーレートのリスト
        public static string[] BaudRates {
            get {
                return new string[] {
                    "110", "300", "600", "1200", "2400", "4800",
                    "9600", "14400", "19200", "38400", "57600", "115200"
                };
            }
        }

        //秘密鍵ファイル選択
        public static string SelectPrivateKeyFileByDialog(Form parent) {
            using (OpenFileDialog dlg = new OpenFileDialog()) {
                dlg.CheckFileExists = true;
                dlg.Multiselect = false;
                dlg.Title = "Select Private Key File";
                dlg.Filter = "Key Files(*.bin;*)|*.bin;*";
                if (dlg.ShowDialog(parent) == DialogResult.OK) {
                    return dlg.FileName;
                }
                return null;
            }
        }

    }

    //これと同等の処理はToAscii APIを使ってもできるが、ちょっとやりづらいので逆引きマップをstaticに持っておく
    internal class KeyboardInfo {
        public static char[] _defaultGroup;
        public static char[] _shiftGroup;

        public static void Init() {
            _defaultGroup = new char[256];
            _shiftGroup = new char[256];
            for (int i = 32; i < 128; i++) {
                short v = Win32.VkKeyScan((char)i);
                bool shift = (v & 0x0100) != 0;
                short body = (short)(v & 0x00FF);
                if (shift)
                    _shiftGroup[body] = (char)i;
                else
                    _defaultGroup[body] = (char)i;
            }
        }

        public static char Scan(Keys body, bool shift) {
            if (_defaultGroup == null)
                Init();

            //制御文字のうち単品のキーで送信できるもの
            if (body == Keys.Escape)
                return (char)0x1B;
            else if (body == Keys.Tab)
                return (char)0x09;
            else if (body == Keys.Back)
                return (char)0x08;
            else if (body == Keys.Delete)
                return (char)0x7F;

            if (shift)
                return _shiftGroup[(int)body];
            else
                return _defaultGroup[(int)body];
        }
    }
}


Introduction {#sec1}
============

Worldwide potato production is hindered by a complex of insect pests. In Quebec, Canada, the Colorado potato beetle, *Leptinotarsa decemlineata* (Say) (Coleoptera: Chrysomelidae), the green peach aphid, *Myzus persicae* (Sulzer) (Hemiptera: Aphididae), and the potato aphid, *Macrosiphum euphorbiae* (Thomas), constitute the major pests in potato fields ([@bibr56]). While *L. decemlineata* adults and larvae are voracious defoliators of potato leaves, *M. persicae* and *M. euphorbiae* are important vectors of the two most damaging potato viruses (i.e. the potato leaf roll virus and the potato virus Y) ([@bibr06]; [@bibr08]). Pests which are normally of secondary importance such as the potato flea beetle, *Epitrix cucumeris* (Harris) (Coleoptera: Chrysomelidae), the potato leafhopper, *Empoasca fabae* (Harris) (Hemiptera: Cicadellidae), and the Buckthorn aphid, *Aphis nasturtii* (Hemiptera: Aphididae) may also occasionally cause serious damages and yield loss ([@bibr59]; [@bibr56]; [@bibr33]).

Development of insecticide resistance ([@bibr07]; [@bibr70]) and public awareness of possible health problems associated with pesticides ([@bibr62]) increased the interest for the development of alternative and sustainable control strategies for potato pests. One strategy that has received much attention is the development of insect-resistant potato cultivars ([@bibr16]; [@bibr56]). In addition to the development of genetically modified plants, researchers have focused mainly on hybridization programs between commercially cultivated potato cultivars and related wild *Solanum* species resistant to several potato pests ([@bibr16]) and diseases ([@bibr10]).

Laboratory and field experiments have identified many *Solanum* accessions as resistant to either one or a few potato pests ([@bibr16]; [@bibr38]). Resistance mechanisms have been classified as either antibiosis (changes in insect biology and demographic parameters) or antixenosis (changes in insect behavior leading to low or non acceptance of the host plant) ([@bibr39]). In *Solanum* spp., antibiosis relies mainly on glycoalkaloids present in leaves ([@bibr67]; [@bibr24]; [@bibr27], [@bibr28]; [@bibr37]; [@bibr40]). For example, some species such as *Solanum pinnatisectum* Dunal (Solanales: Solanaceae) and *S. polyadenium* Greenmam have a high level of α-tomatine ([@bibr24]; [@bibr65]; [@bibr13]), which is known to hinder *L. decemlineata* growth ([@bibr36]) and lower *M. euphorbiae* reproductive rate ([@bibr27]). High levels of α-chaconine and α-solanine also have negative impacts on *M. persicae* adults, lowering feeding and fecundity, and increasing mortality ([@bibr17]). Antixenosis-based resistance may be conferred by glandular trichomes ([@bibr21], [@bibr22]; [@bibr68]; [@bibr69]; [@bibr45]; [@bibr57]; [@bibr71]; [@bibr01]; [@bibr54]). Glandular trichomes are known to alter the ability of many herbivores to colonize, forage, and survive on the plant. For example, glandular trichomes reduce the proportion of *L. decemlineata* larvae feeding on *S. polyadenium* and *S. berthaultii* leaves and increase larval mortality ([@bibr23]; [@bibr44]).

Pest resistant plants may also have a negative impact on the third trophic level ([@bibr51]; [@bibr47]). For example, glandular trichomes are known to hinder the foraging abilities of many insect predators ([@bibr02]; [@bibr15]; [@bibr06]; [@bibr48]; [@bibr42]; [@bibr19]; [@bibr64]) and parasitoids ([@bibr48]; [@bibr64]). Moreover, chemicals responsible for antibiosis may also affect predators ([@bibr51]; [@bibr18]) and parasitoids ([@bibr03]; [@bibr04], [@bibr05]).

On the other hand, certain plant characters conferring pest resistance are thought to have positive impacts on some natural enemies ([@bibr47]). For example, the ladybird beetle *Coleomegilla maculata* ([@bibr25], [@bibr26]) lays eggs preferentially on plant species bearing glandular trichomes, and oviposition of the aphidophagous midge *Aphidoletes aphidimyza* is positively correlated with *S. tuberosum* trichome density ([@bibr41]). Obrycki and Tauber ([@bibr49]) also observed positive relationship between ladybird eggs (unidentified species) and trichome abundance. For both ladybirds and *A. aphidimyza*, the preference for oviposition on trichome bearing plants may be associated with a lower predation risk of the most susceptible life stages on those plants ([@bibr41]; [@bibr25], [@bibr26]).

Studying the impact of *Solanum* spp. candidates on both pests and natural enemies is of importance for breeding programs, as natural enemies are known to contribute to aphid ([@bibr50]; [@bibr34]; [@bibr35]) and *L. decemlineata* ([@bibr30]; [@bibr09]; [@bibr35]) biocontrol. The exclusion of natural enemies from resistant plants could provide an enemy-free space to herbivores adapted to resistant plants ([@bibr19]).

Fields experiments are required in many different geographical areas since the expression of resistance characters may be lower in the field than in the laboratory ([@bibr68]; [@bibr48]) and vary with environmental conditions ([@bibr20]; [@bibr46]). As such, resistant plants may have a different impact in the field than in controlled conditions, both on pests and on their natural enemies ([@bibr48]). Only a few field studies have tested the impact of resistant *Solanum* accessions on natural enemies.

To address that question, two experiments were done in Southern Quebec field conditions. The first compared the capacity of the aphids *M. persicae* and *M. euphorbiae* to thrive on six caged *Solanum* accessions and on caged potato plants. The second sampled and compared potato pest and natural enemy occurrence on two *Solanum* accessions and on potato plants.

Materials and Methods {#sec2}
=====================

The experiments were performed from 2004 to 2007 on a commercial farm located at Saint-Paul d\'Abbotsford (45.4127° N, 72.8598° W), Quebec, Canada. No insecticides, fungicides, or herbicides were applied to the experimental field.

Plants were previously grown in a greenhouse located at the Horticulture Research and Development Center, Agriculture and Agri-Food Canada, Saint-Jean-sur-Richelieu, Qc, Canada. Wild *Solanum* species seeds were obtained from the USDA Potato Introduction Project (Sturgeon Bay, Wisconsin, U.S.A.). The seeds were sown in early April in 25 × 50 cm plastic containers. Three weeks later, 30 seedlings of each variety were transplanted into pots (15 cm diameter). Potato plants *S. tuberosum* cv. *Désirée* were grown from tubers.

Aphids (*M. persicae* and *M. euphorbiae*) were reared on *S. tuberosum* cv. *Désirée*. One rearing unit was located at the Horticulture Research and Development Center, and the other was located at the University of Quebec in Montreal.

Experiment 1 --- Impact of six wild *Solanum* accessions on *Myzus persicae* and *Macrosiphum euphorbiae* colony development {#sec2a}
----------------------------------------------------------------------------------------------------------------------------

The experiment was conducted in 2004 and 2005. The accessions used in 2004 were *S. pinnatisectum* PI 186553, *S. polyadenium* PI 230463, *S. tarijense* Hawkes PI 414150, *S. infundibuliforme* Philippi PI 458322, *S. oplocense* Hawkes PI 473368, and *S. stoloniferum stoloniferum* Schlechted and Bouché PI 201855. In 2005, only *S. pinnatisectum, S. polyadenium*, and *S. tarijense* were used due to time limitation. Both years, the commercially cultivated potato plant *Solanum tuberosum* cv. *Désirée* was used as a control.

Plantlets were transferred from the greenhouse to the field in early June both years, and were first placed in a shaded area to allow adaptation to field conditions. Three days later, nine plants of each accession and nine potato plants were transplanted in the field. Each plant species was transplanted in the field in three groups (a group consisted of 3 plantlets transplanted on a row). Both row spacing and planting distance on a row were set to 0.90 m. A muslin cage (Height: 1 m, Diameter: 0.60 m) was placed above each plant. The muslin at the base of each cage was buried in the soil at a depth of 20--30 cm and a lateral entry closed by a metal clip allowed access to the plant.

On 16 July 2004 and 13 July 2005 (i.e. four weeks after their transplantation in the field) each plant was infested with about 30 laboratory-reared apterous aphids (mixed instars). For each plant species, four plants were infested with *M. persicae*, and four plants were infested with *M. euphorbiae*. Infestation was done by placing 4 aphidinfested potato leaves on each plant.

Sampling started one week following aphid infestation. In 2004, all *Solanum* species were sampled weekly for four weeks. *Solanum pinnatisectum, S. polyadenium, S. tarijense*, and *S. tuberosum* cv. *Désirée* were sampled further for two weeks for a total of six weeks. In 2005, all plants were sampled weekly for six consecutive weeks. At each sampling date, the numbers of apterous and alate aphids were counted separately. All other insects found on the plants were removed.

Experiment 2 --- Impact of two wild *Solanum* accessions on aphids, *Leptinotarsa decemlineata, Epitrix cucumeris, Empoasca fabae*, and natural enemies {#sec2b}
-------------------------------------------------------------------------------------------------------------------------------------------------------

Experiment 2 was performed in 2007. It aimed at evaluating the natural occurrence of potato pests and natural enemies on *S. tarijense* PI 414150, *S. polyadenium* PI 230463, and *S. tuberosum* cv. *Désirée* in Southern Quebec field conditions. The accessions used were the same as in experiment 1.

Plantlets were transferred from the greenhouse to the field on 18 June 2007 and planted on 20 June 2007. The three accessions were planted in nine monospecific patches (three patches by plant species) laid out in a latin square. Each patch consisted of 7 × 7 plants. The distance between each patch was 1.80 m. The distance between plants corresponded to a typical plantation layout in southern Quebec, i.e. 0.30 m between plants on a row and 0.90 m between rows. Weeds were manually removed once or twice a week.

***Leptinotarsa decemlineata* survey.** On 29 June, 3 July, 6 July, 10 July, and 11 July 2007 all plants were inspected and all observed *L. decemlineata* eggs, larvae, and adults were removed. Eggs and adults were counted.

**Destructive sampling.** On 27 July 2007, 15 plants per patch were cut, individually enclosed in plastic bags, brought to the laboratory, and put in a freezer until inspection. Plants were carefully inspected and every insect collected was put in 70% alcohol for future identification. Specimens were identified in the laboratory using a dissecting microscope and a field guide.

Statistical analysis {#sec2c}
--------------------

Data was analyzed using the statistical software JMP ([@bibr63]). Experiment 1: Data were rank-transformed and a MANOVA for repeated measures was applied followed by contrast analysis (between each pairs). In 2004 the analysis was done for four weeks in order to allow comparisons between the seven accessions tested, and then for six weeks for comparisons between *S. tuberosum* cv. *Désirée, S. pinnatisectum, S. polyadenium*, and *S. tarijense*. In 2005, the analysis was done for six weeks. Plants with missing data were excluded from the analysis (therefore, 1--4 plants/accession were compared for each analysis).

Experiment 2: For the *L. decemlineata* survey, the numbers of egg clutches and adults per row were compared (rows were used as experimental units). For the destructive sampling the numbers of individuals per plant were compared (individual plants were used as experimental units). This statistical methodology was used since the number of patches by accession was low (3 by accessions). Data were compared between accessions using Kruskal-Wallis tests and Tukey-type posthoc tests for non parametric data ([@bibr72]).

Results {#sec3}
=======

Experiment 1 --- Impact of wild *Solanum* accessions on *Myzus persicae* and *Macrosiphum euphorbiae* colony development *Macrosiphum euphorbiae*. {#sec3a}
--------------------------------------------------------------------------------------------------------------------------------------------------

In 2004, considering only the first four weeks, *M. euphorbiae* densities differed between the seven *Solanum* species ([Figure 1a](#f01){ref-type="fig"}: F = 4.46; d.f. = 6, 18; P \< 0.0001). *Solanum polyadenium* hosted the lowest *M. euphorbiae* density. Considering the whole experimental period, *M. euphorbiae* densities were significantly different between the four species present during the six sampling weeks ([Figure 1b](#f01){ref-type="fig"}: F = 8.52; d.f. = 3, 8; P = 0.0003). Again, *S. polyadenium* had the lowest *M. euphorbiae* density.

In 2005, *M. euphorbiae* densities were significantly different between the four species ([Figure 1c](#f01){ref-type="fig"}: F = 1.78; d.f. = 3, 12; P = 0.0053). *Solanum pinnatisectum* hosted significantly more aphids than *S. tuberosum* cv. *Désirée, S. tarijense*, and *S. polyadenium*, which were not significantly different from each other. Peak *M. euphorbiae* densities were much lower in 2005 than in 2004.

![Mean number of *Macrosiphum euphorbiae* per plant (A) from week 1 to week 4 in 2004, (B) from week 1 to week 6 in 2004, and (C) from week 1 to week 6 in 2005 following an initial infestation of 30 aphids per plants in week 1. Different letters after the species names indicate significant difference (*P* \< 0.05). High quality figures are available online.](f01_01){#f01}

***Myzus persicae*.** In 2004, considering only the first four weeks, there was a significant difference in the number of *M. persicae* between the seven *Solanum* species considered ([Figure 2a](#f02){ref-type="fig"}: F = 10.23; d.f. = 6, 20; P \< 0.0001). *Solanum polyadenium* had the lowest density, while *S. tuberosum* cv. *Désirée, S. pinnatisectum, S. oplocense*, and *S. infundibuliforme* had the highest densities. *Solanum stoloniferum* and *S. tarijense* hosted intermediate aphid densities. For the whole experimental period, *M. persicae* densities were significantly different between the four species present during the six sampling weeks ([Figure 2b](#f02){ref-type="fig"}: F = 16.52; d.f. = 3, 7; P = 0.0001). *Solanum polyadenium* had the lowest density, while *S. tuberosum* cv. *Désirée* and *S. pinnatisectum* had the highest. *Solanum tarijense* hosted intermediate *M. euphorbiae* density.

![Mean number of *Myzus persicae* per plant (A) from week 1 to week 4 in 2004, (B) from week 1 to week 6 in 2004, and (C) from week 1 to week 6 in 2005 following an initial infestation of 30 aphids per plants in week 1. Different letters after the species names indicate significant difference (*P* \< 0.05). High quality figures are available online.](f02_01){#f02}

In 2005, *M. persicae* densities were significantly different between the four species ([Figure 2c](#f02){ref-type="fig"}: F = 4.59; d.f. = 3, 12; P \< 0.0001). *Solanum polyadenium* and *S. tarijense* had the lowest densities, while *S. pinnatisectum* hosted the highest density. Peak *M. persicae* densities were much lower in 2005 than in 2004.

Except for the *M. euphorbiae* analysis of 2005 and for the six week analysis of *M. euphorbiae* in 2004 (P \> 0.05), Wilk\'s Lamda test indicated P \< 0.05 for "accession by time interaction". However, Roy\'s Max Root test indicated P \< 0.05 for all analysis.

**Experiment 2 --- Impact of two wild *Solanum* accessions on aphids, *Leptinotarsa decemlineata, Epitrix cucumeris, Empoasca fabae*, and natural enemies *Leptinotarsa decemlineata* survey.** On most sampling dates, more egg clutches and adults were collected on *S. tuberosum* cv. *Désirée* than on *S. poyadenium* and *S. tarijense* ([Table 1](#t01){ref-type="table"}). There were no significant differences between *S. polyadenium* and *S. tarijense* regarding egg clutch and adult densities.

######

Mean (± SE) numbers of *Leptinotarsa decemlineata* egg clutches and adults per row per patch (i.e. 7 plants) on *Solanum tuberosum* cv. *Désirée*, *S. polyadenium*, and *S. tarijense* collected on 6 different dates in 2007.

![](t01_01)

**Destructive sampling.** Results of the destructive sampling are presented in [Table 2](#t02){ref-type="table"}. Although only a few *E. cucumeris* adults were observed, all were found on *S. tuberosum* cv. *Désirée* (Kruskal-Wallis: χ^2^ = 33.41, d.f. = 2, P \< 0.0001). The low number of individuals collected (19) suggest however that this result should be interpreted cautiously.

A total of 156 leafhoppers (both nymphs and adults) were collected, and 155 of those leafhoppers were collected on *S. tuberosum* cv. *Desirée*, while only 1 occurred on *S. polyadenium* (Kruskal-Wallis: χ^2^ = 68.88, d.f. = 2, P \< 0.0001). No leafhoppers were found on *S. tarijense*. Most leafhoppers were identified as *E. fabae* (94.2%), the remaining being too damaged to be formally identified.

During the destructive sampling, the distribution of the 1656 recovered *L. decemlineata* eggs significantly differed with 99.2% sampled on *S. tuberosum* cv. *Désirée*, 0.8% on *S. polyadenium*, and none on *S. tarijense* (Kruskal-Wallis: χ^2^ = 35.28, d.f. = 2, P \< 0.0001). Similar results were obtained for *L. decemlineata* 1^st^ instars (228 individuals, 97.4% on *S. tuberosum*, 2.6% on *S. polyadenium*) and second instars (233 individuals, 99.1% on *S. tuberosum*, 0.4% on *S. tarijense*, and 0.4% on *S. polyadenium*) (Kruskal-Wallis: χ^2^~L1~ = 27.21, d.f. = 2, P \< 0.0001; χ^2^~L2~ = 27.03, d.f. = 2, P \< 0.0001). The higher proportion of third instar larvae on *S. tuberosum* cv. *Désirée* was not as pronounced than for the first and second instar larvae (28 individuals, 89.3% on *S. tuberosum* and 10.7% on *S. polyadenium*), and even though there was a global significant difference (Kruskal-Wallis: χ^2^ = 13.79, d.f. = 2, P = 0.0010), posthoc tests found no significant difference between *Solanum* species. The fourth instar larvae distribution did not differ between the three *Solanum* species: out of the 11 individuals collected 72.7% were from *S. tuberosum* cv. *Désirée* and 27.3% from *S. polyadenium* (Kruskal-Wallis: χ^2^ = 4.14, d.f. = 2, P = 0.1263). The lower number of third and fourth instar larvae collected is probably the results of the *L. decemlineata* survey that ended only 16 days before the destructive sampling. During that sampling, all *L. decemlineata* eggs observed were removed and thus *L. decemlineata* population had only 16 days to build up again before the destructive sampling.

Aphids were sampled on 63 plants (21 plants by plant species). A total of 230 apterous aphids, all species confounded, were observed; 41.7% on *S. tuberosum* cv. *Désirée*, 41.7% on *S. polyadenium*, and 16.5% on *S. tarijense. Solanum tarijense* had significantly less apterous aphids than the two other species (Kruskal-Wallis: χ^2^ = 7.12, d.f. = 2, P = 0.0285). Most apterous aphids were too damaged (possibly because of either frost or alcohol) to be identified (68.3%).

######

Mean abundance of potato pests on *Solanum tuberosum* cv. Désirée, *S. polyadenium*, and *S. tarijense*.

![](t02_01)

Natural enemy densities were very low in this study. A total of 74 spiders, 11 predaceous hemipteran nymphs, 3 predaceous hemipteran adults, and 1 coccinellid larva were collected from all three *Solanum* species.

Discussion {#sec4}
==========

Keeping aphids at low densities on potato plants is of primary importance as Mowry ([@bibr43]) demonstrated that damages caused to tubers by PLRV are linearly correlated to *M. persicae* densities. The two experiments performed in this study showed that *S. polyadenium* and *S. tarijense* were generally more resistant than *S. tuberosum* cv. *Désirée* to the two most important aphid species present in Quebec, i.e. *M. persicae* and *M. euphorbiae*. As suggested by laboratory experiments ([@bibr38], [@bibr39]), *S. stoloniferum* was also more resistant than *S. tuberosum* cv. *Désirée* to *M. persicae* in the field, but not to *M. euphorbiae*. On the other hand, *S. pinnatisectum* was found to be as susceptible to, or more susceptible than, *S. tuberosum* cv. *Désirée* to aphids. This contrast with Pelletier and Clark ([@bibr52]) that demonstrated, in laboratory conditions, that the same accession of *S. pinnatisectum* was resistant to *M. euphorbiae*. This difference is possibly due to the impact of the environment on some resistance factors ([@bibr68]; [@bibr48]; [@bibr20]; [@bibr46]) and highlights the importance of field experiments when evaluating pest resistance.

*Solanum tarijense* and *S. polyadenium* also had negative impacts on potato flea beetle and leafhopper populations. Apart from showing that *S. tarijense* is resistant to the flea beetle *E. cucumeris*, the results indicate that the observed resistance *of S. polyadenium* to *E. cucumeris*, and of *S. polyadenium* and *S. tarijense* to the leafhopper *E. fabae* ([@bibr66]; [@bibr68]; [@bibr16]; [@bibr56]) also occurs in Quebec field condition.

More importantly, Colorado potato beetle, *L. decemlineata*, laid significantly less eggs on both *S. tarijense* and *S. polyadenium* than on *S. tuberosum* cv. *Desirée*. Again, the resistance of many *Solanum* species to *L. decemlineata* has previously been reported in other geographic areas, notably in New Brunswick, Canada ([@bibr55]; [@bibr54]). Pelletier and Tai ([@bibr53]) reported that the resistance mechanism of *S. polyadenium* PI 230463 (the same accessions) was mainly antibiosis as *L. decemlineata* laid more eggs on this species than on *S. tarijense* and other species. However, we observed significantly more *L. decemlineata* egg clutches on *S. tuberosum* cv. *Désirée* than on *S. polyadenium*, suggesting an antixenosis-based resistance in the wild *S. polyadenium*. Both experiments were done in field conditions but in different geographic areas, so the difference observed could be due to different growing or field conditions inducing differences in resistance factors.

For both *S. tarijense* and *S. polyadenium*, the difference in pest density was mainly conferred by the plant resistance characteristics since natural enemies\' density was very low. This low density is not surprising as previous studies demonstrated that the density of most natural enemies in potato fields closely follows that of *M. persicae* and *M. euphorbiae* ([@bibr34]; [@bibr32]). The relative capacity of pests and natural enemies to adapt and become able to exploit resources on resistant plant should be evaluated: should the pest adapt more rapidly, resistant plant would become an enemy-free space plant on which pests could thrive ([@bibr19]). Particularly, *L. decemlineata* shows a strong adaptation capacity to locally abundant *Solanum* species ([@bibr31]).

This study therefore supports the use of *S. tarijense* and *S. polyadenium* as candidate plants for hybridization with *S. tuberosum* in Quebec field conditions. However, further field experiments are still required to evaluate resistance in years of severe infestations of aphids or other pest species. Recently established in North America, *Aphis glycines* (Matsumura) has been reported to transmit potyvirus Y to potato plants ([@bibr11], [@bibr12]). Future breeding programs should then evaluate resistance against this aphid species. Moreover, resistance factors to the most damaging bacteria, virus, and root-nod nematodes, as well as traits linked to vigour, have to be researched ([@bibr29]). Finally, the impact of pests on yields should be studied as some resistant hybrids suffer more yield losses, even though pest densities are higher on susceptible varieties ([@bibr14]).

In conclusion, these field experiments demonstrated the importance of *S. polyadenium* PI 230463 and & *tarijense* PI 414150 for breeding programs aiming at developing new pest resistant potato varieties. It also demonstrated the importance of field experiments in different geographic areas as resistance mechanisms may differ between field and laboratory conditions, and between geographic area.

We would like to thank Guy Boulet, Thibaud Gérard, Pierre Lemoyne, Alice Sander, Jenny Therriault, and Martin Trudeau for technical assistance. We are also grateful to Michel Auger for access to his farm and Jacques Lasnier (Co-Lab R & D, Granby, Qc, Canada) for help in logistics. Accessions seeds were furnished by Max W. Martin from the USDA Potato Introduction Project (Sturgeon Bay, Wisconsin, U.S.A.). This project was a partnership co-financed by Agriculture and Agri-Food Canada Mil-program between Cavendish Farms, Comité Nord Plants de Pomme de Terre (France), and Université de Picardie Jules Verne (Amiens, France).

[^1]: **Associate Editor:** TX Liu was editor of this paper.


Dolebury Warren

Dolebury Warren (also known as Dolebury Camp) is a  biological Site of Special Scientific Interest (SSSI) and ancient monument near the villages of Churchill and Rowberrow in North Somerset, part of South West England. It is owned by the National Trust, who acquired the freehold in 1983, and managed by the Avon Wildlife Trust.

Standing on a limestone ridge on the northern edge of the Mendip Hills, it was made into a hill fort during the Iron Age and was occupied into the Roman period. The extensive fort covers  with single or double defensive ramparts around it. The name Dolebury Warren comes from its use during the medieval or post medieval periods as a rabbit warren. The topography and differing soil types provide a habitat for an unusually wide range of plants, attracting a variety of insects, including several species of butterfly.

Geology and location

The site is at the top of a Carboniferous Limestone ridge on the northern edge of the Mendip Hills. It forms part of the Black Down Pericline where the limestone has been exposed because of erosion of the overlying Triassic dolomitic conglomerate. The soil depth varies considerably, owing to the slope within the site and the effects of its exposure to the wind.

Dolebury Warren overlooks the villages of Churchill and Rowberrow and provides good visibility across the surrounding lower lying areas as far as the Bristol Channel. The highest point, at the eastern end of the site is  OD, with the hillfort being up to  below this. It is the starting point for the Limestone Link, a  long-distance footpath which ends at Cold Ashton in Gloucestershire.

Description
The fort covers an area of  and commands views over the surrounding countryside. The hill fort is bivallate on three sides and a single rampart on the southern side which is protected by a steep slope. It is almost rectangular with the longest axis from east to west being  long and  from north to south, surrounded by a rampart which is around  high and  wide. It was protected by a limestone rampart with a ditch and counterscarp on all sides but the south. There is an inturned entrance on the west and an annexe of  protecting the easier eastern approach.

History

Etymology
The name Dolebury means the idol hill from the Old English dwol and beorg.

Early

Various artefacts have been uncovered representing the long period of occupation of the site at Dolebury Warren. These include flintwork from the Palaeolithic, bronze spearheads, Bronze Age pottery, and Roman pottery and coins. There is evidence of occupation of the site during the Iron Age. The defences and Celtic field systems there date back to the 7th century−3rd century BCE, though they might mask earlier developments. The hillfort was occupied until approximately 100BC, though it is possible that it was reoccupied in the Roman and post-Roman periods. The archeological consultant Peter Leach has suggested there may even have been a Roman Temple built within the hillfort, while aerial photographs suggest the probable remains of an Iron Age or Roman coaxial field system. Local historian Robin Atthill also suggests that Dolebury may have re-emerged as an important centre of population in the 5th century.

Medieval
In the medieval or post-medieval period, the remains of the hillfort were used as a rabbit warren which was used to breed rabbits, providing valuable meat and fur. Many warrens were surrounded by banks or walls to prevent the rabbits from escaping; escaped rabbits caused damage to nearby farmland and meant a loss in profit. The warren at Dolebury is completely enclosed by the substantial ramparts of the Iron Age hill fort and thus provided an ideal location to breed rabbits. The presence of pillow mounds and vermin traps demonstrate man's management of the site for husbandry. Ridge and furrow agriculture has also been identified, from aerial photographs, within the fort. Some of these structures, along with earlier Iron Age features, have been damaged by subsequent quarrying which may have been for lead, ochre or calamine. The site was described by John Leland in the 16th century. A three-storey building, believed to be the warrener's house and possibly a watch tower, surrounded by a garden, was in ruins by 1830.

19th and 20th centuries

The site was visited in the early 19th century by John Skinner and surveyed in 1872 by Charles William Dymond. In 1906 the Mendip Lodge Estate, which included Dolebury Warren, was sold. It was first scheduled as an ancient monument in 1929. In 1935 Dolebury Camp was bought by Miss V. Wills of the W.D. & H.O. Wills tobacco company to prevent development. Dolebury Warren was notified as a Site of Special Scientific Interest in 1952. The freehold of  was acquired by the National Trust in 1983 from A. G. Gosling, D. F. Gosling and J. M. Kent, and is managed by the Avon Wildlife Trust.

Ecology

The site of the fort and warren is now grassy slopes which attract a wide range of wild flowers and butterflies. The differing soil types provide suitable habitats for both acid- and lime-loving plants. Kidney vetch (Anthyllis vulneraria), harebell (Campanula rotundifolia) and woolly thistle (Cirsium eriophorum) thrive on the dry stony soils. Heath bedstraw (Galium saxatile) and wood sage (Teucrium scorodonia) are found in more acidic areas. The higher areas support bell heather (Erica cinerea), western gorse (Ulex gallii) and common heather (Calluna vulgaris). Trees and shrubs include the wayfaring tree (Viburnum lantana), guelder rose (Viburnum opulus), whitebeam (Sorbus aria), privet (Ligustrum vulgare) and dogwood (Cornus sanguinea).

Scarce plants found at the warren include knotted pearlwort (Sagina nodosa), and slender bedstraw (Galium pumilum). Butterflies recorded here include the small blue (Cupido minimus), marbled white (Melanargia galathea), dingy skipper (Erynnis tages), grizzled skipper (Pyrgus malvae),  small pearl-bordered fritillary (Boloria selene), and wall brown (Lasiommata megera).

See also
List of hill forts and ancient settlements in Somerset

References

Bibliography

Category:Hill forts in Somerset
Category:History of Somerset
Category:Mendip Hills
Category:Sites of Special Scientific Interest in North Somerset
Category:Sites of Special Scientific Interest notified in 1952
Category:Nature reserves in Somerset
Category:National Trust properties in Somerset
Category:Former populated places in Somerset
Category:Scheduled Ancient Monuments in North Somerset


Tag Archives: Air Force

August 24, 2016Financial Report, NewsComments Off on August 24 Market Close: GovCon Index Down on McKesson Decline as Health Losses Weigh on US Markets

Executive Mosaic’s GovCon Index traded lower Wednesday with McKesson Corp. (NYSE: MCK) the worst net performer at more than double the decline of second-lowest Lockheed Martin (NYSE: LMT) as losses in healthcare shares dragged U.S. stocks into negative territory. General Dynamics was the only GovCon Index-S&P 500 company to record a gain, while McKesson was …

August 22, 2016Contract Awards, NewsComments Off on Lockheed Secures Potential $10B IDIQ for Air Force C-130J Production Support

The U.S. Air Force has awarded Lockheed Martin (NYSE: LMT) a potential 10-year, $10.02 billion indefinite-delivery/indefinite-quantity contract to support the military branch’s C-130J Super Hercules production effort. The sole-source contract also includes foreign military sales, the Defense Department said Friday. DoD expects Lockheed’s aeronautics segment in Marietta, Georgia to finish contract work Aug. 18, …

August 15 – August 19 2016 Click here to see Real-Time GovCon Sector Quotes A Note From Our President & Founder Jim Garrettson The long-awaited, much-anticipated and well-documented merger of Leidos into the now former Lockheed Martin information technology and technical services business completed on Tuesday. As if GovCon observers needed reminding, Leidos doubles to $10 …

August 19, 2016Contract Awards, NewsComments Off on 5 Firms Win Spots on $78M Air Force Weapon, C4I Systems Support IDIQ

The U.S. Air Force has awarded five companies positions on a potential three-year, $78.4 million contract to provide information technology support for the military branch’s weapons and command, control, communications, computers and intelligence systems. The Defense Department said Thursday the indefinite-delivery/indefinite-quantity contract also covers project management, intelligence, security, staff support, system engineering and subject matter …

August 15, 2016Financial Report, NewsComments Off on August 15 Market Close: GovCon Index Hits Record Close Again as Defense Primes Rise

Executive Mosaic’s GovCon Index closed at another all-time high Monday with 28 out of 30 companies including all 11 S&P 500-listed stocks in green and middle- to large-tier defense contractors as the session’s top advancers. L-3 Communications (NYSE: LLL) led all net gainers after the military technology maker was selected by Drexel Hamilton …

United Technologies Corp.‘s (NYSE: UTX) Pratt & Whitney subsidiary has received a three-year, $151.7 contract modification from the U.S. Navy to provide a range of F-35 Lightning II aircraft supplies and services. The Defense Department said Wednesday the modification covers initial spare modules, engine system trainers, support equipment and depot activation services and supplies …

August 9, 2016Contract Awards, NewsComments Off on Space News: Air Force to Award Contract to ULA for Delta 4 Rockets

The U.S. Air Force plans to award a sole-source contract to United Launch Alliance for two Delta 4 rockets to launch National Reconnaissance Office, Space News reported Monday. Mike Gruss writes the NRO missions covered under the contract are scheduled to launch in 2020 and 2023. The Air Force opted for a sole-source contract …

August 5, 2016News, Weekly Round-upComments Off on Weekly Roundup August 1 – August 5 2016: Leidos Further Details Post-Merger Picture & more

August 1 – August 5 2016 Click here to see Real-Time GovCon Sector Quotes A Note From Our President & Founder Jim Garrettson Government contracting’s M&A and financial aspects took center stage again this week and GovCon Wire hit on all the major events as Executive Mosaic’s home of market-moving news for the sector. …

August 5, 2016Contract Awards, NewsComments Off on Johnson & Johnson to Supply Dental, Medical Equipment to US Armed Forces

The Defense Logistics Agency has awarded Johnson & Johnson (NYSE: JNJ) a five-year, $60 million contract to supply medical and dental equipment to all four military service branches. Johnson & Johnson’s healthcare systems sector will deliver the products to the U.S. Army, Navy, Air Force and Marine Corps through Aug. 3, 2021 under the indefinite-delivery/indefinite-quantity contract, the Defense Department …

August 1, 2016Press ReleasesComments Off on DynCorp to Provide Transient Aircraft, Base Operation Support Under AFCAP IV Task Orders

TYSONS CORNER, VA, Aug. 1, 2016 — DynCorp International has received three task orders from the U.S. Air Force to deliver transient aircraft support and base operation services under the Air Force Contract Augmentation Program IV contract, ExecutiveBiz said Friday. The company said Thursday it received a $29 million task order for personnel, …

Sponsor

Sponsor

Sponsor

Sponsor

Sponsor

Sponsor

Sponsor

Sponsor

Sponsor

Sponsor

Microsoft

Deltek Leader Board

About GovConWire

The premier source of breaking business news for the government contracting industry, GovCon Wire provides informative, to-the-point stories of the most significant contract awards, top-level executive moves, M&A activities and financial results of the sector’s most notable players.

GovCon Wire is always on top of the most recent contracting sector activity and is updated in real time as the news breaks.


These days, the big issues of our time are digested and disseminated by cable news, internet blogs, and tweets—and repeated by everyday people in our common conversations. But the choices about how that digestion happens—about how big stories are packaged into little sound-bytes that people spread—are strategic decisions loaded with political power. Consider:

Along with our opposable thumbs, human beings are unique in our narrative nature. We are narrative animals who process our experiences through the lens of story, and pass on our stories through memes: symbols, rituals, songs, or images. Memes are self-replicating units of culture that morph over time and spread without attributing authorship—from rituals like putting candles on your birthday cake or tying a yellow ribbon around the oak tree to sound-bytes that shape the political debate, like “Too Big to Fail” or “Green Jobs.”

Effectively framing for change means intentionally setting the terms of
the debate, and shifting power and possibility in the story.

The creation of potent memes has been always been central to the work of shifting the dominant culture: whether its using symbols like the peace sign, teaching new practices like recycling, or packaging new ideas for a better world—like “living wage” or “fair trade.” As a meme spreads it often carries a specific framing. A frame is the overarching perspective or larger idea that shapes our interpretation. You can think of the frame as the edges of the television screen or the rims of the eyeglasses—it’s what defines what and who is in the story and what it all means. What is left out of the frame is as important as what is inside the frame. And most importantly for those of us working for justice and change, the frame defines who has power in the story.

Collective, cultural stories are embedded with powerful frames that define cultural norms and shape common perceptions of what’s possible. The mythologies and memes of Plymouth Rock, Manifest Destiny, 40 Acres and a Mule, and the American Dream are the narratives of the past—but they continue to haunt our political discourse today. When we are working to change the dominant stories about racism, immigration, war, and protecting the planet, these narratives are already in peoples’ minds, acting as filters to social change messages, and often limiting a collective sense of possibility.

Effectively framing for change means intentionally setting the terms of the debate, and shifting power and possibility in the story. Perhaps our framing amplifies the perspective of previously marginalized characters, reveals hidden impacts, or highlights a better alternative. As a new story is told, the meaning shifts and people draw different conclusions...

As the old advertising industry mantra says, “People can only go somewhere that they have already been in their minds.” The same is true for social change stories. Effective framing often foreshadows a specific future, subtly defining or redefining what is politically acceptable. The power holder’s side of the story often relies on the belief that change can’t happen, and the status quo is the only way. Former British Prime Minister Margaret Thatcher even coined an acronym to define this tactic: TINA—There Is No Alternative.

What better way to challenge this common myth then making the abundance of alternatives real and visible? Framing for change is often as simple as manifesting the changes we need: The residents’ occupation of the public housing office transforms it into a day care center… The abandoned city lot becomes a community garden… The site of the planned juvenile prison becomes a playground…

Framing for change is often as simple as manifesting the changes we need.

In the place of the failed narratives of U.S. empire, assimilation, and corporate monoculture, a multitude of new stories are taking root. Inspiring campaigns of resistance and transformation are underway in countless communities, and social movements are quite literally changing the stories that structure our lives, and thereby changing the story of our future. Around the world, there is a contest to frame the story—will the dominant narratives justify exploitation, destruction and conquest, or encourage ordinary people to take the side of the Earth, humanity and hope?

All of us have a part to play in these ongoing framing efforts. As we discuss the events of the day and spread our stories of positive change, it is up to all of us to chose our memes wisely, and to tell the story that reflects our values and frames the future we really want. Humanity’s greatest gift is our power to create images and frame ideas so let’s be smart about how use it…Psst, Pass it on!

Interested?

: As our society approaches major transitions ahead, we may welcome or
resist the changes … How we react will rest partly on how we frame
those changes.


 Is v even?
True
Suppose -10*l = -2*l - 10512. Does 9 divide l?
True
Is ((-15)/(-10))/((-12)/(-5624)) a multiple of 19?
True
Suppose -13*x + 8*x - 580 = 0. Let r = x + 267. Is 44 a factor of r?
False
Suppose 3*v + 5*a - 834 = 259, -5*v + 5*a = -1835. Suppose x + 110 = 2*x - 4*q, 0 = -3*x + 3*q + v. Does 14 divide x?
True
Let z = 206 + -114. Suppose -4*b = -0*b - z. Is b a multiple of 2?
False
Let n(u) = 3*u. Let m be n(-1). Suppose -4*v = 6*v - 16*v. Let z = v - m. Is z a multiple of 3?
True
Let d = 171 - 111. Does 3 divide d?
True
Let i = -10 - -11. Suppose c + 5 = -2*q + i, q - 4 = c. Suppose 2*r + r - 18 = q. Is 3 a factor of r?
True
Let t = -123 + 195. Does 17 divide t?
False
Suppose 69 = -2*q + 869. Is q a multiple of 10?
True
Let v(o) = o**3 + 15*o**2 - 4*o - 18. Suppose i - 3*i = 30. Is v(i) a multiple of 11?
False
Let k = 2 - -43. Let c = -9 + k. Does 4 divide (-6)/(-8) - (-333)/c?
False
Suppose -v - 4 = -11. Let a(g) = g**2 - 6*g + 17. Does 6 divide a(v)?
True
Suppose 3*u = -u - 5*b + 1283, b - 1303 = -4*u. Suppose 3*r - 229 = 2*i - 3*i, -4*r = -3*i - u. Is r a multiple of 24?
False
Suppose -133 = -4*q + r, 0*q + 5*r + 87 = 3*q. Let k = -16 - q. Let p = -20 - k. Is p a multiple of 10?
True
Suppose -1 - 7 = -4*v. Let d(t) = -t**3 + 3*t**2 - 3*t + 1. Let c be d(v). Let r(o) = -8*o**3. Is r(c) a multiple of 8?
True
Let h be ((-8)/(96/9))/((-3)/8). Suppose -f = h*f - 105. Is f a multiple of 17?
False
Suppose s = -1 - 12. Let b be 1/(3/(-1 - s)). Is 14 a factor of (-7 + b)*1 + 17?
True
Let o = 846 - 678. Is 5 a factor of o?
False
Suppose -2*y - 3*y + 15 = 0. Suppose 0 = 3*t - 29 - 7. Suppose 0 = -y*w + 18 + t. Does 10 divide w?
True
Is (-116)/1218 + (-11344)/(-42) a multiple of 11?
False
Let s(o) = o**3 - 3*o**2 - 3*o - 5. Let y be s(-3). Let j = 126 + y. Is 19 a factor of j?
True
Is 25 a factor of 7/1 + (0 - -813)?
False
Let m = 2595 - 1431. Does 4 divide m?
True
Suppose -5*s = -3*s - 6. Let a(v) = 24*v - 4. Let t(k) = -24*k + 3. Let m(j) = s*a(j) + 2*t(j). Does 18 divide m(3)?
False
Suppose 3*l + 5*x = -3, 3*x = -2*l + 2*x + 5. Let b = -47 - -67. Suppose -7 = p - y - 47, l*y - b = 0. Does 17 divide p?
False
Suppose 3*l - 15 = 8*l. Suppose -s = -4*f + 3, 3*f = 8*f + 4*s - 30. Does 2 divide -2*(f + l) - -3?
False
Let t = -114 - -72. Let p = 203 - 99. Let b = p + t. Is 22 a factor of b?
False
Let m be (-44)/(-10) + 6/(-15) - -3. Let b(k) = -k + 28. Is b(m) a multiple of 3?
True
Let j(y) = 46*y + 10. Let i(m) = m**2 + 6*m + 7. Let w be i(-5). Does 34 divide j(w)?
True
Suppose 82 = o + 5*r, 0 = 5*o - 7*o - 4*r + 158. Does 10 divide o?
False
Let r(i) = -33*i + 12. Is 52 a factor of r(-29)?
False
Suppose -15 = -5*a, 40 = 2*t - 5*a + 9. Let d = t + -20. Suppose 83 = d*b - 205. Is 24 a factor of b?
True
Suppose 3164 = -v + 29*v. Is v a multiple of 22?
False
Let a = -3 + 10. Let n(g) = g**2 - 2*g + 1. Let b be n(a). Let x = b + -22. Does 11 divide x?
False
Let o(y) = y**3 - 10*y**2 + 10*y - 5. Let v be o(9). Let u be v/(12/(-27)*-3). Suppose 480 = -u*s + 8*s. Is 16 a factor of s?
True
Suppose 2145 = -17*u + 5545. Is u a multiple of 40?
True
Let c(o) = 2*o**2 - 10*o. Suppose 3*l - a = 23, -2*l + 13 = l + a. Let b be c(l). Let g(d) = -d**3 + 13*d**2 - 10*d + 3. Is 4 a factor of g(b)?
False
Let m(c) = -37 - c**2 - 41 + 24 - 1 + c. Let v be m(0). Let j = -29 - v. Is 26 a factor of j?
True
Suppose 551 = 4*x - 893. Suppose 3*c = 2*w + 218, 0*c + w + x = 5*c. Does 18 divide c?
True
Suppose 0*b = -7*b + 994. Suppose -6*l + l + 3*r + 285 = 0, -b = -3*l - 4*r. Is l a multiple of 18?
True
Let v(j) = j - 12. Let m be v(12). Suppose m = -r - 2*r + 3*n + 174, -r - 5*n = -52. Suppose 4*p - r = p. Does 13 divide p?
False
Let o(j) = -2*j + 4. Let g(s) = s**2 + 6*s - 13. Let n(a) = 4*g(a) + 11*o(a). Let d be n(-4). Suppose -v = v - d. Does 9 divide v?
False
Let a = -1 + 6. Suppose -2*g + 760 = 3*g + a*l, 0 = -2*g - l + 306. Suppose 5*s = -4*i + 3*s + g, 185 = 5*i + s. Is i a multiple of 30?
False
Suppose 3*d - 5*p - 527 = 0, 4*d - 3*d - 174 = 2*p. Suppose -5*f = -5*n - 30, -f - 42 = 4*n - 28. Suppose b - 91 = -5*c + d, 110 = f*c + b. Does 16 divide c?
False
Let o(r) = r**2 - 6*r - 2. Let f be 9 + 3*(-8)/12. Let k be o(f). Suppose -105 = -10*i + k*i. Does 4 divide i?
False
Let f = 57 - 40. Suppose 0 = 14*w - f*w + 30. Suppose 7*k - w*k = -114. Is k a multiple of 16?
False
Let o(c) = 7*c + 9. Let p(q) = q + 4*q - 11*q - 10 - 2*q. Let t(i) = 3*o(i) + 4*p(i). Is t(-4) a multiple of 31?
True
Let f(m) be the third derivative of m**6/120 + m**5/5 - 5*m**4/6 - 25*m**3/6 + 6*m**2. Is 12 a factor of f(-13)?
False
Let f(t) = -6*t - 6. Let b be f(-4). Let r(k) = -k**3 + 19*k**2 - 18*k + 24. Let i be r(b). Does 3 divide ((-60)/i)/(1/(-2))?
False
Suppose -3*s = -2*s - 3*c - 80, 0 = -s - 4*c + 80. Suppose -f - f = -12. Suppose -2*q - 5*k = -s, -180 = -4*q - f*k + k. Does 17 divide q?
False
Let u(t) = -t**2 - 24*t - 11. Suppose 72 = k + 89. Does 27 divide u(k)?
True
Suppose -3540 = -22*g - 878. Does 14 divide g?
False
Is 11 a factor of ((-96)/(-80))/(9/2850)?
False
Let v(u) be the third derivative of u**4/2 - u**2. Let q be 1/(-1 - -2 - 0). Is v(q) a multiple of 6?
True
Suppose -5*v = -4*m + 3*m, 10 = -5*v. Let u(a) = -a**2 - 13*a + 6. Is u(m) a multiple of 12?
True
Let o = -23 + 42. Let y = 4 + -15. Let v = y + o. Does 8 divide v?
True
Let x(a) = 3*a - 2. Suppose -4*u = -5*t + 18, t = 4*u + 4*t + 2. Let c be (-1)/(u/8) + 2. Does 9 divide x(c)?
False
Let q = -71 - -181. Let l = 167 - q. Is l a multiple of 18?
False
Suppose r - 6 = -3*q + 2, 0 = 4*q - 4*r - 16. Suppose 4*l = q*o - 173, 0*l + o - 208 = 5*l. Let j = l - -101. Is j a multiple of 16?
False
Is 12 a factor of 27/((-6)/(-24*1))?
True
Suppose 15*i - 9*i = 12. Let k(g) = 10*g**2 + 3*g + 1. Let p be k(-3). Suppose 2*z + 2*z = -i*h + p, -h - z = -41. Is 17 a factor of h?
False
Let m be (-4)/(-6)*(0 - -6). Let g = 9 - m. Suppose 0*k - g*k + 90 = 0. Is k a multiple of 14?
False
Suppose -36*o = -32*o - 24. Let p = 104 - 29. Suppose p = -w + o*w. Does 5 divide w?
True
Let v be (-85)/(-4) + 9/12. Let z be v + 4/8*4. Let k = z + -11. Does 13 divide k?
True
Let b(v) be the third derivative of v**6/120 - 11*v**5/60 + 7*v**4/24 + v**3/3 - 3*v**2. Let u be b(11). Does 10 divide 2/10 + u/5?
False
Let a(y) = -115*y + 30. Is a(-6) a multiple of 18?
True
Let k(w) = -4*w**3 + 9*w + 0 + 10*w**2 - 9 + 5*w**3. Suppose 4*c + 18 = 2*c + 4*y, -2*c - 5*y - 9 = 0. Is 25 a factor of k(c)?
True
Is (-84)/(-63)*14/4*93 a multiple of 10?
False
Let u(x) = -x**3 - 8*x**2 - 15*x - 9. Is 30 a factor of u(-8)?
False
Suppose -3*p - f = f - 60, -5*f - 39 = -3*p. Let u = p + -8. Is u a multiple of 5?
True
Suppose -14509 = -25*n + 37091. Is 48 a factor of n?
True
Let g(c) = c**2 - 8*c - 11. Let u be g(9). Is u + -7 + 6 - (-1 + -10) a multiple of 3?
False
Suppose -10*w = -9*w + h - 1460, 3*w = 2*h + 4400. Does 22 divide w?
False
Let j be (-3)/(9/6*-1). Suppose j*v = 8*v - 384. Does 15 divide v?
False
Is (-51 + 16)*51/(-15) a multiple of 7?
True
Let v = -38 + 28. Let p(t) = t**2 + 11*t + 15. Let l be p(v). Is 3 a factor of -3 + 15/l*5?
True
Let w(u) be the third derivative of 11*u**6/30 + u**5/60 - u**4/8 + u**3/2 + 3*u**2. Is 9 a factor of w(1)?
True
Let j(v) = -587*v - 10. Let a be j(-14). Is a/52 - (-6)/39 a multiple of 21?
False
Let i(f) = -2*f**2 + 18*f + 6 + 3*f**2 - 20*f. Is 8 a factor of i(4)?
False
Let q = -6 - 49. Let b be ((-18)/(-2))/((-5)/q). Suppose 5*z = -o + 255, 0*z - o = 2*z - b. Is z a multiple of 13?
True
Let g(q) be the first derivative of q**5/60 - q**4/6 - 3*q**3/2 + 9*q**2/2 - 10. Let m(t) be the second derivative of g(t). Is 12 a factor of m(7)?
True
Let p be 6/57 + (-312)/76. Let g = 84 + p. Is 16 a factor of g?
True
Let d(j) = -j**3 + 9*j**2 - 16*j - 6. Let s be d(7). Is 1 + s/12 + 924/9 a multiple of 17?
True
Suppose -122 - 19 = -n. Is 47 a factor of n?
True
Let y = -226 - -1767. Is 41 a factor of y?
False
Suppose 33*u + 15 = 36*u. Suppose -48 - 137 = -u*x. Does 32 divide x?
False
Suppose 0 = 2*o - 126 + 28. Suppose 4*p - 104 = -4*m, -5*p + 214 = -2*m + o. Is p a multiple of 9?
False
Let d = -3218 + 5292. Does 61 divide d?
True
Let o(l) = -19*l - 7*l**2 - 5*l**2 + 3 + 10*l**2. Does 9 divide o(-8)?
True
Let y = 2825 + -1670. Suppose


A new technique of upper eyelid blepharoplasty using the orbicularis muscle flap.
Blepharoplasty of the upper eyelids is one of the most commonly performed procedures in aesthetic plastic surgery. The orbicularis muscle flap technique provides good results for patients with atonic skin and an atonic orbicularis muscle when there is excessive fullness in the lateral aspect of the upper lid. This flap also can be used to contain a prominent lacrimal gland or retro-orbicularis oculi fat (ROOF) without dangerous removal of the last one. A total of 30 patients underwent upper lid blepharoplasty through a supratarsal incision approach. Dissection of the orbicularis muscle flap was made 5-8 mm above the supratarsal fold. Before the muscle flap suspension, the excess skin and fat pad were removed. The flap suspension was achieved with its rotation and motion of a tunnel in the suborbicularis plane, which anchored it on the periosteum of the orbital lateral rim of the frontal bone with a permanent suture. This technique restores the sharp and crisp tarsal folds and pretarsal show with deepening of the orbitopalpebral sulcus. The orbicularis muscle flap also can be proposed for cases with a ptosis of the lateral upper lid. The authors believe this technique reduces the risk for "rounding" of the eyelid and produces better contact of the lid with the ocular globe. The orbicularis muscle flap procedure is a feasible technique that can be used reliably to reshape the lateral upper lid. It would be a useful addition to the armamentarium of the plastic surgeon who is called on to perform upper blepharoplasty.


Q:

What is a simple way of drawing sprites without OpenGL?

We are developing simple arcade game for android now and we are interested in adding some visual effects to it. Like disappearing or appearing animation and so on. Is there a simple way to do it without OpenGL for example just using some improvements to ImageView?

A:

You could use the BitmapFactory and Bitmap Class to perform simple manipulations on images. Check out the http://developer.android.com/reference/android/graphics/Bitmap.html for what you can do with this class. It supports simple stuff like reloading, fading out, creating ScaledMaps and manipulating images on the screen on basic level.
For some simple instructions and examples see:

http://developer.android.com/guide/topics/graphics/index.html
http://www.anddev.org/resize_and_rotate_image_-_example-t621.html
Chapter 6 in "Android Developers cookbook" : http://www.informit.com/store/product.aspx?isbn=0321741234


Q:

Inline UIPicker Implementation

I'm attempting to implement an inline UIPicker inside a table-view cell, similar to both this and this SO question. I believe I'm close in my implementation, but at the moment, no picker is displayed when I select the appropriate cell.  Can anyone point me in the right direction in regards to what I'm doing wrong? Thank you!
Below is where I determine what rows occur in each section:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    switch (indexPath.section) {
        case NotificationsSection:
            return [self tableView:tableView cellForAreaOneRowAtIndexPath:indexPath];
            break;
        case RedZoneSection:
            return [self tableView:tableView cellForAreaTwoRowAtIndexPath:indexPath];
            break;
        case TimeOfDaySection:
            return [self tableView:tableView cellForAreaThreeRowAtIndexPath:indexPath];
            break;
        default:
            return nil;
            break;
    }
}

Below is where I check the number of rows in each section. I suspect my problem may lie here, but I am not completely sure.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    switch (section) {
        case AreaOneSection:
            return AreaOneRows;
            break;
        case AreaTwoSection:
            return TotalAreaTwoRows;
            break;
        case AreaThreeSection:
            return TotalAreaThreeRows;
            break;
        default:
            return 0;
            break;
    }
}

Below is where I return the height for each row:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    CGFloat rowHeight = self.tableView.rowHeight;
    //    if (indexPath.section == TimeOfDaySection && indexPath.row == HourTimeZoneRow  && self.timePickerIsShowing == NO){
    return rowHeight;
}

Finally, below is where I check if the user selected the index path that I want to insert the UIPicker cell below. If they did, then I call a method to show the the picker.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];

    if (indexPath.section == SectionThree && indexPath.row == RowOne  && self.timePickerIsShowing == NO){

        [tableView beginUpdates];
        [self showTimePicker];
        [tableView endUpdates];
    } else{
        [self hideTimePicker];
        [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
    }
}

Finally, below is where I show and hide the UIPicker.
- (void)showTimePicker
{
    self.timePickerIsShowing = YES;
    self.timePicker.hidden = NO;
    //build the index path to where the picker should be inserted here
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:HourTimeZoneRow + 1 inSection:TimeOfDaySection];

    static NSString *CellIdentifier = @"TimePickerCell";
    UITableViewCell *cell = (UITableViewCell*)[self.tableView  dequeueReusableCellWithIdentifier:CellIdentifier];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    _timePicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, 160)];
    [cell.contentView addSubview:self.timePicker];

    [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
    [self.tableView reloadData];
    self.timePicker.alpha = 0.0f;
    [UIView animateWithDuration:0.25 animations:^{
        self.timePicker.alpha = 1.0f;
    }];
}

- (void)hideTimePicker {
    self.timePickerIsShowing = NO;
    self.timePicker.hidden = YES;
    [self.tableView reloadData];
    [UIView animateWithDuration:0.25
                     animations:^{
                         self.timePicker.alpha = 0.0f;
                     }
                     completion:^(BOOL finished){
                         self.timePicker.hidden = YES;
                     }];
}

A:

In your showPicker function, you don't seem to do anything? You create a cell, do things with it then it dies when that function ends. The cell is not added anywhere from what I can see?
You need to add the picker inside cellForRowAtIndexPath, for the index path you know needs a picker.
What I do requires very little coding. I create a prototype cell in interface builder which contains a picker view. In my case I also add a toolbar above the picker which I can put buttons in to allow Cancel and Done. Add suitable properties to pass in the current values for the picker to show initially. Add a delegate to use to inform the creator (your tableView) of changes in picker values. You can wait for it to finish picking, or use it to update live the cell its editing values for by reloading the cell being edited every time the value changes. I prefer that the picker can pick a value and you can commit it or cancel it.
When a cell needs edited, I update my data model to insert an editing entry then call [tableView reload]. In my case selecting a cell starts editing, clicking cancel/done ends editing.
The table view at this point will start asking for cells. This time one of those will be your new picker cell, which will be for editing the cell it is below. When you create it you pass it the data model reference for the data it is to edit.
So you can achieve all this by simply adding a new prototype cell type and creating it inside cellForRowAtIndexPath when required.
You have a choice as to how to remove the picker. In my case I have Cancel/Done buttons which just removes the entry from the data model and reloads the table again, resulting in it never being created. You could also make the mode as being click on a cell to add and click again to remove. Again you just update the data model and reload. See how the time picker works on the Calander app for a new appointment.
You may be thinking this is a lot of reloads. However it only affects what is on screen and I found it to be easier than trying to figure out the affected cells all the time. Its also very smooth. When it is working you can always optimize the code.
Use constraints in the cell to make sure it has the layout you want.


UPDATE: The Boston Police Department is asking for the public’s help with an ongoing investigation relative to a fatal motor vehicle collision that occurred in East Boston two days ago. Investigators wish to speak with several concerned citizens who were observed rendering assistance and aid to the victims on scene prior to the arrival of responding units, and any witnesses to the collision and events after the collision. Anyone with information is strongly encouraged to contact the BPD Fatal Collision Investigative Team at (617) 343-6135.

The original facts and circumstances surrounding the incident are as follows: At about 1:15 AM, on Sunday, May 5, 2019, officers from District A-7 (East Boston) responded to a motor vehicle collision involving a motor vehicle roll-over in the area of 1025 Bennington Street in East Boston. On arrival, officers observed one car, described as a gray motor vehicle, lying on its roof with extensive damage. According to Boston EMS personnel already on scene, one occupant, who has since been identified as Amber Pelletier, 20, of Central Falls, Rhode Island, had been declared deceased while a second occupant was transported to an area hospital with non-life-threatening injuries. The operator of the vehicle, considered occupant #3, had fled the scene and was gone before police arrived. That individual was later located, arrested and arraigned on multiple charges.

Community members wishing to assist the investigation anonymously can call the CrimeStoppers Tip Line at 1(800)494-TIPS or text TIP to CRIME (27463). The Boston Police Department stringently protects the identities of those who wish to remain anonymous.


Tymochtee Dolomite

The Tymochtee Formation is a geologic formation in Ohio. It preserves fossils dating back to the Silurian period.

See also

 List of fossiliferous stratigraphic units in Ohio

References

Category:Silurian Ohio
Category:Silurian southern paleotemperate deposits