Why struggle with bulky, noisy vacuum cleaners?
An integrated ducted vacuum system makes the job easier with no heavy lifting. While portable vacuum cleaners appear to clean a room, they can in fact release dust, bacteria and allergens back into the air. Ducted vacuum systems remove all vacuumed dust particles, allergens and odours, creating a healthier living environment for you and your family.
We thoroughly plan the system to suit your home so that only the most efficient and appropriate unit is installed.
Unlike portable vacuum cleaners that can re-circulate dust, a ducted vacuum system removes all vacuumed dust, dirt and allergens out of your living area and into a canister - usually located in the garage - to dramatically improve indoor air quality. That makes for a healthier home even if you don't suffer from allergies.
A ducted vacuum system has up to 5 times more power than most conventional portable vacuum cleaners delivering up to 100 litres per second of suction.
The heavy duty motors used ensure hard to shift dust and dirt will be removed from your valuable carpets, soft furnishings and other floor coverings, both protecting and prolonging their lives.
Versatile enough to be used just about anywhere : carpets, polished floor boards, slate, tile & vinyl floors, curtains and blinds, cornices, skirting boards & shelves, furniture, staircases, cars, caravans & boats, verandahs, decking and al-fresco's.
The loud irritating noise associated with portable vacuum cleaners is dramatically reduced with a ducted vacuum system. The power unit is usually located well away from living areas, so you can vacuum without disturbing other activities going on in your home. Mufflers and silencers can be fitted to most models to reduce sound levels even further.


Bel x1t looking nvidia bel 0812-1x1t-68 gs for WinOS. Download webcam hp g60 bel 0812-1x1t-68 for Windows. It is safe, uploaded from bel 0812-1x1t-68 source and passed AVG virus scan! Pros Cyip run automatically after installation Cif single chip webcam no software for image enhancements. It can be downloaded for cif single chip webcam, and installation is fast and easy.
I am using windows 7 and 0812-1x1t-6 software that came with a microscope some years ago will not see 08122-1x1t-68 cif single chip webcam input, it was originally AM Cap so i live in hope.
A4tech Pk mj Download. Please make bel 0812-1x1t-68 that you are posting in the form of a question. Bel x1t De Rx En Taringa. Speaking of the web camera is a bel 0812-1x1t-68 good brand, at least for me.
Finally — a very nice carrying case is included. As Cif single chip webcam had a tesco webcam this suits it all.
Software compatible with rede ga m61sme bel 0812-1x1t-68 v2 for Windows. Reconnect the device and power it on. Mediasonic ProRaid 2 Bay 2. See and discover other items:. Windows 7 and 9 Upload source: For what are singoe going to use the program? Bel 0812-1x1t-68 [ Edit History ].
Cons -No included AC adapter. Bel x1t, December 17, Ecsgct Hm Rev 1 0b. What similar programs have you used? Software compatible with mat sonic mse for Bel x1t It is also compatible with many Windows operating systems including 7 and lower versions. Again, unexpected at this price point. TechSpot Account Sign cif single chip webcam for freeit takes 30 seconds. Download aud realtek intel for xp for Windows.
Here bel 0812-1x1t-68 can download acer veriton g taringa for Bel 0812-1x1t-68. Download de asrock and68 16c for Windows.
These items are shipped from and sold by different sellers. The links I bel 0812-1x1t-68 here did not work for me.


text:
Q: Across Group Comparison of Means with Confidence Intervals in R I am comparing the Standardised Mortality Ratios across 10 groups, and have used the ems package to calculate the group-level SMR and confidence intervals .
I would like to do an across group (all 10 groups) comparison to derive a P value, as well as some specific pairwise comparisons. From a theoretical perspective I know above can be done using the provided means and confidence intervals, but I can't figure out if there's a function to do it in R, and wonder if someone could help.
I've included the dput formatted output from ems here (I'm not sure why it doesn't come up as a neat table?)
structure(list(Variables = c("Overall", "Group",
NA, NA, NA, NA), Levels = structure(c(NA, 1L, 2L, 3L, 4L, 5L), levels = c("1",
"10", "2", "3", "4", "5", "6", "7", "8", "9"), class = "factor"),
    N = c(455240, 44167, 62167, 40959, 35790, 49904), Observed = c(31182,
    3226, 4057, 3029, 2397, 3413), Expected = c(33633.08248,
    3637.17687, 4276.20381, 3261.36463, 2722.91475, 3684.30542
    ), SMR = c(0.92712, 0.88695, 0.94874, 0.92875, 0.88031, 0.92636
    ), lower.Cl = c(0.91874, 0.86175, 0.92536, 0.90222, 0.85105,
    0.90102), upper.Cl = c(0.93559, 0.91289, 0.9727, 0.95607,
    0.91057, 0.95241)), row.names = c(NA, 6L), class = "data.frame")

redpajama_set_name: RedPajamaStackExchange


On June 6-8, 2018, in Tbilisi, CLDP facilitated the Sixth Meeting of the Central Asia-Afghanistan Expert Level Working Group on Standards.
CLDP, together with advisors from the US PTO, US CBP, and the WCO, led a workshop on border identification and interdiction of counterfeit and pirated products on May 15-17, 2018, in Dushanbe, Tajikistan.
CLDP organized the Sixth Meeting of the Central Asia-Afghanistan Regional Expert Level Working Group on SPS Issues to take place in Almaty, Kazakhstan, on March 14-16, 2018.
CLDP Attorney Michael Cofield participated in the U.S.-Central Asia Trade and Investment Framework Agreement annual meetings on December 11-13, 2017 in Almaty, Kazakhstan. On Monday, December 11, 2017, CLDP briefed the TIFA-level Working Groups on the work and results of the CLDP-facilitated Expert Level Working Groups on customs issues, standards, and sanitary/phytosanitary measures.


text:
Home » FDA clears Second Sight IDE trial of next-gen Orion cortical visual prosthesis
FDA clears Second Sight IDE trial of next-gen Orion cortical visual prosthesis
August 28, 2017 By Fink Densford
Second Sight Medical (NSDQ:EYES) said today it won FDA investigational device exemption to initiate a feasibility clinical study of its Orion cortical visual prosthesis system.
The conditional approval gives the Sylmar, Calif.-based company clearance to enroll up to 5 patients at 2 US sites, but requires that the company conduct additional device testing and "address outstanding questions" within 45 days, it said.
"This is an exciting milestone for the company given the potential of Orion to provide useful vision to millions of blind individuals worldwide who have no other option today. We are delighted to have received conditional approval from the FDA to move forward and can now focus on finalizing the various approvals and agreements required at each clinical trial site. Once we complete those steps, our designated U.S. clinical trial sites, the University of California at Los Angeles and Baylor College of Medicine in Houston, can begin patient recruitment efforts. The Orion team has met all major internal milestones this year and we remain on-track to achieve the Company's stated goal of implanting our first Orion patient before year end," prez & CEO Will McGuire said in a prepared statement.
The Orion cortical visual prosthesis system is designed to convert images captured by a miniature video camera, mounted on a patient's glasses, into a series of electrical pulses which are transmitted wirelessly to an array of electrodes on the surface of the individual's visual cortex.
The result is the perception of patterns of light, Second Sight said, which bypass the retina and optic nerve to potentially restore useful vision to patients who are completely blind due to reasons including glaucoma, diabetic retinopathy, cancer or trauma.
"The ability to implant the 1st Orion system, which has the potential to treat nearly all forms of profound blindness, has been a stated goal of the company since our IPO. We are grateful for the rapid review and approval by the FDA. This milestone is a testament to the careful, high-quality work completed by the Second Sight and UCLA teams to date. We look forward to continuing our work with UCLA as this exciting clinical trial begins and also welcome Baylor to this important effort," board chair Dr. Robert Greenberg said in a press release.
In July, Second Sight said it entered the Russian market, with the 1st patient treated with its Argus II Retinal Prosthesis System in Moscow.
Filed Under: Clinical Trials, Food & Drug Administration (FDA), Optical/Ophthalmic, Prosthetics Tagged With: second-sight-medical

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: peewee.OperationalError: (3995, "Character set 'utf8mb4_unicode_ci' cannot be used in conjunction with 'binary' in call to regexp_like.") I had a peewee query (against a mysql 8.0 server) working a few months ago, and now it gives me the following error:
peewee.OperationalError: (3995, "Character set 'utf8mb4_unicode_ci' cannot be used in conjunction with 'binary' in call to regexp_like.")

The line of code producing the error is:
words = (Word
         .select(Word.word, Word.points)
         .where(Word.word.regexp('^[aeiou]+$'))
         .order_by(fn.CHAR_LENGTH(Word.word).desc(), Word.word)

a) I'm 99% sure it was working a few weeks, b) I can't see anything I might have changed, c) I'm pretty sure the resolution will be simple but I can't put my finger on it.
versions are peewee==3.15.4 and Python==3.10.9

A: The .regexp() translates into REGEXP BINARY operation.

Prior to MySQL 8.0.22, it was possible to use binary string arguments with these functions, but they yielded inconsistent results. In MySQL 8.0.22 and later, use of a binary string with any of the MySQL regular expression functions is rejected with ER_CHARACTER_SET_MISMATCH.

So you probably ought to switch that to .iregexp() which does not use this construction:
Word.word.iregexp('^[aeiou]+$')
If you need case-sensitivity, use fn.REGEXP_LIKE, which supports a flag for setting case-sensitivity: https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-like
fn.REGEXP_LIKE(Word.word, '^[aeiou]+$', 'c')


text:
package org.apache.cassandra.db;

import java.nio.ByteBuffer;
import java.security.MessageDigest;
import java.util.UUID;

import org.apache.cassandra.io.sstable.SSTable;
import org.apache.cassandra.utils.*;

import org.apache.commons.lang.builder.HashCodeBuilder;

import org.apache.cassandra.cache.IRowCacheEntry;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.Schema;
import org.apache.cassandra.db.filter.QueryPath;
import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.MarshalException;
import org.apache.cassandra.io.IColumnSerializer;
import org.apache.cassandra.io.sstable.ColumnStats;

public class ColumnFamily extends AbstractColumnContainer implements IRowCacheEntry
{
    /* The column serializer for this Column Family. Create based on config. */
    public static final ColumnFamilySerializer serializer = new ColumnFamilySerializer();
    private final CFMetaData cfm;

    public static ColumnFamily create(UUID cfId)
    {
        return create(Schema.instance.getCFMetaData(cfId));
    }

    public static ColumnFamily create(UUID cfId, ISortedColumns.Factory factory)
    {
        return create(Schema.instance.getCFMetaData(cfId), factory);
    }

    public static ColumnFamily create(String tableName, String cfName)
    {
        return create(Schema.instance.getCFMetaData(tableName, cfName));
    }

    public static ColumnFamily create(CFMetaData cfm)
    {
        return create(cfm, TreeMapBackedSortedColumns.factory());
    }

    public static ColumnFamily create(CFMetaData cfm, ISortedColumns.Factory factory)
    {
        return create(cfm, factory, false);
    }

    public static ColumnFamily create(CFMetaData cfm, ISortedColumns.Factory factory, boolean reversedInsertOrder)
    {
        return new ColumnFamily(cfm, factory.create(cfm.comparator, reversedInsertOrder));
    }

    protected ColumnFamily(CFMetaData cfm, ISortedColumns map)
    {
        super(map);
        assert cfm != null;
        this.cfm = cfm;
    }

    public ColumnFamily cloneMeShallow(ISortedColumns.Factory factory, boolean reversedInsertOrder)
    {
        ColumnFamily cf = ColumnFamily.create(cfm, factory, reversedInsertOrder);
        cf.delete(this);
        return cf;
    }

    public ColumnFamily cloneMeShallow()
    {
        return cloneMeShallow(columns.getFactory(), columns.isInsertReversed());
    }

    public AbstractType<?> getSubComparator()
    {
        IColumnSerializer s = getColumnSerializer();
        return (s instanceof SuperColumnSerializer) ? ((SuperColumnSerializer) s).getComparator() : null;
    }

    public ColumnFamilyType getType()
    {
        return cfm.cfType;
    }

    public ColumnFamily cloneMe()
    {
        ColumnFamily cf = new ColumnFamily(cfm, columns.cloneMe());
        cf.delete(this);
        return cf;
    }

    public UUID id()
    {
        return cfm.cfId;
    }

    /**
     * @return The CFMetaData for this row
     */
    public CFMetaData metadata()
    {
        return cfm;
    }

    public IColumnSerializer getColumnSerializer()
    {
        return cfm.getColumnSerializer();
    }

    public OnDiskAtom.Serializer getOnDiskSerializer()
    {
        return cfm.getOnDiskSerializer();
    }

    public boolean isSuper()
    {
        return getType() == ColumnFamilyType.Super;
    }

    /**
     * Same as addAll() but do a cloneMe of SuperColumn if necessary to
     * avoid keeping references to the structure (see #3957).
     */
    public void addAllWithSCCopy(ColumnFamily cf, Allocator allocator)
    {
        if (cf.isSuper())
        {
            for (IColumn c : cf)
            {
                columns.addColumn(((SuperColumn)c).cloneMe(), allocator);
            }
            delete(cf);
        }
        else
        {
            addAll(cf, allocator);
        }
    }

    public void addColumn(QueryPath path, ByteBuffer value, long timestamp)
    {
        addColumn(path, value, timestamp, 0);
    }

    public void addColumn(QueryPath path, ByteBuffer value, long timestamp, int timeToLive)
    {
        assert path.columnName != null : path;
        assert !metadata().getDefaultValidator().isCommutative();
        Column column;
        if (timeToLive > 0)
            column = new ExpiringColumn(path.columnName, value, timestamp, timeToLive);
        else
            column = new Column(path.columnName, value, timestamp);
        addColumn(path.superColumnName, column);
    }

    public void addCounter(QueryPath path, long value)
    {
        assert path.columnName != null : path;
        addColumn(path.superColumnName, new CounterUpdateColumn(path.columnName, value, System.currentTimeMillis()));
    }

    public void addTombstone(QueryPath path, ByteBuffer localDeletionTime, long timestamp)
    {
        assert path.columnName != null : path;
        addColumn(path.superColumnName, new DeletedColumn(path.columnName, localDeletionTime, timestamp));
    }

    public void addTombstone(QueryPath path, int localDeletionTime, long timestamp)
    {
        assert path.columnName != null : path;
        addColumn(path.superColumnName, new DeletedColumn(path.columnName, localDeletionTime, timestamp));
    }

    public void addTombstone(ByteBuffer name, int localDeletionTime, long timestamp)
    {
        addColumn(null, new DeletedColumn(name, localDeletionTime, timestamp));
    }

    public void addColumn(ByteBuffer superColumnName, Column column)
    {
        IColumn c;
        if (superColumnName == null)
        {
            c = column;
        }
        else
        {
            assert isSuper();
            c = new SuperColumn(superColumnName, getSubComparator());
            c.addColumn(column); // checks subcolumn name
        }
        addColumn(c);
    }

    public void addAtom(OnDiskAtom atom)
    {
        if (atom instanceof IColumn)
        {
            addColumn((IColumn)atom);
        }
        else
        {
            assert atom instanceof RangeTombstone;
            delete((RangeTombstone)atom);
        }
    }

    public void clear()
    {
        columns.clear();
    }

    /*
     * This function will calculate the difference between 2 column families.
     * The external input is assumed to be a superset of internal.
     */
    public ColumnFamily diff(ColumnFamily cfComposite)
    {
        assert cfComposite.id().equals(id());
        ColumnFamily cfDiff = ColumnFamily.create(cfm);
        cfDiff.delete(cfComposite.deletionInfo());

        // (don't need to worry about cfNew containing IColumns that are shadowed by
        // the delete tombstone, since cfNew was generated by CF.resolve, which
        // takes care of those for us.)
        for (IColumn columnExternal : cfComposite)
        {
            ByteBuffer cName = columnExternal.name();
            IColumn columnInternal = this.columns.getColumn(cName);
            if (columnInternal == null)
            {
                cfDiff.addColumn(columnExternal);
            }
            else
            {
                IColumn columnDiff = columnInternal.diff(columnExternal);
                if (columnDiff != null)
                {
                    cfDiff.addColumn(columnDiff);
                }
            }
        }

        if (!cfDiff.isEmpty() || cfDiff.isMarkedForDelete())
            return cfDiff;
        return null;
    }

    /** the size of user-provided data, not including internal overhead */
    int dataSize()
    {
        int size = deletionInfo().dataSize();
        for (IColumn column : columns)
        {
            size += column.dataSize();
        }
        return size;
    }

    public long memorySize()
    {
        return ObjectSizes.measureDeep(this);
    }

    public long maxTimestamp()
    {
        long maxTimestamp = deletionInfo().maxTimestamp();
        for (IColumn column : columns)
            maxTimestamp = Math.max(maxTimestamp, column.maxTimestamp());
        return maxTimestamp;
    }

    @Override
    public int hashCode()
    {
        return new HashCodeBuilder(373, 75437)
                    .append(cfm)
                    .append(deletionInfo())
                    .append(columns).toHashCode();
    }

    @Override
    public boolean equals(Object o)
    {
        if (this == o)
            return true;
        if (o == null || this.getClass() != o.getClass())
            return false;

        ColumnFamily comparison = (ColumnFamily) o;

        return cfm.equals(comparison.cfm)
                && deletionInfo().equals(comparison.deletionInfo())
                && ByteBufferUtil.compareUnsigned(digest(this), digest(comparison)) == 0;
    }

    @Override
    public String toString()
    {
        StringBuilder sb = new StringBuilder("ColumnFamily(");
        CFMetaData cfm = metadata();
        sb.append(cfm == null ? "<anonymous>" : cfm.cfName);

        if (isMarkedForDelete())
            sb.append(" -").append(deletionInfo()).append("-");

        sb.append(" [").append(getComparator().getColumnsString(getSortedColumns())).append("])");
        return sb.toString();
    }

    public static ByteBuffer digest(ColumnFamily cf)
    {
        MessageDigest digest = FBUtilities.threadLocalMD5Digest();
        if (cf != null)
            cf.updateDigest(digest);
        return ByteBuffer.wrap(digest.digest());
    }

    public void updateDigest(MessageDigest digest)
    {
        for (IColumn column : columns)
            column.updateDigest(digest);
    }

    public static AbstractType<?> getComparatorFor(String table, String columnFamilyName, ByteBuffer superColumnName)
    {
        return superColumnName == null
               ? Schema.instance.getComparator(table, columnFamilyName)
               : Schema.instance.getSubComparator(table, columnFamilyName);
    }

    public static ColumnFamily diff(ColumnFamily cf1, ColumnFamily cf2)
    {
        if (cf1 == null)
            return cf2;
        return cf1.diff(cf2);
    }

    public void resolve(ColumnFamily cf)
    {
        resolve(cf, HeapAllocator.instance);
    }

    public void resolve(ColumnFamily cf, Allocator allocator)
    {
        // Row _does_ allow null CF objects :(  seems a necessary evil for efficiency
        if (cf == null)
            return;
        addAll(cf, allocator);
    }

    /**
     * Goes over all columns and check the fields are valid (as far as we can
     * tell).
     * This is used to detect corruption after deserialization.
     */
    public void validateColumnFields() throws MarshalException
    {
        CFMetaData metadata = metadata();
        for (IColumn column : this)
        {
            column.validateFields(metadata);
        }
    }

    public ColumnStats getColumnStats()
    {
        long minTimestampSeen = deletionInfo().isLive() ? Long.MAX_VALUE : deletionInfo().minTimestamp();
        long maxTimestampSeen = deletionInfo().maxTimestamp();
        StreamingHistogram tombstones = new StreamingHistogram(SSTable.TOMBSTONE_HISTOGRAM_BIN_SIZE);

        for (IColumn column : columns)
        {
            minTimestampSeen = Math.min(minTimestampSeen, column.minTimestamp());
            maxTimestampSeen = Math.max(maxTimestampSeen, column.maxTimestamp());
            int deletionTime = column.getLocalDeletionTime();
            if (deletionTime < Integer.MAX_VALUE)
                tombstones.update(deletionTime);
        }
        return new ColumnStats(getColumnCount(), minTimestampSeen, maxTimestampSeen, tombstones);
    }
}

redpajama_set_name: RedPajamaGithub


We grow asparagus and a great variety of top fruit (apples, pears), stone fruit (plums, cherries, greengages), and soft fruit (strawberries, raspberries).
The fruit is available, subject to seasonal availability, from our farm shop, at farmers' markets and PYO.
We're most well known as being the home of the Harwell Cherry.
Our farm shop also has a large butchery area stocking our own beef & lamb, and locally produced pork & game. Call in for a scoop or two of our homemade ice cream!
The farm shop is open seven days a week.


'After two years and 238 deaths at the hands of Islamic terrorism, what did France do to defeat radical Islam? Almost nothing.
If Emmanuel Macron wins, France as we have known it can be considered pretty much over. By blaming "colonialism" for French troubles in the Arab world, and calling it "a crime against humanity", he has effectively legitimized Muslim extremist violence against the French Republic.
So much for 'Vive la France'!
THE PARIS OF NSW AUSTRALIA?
What took place in Paris may be the future for rural New South Wales, Australia. Foolish talk? Well, perhaps not as; "THE sleepy rural town of Young in the cherry-picking heart of NSW has undergone a radical transformation.
It is now the unofficial Muslim capital of the outback.
Arabic is the second-most common language in Young, about 150km northwest of Canberra, which has a population of 400 Muslims.
"Philippe Verdier, a household name in France and their top weatherman is fired as he publishes a book skeptical of the global warming alarm.
Just two months before global warming alarmists gather for their talk-fest, COP21 is held in Paris, the country's best-known weatherman slams the CO2 alarm as fraudulent.
You, president of the Republic, you cannot support the ultra-politicized scientists of the GEIC, the corporate lobbyists, the NGO environmental groups, nor the self-proclaimed apostles of the new religion of climate.
We are hostage to the planetary scandal of global warming — a war-machine designed to keep us afraid. At its heart, it's a science manipulated and politicized, of conflict of interest, of corruption, of sexual scandal, then the politics, which serves nothing but their image and their thirst for power.
The media, weakened [or blinded], loses control of itself and engages in censorship due to pressure by shareholders and advertisers.
Verdier was inspired to write his book out of disgust at the actions of his foreign minister Laurent Fabius, who last year summoned France's weathermen and asked them to mention "climate chaos" in their forecasts.


text:
Delegation of the European Union to Zambia and COMESA
https://www.youtube.com/channel/UCyDVVvQd9ORhb-RmbtU7wiQ
https://www.flickr.com/photos/eudzambia/
https://www.facebook.com/EUDelZambia
EU Delegation to Zambia - Newsletter
EEAS homepage > Zambia > Search
News, Press Material, Events
Countries Afghanistan (32) Albania (29) Algeria (35) Angola (41) Antigua and Barbuda (34) Argentina (34) Armenia (30) Australia (33) Azerbaijan (30) Bahamas (34) Bahrain (33) Bangladesh (32) Barbados (34) Belarus (30) Belize (34) Benin (40) Bermuda (17) Bhutan (32) Bolivia (34) Bosnia and Herzegovina (23) Botswana (41) Brazil (34) Brunei Darussalam (33) Burkina Faso (40) Burundi (40) Cabo Verde (40) Cambodia (32) Cameroon (40) Canada (33) Central African Republic (40) Chile (34) China (32) Colombia (34) Comoros (40) Congo (Brazzaville) (40) Cook Islands (34) Costa Rica (34) Cuba (35) Côte d'Ivoire (40) DR Congo (Kinshasa) (41) Djibouti (40) Dominica (34) Dominican Republic (34) Ecuador (34) Egypt (35) El Salvador (34) Equatorial Guinea (40) Eritrea (40) Eswatini (41) Ethiopia (39) Faroe Islands (6) Fiji (34) Gabon (40) Gambia (40) Georgia (30) Ghana (40) Grenada (34) Guatemala (34) Guinea (41) Guinea-Bissau (40) Guyana (34) Haiti (34) Honduras (34) Hong Kong (32) Iceland (30) India (32) Indonesia (34) Iran (33) Iraq (32) Israel (34) Jamaica (34) Japan (34) Jordan (33) Kazakhstan (30) Kenya (40) Kiribati (34) Kosovo* (30) Kuwait (32) Kyrgyz Republic (30) Lao PDR (32) Lebanon (33) Lesotho (41) Liberia (41) Libya (34) Macao (32) Madagascar (41) Malawi (40) Malaysia (32) Maldives (32) Mali (40) Marshall Islands (34) Mauritania (40) Mauritius (42) Mayotte (39) Mexico (34) Micronesia (34) Moldova (30) Mongolia (32) Montenegro (23) Morocco (34) Mozambique (41) Myanmar (Burma) (32) Namibia (41) Nauru (34) Nepal (32) New Zealand (33) Nicaragua (34) Niger (40) Nigeria (40) Niue (34) Norway (30) Oman (32) Pakistan (32) Palau (34) Palestine (*) - Occupied Palestinian Territory, West Bank and Gaza Strip (33) Panama (34) Papua New Guinea (33) Paraguay (34) Peru (34) Philippines (32) Qatar (32) Republic of North Macedonia (30) Russia (28) Rwanda (39) Saint-Kitts and Nevis (34) Saint-Lucia (34) Samoa (34) Sao Tome and Principe (40) Saudi Arabia (32) Senegal (40) Serbia (30) Seychelles (41) Sierra Leone (40) Singapore (32) Solomon Islands (17) Somalia (40) South Africa (41) South Korea (32) South Sudan (40) Sri Lanka (32) Sudan (40) Suriname (34) Switzerland (30) Syria (33) Taiwan (33) Tajikistan (30) Tanzania (42) Tchad (40) Thailand (32) Timor-Leste (34) Togo (40) Tonga (34) Trinidad and Tobago (33) Tunisia (35) Turkey (32) Turkmenistan (30) Tuvalu (34) Uganda (40) Ukraine (30) United Arab Emirates (32) United Kingdom (1) United States of America (33) Uruguay (34) Uzbekistan (30) Vanuatu (26) Vatican City and the Holy See (23) Venezuela (34) Vietnam (32) Yemen (33) Zimbabwe (41)
Topics Common Foreign & Security Policy (CFSP) (3) Counter-Terrorism (2) Countering disinformation (2) Crisis Response (2) Culture (1) EU Global Strategy (1) EU International Cyberspace Policy (1) EU information in Russian (15) Education (1) Election observation missions (EUEOMs) (7) Energy Diplomacy (1) Global Tech Panel (1) Human Rights & Democracy (21) Humanitarian & Emergency Response (2) Military and civilian missions and operations (1) Multilateral Relations (2) Refugee protection & Migration (6) Trade (1)
Organisations African Union (AU) (11) African, Caribbean and Pacific Group of States (ACP) (5) Andean Community (2) Asia-Europe Meeting (ASEM) (2) Association of Southeast Asian Nations (ASEAN) (9) Central American Integration System (SICA) (2) Common market for eastern and southern Africa (COMESA) (6) Communauté Économique des États de l'Afrique Central (CEEAC) (4) Council of Europe (4) Economic Community of West African States (ECOWAS) (5) European Economic Area (EEA) (2) Foreign Affairs Council (2) Gulf Cooperation Council (GCC) (4) Indian Ocean Commission (2) Intergovernmental Authority on Development (IGAD) (3) League of Arab States (LAS) (2) Order of Malta (2) Organisation for Economic Co-operation and Development (OECD) (2) Organisation for Security&Co-operation in Europe (OSCE) (3) Organisation of Eastern Caribbean States (OECS) (2) Organisation of Islamic Cooperation (OIC) (2) South Asian Association for Regional Co-operation (SAARC) (2) Southern African Development Community (SADC) (4) UN Geneva (14) UN New York (14) UNESCO (3) Union for the Mediterranean (UfM) (3) World Trade Organization (WTO) (4)
Election observation missions EOM Zambia 2016 (3)
Select... #EU4HumanRights (1) #EUBeachCleanup (1) Climate (1) EUROPE DAY 2019 (1) HRC 37 (1) Human Rights Council (1) Peace (1) Security (1) World Refugee Day (1) refugees (1)
Performances (1) Apply Performances filter
EU Financed Projects (1) Apply EU Financed Projects filter
Editorial team... EEAS Press Team (23) Election Observation Mission to Zambia (7) Press and information team of the Delegation to ZAMBIA (57) Press and information team of the Delegation to the African Union (1) Press and information team of the Delegation to the UN in Geneva (1) Strategic Communications (22)
From Vision to Action: The EU Global Strategy in Practice- Three years on, looking forward
The third progress report on the implementation of the European Union Global Strategy, "The EU Global Strategy in Practice- Three years on, looking forward" looks at the progress achieved over the past three years, since the presentation of the Global Strategy in June 2016, in five priority areas-
EU's Annual Report on Human Rights and Democracy 2018 | Zambia Update
Human rights are at the heart of the European Union's external action and the EU reaffirms its role as a leading global proponent of the promotion and protection of human rights. On 13 May 2019, the Foreign Affairs Council adopted the EU's annual report on human rights and democracy in the
Author: Press and information team of the Delegation to ZAMBIA - Publication date: 16/05/2019
Lusaka Schuman Trophy 2019
Another sporty week-end took place in the framework of the EU Month in Zambia! The Lusaka Schuman Trophy Football Tournament gathered 11 mixed-gender teams on Sunday 12 May 2019 for a social fun event. There were winners, losers, injuries, penalties, but most of all there were laugh and team spirit
Euro-Zambia Art Festival 2019
The Euro Zambia Art Festival is about bringing people together through arts. With 3 days full of theater, music, circus and visual arts this festival should not be missed! And best of all: All events are FREE! Date: Friday, 17 May, 2019 Event category: Performances Main Image: /file/leafletjpg
Various locations, Lusaka, Lusaka, Zambia
Author: Press and information team of the Delegation to ZAMBIA
Programme of EU Month 2019 in Zambia
/file/eumonth2019programmepng_eneu_month_2019_programme.png Date: Thursday, 9 May, 2019 Event category: Other Tags: EUROPE DAY 2019 Organiser: EU Delegation / Mission Regions: Zambia Show left menu: Editorial Sections: Zambia Related category: Zambia
Various places in Lusaka, Lusaka, Zambia
The Factsheet 2018/2019 of the EU-Zambia Development Partnership is out!
/file/factsheet2019finalpdf_enfactsheet_2019_final.pdf factsheet_2019_final.pdf Post Category: News stories Show left menu: Main Image: /file/coverpagefactsheet2019jpg_encoverpage_factsheet2019.jpg Regions: Zambia Editorial Sections: Zambia
Declaration by the High Representative, Federica Mogherini, on behalf of the European Union on the occasion of the World Press Freedom Day, 3 May 2019
ENERGY & GENDER WORKSHOP- 4 April 2019, Lusaka
The Ministry of Energy with the support of the European Union funded project "Increased Access to Electricity and Renewable Energy Production" (IAEREP) will be hosting an Energy & Gender workshop scheduled for 4th March, 2019 from 8:30- 16:30 at the New Government Complex Lusaka
tbc to registered participants, Lusaka, Lusaka, Zambia
Practical Guide Workshop on Mini-Grid Regulations in Zambia- 6 March 2019, Lusaka
The Government of the Republic of Zambia (GRZ) with the support of the European Union (EU) is implementing an "Increased Access to Electricity and Renewable Energy Production" project (IAEREP). The overall objective of the project is to increase access to clean, reliable and affordable energy and
Energy Regulation Board, Plot No 9330, Off Alick Nkhata Road, Mass Media, Lusaka, Zambia
EU commits €10million to support private sector in COMESA
Today, the European Union signed a Financing Agreement for the Regional Enterprise Competitiveness and Access to Markets Programme (RECAMP) with COMESA amounting to 10 M EUR. The programme aims to improve competitiveness and market access of SMEs and other private sector players in selected value
4899 Los Angeles Boulevard, Longacres
Telephone: +260 (0) 211.25.55.83
Fax: +260 (0) 211.25.23.36
delegation-zambia@eeas.europa.eu


The Bombora diving board's sleek appearance and strong construction make it our best selling model! The Bombora is available in white or pewter gray to blend into your backyard decor. The durable, scratch-resistant acrylic ensures that you will get years of use out of your board. Each diving board features a high-grade, slip resistant sand tread for maximum safety, and comes with an instructional diving video to promote safety when diving in your pool.


Magic Cake – one simple thin batter, bake it and voila! You end up with a 3 layer cake, magic cake.
Preheat oven to 325 F degrees. Grease a 8 inch x 8 inch baking dish or line it with parchment paper so that it's easier to get the cake out.
Separate the eggs and beat the egg yolks with the sugar until light and fluffy. Add butter and vanilla extract and continue beating for another minute or two after which you can add the flour and mix it in until fully incorporated.
Add the egg whites to a mixer and mix until stiff peaks form.
Add the egg whites to the cake batter and gently fold them in. Another variation to folding in the egg whites would be to whisk them in to the cake batter, this is a lot faster and easier. Make sure you don't fold the egg whites in completely, you still want to see some of the white bits floating at the top.
* To get the milk lukewarm I usually warm it in the microwave for about a minute.


text:
Q: Bootstrap data-toggle doesn't work with ember component I have a jquery plugin that creates following html

    Select Gigs

        <input type="text" class="input-text-field margin-medium-bottom" placeholder="Search" />

...... and some other divs here .....

I want to toggle div with id collapse2 when click on  above it. It works fine if I add the html inside hbs file. But when I create above html inside jquery and insert into the DOM as follows it change the url to domain/#collapse2
    _initializeAutoComplete: function () {
        Ember.$('#' + this.get('divId')).setAutocomplete({
            data: this.get('dataTree'),
            multiSelect: true,
            selectingType: 3
        });

    }.on('didInsertElement')
});

How can I make the toggling work without ember going to href as a url change?
Appreciate any help.

A: Move the bootstrap attributes to the div above (or h4 or create new as your need)

    Select Gigs


text:
After the State of the Union, Divisions Remain
In his first proper State of the Union Address, President Donald Trump set out to strike a more unifying tone. And in this, he was reasonably successful. But, one speech will not erase the depth of the country's political divisions. Tough partisan battles still lie ahead.
"It is the people who are making America great again," President Trump said as he wound down his address. The line provided a pretty good summation of a speech in which President Trump's policies were explained through people.
Families of victims of MS-13 gang violence and law enforcement officers illustrated security concerns about illegal immigration. The parents of Otto Warmbier, an American student who died after being detained in North Korea, and Ji Seong Ho, a North Korean defector who defiantly lifted his crutches into the air, personified the menace and the brutality of the regime in Pyongyang. The President's economic policies were presented through the lens of a welder and small business owners who will benefit from the President's tax cuts. The founder of the Cajun Navy, an organization that saved countless lives in the aftermath of Hurricane Harvey, a wounded Marine, and a police officer from New Mexico that adopted the baby of an opioid addict were among a showcase of inspiring heroes Trump highlighted.
The tone Tuesday night was a striking departure from Trump's 2016 speech at the Republican National Convention in which he declared, "I alone can fix it." The shift reflects a reality that has been a defining struggle of Trump's first year in office. For all the power of the Presidency, little of consequence can be accomplished alone.
The Partisan Divide Persists
Polite applause from Democrats Tuesday night should not be mistaken for the dawn of an era of good feelings. The country, and its capital, remain deeply polarized.
If the tone struck Tuesday night reflects a new leaf the President has turned over, it is a positive development for which the President can expect to be rewarded with rising approval ratings and accompanying political clout.
But, the State of the Union is a carefully stage-managed affair insulated from the rough and tumble day-to-day of partisan Washington. It's one thing to join together to honor a firefighter who saved dozens of kids trapped at a summer camp. It's quite another to strike a deal on immigration reform. Polite applause from Democrats Tuesday night should not be mistaken for the dawn of an era of good feelings. The country, and its capital, remain deeply polarized.
On Christmas 1914, the rifles and artillery of the First World War fell silent and Christmas carols were sung across the trenches between enemies in an inspiring moment of shared humanity. But, the truce was short-lived. The brutality of the war returned soon after. To the extent Trump's State of the Union address inspired a bit of bipartisan comity, like the Christmas truce of 1914, it will prove a brief respite to Washington's partisan trench warfare.
Zero-Sum Politics
The political realities of the Trump era leave little room for bipartisan common ground. Donald Trump's rise to power was underpinned by the idea that Democrats and establishment Republicans who oppose Trump do so because they are malevolently corrupt. As such, they are enemies to be vanquished, not negotiating partners. Among the Democratic Party base, Trump is a malignant threat to Democracy. Among liberals, there is no greater sin than to be seen as "normalizing" Trump. The result is a zero-sum game in which the only acceptable political outcome for either side is a defeat for the other.
With another government shutdown deadline looming next week, the pressure is on to resolve the impasse over immigration. Trump's State of the Union was carefully crafted to reassure the President's base of his commitment stemming illegal immigration while avoiding unnecessarily antagonizing the Senate Democrats he will need to strike a deal. But, any deal will likely involve some political pain for both parties.
Trump bought himself some room to maneuver Tuesday night. Sustaining it will require a substantial degree of discipline. Last year, the afterglow of Trump's well-received address to a joint session of Congress was extinguished by Trump's unfounded accusations that his predecessor, Barack Obama, tapped his phones. The coming days are sure to bring frustrations for Trump that will tempt a tweeted response that could send things spiraling. How much President Trump gains from Tuesday night's speech will depend mightily on whether he can just let it go.
Taylor Griffin - September 23, 2019 0
READ: Mueller's Letter to Attorney General Barr
Taylor Griffin - May 1, 2019 0
Mueller's letter to Barr In late March, Special Counsel Robert Mueller sent a letter to Attorney General William Barr expressing concern about Mr. Barr's letter...
Evaluating Claims About Drug Seizures at the Border
Taylor Griffin - March 11, 2019 0
The amount of drugs seized between legal points of entry has become a key point in the debate over President Trump's proposed border wall....
The National Debt in Five Charts
The national debt is unimaginably large and it is growing larger. The costs of caring for an aging population are driving unsustainable budget deficits...
Mark Harris Calls for New NC09 Election
UPDATE: On Thursday, the North Carolina State Board of Election ordered a new election in the Ninth Congressional District. The vote was unanimous. The...


text:
Home Web Programming Tutorials What Makes Node.js so Important?
Node.js is a platform built on Chrome's JavaScript runtime for easily building fast and scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
That is the definition of Node which is given by the official website. But the definition does not even begin to cover its advantages and the importance it holds for developers worldwide.
This server-side platform was built by Ryan Dahl in 2009. The software is designed to allow the creation of web servers and networking tools with the use of JavaScript and a collection of modules, capable of handling a sundry of core functionalities. The modules of Node.js reduces the complications of writing server applications by using its API. The software is supported on macOS, Windows 7 and Linux. It is primarily used to build network programs. Node.js is given the utmost importance in the era of the responsive web.
In a little over a decade, the software managed to attract huge companies to give it a try. Some of these names include Groupon, Netflix, LinkedIn, IBM, Voxer, SAP, Paypal, Walmart, and many more. This just goes to show the trust people have in this equipment.
Netflix is one of the biggest companies that use Node.js because according to them, it reduces the build time and allows for user customization. So much is the success with Node.js that now they are planning to move data access layers to it.
PayPal is another financial firm that has a lot to think about before using any new technology or software. But with a user base of 267 million active users and with millions of transactions taking place every day, the company finds a safe haven in Node.js. It is because ever since the implementation of the software; the tasks are handled more seamlessly than ever before. Also, because of Node.js, developers have started using JavaScript as their default language.
If you want to become a fully certified Node.js developer in no time, try the "Elite NodeJS Course – Become Certified NodeJS Developer" online course. It comes with 5 hours of video and covers 11 main sections of the course. It includes the installation of Node.js, Node essentials, Node intermediate, Node.js web server, SocketIO, pug and much more.
Now let us have a look at why Node.js is being valued so much by today's web developers.
Google V8 JavaScript Engine
Unlike most JavaScript interpreters, the Google V8 JavaScript engine compiles the JavaScript code into native machine code. Consequently, this has an effect on the runtime environment in boosting the performance of the web-server. The performance is enhanced however by executing the JavaScript code in a more efficient way.
Various IDEs
There are many IDEs available for Node.js applications. There is no lack of frameworks and IDEs for this software. An IDE or an Integrated Development Environment is a software application that provides many facilities to the developer during the stages of software development. To be called an IDE, they need to have at least a code-editor and a debugger.
Robust Tools
Developers can take the help of package managers like npm. The advantages of npm include it being robust, consistent and fast. But it also simplifies the process of installing and specifying project dependencies. While doing them all, it still keeps the project dependencies separate to eliminate the chances of version conflict.
I/O Operations Made Asynchronous
All I/O operations are performed by Node.js in an asynchronous fashion. This occurs by sending the asynchronous task to the event loop along with the call-back function. Once this event has taken place, the application continues executing the remainder of the code. The loop also returns to the task and executes the callback function.
Single CodeBase
Node.js allows the developers to use JavaScript for writing both client-side and server-side code. So, a programmer can use JavaScript for creating the front-end and back-end of a web application. SO, the entire program can be built with the use of the most popular language in the world. Maintaining updates also become a lot more easy because of the single code base.
So, Node.js is an excellent tool in removing the gap that continues to be between front-end and back-end creations. This saves a lot of time as well as costs, as hiring people to work for either of the two sides of an application would be an expensive affair.
Option for File Streaming
Because of the efficient I/O streaming, the time taken to stream a file in the file system is reduced. Instead, they can use that runtime to read or write streams to both the HTTP and Web sockets. They can lower the overall audio or video processing time in numerous ways.
The software is powered by a supportive community. There are millions in these communities who solve queries and explain the solutions to any issue pertaining to Node.js. Also, if you feel like you are stuck in a problem, there will always be someone you can approach for help. Chances are they too faced a similar problem during their start in Node.js.
Easy Scalability
You are free to scale the applications made by Node.js in both horizontal and vertical ways. By adding extra nodes to the existing system, you can scale it in a horizontal manner. The same can also be done in a vertical fashion.
When you are on the receiving end of so many benefits, the cherry on the cake has to be the cost savings! Node.js is open-source software, which means you can use this software without having to make any form of payment. The software is being updated by the powerful community behind it.
As more and more companies are taking a closer look at Node.js and its features, the job opportunities in this field are on the rise. This is why perhaps there are so many people now learning the use of Node.js to further their careers.
Let us know if you can think of any other benefit that should be inclusive of the list that contributes to the importance of Node.js in the comments below.
Previous articleCheckout These Front-End Web Development Tools for 2019!
Next articleWhat Artificial Intelligence Can Really Do for Us?
Checkout These Front-End Web Development Tools for 2019!


text:
\section{Introduction}
A coordinated movement of a formations of vehicles, known as \textit{platooning}, is one prospective application of the emerging autonomous driving technology, where a group of self-driving cars and/or trucks forms a convoy, that is led by a lead vehicle \cite{LPT+16}. For safety operations of autonomous driving, \textit{e.g.}~using the Cooperative Adaptive Cruise Control (CACC) \cite{Raj2000}, wireless communications between vehicles can be used to exchange control information within the platoon.

From the perspective of data exchange within the vehicular network, such as within a platoon formation, it can be realize it using short-range wireless communication schemes, such as Dedicated Short-Range Communications (DSRC). However, various studies have show that solutions based on the IEEE 802.11p and Wireless Access in Vehicular Environment (WAVE) standards are susceptible to medium congestion when the number of communicating cars is large \cite{REDDY18,VUK2018} . An alternative approach to remedy this issue is to offload traffic to other frequency bands, such as underutilized television channels (known as TV White Spaces (TVWS) \cite{Harrison_2010,Beek_2012}); this  concept is referred to as Vehicular Dynamic Spectrum Access (VDSA) \cite{Chen_2011,Chen_2012}. Fixed locations and relatively stable transmission parameters of Digital Terrestrial Television (DTT) transmitters provide attractive spectrum opportunities in TVWS that can be reused for vehicular communications.
In order to employ the VDSA framework for Vehicle-to-Vehicle (V2V) networks, the allocation of channels to the primary users (\textit{i.e.} DTT transmitters) and the associated power levels for the areas of interest should be known. This can be achieved using infrastructure support such as dedicated databases, although, in some areas this might be unavailable. An~alternative approach is to apply VDSA in a distributed manner, where each vehicle or group of vehicles (\textit{e.g.} platoon) selects a transmission channel based on spectrum sensing. This approach has been proposed in \cite{8347136,8690978,8417762}, which relies on the behavioral model of bumblebee foragers to provide efficient channel sensing and selection.

In this paper, we investigate the idea of partial intra-platoon traffic offloading from the Control Channel (CCH) in congested 5.9 GHz band to TVWS using the VDSA framework. To enable channel sensing and selection We adopt the Bumblebee-based algorithm from \cite{8347136,8690978,8417762} to dynamically select the transmission channel in TVWS in a distributed manner. We assume that all platoon vehicle perform spectrum sensing and share the results with the platoon leader,which is responsible for the selection of the transmission band. Furthermore, we evaluate the proposed distributed VDSA framework using computer simulations aided with realistic DTT signal power obtained with the measurements described in \cite{VTC_DSA}.

The rest of this paper is organized as follows: in Section {II}, we introduce the system model used in this work. Section {III} presents the several aspects invoking DTT signal power and interference modelling. Section {IV} describes the details of the adapted Bumblebee-based decision making process to the platooning scenario. Section {V} presents the achieved simulation results with applied distributed VDSA, and Section {VI} concludes the paper.

\section{System Model}
In this work. we consider a motorway scenario such as the one presented in Fig. \ref{fig_scenario}, where multiple platoons of cars travel among other vehicles. The platooning vehicles are assumed to be autonomous with their mobility controlled using the CACC algorithm proposed in \cite{Raj2000}.\\

\vspace{-11mm}

\begin{figure}[htbp]
\centerline{\includegraphics[width=0.5\textwidth]{figures/scenario.eps}}
\caption{Investigated 4-lane motorway scenario with two platoons (marked with red ellipses) and the DTT receivers' locations (building symbols on both sides of the motorway). The platoons  move in opposite directions bypassing each other in the middle section of the motorway.}
\label{fig_scenario}
\end{figure}
To obtain a straightforward analysis and without loss of generality, we consider only two platoons moving in the opposite directions and located on the outer lanes of the 4-lane motorway. The behavior of each platoon is affected by a preceding car that periodically decreases its velocity from 130 km/h to 100 km/h and then accelerates back to 130 km/h with a period equal to 30 s. On the inner lanes of the motorway, additional non-platooning vehicles are randomly deployed with a density of 20 cars/km/lane.

We assume that all vehicles are using wireless communications based on the IEEE 802.11p standard \cite{IEEE80211} to disseminate Cooperative Awareness Messages (CAMs) that contain information on selected mobility-related parameters. Wireless communications is also employed to facilitate platooning using CACC, with every vehicle receiving the required mobility information from the preceding car and from the platoon leader. Communications between non-platoon vehicles using CAMs, which is transmitted with a frequency of 10 Hz, is realized in the CCH at 5.9 GHz. For platooning vehicles that transmit CAMs with a frequency of 5 Hz, additional dedicated CACC messages are sent using the TVWS frequency bands. The CACC transmission interval is set to 200 ms, such that the combined CAM+CACC messaging frequency is equal to 10 Hz. Simultaneous operations in two different frequency bands is achieved with the use of dual-band transceivers.

In this work, we employ a VDSA algorithm described in Section \ref{sec:bumblebee} in order to support the intra-platoon communications such that the Signal-to-Interference-and-Noise Ratio (SINR) of the V2V transmission is maximized. Given the distributed approach under investigation, the selection of transmission frequency in the TVWS band will rely on the sensing of the bands under consideration. Energy sensing has been employed for all DTT channels considered for reuse, with the procedure of sensing the particular bands distributed across all platoon vehicles. We assume the results of the channel sensing operation are then transmitted to the platoon leader, which is responsible for selecting the band for intra-platoon transmission.

To investigate the impact of VDSA in TVWS  we consider the presence of DTT receivers near the motorway that need to be protected. These are located in longitudinal positions and distances to motorway, as indicated in Table \ref{tab_DTTpos}.
\begin{table}[htbp]
\caption{DTT receivers' positions used in the considered scenario as the protected locations of the primary users.}
\label{tab_DTTpos}
\begin{tabular}{|c|c|c|c|}
\hline
 DTT Rx id & long. position [m] & dist. to motorway [m] & Group \\
 \hline
 1 & 240 & 120 & 1 \\
 \hline
 2 & 4520 & 164 & 3 \\
 \hline
 3 & 4320 & 244 & 3 \\
 \hline
 4 & 320 & 45 & 1 \\
 \hline
 5 & 1687 & 80 & 2 \\
 \hline
 6 & 4112 & 304 & 3 \\
 \hline
 7 & 632 & 140 & 1 \\
 \hline
 8 & 485 & 270 & 1 \\
 \hline
 9 & 1463 & 154 & 2 \\
 \hline
 10 & 2087 & 127 & 2 \\
 \hline
\end{tabular}
\end{table}

\section{DTT signal power modeling}
\label{sec:DTT}
In order to reliably evaluate the proposed VDSA spectrum allocation mechanism, a test data set is required. A DTT received power measurement campaign was conducted for a TV band (470 MHz - 692~MHz), with the details of the measurements described in \cite{VTC_DSA}. The resulting models of measured Digital Video Broadcasting - Terrestrial (DVB-T) signal power in two channels (490 MHz and 522MHz) versus the route distance are shown in Fig.~\ref{fig_rec_power}. Additionally, the DVB-T reception threshold of -78.75 dBm was determined to be the minimum DTT received power allowing for successful TV program reception in a thermal noise-limited environment, as explained in \cite{VTC_DSA}. Only these two channels contained DTT signal exceeding test receiver noise floor.
\begin{figure}[htbp]
\centerline{\includegraphics[width=0.5\textwidth]{figures/rec_power_490_522_nobold.eps}}
\caption{Received DVB-T signal power along the route at channel 23 and 27; solid horizontal line represents the minimum required DVB-T reception threshold.}
\label{fig_rec_power}
\end{figure}
In order to reduce the burden of storing the raw measurement results, as well as to capture possible variations caused by shadowing, we divided the measured samples into segments depending on location. For each segment, linear approximations using a~least squares approach are employed. The resulting curves are shown in Fig.~\ref{fig_rec_power}. In the simulator, the sensed DTT received power is modeled using these linear functions along with a log-normal shadowing random variable added. The standard deviation of shadowing was estimated for each measurements segment separately, with its value varying from 1.5~dB to 4.5~dB.

Even though the considered band contains non-negligible DTT signals only in two DTT channels, their influence on the adjacent band should be modeled considering the out-of-band DTT transmitters leakage (modeled typically by Adjacent Channel Leakage Ratio - ACLR) and imperfect DSRC receiver selectivity (modeled typically by Adjacent Channel Selectivity - ACS). These two effects combined, describing the transmitter-receiver interference coupling, are characterized by an Adjacent Channel Interference Ratio (ACIR) that is characteristic for a given frequency offset between both systems. Therefore, in the scenario under consideration, the effective power of the DTT signals, \textit{e.g.}, observed by Bumblebee algorithm energy detector, in each of the considered DTT channels is calculated as a sum of the power values of the DTT signals in a given location scaled by the proper ACIR values. Modeling of the ACIR between DSRC and DVB-T systems has been described in \cite{VTC_DSA}.

\section{Distributed VDSA based on bumblebee behavioral model}
\label{sec:bumblebee}

Given the highly stochastic time-varying channel environment associated with vehicular communications  our proposed distributed VDSA framework employs a Bumblebee-based VDSA algorithm~\cite{8347136,8690978,8417762} for the purpose of independent decision-making such that it can enable vehicle-to-vehicle (V2V) communication links with minimal latency and be robust to rapidly changing operating conditions. In this paper, the Bumblebee-based algorithm is integrated with a realistic IEEE 802.11p simulator and evaluated with respect to its feasibility as a distributed VDSA mechanism for platooning support.

\begin{algorithm}[!ht]
\caption{Bumblebee-based VDSA Algorithm}
\label{algo}
\begin{algorithmic}[1]
\Procedure {BumblebeeDSAAlgorithm}{$Ch$, $\mathbf{T}$, $C$, $S$}
\Initialize{Set the \textbf{Radio:1} channel to the initial DTT band $Ch$}
\vspace{0.4em}
\State \textbf{Channel selection interval} ($1000$ ms):
\For{each 200 ms interval}
\State \textbf{Sensing interval} (150 ms):
\State Select the sensed DTT channel for each vehicle
\State Sense the selected DTT bands
\State \textbf{Transmission interval} (50 ms):
\State Switch to current transmission channel $Ch$
\State Perform intra-platoon communication and sensing in $Ch$ for 50 ms
\EndFor
\For{each sensed DTT channel $i$}
\State Calculate the average sensed energy $E_i$ in $i$
\If {$E_{Ch} > (E_{i} - C)  \And   E_{i} \leq \mathbf{T}$ }
\State Switch to new channel: $Ch \leftarrow i$
\Else
\State Keep using same channel $Ch$
\EndIf
\EndFor
\State Configure \textbf{Radio:1} with selected channel $Ch$
\EndProcedure
\end{algorithmic}
\end{algorithm}

Algorithm~\ref{algo} describes the Bumblebee VDSA algorithm employed in a dual-transceiver IEEE 802.11p communications network. In this work, we have setup the VDSA framework within the DTT band since the primary users of this band are relatively stable when compared to other wireless frequency bands~\cite{srikanthdsa}. In this framework \texttt{Radio:0} is constantly tuned to the 5.9~GHz CCH channel such that it can transmit and receive CAMs, while \texttt{Radio:1} is working in the DTT band with channel switching employed. We initialized the VDSA model by assigning an arbitrarily selected DTT channel to \texttt{Radio:1}. The~implemented algorithm then periodically selects every second the DTT channel that is the best suited for intra-platoon transmission in terms of the highest expected SINR. Channel selection is based on energy levels detected during the sensing phases. As \texttt{Radio:1} needs to switch between sensing and transmission, this is performed in a cyclical manner, with each 200~ms cycle comprising of a 150~ms sensing period and a 50~ms transmission period. This duty cycle duration was selected in order to comply with the CACC messaging frequency. It should be noted that doing the sensing interval all DTT channels can be sensed by different platoon vehicles, while during the transmission phase only the sensing of currently used transmission channel is possible.

Once the energy values $E$ for all the DTT channels are measured in 5 consecutive cycles, we select the best channel that is characterized by the lowest energy level if the energy does not exceed the threshold value $\mathbf{T}$. An additional cost $C$ is also introduced to reduce the unnecessary channel switching as these can adversely affect the performance due to the need to reconfigure the transceiver. Eq.~\ref{switchDecision} describes the switching decision, where $\bar{E_{Ch}}$ is the mean signal energy for the current channel, and $\bar{E_{i}}$ is the mean energy value of the $i$th channel in the DTT band.

\vspace{-5mm}

\begin{align}
\begin{tabular}{c}
Switching\\ Decision
  \end{tabular}
= \left\{
  \begin{tabular}{l}
 $ \bar{E_{Ch}} \leq (\bar{E_{i}} - C)$, \text{``Stay"} \\
   Otherwise ,\hspace{18pt} \text{``Switch" }
  \end{tabular}
\right.
\label{switchDecision}
\end{align}

Once the new channel is selected, channel switching can be triggered, \textit{i.e.}, \texttt{Radio:1} can switch to the new channel in the DTT band, where the highest SINR is expected. Following this, the procedure is repeated in the next channel selection period.

\section{Simulation Experiments}

The performance of VDSA in TVWS frequencies for intra-platoon communications has been evaluated using system-level simulations of the considered scenario. We used a simulation tool developed in C++, that was calibrated and used also in work described in \cite{VUK2018,Syb19}. The duration of a single simulation represented a platoon traveling the distance of 5 km over a time period of 140~s.
The distributed VDSA framework was applied with 5 adjacent DTT channels included with center frequencies located at 490 MHz, 498 MHz, 506 MHz, 514 MHz, and 522 MHz. Since the IEEE 802.11p standard uses 10 MHz bandwidth and the center frequencies for VDSA transmission are assumed to be equal to the DTT channel frequencies, the signals from neighbouring bands may partially overlap. Moreover, the two edge bands, \textit{i.e.}, at 490 MHz and 522 MHz, are used by DTT transmitters, hence strong inter-system interference is expected, which is described in Section \ref{sec:DTT}

We compared the performance of a Bumblebee-based VDSA framework with the reference system that used transmissions operating only in the 5.9~GHz band and a system utilizing also transmissions in TVWS frequencies but without channel switching (a~fixed channel at 506 MHz was used). For the Bumblebee-based approaches, three switching cost values were considered: 0~dB (no cost), 3 dB, and 6 dB. One should also note that for the TVWS band, the default IEEE 802.11p CSMA sensitivity threshold was increased by 10 dB in order to reduce the impact of transceiver blocking by high DTT power levels.

One important performance indicator for intra-platoon communications is transmission reliability, which can be represented by the ratio of successful receptions to the total number of messages transmitted. It is assumed this indicator should be kept over 99\% to enable safe autonomous platooning. Fulfilling of such requirement, especially in the case of high density traffic on motorways, might not be possible when only CCH is used  \cite{VUK2018}. This is reflected also with the results shown in Fig.~\ref{fig_leaderP}, which presents the successful reception rate of packets transmitted by the platoon leader versus the vehicle position in the platoon. Employing intra-platoon communications in TVWS frequencies with additional CACC packets improves the reception rate, especially for vehicles at the tail of the platoon, what is mainly due to the lower messaging rate of CCH and the higher transmission range in the TVWS. However, the reception probability is almost the same for all transmission configurations using TVWS. The application of the Bubmlebee-based algorithm does improve slightly the reception rate for the vehicles at the tail of the platoon, but the observed difference is marginal. Surprisingly, the best reception rate is observed with the additional cost of 6~dB applied in switching procedure. Hence, one may conclude that high sensitivity to changes in the observed energy results in the selection of poor frequency bands.
\begin{figure}[htbp]
\centerline{\includegraphics[width=0.5\textwidth]{figures/leader_reception.eps}}
\caption{Probability of successful reception of leaders' packets.}
\label{fig_leaderP}
\end{figure}

Besides the reliability requirement, another factor indicating the performance of VDSA is the introduced cost with respect to the need to change the operating frequency for the entire platoon, which requires additional lend of dissemination and coordination effort. Such cost depends on the number of frequency switches performed by each platoon. In this work, we have considered three configurations with different expected rate of switching depending on the selected value of the $C$ parameter in the Bumblebee-based algorithm, with the example of selected frequencies for different configurations shown in Fig.~\ref{fig_switchEx}. It can be observed that when the platoons are sufficiently separated, for both of them the middle frequency band (\textit{i.e.}, 506~MHz) is selected since the interference from the DTT is the lowest. However, when the platoons are closing, their transmission in the same band starts to affect the channel selection procedure and switching starts. Since no coordination between platoons is applied, it is observed that sometimes both platoons select the same band (the one with the lowest energy), which does not improve the performance. It indicates that an additional factor (\textit{e.g.} randomness) could be introduced to improve the channel selection procedure.

\vspace{-5mm}

\begin{figure}[htbp]
\centerline{\includegraphics[width=0.5\textwidth]{figures/switching_example.eps}}
\caption{Example of frequency switching for two platoons moving in opposite directions and different considered switching costs $C$. It can be observed that frequency band switching occurs when the platoons are close to each other in the time interval of 60-80~s. Frequency bands at 490~MHz and 522~MHz are rarely or never selected due to the presence of DVB-T transmissions.}
\label{fig_switchEx}
\end{figure}

The average number of switches, representing the expected additional cost of VDSA, is given in Table \ref{tab_freqSwitch}. The highest rate of changes is observed with the 3~dB cost, although the difference with the case for no switching cost is small and may be caused by chance variations, \textit{e.g.} use of shadowing for DTT. With 6~dB cost, the switching rate is lower with only significant changes in sensed energy having impact on new channel selection.
\begin{table}[htbp]
\centering
\caption{Average number of frequency changes with Bumblebee-based algorithm using different switching costs}
\label{tab_freqSwitch}
\begin{tabular}{|c|c|c|c|}
\hline
Platoon & 0~dB (no cost) & 3~dB cost & 6~dB cost \\
\hline
1 & 3.9 & 4.1 & 3.4 \\
\hline
2 & 4.4 & 4.5 & 3.6 \\
\hline
\end{tabular}
\end{table}

An important aspect of using the TVWS as a secondary system is not to cause the degradation of the DTT service. Therefore, we investigated the Signal-to-Interference (SIR) levels of the DVB-T transmission observed at the locations of the respective DTT receivers as the platoons move across the motorway. According to \cite{DSA_ruler_DTT_2017}, the SIR value of 39.5~dB should be kept in order to provide the required QoS of DTT. Fig.~\ref{fig_dttSIR} presents the empirical cumulative distribution of the SIR values of the primary system obtained in simulations for the protected locations of DVB-T receivers. The results indicate that for every considered strategy, the SIR levels are similar with a slightly better performance achieved using the Bumblebee-based algorithm assuming 6~dB cost. However, for both observed DTT bands, a large number of collected SIR samples is below the required threshold. This indicates that the Bumblebee-based algorithm should be enhanced with the measures to protect the primary users, \textit{e.g.} by modifying the channel switching metric (\ref{switchDecision}). Furthermore, the available spectrum is probably also significantly narrow to effectively mitigate the interference to DTT without any power control applied.

\vspace{-5mm}

\begin{figure}[htbp]
\centerline{\includegraphics[width=0.5\textwidth]{figures/DTT_sir.eps}}
\caption{Cumulative distribution of SIR for the protected DTT receivers.}
\label{fig_dttSIR}
\end{figure}

\section{Conclusions}
This paper presented a distributed VDSA framework for intra-platoon communications. The Bumblebee-based algorithm for dynamic transmission band selection was adopted to work with platoons of vehicles. The simulation results presented in this work indicated that VDSA has potential to improve the reliability of intra-platoon communications. Proposed approach allowed for making independent transmission channel selection by each platoon. However, in order to maximize the outcomes from VDSA and to sufficiently protect the primary users, more aspects have to be taken into account besides the energy analysis. The energy sensing-based optimization might not be the best tool to estimate the impact of transmissions from other platoons utilizing the same band, as with averaging of the measured energy the probability of collision of two or more packets is not considered. Furthermore, an additional cost related to the interference introduced into the primary system should also be considered in the channel switching metric (\ref{switchDecision}). More sophisticated mechanisms can be developed, where channel switching is complemented with a transmit power control to provide additional measure to minimize the introduced interference. Finally, one can consider also an application of some edge intelligence in form of databases that support the decision-making process of platoons with information on the expected DTT power levels or the transmit power constraints for each band.

\bibliographystyle{IEEEtran}

redpajama_set_name: RedPajamaArXiv