text:
package com.sun.jmx.snmp;

import java.net.InetAddress;
import java.io.Serializable;
import java.net.UnknownHostException;
import java.util.StringTokenizer;
import java.util.Arrays;
import java.util.NoSuchElementException;

import com.sun.jmx.snmp.internal.SnmpTools;

/**
 * This class is handling an SnmpEngineId data. It copes with binary as well as String representation of an engine Id. A string format engine is an hex string starting with 0x.
 *
This API is a Sun Microsystems internal API  and is subject
 * to change without notice.

 * @since 1.5
 */
public class SnmpEngineId implements Serializable {
    private static final long serialVersionUID = 5434729655830763317L;

    byte[] engineId = null;
    String hexString = null;
    String humanString = null;
    /**
     * New SnmpEngineId with an hex string value. Can handle engine Id format <host&gt:<port&gt.
     * @param hexString Hexa string.
     */
    SnmpEngineId(String hexString) {
        engineId = SnmpTools.ascii2binary(hexString);
        this.hexString = hexString.toLowerCase();
    }
    /**
     * New SnmpEngineId with a binary value. You can use  SnmpTools  to convert from hex string to binary format.
     * @param bin Binary value
     */
    SnmpEngineId(byte[] bin) {
        engineId = bin;
        hexString = SnmpTools.binary2ascii(bin).toLowerCase();
    }

    /**
     * If a string of the format <address>:<port>:<IANA number> has been provided at creation time, this string is returned.
     * @return The Id as a readable string or null if not provided.
     */
    public String getReadableId() {
        return humanString;
    }

    /**
     * Returns a string format engine Id.
     * @return String format value.
     */
    public String toString() {
        return hexString;
    }
    /**
     * Returns a binary engine Id.
     * @return Binary value.
     */
    public byte[] getBytes() {
        return engineId;
    }

    /**
     * In order to store the string used to create the engineId.
     */
    void setStringValue(String val) {
        humanString = val;
    }

    static void validateId(String str) throws IllegalArgumentException {
        byte[] arr = SnmpTools.ascii2binary(str);
        validateId(arr);
    }

    static void validateId(byte[] arr) throws IllegalArgumentException {

        if(arr.length < 5) throw new IllegalArgumentException("Id size lower than 5 bytes.");
        if(arr.length > 32) throw new IllegalArgumentException("Id size greater than 32 bytes.");

        //octet strings with very first bit = 0 and length != 12 octets
        if( ((arr[0] & 0x80) == 0) && arr.length != 12)
            throw new IllegalArgumentException("Very first bit = 0 and length != 12 octets");

        byte[] zeroedArrays = new byte[arr.length];
        if(Arrays.equals(zeroedArrays, arr)) throw new IllegalArgumentException("Zeroed Id.");
        byte[] FFArrays = new byte[arr.length];
        Arrays.fill(FFArrays, (byte)0xFF);
        if(Arrays.equals(FFArrays, arr)) throw new IllegalArgumentException("0xFF Id.");

    }

    /**
     * Generates an engine Id based on the passed array.
     * @return The created engine Id or null if given arr is null or its length == 0;
     * @exception IllegalArgumentException when:
     *

     *
octet string lower than 5 bytes.

     *
octet string greater than 32 bytes.

     *
octet string = all zeros.

     *
octet string = all 'ff'H.

     *
octet strings with very first bit = 0 and length != 12 octets

     *

     */
    public static SnmpEngineId createEngineId(byte[] arr) throws IllegalArgumentException {
        if( (arr == null) || arr.length == 0) return null;
        validateId(arr);
        return new SnmpEngineId(arr);
    }

    /**
     * Generates an engine Id that is unique to the host the agent is running on. The engine Id unicity is system time based. The creation algorithm uses the SUN Microsystems IANA number (42).
     * @return The generated engine Id.
     */
    public static SnmpEngineId createEngineId() {
        byte[] address = null;
        byte[] engineid = new byte[13];
        int iana = 42;
        long mask = 0xFF;
        long time = System.currentTimeMillis();

        engineid[0] = (byte) ( (iana & 0xFF000000) >> 24 );
        engineid[0] |= 0x80;
        engineid[1] = (byte) ( (iana & 0x00FF0000) >> 16 );
        engineid[2] = (byte) ( (iana & 0x0000FF00) >> 8 );
        engineid[3] = (byte) (iana & 0x000000FF);
        engineid[4] = 0x05;

        engineid[5] =  (byte) ( (time & (mask << 56)) >>> 56 );
        engineid[6] =  (byte) ( (time & (mask << 48) ) >>> 48 );
        engineid[7] =  (byte) ( (time & (mask << 40) ) >>> 40 );
        engineid[8] =  (byte) ( (time & (mask << 32) ) >>> 32 );
        engineid[9] =  (byte) ( (time & (mask << 24) ) >>> 24 );
        engineid[10] = (byte) ( (time & (mask << 16) ) >>> 16 );
        engineid[11] = (byte) ( (time & (mask << 8) ) >>> 8 );
        engineid[12] = (byte) (time & mask);

        return new SnmpEngineId(engineid);
    }

    /**
     * Translates an engine Id in an SnmpOid format. This is useful when dealing with USM MIB indexes.
     * The oid format is : <engine Id length>.<engine Id binary octet1>....<engine Id binary octetn - 1>.<engine Id binary octetn>
     * Eg: "0x8000002a05819dcb6e00001f96" ==> 13.128.0.0.42.5.129.157.203.110.0.0.31.150
     *
     * @return SnmpOid The oid.
     */
    public SnmpOid toOid() {
        long[] oid = new long[engineId.length + 1];
        oid[0] = engineId.length;
        for(int i = 1; i <= engineId.length; i++)
            oid[i] = (long) (engineId[i-1] & 0xFF);
        return new SnmpOid(oid);
    }

   /**
    *
Generates a unique engine Id. Hexadecimal strings as well as a textual description are supported. The textual format is as follow:
    *
  <address>:<port>:<IANA number>

    *
The allowed formats :

    *

    *
 <address>:<port>:<IANA number&gt
    *
   All these parameters are used to generate the Id. WARNING, this method is not compliant with IPv6 address format. Use { @link com.sun.jmx.snmp.SnmpEngineId#createEngineId(java.lang.String,java.lang.String) } instead.

    *
 <address>:<port>
    *
   The IANA number will be the SUN Microsystems one (42).

    *
 address
    *
   The port 161 will be used to generate the Id. IANA number will be the SUN Microsystems one (42).

    *
 :port
    *
   The host to use is localhost. IANA number will be the SUN Microsystems one (42).

    *
 ::<IANA number&gt
    *
   The port 161 and localhost will be used to generate the Id.

    *
 :<port>:<IANA number>
    *
   The host to use is localhost.

    *
 <address>::<IANA number&gt
    *
   The port 161 will be used to generate the Id.

    *
 ::
    *
   The port 161, localhost and the SUN Microsystems IANA number will be used to generate the Id.

    *

    * @exception UnknownHostException if the host name contained in the textual format is unknown.
    * @exception IllegalArgumentException when :
    *

    *
octet string lower than 5 bytes.

    *
octet string greater than 32 bytes.

    *
octet string = all zeros.

    *
octet string = all 'ff'H.

    *
octet strings with very first bit = 0 and length != 12 octets

    *
An IPv6 address format is used in conjonction with the ":" separator

    *

    * @param str The string to parse.
    * @return The generated engine Id or null if the passed string is null.
    *
    */
    public static SnmpEngineId createEngineId(String str)
        throws IllegalArgumentException, UnknownHostException {
        return createEngineId(str, null);
    }

    /**
     * Idem { @link
     * com.sun.jmx.snmp.SnmpEngineId#createEngineId(java.lang.String) }
     * with the ability to provide your own separator. This allows IPv6
     * address format handling (eg: providing @ as separator).
     * @param str The string to parse.
     * @param separator the separator to use. If null is provided, the default
     * separator ":" is used.
     * @return The generated engine Id or null if the passed string is null.
     * @exception UnknownHostException if the host name contained in the
     * textual format is unknown.
     * @exception IllegalArgumentException when :
     *

     *
octet string lower than 5 bytes.

     *
octet string greater than 32 bytes.

     *
octet string = all zeros.

     *
octet string = all 'ff'H.

     *
octet strings with very first bit = 0 and length != 12 octets

     *
An IPv6 address format is used in conjonction with the ":"
     *      separator

     *

     * @since 1.5
     */
    public static SnmpEngineId createEngineId(String str, String separator)
        throws IllegalArgumentException, UnknownHostException {
        if(str == null) return null;

        if(str.startsWith("0x") || str.startsWith("0X")) {
            validateId(str);
            return new SnmpEngineId(str);
        }
        separator = separator == null ? ":" : separator;
        StringTokenizer token = new StringTokenizer(str,
                                                    separator,
                                                    true);

        String address = null;
        String port = null;
        String iana = null;
        int objPort = 161;
        int objIana = 42;
        InetAddress objAddress = null;
        SnmpEngineId eng = null;
        try {
            //Deal with address
            try {
                address = token.nextToken();
            }catch(NoSuchElementException e) {
                throw new IllegalArgumentException("Passed string is invalid : ["+str+"]");
            }
            if(!address.equals(separator)) {
                objAddress = InetAddress.getByName(address);
                try {
                    token.nextToken();
                }catch(NoSuchElementException e) {
                    //No need to go further, no port.
                    eng = SnmpEngineId.createEngineId(objAddress,
                                                      objPort,
                                                      objIana);
                    eng.setStringValue(str);
                    return eng;
                }
            }
            else
                objAddress = InetAddress.getLocalHost();

            //Deal with port
            try {
                port = token.nextToken();
            }catch(NoSuchElementException e) {
                //No need to go further, no port.
                eng = SnmpEngineId.createEngineId(objAddress,
                                                  objPort,
                                                  objIana);
                eng.setStringValue(str);
                return eng;
            }

            if(!port.equals(separator)) {
                objPort = Integer.parseInt(port);
                try {
                    token.nextToken();
                }catch(NoSuchElementException e) {
                    //No need to go further, no iana.
                    eng = SnmpEngineId.createEngineId(objAddress,
                                                      objPort,
                                                      objIana);
                    eng.setStringValue(str);
                    return eng;
                }
            }

            //Deal with iana
            try {
                iana = token.nextToken();
            }catch(NoSuchElementException e) {
                //No need to go further, no port.
                eng = SnmpEngineId.createEngineId(objAddress,
                                                  objPort,
                                                  objIana);
                eng.setStringValue(str);
                return eng;
            }

            if(!iana.equals(separator))
                objIana = Integer.parseInt(iana);

            eng = SnmpEngineId.createEngineId(objAddress,
                                              objPort,
                                              objIana);
            eng.setStringValue(str);

            return eng;

        } catch(Exception e) {
            throw new IllegalArgumentException("Passed string is invalid : ["+str+"]. Check that the used separator ["+ separator + "] is compatible with IPv6 address format.");
        }

    }

    /**
     * Generates a unique engine Id. The engine Id unicity is based on
     * the host IP address and port. The IP address used is the
     * localhost one. The creation algorithm uses the SUN Microsystems IANA
     * number (42).
     * @param port The TCP/IP port the SNMPv3 Adaptor Server is listening to.
     * @return The generated engine Id.
     * @exception UnknownHostException if the local host name
     *            used to calculate the id is unknown.
     */
    public static SnmpEngineId createEngineId(int port)
        throws UnknownHostException {
        int suniana = 42;
        InetAddress address = null;
        address = InetAddress.getLocalHost();
        return createEngineId(address, port, suniana);
    }
    /**
     * Generates a unique engine Id. The engine Id unicity is based on
     * the host IP address and port. The IP address used is the passed
     * one. The creation algorithm uses the SUN Microsystems IANA
     * number (42).
     * @param address The IP address the SNMPv3 Adaptor Server is listening to.
     * @param port The TCP/IP port the SNMPv3 Adaptor Server is listening to.
     * @return The generated engine Id.
     * @exception UnknownHostException. if the provided address is null.
     */
    public static SnmpEngineId createEngineId(InetAddress address, int port)
        throws IllegalArgumentException {
        int suniana = 42;
        if(address == null)
            throw new IllegalArgumentException("InetAddress is null.");
        return createEngineId(address, port, suniana);
    }

    /**
     * Generates a unique engine Id. The engine Id unicity is based on
     * the host IP address and port. The IP address is the localhost one.
     * The creation algorithm uses the passed IANA number.
     * @param port The TCP/IP port the SNMPv3 Adaptor Server is listening to.
     * @param iana Your enterprise IANA number.
     * @exception UnknownHostException if the local host name used to calculate the id is unknown.
     * @return The generated engine Id.
     */
    public static SnmpEngineId createEngineId(int port, int iana) throws UnknownHostException {
        InetAddress address = null;
        address = InetAddress.getLocalHost();
        return createEngineId(address, port, iana);
    }

    /**
     * Generates a unique engine Id. The engine Id unicity is based on the host IP address and port. The IP address is the passed one, it handles IPv4 and IPv6 hosts. The creation algorithm uses the passed IANA number.
     * @param addr The IP address the SNMPv3 Adaptor Server is listening to.
     * @param port The TCP/IP port the SNMPv3 Adaptor Server is listening to.
     * @param iana Your enterprise IANA number.
     * @return The generated engine Id.
     * @exception UnknownHostException if the provided InetAddress  is null.
     */
    public static SnmpEngineId createEngineId(InetAddress addr,
                                              int port,
                                              int iana) {
        if(addr == null) throw new IllegalArgumentException("InetAddress is null.");
        byte[] address = addr.getAddress();
        byte[] engineid = new byte[9 + address.length];
        engineid[0] = (byte) ( (iana & 0xFF000000) >> 24 );
        engineid[0] |= 0x80;
        engineid[1] = (byte) ( (iana & 0x00FF0000) >> 16 );
        engineid[2] = (byte) ( (iana & 0x0000FF00) >> 8 );

engineid[3] = (byte) (iana & 0x000000FF);
        engineid[4] = 0x05;

        if(address.length == 4)
            engineid[4] = 0x01;

        if(address.length == 16)
            engineid[4] = 0x02;

        for(int i = 0; i < address.length; i++) {
            engineid[i + 5] = address[i];
        }

        engineid[5 + address.length] = (byte)  ( (port & 0xFF000000) >> 24 );
        engineid[6 + address.length] = (byte) ( (port & 0x00FF0000) >> 16 );
        engineid[7 + address.length] = (byte) ( (port & 0x0000FF00) >> 8 );
        engineid[8 + address.length] = (byte) (  port & 0x000000FF );

        return new SnmpEngineId(engineid);
    }

     /**
     * Generates an engine Id based on an InetAddress. Handles IPv4 and IPv6 addresses. The creation algorithm uses the passed IANA number.
     * @param iana Your enterprise IANA number.
     * @param addr The IP address the SNMPv3 Adaptor Server is listening to.
     * @return The generated engine Id.
     * @since 1.5
     * @exception UnknownHostException if the provided InetAddress  is null.
     */
    public static SnmpEngineId createEngineId(int iana, InetAddress addr)
    {
        if(addr == null) throw new IllegalArgumentException("InetAddress is null.");
        byte[] address = addr.getAddress();
        byte[] engineid = new byte[5 + address.length];
        engineid[0] = (byte) ( (iana & 0xFF000000) >> 24 );
        engineid[0] |= 0x80;
        engineid[1] = (byte) ( (iana & 0x00FF0000) >> 16 );
        engineid[2] = (byte) ( (iana & 0x0000FF00) >> 8 );

        engineid[3] = (byte) (iana & 0x000000FF);
        if(address.length == 4)
            engineid[4] = 0x01;

        if(address.length == 16)
            engineid[4] = 0x02;

        for(int i = 0; i < address.length; i++) {
            engineid[i + 5] = address[i];
        }

        return new SnmpEngineId(engineid);
    }

    /**
     * Generates an engine Id based on an InetAddress. Handles IPv4 and IPv6
     * addresses. The creation algorithm uses the sun IANA number (42).
     * @param addr The IP address the SNMPv3 Adaptor Server is listening to.
     * @return The generated engine Id.
     * @since 1.5
     * @exception UnknownHostException if the provided
     *            InetAddress is null.
     */
    public static SnmpEngineId createEngineId(InetAddress addr) {
        return createEngineId(42, addr);
    }

    /**
     * Tests SnmpEngineId instance equality. Two SnmpEngineId are equal if they have the same value.
     * @return true if the two SnmpEngineId are equals, false otherwise.
     */
    public boolean equals(Object a) {
        if(!(a instanceof SnmpEngineId) ) return false;
        return hexString.equals(((SnmpEngineId) a).toString());
    }

    public int hashCode() {
        return hexString.hashCode();
    }
}


Previous Post I'm a dog person! and get 20% off on this dress using VELT20 on ivyrevel.com!
Next Post A whole new level.
That sweeter is dope indeed , but it feel more like the eighties. 😉 When i see that sweeter you know what a think ? You really need to find a pair of vintage real leather pants. I think there a lot of second hand leather pants on etsy for exemple. And take advantage of the fact you are both tall and beautiful !


text:
https://sputniknews.com/20200323/davos-town-infested-with-prostitution-and-routine-harassment-report-reveals-1078681030.html
Davos: Town Infested With Prostitution and 'Routine Harassment', Report Reveals
A journalistic investigation has exposed the murky side of the iconic economic gathering, suggesting that while women emotionally speak out against misogyny... 23.03.2020, Sputnik International
https://cdnn1.img.sputniknews.com/img/107611/28/1076112809_0:0:1911:1080_1920x0_80_0_0_fe8462b4dcd67a721b0c65c8acd4552e.jpg
Lilia Dergacheva
https://cdnn1.img.sputniknews.com/img/107611/28/1076112809_0:0:1719:1080_1920x0_80_0_0_b7a568c2aad140d586d3b830393eee4d.jpg
society, news, business, abuse
CC0 / / Woman
All materialsWrite to the author
A journalistic investigation has exposed the murky side of the iconic economic gathering, suggesting that while women emotionally speak out against misogyny during the day, they risk being sexually abused at night.
Top women delegates attending an annual gathering of global leaders in Davos in the Swiss Alps face being "routinely harassed" by wealthy men, The Times has revealed reporting that some businesswomen had even been alerted - for the first time this year - not to venture away from public spots after dark.
An undercover investigation by the British newspaper and Channel 4's Dispatches into this year's gathering has found that not only harassment and sexual abuse are rife in the landmark Swiss village during the annual event, but that there are also sex workers dispatched to the place by their managers to beckon well-off customers.
As an illustration, the newspaper cited an official forum driver as recounting how he gave a lift to a visibly distressed girl who claimed that she had been forced by her "boss" to bed a client who was much older than she had expected. In another case, a woman was reportedly seen twice entering a lavatory cubicle together with a man, while another one called himself later her "manager".
The fact that women delegates at Davos were warned that they faced risks of being subjected to sexual harassment and abuse is "a stark reminder that things have not changed", the report suggests, even though successful women are increasingly invited to the event as a sign of greater diversity, women's empowerment, and social inclusion.
"Davos is supposed to be a gathering of some of the most powerful people on earth, but the evidence of sexual harassment and misogyny shames all who attend and support such behaviour, as is the fact 75 percent of delegates are men", Stella Creasy, Labour MP for Walthamstow called out the gathering's organisers.
This year's annual meeting was held in mid-January, with President Trump and 17-year-old climate "warrior" Greta Thunberg among the 3,000 CEOs, activists, and other dignitaries.
Panels and talks are not typically limited to the premises of the Congress Centre, which officially hosts all formal Davos gatherings, but are scattered all around the place - in the town's hotels, bars and specially converted shops, with the meetings likewise frequented by thousands of unaccredited guests, The Times reported.

redpajama_set_name: RedPajamaCommonCrawl


Heya fuzzbutts, and happy Fursuit Friday!!!!
It has been awhile, but, I wanna welcome you to another Fursuit Friday Feature!
I would have gotten one out much sooner, but, for those of you who follow my YouTube channel, you wil know that my activity all but stopped until recently. My computer has been on the fritz…and while I try and get this issue fixed, well, hopefully this is something to bring a smile to your face because it brought one to mine!
I was approached by a buddy named Togo that said he knew a fursuiter that would like to be interviewed. How could I refuse? I love featuring people in my blog, and I have not been disappointed. Fang and Zaphira are both incredible suits to see, and the stories behind them even more amazing!
But enough rambling, welcome back to Fursuit Friday Feature, and here's to getting to know the personality and these amazing suits!!
4. Fursuit Maker (can include links to shop if you want): I made my suits myself along with one additional one. All three were created in the past 2 years along with plans of making 2 more in the near future. I will be constructing them for my wedding dated for November 10th, 2018.
5. Total Cost (optional)— Fang cost about $200. He is my Jo Anne Fabrics baby. I got their crap, 60% off discounted fur along with discounted foam and discounted hot glue sticks. My mother had some craft supplies that I borrowed and used into the suit. Zaphira was a bit more involving DreamVisonCreations materials such as their large feline resin head blank (c – hinge joints), all the head accessories, and paw shaping materials (claws and palm pads). Also, I used better fur purchased from fabrics.com at $25 per yard. Zaphira came out to be a whopping $1,000. Both look about 250 man hours to make.
6. How long did it take you to get your Fursuit? As stated previously, 250 man hours per suit. As far as months, Fang was about 3 months start to finish. With Zaphira, I took more time on her and she came out about 15 months later.
7. When did you decide that you wanted a Fursuit? I actually knew back around 2011. I started a dragon head using needlepoint mesh after I was in Pittsburgh during Anthrocon. It ended when I went to college and was thrown out in 2015 (wish I didn't). I gave up due to life and lack of interest. Then, months after the dragon was in the garbage (1 month after I took my first job), I was in the city for work and witnessed another Anthrocon! This time, I was able to purchase a day pass for Sunday, dress up in a spandex suit and Halloween wolf mask, passed a ball around with a few welcoming fursuiters, and fell in love. Side story, my fiancé at the time was with me, and that July, I found out she was cheating on me. The second sighting and her betrayal was the life spark for prototype Fang. 3 months later, Fang was fully born as a full suit.
8. Do you go out in public while wearing your suit? Tell us one of your favorite experiences!
Do I?! I live in the wonderful city of Pittsburgh, home to Anthrocon. Once Fang was made, I was out between 2 – 4 weekends a month (including winter). I have ice skated, bar crawled, and toured. I have participated in events like a mascot meet, the Pittsburgh arts festival, animal convention, anime convention, numerous bowling meets, baseball games, and even designed a yearly fursuit Pittsburgh stroll before Anthrocon. Not to mention being at different cons, Niagara Falls, and was offered a job as Fang here in Pittsburgh. My two favorite experiences would be Niagara Falls and Station Square. The falls because even out of the country, the people knew who we were. We were always being photographed, pulled aside to show others, and swarmed to such a point that I was uneasy as to how we could get away. There, Minion and I met up with good friends of ours, Togo and Saphira, that joined us in suiting, as well as Hoopycat that was a major help handling for us. Station Square was my stomping ground. There, I had fans that want every other weekend to meet me. They would always buy me a drink so they could watch me drink in suit. They were fun but not as impactful as the children. They would be by the water fountain and they would play ball with me. The people's reactions watching from the restaurants were hilarious to watch as I pass the Melting Pot and the Grand Concourse. I loved suiting there until security told me to stop. No one was complaining but it was the fact that my head was covered. It is private property so I have respect them.
I have been to Anthrocon x3 (soon 4), WPAFW x2 (soon 3), AnthrOhio, Furpocalypse, and Fur-The-More. I loved AnthrOhio 2016. Alkali was there and made my entire experience. I had watched videos of him before but was never able to meet him in person. He was so approachable, funny, and relaxed the environment. He didn't make himself the center, he was one of us. He was looking to us for the entertainment instead of being the focal point himself which he so easily could have. He was a guest like us and joked with us but brought so much to the table. He is now my idol.
10. How have people reacted to your Fursuit while you are out in Public? On average, people enjoy interacting with me. I would say that 5% ignore me and 1% don't like me wherever I am. I look to make high fives, waves and smiles everywhere I go. I do get an incalculable amount of pictures and the occasional hug from children. I had a kid that was scared of me at first, played fetch with me, followed me for well over an hour, and cried when we had to leave. I love my experiences suiting in public.
11. What was your main goal in getting a suit? Did you have any plans for it or did you just get one for fun? Smiles. Smiles and to brighten everyone's day. I could get into how bad day to day is for everyone and their mother, so I want to be a smile. If I can make someone smile, great. If I can make someone's day, even better. People's happiness is a way that I can be happy. I see the smiles and it is contagious to me and to everyone they meet.
12. How do you act differently in suit VS when you are dressed as you normally would? In suit, I can express myself as I normally would like but often isn't socially acceptable. It normally isn't socially acceptable to kneel down and give a child a hug in the middle of the street. Nor is it to talk threw a modified dog toy squeaker. Not to over express an emotion or heightened energy level. I can't normally boop noses or chase some tail (without my fiancé killing me). I can't say hello to everyone I pass with a smile and wave like greeting friends at the door. And I surely can't spread the laughter and excitement that we all need in our day to day life.
My favorite thing about wearing a fursuit is the ability to be myself and to have fun. I am able to have childish fun because I feel secure behind the mask. This definition of childish fun includes romping around, having massive amounts of energy, and being goofy to random passerbys. Of course, I need to include, all the smiling faces and pictures doesn't hurt or bring me down any. What gets me the most, I guess, living in the city of Pittsburgh, is the level of acceptance both from fellow fursuiters and from muggles. Everywhere I go there is some level of acceptance towards us, just within the city of Pittsburgh, there is more of a craving. Store owners, event managers, even bartenders not only invite us in, but ask if there are others nearby. I guess my favorite thing about wearing a fursuit is wearing a fursuit and being whoever I want to be.
My least favorite thing about wearing a fursuit would be the heat. I try many different ways to keep air ventilation for my suits the highest possible. No matter how many different ways I include, it is me wearing fur material from head to toe. I naturally run a bit warmer than the normal person so staying in suit is difficult especially considering the amount of energy I like to give off while in suit. I try to keep cool with vent holes, fans, and recently an ice vest. My advise is hydration is key and monitor yourself.
15. What advice would you give first-time Fursuiters and those considering getting a Fursuit?
I would say, make sure you clean your suit, make sure you are done growing, and make sure it is what you want. Clean your suits. I use rubbing alcohol spray mixed with some wintergreen alcohol spray. Highest percentage to really clean the suit. I spray it down with a spray bottle and brush it all out after every time I wear a suit. Also, I leave it out to air dry and to not get mold. I keep dryer sheets in the suits as well to keep them dry and smelling nice.
Currently working on 2 new ones. Upgrading my Fang suit.
19. (Final Question): Any extra words of wisdom you would like to add for anyone reading this? [it can literally be about anything]: Have fun, watch who you choose to be friends with, it's a social support group and do what makes you happy.
Thanks to James for the amazing interview!!!
It is true that suits often liberate us from certain constraints. I know that in Rune I feel much more confident, and all I aim to do when wearing him is to bring happiness to others. The smiles and hugs that you get in suit is its own kind of reward that can not be easily explained…and suiting is a journey all in itself.
Whether you make your own or you buy one, there is a process we all go through in getting used to the suit, in judging what things are okay, what is not. It is true, there are things we must be wary about as well. Suiting is fun, but not everyone understands…and it all comes down to respect. There is still a code of conduct we must follow when out in public, and its important to remember that even when we are in a costume playing at fantasy, we are still in reality.
So thanks to James again and thanks to Togo for directing him this way! So awesome to have you both in my blog!!!
Thank you everyone for your continued support! Remember, I am always accepting new people to interview. It doesn't even have to be for Fursuit Friday! Artists, crafters, if it's Furry-related, we can get you featured! Just leave a link to your FA, facebook, or Twitter down below and I will get to you ASAP!


Kaspersky Lab founder and CEO Eugene Kaspersky says he's figured out why the U.S. government hates his company.
The technology, REnigma, allows network defenders to quickly see exactly how an attack unfolded and work out how best to recover, TTP Program Manager Nadia Carlsten told CyberScoop.
A new form of malware detection software that analyzes computer code to predict malicious behavior — but without actually running it — has been exclusively licensed to a Virginia startup from the Oak Ridge National Laboratory.


CHICAGO (WLS) -- Two young children were found in an alley in Chicago's Lakeview neighborhood, officials said.
Police said someone found a 5-year-old girl and 4-year-old boy in the 800-block of West Newport Avenue around 11:45 p.m. Monday.
Officers located their father in a home on the same block.
The children were taken to Advocate Illinois Masonic Medical Center in good condition.
The Department of Children and Family Services is investigating.
No one was charged in this case.


text:
Anti-Agency
Anti-Agency Book
Planable: Social Media Planning Made Simple With CEO Xenia Muntean
by Jason Yormark | Jul 30, 2020 | Podcast
One of our favorite tools we use at Socialistics is Planable, and we were thrilled to get the opportunity to chat with Xenia Muntean, CEO of Planable. Planable is a laser focused social media management tool designed to help agencies more efficiently manage their social media content planning and approvals. We discuss all things Planable as well as Xenia's experiences with agency life and building a successful SaaS startup.
Socialistics listeners get 20% off their first 2 months with promo code: socialistics 20.
Podcast Transcription:
Jason: [00:10] Welcome. This is Jason Yomark for the Socialistics podcast. I am really excited about our guest today. I have Xenia Muntean from Planable and I just wanted to share a little bit about our experience with Planable before we kind of dive into our discussion. As an agency, we kind of flipped through a lot of different social media platforms. Obviously, that's a big part of what we do, and I'm not going to name names and talk about the ones that didn't work out for us but just know that we flipped around between three or four platforms over the course of a couple of years. And really what it came down to was none of them got it right. Whether it was the reporting element, the publishing, the content management, something was amiss and it just never worked for us. So we just constantly were looking for the right technology stack formula that would help our agency do the best work that we can do, not only from an efficiency standpoint but to do right by our clients. And I think the biggest glaring weakness that we saw across a lot of the platforms that we were using is that they just weren't client-friendly, that it made it difficult to manage content for clients in a way that was easy for them, easily accessible, easy to manage. And to us, that was the most important thing.
[01:33] Look, if we had to make the choice between efficiencies gained on the client's side versus internally, we're going to take the client's side every time. We want them to have the best experience possible, and then we can suffer internally and figure that out. And nobody just seemed to get that right and then I can't quite remember, but luckily, we stumbled across Planable and I was really intrigued by the fact that they really focused on one thing and it was that content management piece, especially from the client perspective. I was so drawn into that. I was so excited about being able to provide that for our clients. And then literally within – I think we started the trial and we knew within a week that this was what we wanted and immediately exited our all in one platform and moved towards an environment where we started to pick technology that focuses on a singular thing. So we did that with Planable, we did that with the other technology stacks, and it has been the best decision as an agency that we ever made because now we have the best of everything when it comes to each element of what we do from a social media management standpoint. So I wanted to share that story just because it's so relevant to today's guest. Xenia, so excited to have you, she's the CEO of Planable, and welcome to the show.
Xenia: [02:58] Thank you so much, Jason, for having me on the show and for such kind words. This is probably the best intro I've ever had, at least sits well with me, the best one for my pride.
Jason: [03:13] Well, it's authentic. I'm not just saying that. We've had so much success with it. So enough about that, but tell me, I want to learn about you. I want to learn a little bit more about your Planable journey, but let's start with, tell me about yourself and your path to Planable. How did you get there? Where did your career start? Take me through that journey.
Xenia: [03:31] So long story, I'll try to keep it as short as possible, but it all starts probably in high school. I was passionate. I was really obsessed with advertising since I was a teenager, probably. So my dream was to work in this creative, mad agency type of thing, mad world agency. I always wanted to, at some time in my future, build an agency. That was the dream and it actually happened. [It] was just a lucky event that happened but I started my own social media marketing agency during my second year of university. I had a couple of clients that I was doing social media content production and management for their Facebook, Twitter, Instagram pages, all of that. And during that time, I learned what it actually means to build content in terms of the operations and the processes and all the back and forth and I just didn't enjoy it. I felt like there was something broken with the process. We were using spreadsheets and too many emails back then and I felt like there must be a tool out there to just help with how I presented work to clients so that I can get [inaudible 04:58] and feedback from them, and something to also help me align myself internally with my team. So looking for tools, I tried all the tools on the market, not going to name them as well. So I tried a bunch of them and I felt like they were really, really helping me with a bunch of things around social media management, like analytics, listening and the publishing side of it, they were doing a pretty good job there. But in terms of the client relationship, in terms of the entire workflow, in terms of what happens before you actually schedule something, all of that, all of that behind the scenes, I didn't feel like they were covering it or at least I didn't feel like they were covering it as I imagined it.
[05:47] Ideally I was envisioning this very collaborative space, very neat, very, very visual as well because I remember back in my agency days, I had this unpublished Facebook page where my team was going and they were like mocking up posts and taking screenshots and sending it to our clients. Because sometimes clients were asking, "How is this going to look like in the end?" So they didn't have any visibility. And sometimes with formats that clients were not familiar like carousel posts, for example, it was really hard for them to imagine how that stuff is going to look like in the end. So I remember my team was going on that unpublished Facebook page and taking screenshots and as you can imagine, that was a big waste of time. So I was trying to optimize it as much as possible. And together with my two co-founders – they also worked in agencies back then – we decided that we need to build something like that. We hoped that we're not the only ones that were in this situation. So we did a bit of customer development. We talked with some agencies in the US and in Western Europe and we tried to figure out if this is a problem that is just across the globe. And when we realized that many others need something like that, we decided to go full in.
Jason: [07:10] Awesome. I love that. I love how you talked about that singular approach. I can't stress enough to anybody that's listening that's either an agency owner considering that path, that there's so much to be gained by working with a technology partner that is so laser-focused on a particular area like what you guys do. I just think as a generalist, you can't possibly do as good of a job as a specialist. The depth of thought and planning that goes into delivering a technology solution when you're laser-focused on one thing, it's such a huge, huge difference. Our clients absolutely have loved the experience since we've transitioned to this model, just because it makes it easier for them. Time is money and people want to be more efficient in how they manage what they do and it has certainly done that for us. So I'm kind of curious, you know, before we kind of dive into Planable a little bit more, I want to dig in a little bit into your agency life. I mean, the title is Social Media Agency Stories, and I know you were more of a digital marketing agency, but tell me a little bit, like what are your biggest takeaways or memories from those experiences as an agency owner?
Xenia: [08:35] So in terms of struggles and challenges, because that's what you remember the most, right, negativity, but I'm biased. From a challenges perspective, I remember that it was really hard, especially with social media, it was really hard to educate clients. I remember that was one of the biggest challenges that I had. It felt like everyone with a Facebook account could do social media and so much time has passed since then and I can still see that in the market with social media specifically. It's not like the other, more technical things like design or maybe branding or paid, just because it feels like everyone can create a post on social media and everyone can do social media marketing, which is so far from the truth. And that was one of the biggest challenges, especially because the market of social media services was fairly new back home. So it was really hard to educate and it was really hard to put a price on it as well. Like the ROI was probably not, you know, it was really hard to make a margin out of that. That was one of the biggest challenges. Talent as well, I feel like finding– Because social media is such a versatile job, you need to have an eye for design. You also need copywriting, you also need to think a bit strategically. There are so many things in it. It's a very complex position that you need to have and I think that was one of the other challenges – the talent and also educating the clients and really selling the services. I mean, not getting new clients, but really conveying the importance of social media to them.
Jason: [10:26] Yeah. When you think about what you experienced and where we live today in terms of the landscape of agencies, if you had to pick one, two, three things, however many things come to mind, giving advice to someone that's looking to start an agency, what are the things that come to mind that you would advise somebody to be thinking about as they go down that path?
Xenia: [10:51] So one of the other challenges that I had, and that's actually going to take me to my answer to your question, one of the other challenges was that it was harder, so much harder to do social media for clients in industries that I had absolutely no clue about. And I had clients in those industries and we did good work, but it was so much harder. And that means more time invested in that. So I guess pick your tribe is a good advice, just pick a niche. And I see lots of our customers that are okay in the social media marketing space, but at the same time, they do focus on specific industries. Or find some kind of other way of focusing on something, maybe not industries, maybe just a particular type of service within social media marketing. But I think that the more as an agency you spread, the less you can do with your time.
Jason: [11:59] Awesome. I love that. I agree. I definitely think that the agency landscape is changing quite a bit in that grad. I think new ones that are popping up are very niche-focused. I think there's a lot of consolidation – a lot of agencies are buying other agencies. So it's interesting times for sure. So, thank you for that. Let's dive back in Planable. I want to learn a little bit more about the history. So I'm a huge Shark Tank watcher. I'm enamored with people that stumble across ideas in their personal or professional lives, like a need isn't being met and that's how things are invented and born. That certainly sounds like that was the case here. So touch on a little bit about how that came to be and the birth of Planable and a little bit about the history and where you guys are at today.
Xenia: [12:52] Yeah. So we're three co-founders and we started the company about four years ago and all of us were working in the industry. I had my own agency, my technical co-founder worked for an agency, so we were very familiar with the industry. And when we started talking about Planable, we realized that we have common pain points in our day to day work. I definitely had pain points just by observing how my team works and my technical co-founder, Nick, he worked in an agency, and as a developer, he was looking at his colleagues just wasting so much time on inefficiencies and his mind just couldn't understand it. How can it be so hard? Why is there no tool out there? So that's how we got together and we started working on Planable. Like a typical startup, we went through a couple of accelerators. We got a seed investment and the first couple of months were so much in customer development. And that means just interviewing potential users in the future of Planable and talking to them about their day to day pain points, you know, what does it look like? What are they doing? How are you trying to solve it? Would they pay for a solution? How much would they pay for a solution and so on? That's extremely, extremely crucial to do in the beginning. You just need to figure out if you're going to build something that people will need, or if that's just a problem that you're the only one that has it – an edge case. So that's a big chunk that we did and then for about a year and a half, we were in beta. We were testing the product a lot. We had about a thousand beta users that were using the product for free, just giving us lots and lots and lots of feedback. That seems a long time to do it but we were a small, small team and we needed to figure out if we were doing the right thing so that when we launch, clients like you could really benefit [from] it and have a delightful experience. And yeah, we launched a product about two years ago and it's been a roller coaster since then.
Jason: [15:14] Awesome. So when you think about your life as an agency owner versus a software as a service company, what are the biggest differences that come to mind between the two for you?
Xenia: [15:26] Oh, man, I'm going to think about the differences, but first of all, I'm going to tell you one thing that is very common and you touched upon it a bit off the record. The customer care, it's still there, like the relationships, building, taking care of customers, that seems like the same thing. Though in self-service, you have so much software as a service, you have so much more clients to take care of. So it's just the scale of it is a bit bigger. But the difference is I think just the delight of working on one single thing. It's just one product and you're constantly, constantly building it and improving it and that might not work for everyone. I know some people will enjoy the agency life quite a lot because of its diversity, because you can be so creative and work on so many different projects and that's what excites others. It excited me as well, but in time I realized that I really, really love really focusing in and zooming in on one particular thing and improving it to perfection. That is what I love most and I felt that back in my agency days when the kind of sadness when I ended projects and I couldn't follow up and see what happened with the business, with the company, the campaign in long term, what did it do to the company, its business and so on but with Planable I feel like I'm more present, that's the idea.
Jason: [17:13] Yeah, I love that. I know that there's a lot of, I think, that and I think most agency owners always have an exit in mind, you know, they're not going to do that forever. It's pretty rare because it's hard, it's challenging. You're managing pretty deep relationships. There's a lot of client churn, you're constantly having to– And that exists in what you do as well.
Xenia: [17:34] Yes, that's normal.
Jason: [17:35] But I can totally relate to that. Like having a single product that you can build and nurture and kind of build over time, so very cool stuff. So right now when you think about where Planable is at, what is the biggest challenge that you have that you're dealing with right now with Planable?
Xenia: [17:57] Yeah, that's a good question. I think the biggest challenge is just really, really, really figuring out where to take the product next. We definitely have a vision and we've been working for the past year on making this vision more detailed and more specific and actually including it in the product roadmap. But at some point in time, you have to decide what you want to do with the product. And for social media, what we've built so far, it was all from our experience, from what we knew so far, but if we want to expand the product, we're kind of going into uncharted territory. If we want to do something else that I haven't had experience with, that's where it's really challenging and that's what we're struggling with the most. And also saying no is becoming harder and harder. Saying no to feature requests from customers is getting harder and harder.
Jason: [19:02] Yeah. Well, I love that you do that. So I know that you have a really cool feature built into the platform where people can add feature requests and vote on them. I always kind of check in on that and because I love–
Xenia: [19:15] Well that's so nice, I'm happy to hear that's being used actually.
Jason: [19:19] Oh yeah. Well, I love seeing that. I think anytime you give your customers a voice in how you shape the product, I think that's a fantastic thing to do and you've kind of integrated it into the technology, which I love. So I mean there's some stuff in there that I'm like, "Yes, definitely! I hope that you guys put that in."
Xenia: [19:35] One day.
Jason: [19:37] But there are also things in there that I'm like, "No, don't do that." Like there's one in there like ad analytics and reporting and I'm like, "No, don't do that. Don't become another all-in-one" because then I think you're moving away from what makes what you do so great. So yeah, I love that. I love the fact that the voice of the customer is integrated in what you do. It just kind of lends itself to why we've loved working with you guys. So, what about surprises? When you think about your Planable your journey, what have been some of the biggest things you didn't see coming or surprises along the way that you've encountered?
Xenia: [20:17] That's a good one. That's a really good one. Let me think a bit. Surprises. I think there were definitely very surprising use cases of Planable, like funny ones as well, and really enjoyable ones to look at. We've seen folks using Planable to showcase their work, like a portfolio thing, which is a totally unexpected use case of Planable, but just the creativity of people using Planable in different ways and in ways that we didn't design the product for. Like, for example, agency influencer use case. We didn't really design the product for influencers, brands and agencies triangle but some agencies are using it. So just the ways people are adapting Planable to work for themselves because that's surprising and heartwarming in a way, I guess.
Jason: [21:24] Yeah. Awesome. I love that. Okay, I've got my handy dandy time machine here. You can go back in time, do something differently, whether it's Planable related or anything in your career. What's something that stands out that if you can go back and do anything differently, what might that be?
Xenia: [21:46] It's hard to answer this question because I'm really happy with where we got with Planable and where we are right now. So I wouldn't change anything from that perspective because I would be just too afraid to ruin where we are at this point in time, but we could have definitely done more. Like I wish we have invested in SEO and content earlier, like started building it from day one maybe. We started building our blog way too late in our journey. So I wish we did that and also I wish we took a bit more risks maybe, especially later in this period of time, maybe in the past two years, I wish we were a bit more maybe adventurous. I feel like my Eastern European roots are making me be very cautious, overly cautious with things that sometimes, and even my investors have told me that. So maybe being a bit more bold, that's something, and building the brand as well. Those three things – boldness, building the brand and investing in SEO early on.
Jason: [23:04] Yeah. Love that. What are some things that you do to continue to learn, stay on top of the curve as a CEO, as a marketer, as a product developer? What are the things that you do to keep yourself ahead of those things?
Xenia: [23:20] So besides the usual, like reading a bunch of articles and I'm subscribed to a few newsletters, I'm trying to dial down on the newsletters. I feel like I'm not really reading them, I have too many. So at the moment, I'm only subscribed to The Hustle and that's the only one that I actually read. But besides that usual thing, I talk to people, that's what I love doing quite a lot. So, because I'm part of the Techstars family – we went through this accelerator called Techstars. They have a forum. So every time you have an issue or a problem, or you need a connection or advice or anything, I just write a post there and I talk to someone and I learned from them and I try and do that as often as I can because I feel like I grew the most in my mentorship relationships, especially early on. I feel like I made very, very big leaps because I had people that I could learn from. And I'm trying to do that right now as well. It's harder and harder because there's no time but I'm trying to do that consistently.
Jason: [24:33] Got it. Awesome. When you think about – and we touched on this a little bit, but I kind of want to circle back on it because I can't stress enough the importance of, I think, agencies being laser-focused on what technology solutions they have. But even in addition to that, in your opinion, what's the real advantage to using a platform like Planable versus an all-in-one? What are some things that really stand out? Or what are maybe some examples of numbers or efficiencies, or just if you can talk through a little bit about how customers of yours have really leveraged the platform in ways that have been measurably meaningful for them?
Xenia: [25:21] Yeah. So you have two options, you either go with an all-in-one, and the advantage of that is that you don't need to switch tabs and you have everything in one single place. And that's definitely a huge advantage in the age of productivity and focus but at the same time, you just can't expect to get the best out of every single thing, every single module and every single product out of that. With Planable, you just get the best in collaboration, and we laser, laser focus on that. It was designed with collaboration in mind, and it's not an afterthought that a social media platform added because they realized that, okay, teams have grown and there's this huge need for collaboration. They haven't just slapped it on the existing product. It was really designed intentionally with teams in mind and that makes it very well thought in terms of every touchpoint where you might need collaboration, where you might work together with someone and we try to keep the team in the platform as much as possible and avoid use cases where they need to go on email or on Slack. The entire work needs to happen in Planable when it comes to planning the content. And in terms of numbers, we've asked our customers, "Hey, how much time do you think you're saving on content planning? Before, you were using spreadsheets and now you're using Planable, what's the difference? And we've asked a bunch of customers and the answers have come up from like 20 to 30%, specifically on content planning. That's how much time they're saying they [saved]. It's hard to quantify all this, and it's like really clocking their time specifically on content planning, but that's what the feeling they had was. So it's really about time, in the end, productivity and time.
Jason: [27:16] Yeah, no, I mean, I can speak firsthand that at minimum it's got to be 20 to 30% in time savings. I mean, we don't do time tracking per se, but there's a level of significance in the amount of time that is not needed when it comes to doing that back and forth and leveraging a variety of different tools. So I can definitely be a case study in that regard. It's definitely done that for us. So what's the future hold for Planable? What are some things that you can talk about or share with the audience in terms of what's next, not only for Planable, but your vision of software as a service platforms and where things are trending? But definitely, I'm kind of curious about where Planable is headed and what we have to look forward to.
Xenia: [28:10] Yeah. So I see this new wave of productivity tools more and more and more that are unbundling spreadsheets basically for different use cases. So you can see collaboration for video, for example, a bunch of tools that are doing that. Frame.io is one of them. I'm following the company quite closely, they're doing a great job. And then on the design space, lots of collaboration tools – Figma, Envision. Now you have like generic collaboration tools – Notion, Airtable. So it's like a huge wave of collaboration for verticals for different formats of content. And I think that's where the future is for collaboration software and workflow software. And that's what we're always trying to do and we're trying to do this for content specifically, for everything that needs content marketing. We're already doing that for social but the future is to potentially expand into everything content – newsletters, ads, text, a bunch of other things. Everything that marketing marketers are producing for branded content, we want to be at the center of that creative collaboration. That's our vision.
Jason: [29:29] Awesome. I'm kind of curious, I mean, I've kind of been asking these questions to folks have been talking to based on the current landscape of our world and dealing with the pandemic, how that impacted your business if at all? And just to give a little context, obviously, it's impacted us as an agency in terms of whether clients have to pause something, but I think the biggest thing is just, we were already kind of a virtual based agency and I think even when we get back to whatever our new normal is, I think so many more people are going to be thrust into a remote environment. So I'm just kind of curious, how has the current pandemic impacted your business either negatively or positively?
Xenia: [30:18] Yeah, it has definitely made an impact. There are two angles to analyze this from. First of all, the team internally, we had some kind of experience with remote work because we have two offices. So we have teams working from two different locations and that means that we have lots of experience with Zoom calls and had the struggle of Zoom calls and working collaboratively online, Slack, and all of that. We had experience so it was easier to transition to fully work from home, everyone remote. It was not that big of a leap. We definitely missed the social part because still two teams, but we still have that social, water cooler chats type of thing, so we definitely missed it. And from a customer perspective, we work with agencies and marketers and this industry has been impacted. And obviously, we had to take a lot of care of, you know, be very focused on our clients and be there for them. We've definitely seen quite some impact there, not as bad as we expected, so that's good, but we've seen a slow down in the entire growth in the industry. We've seen agencies that were just skyrocketing in terms of growth and others, not so much. So we're really dependent on how our customers grow. So yeah, definitely an impact, good and bad at the same time. But at the end, I don't think it was as bad as we were bracing ourselves for this entire pandemic to be.
Jason: [33:02] Okay. Awesome. Well, the last question is, is there anything that I didn't ask you that you think might be helpful that you'd want to share with the audience at all?
Xenia: [32:15] That's a good question. I think I just want to highlight a bit – I loved the entire focus of this episode on focus and doing something niche, and I want to highlight that it's amazing if you can do it, but I also want to highlight how hard that is to do it. It's really great to do it, but at the same time, it's so difficult to be so focused and be so intentional about what you're building and just resist the requests that you're getting from outside, the pressure that you're getting from outside, the pressure that you're getting from customers, the pressure you're getting from investors, markets and so on, but I think that it is a hundred percent worth it. I think that's the future and we can see it not only in software but also in agencies, we can see it in the job industry, we can see it in almost everything. It's getting more and more focused and specialists are more and more in need and in demand.
Jason: [33:23] Yeah, you actually bring up a great point. This could be its own episode that I always talk about is, as an individual, professionally understanding are you a breadth person or are you a depth person, right? Throughout my career, I always shied away and was afraid to admit what I knew, which was I'm a breadth guy. I like to do a lot of different things and I don't like to do a singular thing and go really deep with it.
Xenia: [33:52] Me too.
Jason: [33:58] But I always felt like that was an admission of not failure, but I felt like that might hold me back until I realized that there is an equal amount of value in the world to be a breadth person as a depth person. So usually, if you're a leader, if you're the CEO type or a manager of people, usually you're that breadth person, or if that's not how you're wired, you're probably more likely to be a depth person. You want to go deeper, you want to do that singular thing and just get really, really, really good at that. I always shied away from that. And once I started to embrace who I was in that regard, that's when things started to work for me.
Xenia: [34:39] I love this. I really love this. Yes. I can't agree more with you.
Jason: [34:43] Yeah. I think the biggest takeaway is, as a person, just realize who you are, embrace that and follow a path that allows you to take advantage of that.
Xenia: [34:55] Yeah. Just that self-awareness about yourself. Yeah.
Jason: [34:59] Yeah, for sure. Well, I really enjoyed this. I love learning more about Planable, getting this insight. Thank you so much for coming on the show. Thank you for letting me butcher your name, which probably will take me a while to get right.
Xenia: [35:12] With pleasure.
Jason: [35:14] But thank you so much for joining the show. We really look forward to continuing to work with you and seeing the platform evolve. And for those of you that are listening, definitely go and check out Planable, it's Planable.io. They've been gracious to put together a little offer, 20% off your first two months if you mention the promo code "Socialistics20". But again, thank you so much, Xenia, for joining us, and wish you all of the best in luck with continuing to evolve the platform.
Xenia: [35:48] Thank you so much, Jason. I really enjoyed this conversation. We should do that more.
Jason: [35:52] Absolutely. Thank you so much. And thank you for listening. This is the Socialistics podcast. We will catch you at the next episode. Take care.
Jason Yormark
Jason is a 20+ year marketing veteran including time spent at Microsoft overseeing social media for Microsoft Advertising & Office for Mac. Once named to Forbes Power Social Media Influencers List, Jason is the owner and founder of Socialistics.
Cost Breakdown: How Much Should Social Media Marketing Cost?
Are Hashtags Important Anymore?
10 Social Media Tips to Start 2022 Out Right
Social Media For Food and Beverage Industry
What Is Social Audio and Why Should I Be Using It?
Agency Tips Analytics Apple Branding Career Case Study Facebook Google Influencer Instagram Linkedin Marketing Meta Paid Ads Podcast Social Audio Socialistics Cares Social Media TikTok Trends Twitter Uncategorized YouTube
Ready to drive real results
with your social media?
1455 NW Leary Way, Suite 400, Seattle, 98107
206.962.6080
hello@socialistics.com
© 2022 Socialistics. All Rights Reserved.


I've seen a figure of 1.4 million Sanskrit manuscripts currently in existence. For Classical Greek and Latin combined, there are 30,000 manuscripts.
There's no way you can read Chaucer without a glossary because English is changing so quickly. But I can pick up a Sanskrit document written in the last 2,000 years and make a good fist of it. It hasn't changed. In 1,000 years time, Sanskrit will still be the same, but every other language will have changed beyond in recognition.
As the primary knowledge-bearing and culture-bearing language of India for more than three millennia, Sanskrit has the largest body of written material in the world prior to the invention of the printing press.
The Sanscrit language, whatever be its antiquity, is of a wonderful structure; more perfect than the Greek, more copious than the Latin, and more exquisitely refined than either.
Sanskrit is an Indo-European language and the key to classical Indian civilization. It could be argued that every great or profound thought and utterance in India before the Year 1000 was probably thought and recorded and transmitted in Sanskrit. We're talking about the cultural, spiritual and intellectual output of about one quarter of humanity.
Sanskrit is not a natural language, in that it was never spoken in the marketplace. It was an artificial system for elite scholarly and spiritual discourse. All languages are artificial of course, but this language was self-consciously constructed as a way of conveying the most sublime, spiritual and intellectual beauty that the human brain was capable of creating, and it does it with extraordinary subtlety.
The origins of Sanskrit are lost in the mists of time. A collection of texts called the Vedas probably date from around 1000 BC. The remarkable thing is that the language in the Vedas is largely recognizable today. But the rules for classical Sanskrit were probably laid down about 300 BC by the great Indian grammarian Pāṇini. From then on it hasn't changed. It is said that the language defined by those rules is the perfected language. The word for perfection is samskrita, which means 'made perfect', so the name of the language already suggests perfection. And if you have devised a perfect language, why would you want to change it?
Sanskrit is still spoken, but it's always been the spoken language of a small, educated intellectual and spiritual elite, particularly in the sacred city of Varanasi and Pune (in India). These two sacred cities are great centres of Sanskritic learning. They are home to whole schools where the curriculum is taught in Sanskrit, and where the kids only speak Sanskrit. There is also a ten minute news broadcast in India each day in Sanskrit. One time I was listening and I heard them say the word for Australia, then the word for Open, then the word for Cup. Open Cup? It was a puzzling combination, until I realised they were talking about the tennis.
In pre-modern India, Sanskrit was the language of scholarly discourse, very much like Latin in pre-modern times. But it is also the sacred language of Hindu scriptures. The vast bulk of these still exist and are still used on a daily basis. There are many millions of Hindus who recite prayers in Sanskrit every day. It is also an official language of Buddhism, Sikhism and Jainism.
Sanskrit can cope with new vocabulary in very skillful and clever ways. It used old words in new ways. Vidyut means lightening, but it also does for electricity and electronics. Patram means leaf, but also means letter. Vidyut patram, electric letter, is also email. Spam is 'undesired electric letters'. A Spam filter is 'sieve for undesired electric letters'. When you say that in Sanskrit it still sounds like beautiful poetry. The language has been very good at adapting to modern usage as well.
It's a highly inflected language. Every noun has to take a particular ending, which would show if there is one object, two objects, or more than two objects. It can also tell you the role of that word in the sentence: if it's the subject, it takes a particular ending. If it's the object, it takes another. If you want to say 'with that thing', 'for that thing', 'from that thing', 'on that thing', 'of that thing', it takes other endings. As endings can be singular, dual or plural, there are actually 24 different versions. Any noun can take 24 endings. And there are 28 different patterns that you need to be more or less on top of. So it's 28 times 24 different ways of expressing a noun. Then there are hundreds of possible verb endings. It's complicated. Panini reduced Sanskrit grammar to 4,000 handy rules. All you have to do is memorise these 4,000 handy rules and you've got it down pat.
Sanskrit has an alphabet. So after a little bit of hard work you can master it. It's written in a beautiful script called Devanāgarī, which means 'of the city of the gods'. If the gods ever had to write anything down, I'd be pretty sure they'd be writing it in Sanskrit, and that they'd be writing it in Devanāgarī.
'My name is' is a very nice example for newcomers to Sanskrit, because it's very Indo-European. 'My' is mama, and 'name' is nama, and then you add your name to it. It's easy, but there is a whole lot happening under the surface. Mama is first person singular genitive, one of the 24 ways of saying 'I/we'. Nama is neuter nominative singular. That short 'a' ending is one of the 24 ways of saying name.
I've seen a figure of 1.4 million Sanskrit manuscripts1 currently in existence. For Classical Greek and Latin combined, there are 30,000 manuscripts. This is Sanskrit's monument, that vast scope of surviving, hand-written documents sitting in people's libraries and temples. The size of the corpus is absolutely enormous. And the breadth of material boggles the imagination. Everyone knows the Kama Sutra, for example, which is a manual on sexual technique. But there are also texts on elephant-raising, architecture, astrology, medicine, grammar, spiritual traditions, geography – the vast scope of subjects covered by Sanskrit documents is amazing.
An elderly Sanskrit scholar, who had spent 50 years studying the language, was once asked what it was like to have spent so long on the subject. He replied, "Sanskrit is a boundless ocean, and I am still standing on the shore". There is no such thing as finishing Sanskrit. You don't have to worry about getting anywhere. You should always look behind you and get your satisfaction from what you've done, because it's a journey without an end.
I am the only person, possibly in the world, who truly believes that Sanskrit is the language of the future. We can't easily read Shakespeare without a glossary. There's no way you can read Chaucer without a glossary because English is changing so quickly. But I can pick up a Sanskrit document written in the last 2,000 years and make a good fist of it. It hasn't changed. In 1,000 years time, Sanskrit will still be the same, but every other language will have changed beyond in recognition.
1.The figure is actually 2 million manuscripts and was quoted in Richard Gombrich's inaugural lecture at Oxford.


text:
Cunard to Broadcast LIVE Red Carpet from "The Greatest Showman" World Premiere on Flagship Queen Mary 2
Live Red Carpet Interviews with Celebrities, Talent and Executives at First Hollywood Movie Premiere on a Passenger Ship
VALENCIA, Calif., Dec. 6, 2017 /PRNewswire/ -- On Friday, December 8, luxury cruise line Cunard and 20th Century Fox will host the world premiere of "The Greatest Showman" on flagship ocean liner Queen Mary 2 while docked in New York. Cunard will broadcast the red carpet event LIVE from the ship in real-time with a Facebook livestream, giving viewers an opportunity to be part of the first major Hollywood film premiere on a passenger ship.
Tune in to Cunard's Facebook page at https://www.facebook.com/cunard/ at 5:30pm ET / 2:30pm PT to watch the star-studded red carpet which will be hosted by Andrea Feczko of "Vacation Creation" on ABC Television and Kevin Polowy of Yahoo Entertainment.
Viewers will see live interviews with the film's all-star cast including Hugh Jackman, Zac Efron, Rebecca Ferguson and Zendaya. Also walking the red carpet will be "The Greatest Showman's" director Michael Gracey, Oscar®- and Tony®-winning musical duo Benj Pasek and Justin Paul, Emmy Award®-winning costume designer Ellen Mirojnick, and the film's writers Jenny Bicks and Bill Condon.
"Cunard is a brand of 'firsts,' and this premiere is certainly no exception," said Josh Leibowitz, Senior Vice President, Cunard North America. "We're proud to roll out the red carpet on Queen May 2 and to invite 20th Century Fox and their esteemed guests on board our flagship, and we're excited to be able to give Cunarders and fans worldwide a front row seat to all the action."
Cunard and cruise industry executives will join the celebration including: Arnold Donald, CEO & President of Carnival Corporation & plc, Josh Leibowitz, Senior Vice President of Cunard North America, Simon Palethorpe, Senior Vice President of Sales & Marketing at Cunard and Josh Weinstein, President of Carnival UK, and Captain Philpott, Master of Queen Mary 2.
Debuting in theatres on December 20, "The Greatest Showman" is an original musical which tells the story of visionary P.T. Barnum and how he created the Barnum & Bailey Circus. During his life, P.T. Barnum sailed multiple times on various Cunard ships to cross the Atlantic between New York and England. Scenes from the movie were shot in the original U.S. headquarters of Cunard, a magnificent Italian Renaissance-style landmark building located at 25 Broadway in lower Manhattan. In addition, many scenes were shot in Brooklyn, Queen Mary 2's U.S. homeport.
Yahoo, Yahoo Entertainment, AOL, Huffington Post and MovieFone will also be sharing the action live on their respective Facebook pages.
For more information about Queen Mary 2, or to book a voyage, contact your Travel Agent, call Cunard Line at 1-800-728-6273 or visit www.cunard.com.
For travel agents interested in further information, please contact your Business Development Manager, visit OneSource or call Cunard toll free at 1-800-528-6273.
About Cunard
Defining true excellence at sea with over 177 years of legendary voyages, Cunard is the operator of luxury ocean liners Queen Mary 2®, Queen Victoria® and Queen Elizabeth®. Renowned for impeccable White Star Service, gourmet dining and world-class entertainment, all three Queens offer luxury on a grand scale in Britannia, Britannia Club, Princess Grill and Queens Grill accommodation. Cunard is the only line to offer regularly scheduled Transatlantic service and continues the legacy of world cruising which it began in 1922.
Awarded '#1 Mega-Ship Ocean Cruise Line' by Travel + Leisure's 2016 World's Best Awards and 'Best World Cruise Itineraries' and 'Best Trans-Atlantic Itineraries' by Porthole Cruise Magazine's 2016 Readers Choice Awards, Cunard is a proud member of World's Leading Cruise Lines, a part of Carnival Corporation & plc (NYSE/LSE: CCL; NYSE: CUK), the largest cruise vacation company in the world. Together Cunard, Carnival Cruise Line, Fathom, Holland America Line, Princess Cruises, Seabourn, AIDA Cruises, Costa Cruises, P&O Cruises (Australia) and P&O Cruises (UK) operate 102 ships visiting over 700 ports around the world and totaling 226,000 lower berths.
Facebook: www.facebook.com/cunard
Twitter: www.twitter.com/cunardline
YouTube: www.youtube.com/wearecunard
Instagram: www.instagram.com/cunardline
Cunard photography is available online at www.cunard3queens.com.
For additional information about Cunard, contact:
Jackie Chase, Cunard, 661-753-1035, jchase@cunard.com
Maria Andriano, MGA Media Group, 212-251-1015, maria@mgamediagroup.com
About The Greatest Showman
Inspired by the ambition and imagination of P.T. Barnum, The Greatest Showman is a bold and original musical that celebrates the birth of show business and the sense of wonder we feel when dreams come to life. It is directed by exciting new filmmaker, Michael Gracey, with songs by Academy Award winners Benj Pasek and Justin Paul ("La La Land") and stars Academy Award nominee Hugh Jackman. Jackman is joined by Academy Award nominee Michelle Williams, Zendaya, Zac Efron and Rebecca Ferguson.
About Twentieth Century Fox Film
One of the world's largest producers and distributors of motion pictures, Twentieth Century Fox Film produces, acquires and distributes motion pictures throughout the world. These motion pictures are produced or acquired by the following units of the studio: Twentieth Century Fox, Fox 2000 Pictures, Fox Searchlight Pictures, Fox International Productions, and Twentieth Century Fox Animation.
For additional information about Fox, contact:
Aparna Rao, Aparna.Rao@fox.com
SOURCE Cunard Line
http://www.cunard.com


The Panerai Luminor Due 38replica watch is a smaller version of the classic Luminor style case and dial that most folks think of when they hear the name Panerai. There is the cushion shape of the case, the prominent lugs, the raised bezel, and most importantly, the crown guard – a registered trademark of Panerai. Opening the crown guard gives you access to the crown, with which you can manually wind the movement inside as well as set the time and date.
Buy Quality fake Luxury Watches low to $149 with fast shipping worldwide from China,Swiss aaa replica Panerai watch,Tag heuer,AP watches sale.


text:
NJANG RECEIVES FIRST WOMAN COMMANDER
Photo and story by Tech. Sgt. Mark Olsen, 177FW/PA
This year of firsts continues.
Here in New Jersey, the New Jersey Air National Guard received its first woman commander.
Brig. Gen. Maria Falca- Dodson assumed command of nearly 2,300 Airmen of the New Jersey Air National Guard, which includes the 108th Air Refueling Wing at McGuire Air Force Base, the 177th Fighter Wing at Egg Harbor Township and Joint Force Headquarters-New Jersey (Air Component) at Fort Dix in a Change of Command ceremony at the Joint Training and Training Development Center, located at Fort Dix on Nov. 15.
Outgoing NJANG Commander, Brig. Gen. Lawrence S. Thomas III noted that: "This is long overdue, not just for women in general but for Maria herself."
"It's an honor to be given this responsibility," said Brig. Gen. Falca-Dodson. "I pledge to lead and support fully and I thank you for your belief in me, guidance and support."
Brig. Gen. Maria Falca-Dodson (right) accepts the New Jersey Air National Guard colors from Maj. Gen. Glenn K. Rieth (left), The Adjutant General of New Jersey, while State Command Chief Master Sgt. Edward Karol (center) watches during the NJANG Change of Command ceremony on Nov. 15.
The General, prior to assuming command, served as the first female Deputy Adjutant General to The Adjutant General of New Jersey, Maj. Gen. Glenn K. Rieth at the New Jersey Department of Military and Veterans Affairs located in Lawrenceville. She was appointed on March 1, 2002. In 2004, she became the first woman to pin on general's stars in the New Jersey National Guard.
"Make no mistake; she's a Soldier and an Airman first. During her time as a deputy, she didn't always get the glorious jobs. But every issue she took and every project that was handed to her was carried out," said Maj. Gen. Rieth. "And there were a lot of things that needed to be carried out during that time."
General Falca-Dodson provided oversight and management to more than 8,300 members of the New Jersey Army and Air National Guard, as well as state operations of the Department during the nearly seven years she served as the Deputy Adjutant General. During that time, the New Jersey Army and Air National Guard mobilized more than 7,000 Soldiers and Airmen in support of Operations' Iraqi Freedom, Enduring Freedom, Noble Eagle, Hurricane Katrina and Rita efforts; and Operation Jump Start.
She also had direct responsibility for the Army and Air full-time operations, recruiting, New Jersey National Guard Training Center, ethics, and the Office of Military Affairs which includes; Public Affairs, Employer Support of the Guard and Reserve and Government Relations. She was Chair of the Long Range Planning Executive Steering Committee, the Efficiencies and Revenue Steering Committee; the Weapons of Mass Destruction Advisory Committee, was the TAG designee for the Domestic Security Preparedness Task Force and was Co- Chair of the Nursing Shortage Task Force in 2002.
The General attended the College of New Jersey (formerly Trenton State College) and received a Bachelor of Science degree in Nursing in 1975. Seven years later, she earned a Master of Arts in Administration from Central Michigan University.
General Falca-Dodson began her military career in 1980 when she was commissioned as a first lieutenant with the 108th Tactical Fighter Wing, New Jersey Air National Guard. In 1993, she received her Chief Nurse Badge serving with the 108th Medical Squadron. Five years later, she assumed Command of the 108th Air Refueling Wing Medical Group. General Falca-Dodson has participated in multiple overseas deployments and was deployed as the Medical Commander, Task Force Fuertos Caminos, Panama, 1993.
The Adjutant General's Message
Airman's uniform part of 9/11 display
Jersey Soldiers don combat patch
2-113th, British Soldiers keep watch
NewJersey and Albania celebrate historic partnership
Jersey Guard above the curve
Best combat flying ever
150th goes Rough and Tumble
Croatia and 108th CE cement bonds
QRF Airmen ready to serve
Ending to a journey for the ETT
New Jersey salutes Greatest Generation
NJNG to mentor troubled vets
State mourns loss of former TAG
Homefront Chaplain Team always on call
Last Round: Evaluated at trained


If you have some questions about using our community transport please have a look at the frequently asked questions below. If your question isn't covered please call us on 0114 276 6148. Alternatively, you can fill out our question form below or e-mail reception@sheffieldct.co.uk and we will get back to you.
Please click on one of the questions below to read the answer.
Do the drivers come to the door?
Yes, our drivers can assist passenger from their door to the vehicle but are not permitted to enter passengers' homes.
Can I travel in my wheelchair?
Yes, our vehicles can accommodate up to two wheelchairs and have the right equipment to secure your wheelchair and you safely when travelling.
Can someone travel with me?
Yes, you may travel with a companion who will pay the same fare.
Can I use the City Ride service for my hospital appointments?
Due to the uncertainty about how long your appointment may take, City Ride is not suitable for such appointments.
Can I travel in my mobility scooter?
The minibuses can carry some scooters. Please let our staff know the make and model and they will be able to advise.
How many trips can I make in a week?
Due to the high demand for our services all trips are scheduled on a first-come, first-served basis.
Can I carry oxygen with me?
Yes, so long as the equipment can be stored safely in transit.
Sheffield Community Transport is a Registered Society under the Co-operative and Community Benefit Societies Act 2014.
Registration No. 25650R. VAT Registration No. 534 1063 80. Funded through South Yorkshire Passenger Transport Executive.
Copyright © 2018 Sheffield Community Transport. All Right Reserved.


All patterns are traditional patchwork with templates. Patterns include illustrations, full-size templates, and step-by-step color instructions.
All full-size templates, rotary cutting instructions, and step-by-step color sewing instructions are included in the pattern. Finished size is approx. 85 x 93 inches, fits a queen size bed. Made from traditional patchwork blocks.
All full-size templates, rotary cutting instructions, and step-by-step color sewing instructions are included in the pattern. Finished size is approx. 84 x 94 inches, and fits a queen size bed. Made of two traditional patchwork blocks.
All full-size templates, rotary cutting instructions, and step-by-step color sewing instructions are included in the pattern. Finished size approx. 92 x 92 inches, fitting a queen size bed plus. Made from two traditional patchwork blocks.
All full-size templates, rotary cutting instructions, and step-by-step color sewing instructions are included in the pattern. Finished size approx. 84 x 94 inches, fits a queen size bed. Made from two traditional patchwork blocks. Another personal favorite.
All full-size templates, rotary cutting instructions, and step-by-step color sewing instructions are included in the pattern. Finished size approx. 92 x 92 inches square, fits a queen size bed. Made from a variation of a traditional patchwork block.
All full-size templates, rotary cutting instructions, and step-by-step color sewing instructions are included in the pattern. Finished size approx. 96 x 96 in. square, fits queen plus bed. This complex looking quilt is made of simple squares and triangles. See matching crocheted quilt pattern, see #107.
This quilt was designed in remembrance of Sept. 11. It works up quickly using simple blocks in different sizes. Full size templates and step-by-step color instructions are included. Finished size is approximately 92 x 94 inches. See matching pillow pattern #302 and crocheted quilt #114.


text:
<!-- toc -->

- [Status: RELEASED](#status-development)
- [Terminology](#terminology)
- [Motivation](#motivation)
- [Commands](#commands)
  * [Commands: Measurable](#commands-measurable)
  * [Commands: Measurable Category](#commands-measurable-category)
  * [Commands: Data Type](#commands-data-type)
- [Persistence](#persistence)
  * [Taxonomy Changelog table](#taxonomy-changelog-table)
- [Command Processing](#command-processing)
  * [Tables potentially impacted by measurable commands](#tables-potentially-impacted-by-measurable-commands)
- [Problems](#problems)
  * [Change ordering](#change-ordering)
    + [Problem](#problem)
    + [Potential mitigation](#potential-mitigation)
- [Security considerations](#security-considerations)
  * [Phase 1 - interim design](#phase-1---interim-design)
  * [Phase 2 - target state design](#phase-2---target-state-design)
- [Example Screens](#example-screens)
- [Notes](#notes)

<!-- tocstop -->

## Status: DEVELOPMENT

This feature is currently being build.  Therefore this document is liable to be modified as new information comes to light.

## Terminology

In the following section we will use the following terminology:

- _Measurable Category_:  a category applied to a group of measurable items.  Is an instance of a _taxonomy_
- _Measurable_: a specific item within a measurable category.  Is an instance of a _taxonomy item_
- _Data Type_: a specific item in the data type taxonomy

## Motivation

Waltz currently does not allow for the maintenance of measurables or measurable categories
within the tool.  Currently sites must implement their own mechanisms for measurable management.  Usually
this is acceptable as the taxonomy is _owned_ by an external system and is automatically
loaded into Waltz via custom loaders.  However when a taxonomy is wholly owned by Waltz then
it is desirable that Waltz provide the facility to adequately manage it within the tool.

## Commands

### Commands: Measurable
| Implemented (1.14) | Change | Description | Concerns | Priority | Impl. Complexity |
| --- |--- | --- | --- | --- | --- |
| Y | **Rename** | Alter the displayed name of the measurable | Care must be taken to not alter the meaning of the measurable item as all existing references will not reflect the new name | HIGH | LOW |
| Y | **Update description** | Alter the descriptive text of a measurable | Care must be taken to not alter the meaning of the measurable item | HIGH | LOW |
| Y | **Update concrete flag** | desc | concerns | HIGH | LOW |
| Y | **Update externalId** | desc | downstream consumers | HIGH | LOW |
| Y | **Add** | desc | concerns | HIGH | LOW |
| N | **Move** | desc | concerns | HIGH | MEDIUM |
| N | **Migrate**| Migrate links/references from one measurable to another | concerns | HIGH | HIGH |
| Y | **Delete** | desc | concerns | HIGH | HIGH |
| N | **Deprecate** | Marks an item as deprecated and should be no longer considered a valid option.  Used to communicate an intent to remove from a future version of the taxonomy. | Will need ddl update to support. Full gui support may take a while | MEDIUM | MEDIUM / HIGH |

### Commands: Measurable Category
| Implemented (1.14) | Change | Description | Concerns | Priority | Impl. Complexity |
| --- | --- | --- | --- | --- | --- |
| N | **Rename** | Alter the displayed name of the measurable category | Care must be taken to ensure meaning is not altered. For example if a measurable category consisting of countries was renamed from 'Trading Locations' to 'Processing Locations' then the underlying meaning has been changed and all mappings are potentially invalid | MEDIUM | LOW |
| N | **Update description** | Alter the descriptive text which describes the measurable category | None | MEDIUM | LOW |
| N | **Update externalId** | External Ids are typically used when integrating with upstream or downstream systems | Potential unknown impact | LOW | LOW |
| N | **Delete category** | Remove the category and all items within it [1] | Very destructive. | LOW | MEDIUM |

## Persistence

### Taxonomy Changelog table
Commands that alter taxonomies will be captured in a new table `taxonomy_changelog`:

| Column | Type | Mandatory | Description |
| --- | --- | --- | --- |
| `id` | seq | **y** | PK |  - |
| `change_type` | enum | **y** | one of: 'ADD |
| `change_domain_kind` | enum | **y** | typically either `MEASURABLE_CATEGORY` or `DATA_TYPE` |
| `change_domain_id` | long | **y** | `-1` for data types |
| `primary_ref_kind` | enum | **y** | main entity kind this command is operating on |
| `primary_ref_id` | long | **y** | main entity id this command is operating on |
| `params` | string | _n_ | simple json `{ k:string -> v:string }` map to supply arguments |
| `change_status` | enum | **y** | tbc |
| `created_by` | string | **y** | who created this change user id |
| `created_on` | timestamp | **y** | when this change was created |
| `executed_date` | string | _n_ | who executed this change |
| `executed_by` | timestamp | _n_ | when this change was app    lied |

## Command Processing

### Tables potentially impacted by measurable commands

| Table | Impacting Commands | Comment |
| --- | --- | --- |
| `measurable` | _All_ (except _Migrate_) | - |
| `measurable_rating` | _Merge_, _Delete_, _Migrate_ | - |
| `entity_hierarchy` | _Move_, _Delete_, _Add_ | - |
| `scenario_axis_item` | _Delete_, _Migrate_ | - |
| `scenario_rating_item` | _Delete_, _Migrate_  | - |
| `entity_relationship` | _Delete_, _Migrate_ | - |
| `entity_svg_diagram` | _Delete_, _Migrate_ | - |
| `flow_diagram_entity` | _Delete_, _Migrate_ | - |
| `survey_question_response` | _Delete_, _Migrate_ | - |
| `survey_instance` | _Delete_, _Migrate_ | - |
| `survey_run` | _Delete_, _Migrate_ | - |
| `bookmark` | _Delete_, _Migrate_ | - |
| `involvement` | _Delete_, _Migrate_ | - |

## Problems

### Change ordering

#### Problem
If we disconnect command creation from command execution we may inadvertently remove data.
Consider a taxonomy that looks like:

```
    |- r
      |- c1    (mappings: [])
      |- c2    (mappings: [1, 2, 3])
```

If we merge `c2` into `c1` the result will be the removal of `c2` removed and the mappings `[1, 2, 3]`
now linked to `c1`.

If we subsequently remove `c1` it will be removed and the mappings will also be deleted.

However if the commands are entered in advance of the processing then the feedback would not show the
'pending' mappings. This may lead a user to erroneously believing that removing `c1` has no other side-effects.

#### Potential mitigation
If any pending change mentions an entity warn the user.  E.g. 'c1 has a pending merge from c2', the
user would still be responsible for investigating the potential impact further.

## Security considerations

Security is a broad topic and a comprehensive solution is out of scope of the initial delivery of this
feature.

Currently the Waltz security model is extremely coarse grained.  Simple roles are associated to users
via the `user_role` table.  The set of roles is determined by the enum `com.khartec.waltz.model.user.SystemRole`.

### Phase 1 - interim design
We propose to add a new type of Role: `TAXONOMY_EDITOR` which would cover both measurables and data type
taxonomies. An additional column, `editable`, will be added to `measurable_category` to determine whether a
category may be modified.  This will help prevent accidental damage to other taxonomies.

The main drawback to this proposal is the lack of fine-grained control.  Any category that is flagged
as editable may potentially be modified by any person with the `TAXONOMY_EDITOR` role.

### Phase 2 - target state design
Building upon _phase 1_,  instance level _involvement_ associations could be used to indicate
who may manage specific _measurable categories_, _measurable_ subtrees or _data type_ subtrees.

This involvement should only be assignable by those with the role: `USER_ADMIN` and would need
to be referenced by the target nodes.  For example the `measurable_category` table could include
a column `maintainer_involvement_kind`  which, if present, indicates a required involvement that
a potential editor _must_ have.

## Example Screens

See [removal example walkthrough](taxonomy_management.pdf).

## Notes

[1] - an example of deleting an entire category already exists in
`com.khartec.waltz.jobs.tools.RemoveTaxonomy`

redpajama_set_name: RedPajamaGithub


Tito's Handmade Vodka is produced in Austin at Texas' oldest legal distillery. We make it in batches, use old-fashioned pot stills, and taste-test every batch to make sure you get only the best.
Copyright © 2015 - Aruba - All Rights Reserved.


Explanation: A cold wind blows from the central star of the Boomerang Nebula. Seen here in a detailed false-color image recorded in 1998 by the Hubble Space Telescope, the nebula lies about 5,000 light-years away towards the grand southern constellation of Centaurus. The symmetric cloud appears to have been created by a high-speed wind of gas and dust blowing from an aging central star at speeds of nearly 600,000 kilometers per hour. This rapid expansion has cooled molecules in the nebular gas to about one degree above absolute zero - colder than even the cosmic background radiation - making it the coldest region observed in the distant Universe. Shining with light from the central star reflected by dust, the frigid Boomerang Nebula is believed to be a star or stellar system evolving toward the planetary nebula phase.