 creamy fluffy interior.
Place Potatoes in a pot with enough cold Water to cover the potatoes plus 1 inch on top, a pinch of Salt and a pinch of Bicarbonate of Soda. Boil for 10 – 12 minutes.
Drain the potatoes in a colander. Let them rest for 3 – 4 minutes and then place them back into the pot with the lid on. Shake the pot with the potatoes in to rough up the edges. The potatoes will start to fluff up.
Preheat the Grill with the Oil for 5 – 10 minutes at 200C. It should be very hot. Then carefully add the Potatoes. Turn the temperature down to 190 C. Cook for 25 – 30 minutes, baste regularly throughout and give them a good shake. Serve with a sprinkling of Salt.
<reponame>zloh/roll20-log-parser
import json
import base64
import argparse
from message import Message, RollMessage, AttackRollMessage, DamageRollMessage, AbilityMessage, \
        AbilityCheckMessage, parse_attackdamage_message

def parse_message_list(message_list):
    messages = []
    for page in message_list:
        # page is a dict of messages IDs to messages
        for message_id, message in page.items():
            template = message.get('rolltemplate')
            # just a regular chat message
            if message['type'] == 'general' and not message.get('rolltemplate'):
                messages.append(Message(message['who'], message.get('avatar'), message['.priority'],
                    message['content']))
            # Simple rolls, i.e. /roll 1d20+mod
            elif message['type'] == 'rollresult' and not message.get('inlinerolls'):
                messages.append(RollMessage(message['who'], message['avatar'], message['.priority'],
                    message['content'], message['origRoll']))
            # Rolls from character sheets
            elif message.get('inlinerolls'):
                if template == 'atk':
                    messages.append(AttackRollMessage(message['who'], message['avatar'], message['.priority'],
                        message['content'], message['inlinerolls']))
                elif template == 'atkdmg':
                    messages.extend(parse_attackdamage_message(message))
                    pass
                elif template == 'dmg':
                    messages.append(DamageRollMessage(message['who'], message['avatar'], message['.priority'],
                        message['content'], message['inlinerolls']))
                elif template =='simple':
                    messages.append(AbilityCheckMessage(message['who'], message['avatar'], message['.priority'],
                        message['content'], message['inlinerolls']))

            # Spells
            elif template =='spell' or template =='spelloutput' or template == 'traits':
                messages.append(AbilityMessage(message['who'], message['avatar'], message['.priority'],
                    message['content']))

    # sort messages by posted time ascending
    messages.sort(key=lambda x: x.timestamp.timestamp())
    return messages

def parse_log_file(input_path, output_path):
    with open(input_path) as raw_html, open(output_path, 'x', encoding='utf-8') as out:
        for line in raw_html:
            search_for = 'var msgdata = "'
            dump_start = line.find(search_for)
            if dump_start!= -1:
                # exclude the variable declaration bit of the string, and the closing '";'
                raw_message_dump = line[dump_start + len(search_for):-2]
                decoded_message_dump = base64.b64decode(raw_message_dump)
                messages = parse_message_list(json.loads(decoded_message_dump))
                out.writelines(['%s\n' % (message.pretty_print()) for message in messages])
                return
            else:
                continue
    # if we reach the end without finding the string we need, throw an error
    raise ValueError('Unable to find raw message dump in file %s' % path)

if __name__ == '__main__':
    arg_parser = argparse.ArgumentParser(description='Parse a HTML file containing roll20.net chat message')
    arg_parser.add_argument('input_path', metavar='input_path', type=str, help='the path of the HTML file to parse')
    arg_parser.add_argument('output_path', metavar='output_path', type=str, help='the path of the file to output parsed result to')
    args = arg_parser.parse_args()

    parse_log_file(args.input_path, args.output_path)
dsc analysis of polymers
The sample was heated from room temperature to 300 °C at a rate of 10°C/min. Composition analysis is especially key for quality control of a polymer based material. The plot also shows that this phenomenon is reproducible. DSC analysis provides test data for a wide range of materials, including polymers, plastics, composites, laminates, adhesives, food, coatings, pharmaceuticals, organic materials, rubber, petroleum, chemicals, explosives, biological samples and more. Differential Scanning Calorimetry is a particularly useful tool to analyze polymers. This method uses quasi-isothermal conditions, which expose the sample to a temperature modulation that is cycled around a single temperature. DSC is a thermo-analytical technique that we use to study what happen to polymers when they are heated. Using this method, the contaminating resin can be identified by comparing the control data with the data of the “failed” batch. Variations in thermal and morphological properties can affect polymer performance and processability. Synthetic polymers are widely used today, with diverse applications in various industries such as food, automotive, and packaging. The melting properties are essentially the same for both lots. However, the melting peak (above the Tg) shows dissimilarities between the two different techniques. The ΔHR transition corresponds with heat flow associated with this movement, and the magnitude of the peak is a measure of the extent of aging. Long term storage of polymers below Tg typically results in a gradual process of molecular relaxation. Figure 1 DSC Scan of Polyethylene Terephthalate: Heat Flow versus Temperature. This chapter presents the basics of differential scanning calorimetry (DSC) analysis and its correlation to polymer morphology for semicrystalline polymeric materials. The transition at 220°C was the Tg of PAES; the transition at 73°C provided evidence for the presence of a polymeric contaminant. The HPer DSC technique allows for the analysis of the metastability of polymers,. DTA Thermogram of a Polymer Analysis of a polymer shows several features due to physical and chemical changes, including: Glass transition: glassy, amorphous polymer becomes flexible, H = 0, but change in C p. Often Tg ~ 2/3 Tm. Figure 4 Conventional DSC Plot for PVC Resin: Overlap of Tg with ΔHR, Figure 5 MDSC Plot for PVC Resin: Separated Tg and ΔHR. This particular technique is used to measure thermal transitions which are changes that take place when you heat a polymer. Actually, the direct measurement of heat capacity by DSC involves thermodynamic calculations that are built into the instrument and necessitates a few extra calibrations by the operator. DSC testing was performed on a small slice taken from the part. Monitoring the heat-capacity related signal as a function of the applied experimental conditions (such as a heating ramp) can determine how the heat capacity of the sample changes as it undergoes a phase change or a chemical reaction. In addition, for the polymer industry, LINSEIS offers other high-quality measuring instruments such as heating microscopes, optical dilatometers, Light Flash â¦ It includes thermoplastics and thermoset, rubbers, or elastomer based â¦ It is especially useful for the study of polymeric materials, including thermoplastics, thermosets, elastomers, composites, films, fibers, coatings and paints. The “Conventional” DSC plot in Figure 4 shows the Tg of plasticized polyvinyl chloride (PVC) plus the ΔHR peak, which illustrate this transition overlap. DSC is highly useful in its ability to deliver precise readings on a materialâs specific heat capacity. >> Both the sample and reference are maintained at nearly the same temperature throughout the experiment. Typically 2 to 20 mg of material is placed in an aluminum capsule, shown above left, which is then placed on the sample (s) side of the DSC cell. Step 2: Turn on the Cooling Unit. Figure 7 DSC Plot for an Unknown Plastic Part, CASE STUDY II: THERMAL AND MORPHOLOGICAL VARIATIONS OF DIFFERENT LOTS OF MATERIAL. By comparison, the MDSC data reveals the complexity of the melting behavior of the petrolatum which can be transformed into meaningful information. Identification of a polymerâs melting, crystallization, and glass transition temperatures can help us characterize and compare such â¦ %PDF-1.4 The DSC temperature can then be rapidly quenched to produce a fully amorphous polymer, or slowly lowered to produce a crystalline polymer, allowing additional characterization of the degree of crystallization in different polymers. Call the thermal transitions which