Day 01: Arrival Delhi On arrival at Delhi airport meet our executive and transfer to hotel. Overnight stay at hotel in Delhi.
Day 02: Delhi - Rishikesh (230 kms/6-7hrs)
Early in the morning catch an Ac 6.50hrs to Haridwar and meet with our Guide and transfer to hotel check in at the hotel. Evening free in Rishikesh. Dinner and overnight stay at Hotel.
Rishikesh : Situated at the foothills of Garhwal hills along Ganges, Rishikesh is a gateway to the important religious places of Badrinath, Gangotri, Kedarnath and Yamunotri. Places of interest includes visit to Bharat Mandir the oldest temple in Rishikesh, Neelkanth Mahadev, this is believed to be the place where Lord Shiva drank the poison churn out of the cosmic ocean among many other temples. Also visit some of its many Ashrams: Ashrams are centers for spiritual studies, meditation, Yoga, sacred prayers besides being residential centers for the resident gurus.
Day 03 : Rishikesh - Uttarkashi (170 kms/ 4-5 hrs) Morning after breakfast proceed for Uttarkashi (1150 mts), which takes 5-6 hrs. Upon arrival check-in at Shikhar Nature Resort. After lunch visit NIM (Nehru Institute of Mountaineering) Institute & Museum. Uttarkashi is the principle town in the region. Nehru Institute of Mountaineering is situated here. It is also the gateway to many mountaineering and trekking expedition in Gangotri area.
Day 04 : Uttarkashi - Malla (25 kms) - Sillachhan (9 kms/6 hrs) In the morning after breakfast drive 25 kms to Malla and from here 9 kms trek to Sillachhan with packed lunch The trek is continuously uphill, and one must take care not to overexert on the first day of the trek. Sillachan (Silla Chhanis) are the temporary dwellings of the cow herds of the adjoining villages, since the thawing of the winter snows are responsible for the lush green grass that grows on these meadows. Dinner and overnight stay in tents.
Day 05 : Sillachhan - Kush Kalyani (2040 mts/6692 ft) - Kushkalyani (11 kms/6 hrs) In the morning after breakfast trek to Kushkalyani a beautiful grassland on the upper reaches of the mountain, with its undulating ground covered with grass. The trekking is much easier on this day while traversing this terrain as one is not required to negotiate steep inclines. Kush Kalyani is named after Lord Rama’s sons Lav and Kush. In the backdrop one can see Draupadi ka Daanda (Draupadi’s mountain – named after Draupadi from the epic – The Mahabharata), and Jyonli 1, 2, and 3 series of mountains.. Dinner and overnight in camp.
Day 06 : Kushkalyani - Kyarki Khal (4077 mts/13373 ft) (14 kms/6 hrs) After breakfast trek to Kyarki Khal via lush green meadows, waterfalls and much more. The route traversed on this day takes one on a series of ups and downs, as the initial 2.5 – 3 kms are an ascent, and the latter part of the day’s trek takes one over the pass into Kyarki Khal- a descent of over 5 kms. Dinner and overnight stay in tents.
Day 07 : Kyarki - Parital (18 kms/7 hrs) Post breakfast, continue the trek to Parital taking a series of ridges one after another via a Kyarki Bugyal. If done in peak summer months, this area assumes a hue of yellow, as the tall grass wilts to a hay coloured yellow, and provides the local villagers ample opportunity to stock up on their previously dwindled grass supply.
Day 08 : Parital - Sahastral (5000 mts/16405 ft) (12 kms/6 hrs) After breakfast, trek to Sahasratal via Taddiudyar with packed lunch. The initial part of the trek takes an upward route and the distance covered is within the range of 2.5 - 3 km- thereafter the downhill stretch covers an additional 4 – 4.5 kms, bringing one to Sahsratal. The name “Sahsra Tal” means - 1000 Lakes! Visit to this divine lake is in itself a religious yatra!
Day 09 : Sahastral - Kalyani (2683 mts/8800 ft) (16 kms/6 hrs) In the morning trek to Kalyani with packed lunch. Sahsratal is located on the mountain and Kalyani is located in the valley originating from the Khatling Glacier. The descent takes one on the thickly wooded ridge and the way is said to be very trechearous the path has to be searched and it is not uncommon to get lost here with the service of a professional guide.
Day 10 : Kalyani - Kharsoli (2896 mts/9489 ft) (11 kms/5 hrs) In the morning trek to Kharsoli via Biroda with packed lunch. Kharsoli used to be an unblemished meadow earlier. Now it has been bifurcated by the dried stream, full of boulders. A few years back, the stream just above the Kharsoli meadow changed its regular course and ran through the middle of the meadow leaving behind a gigantic scar in its wake.
Day 11 : Kharsoli - Tambakund (3413 mts/11195 ft) (8 kms/5 hrs) In the morning trek to Tambakund with pack lunch. Next morning we started for Chowki. There are numerous glacier-fed streams flowing down on both sides of the river. The trek passes through meadows and a thick good tree cover; across the valley on the other side steep mountains with innumerous streams and waterfalls can be seen.
Day 12 : Tambakund - Khatling Glacier- Chauki (3717 mts/12192 ft) - Tambakund In the morning trek 3 kms trek to Khatling Glacier with packed lunch. The visit to Khatling glacier is only possible till the “Zero Point” and one can only go another 500 metres or so over the glacier (the detailed visit to the glacier takes 2 days) .Since the remaining part of the day is spent in the return trek back to Chauki, the photos are quickly taken and preprations are made till 1PM In the afternoon, return trek to Tambakund.
Day 13 : Chauki - Masar Tal (3675 mts/12054 ft) 6 kms/3 hrs In the morning trek to Masar Tal with packed lunch. The trek goes uphill from here continuously from the word “Go” till one reaches the windy Campsite at the top- marking the day’s end!. As the trek progresses the view of the peaks around and the Khatling valley become even better, and the bluish-green Bhimtal lake can be seen down below.
Day 14 : Masar Tal - Vasuki Tal (4135 mts/13563 ft) (15 kms/6 hrs) In the morning one starts for Vasuki Tal via Mayali pass (5400 mts) , when one has to cross the Mayali glacier to reach Painya Tal and Teental with packed lunch. This is a crystal clear pearl set in an unrivalled setting the Vasuki Tal Lake is next. All the lakes are 1 kms apart from each other and present difficult terrain consisting of boulders and loose moraine.
Day 15 : Vasuki Tal - Kedarnath (8 kms/4 hrs) In the morning trek down to Kedarnath with packed lunch. The initial 2 kms of this trip is a steep climb till the Vasuki top, from where one can clearly see the Kedarnath temple, Kedarnath peak, Meru Parvat, Sumeru Parvat and the Manda Parbat.
Day 16 : Kedarnath - Gaurikund (14 kms/4 hrs) - Rudraprayag (130 kms/4 hrs) After breakfast trek down to Gaurikund with packed lunch. As per religious texts Goddess Parvati meditated here for a considerable time to win a consort in Lord Shiva, Gauri is another name of Parvati. Also a famous temple of Gauri is at Gaurikund. Further drive to Rudraprayag. Dinner and overnight stay in hotel/ Tourist rest house.
Day 17 : Rudraprayag - Haridwar - Delhi (160 kms/6 hrs) In the morning transfer to airport to catch your onwards flight.
Tour & Service End.


The core of XStream consists of a registry of Converters. The responsibility of a Converter is to provide a strategy for converting particular types of objects found in the object graph, to and from XML.
XStream is provided with Converters for common types such as primitives, String, File, Collections, arrays, and Dates. The following table lists any converter delivered with XStream and documents, if they are registered by default with which priority.
java.lang (and core special types) |
||||
| Converter | Supported types | Example | Notes | Prio |
|---|---|---|---|---|
| NullConverter | null values | <null/> | Usually, null fields are left out of the XML, however when used in arrays or the root object they have to be explicitly marked. | very high |
| ArrayConverter | any kind of array |
<string-array> <string>apple</string> <string>banana</string> <string>cabbage</string> <string-array> |
This supports arrays of primitives as well as objects. It also supports multi-dimensional arrays, even if they are non-rectangular. | normal |
| BooleanConverter | boolean java.lang.Boolean |
<boolean>true</boolean> | Can also be registered locally using different values. | normal |
| ByteConverter | byte java.lang.Byte |
<byte>22</byte> | The byte is represented as an integer. | normal |
| EncodedByteArrayConverter | byte[] | <byte-array>AHiEFiEABQ==</byte-array> | Uses Base64 encoding to store binary data in XML. Converter can be registered globally or locally. | normal |
| CharConverter | char java.lang.Character |
<char>X</char> <char null="true"/> |
The '\0' character is invalid in XML. | normal |
| CharArrayConverter | char[] | <char-array>hello<char-array> | Joins all characters into a single String. | normal |
| DoubleConverter | double java.lang.Double |
<double>456774543443.4553435</double> | normal | |
| FloatConverter | float java.lang.Float |
<float>4563443.435</float> | normal | |
| IntConverter | int java.lang.Integer |
<int>12345678</int> | normal | |
| LongConverter | long java.lang.Long |
<long>2344556678888786</long> | normal | |
| NamedArrayConverter | any kind of array |
<string-array> <product>apple</product> <product>banana</product> <product>cabbage</product> <string-array> |
This supports arrays of primitives as well as objects. It also supports multi-dimensional arrays, even if they are non-rectangular. Should be registered locally or for an individual array type. | |
| ShortConverter | short java.lang.Short |
<short>1445</short> | normal | |
| StringConverter | java.lang.String | <string>hello world</string> | This converter can be registered with different caching strategies. | normal |
| StringBufferConverter | java.lang.StringBuffer | <string-buffer>hello world</string-buffer> | normal | |
| StringBuilderConverter | java.lang.StringBuilder | <string-builder>hello world</string-builder> | Available with Java 1.5 or greater. | normal |
| ThrowableConverter | java.lang.Throwable java.lang.Exception java.lang.RuntimeException java.lang.Error ...and all subclasses of these. |
<java.io.IOException serialization="custom"> <java.lang.Throwable> <default> <detailMessage>No file</detailMessage> <stack-trace> <trace>com.x.Foo.stuff(Foo.java:22)</trace> <trace>com.x.Foo.blah(Foo.java:31)</trace> <trace>com.x.Foo.main(Foo.java:43)</trace> </stack-trace> </default> </java.lang.Throwable> </java.io.IOException> |
This is only available with Java 1.4 or greater. It retains the full stack trace, including that of any nested exceptions. The stack trace elements are handled by the StackTraceElementConverter. | normal |
| EnumConverter | java.lang.Enum | <java.lang.annotation.RetentionPolicy> CLASS </java.lang.annotation.RetentionPolicy> |
Available with Java 1.5 or greater. | normal |
| EnumToStringConverter | java.lang.Enum | The Converter must be initialized with an Enum type and an optional mapping between strings and enum values. By default it will use the Enum's string representation as value. | Available with Java 1.5 or greater. Must be registered explicitly for the Enum type or locally. | |
java.util |
||||
| Converter | Supported types | Example | Notes | Prio |
| CollectionConverter | java.util.ArrayList java.util.LinkedList java.util.HashSet java.util.Vector java.util.LinkedHashSet |
<linked-list> <string>apple</string> <string>banana</string> <big-decimal>12345.4555</big-decimal> </linked-list> |
The objects inside the collection can be any type of objects, including nested collections. Can be registered for an individual Collection type or locally, suppression of implicit type might be necessary. | normal |
| MapConverter | java.util.HashMap java.util.Hashtable java.util.LinkedHashMap java.util.concurrent.ConcurrentHashMap |
<map> <entry> <string>apple</string> <float>123.553</float> </entry> <entry> <string>orange</string> <float>55.4</float> </entry> </map> |
Both key and values can be any type of objects. Can be registered for an individual Map type or locally, suppression of implicit type might be necessary. | normal |
| NamedCollectionConverter | java.util.ArrayList java.util.LinkedList java.util.HashSet java.util.Vector java.util.LinkedHashSet |
<fruits> <fruit>apple</fruit> <fruit>banana</fruit> <fruit>orange</fruit> </fruits> |
The objects inside the collection can be of any type shared between the objects. Should be registered locally or for an individual Collection type. | |
| NamedMapConverter | java.util.HashMap java.util.Hashtable java.util.LinkedHashMap java.util.concurrent.ConcurrentHashMap |
<map> <fruit> <name>apple</name> <price>123.553</price> </fruit> <fruit> <name>orange</name> <price>55.4</price> </fruit> </map> |
Both key and values can be any type of objects. If key or value are written as attributes or if the value is written as text of the entry element, those types must be handled by a SingleValueConverter. Should be registered locally or for an individual Map type. | |
| PropertiesConverter | java.util.Properties |
<properties> <property name="host" value="localhost"/> <property name="port" value="888"/> </properties> |
Because the Properties class only accepts Strings for keys and values, the XML can be more concise.
If the Properties instance includes a set of default Properties, these are serialized in a nested <defaults> element. |
normal |
| SingletonCollectionConverter | java.util.Collections.singletonList().getClass() java.util.Collections.singleton().getClass() |
<singleton-set> <string>apple</string> </singleton-set> |
The objects inside the singleton collection can be any type of objects, including nested collections. | normal |
| SingletonMapConverter | java.util.Collections.singletonMap().getClass() |
<singleton-map> <entry> <string>apple</string> <float>123.553</float> </entry> </singleton-map> |
The objects inside the singleton collection can be any type of objects, including nested collections. | normal |
| TreeMapConverter | java.util.TreeMap |
<tree-map> <comparator class="com.blah.MyComparator"/> <entry> <string>apple</string> <float>123.553</float> </entry> <entry> <string>orange</string> <float>55.4</float> </entry> </tree-map> |
This is similar to MapConverter with an additional field for storing the java.util.Comparator associated with the TreeMap. | normal |
| TreeSetConverter | java.util.TreeSet |
<tree-set> <comparator class="com.blah.MyComparator"/> <string>apple</string> <string>banana</string> <string>cabbage</string> </tree-set> |
This is similar to CollectionConverter with an additional field for storing the java.util.Comparator associated with the TreeSet. | normal |
| BitSetConverter | java.util.BitSet | <bit-set>0,1,3,5,6,8,10</bit-set> | Stores a comma separated list of which bits are set. Designed to be readable without taking up too much space. | normal |
| DateConverter | java.util.Date | <date>2004-02-22 15:16:04.0 UTC</date> | Can be registered with different formats, locales or time zone globally or locally. | normal |
| GregorianCalendarConverter | java.util.Calendar java.util.GregorianCalendar |
<gregorian-calendar> <time>555454646</time> </gregorian-calendar> |
normal | |
| ISO8601DateConverter | java.util.Date | <date>2006-07-28T12:06:17.654-03:00</date> | Not automatically registered, can be used globally or locally. Implementation needs joda-time for JDK 1.7 or below. | |
| ISO8601GregorianCalendarConverter | java.util.GregorianCalendar |
<gregorian-calendar> 2006-07-28T12:07:02.788-03:00 </gregorian-calendar> |
Not automatically registered, can be used globally or locally. Implementation needs joda-time for JDK 1.7 or below. | |
| LocaleConverter | java.util.Locale | <locale>en_GB</locale> | normal | |
| CurrencyConverter | java.util.Currency | <currency>USD</currency> | Available with Java 1.4 or greater. | normal |
| UUIDConverter | java.util.UUID | <uuid>ca05f023-e07f-4956-a6ef-14ddd23df47b</uuid> | Available with Java 1.5 or greater. | normal |
| OptionalConverter | java.util.Optional |
<optional> <value class="string">test</value> </optional> |
Available with Java 1.8 or greater. | normal |
| OptionalDoubleConverter | java.util.OptionalDouble | <optional-double>1.8</optional-double> | Available with Java 1.8 or greater. | normal |
| OptionalIntConverter | java.util.OptionalInt | <optional-int>42</optional-int> | Available with Java 1.8 or greater. | normal |
| OptionalLongConverter | java.util.OptionalLong | <optional-long>2344556678888786</optional-long> | Available with Java 1.8 or greater. | normal |
| EnumMapConverter | java.util.EnumMap |
<enum-map enum-type="simple"> <entry> <simple>GREEN</simple> <string>grass</string> </entry> <entry> <simple>BLUE</simple> <string>sky</string> </entry> </enum-map> |
Available with Java 1.5 or greater. | normal |
| EnumSetConverter | java.util.EnumSet |
<enum-set enum-type="simple"> GREEN,BLUE </enum-set> |
Available with Java 1.5 or greater. | normal |
| RegexPatternConverter | java.util.regex.Pattern |
<java.util.regex.Pattern> <pattern>.*</pattern> <flags>0</flags> </java.util.regex.Pattern> |
Available with Java 1.4 or greater. | normal |
java.util.concurrent.atomic |
||||
| Converter | Supported types | Example | Notes | Prio |
| AtomicBooleanConverter | java.util.concurrent.atomic.AtomicBoolean | <atomic-boolean>true</atomic-boolean> | Available with Java 1.5 or greater. | normal |
| AtomicIntegerConverter | java.util.concurrent.atomic.AtomicInteger | <atomic-integer>12345678</atomic-integer> | Available with Java 1.5 or greater. | normal |
| AtomicLongConverter | java.util.concurrent.atomic.AtomicLong | <atomic-long>2344556678888786</atomic-long> | Available with Java 1.5 or greater. | normal |
| AtomicReferenceConverter | java.util.concurrent.atomic.AtomicReference |
<atomic-reference> <value class="string">test</value> </atomic-reference> |
Available with Java 1.5 or greater. | normal |
java.time |
||||
| Converter | Supported types | Example | Notes | Prio |
| DurationConverter | java.time.Duration | <duration>PT24000H</duration> | Available with Java 8 or greater. | normal |
| InstantConverter | java.time.Instant | <instant>2017-07-30T20:40:00Z</instant> | Available with Java 8 or greater. | normal |
| LocalDateConverter | java.time.LocalDate | <local-date>2017-10-30</local-date> | Available with Java 8 or greater. | normal |
| LocalDateTimeConverter | java.time.LocalDateTime | <local-date-time>2017-10-30T20:40:15</local-date-time> | Available with Java 8 or greater. | normal |
| LocalTimeConverter | java.time.LocalTime | <local-time>20:40:15</local-time> | Available with Java 8 or greater. | normal |
| MonthDayConverter | java.time.MonthDay | <month-day>--01-13</month-day> | Available with Java 8 or greater. | normal |
| OffsetDateTimeConverter | java.time.OffsetDateTime | <offset-date-time>2017-07-30T20:40:00Z</offset-date-time> | Available with Java 8 or greater. | normal |
| OffsetTimeConverter | java.time.OffsetTime | <offset-time>20:40:15+01:00</offset-time> | Available with Java 8 or greater. | normal |
| PeriodConverter | java.time.Period | <period>P1000D</period> | Available with Java 8 or greater. | normal |
| SystemClockConverter | java.time.Clock$SystemClock | <system-clock> <zone>Europe/Berlin</zone> </system-clock> | Available with Java 8 or greater. | normal |
| YearConverter | java.time.Year | <year>2017</year> | Available with Java 8 or greater. | normal |
| YearMonthConverter | java.time.YearMonth | <year-month>2017-02</year-month> | Available with Java 8 or greater. | normal |
| ZonedDateTimeConverter | java.time.ZonedDateTime | <zoned-date-time>2017-10-30T20:40:00Z[Europe/London]</zoned-date-time> | Available with Java 8 or greater. | normal |
| ZoneIdConverter | java.time.ZoneId java.time.ZoneOffset java.time.ZoneRegion |
<zone-id>Z</zone-id> | Available with Java 8 or greater. | normal |
java.time.chrono |
||||
| Converter | Supported types | Example | Notes | Prio |
| ChronologyConverter | java.time.chrono.Chronology implementations | <chronology>ISO</chronology> | Available with Java 8 or greater. | normal |
| HijrahDateConverter | java.time.chrono.HijrahDate | <hijrah-date>Hijrah-umalqura AH 1438-11-07</hijrah-date> | Available with Java 8 or greater. | normal |
| JapaneseDateConverter | java.time.chrono.JapaneseDate | <japanese-date>Japanese Heisei 29-07-30</japanese-date> | Available with Java 8 or greater. | normal |
| JapaneseEraConverter | java.time.chrono.JapaneseEra | <japanese-era>Taisho</japanese-era> | Available with Java 8 or greater. | normal |
| MinguoDateConverter | java.time.chrono.MinguoDate | <minguo-date>Minguo ROC 106-07-30</minguo-date> | Available with Java 8 or greater. | normal |
| ThaiBuddhistDateConverter | java.time.chrono.ThaiBuddhistDate | <thai-buddhist-date>haiBuddhist BE 2560-07-30</thai-buddhist-date> | Available with Java 8 or greater. | normal |
java.time.temporal |
||||
| Converter | Supported types | Example | Notes | Prio |
| ValueRangeConverter | java.time.temporal.ValueRange |
<temporal-value-range> <maxLargest>45</maxLargest> <maxSmallest>30</maxSmallest> <minLargest>1</minLargest> <minSmallest>0</minSmallest> </temporal-value-range> |
Available with Java 8 or greater. | normal |
| WeekFieldsConverter | java.time.temporal.WeekFields |
<week-fields> <minimalDays>2</minimalDays> <firstDayOfWeek>MONDAY</firstDayOfWeek> </week-fields> |
Available with Java 8 or greater. | normal |
java.sql |
||||
| Converter | Supported types | Example | Notes | Prio |
| SqlDateConverter | java.sql.Date | <sql-date>1978-08-25</sql-date> | Only automatically registered if runtime has JDBC support. | normal |
| SqlTimeConverter | java.sql.Time | <sql-time>14:07:33</sql-time> | Only automatically registered if runtime has JDBC support. | normal |
| SqlTimestampConverter | java.sql.Timestamp | <sql-timestamp>1970-01-01 00:00:01.234</sql-timestamp> | Only automatically registered if runtime has JDBC support. | normal |
| ISO8601SqlTimestampConverter | java.sql.Timestamp | <sql-timestamp>2006-07-28T12:06:17.654000000-03:00</sql-timestamp> | Not automatically registered, can be used globally or locally. Implementation needs joda-time for JDK 1.7 or below. | |
java.math |
||||
| Converter | Supported types | Example | Notes | Prio |
| BigDecimalConverter | java.math.BigDecimal | <big-decimal>342346.445332</big-decimal> | normal | |
| BigIntegerConverter | java.math.BigInteger | <big-int>23434224556</big-int> | normal | |
java.net |
||||
| Converter | Supported types | Example | Notes | Prio |
| URIConverter | java.net.URI | <uri>mailto:xstream-user.codehaus.org</uri> | normal | |
| URLConverter | java.net.URL | <url>http://codehaus.org/blah</url> | normal | |
java.io |
||||
| Converter | Supported types | Example | Notes | Prio |
| FileConverter | java.io.File | <file>/stuff/hello.txt</file> | normal | |
| SerializableConverter | java.io.Serializable | See description at Generalized Converters. | low | |
| ExternalizableConverter | java.io.Externalizable |
<externalizable-type> <string>apple</string> <int>42</int> <big-decimal>12345.4555</big-decimal> </externalizable-type> |
See description at Generalized Converters. | low |
java.nio |
||||
| Converter | Supported types | Example | Notes | Prio |
| CharsetConverter | java.nio.charset.Charset | <charset>US-ASCII</charset> | Available with Java 1.4 or greater. | normal |
| PathConverter | java.nio.file.Path | <path>../dir/file.txt</path> | Available with Java 7 or greater. | normal |
java.lang.reflect |
||||
| Converter | Supported types | Example | Notes | Prio |
| JavaClassConverter | java.lang.Class | <class>com.foo.MyThing</class> | This converter uses the ClassLoaderReference of the XStream instance. Can be registered with Mapper globally or locally to respect type aliases. | normal |
| JavaFieldConverter | java.lang.reflect.Field |
<field> <name>myField</name> <class>com.foo.MyThing</class> </field> |
This converter uses the ClassLoaderReference of the XStream instance. Can be registered with Mapper globally or locally to respect type aliases. | normal |
| JavaMethodConverter | java.lang.reflect.Method java.lang.reflect.Constructor |
<method> <class>com.foo.MyThing</class> <name>doStuff</name> <parameter-types> <class>java.lang.String</class> <class>java.util.Iterator</class> </parameter-types> </method> |
The enclosing element for this tag will either by <method> or <constructor>. This converter uses the ClassLoaderReference of the XStream insatance. Can be regisreted with Mapper globally or locally to respect type aliases. | normal |
| DynamicProxyConverter | Any dynamic proxy generated by java.lang.reflect.Proxy |
<dynamic-proxy> <interface>com.foo.Blah</interface> <interface>com.foo.Woo</interface> <handler class="com.foo.MyHandler"> <something>blah</something> </handler> </dynamic-proxy> |
The dynamic proxy itself is not serialized, however the interfaces it implements and the actual InvocationHandler instance are serialized. This allows the proxy to be reconstructed after deserialization. | normal |
java.awt |
||||
| Converter | Supported types | Example | Notes | Prio |
| ColorConverter | java.awt.Color |
<awt-color> <red>255</red> <green>255</green> <blue>255</blue> <alpha>255</alpha> </awt-color> |
Only automatically registered if runtime has AWT support. Warning: The AWT toolkit is definitely initialized when a Color is deserialized. |
normal |
| FontConverter | java.awt.Font javax.swing.plaf.FontUIResource |
<awt-font> <family class="string">Arial</family> <size class="float">20.0</size> <width class="null"/> <posture class="null"/> <weight class="float">2.0</weight> <superscript class="null"/> </awt-font> |
Only automatically registered if runtime has AWT support. Warning: The AWT toolkit is definitely initialized when a Font is deserialized. |
normal |
java.awt.font |
||||
| Converter | Supported types | Example | Notes | Prio |
| TextAttributeConverter | java.awt.font.TextAttribute | <awt-text-attribute>family</awt-text-attribute> | Only automatically registered if runtime has AWT support. Warning: The AWT toolkit is definitely initialized when a TextAttribute is deserialized. |
normal |
javax.activation |
||||
| Converter | Supported types | Example | Notes | Prio |
| ActivationDataFlavorConverter | javax.activation.ActivationDataFlavor |
<activation-data-flavor> <mimeType>application/x-junit</mimeType> <humanRepresentableName>JUnit</humanRepresentableName> <representationClass>java.io.InputStream</representationClass> </activation-data-flavor> |
Available with Java 6, 7 and 8. Requires module java.activation with Java 9 or greater. | normal |
javax.swing |
||||
| Converter | Supported types | Example | Notes | Prio |
| LookAndFeelConverter | javax.swing.LookAndFeel implementations | Only automatically registered if runtime has Swing support. | normal | |
javax.security.auth |
||||
| Converter | Supported types | Example | Notes | Prio |
| SubjectConverter | javax.security.auth.Subject |
<auth-subject> <principals> <com.thoughtworks.xstream.Admin/> </principals> <readOnly>false</readOnly> </auth-subject> |
Available with Java 1.4 or greater. This converter does not serialize any credentials but only the principals. | normal |
javax.xml.datatype |
||||
| Converter | Supported types | Example | Notes | Prio |
| DurationConverter | javax.xml.datatype.Duration | <duration>PT1H2M</duration> | Available with Java 1.5 or greater. | normal |
Generalized Converters |
||||
| Converter | Supported types | Explanation | Notes | Prio |
| ReflectionConverter | Any type | The Converter is used as fallback. It uses reflection to examine the class and will serialize its fields. | very low | |
| SerializableConverter | java.io.Serializable or types with one of the serializable methods readObject or writeObject | The Converter is used for any JDK-serializable types, if not handled by a specialized Converter. | low | |
| ExternalizableConverter | java.io.Externalizable | The Converter is used for any externalizable type, if not handled by a specialized Converter. | low | |
| LambdaConverter | For serializable lambda types. | Non-serializable lambda instances will be mapped to null, since they contain no information for recreation. Serializable lambda types have such info, but it is specific to compiler vendor and occurrence in the code. Never assume that you can deserialize such an element when you use a different version of your code or a different compiler. | Available with Java 8 or greater. | normal |
| ToAttributedValueConverter | Any type with all fields to be represented by a single string but one. | The Converter is used to write all but one fields of the type as attributes. The left over field is then used as current value. | Must be registered globally or locally for the appropriate type. | |
| ToStringConverter | Any type with natural String representation | The Converter must be initialized with a type, that provides a complete String representation with its toString() method and is able to be recreated by a constructor taking a single String argument. | Must be registered globally or locally for the appropriate type. | |
| JavaBeanConverter | Java beans | The Converter handles any type as Java bean. It expects the type to convert to have a public default constructor and appropriate getter and setters. | Must be registered globally or locally. Can be used as fallback with priority very low. | |
| PropertyEditorCapableConverter | Any type with a PropertyEditor implementation | The Converter can handles any type that provides a PropertyEditor implementation. The PropertyEditor's methods getAsText() and setAsText() are used to convert between object and string representation. | Must be registered globally or locally for the appropriate type. | |
Converters for 3rd party classes |
||||
| Converter | Supported types | Explanation | Notes | Add-On |
| CGLIBEnhancedConverter | Proxies generated by the CGLIB Enhancer | The Converter handles proxies generated by the CGLIB Enhancer, if there were not multiple callbacks registered. A proxy with multiple callbacks can currently not be handled at all. | Must be registered globally and in combination with the CGLIBMapper. See FAQ. | xstream |
| HibernatePersistentCollectionConverter | org.hibernate.collection.internal.PersistentBag org.hibernate.collection.internal.PersistentList org.hibernate.collection.internal.PersistentSet org.hibernate.envers.entities.mapper.relation.lazy.proxy.ListProxy org.hibernate.envers.entities.mapper.relation.lazy.proxy.SetProxy |
The Converter handles Hibernate 4 (or 3) standard collections and Envers proxies. It will handle any element of the collection. | Must be registered explicitly in combination with the HibernateMapper and all the other Hibernate converters. See package description. | xstream-hibernate |
| HibernatePersistentMapConverter | org.hibernate.collection.internal.PersistentMap org.hibernate.envers.entities.mapper.relation.lazy.proxy.MapProxy |
The Converter handles unsorted Hibernate 4 (or 3) maps or Envers proxy. It will handle any key and value of the map. | Must be registered explicitly in combination with the HibernateMapper and all the other Hibernate converters. See package description. | xstream-hibernate |
| HibernatePersistentSortedMapConverter | org.hibernate.collection.internal.PersistentSortedMap org.hibernate.envers.entities.mapper.relation.lazy.proxy.SortedMapProxy |
The Converter handles sorted Hibernate 4 (or 3) maps or Envers proxy. It will handle any key and value of the map. | Must be registered explicitly in combination with the HibernateMapper and all the other Hibernate converters. See package description. | xstream-hibernate |
| HibernatePersistentSortedSetConverter | org.hibernate.collection.intrernal.PersistentSortedSet org.hibernate.envers.entities.mapper.relation.lazy.proxy.SortedSetProxy |
The Converter handles sorted Hibernate 4 (or 3) sets or Envers proxy. It will handle any element of the set. | Must be registered explicitly in combination with the HibernateMapper and all the other Hibernate converters. See package description. | xstream-hibernate |
| HibernateProxyConverter | org.hibernate.proxy.HibernateProxy | The Converter handle any element that is wrapped by a Hibernate proxy. | Must be registered explicitly in combination with the HibernateMapper and all the other Hibernate converters. See package description. | xstream-hibernate |


About The Application
This was developed as a learning exercise for Spring Boot using Java. The concept was to use a web application to track improvement in a business environment, keeping the learnings separate, yet searchable and trackable over time. The current application uses SQLite to track the improvements (for simplicity and to make sure Spring and Heroku were the focus of my project). Anyone who would like more information on the project or to customize the solution for your needs, contact the developer here.


observabilitystack.org
Home
Documentation
Log management for Kubernetes clusters.
Providing the building bricks for a state of the art log management and observability stack. Highly configurable and templated, perfect to manage
smaller clusters, more of them.
Free and open source.
Take a look at the demos


Members
activeWeapon :Weapon
The weapon that the player is currently holding or reloading
Type:
activity :string
What the player is doing (currently known values: 'menus', 'playing')
Type:
- string
clan :string
The clan name of the player
Type:
- string
matchStats :Object.<string, number>
kills, assists, deaths, mvps, score
Type:
- Object.<string, number>
name :string
The Steam profile name of the player
Type:
- string
state :PlayerState
The current state object of the player
Type:
steamId :string
The steamID of the player
Type:
- string
team :string
The team of the player. Either "T" or "CT"
Type:
- string
weaponIds :Array.<string>
Ex. ["weapon_0","weapon_1"]. Planned for removal
Type:
- Array.<string>
weapons :Array.<Weapon>
Type:
- Array.<Weapon>


Mercedes driver Lewis Hamilton wins 6th Formula One world title at US Grand Prix
by EndPlayAUSTIN, Texas - AUSTIN, Texas (AP) - Mercedes driver Lewis Hamilton wins 6th Formula One world title at US Grand Prix.
AUSTIN, Texas - AUSTIN, Texas (AP) - Mercedes driver Lewis Hamilton wins 6th Formula One world title at US Grand Prix.


This repository
This repository
All repositories
Explore
Gist
Blog
Help
wenbo1020
New repository
New organization
This repository
New issue
New collaborator
1
Unwatch
Notification status
Not watching
You only receive notifications for conversations in which you participate or are @mentioned.
Watch
Watching
You receive notifications for all conversations in this repository.
Unwatch
Ignoring
You do not receive any notifications for conversations in this repository.
Stop ignoring
Unstar
Star
0
Fork
0
public
wenbo1020
/
trunk
Code
Issues
0
Pull Requests
0
Wiki
Pulse
Graphs
Network
Settings
HTTPS
clone URL
SSH
clone URL
Subversion
checkout URL
You can clone with
HTTPS
,
SSH
, or
Subversion
.
Clone in Desktop
Download ZIP
—
Edit
Description
Website
Save
or
cancel
6
commits
1
branch
0
releases
1
contributor
JavaScript
100%
JavaScript
branch:
master
Switch branches/tags
Branches
Tags
master
Create branch:
from ‘master’
Nothing to show
trunk
/
Show File Finder
Update test.js
…
new change!
latest commit
1a968d62c7
wenbo1020
authored
December 08, 2013
.gitignore
First git commit!
October 14, 2013
LICENSE
Initial commit
October 09, 2013
README.md
Initial commit
October 09, 2013
test.js
Update test.js
December 08, 2013
testjs.js
Create testjs.js
October 17, 2013
README.md
trunk
Something went wrong with that request. Please try again.


Maintainer / core-developer information¶
Before a release¶
Update authors table:
$ cd build_tools; make authors; cd ..
and commit.
Confirm any blockers tagged for the milestone are resolved, and that other issues tagged for the milestone can be postponed.
Ensure the change log and commits correspond (within reason!), and that the change log is reasonably well curated. Some tools for these tasks include:
maint_tools/sort_whats_new.py
can put what’s new entries into sections.- The
maint_tools/whats_missing.sh
script may be used to identify pull requests that were merged but likely missing from What’s New.
Preparing a bug-fix-release¶
Since any commits to a released branch (e.g. 0.999.X) will automatically update the web site documentation, it is best to develop a bug-fix release with a pull request in which 0.999.X is the base. It also allows you to keep track of any tasks towards release with a TO DO list.
Most development of the bug fix release, and its documentation, should happen in master to avoid asynchrony. To select commits from master for use in the bug fix (version 0.999.3), you can use:
$ git checkout -b release-0.999.3 master
$ git rebase -i 0.999.X
Then pick the commits for release and resolve any issues, and create a pull
request with 0.999.X as base. Add a commit updating sklearn.__version__
.
Additional commits can be cherry-picked into the release-0.999.3
branch
while preparing the release.
Making a release¶
Update docs:
Edit the doc/whats_new.rst file to add release title and commit statistics. You can retrieve commit statistics with:
$ git shortlog -s 0.99.33.. | cut -f2- | sort --ignore-case | tr '\n' ';' | sed 's/;/, /g;s/, $//'
Update the release date in whats_new.rst
Edit the doc/index.rst to change the ‘News’ entry of the front page.
Note that these changes should be made in master and cherry-picked into the release branch.
On the branch for releasing, update the version number in sklearn/__init__.py, the
__version__
variable by removingdev*
only when ready to release. On master, increment the verson in the same place (when branching for release).Create the tag and push it:
$ git tag -a 0.999 $ git push git@github.com:scikit-learn/scikit-learn.git --tags
Create the source tarball:
Wipe clean your repo:
$ git clean -xfd
Generate the tarball:
$ python setup.py sdist
The result should be in the
dist/
folder. We will upload it later with the wheels. Check that you can install it in a new virtualenv and that the tests pass.Update the dependency versions and set
BUILD_COMMIT
variable to the release tag at:https://github.com/MacPython/scikit-learn-wheels
Once the CI has completed successfully, collect the generated binary wheel packages and upload them to PyPI by running the following commands in the scikit-learn source folder (checked out at the release tag):
$ pip install -U wheelhouse_uploader twine $ python setup.py fetch_artifacts
Check the content of the
dist/
folder: it should contain all the wheels along with the source tarball (“scikit-learn-XXX.tar.gz”).Make sure that you do not have developer versions or older versions of the scikit-learn package in that folder.
Upload everything at once to https://pypi.org:
$ twine upload dist/
For major/minor (not bug-fix release), update the symlink for
stable
in https://github.com/scikit-learn/scikit-learn.github.io:$ cd /tmp $ git clone --depth 1 --no-checkout git@github.com:scikit-learn/scikit-learn.github.io.git $ cd scikit-learn.github.io $ echo stable > .git/info/sparse-checkout $ git checkout master $ ln -sf 0.999 stable $ git push origin master
The following GitHub checklist might be helpful in a release PR:
* [ ] update news and what's new date in master and release branch
* [ ] create tag
* [ ] update dependencies and release tag at https://github.com/MacPython/scikit-learn-wheels
* [ ] twine the wheels to PyPI when that's green
* [ ] https://github.com/scikit-learn/scikit-learn/releases draft
* [ ] confirm bot detected at https://github.com/conda-forge/scikit-learn-feedstock and wait for merge
* [ ] https://github.com/scikit-learn/scikit-learn/releases publish
* [ ] announce on mailing list
* [ ] (regenerate Dash docs: https://github.com/Kapeli/Dash-User-Contributions/tree/master/docsets/Scikit)
The scikit-learn.org web site¶
The scikit-learn web site (http://scikit-learn.org) is hosted at GitHub, but should rarely be updated manually by pushing to the https://github.com/scikit-learn/scikit-learn.github.io repository. Most updates can be made by pushing to master (for /dev) or a release branch like 0.99.X, from which Circle CI builds and uploads the documentation automatically.
Travis Cron jobs¶
From https://docs.travis-ci.com/user/cron-jobs: Travis CI cron jobs work similarly to the cron utility, they run builds at regular scheduled intervals independently of whether any commits were pushed to the repository. Cron jobs always fetch the most recent commit on a particular branch and build the project at that state. Cron jobs can run daily, weekly or monthly, which in practice means up to an hour after the selected time span, and you cannot set them to run at a specific time.
For scikit-learn, Cron jobs are used for builds that we do not want to run in each PR. As an example the build with the dev versions of numpy and scipy is run as a Cron job. Most of the time when this numpy-dev build fail, it is related to a numpy change and not a scikit-learn one, so it would not make sense to blame the PR author for the Travis failure.
The definition of what gets run in the Cron job is done in the .travis.yml
config file, exactly the same way as the other Travis jobs. We use a if: type
= cron
filter in order for the build to be run only in Cron jobs.
The branch targeted by the Cron job and the frequency of the Cron job is set via the web UI at https://www.travis-ci.org/scikit-learn/scikit-learn/settings.
Experimental features¶
The sklearn.experimental
module was introduced in 0.21 and contains
experimental features / estimators that are subject to change without
deprecation cycle.
To create an experimental module, you can just copy and modify the content of enable_hist_gradient_boosting.py, or enable_iterative_imputer.py.
Note that the public import path must be to a public subpackage (like
sklearn/ensemble
or sklearn/impute
), not just a .py
module.
Also, the (private) experimental features that are imported must be in a
submodule/subpackage of the public subpackage, e.g.
sklearn/ensemble/_hist_gradient_boosting/
or
sklearn/impute/_iterative.py
. This is needed so that pickles still work
in the future when the features aren’t experimental anymore
Please also write basic tests following those in test_enable_hist_gradient_boosting.py.
Make sure every user-facing code you write explicitly mentions that the feature
is experimental, and add a # noqa
comment to avoid pep8-related warnings:
# To use this experimental feature, we need to explicitly ask for it:
from sklearn.experimental import enable_hist_gradient_boosting # noqa
from sklearn.ensemble import HistGradientBoostingRegressor
For the docs to render properly, please also import
enable_my_experimental_feature
in doc/conf.py
, else sphinx won’t be
able to import the corresponding modules. Note that using from
sklearn.experimental import *
does not work.
Note that some experimental classes / functions are not included in the
sklearn.experimental
module: sklearn.datasets.fetch_openml
.


We received a request to change your email address. You can confirm this and change your email address to "email" by clicking the following link.
Confirm email change


To combine two lists to form a third list, use
append(
Head,
Tail,
List)
.
To analyze a list into its component lists in various ways, use
append/3
with List instantiated to a proper list. The
reference page for append/3
includes examples of its usage,
including backtracking.
To check the length of a list call length(
List,
Length)
.
To produce a list of a certain length, use length/2
with
Length instantiated and List uninstantiated or
instantiated to a list whose tail is a variable.
To check if a term is the element of a list, use memberchk(
Element,
List)
.
To enumerate the elements of a list via backtracking, use member(
Element,
List)
.
To check that a term is NOT the element of a list, use nonmember(
Element,
List)
,
which is equivalent to \+member(
Element,
List)
.


Moosic Trivia
00:00
1. The first pop music video released is?
A. Bohemian Rhapsody
B. In my feelings
C. Plutomania
D. Man of the woods
2. Name the lead singer born Farrokh Bulsara?
A. Rami Malek
B. Brian May
C. Jim Hutton
D. Freddie Mercury
3. Name the oldest member of The Jackson 5?
A. Jermaine Jackson
B. Jackie Jackson
C. Tito Jackson
D. Michael Jackson
4. The number of strings on a Ukulele is?
A. 3
B. 6
C. 4
D. 8
5. A ‘pick’ is used to play which instrument?
A. Guitar
B. Tamborine
C. Flute
D. Maracas
6. Name the singer who released the album, "Here, My Dear"?
A. Marvin Gaye
B. Elton John
C. Justin Timberlake
D. Bruno Mars
7. Who was the very first American Idol winner?
A. Carrie Underwood
B. Kelly Clarkson
C. Bianca Ryan
D. Neal E. Boyd
8. Which mathematical symbol is not the name of an Ed Sheeran album?
A. Multiply
B. Plus
C. Divide
D. Substract
9. In which video does Michael Jackson play a zombie?
A. Bad
B. Beat It
C. Thriller
D. Smooth Criminal
10. Which American singer featured on the Mark Ronson smash hit single Uptown Funk?
A. Bruno Mars
B. Pharrell Williams
C. Chris Brown
D. Usher


Pull Requests gladly accepted How to Deploy a Dovecot-Postfix Mail Server on Ubuntu 12.04 =
There are many, many ways in which to setup and configure a mail server. This article aims to outline a quick, and simple, way of deploying a mail server with the Postfix and Dovecot backends.
Follow the steps outlined in:
How To Create Your First DigitalOcean Droplet Virtual Server
For increased security, it is advisable that you create your droplet with pre-installed SSH keys. See How To Use SSH Keys with DigitalOcean Droplets. Windows users: Refer to How To Create SSH Keys with PuTTY to Connect to a VPS | DigitalOcean
Initial Server Setup with Ubuntu 12.04 | DigitalOcean. >* For added security, it is advisable that you disable password logins. See How To Create SSH Keys with PuTTY to Connect to a VPS | DigitalOcean.
Set your server’s hostname and Fully Qualified Domain Name by implementing the steps in Setting the Hostname & Fully Qualified Domain Name (FQDN) on Ubuntu 12.04 or CentOS 6.4.
You can change your server’s timezone to whatever you want; altough it may be best to set it to the same timezone of most of your users. To do so, simply execute, in a terminal:
sudo dpkg-reconfigure tzdata
and follow the instructions in the ensuing, on-screen prompts.
To make sure that your server operating system (OS) is up to date, execute:
sudo apt-get update && sudo apt-get -y dist-upgrade && sudo apt-get -y autoremove && sudo reboot now
When the update completes, the server will reboot to make sure that all of the software upgrades take effect.
The mail-stack-delivery
package will install Dovecot and configure Postfix to use it for both SASL authentication and as a Mail Delivery Agent (MDA). The package also configures Dovecot for IMAP, IMAPS, POP3, and POP3S. To install the package, execute:
sudo apt-get -y install mail-stack-delivery
During the installation, you will presented a prompt, asking you to “select the mail server configuration type that best meets your needs.” Leave the default option set (Internet Site
), tap on the Tab
key, on your keyboard, to highlight <Ok>
, and tap on the Enter
key.
You will then be asked to provide the Fully Qualified Domain Name (FQDN) of your mail server. If you configured your /etc/hosts
file correctly, your servers FQDN should be prefilled. Tap on the Tab
key, on your keyboard, to highlight <Ok>
, and tap on the Enter
key.
Congratulations, you now have a working mail server.
Note: The mail-stack-delivery
package uses the certificate and key from the ssl-cert
package and is more than adequate for testing purposes.
To use your new mail server in a production environment, you should create a custom SSL certificate and key generated specifically for your mail server. You can obtain a free SSL certificate from the StartCom Certification Authority (CA), at StartSSL.com or you may create a self-signed certificate.
To obtain an SSL certificate from a commercial CA, you will need to provide the CA with a CSR. To generate a CSR, execute:
sudo openssl req -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/mail.key -out mail.csr
To create a self-signed certificate, execute:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/mail.key -out /etc/ssl/certs/mail.pem
Once you have a customized certificate and key for your mail server, execute:
sudo vim /etc/postfix/main.cf
and change the following directives to reflect the locations of your certificate and private key:
smtpd_tls_cert_file = /etc/ssl/certs/mail.pem
smtpd_tls_key_file = /etc/ssl/private/mail.key
Then, do the same for Dovecot:
sudo vim /etc/dovecot/conf.d/01-mail-stack-delivery.conf
Finally, restart Postfix:
sudo /etc/init.d/postfix restart
Now that you have the benefits of SSL security available, make sure that secure protocols are always used:
sudo vim /etc/dovecot/dovecot.conf
Look for the protocols
directive and limit the protocols to the following:
protocols = imaps pop3s
Then, execute:
sudo vim /etc/dovecot/conf.d/01-mail-stack-delivery.conf
and do the same:
protocols = imaps pop3s
In addition, uncomment the inet_listener imaps
section by removing the #
character, i.e.
inet_listener imaps
Execute:
sudo vim /etc/postfix/master.cf
Uncomment the smtps inet
line and all the -o
options that follow.
Any server accessible from the public Internet should be security hardened, and a mail server is no exception. While security best practices are not within the scope of this article – at a minimum – add a firewall. See How to Setup a Firewall with UFW on an Ubuntu and Debian Cloud Server.
As always, if you need help with the steps outlined in this How-to, look to the DigitalOcean Community for assistance by posing your question(s), below.
Pull Requests gladly accepted


Click on the map to select your destination:
Extra travel info
What is your travel style?
caution
adventurous
Are you traveling with children?
No
Yes
Medication


Latest Dragon Age 4 tease almost guarantees an imminent reveal
by Vic HoodLatest Dragon Age 4 tease almost guarantees an imminent reveal
Happy Birthday Inquisitor!
(Image credit: BioWare)
BioWare really knows how to keep us balancing on a knife edge when it comes to Dragon Age 4 – but it looks like an official reveal is closer than ever.
Earlier this month the developer announced that, to celebrate the series' 10th anniversary, a celebration event will be taking place on December 4 – aka Dragon 4ge Day – leading fans to hope that an official Dragon Age 4 reveal could be part of the celebrations.
And a new tease by BioWare has only added fuel to the fire, essentially guaranteeing that a reveal is imminent.
- Best upcoming games 2019: most anticipated titles for console
- Best PC games: the top PC games right now
- Best games 2019: our favorite PC and console games of the year
Time for tea?
BioWare's latest tease comes in the form of a tweet to celebrate the fifth anniversary of Dragon Age: Inquisition. The tweet shows a letter from Dragon Age's Solas to the Inquisitor, suggesting "Tea Soon?".
Check it out below:
It doesn't seem like much but we know from Dragon Age 4's teaser trailer that Solas plays a big role in Dragon Age 4 – the Elf may even be the main antagonist.
This tweet definitely seems to be teasing something. Either that or BioWare loves to make us suffer.
We're hoping BioWare will shed some light on the game soon – particularly as there have been rumors it will follow in Anthem's footsteps and be a live service title. It seems all will be officially revealed on December 4.


Please check the types of emails you’d like to receive:
Please tell us how often you’d like to hear from Make-A-Wish Foundation:
*Required fields.


Luxury giant LVMH seals deal to acquire Tiffany & Co
Both companies’ boards have approved the deal which is expected to be finalised next year.
French luxury giant LVMH Moet Hennessy Louis Vuitton has said it has reached a deal to buy US-based jewellery outfit Tiffany & Co for 16.2 billion US dollars (£12.58 billion).
LVMH said in a statement that the deal values the 180-year old Tiffany and its 300 boutiques worldwide at 135 dollars a share.
The agreed deal is higher than the 14.5 billion dollars cash offer LVMH made last month.
The conglomerate said both companies’ boards approved the deal and hope to finalise the takeover in 2020 subject to the approval of regulators and Tiffany shareholders.
LVMH says the deal will strengthen its position in high-end jewellery and in the US market.
LVMH already owns 75 brands including Christian Dior, Fendi, and Givenchy as well as watchmaker Tag Heuer.
The purchase would also give LVMH a much broader foothold in the United States and broaden its offerings in jewellery.
Tiffany says the deal will ensure the company’s long-term sustainability.
Tiffany, which is trying to transform its brand to appeal to younger shoppers, could use a company with deep pockets to help expand its business.
The offer comes as luxury goods companies have been wrestling with changing habits of shoppers who are increasingly buying online.
They are also purchasing second-hand luxury items from places like The RealReal.com.
In addition, luxury companies are facing fears of an economic slowdown in China, a key area of business, while they are already dealing with a slowdown in international tourism in the US.
Earlier this year, it launched a men’s jewellery collection, and it is increasing its marketing to a more diverse customer base like same-sex couples.
It has also been renovating its flagship store in Manhattan.
Still, Tiffany’s US sales have been stagnating as China’s slowing economy has weighed on spending by Chinese tourists, who make up a substantial portion of luxury spending.
The strong dollar has also made Tiffany products more expensive for consumers outside the US.


Before Change
Returns:
A generator that yields a loss value to report for this step.
raise NotImplementedError()
def _run_model(self, source, target):
Computes the loss of the given source and target pair.
After Change
def _step():
return self._step()
for i in itertools.count():
try:
loss = _forward()
except tf.errors.OutOfRangeError: // Dataset iterator exhausted.
break
if tf.math.is_nan(loss):
raise RuntimeError("Model diverged with loss = NaN.")
if i == 0 or (i + 1) % accum_steps == 0:
_step()
if i == 0:
self._broadcast_variables()
yield loss
def _run_model(self, source, target):
Computes the loss of the given source and target pair.
Args:


Table of Contents
1. Introduction
2. Functional Objectives
3. Non-Functional Objectives
4. Context Model
Goal Statement
Context Diagram
System Externals
5. Use Case Model
System Use Case Diagram
Use Case Descriptions
Login User
Register User
Register Preferences
Place Order (Customer)
(Sales Agent)
Charge Customer
Bill Customer
Request Assistance
6. Class Model
7. Appendix
1. Introduction
1.1 Purpose of Document
This is a Requirements Specification document for a new web-based
sales system for Solar Based Energy, Inc. (SBE). SBE is a distributor of
alternative energy products including windmills, photovoltaics and
fuel cells. The new system will upgrade the current websites to
provide customers and employees customized browsing of the product
catalog and the ability to complete product orders on-line. This document
describes the scope, objectives and goal of the new system. In addition
to describing non-functional requirements, this document models the functional
requirements with use cases, interaction diagrams, and class models. This
document is intended to direct the design and
implementation of the target system in an object oriented language.
1.2 Project Summary
| Project Name: | SBE Sales System |
| Project Manager: |
Mary Beth Lohse, CEO, CIS 616 Consulting |
| Project Analysts: |
Benjamin B. Bolz, Lead Analyst
Cynthia C. Caldwell, Senior Analyst
David D. Dreese, Analyst
Helen H. Hitchcock, Analyst |
| Responsible Users: |
Imogene I. Ives, President of SBE
Benjamin B. Baker, Vice-President of Sales |
|---|
1.3 Background
SBE sells state-of-the-art alternative energy systems utilizing
wind and solar power. SBE customers include both individuals and
businesses interested in incorporating wind or solar energy sources
into either new or existing construction. SBE has identified two
trends that they believe will cause explosive growth in the demand
for their products. The first is the continuing energy crisis in
the western United States. The second is the maturation of fuel
cell technology which provides a feasible system for storing excess
power generation for later use.
SBE sells state-of-the-art alternative energy systems utilizing
wind and solar power. SBE customers include both individuals and
businesses interested in incorporating wind or solar energy sources
into either new or existing construction. SBE has identified several
trends that they believe will cause explosive growth in the demand for their
products. They include the growing consumer unease with deregulated energy
markets, the potential for disruptions to energy imports, and the maturation
of fuel cell technology which
provides a feasible system for storing excess power
generation for later use.
Because of the innovative and technical nature of their products,
SBE employs sales agents who can guide customers through the
process of choosing an alternative energy system.
Other SBE employees are identified as a product "owners". The product
owner is the expert on a particular product or product line.
As the authoritative source of product information he produces
whitepapers--highly technical and focused documents on product
specifications.
As alternative energy becomes more mainstream,
SBE anticipates changes in the needs of their customers.
Some customers will be more knowledgeable
and will need less assistance from a sales agent.
Expanding sales outside the United States will drive the
need to service customers in languages other than English.
Currently there are two separate web sites. The public website
(www.sbe.com) is static HTML. It provides general information
about SBE and its products. Customers who are interested in
ordering are provided contact information for the nearest
SBE sales office. The internal website (www.sbesales.com) is restricted
to SBE employees and provides detailed product information. Sales orders
are placed by agents on this site. Two different Oracle databases underly
these sites.
Problems with the current system include
- the information available on the public website is too limited
and the user cannot immediately place an order
- the existence of two databases means information is often
inconsistent or incorrect
- users who need more technical information have difficulty accessing
the relevant whitepapers
- sales agents have difficulty reaching product owners
Imogene I. Ives,
President of SBE has requested that an analysis be done with a view to
reengineering the current sales system.
The new system should allow customers direct access to product
information and ordering as well as continuing to provide support to
the existing sales agent network.
1.4 Project Scope
The scope of this project is a web-based system that supports the
marketing of SBE products directly
to customers as well as through the existing sales agent network.
Advertising of products, inventory control,
and account billing are not part of this project.
The two current web sites will be replaced by this new system. In addition,
changes to the logical and physical design of the current databases
are expected. The actual implementation of a new database system is not
part of this project. A web search engine and language translator will
be obtained as purchased components for the new system. Their internal
details are not part of this project. Issues of website security, other
than password protection within the site, are not part of this project.
1.5 System Purpose
1.5.1 Users
Those who will primarily benefit from the new system and those who
will be affected by the new system include
- Customers:
- Upon implementation of the new system, customers will
find site navigation, product identification and product
ordering easier. Customers will be able to choose whether
to buy directly from SBE or work with a sales agent.
- Sales Agents:
- The new system will provide sales agents with more detailed,
accurate and up-to-date product information. They will be
informed of potential customers more quickly and they will
have faster access to the product owner.
- Product Owners:
- Product owners will be allowed to maintain the data about
their products directly. This will eliminate delays in
getting new products or changed product specifications into
the system.
- Customer Service Department:
- The new system should reduce the workload of Customer Service
as customers are able to find the information they need from
the web-site.
- Marketing Department:
- Site navigation data could be sent to the Marketing
Department. Understanding how a customer uses the web site
to make a purchase will result in improvements in getting
and keeping customers.
- Accounting Department:
- Purchase information will be sent directly to Accounting,
allowing for more accurate and timely billing.
- Shipping Department:
- Purchase information will be sent directly to Shipping
for inventory control and order processing.
- Information Technology Department:
- This department will be responsible for implementing the
new database, hosting the website and maintaining the system.
1.5.2 Location
The system will be available to any potential customer using the
Internet. SBE employees may also use the system from any location
and will be able to access restricted areas of the site through a password
protection scheme.
1.5.3 Responsibilities
The primary responsibilities of the new system:
- provide customers direct access to up-to-date, accurate
product information on which they can make a decision
to buy
- customize product offerings to specific users
- allow differential access to web pages based on
type of user
- allow customers to place an order through the website
- allow customers to request the assistance of a sales agent
- provide sales agents improved access to product information
and product owners
- allow product owners to maintain information about their
products directly
- allow access to whitepapers on demand
- send order information directly to Accounting and Shipping
Other desired features of the new system:
- a consistent "look and feel" throughout the website
- full-text searches of the web pages a user has permission
to access
- on-line help in website navigation
- password protection scheme for non-public web pages
- translation of a web page to another language
The system will not be responsible for account receivables,
or inventory control.
1.5.4 Need
This system is needed in order to service the expected increase in
demand for alternative energy products. Replacement of the current
websites will eliminate the shortcomings of those sites. The new
system will allow SBE to rapidly increase sales without a large
and expensive increase in the number of sales agents and other
customer support employees.
1.6 Overview of Document
The rest of this document gives the detailed specifications for the
new sales system. It is organized as follows:
- Section 2: Functional Objectives
Each objective gives a desired behavior for the system, a business
justification, and a measure to determine if the final system has
successfully met the objective. These objectives are organized by priority.
In order for the new system to be considered successful, all high
priority objectives must be met.
- Section 3: Non-Functional Objectives
This section is organized by category. Each objective specifies
a technical requirement or constraint on the overall characteristics
of the system. Each objective is measurable.
- Section 4: Context Model
This section gives a text description of the goal of the system, and a
pictorial description of the scope of the system in a context diagram.
Those entities outside the system that interact with the system are described.
- Section 5: Use Case Model
The specific behavioral requirements of the system are detailed in
a series of use cases. Each use case accomplishes a business task
and shows the interaction between the system and some outside actor.
Each use case is described with both text and an interaction diagram.
An interface prototype is also shown.
The system use case diagram depicts the interactions between all
use cases and system actors.
- Section 6: Class Model
A class is a collection of objects in the system that have the
same data and behavior.
All analysis classes and their relationships are shown on the
class diagram.
- Section 7: An appendix containing a glossary that
defines terms specific to this project
2. Functional Objectives
2.1 High Priority
- The system shall allow for on-line product ordering by either
the customer or the sales agent. For customers, this will eliminate
the current delay between their decision to buy and the placement
of the order. This will
reduce the time a sales agent spends on an order by x%.
The cost to process an order will be reduced to $y.
- The system shall reflect a new and changed product description within
x minutes of the database being updated by the product owner. This will
reduce the number of incidents of incorrectly displayed information by x%.
This
eliminates the current redundant update of information, saving $y dollars
annually.
- The system shall display information that is customized based
on the user's company, job function, application and locale. This feature will
improve service by reducing the mean number of web pages a user
must navigate per session to x. It should reduce unnecessary phone
calls to sales agents and staff by x%.
- The system shall allow employees to view the owner of any product.
An employee should be able to contact the correct owner
in one phone call x% of the time.
- The system shall allow a customer to directly contact the nearest sales
office in his region. This will improve service by reducing the time
to respond to a customer request to no more than x days.
- The system shall provide accounting with accurate purchase transaction
data. This will improve customer service by reducing billing complaints
by x% and save $y in correcting inaccurate accounts.
- The system shall provide shipping with accurate order data. This will
allow the order to be processed in x days and inventory to be updated
within y hours.
2.2 Medium Priority
- The system shall provide a search facility that will allow full-text
searching of all web pages that the user is permitted to access. The
system must support the following searches:
- find all words specified
- find any word specified
- find the exact phrase
- Boolean search
- The system shall make whitepapers available from the product page.
This will allow customers to
answer product questions themselves, reducing customer support
costs by $x annually.
2.3 Low Priority
- The system shall allow the user's status to be stored for the
next time he returns to the web site. This will save the user x minutes
per visit by not having to reenter already supplied data.
- The system shall provide marketing with customer navigation
information. This information will allow marketing to determine
what information prompts a purchase and help target potential
customers more effectively. This will increase annual revenue
by $x in additional sales.
- The system shall translate web pages into the languages of
the countries where the company's products are available. This
will improve customer service and reduce the number of support
calls from foreign customers by x%.
3. Non-Functional Objectives
3.1 Reliability
- The system shall be completely operational at least x% of
the time.
- Down time after a failure shall not exceed x hours.
3.2 Usability
- A sales agent should be able to use the system in his
job after x days of training.
- A user who already knows what product he is interested in should
be able to locate and view that page in x seconds.
- The number of web pages navigated to access product information
from the top page should not exceed x.
3.3 Performance
- The system should be able to support x simultaneous users.
- The mean time to view a web page over a 56Kbps modem connection
shall not exceed x seconds.
- The mean time to download and view and whitepaper in PDF format
for a 56Kbps modem shall not exceed x seconds.
3.4 Security
- The system shall provide password protected access to web pages that
are to be viewed only by employees.
- Transaction data must be transmitted in encrypted form.
3.5 Supportability
- The system should be able to accommodate new products and
product lines without major reengineering.
- The system web site shall be viewable from Internet Explorer 4.0
or later, Netscape Navigator/Communicator 3.0 or later and the America Online
web browser version 3.0 or later.
3.6 Online user Documentation and Help
- The system shall provide a web page that explains how to
navigate the site. This page should be customized based on
what pages that user is allowed to access.
- This help page should be accessible from all other pages.
3.7 Purchased Components
- A language translation tool from English to French and English to German
will be needed.
- A web site search engine will be needed.
3.8 Interfaces
The system must interface with
- The current Oracle database systems for product and
order information
- The current Oracle Financial accounting system
- The current AccountPro inventory system
- The acquired language translation tool
- The acquired web site search engine
4. The Context Model
The goal of the system is to allow SBE to increase sales revenue by x%
over the next y years with only a z% increase in sales and customer
service staff by
- allowing complete and accurate customer and order information
to be captured directly from the customer as well as from
sales agents
- providing customers and sales agents fast access to up-to-date and
accurate product information and whitepapers.
- Customer
- A customer is any user of the system that has not identified
himself as an SBE employee. A customer may search for public
product information by keyword, access whitepapers for a
particular product, order a product or request assistance
from a sales agent.
A customer who provides personal information
will get search and query results customized to his preferences.
- Sales Agent
- A sales agent is a user who has been verified as an SBE
employee. A sales agent may access all available product
information and whitepapers, including the product owner.
A sales agent may place an order on behalf of a customer.
He will be informed by the
system of any customers in his region who have requested
assistance.
- Product Owner
- The product owner is a user who has been verified as an
SBE employee. The product owner may update product information
and whitepapers for those products for which he is responsible.
- Accounting
- The Accounting department is responsible for all SBE financial
transactions. The Accounting department is informed of
all purchases and is responsible for later collection of
accounts receivable.
- Shipping
- The Shipping department is informed of purchases so that
it can process the order and update inventory.
- Marketing
- The Marketing department is responsible for creating demand
for SBE products. It will receive website navigation data
to use in planning marketing strategies.
5. The Use Case Model
Notes:
- For all use cases, the user can cancel the use case at
any step that requires user input. This action ends the
use case. Any data collected during that use case is lost.
- For all use cases that require a logged in user, the current
login session is updated during the use case to reflect the
navigation paths through the use case.
| Use Case Name: |
Login User |
| Summary: |
In order to get personalized or restricted information, place orders
or do other specialized transactions a user must login so that
that the system can determine his access level. |
| Basic Flow: |
- The use case starts when a user indicates that he wants to login.
- The system requests the username and password.
- The user enters his username and password.
- The system verifies the username and password against all registered
users.
- The system starts a login session and displays a welcome message based on
the user's preferences.
|
| Alternative Flows: |
- Step 4:
- if username is invalid, the use case goes back to step 2.
- Step 4:
- if the password is invalid the system requests that the
user re-enter the password. When the user enters another password
the use case continues with step 4 using the
original username and new password.
|
| Extension Points: |
none |
| Preconditions: |
The user is registered. |
| Postconditions: |
The user can now obtain data and perform functions according
to his registered access level. |
| Business Rules: |
Some data and functions are restricted to certain types of users
or users with a particular access level. |
| Use Case Name: |
Register User |
| Summary: |
In order to get personalized or restricted information, place orders
or do other specialized transactions a new user must register a username and password. |
| Basic Flow: |
- The use case start when a user indicates that he wants to register.
- The system requests a username and password.
- The user enters a username and password.
- The system checks that the username does not duplicate any
existing registered usernames.
- The system requests a name (*),
street, city, state, zipcode(*), phone and email address. Items
marked by (*) are required.
- The user enters the information.
- The system determines the user's location and access level and
stores all user information.
- The system executes use case Register Preferences.
- The system starts a login session and displays a welcome message based on
the user's preferences.
|
| Alternative Flows: |
- Step 4: If the username duplicates an existing username
the system displays a message and the use case goes back to step 2.
- Step 5: If the user does not enter a required field, a message
is displayed and the use case repeats step 4.
|
| Extension Points: |
Register Preferences |
| Preconditions: |
none |
| Postconditions: |
The user can now obtain data and perform functions according
to his registered access level. |
| Business Rules: |
- A registered user's location is the SBE location nearest his
zip code.
- Access levels are
- 0: A user can access only data classification 0
- 1: The user can access data classification <= 1
- 2: The user can access data classification <= 2
The default access level is 0.
|
| Use Case Name: |
Register Preferences |
| Summary: |
This use case allows a registered user to enter or change his
preferences. |
| Basic Flow: |
- The use case start when a user indicates that he wants to enter
or modify his preferences.
- The system displays all current product lines. It indicates
any product lines that the user has currently selected.
- The user selects/deselects product lines.
- The system displays current language preferences. It indicates
the language preference currently selected.
- The user may select a different language preference.
- The system stores any change to language preference.
|
| Alternative Flows: |
none
|
| Extension Points: |
none |
| Preconditions: |
The user is logged in. |
| Postconditions: |
The system can customize a welcome message based
on the user's revised preferences. |
| Business Rules: |
Language selections allowed are are English (default),
French and German. |
| Use Case Name: |
Place Order
Scenario: Customer places his own order. |
| Summary: |
This use case allows a registered customer to place
an order for a product. |
| Basic Flow: |
- The use case start when a customer indicates he wants to
place an order for the current product being displayed.
- The system displays the customer's information: name,
street, city, zip, phone, email.
- The customer may add or change any of the information.
- The system stores any changes. If the zipcode has changed,
the system modifies the customer's location.
- The system requests the quantity to order and the shipping address.
- The customer enters quantity and shipping address.
- The system displays the payment options available to
this customer.
- The customer selects a payment option.
- The system completes the payment by executing
use case Charge Customer or Bill Customer
depending on which option was selected.
- The system stores the order information, decreases the
quantity on hand for the product and sends the
order details to Shipping.
- The system displays a order completion message and sends
a receipt to the user.
|
| Alternative Flows: |
- Step 9:
- If the selected payment method could not be
validated, go to step 8 to get
another payment option.
- Step 10:
- If the quantity on hand is not sufficient for
this order, a message is sent to the customer
and the use case is canceled.
|
| Extension Points: |
Charge Customer; Bill Customer |
| Preconditions: |
The customer is logged in and has completed a
search for the product to be ordered |
| Postconditions: |
The product is sold. |
| Business Rules: |
If a customer has been previously authorized for billing by a
sales agent, the customer may billed for the order. Otherwise
the customer must pay in full by credit card at the time
of the order. |
| Use Case Name: |
Place Order
Scenario: Sales agent places an order for a customer. |
| Summary: |
This use case allows a sales agent to place
an order for a registered customer. It also allows the
sales agent to change the customers access level and
payment options. |
| Basic Flow: |
- The use case starts when a sales agent indicates he wants to
place an order for a customer.
- The system requests the customers username.
- The sales agent enters the username.
- The system displays the registered customer's information,
including access level and payment options.
- The sales agent makes changes to the customer information.
- The system stores any updated information.
- The system requests the product id, quantity and shipping address.
- The sales agent enters the product id, quantity and shipping address.
- The system displays payment options for this customer.
- The sales agent selects a payment option.
- The system completes the payment by executing
use case Charge Customer or Bill Customer
- The system stores the order information, decreases the
quantity on hand for the product, sends the
order details to Shipping.
- The system displays a order completion message and sends
a receipt to the customer.
|
| Alternative Flows: |
- Step 11:
- If the selected payment method could not be
validated, go to step 10 to get
another payment option.
- Step 12:
- If the quantity on hand is not sufficient for
this order, a message is sent to the sales agent
and the use case is canceled.
|
| Extension Points: |
Charge Customer; Bill Customer |
| Preconditions: |
The sales agent is logged in, knows the username
of the customer, his payment method and the product
to be ordered. |
| Postconditions: |
The product is sold and the sales agent is credited with
the sale. |
| Business Rules: |
Sales agent have the authority to allow a customer to be
billed. They may also increase the customer's access
level to product data. |
| Use Case Name: |
Charge Customer |
| Summary: |
This use case charges the order currently being
placed to a credit card. |
| Basic Flow: |
- The use case begins when a user selects "Credit Card" as
a payment option, while in use case Place Order
- The system requests the credit card number, type and expiration
date.
- The user enters the information.
- The system verifies that the credit card is valid for the
amount to be charged and completes the credit card
transaction.
- The system stores the payment details and returns a
success message
|
| Alternative Flows: |
Step 4: If the credit card cannot be validated the
use case ends, returning a failure message |
| Extension Points: |
none |
| Preconditions: |
The system is executing use case Place Order. |
| Postconditions: |
The customer has been charged for the order. |
| Business Rules: |
Credit cards accepted are Visa, MasterCard and Discover. |
| Use Case Name: |
Bill Customer |
| Summary: |
This system gets the billing details for the
order. They will be part of the Daily Transactions
Report sent to Accounting in use case Report Daily
Transactions. Billing and collection is handled
outside this system by Accounting. |
| Basic Flow: |
- The use case begins when a user selects "Bill me" as
a payment option, while in use case Place Order
- The system requests the billing address.
- The user enters the billing address.
- The system stores the payment details.
|
| Alternative Flows: |
none |
| Extension Points: |
none |
| Preconditions: |
The system is executing use case Place Order and the
customer is authorized for billing. |
| Postconditions: |
Accounting can bill the customer for this order. |
| Business Rules: |
Customers can be billed if it was previously authorized
by a sales agent. |
| Use Case Name: |
Request assistance |
| Summary: |
This use case allows anyone using the web site to request
a contact from a sales agent. |
| Basic Flow: |
- The use case starts when the customer asks for assistance.
- The system displays all
product lines, and provides space for the customer to
type a (optional) question.
- The customer selects the product line(s) he is interested in
and may enter a question.
- The system asks for a name, email address and zip code.
- The customer enters name, email address and zip code.
- The system selects a sales agent based on the customer's
location and product lines selected in step 3.
- The system displays message informing the customer
of which agent will be in contact.
- The system sends the request information to the selected sales agent.
It stores the request information for registered customers.
|
| Alternative Flows: |
- Step 4:
- If the customer is registered and
has previously provided his name, email address and zip code
the use case skips to Step 6.
- Step 6:
- If the customer is registered and has previously
been assisted by a sales agent, that same agent is selected.
|
| Extension Points: |
none |
| Preconditions: |
none |
| Postconditions: |
The sales agent has the customer contact information. |
| Business Rules: |
Customers are assigned to a sales agent at the closest
SBE location whose specialties most closely match the
the product lines the customer has indicated. If there is more
than one such sales agent, the one with the fewest customer
assistance requests is selected. That sales agent continues to be
assigned to that customer for any future requests.
The actual contact between the sales
agent and the customer is outside the system. |
6. The Class Model
Glossary
- Whitepaper
- Technical paper containing detailed product specifications.


?6
7
8
9
10
T
XT
v
The
New
York
copyright
reserved
botanical
Garden
BIMINI
ISLAND
GROUP
Bahamas,
B.W.I.
R.
A.
&
E.
S.
Howard
10168
May
1948
Gerardia
spiciflora
Engelm*
Herb
in
Salicomia
marsh
edge
of
black
mangrove.
Flowers
purple•
South
Bimini
Collected
for
the
N.Y.
Botanical
Garden
in
cooperation
with
the
Lerner
Marine
Laboratory
of
the
American
Museum
of
Natural
History
01333989
01333989
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


MozillaTN SRM WebExtension Hack
by Balaji
Techtonic is A Mozilla Web extensions Hands-on Workshop & Hackathon scheduled on 7 th and 8 th October 2017 at SRM University Kattakulathur Campus. The workshop will be taken by the Mozilla Reps Viswaprasath, Karthickeyan and Dinesh of the Mozilla Tamilnadu Community and is Organised by SRMKZILLA The Mozilla Campus Club Of SRM University KTR.
The aim of this session is to help attendees to get started with WebExtensions. On the first day, the attendees will learn about WebExtensions, and introduction about basic API. Then they will be sharing about the extension they would like to develop next day. Second day is full of coding and 1-hour demo by all the attendees.
This is the first time I am Fully mentoring the participants. Earlier I mentored the Participants in SFD17 Hack. But in SFD I was also one of the participants. There I mentored a small scale participants. Here its totally a different Scenario. The Participants ranges from 45-50. So More Responsibility 🙂.
Day 1:
The First day the Session Agenda was
- Getting Started with Mozilla Community
- Technical Introduction about Web Extension.
- Introduction of various Web Extension APIs.
- Discussion & Design prototype on Extension to be developed.
Karthickeyan Explained about the Contribution Path to Mozilla why we should move to the Mozilla Web Extensions.
Do you ❤ live coding.. our astronaut @hellokarthic is introducing us about world of @MozWebExt at #SRMKzillaExt pic.twitter.com/nUPMxtzC7E
— Mozilla Tamil Nadu (@mozillaTN) October 7, 2017
Then the Web Extension APIs like Context Menu Demo Were give by the Viswaprasath and Dinesh. Also the addon Demo Controlling Youtube by the Web Extension was also given. Through this Participants were able to get their First Web Extension running on their coolest browser now Yeah It’s Firefox Nightly. If you haven’t installed this yet You can get it here.
The Participants were So happy and coudn’t control their Joy. So they Started tweeting about it. We followed this HashTag #SRMKZillaExt for this Event. And The participants started thinking about the idea they want to develop next day.
Day 2:
This Day we started around 9:30 AM. The Paricipants are started filling up their ideas in etherpad. Based on that All of us started guiding the participants about the API they can use for their Extensions.
I mentored around 10 participants. I helped them debug their issues. One of the participants I mentored has an idea like Based on the options we select in Context menu it Search and filter out images with the different type of extensions like .png , .jpg. He is very active and he keep on asking questions. I also learned a lot of things by Debugging their Issues and I explored some new APIs.
After that totally 10 participants finished their Extensions in the given time. As I am already having a previous exprerience in Github and publishing the Web Extension, Viswaprasath told me to help the participants to publish their Extension into AMO. I mentored them to do so. At first the Add-on are published only after the review by the Human reviewers. It takes some time. Now Mozilla automated it. So the Extension review wait times are get much shorter, You can know more about it here. I covered my experience in detail in my previous blog post.
Right now reaction of developers at our #SRMKzillaExt event after their @MozWebExt is approved and available at @mozamo pic.twitter.com/gm0V8qc1bf
— Mozilla Tamil Nadu (@mozillaTN) October 8, 2017
They are happy to see their add-on get published in much shorter time. Then Dinesh Explained about the Major upgrade for Firefox, which is Firefox57 known as Quantum. He also explained about the Photon.
Wrap Up:
Then the participants Explained What they have developed and learned during these two days. And I make sure of all of them uploaded their code in Github. Som of them are new to Git So I helped them. I also talked with them to actively contribute to the Mozilla Community. Hope they Will 🙂. At last We took a group photo. Here you go.
Thank you eveyone for all those who made this event great. The important thing I learned is Community Building. One can Never learn these things in College, I am learning a lot by Contributing and taking part in the Open source Communities 🙂. A special Thanks to Viswaprasath, Karthickeyan and Dinesh.
Subscribe via RSS


--- layout: post title: "My Week in Review" date: 2016-07-24 08:05:00 +0000 tags: image: https://s3.amazonaws.com/audreywatters/2016-07-24-hb.jpg imagecredits: https://www.flickr.com/photos/howiemuzika/9643315210 ---
Icon credits: The Noun Project


Before Change
if not track_info:
track_info = self._player.get_current_track_info()
if track_info["uri"].startswith("x-rincon:"):
// this speaker is a slave, find the coordinator
// the uri of the track is "x-rincon:{coordinator-id}"
coordinator_id = track_info["uri"][9:]
coordinators = [device for device in DEVICES
if device.unique_id == coordinator_id]
self._coordinator = coordinators[0] if coordinators else None
else:
self._coordinator = None
if not self._coordinator:
is_playing_tv = self._player.is_playing_tv
is_playing_line_in = self._player.is_playing_line_in
After Change
except ValueError:
self._coordinator = None
else:
self._coordinator = None
if self._coordinator == self:
_LOGGER.warning("Coordinator loop on: %s", self.unique_id)
self._coordinator = None
track_info = None
if self._last_avtransport_event:
variables = self._last_avtransport_event.variables
current_track_metadata = variables.get(
"current_track_meta_data", {}
)
self._status = variables.get("transport_state")
if current_track_metadata:
// no need to ask speaker for information we already have
current_track_metadata = current_track_metadata.__dict__
track_info = {
"uri": variables.get("current_track_uri"),
"artist": current_track_metadata.get("creator"),
"album": current_track_metadata.get("album"),
"title": current_track_metadata.get("title"),
"playlist_position": variables.get("current_track"),
"duration": variables.get("current_track_duration")
}
else:
self._player_volume = self._player.volume
self._player_volume_muted = self._player.mute
transport_info = self._player.get_current_transport_info()
self._status = transport_info.get("current_transport_state")
if not track_info:
track_info = self._player.get_current_track_info()
if not self._coordinator:
is_playing_tv = self._player.is_playing_tv
is_playing_line_in = self._player.is_playing_line_in
media_info = self._player.avTransport.GetMediaInfo(
[("InstanceID", 0)]
)
current_media_uri = media_info["CurrentURI"]
media_artist = track_info.get("artist")
media_album_name = track_info.get("album")
media_title = track_info.get("title")
media_image_url = track_info.get("album_art", None)
media_position = None
media_position_updated_at = None
source_name = None
is_radio_stream = \
current_media_uri.startswith("x-sonosapi-stream:") or \
current_media_uri.startswith("x-rincon-mp3radio:")
if is_playing_tv or is_playing_line_in:
// playing from line-in/tv.
support_previous_track = False
support_next_track = False
support_stop = False
support_pause = False
if is_playing_tv:
media_artist = SUPPORT_SOURCE_TV
else:
media_artist = SUPPORT_SOURCE_LINEIN
source_name = media_artist
media_album_name = None
media_title = None
media_image_url = None
elif is_radio_stream:
media_image_url = self._format_media_image_url(
media_image_url,
current_media_uri
)
support_previous_track = False
support_next_track = False
support_stop = False
support_pause = False
source_name = "Radio"
// Check if currently playing radio station is in favorites
favs = self._player.get_sonos_favorites()["favorites"]
favc = [
fav for fav in favs if fav["uri"] == current_media_uri
]
if len(favc) == 1:
src = favc.pop()
source_name = src["title"]
// for radio streams we set the radio station name as the
// title.
if media_artist and media_title:
// artist and album name are in the data, concatenate
// that do display as artist.
// "Information" field in the sonos pc app
media_artist = "{artist} - {title}".format(
artist=media_artist,
title=media_title
)
else:
// "On Now" field in the sonos pc app
media_artist = self._media_radio_show
current_uri_metadata = media_info["CurrentURIMetaData"]
if current_uri_metadata not in \
("", "NOT_IMPLEMENTED", None):
// currently soco does not have an API for this
import soco
current_uri_metadata = soco.xml.XML.fromstring(
soco.utils.really_utf8(current_uri_metadata))
md_title = current_uri_metadata.findtext(
".//{http://purl.org/dc/elements/1.1/}title")
if md_title not in ("", "NOT_IMPLEMENTED", None):
media_title = md_title
if media_artist and media_title:
// some radio stations put their name into the artist
// name, e.g.:
// media_title = "Station"
// media_artist = "Station - Artist - Title"
// detect this case and trim from the front of
// media_artist for cosmetics
str_to_trim = "{title} - ".format(
title=media_title
)
chars = min(len(media_artist), len(str_to_trim))
if media_artist[:chars].upper() == \
str_to_trim[:chars].upper():
media_artist = media_artist[chars:]
else:
// not a radio stream
media_image_url = self._format_media_image_url(
media_image_url,
track_info["uri"]
)
support_previous_track = True
support_next_track = True
support_stop = True
support_pause = True
position_info = self._player.avTransport.GetPositionInfo(
[("InstanceID", 0),
("Channel", "Master")]
)
rel_time = _parse_timespan(
position_info.get("RelTime")
)
// player no longer reports position?
update_media_position = rel_time is None and \
self._media_position is not None
// player started reporting position?
update_media_position |= rel_time is not None and \
self._media_position is None
// used only if a media is playing
if self.state != STATE_PLAYING:
update_media_position = None
// position changed?
if rel_time is not None and \
self._media_position is not None:
time_diff = utcnow() - self._media_position_updated_at
time_diff = time_diff.total_seconds()
calculated_position = \
self._media_position + \
time_diff
update_media_position = \
abs(calculated_position - rel_time) > 1.5
if update_media_position:
media_position = rel_time
media_position_updated_at = utcnow()
else:
// don"t update media_position (don"t want unneeded
// state transitions)
media_position = self._media_position
media_position_updated_at = \
self._media_position_updated_at
playlist_position = track_info.get("playlist_position")
if playlist_position in ("", "NOT_IMPLEMENTED", None):
playlist_position = None
else:
playlist_position = int(playlist_position)
playlist_size = media_info.get("NrTracks")
if playlist_size in ("", "NOT_IMPLEMENTED", None):
playlist_size = None
else:
playlist_size = int(playlist_size)
if playlist_position is not None and \
playlist_size is not None:
if playlist_position == 1:
support_previous_track = False
if playlist_position == playlist_size:
support_next_track = False
self._media_content_id = track_info.get("title")
self._media_duration = _parse_timespan(
track_info.get("duration")
)
self._media_position = media_position
self._media_position_updated_at = media_position_updated_at
self._media_image_url = media_image_url
self._media_artist = media_artist
self._media_album_name = media_album_name
self._media_title = media_title
self._current_track_uri = track_info["uri"]
self._current_track_is_radio_stream = is_radio_stream
self._support_previous_track = support_previous_track
self._support_next_track = support_next_track
self._support_stop = support_stop
self._support_pause = support_pause
self._is_playing_tv = is_playing_tv
self._is_playing_line_in = is_playing_line_in
self._source_name = source_name
// update state of the whole group
for device in [x for x in self.hass.data[DATA_SONOS]
if x.coordinator == self]:
if device.entity_id is not self.entity_id:
self.schedule_update_ha_state()
if self._queue is None and self.entity_id is not None:
self._subscribe_to_player_events()
favs = self._player.get_sonos_favorites().get("favorites", [])


--- layout: post title: My odd sql variable names date: '2010-08-26T23:08:00.001+01:00' author: solrevdev tags: modified_time: '2010-08-26T23:08:54.326+01:00' blogger_id: tag:blogger.com,1999:blog-31446756.post-1470587703493034273 blogger_orig_url: http://www.solrevdev.com/2010/08/my-odd-sql-variable-names.html ---
Tonight I was looking through some code looking for a snippet of SQL that I wrote ages ago that I quickly wanted to hack and modify for something I am working on when I came across this:
This wasn’t what I was looking obviously but it has made me chuckle.