Apple and Google may look similar on the surface, but the companies couldn't be any more different. That much has become clear to me after reading both the Steve Jobs biography by Walter Isaacson and Steven Levy's In the Plex.
Google and Apple are technology behemoths that bucked the system, created game-changing products and are worth more than $550 billion collectively. Both companies have successful mobile phone divisions and web browsers, and both companies have a common enemy in Microsoft.
The two companies are built on completely different foundations, though. Sergey Brin and Larry Page firmly believe in the power of data and numbers, and that reliance on the metrics is the cornerstone of every major decision the company makes. "Information was the great leveler at Google," Levy says in his book.
Steve Jobs, on the other hand, believed in the power of design and often threw out the data. "It's really hard to design products by focus groups," he famously said in a 1998 BusinessWeek interview. "A lot of times, people don't know what they want until you show it to them."
There is no starker contrast of the ying-yang battle of data vs. design. It's that conflicting yet complementary relationship that sparked one of the industry's closest friendships and, more recently, one of technology's fiercest rivalries.
For some reason, I decided to read both Steve Jobs and In the Plex at the same time (the former via Kindle, the latter via audiobook). It was a surreal experience, but it made it clear to me that Google and Apple are polar opposites.
Let's start with Google. If you need proof that data is king at Google, look no further than In the Plex. The word "data" appears in Levy's book approximately 319 times. "Design," on the other hand, appears fewer than 60 times.
"[Page and Brin] felt most comfortable in the meritocracy of academia, where brains trumped everything else. Both had an innate understanding of how the ultraconnected world that they enjoyed as computer science students was about to spread throughout society. Both shared a core belief in the primacy of data."
The result is a company with a deliberately collegiate atmosphere, a strong meritocracy where engineers are king, and most of all a "deep respect for data." Google is famous for making the tiniest changes to pixel locations based on the data it accrues through its tests. Google will always choose a spartan webpage that converts over a beautiful page that doesn't have the data to back it up.
"It looks like a human was involved in choosing what went where," Marissa Mayer once told an upset team of designers about a product design she rejected. "It looks too editorialized. Google products are machine-driven. They're created by machines. And that is what makes us powerful. That's what makes our products great."
Apple, on the other hand, falls on the opposite end of the spectrum. The word "design" and its variations appears in the Steve Jobs biography 432 times. The word "data" appears just 26 times in the book.
"I love it when you can bring really great design and simple capability to something that doesn't cost much," Jobs once told Isaacson. "It was the original vision for Apple. That's what we tried to do with the first Mac. That's what we did with the iPod."
That emphasis on design derives from Jobs's childhood experiences. Early in his life, his father taught him that it was important to craft the back of fences and cabinets properly, even though nobody would see them. Later in life, Jobs traveled through Asia and connected with the simplicity of Zen Buddhism.
Those lessons and experiences became part of his quest for perfection, a philosophy that is now essential to every product Apple ships.
Google has placed its faith in data, while Apple worships the power of design. This dichotomy made the two companies complementary. Apple would ship the phones and computers, while Google would provide Maps, Search, YouTube, and other web tools that made the devices more useful. But when Google decided to release its own mobile OS, their friendship quickly turned into a rivalry. And with Google poised to acquire a hardware company, that rivalry will only get stronger.
What can we learn from the battle between data and design? What can we learn from the relationship between Google and Apple?
Clearly no one school of thought is right: Apple and Google are both wildly successful and profitable companies that changed the world. Building a successful company (or living a happy life, for that matter) is not about embracing someone else's philosophy, but staying true to your own beliefs about the world and learning from the mistakes you make along the way.
Second, design-focused companies tackle different types of problems than data-focused ones. A design-focused company like Apple (or Flipboard) will focus on creating revolutionary, never-before-seen products, because data isn't great at predicting market revolutions. Data-focused companies like Google, however, have a better chance at revolutionizing existing markets because their products are simply better and more efficient. The search engine existed before Google, but the company used data to make the most effective one in the world. Apple, on the other hand, is credited with launching multiple revolutions, starting with personal computing.
Finally, while data and design are often opposing forces, they need each other as well. Jobs may have focused on design, but he didn't ignore the data. When he saw the dropped call data from AT&T at the beginning of "Antennagate," he rushed back from Hawaii to deal with it. The data provided the context on which he could design a response. Great design, even revolutionary ones, is built on solid data.
The Social Analyst is a column by Mashable Editor-at-Large Ben Parr, where he digs into social media trends and how they are affecting companies in the space.


Shirt dress with granddad collar in printed slub cotton. Button placket, centre front. Long sleeves, wide cuffs, 2 buttons. Multi-pleats on the cuffs inspired by vintage tailoring techniques. Shirt tail bottom, pockets hidden in the side seam. Made by Portugal's oldest master shirt makers who have been practicing their craft since 1943.
Composition: 100% printed slub cotton.


The shipwreck at Antikythera, Greece, continues to reveal its secrets and surprise archaeologists. As reported last week, recent excavations on the 1st century BC shipwreck have revealed statue fragments, bronze ornamentation, and wooden remains from the ship's hull.
The finds are sensational, but the artifacts and the project have broader importance. Among the finds was the bronze arm of a statue, which may be the most significant find.
When the shipwreck was first found and excavated in 1900-1901, a number of bronze and marble statues were recovered. However, the arm is the first piece that has been found recently and it might point to more intact statuary in the area.
The arm is one of several limb fragments that do not have corresponding bodies. The Antikythera team hypotheses those statues could be in the vicinity of the undisturbed deposit that they excavated this year.
New bronze statues would be a sensational discovery. Bronze statues are among the rarest artifacts to survive from antiquity; however, ancient authors tell us that they were quite common.
Ancient cities like Athens and Rome were filled with bronze sculptures, with bronze being preferred over marble.


Please quote #390258 in your email.
Academic Appointments are currently working alongside a Primary School located in Wakefield to appoint a part time key stage 2 teacher.
This post is to commence after February half term until July 2019.
The ideal candidate will be required to work all day Thursday and Friday, teaching in Year 3 but must be confident in planning, delivering and marking across key stage 2.
The school are rated 'Good' by Ofsted.


text:
package ui.components.template;

import java.awt.*;

/**
 * The {@link AbstractComponent} contains methods for creating a class that
 * contains a {@link Component} for composition.
 *
 * @param <TComponent> The {@link Component} for composition.
 */
public abstract class AbstractComponent<TComponent extends Component> {

    protected final TComponent component;

    protected AbstractComponent(TComponent component) {
        this.component = component;
    }

    protected abstract void initialize();

    public TComponent getComponent() {
        return component;
    }

}

redpajama_set_name: RedPajamaGithub


text:
MGT secures £100M loan from Deutsche Bank for Battersea Power Station deal
MGT secures £100M loan from D...
MGT Investment Management, a leading independent real estate investment and asset management business, has secured a £100M debt facility from Deutsche Bank to complete the purchase of its 92 apartments at the landmark Battersea Power Station.
MGT has just completed on the first tranche of apartments, as part of a forward purchase deal it committed to in early 2021 for a total of 92 units. The purchase represents a long-term investment in the Battersea Power Station project, with the apartments to be marketed for rent as part of MGT's ongoing strategy to invest in high quality residential homes to rent.
The commitment from Deutsche Bank reflects further institutional level support for MGT's focused residential investment programme, with MGT citing ambitions for further growth soon.
Henry Morris, managing director of MGT Investment Management, comments: "We are thrilled to have established this new financing relationship with Deutsche Bank, and look forward to working together on this incredibly exciting project. With the Northern Line extension now operational and an ever-increasing number of residents, retail and commercial occupiers arriving at Battersea Power Station, our purchase represents a prudent long term investment in one of the capital's most exciting transformation projects. There is a real sense of place developing on site which will only continue to grow.
"This is our third significant investment in the UK residential for rent sector, which we believe has strong long term potential, with high levels of demand for well-designed apartments in excellent locations close to all that the capital has to offer. We have plans to aggressively expand the portfolio with further forward funding and forward purchasing of high quality residential assets for rent."
The Grade II* listed Power Station and surrounding area are being brought back to life as one of the most exciting and innovative mixed-use neighbourhoods in the world – a place for locals, tourists and residents to enjoy a unique blend of restaurants, shops, parks and cultural spaces. Apple is due to open its new London campus on site, while high street retailer Zara has just revealed plans to open a new 48,800 sq ft flagship store on the development's Electric Boulevard later this year.
Eastdil Secured advised MGT on the financing.
Previous PostInvestment manager MGT hires Adina David to l...
Next PostQ+A: No sleepless nights for team behind 275,...
Q+A: MGT's new director on building a £1bn "stress-free living" portfolio
Investment manager MGT hires Adina David to lead residential expansion during £1bn fundraise
Q+A: No sleepless nights for team behind 275,000 sq ft speculative office in Reading
Station Hill secures £107M construction loan to deliver Phase 2
build to rent joint venture knight dragon lincoln mgt reading station hill Tech Towns whitepaper

redpajama_set_name: RedPajamaCommonCrawl


Nefara, the Lich Queen, is an undead Shuriman princess infected by the Void.
Nefara was a contemporary of Xerath. A princess in one of the empire's territories, she was also a gifted mage, and he may have killed her when she began to suspect his plans for manipulating Azir's Ascensio n.
During the Hextech Revolution, scouts from Bandle City inadvertently released Nefara from the Floating Pyramid of Akhtal, where she had been entombed.
She raised an undead Shuriman army that attacked Bandle City, and likely would have destroyed the yordle homeland if Demacia, Piltover, and Zaun had not come to their aid.
↑ Hextech Revolution Update 2: Opening Moves.
↑ Hextech Revolution Update 12: Secrets of Shurima.
↑ Hextech Revolution Update 4: The Endless Dead.


text:
import logging
import json
from urlparse import parse_qs

from webob import Response

from ryu.app.wsgi import ControllerBase
from ryu.app.wsgi import WSGIApplication
from ryu.base import app_manager
from ryu.controller import ofp_event
from ryu.controller import dpset
from ryu.controller.handler import set_ev_cls
from ryu.controller.handler import MAIN_DISPATCHER
from ryu.exception import OFPUnknownVersion
from ryu.lib import dpid as dpid_lib
from ryu.lib import ofctl_v1_0
from ryu.lib import ofctl_v1_2
from ryu.lib import ofctl_v1_3
from ryu.lib.ovs import bridge
from ryu.ofproto import ofproto_v1_0
from ryu.ofproto import ofproto_v1_2
from ryu.ofproto import ofproto_v1_3
from ryu.ofproto import ofproto_v1_3_parser

from oflib import qoslib

SWITCHID_PATTERN = dpid_lib.DPID_PATTERN + r'|all'
VLANID_PATTERN = r'[0-9]{1,4}|all'

REST_ALL = 'all'
REST_STATUS = 'status'
REST_SWITCHID = 'switch_id'
REST_STATUS_ENABLE = 'enable'
REST_COMMAND_RESULT = 'command_result'
REST_STATUS_DISABLE = 'disable'

STATUS_FLOW_PRIORITY = ofproto_v1_3_parser.UINT16_MAX

class Rest(app_manager.RyuApp):

    OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION,
                    ofproto_v1_2.OFP_VERSION,
                    ofproto_v1_3.OFP_VERSION]

    _CONTEXTS = {'dpset': dpset.DPSet,
                 'wsgi': WSGIApplication,
                 'qoslib': qoslib.QoSLib}

    def __init__(self, *args, **kwargs):
        super(Rest, self).__init__(*args, **kwargs)
        RestController.set_logger(self.logger)

        self.dpset = kwargs['dpset']
        wsgi = kwargs['wsgi']
        self.qoslib = kwargs['qoslib']
        self.qoslib.use_switch_flow = False
        self.waiters = {}
        self.data = {}
        self.data['dpset'] = self.dpset
        self.data['waiters'] = self.waiters
        requirements = {'switchid': SWITCHID_PATTERN,
                        'vlanid': VLANID_PATTERN}
        mapper = wsgi.mapper
        wsgi.registory['RestController'] = self.data
        path = '/faucet'

        uri = path + '/status'
        mapper.connect('flow', uri,
                       controller=RestController, action='get_all_status',
                       conditions=dict(method=['GET']))

        uri = path + '/status/{switch_id}'
        mapper.connect('flow', uri,
                       controller=RestController, action='get_status',
                       conditions=dict(method=['GET']))

        uri = path + '/action/{switch_id}'
        mapper.connect('mangle', uri,
                       controller=RestController, action='set_action',
                       conditions=dict(method=['POST']),
                       requirements=requirements)

        uri = path + '/queue/{switch_id}'
        mapper.connect('queue', uri,
                       controller=RestController, action='queue_status',
                       conditions=dict(method=['GET']))

        uri = path + '/queue/{switch_id}'
        mapper.connect('queue', uri,
                       controller=RestController, action='add_queue',
                       conditions=dict(method=['POST']))

    def stats_reply_handler(self, ev):
        msg = ev.msg
        dp = msg.datapath

        if dp.id not in self.waiters:
            return
        if msg.xid not in self.waiters[dp.id]:
            return
        lock, msgs = self.waiters[dp.id][msg.xid]
        msgs.append(msg)

        flags = 0
        if dp.ofproto.OFP_VERSION == ofproto_v1_0.OFP_VERSION or \
                dp.ofproto.OFP_VERSION == ofproto_v1_2.OFP_VERSION:
            flags = dp.ofproto.OFPSF_REPLY_MORE
        elif dp.ofproto.OFP_VERSION == ofproto_v1_3.OFP_VERSION:
            flags = dp.ofproto.OFPMPF_REPLY_MORE

        if msg.flags & flags:
            return
        del self.waiters[dp.id][msg.xid]
        lock.set()

    @set_ev_cls(dpset.EventDP, dpset.DPSET_EV_DISPATCHER)
    def handler_datapath(self, ev):
        if ev.enter:
            RestController.regist_ofs(ev.dp, self.qoslib, self.CONF)
        else:
            RestController.unregist_ofs(ev.dp)

    # for OpenFlow version1.0
    @set_ev_cls(ofp_event.EventOFPFlowStatsReply, MAIN_DISPATCHER)
    def stats_reply_handler_v1_0(self, ev):
        self.stats_reply_handler(ev)

    # for OpenFlow version1.2 or later
    @set_ev_cls(ofp_event.EventOFPStatsReply, MAIN_DISPATCHER)
    def stats_reply_handler_v1_2(self, ev):
        self.stats_reply_handler(ev)

class OFSList(dict):
    def __init__(self):
        super(OFSList, self).__init__()

    def get_ofs(self, dp_id):
        if len(self) == 0:
            raise ValueError('firewall sw is not connected.')

        dps = {}
        if dp_id == REST_ALL:
            dps = self
        else:
            try:
                dpid = dpid_lib.str_to_dpid(dp_id)
            except:
                raise ValueError('Invalid switchID.')

            if dpid in self:
                dps = {dpid: self[dpid]}
            else:
                msg = 'firewall sw is not connected. : switchID=%s' % dp_id
                raise ValueError(msg)

        return dps

class RestController(ControllerBase):

    _OFS_LIST = OFSList()
    _LOGGER = None

    def __init__(self, req, link, data, **config):
        super(RestController, self).__init__(req, link, data, **config)
        self.dpset = data['dpset']
        self.waiters = data['waiters']
        self.conf = config

    @classmethod
    def set_logger(cls, logger):
        cls._LOGGER = logger
        cls._LOGGER.propagate = False
        hdlr = logging.StreamHandler()
        fmt_str = '[FAUCET][%(levelname)s] %(message)s'
        hdlr.setFormatter(logging.Formatter(fmt_str))
        cls._LOGGER.addHandler(hdlr)

    @staticmethod
    def regist_ofs(dp, qoslib, conf):
        dpid_str = dpid_lib.dpid_to_str(dp.id)
        try:
            f_ofs = Faucet(dp, qoslib, conf)
        except OFPUnknownVersion, message:
            RestController._LOGGER.info('dpid=%s: %s',
                                         dpid_str, message)
            return

        RestController._OFS_LIST.setdefault(dp.id, f_ofs)

        RestController._LOGGER.info('dpid=%s: Join as firewall.',
                                        dpid_str)

    @staticmethod
    def unregist_ofs(dp):
        if dp.id in RestController._OFS_LIST:
            del RestController._OFS_LIST[dp.id]
            RestController._LOGGER.info('dpid=%s: Leave firewall.',
                                            dpid_lib.dpid_to_str(dp.id))

    # GET /faucet/status
    def get_all_status(self, req, **_kwargs):
        return self._access_module(REST_ALL, 'get_status',
                                   waiters=self.waiters)

    # GET /faucet/status/{switch_id}
    def get_status(self, req, switch_id, **_kwargs):
        return self._access_module(switch_id, 'get_status',
                                   waiters=self.waiters)

    # POST /faucet/mangle/action/{switch_id}
    def set_action(self, req, switch_id, **_kwargs):
        return self._set_action(req, switch_id)

    # POST /faucet/mangle/queue/{switch_id}
    def add_queue(self, req, switch_id, **_kwargs):
        return self._add_queue(req, switch_id)

    def _access_module(self, switchid, func, waiters=None):
        try:
            dps = self._OFS_LIST.get_ofs(switchid)
        except ValueError, message:
            return Response(status=400, body=str(message))

        msgs = []
        for f_ofs in dps.values():
            function = getattr(f_ofs, func)
            msg = function() if waiters is None else function(waiters)
            msgs.append(msg)

        body = json.dumps(msgs)
        return Response(content_type='application/json', body=body)

    def _set_action(self, req, switchid):
        mangle = req.body
        try:
            dps = self._OFS_LIST.get_ofs(switchid)
        except ValueError, message:
            return Response(status=400, body=str(message))

        msgs = []
        for f_ofs in dps.values():
            try:
                msg = f_ofs.set_mangle(mangle, self.waiters)
                msgs.append(msg)
            except ValueError, message:
                RestController._LOGGER.debug('rest failetd')
                return Response(status=400, body=str(message))

        body = json.dumps(msgs)
        return Response(content_type='application/json', body=body)

    def _add_queue(self, req, switchid):
        queue_config = req.body
        try:
            dps = self._OFS_LIST.get_ofs(switchid)
        except ValueError, message:
            return Response(status=400, body=str(message))

        msgs = []
        for f_ofs in dps.values():
            try:
                msg = f_ofs.set_queue(queue_config, self.waiters)
                msgs.append(msg)
            except ValueError, message:
                RestController._LOGGER.debug('rest failetd')
                return Response(status=400, body=str(message))

        body = json.dumps(msgs)
        return Response(content_type='application/json', body=body)

class Faucet(object):
    _OFCTL = {ofproto_v1_0.OFP_VERSION: ofctl_v1_0,
              ofproto_v1_2.OFP_VERSION: ofctl_v1_2,
              ofproto_v1_3.OFP_VERSION: ofctl_v1_3}

    def __init__(self, dp, qoslib, conf):
        super(Faucet, self).__init__()
        self.dp = dp
        self.qoslib = qoslib
        self.conf = conf

        version = dp.ofproto.OFP_VERSION
        if version not in self._OFCTL:
            raise OFPUnknownVersion(version=version)

        self.ofctl = self._OFCTL[version]

    # REST command template
    def rest_command(func):
        def _rest_command(*args, **kwargs):
            key, value = func(*args, **kwargs)
            switch_id = dpid_lib.dpid_to_str(args[0].dp.id)
            return {REST_SWITCHID: switch_id,
                    key: value}
        return _rest_command

    @rest_command
    def get_status(self, waiters):
        msgs = self.ofctl.get_flow_stats(self.dp, waiters)
        status = REST_STATUS_ENABLE
        if str(self.dp.id) in msgs:
            flow_stats = msgs[str(self.dp.id)]
            for flow_stat in flow_stats:
                if flow_stat['priority'] == STATUS_FLOW_PRIORITY:
                    status = REST_STATUS_DISABLE
                else:
                    status = flow_stats

        return REST_STATUS, status

    @rest_command
    def set_mangle(self, mangle_qry, waiters):
        """"""
        properties = parse_qs(mangle_qry)
        mangle = qoslib.QoSLib.mangle(self.dp)
        RestController._LOGGER.debug('rest %s' % properties)
        for key, value in properties.iteritems():
            mangle.add_property(key, value[0])

        try:
            self.qoslib.add_mangle(mangle)
            msg = {'result': 'success',
                'details': 'mangle added. : %s' % properties}
        except:
            RestController._LOGGER.debug('rest f1')
            msg = {'result': 'failed',
                'details': 'failed added mangle. : %s' % properties}

        return REST_COMMAND_RESULT, msg

    def set_queue(self, queue_qry, waiters):
        queue_config = parse_qs(queue_qry)
        ovsctl = bridge.OVSBridge(self.conf, self.dp.id, 'tcp:127.0.0.1:6632')
        queue = qoslib.QoSLib.queue_tree(ovsctl, self.dp)
        RestController._LOGGER.info('rest %s', queue_config)
        name = queue_config['name'][0]
        max_rate = queue_config['max_rate'][0]
        min_rate = queue_config['min_rate'][0]
        queue.queue(name, max_rate, min_rate)
        self.qoslib.register_queue(queue)
        msg = {'result': 'success'}
        return REST_COMMAND_RESULT, msg

    def _to_of_flow(self, cookie, priority, match, actions):
        flow = {'cookie': cookie,
                'priority': priority,
                'flags': 0,
                'idle_timeout': 0,
                'hard_timeout': 0,
                'match': match,
                'actions': actions}
        return flow


The Ministry of Health and Population announced on Friday night that three cases of Egyptian pilgrims were killed in Saudi territory. The total number of deaths is 63.
The government said last night that Haj Mohammed Mohammed Abdel Wahab Abdul Latif, 52, of Sharqiya province died in Makkah, Haj van Domestic Affairs followed. The second case of Haj Mustafa Mustapha Musa Shalabi of the Dakahlia province, indicates that he died in Madinah and the third case of Haj, named Abdulnabi Ahmed Sharif, 65 years old, from the province of Giza, following the Hajj lot.
The official spokesman of the Ministry of Health and Population Khalid Mujahid said the cases died of a sharp decline in circulatory and respiratory conditions, and pointed out that the emergency room received the medical mission in Mecca , A message of death, and pointed out that co-ordination with the competent authorities to withdraw death certificates.


An older gentleman from Washington in an older Rolls-Royce Silver-Spur. I thought it was pretty cool.
Nice Lincoln Continental Convertible ruined by giant wheels and a nose-heavy stance.
And a E30 rolling shell that we just finished working on at school headed to the garage.
Is that an Ormorcar? Saw one with German plates when we went camping this year.
Tesla! With a fitting plate.
All the downsides of a bike combined with all the downsides of a car. But damn it looks like fun to... ride?
Last week, while stuck in a traffic jam in the middle of Sydney, I was stopped next to one of those things parked by the side of the road. At least 4 pedestrians openly laughed at it.
Well, they're idiots. Those things fly like motorcycles and are stable like cars. I want one, but they're too pricy for my taste.
I'm terrible at identifying old cars, but I saw these while on a trip to Canberra and thought I'd take a pic.
I think this is some old Saab.
I have to agree with you there. It's just the price that baffles me. To me bikes are suppose to be cheap fun, but I found some gently used late model MX-5's while walking around today for less than the price of that Can-Am.
That's a 1987-1993 Saab 900 Sedan.
The driver was a rather attractive woman, too. And yes, the photo is backwards because I took it through the door mirror.
A BMW M3 Frozen Grey on a truck full of BMW M series.
And a Chana Alsvin (some kind of Chinese car).


Yesterday, the Gambling Commission (the "Commission") published 'A two-way conversation: our plan for communicating with consumers' which sets out its approach to those who gamble or have an interest in gambling. It indicates the Commission's continued drive to encourage operators and indeed, itself, to make the gambling industry even more consumer-centric. This follows on from the Commission's emphasis on 'putting consumers at the heart of business culture and practice', which was highlighted in its 2015/16 Annual Report and Corporate Business Plan for April 2016 to March 2017.
The Commission will engage in a two-way conversation with consumers, involving getting information directly from consumers to help consumers' voices be heard and assist the Commission in understanding consumer needs and making better policy. Using this information, the Commission will also provide material aimed at helping consumers solve their own problems and/ or avoid harm in the first place.
Our view is that no-one understands gambling consumers better than gambling operators and we encourage operators to use this knowledge to have a sensible and intelligent conversation with their customers about the issues which are important to both the Commission and their businesses.
See the video above for Sarah Harrison's address.


text:
Transmission electron microscopy study of Ni-Si nanocomposite films
Nickel induced crystallization of amorphous Si (a-Si) films is investigated using transmission electron microscopy. Metal-induced crystallization was achieved on layered films deposited onto thermally oxidized Si(3 1 1) substrates by electron beam evaporation of a-Si (400 nm) over Ni (50 nm). The multi-layer stack was subjected to post-deposition annealing at 200 and 600 degrees C for 1 h after the deposition. Microstructural studies reveal the formation of nanosized grains separated by dendritic channels of 5 nm width and 400 nm length. Electron diffraction on selected points within these nanostructured regions shows the presence of face centered cubic NiSi2 and diamond cubic structured Si. Z-contrast scanning transmission electron microscopy images reveal that the crystallization of Si occurs at the interface between the grains of NiSi2 and a-Si. X-ray absorption fine structure spectroscopy analysis has been carried out to understand the nature of Ni in the Ni-Si nanocomposite film. The results of the present study indicate that the metal induced crystallization is due to the diffusion of Ni into the a-Si matrix, which then reacts to form nickel silicide at temperatures of the order of 600 degrees C leading to crystallization of a-Si at the silicide-silicon interface. (C) 2012 Elsevier B.V. All rights reserved.
Titolo: Transmission electron microscopy study of Ni-Si nanocomposite films
M. A. Mohiddon
M. G. Krishna
G. Dalba
Rocca, Francesco
MATERIALS SCIENCE AND ENGINEERING B-SOLID STATE MATERIALS FOR ADVANCED TECHNOLOGY
Abstract: Nickel induced crystallization of amorphous Si (a-Si) films is investigated using transmission electron microscopy. Metal-induced crystallization was achieved on layered films deposited onto thermally oxidized Si(3 1 1) substrates by electron beam evaporation of a-Si (400 nm) over Ni (50 nm). The multi-layer stack was subjected to post-deposition annealing at 200 and 600 degrees C for 1 h after the deposition. Microstructural studies reveal the formation of nanosized grains separated by dendritic channels of 5 nm width and 400 nm length. Electron diffraction on selected points within these nanostructured regions shows the presence of face centered cubic NiSi2 and diamond cubic structured Si. Z-contrast scanning transmission electron microscopy images reveal that the crystallization of Si occurs at the interface between the grains of NiSi2 and a-Si. X-ray absorption fine structure spectroscopy analysis has been carried out to understand the nature of Ni in the Ni-Si nanocomposite film. The results of the present study indicate that the metal induced crystallization is due to the diffusion of Ni into the a-Si matrix, which then reacts to form nickel silicide at temperatures of the order of 600 degrees C leading to crystallization of a-Si at the silicide-silicon interface. (C) 2012 Elsevier B.V. All rights reserved.


The Domestic Violence Program is a 52 week program for adults referred by the courts. The curriculum consists of weekly 2-hour lecture/discussion groups that address the issue of violence and non-violence. Each presentation follows a format that allows the participant to identify inappropriate behaviors and learn new behaviors. The groups are held in a relaxed, comfortable setting in both our North and South County locations. This program satisfies the requirements of most California courts.
Costs: Sliding fee scale dependent on income level.


text:
Matt Gaetz claims Democrats are trying to push out Biden
Republican Representative Matt Gaetz of Florida speculated that revelations that President Joe Biden kept classified documents in private offices and his residence are a sign that Democrats want to depose the incumbent president and prevent him from running again.
The Republican congressman spoke to Newsmax's Eric Bolling about revelations that additional documents were found at President Joe Biden's home, The Daily Beast reported.
On Saturday, Mr Biden's attorneys said that the Justice Department removed six additional classified documents from his home in Wilmington. The removal comes after the Justice Department removed other documents at Mr Biden's residence in Wilmington, Delaware, and at the Penn Biden Center at the University of Pennsylvania.
But Mr Gaetz said that he had a "different take" from most people about the documents discovered at Mr Biden's home.
"I actually think the Deep State has figured out that Joe Biden isn't going to win the 2024 election against any Republican that's nominated," he said. Mr Gaetz said that he questioned the timing of the revelations given that it coincides with White House Chief of Staff Ron Klain leaving the White House.
The White House announced that Jeffrey Zients will replace Mr Klain as White House chief of staff. Mr Klain served for two years and many conservatives have claimed that Mr Klain is the true person in control of Mr Biden's presidency.
"Ron Klain is leaving I think he's a professional operator and is getting out of the White House as they send somebody else in to tidy up the Biden presidency and put a bow on it and get ready for their next generation of leadership," Mr Gaetz said. "So you know, I don't particularly like when the deep state chooses who gets to be the leader of our country."
Republicans have sought to draw comparisons between how the Justice Department treated former president Donald Trump's keeping of documents from his presidency with Mr Biden's handling of documents from his time as vice president to president Barack Obama.
Attorney General Merrick Garland announced that Robert Hur would serve as special counsel though leaders in the new Republican majority in the House of Representatives have also said they want to investigate as well
How Much Is Cristiano Ronaldo's New Saudi Arabia Themed Watch With 389 Gemstones Worth?
There is an interesting new timepiece on Cristiano Ronaldo's wrist that might make you green (sorry, we had to!) with envy. The ace athlete, who is also one of the richest footballers in the world, was seen sporting a stunning emerald green watch from Jacob & Co. The timepiece is exquisite and features more than 300 (389 to be precise) gemstones. View this post on Instagram A post shared by JACOB & CO. (@jacobandco) Why is Cristiano Ronaldo's new watch so special? The first thing you'd notice ab
Old video recirculated to falsely claim 'ex-Pakistan president named journalist's killers'
A video of former Pakistani president Asif Ali Zardari giving a press conference has been viewed tens of thousands of times in multiple Facebook posts with the false claim that he mentioned the names of "the killers" of a Pakistani journalist who was shot dead by police in Kenya in October 2022. The original video was in fact broadcast live in May 2022, which predates the journalist's killing by several months. The claim was posted here on January 20, 2023, alongside a four-hour two-minute video
PUTRAJAYA, Jan 30 — The Malaysian government will return some RM21.7 million forfeited from several political entities,...


Children! Do you'll hear the howling of the scary werewolves and the hooting of owls? It's because our scary rhyme is here. Twinkle twinkle little star is now guiding all the monsters and ghosts and goblins into the land of rhymes, because they heard it's time for you toddlers to play and sing and dance to baby songs. Well little ones, let us tell you, they aren't all that bad. They love to have a fun playtime too. You could give them a chance to show you how much they love the rhymes. Sing along with us, so they can hear your voices and join you kiddies sooner.


text:
Twitter bans 70,000 QAnon accounts in…
Twitter bans 70,000 QAnon accounts in conspiracy crackdown
Many of the affected accounts were run by individuals who were operating several of them at a time, Twitter said in a statement detailing its actions.
Many of the 70,000 accounts banned by Twitter were run by individuals who were operating several of them at a time, the company said in a statement detailing its actions. (AP Photo/Jeff Chiu)
By Bloomberg | |
PUBLISHED: January 12, 2021 at 11:53 a.m. | UPDATED: January 12, 2021 at 11:55 a.m.
By Vlad Savov | Bloomberg
Twitter has permanently suspended more than 70,000 accounts dedicated to sharing QAnon-associated conspiracy theory content and ratcheted up its enforcement in the wake of the Washington, D.C., riot last week.
Many of the affected accounts were run by individuals who were operating several of them at a time, Twitter said in a statement detailing its actions. As part of its latest measures, follower counts for some users may change by as many as thousands. The company had warned against the sharing of QAnon material in the summer and said accounts that tweet or retweet it will continue to have "limited visibility across search, replies, and on timelines and are prohibited from being recommended to others by Twitter."
Any tweets labeled for violations of Twitter's civic integrity policy — a key reason cited by the company in its initial suspension of departing U.S. President Donald Trump — will now be limited in engagement. Users will only be able to quote-tweet such posts, with likes, replies and retweets disabled.
Twitter is also blocking certain content from trending on the platform, updating its policies since last week's events to more closely monitor anything that could infringe its rules on hateful conduct, violent threats, civic integrity and coordinated harmful activity.
Facebook Inc., which also blocked Trump from posting on its platforms, including Instagram, announced it is now removing posts that include the phrase "stop the steal," a common refrain among those believing the November 2020 U.S. election illegitimate. The company said there is an "ongoing risk of violence associated with the term" following last week's storming of the U.S. Capitol.
Is the office really necessary anymore?
Rodents, flooding toilet: Restaurant closures, inspections in San Bernardino County, Jan. 8-14
Beyond Meat expanding to 300,000 square-foot headquarters in El Segundo


text:
Acuff.me
Quitter made the Wall Street Journal Best-selling List!
June 2, 2011 by Jon
I found out an hour ago that my new book Quitter made the Wall Street Journal Best-selling books list! I've included a screen shot of the newspaper below which has the book as #3 in the hardcover business section. I have three quick thoughts about that:
1. God does big, unexpected things. When I wrote my first blog post on Stuff Christians Like in 2008 I never imagined this.
2. Thank you! Your support of the book has been overwhelmingly kind and gracious and a whole list of words that mean awesome!
3. The Quitter Conference is going to be crazy. I feel like the conversation is just starting. And unbelievable things can happen if you and I are brave and do things that are way over our heads.
Thank you so much for your help!
Previous Post: « When you have a major reaction to your church changing a minor detail about service.
Next Post: Announcing the Quitter Conference! »
Get Jon's Updates via Email
Get a free chapter of Jon's latest book, DO OVER, and get all his new blog posts from ACUFF.ME sent to your inbox!
Archives Select Month January 2015 (2) December 2014 (2) November 2014 (3) October 2014 (2) September 2014 (4) August 2014 (2) July 2014 (6) June 2014 (5) May 2014 (8) April 2014 (9) March 2014 (12) February 2014 (20) January 2014 (25) December 2013 (28) November 2013 (19) September 2013 (6) August 2013 (15) July 2013 (18) June 2013 (23) May 2013 (25) April 2013 (25) March 2013 (21) February 2013 (21) January 2013 (50) December 2012 (38) November 2012 (23) October 2012 (26) September 2012 (20) August 2012 (25) July 2012 (24) June 2012 (25) May 2012 (26) April 2012 (23) March 2012 (23) February 2012 (24) January 2012 (29) December 2011 (32) November 2011 (30) October 2011 (30) September 2011 (34) August 2011 (33) July 2011 (32) June 2011 (36) May 2011 (45) April 2011 (35) March 2011 (33) February 2011 (29) January 2011 (41) December 2010 (43) November 2010 (44) October 2010 (36) September 2010 (32) August 2010 (29) July 2010 (36) June 2010 (34) May 2010 (45) March 2010 (1) February 2010 (34) January 2010 (43) December 2009 (6) September 2009 (1) August 2009 (33) July 2009 (30) June 2009 (39) May 2009 (35) April 2009 (40) March 2009 (44) February 2009 (39) January 2009 (45) December 2008 (35) November 2008 (29) October 2008 (36) September 2008 (31) August 2008 (38) July 2008 (78) June 2008 (86) May 2008 (82) April 2008 (96) March 2008 (41) February 2008 (29) January 2008 (33)
Follow Jon
Topics Select Category At Church (13) Bible (42) books (23) Christian Culture (32) Christmas (18) Church (90) church culture (88) during church (90) god (51) Guest Posts (177) jesus (5) Kids (46) love (34) missions (17) movies (18) Music (75) my bad (51) online (17) pastors (44) pop culture (51) prayer (36) remix (25) Serious Wednesdays (127) stuff christians say (19) Uncategorized (1,548) vbs (15) witnessing (18) youth group (35)
Join Jon on Facebook
About Jon
Jon Acuff is the New York Times Bestselling author of four books including his most recent, Start: Punch Fear in the Face, Escape Average & Do Work that Matters. Read More…
Connect with Jon
Copyright © 2023 Jon Acuff


text:
SoftBank Near Deal To Invest $500M In Grab
Posted on October 5, 2018 October 5, 2018 6:27 am
SoftBank Group is close to reaching a deal with Grab, the Southeast Asian ride-hailing company, in which it will invest $500 million.
Reuters, citing sources with knowledge of the matter, reported the $500 million is part of a $1 billion round of funding Grab is aiming to raise. Total funding so far at Grab has been $6 billion, with SoftBank, Chinese ride-hailing firm Didi Chuxing and Toyota Motor investing in the company. At that point Grab was valued at $11 billion, noted the report.
Grab is aiming to raise money to become a technology group that offers everything from rides to mobile payments in Southeast Asia, which is among the fastest growing markets in the world.
The potential investment on the part of SoftBank comes at a time when Grab is facing increased competition from Go-Jek, the Indonesian ride-hailing company. Earlier this week TechCrunch reported Go-Jek is gearing up to expand into Singapore. According to a report, Go-Jek is expected to land in Singapore as early as October. The report noted that Go-Jek decided to go after the Southeast Asia market after Uber exited in March. Go-Jek first expanded into Vietnam and then Thailand. A source with knowledge of the plans told the news outlet that Go-Jek will be in the Singapore market by the end of October. The startup is in talks with investors to raise $2 billion.
In August, Go-Jek rival Grab escalated its fight with the company, announcing that it plans to invest $250 million in Indonesian startups over the next three years through its new innovation arm. Earlier in the month, the Singapore-based firm revealed that it had raised $2 billion in funding in recent months, adding that it will use a significant portion of the proceeds to continue investing in Indonesia. One way to do that is through its Grab Ventures arm, which will develop technology startups in sectors beyond ride-hailing. Grab has more than 7.1 million micro-entrepreneurs on its platform, more than half of whom reside in Indonesia.
Related Items:Go-Jek, Grab, investments, News, Ridesharing, softbank, southeast Asia, What's Hot
Taking The Cash Out Of Cashing Out Tips
Is China The Roadmap — Or Red Flag — For Digital ID Verification?
Square Debuts Merchant Installment Payments
Easy Pickings For BEC Criminals?


Students tell us their first trip here confirmed their decision to apply. Schedule a visit to see for yourself.
Meet with an admission counselor, talk one-on-one with a professor and personalize your tour of our campus.
Meet with a transfer admission counselor, complete a preliminary* transcript evaluation, meet one-on-one with a faculty member and tour our beautiful campus.
Learn about specific program curriculum, job opportunities and more at information sessions on our various graduate programs on select dates throughout the year.


text:
Mohamed Traoré may refer to:

Kalilou Traoré (born 1987), Malian footballer who plays in Switzerland
Mohamed Traoré (footballer, born 1988), Malian footballer
Mohamed Traoré (footballer, born 1991), Guinean footballer
Mohamed Traoré (footballer, born 1993), Guinean footballer
Moha Traoré, Spanish footballer
Mohamed Traore (footballer, born 2002), Senegalese footballer

redpajama_set_name: RedPajamaWikipedia


text:
Reading: An orthopaedic clinic for osteomyelitis in Port-au-Prince, Haiti: Past experiences and the n...
Education/Training/Capacity Building
An orthopaedic clinic for osteomyelitis in Port-au-Prince, Haiti: Past experiences and the need for further epidemiological study
C.A. Pean ,
Icahn School of Medicine at Mount Sinai, New York, NY/US
J. Wildric Hippolyte,
Hôpital de l'Université d'Etat d'Haiti, Delmas 33, Haiti
V. Romelus,
Hôpital de l'Université d'Etat d'Haiti, Port-au-Prince, Haiti
R. Israelski
NYU School of Medicine, Goshen, NY/US
How to Cite: Pean, C.A., Hippolyte, J.W., Romelus, V. and Israelski, R., 2015. An orthopaedic clinic for osteomyelitis in Port-au-Prince, Haiti: Past experiences and the need for further epidemiological study. Annals of Global Health, 81(1), pp.165–166. DOI: http://doi.org/10.1016/j.aogh.2015.02.878
Pean, C.A., Hippolyte, J.W., Romelus, V. and Israelski, R., 2015. An orthopaedic clinic for osteomyelitis in Port-au-Prince, Haiti: Past experiences and the need for further epidemiological study. Annals of Global Health, 81(1), pp.165–166. DOI: http://doi.org/10.1016/j.aogh.2015.02.878
Pean CA, Hippolyte JW, Romelus V, Israelski R. An orthopaedic clinic for osteomyelitis in Port-au-Prince, Haiti: Past experiences and the need for further epidemiological study. Annals of Global Health. 2015;81(1):165–6. DOI: http://doi.org/10.1016/j.aogh.2015.02.878
Pean, C. A., Hippolyte, J. W., Romelus, V., & Israelski, R. (2015). An orthopaedic clinic for osteomyelitis in Port-au-Prince, Haiti: Past experiences and the need for further epidemiological study. Annals of Global Health, 81(1), 165–166. DOI: http://doi.org/10.1016/j.aogh.2015.02.878
Pean CA and others, 'An Orthopaedic Clinic for Osteomyelitis in Port-au-prince, Haiti: Past Experiences and the Need for Further Epidemiological Study' (2015) 81 Annals of Global Health 165 DOI: http://doi.org/10.1016/j.aogh.2015.02.878
Pean, C.A., J. Wildric Hippolyte, V. Romelus, and R. Israelski. 2015. "An Orthopaedic Clinic for Osteomyelitis in Port-au-prince, Haiti: Past Experiences and the Need for Further Epidemiological Study". Annals of Global Health 81 (1): 165–66. DOI: http://doi.org/10.1016/j.aogh.2015.02.878
Pean, C.A., J. Wildric Hippolyte, V. Romelus, and R. Israelski. "An Orthopaedic Clinic for Osteomyelitis in Port-au-prince, Haiti: Past Experiences and the Need for Further Epidemiological Study". Annals of Global Health 81, no. 1 (2015): 165–66. DOI: http://doi.org/10.1016/j.aogh.2015.02.878
Pean, C. A., et al.. "An Orthopaedic Clinic for Osteomyelitis in Port-au-prince, Haiti: Past Experiences and the Need for Further Epidemiological Study". Annals of Global Health, vol. 81, no. 1, 2015, pp. 165–66. DOI: http://doi.org/10.1016/j.aogh.2015.02.878


text:
5 Ghost Towns That Are About 50 Miles From Bismarck
Rockin' Rick (Rick Rider)
Rockin' Rick (Rick Rider) Updated: October 10, 2022
Tis' the season for Ghosts!
Are you looking for a weekend road trip? How about experiencing 5 ghost towns that are about 50 miles from Bismarck? Sounds to me like some spooky good fun. To be honest, most of these towns will be void of anything. You'll be hard-pressed even to find a structure in these once-thriving communities, but in the spirit of things, it will still be fun to imagine what was.
So, let's have a little creepy fun, and here are 5 ghost towns within 50 miles of Bismarck.
#1 Lark, North Dakota.
Lark is located about 10 miles west of Flasher, North Dakota. Roughly 50 miles from Bismarck. The town was located just off Highway 21 to the north. I know this town well (I'm using the word town loosely), and I've done a lot of pheasant hunting around it in the past.
There really is nothing left that shows any remains of the town. Only a couple of farms north of the highway. There are a couple of old structures on one of these farms. I'm not sure if they're part of the old town or not. I stopped by the farm a few weeks back, but couldn't find a living soul.
According to Grant County, the city was once a thriving railway community. The post office was opened in 1906. During the height of the communities population in the early 1900s, there was a hardware store, a lumber yard, a church, an implement dealer, two general stores, a community hall, two cream stations, a blacksmith shop, and others.
#2 Arena, North Dakota.
Arena is about 35 miles northeast of Bismarck and east of the town of Wing, North Dakota in Burleigh County. According to Legends of America, Arena was founded in 1906 by the Patterson Land Company of Minnesota.
#3 Freda, North Dakota.
Very little is known about this town. According to Wikipedia, Freda was formed in 1910 and was another railroad town.
Believe it or not, Freda actually replaced an older town called Pearce, which was founded in 1906. The post office was later moved one mile north and the city was renamed, Freda. The post office closed in 1975 and in 1976 only two people remained in Freda. Freda is located about halfway between Flasher and Shields in Grant, County.
Paul Knightly
#4 Dogtooth, North Dakota. According to the Grant County Website, Dogtooth is a ghost town named after a pair of buttes near the town resembling the molars on a dog's lower jaw.
The town was located east of the city of Raleigh. Today, the lone bar in Raleigh is named "The Dogtooth." According to Wikipedia, Dogtooth was first established as a station in 1876 on the railroad. A post office then came to be in 1900.
#5 Brisbane, North Dakota. According to the Grant County website, Brisbane is located about 5 miles southeast of Carson.
A post office was opened in 1910. Shortly thereafter the town was bustling with a general store, a school, a hardware store, a blacksmith shop, and a restaurant. Now, all that's left of this community are the spirits of the past.
10 Smallest Towns In North Dakota
30 famous people you might not know were college athletes
Stacker dug deep to find 30 celebrities who were previously college athletes. There are musicians, politicians, actors, writers, and reality TV stars. For some, an athletic career was a real, promising possibility that ultimately faded away due to injury or an alternate calling. Others scrapped their way onto a team and simply played for fun and the love of the sport. Read on to find out if your favorite actor, singer, or politician once sported a university jersey.
Source: 5 Ghost Towns That Are About 50 Miles From Bismarck
Filed Under: breaking news, Burleigh County, Ghost Towns, Grant County, North Dakota
Categories: Bis-Man Entertainment, Breaking News, Entertainment, Local News, Travel, Weird News
Parking Improved & More At ND's Largest Snowboard & Ski Resort
Mortiz Sport & Marine Donates To Mandan's New Dale Pahlke Arena
Here's North Dakota's Most Popular Source Of Caffeine
How Hard Is It To Find Love In ND? — Here's What Researchers Found
Common Law Marriage In North Dakota? Is it A Thing?


text:
Slavery: The Facts
By Robert Smyth
A complete answer for those who try to make white folk feel guilty over the slavery issue. A review of the history of slavery which continues down to its practice to this very day. Apart from showing that slavery was not the exclusive vice of Europeans it is also shown that conditions for working people in Britain were at least as bad as that endured by the victims of slavery. We learn that only 10 per cent of slaves from Africa went to North America; and that economics, not slavery, was the root of the American Civil War. Abraham Lincoln is shown to be a white supremacist and segregationist who advocated repatriation of Blacks to Africa. Other subjects discussed include the trans-Saharan slave trade, which went on for hundreds of years and did not involve Europeans, and the slave raids on Europe by North African corsairs.
This is the second edition and it contains much extra text concerned with the character and background of the leading members of the anti-slavery movement. It shows the hypocrisy of William Wilberforce, Thomas Clarkson and Harriet Beecher Stowe, and the murderous activity of John Brown; and it demolishes the allegation that Liverpool's prosperity depended on the slave trade.
Slavery: The Facts quantity
SKU: 9781904911685 Category: Race
Lincoln's Negro Policy
The Leo Frank Case and the Murder of Mary Phagan
Our Nordic Race


A few fixes as requested and notified by the users of Kirjuri.
Added a Spanish language file courtesy of QuiQue CiBeRs, thanks!
Fixed a bug causing the statistics page to ignore the last day of the year.
Last release, I will no longer actively develop this project as I don't have time for it anymore. If you are interested in taking the lead in developing this project, please contact me at antti.kurittu@gmail.com.
Made some tweaks to the user interface on user settings.
Added a language file editor to easily localize Kirjuri. You can access it from settings -> lang -> click the "Lang"-title link. Language files are stored as JSON files. Older .conf files will be loaded if no .JSON file is present, but saved as JSON on first edit.
Added a reservation calendar for the tools.
Branched the Kirjuri git project to "develop" and "master", "develop" contains the bleeding edge changes which are still untested. These changes will be merged to master after enough testing has been done to make sure nothing breaks.
Dropped support for PHP5 - dependencies require this. Upgrade to PHP7.
Greatly improved logging - Kirjuri logs events to logs/kirjuri.log and case events to case folders in the logs/-folder. Logging to database is deprecated, all logs now go to log files.
Case timeline - A neat visualization of case events.
Audit trail. All POST and GET requests that contain changes to requests or devices are saved locally. This enables auditing changes to requests and in some cases, restoring data to the database from previous POST requests. Audit logs are encrypted with a auto-generated key. You can change this key manually. You can access the audit logs and case timeline by clicking the green calendar icon in the case log.
You can now export and import individual cases in the form of .krf files. These files include the examination request, all devices and all attachments. The file is a JSON object compressed with gzencode(), so importing and exporting large cases might take a while.
LDAP authentication support, currently supports authenticating against Active Directory with the ldap_bind()-function. AD authentication creates a local account on first login. Authentication to this account is only allowed over LDAP. You can still use local accounts as usual, and disable this feature from the settings. If the feature is enabled, domain authentication is the default setting.
Files are now uploaded to the database to simplify backup, to enable auditing file uploads & downloads and mitigate file inclusion vulnerabilities. If you have local files stored at the attachments/ subfolders, you can still access these, but uploading or removing local files is now deprecated. File size is limited to 16MB by database design to keep the database size reasonable, and files are compressed prior to writing to the database. Kirjuri is not designed to be used as a file storage, so this functionality is offered mainly for storing forensic reports, documents, images or other small files related to the case. Large files like drive images should be stored elsewhere.
Started working on a RESTful API. The rest_api.php script is disabled by default, as it can only read information for now.
Moved from incrementing release numbers to versioning.
A lot of small bugfixes.
Made the user session management a bit more sane.
Added checking for session timestamp to determine whether session is online or not.
Fixed a typo in the Finnish language file that made the setting fail.
Made handling settings better - instead of editing a text file, fields are presented and settings file parsed from that.
More tweaks, bugfixes and other betterments.
Gave an input form to set the admin password on install time instead of defaulting to "admin".
Removed adding extra examiners from settings file. Create users for this.
Switched some glyphicons to Font Awesome icons. Gotta finish this.
Ending an users session will force-logout after a while.
Enhanced the request front page with a more concise layout.
Added session information and administrator ability to terminate single sessions for users.
Global black/whitelists for login IP addresses, configurable in conf/access_list.php.
Enhanced security features with per-user IP black/whitelisting. This will not restrict existing sessions but sets limits to new sessions.
You can now set which index page columns are shown or not. The file to configure this behaviour is conf/index_columns.conf.
Per-case, per user access control added. Users can restrict access to examination requests and users are not able to view or edit requests where they don't belong to the access group. Administrators can see and set any case access group. Access groups are independent of user privilege level.
Case event logging; log files are now written for each case, and they are displayed on the examination request page to keep track of the investigation. Non-case related logs are written to kirjuri_case_0.log and errors to error.log. The logs are stored in kirjuri_errors.log and kirjuri_events.log when stored & cleared. All log events are also written to the database for audit purposes.
CSRF protection enhanced, now works as per-session to enable a tabbed workflow.
Implemented internal protections with case access tokens.
Added CSRF protection to all pages, even though you shouldn't deploy Kirjuri on a network where this is an issue.
Updated the German language file with the new language directives. Translation courtesy of Dennis Schreiber, thank you very much!
Shuffled the message buttons around so that the tooltip doesn't cover the essential buttons.
Added a possibility to create a device memo report template, so that you can add your own "fields" to it. Currently it has rows for imaging details. You can edit this file at conf/report_notes.template. HTML is allowed, the file is sanitized before presentation. You can copy the file to report_notes.local to preserver your local changes through updates.
The "add-only" user now only sees the "Add a new request"-page.
Message of the day will be shown at the login screen.
Added a passwords field to the "new request"-page. The investigator can now add all known passwords to the request at the time of submission, and they will be displayed in the private notes section. Fixed a few minor annoyances.
Statistics page will not load if no cases present.
This update does not alter database structures.
Fixed an error on newest MySQL (at least Ver 14.14 Distrib 5.7.16) where inserting a value of '' no longer populates an INT field with "0" but instead fails. Some dirty workarounds on submit.php to fix this. No need to update if your version works fine.
Added two new data graphs to the statistics; amount of data per requesting unit and amount of devices per requesting unit.
Added HTMLPurifier processing for strings presented as raw to prevent XSS.
Implemented a simple internal messaging system. This update requires running install.php to create the necessary tables.
THIS RELEASE CREATES AN ADDITIONAL DATABASE TABLE. RE-RUN install.php to auto-create the necessary tables. Back up your database before making any changes to your existing installation.
Added support for managing your forensic tools and adding them to the case via a tool registry. The tool registry can be used to keep track of software and hardware versions in use complete with a version / update history. You can add information about used tools to a device by using the "Add a tool..."-dropdown in the device memo and saving the data. This will add a line to the examiners notes about the tools used. This information will not be printed to the report.
Added support for using an IMEI database to automatically look up device details based on the TAC identified in the IMEI code. The database is not shared but you can request a copy from GSMA if you are eligible for one. The database format is as follows: "TAC|Marketing Name|Internal Model Name|Manufacturer|Bands|Allocation Date|Country Code|Fixed Code|Manufacturer Code|Radio Interface|Brand Name|Model Name|Operating System|NFC|Bluetooth|WLAN|Device Type". The administrator can upload an IMEI database via the settings or move it manually to conf/imei.txt.
Some visual changes to better handle limited screen real estate, stacked the action / status droplists on top of each other to make room for device information.
Changed how enter behaves when filling forms from saving form to jumping to next field.
Started working on an API. This is still very heavily a work in progress, and is at this time undocumented. I'm still including it in this update so that it can be tried out. Do not expect it to remain unchanged over future updates!
Removed the timeout for open browser windows logging the user out.
Added the ability to dump the database into a file for backing up from the browser. The link is under settings, available to admin accounts. Set your mysqldump binary location in the source if it doesn't work right away.
Fixed some coding standards which jumbled a lot of the files around.
Simplified installation with an install script.
Improved error / info message system.
Removed clumsiness and utilized the session variable more.
Streamlined template rendering a bit.
Added comments to the code.
Please notify me of any bugs you find, I've tested the new version but some might have slipped by.
Fixed some finnish variable names. Tested Kirjuri with PHP7, seems to work fine.
Streamlined the handling of settings - settings now take effect right away on any pageload.
Kirjuri refuses to accept a device is type, action status and location have not been set.
Slight tweaks here and there.
Added some comments to the code.
Cleaned up submit.php and got rid of the clumsy return.php.
Created a custom error handler that shows and/or logs errors. You can set the error level from your php.ini.
Fixed a bunch of undefined indexes that created unnecessary notices and errors.
Made some small adjustments here and there.
German translation added, thank you Dennis Schreiber for the language file!
Added support for attaching files to examination requests. Script upload is prevented by renaming text files not ending in .txt.
Added removed items to CSV download.
Fixed the statistics page counting removed items and cases.
Changed licensing to the simpler MIT license.
More elegant handling of mysql credentials, you can use an optional ignored file which will allow pulling/pushing changes.
Made the device action and device location jump lists dynamic - choosing a value automatically saves it. This works in both device memo and devices overview.
Moved the listings from settings to the language files where they belong.
Translated some finnish named variables to english.
Made it possible to copy settings.conf to settings.local and added it to gitignore so that pulling changes doesn't reset settings.
Fixed the language file to use natural language variables for more readable code.
Moved the MySQL credentials from the config file to source code.
Cleaned up the inconsistent use of Twig brackets.
Added an icon to stalled cases (counting from latest update), stall threshold can be set from settings.
Added possibility to download case data as a CSV file.
Made the device listing droplists dynamic - no need to save one by one, changes effect immediately.


Sports Mole brings you team news, predicted lineups and a full match preview of Saturday's Premier League clash between Watford and Manchester United.
Manchester United will head to Watford in the Premier League this weekend hoping to end the Hornets' 100% start to the 2018-19 campaign, which has left them in third position in the table.
Indeed, Watford have collected 12 points from their four league fixtures this term, and will be looking to overcome a United team that has won two and lost two of their four matches during a tough start to the season.
It was supposed to be a tough campaign for Watford, and while that still might be the case, the Hornets have made a stunning start to the season, with four wins from four matches seeing them put 12 points on the board.
Javi Gracia's outfit are one of only three teams - the other two being Liverpool and Chelsea - to have a 100% record at this stage, and another victory this weekend would leave the Watford fans dreaming of a potential 'Leicester City season'.
The Hornets opened their 2018-19 campaign with a 2-0 win over Brighton & Hove Albion, beat beating Burnley and Crystal Palace in their next two in the league ahead of a 2-0 victory over Reading in the EFL Cup.
Watford were tipped to come unstuck against Tottenham Hotspur before the international break, but they came from behind to record a 2-1 win over Mauricio Pochettino's side to make it their best-ever start to a Premier League campaign.
Gracia's team finished 14th in the Premier League last term, and were not particularly busy during the summer transfer window. Something has clicked in the early weeks though, and they will be full of confidence ahead of the visit of United.
Watford dropped points in 12 of their 19 home Premier League matches last season, however, and have lost 20 of their 30 matches with United in all competitions, recording just five wins.
The Hornets have only beaten the Red Devils once since 1986, although that was a 3-1 success at Vicarage Road during the 2016-17 Premier League season, and the club's supporters will be eyeing another success this weekend.
United opened their 2018-19 Premier League season with a 2-1 win over Leicester on August 10, but back-to-back defeats to Brighton & Hove Albion and Tottenham Hotspur saw things go south pretty quickly.
Indeed, United's back four was all over the place in the 3-2 defeat to Brighton on August 19, before a 3-0 home loss to Tottenham on August 27 led to speculation that Jose Mourinho could lose his job as head coach.
Mourinho eased the pressure with a 2-0 success away to Burnley before the international break, but the 20-time English champions are already six points off the top of the table, and that could become nine this weekend.
Only the champions Manchester City had a better away record than United in the Premier League last season though, and as mentioned above, the Red Devils have a very strong set of results against Watford.
United are entering an interesting set of fixtures as they open their Champions League group campaign away to Young Boys on Wednesday night, before hosting impressive Wolverhampton Wanderers in the Premier League next weekend.
Mourinho's side will then host Derby County in the EFL Cup before visiting West Ham United in the league on September 29. The 2018-19 campaign is in full swing, and the Red Devils really need to put a strong run of results on the board.
Talk of Zinedine Zidane replacing Mourinho as head coach has gathered pace in recent weeks, but things can change in football pretty quickly, and a strong end to September would leave United in a much stronger position.
The English giants have only lost one of their 10 Premier League meetings with Watford, and despite the Hornets making a very impressive start to the campaign, Mourinho will be confident of leading his team to another away success on Saturday night.
Gerard Deulofeu could be available for Watford this weekend, but Younes Kaboul and Tom Cleverley are both definitely still on the sidelines for the Hornets.
Head coach Gracia could keep with the same XI that started against Tottenham last weekend, although Andre Gray could drop out if there is a change of formation, with Nathaniel Chalobah potentially coming into midfield.
Troy Deeney was on the scoresheet against Spurs last time out, and will look to cause a fragile United defence problems.
Marcus Rashford will miss out for United after the forward, who netted twice for England during the recent international break, picked up a straight red card in the win over Burnley last weekend.
Phil Jones is also still unavailable for the Red Devils, while Luke Shaw is unlikely to feature despite not yet being officially ruled out of the match with the head injury that he suffered in England's 2-1 defeat to Spain.
As a result, Ashley Young should be handed his first start of the season at left-back. Summer arrival Diogo Dalot is also in contention, while Marouane Fellaini's impressive performance against Burnley could see the midfielder keep his spot, although he will need a late fitness test on a back problem.
Further forward, Romelu Lukaku will be joined by Alexis Sanchez and Jesse Lingard, with Anthony Martial and Juan Mata the expected options from the bench.
Saturday will be the 31st meeting between Watford and United in all competitions. United have won 20 of the previous 30, suffering just five defeats.
As mentioned, United have won nine of their 10 Premier League meetings, including a 4-2 victory at Vicarage Road last season.
Watford's 3-1 home success during the 2016-17 Premier League season was the first time that they had beaten the Red Devils since September 1986.
Watford will enter the match full of confidence following a very strong start to the season, but United were impressive against Burnley, and we fancy the Red Devils to record a narrow victory at Vicarage Road.
Who will win Saturday's Premier League clash?
Barcelona still keen on Ander Herrera?
Besiktas to move for Olivier Giroud?


text:
HMD brings Nokia 8.1 to UK, starts at £379.99 from today!
Meanwhile, HMD Global's Chief Product Officer Juho Sarvikas has also teased plans for MWC 2019 in Barcelona.
Scott Adam Gordon
HMD Global has announced it is bringing the Nokia 8.1 to the U.K. market from today. The company made the announcement in an emailed press release earlier this morning.
The mid-range device will be available in blue/silver and steel/copper colors for £379.99 (~$498) from various U.K. retailers. It's still shown as temporarily out of stock on Amazon, though it's likely to appear there and elsewhere before the end of the day.
For 2019, expect more Nokia smartphones in the U.S.
HMD Global announced the Android One-based Nokia 8.1 in December and it comes with a Snapdragon 710 chipset, 4GB RAM, dual 12MP+13MP cameras, and Android Pie. We called it a "delightful package" in our review and found little in the way of caveats at the price point. Well-priced phones like the Xiaomi Pocophone F1 provide stiff competition (which features a Snapdragon 845 chipset), however. Xiaomi's phone can currently be found on Amazon for £279.99.
In related news, HMD Global's Chief Product Officer Juho Sarvikas revealed MWC 2019 plans in an on-trend tweet earlier today. Sarvikas didn't hint anything other than the HMD Global's presence, but it may reveal the Nokia 9 PureView there. We've already been waiting a while for that one.
Are you thinking about picking up the Nokia 8.1? Let us know in the comments.
HMD GlobalNokia


Abstract: I argue that respect for other cultures and a commitment to studying them in the context of their own historical development need not prevent anthropologists from criticizing the morality of some practices of those cultures. Cultural relativism does not entail ethical relativism, and, moreover, a commitment to ethical relativism is inconsistent with the codes of ethics developed by various professional organizations of anthropologists. Two current public policy issues in which anthropologists have been involved, namely, protecting women from genital mutilation and preserving archaeological sites, reveal their commitment to ethical principles of justice that transcend individual cultures. An uncritical acceptance of the relativist view that there is no extracultural perspective from which one can make ethical judgments thus leads anthropologists into contradictions that interfere with their goal of promoting respect for others' beliefs, practices, values, and material culture.


Portland is the craft beer capital of the world (I might have just made that up)! And if it's not, it totally should be. If there is one thing we do well in this great state, it's making good beer. It seemed only fitting to throw my husband a Beer Tasting Birthday Party. Great guy + Great Beer = Successful Birthday Party. Do you follow my logic here?
Are you looking for some fun and creative ideas to throw your own Beer Tasting Birthday Party? Check out all of the fun Beer Tasting Birthday Party Ideas below. . .
Set sail with our adorable Girly Nautical Birthday Party. We took shades of pink, mint, and navy blue and created a stunning birthday bash. Make sure you check my post Set Sail! An Adorable Nautical Girls Birthday Party for the full party details over on the Oriental Trading blog.
Throwing a Pineapple Party? You need to check out my post on "How to Throw a Pineapple Party" that I styled for Oriental Trading. My vision was a fun poolside get together with your girlfriends. Grab your favorite bar cart and your girlfriends and let's get this party started.
Science birthday parties are fun for adults and kids alike. Plus, they are gender neutral and are loved by both girls and boys. If you plan on throwing a science birthday party for your child, make sure you check out our Science Birthday Party Ideas. We offer many fun food ideas along with ways to decorate and style your next Science themed birthday party.


Logitech G worked together with eSports athletes to create the Pro Gaming Mouse. This Logitech G mouse is inspired by the classic, simple construction of the Logitech G100 and G100s body made popular by top competitive eSports professionals. Our best optical sensor, PMW3366, provides exceptional ..
FEATURES to move even when applying minimal force, minimizing mistakes from overcompensation when starting or stopping. CONSISTENT SURFACE TEXTURE Edge-to-edge performance Heavy..
10/10 PERFECTION Best All-Purpose Gaming Mouse It's official, Logitech G502 Proteus Spectrum is the Tom's Guide winner in 2016. "From design and software to performance, the Logitech Proteus ..
G603 is a next-generation gaming mouse for a wireless world. It features the new HERO sensor for unrivaled performance with up to 10x the battery efficiency compared to prior generations. It also includes LIGHTSPEED technology which delivers unrivaled wireless performance surpassing wired gaming ..


text:
True talent levels for NHL team shooting percentage, part II
(Part I is here)
Team shooting percentage is considered an unreliable indicator of talent, because its season-to-season correlation is low.
Here are those correlations from the past few seasons, for 5-on-5 tied situations.
-0.19 2014-15 vs. 2013-14
+0.30 2013-14 vs. 2012-13
The simple average of all those numbers is +0.02, which, of course, is almost indistinguishable from zero. Even if you remove the first pair -- the 2014-15 stats are based on a small, season-to-date sample size -- it's only an average of +0.055.
(A better way to average them might be to square them (keeping the sign), then taking the root mean square. That gives +0 .11 and +0.14, respectively. But I'll just use simple additions in this post, even though they're probably not right, because I'm not looking for exact answers.)
That does indeed suggest that SH isn't that reliable -- after all, there were more negative seasons than strong positive ones.
But: what if we expand our sample size, by looking at the correlation between pairs that are TWO seasons apart? Different story, now:
These six seasons average +0.21, which ain't bad.
Part of the reason that the two-year correlations are high might be that team talent didn't change all that much in the seasons of the study. I checked the correlation between overall team talent, as measured by hockey-reference.com's "SRS" rating. For 2008-09 vs. 2013-14, the correlation was +0.50.
And that's for FIVE seasons apart. So far, we've only looked at two seasons apart.
I chose 2008-09 because you'll notice the correlations that include 2007-08 are nothing special. That, I think, is because team talent changed significantly between 07-08 and 08-09. If I rerun the SRS correlation for 2007-08 vs. 2013-14 -- that is, going back only one additional year -- it drops from +0.50 to only +0.25.
On that basis, I'm arbitrarily deciding to drop 2007-08 from the rest of this post, since the SH% discussion is based on an assumption that team talent stays roughly level.
But even if team talent changed little since 2008-09, it still changed *some*. So, wouldn't you still expect the two-year correlations to be lower than the one-year correlations? There's still twice the change in talent, albeit twice a *small* change.
You can look at it a different way -- if A isn't strongly related to B, and B isn't strongly related to C, then how can A be strongly related to C?
Well, I think it's the other way around. It's not just that A *can* be strongly related to C. It's that, if there's really a signal within the noise, you should *expect* A to be strongly related to C.
Consider 2009-10. In that year, every team had a certain SH% talent. Because of randomness, the set of 30 observed team SH% numbers varied from the true talent. The same would be true, of course, for the two surrounding seasons, 2008-09, and 2010-11.
But both those surrounding seasons had a substantial negative correlation with the middle season. That suggests that for each of those surrounding seasons, their luck varied from the middle season in the "opposite" way. Otherwise, the correlation wouldn't be negative.
For instance, maybe in the middle season, the Original Six teams were lucky, and the other 24 teams were unlucky. The two negative correlations with the surrounding seasons suggest that in each of those seasons, maybe it was the other way around, that the Original Six were unlucky, and the rest lucky.
Since the surrounding seasons both had opposite luck to the middle season, they're likely to have had similar luck to each other.
In this case, they are. The A-to-B correlation is -0.27. The B-to-C correlation is -0.10. But the A-to-C correlation is +0.41. Positive, and quite large.
-0.10 2010-11 (A) vs. 2009-10 (B)
-0.27 2009-10 (B) vs. 2008-09 (C)
+0.41 2010-11 (A) vs. 2008-09 (C)
This should be true even if SH% is all random -- that is, even if all teams have the same talent. The logic still holds: if A correlates to B the same way C correlates to B ... that means A and C are likely to be somewhat similar.
I ran a series of three-season simulations, where all 30 teams were equal in talent. When both A and C had a similar, significant correlation to B (same sign, both above +/- 0.20), their correlation with each other averaged +0.06.
In our case, we didn't get +0.06. We got something much bigger: +0.41. That's because the underlying real-life talent correlation isn't actually zero, as it was in the simulation. A couple of studies suggested it was around +0.15.
So, the A-B was actually -0.25 "correlation points", relative to the trend: -0.10 relative to zero, plus -0.15 below typical. (I'm sure that isn't the way to do it statistically -- it's not perfectly additive like that -- but I'm just illustrating the point.) Similarly, the B-C was actually -0.42 points.
Those are much larger effects when you correct them that way, so they have a stronger result. When I limited the simulation sample so both A-B and A-C had to be bigger than +/- 0.25, the average A-C correlation almost tripled, to +0.16.
Add that +0.16 to the underlying +0.15, and you get +0.31. Still not the +0.41 from real life, but close enough, considering the assumptions I made and shortcuts I took.
Since we have six seasons with stable team talent, we don't have to stop at two-season gaps ... we can go all the way to five-season gaps, and pair every season with every other season. Here are the results:
14-15 -0.19 +0.35 +0.20 +0.15 +0.46 -0.07
13-14 -0.19 +0.30 +0.12 +0.27 -0.07 +0.42
12-13 +0.35 +0.30 +0.33 +0.27 +0.24 +0.26
11-12 +0.20 +0.12 +0.33 +0.03 +0.12 -0.08
10-11 +0.15 +0.27 +0.27 +0.03 -0.10 +0.41
09-10 +0.46 -0.07 +0.24 +0.12 -0.10 -0.27
08-09 -0.07 +0.42 +0.26 -0.08 +0.41 -0.27
The average of all these numbers is ... +0.15, which is exactly what the other studies averaged out to. That's coincidence ... they used a different set of pairs, they didn't limit the sample to tie scores, and 14-15 hadn't existed yet. (Besides, I think if you did the math, you'd find you wanted the root of the average r-squared, which would be significantly higher than +0.15.)
Going back to the A-B-C thing ... you'll find it still holds. If you look for cases where A-B and B-C are both significantly below the 0.15 average, A-C will be high. (Look in the same row or column for two low numbers.)
For instance, in the 14-15 row, 13-14 and 08-09 are both negative. Look for the intersection of 13-14 and 08-09. As predicted, the correlation there is very high -- +0.42.
By similar logic, if you find cases where A-B and B-C go in different directions -- one much higher than 0.15, the other much lower -- then, A-C should be low.
For instance, in the second row, 09-10 is -0.07, but 08-09 is +0.42. The prediction is that the intersection of 09-10 and 08-09 should be low -- and it is, -0.27.
Look at 2012-13. It has a strong positive correlation with every other season in the sample. Because of that, I originally guessed that 2012-13 is the most "normal" of all the seasons, the one where teams most played to their overall talent. In other words, I guessed that 2012-13 was the one with the least luck.
But, when I calculated the SDs of the 30 teams for each season ... 2012-13 was the *highest*, not the lowest. By far! And that's even adjusting for the short season. In fact, all the full seasons had a team SD of 1.00 percentage points or lower -- except that one, which was at the adjusted equivalent of 1.23.
Well, I think it's this: in 2012-13, instead of luck mixing up the differences in team talent, it exaggerated them. In other words: that year, the good teams got lucky, and the bad teams got unlucky. In 2012-13, the millionaires won most of the lotteries.
That kept the *order* of the teams the same -- which means that 2012-13 wound up the most exaggeratedly representative of teams' true talent.
Whether that's right or not, it seems that two things should be true:
-- With all the high correlations, 2012-13 should be a good indicator of actual talent over the seven-year span; and
-- Since we found that talent was stable, we should get good results if we add up all six years for each team, as if it was one season with six times as many games.*
*Actually, about five times, since there are two short seasons in the sample -- 2012-13, and 2014-15, which is less than half over as I write this.
Well, I checked, and ... both guesses were correct.
I checked the correlation between 2012-13 vs. the sum of the other five seasons (not including the current 2014-15). It was roughly +0.54. That's really big. But, there's actually no value in that ... it was cherry-picked in retrospect. Still, it's just something I found interesting, that for a statistic that is said to have so little signal, a shortened season can still have a +0.54 correlation with the average of five other years!
As for the six-season averages ... those DO have value. Last post, when we tried to get an estimate of the SD of team talent in SH% ... we got imaginary numbers! Now, we can get a better answer. Here's the Palmer/Tango method for the 30 teams' six-year totals:
SD(observed) = 0.543 percentage points
SD(luck) = 0.463 percentage points
SD(talent) = 0.284 percentage points
That 0.28 percentage points has to be an underestimate. As explained in the previous post, the "all shots are the same" binomial luck estimate is necessarily too high. If we drop it by 9 percent, as we did earlier, we get
We also need to bump it for the fact that this is the talent distribution for a six-season span -- which is necessarily tighter than a one-season distribution (since teams tend to regress to the mean over time, even slightly). But I don't know how much to bump, so I'll just leave it where it is.
That 0.34 points is almost exactly what we got last post. Which makes sense -- all we did was multiply our sample size by five.
The real difference, though, is the credibility of the estimate. Last post, it was completely dependent on our guess that the binomial SD(luck) was 9 percent too high. The difference between guessing and not guessing was huge -- 0.34 points, versus zero points. In effect, without guessing, we couldn't prove there was any talent at all!
But now, we do have evidence of talent ... and guessing adds only around 0.6 points. If you refuse to allow a guess of how shots vary in quality ... well, you still have evidence, without guessing at all, that teams must vary in talent with an SD of at least 0.284 percentage points.
Labels: correlation, corsi, distribution of talent, hockey, NHL, Tango
posted by Phil Birnbaum @ 12/18/2014 02:33:00 PM 1 comments
At Sunday, December 21, 2014 1:46:00 PM, Rob V said...
Thought you might enjoy a quick peek at this:
http://www.habseyesontheprize.com/2014/6/30/5844400/nhl-expected-shooting-percentage-regress-prediction
An attempt to calculate a team's expecting shooting percentage, based on each individual player's previous career shooting percentage.
True talent levels for NHL team shooting percentage
The best NHL players create higher quality shots
Corsi vs. Tango
Players being "clutch" when targeting 20 wins -- a...
Does inequality make NBA teams lose?
Corsi, shot quality, and the Toronto Maple Leafs, ...
Do baseball salaries have "precious little" to do ...
Income inequality and the Fed report


text:
(Frank Ockenfels 3/amc)
Vince Gilligan explains inspiration behind "Breaking Bad" ending
Aside from "gut feeling," the writers called upon stories and plot devices from a few other sources
Check out this article! https://www.salon.com/2013/09/30/vince_gilligan_explains_inspiration_behind_breaking_bad_ending/
September 30, 2013 9:30PM (UTC)
In an exclusive interview with EW, "Breaking Bad" creator Vince Gilligan explained the finale episode of the most-discussed television show in recent history. (Warning: major spoilers ahead). As critics and fans debate the moral message of an ending that left a meth lord dead, semi-fulfilled, as a result of his own creation, Gilligan revealed that many of the episode's pivotal moments were inspired by other art and by the "gut feeling" of the eight writers.
Why Walt had to die:
"We didn't feel an absolute need for Walt to expire at the end of the show. Our gut told us it was right. As the writers and I worked through all these different possibilities, it felt right, but I don't think it was a necessity for us. There was a version we kicked around where Walt is the only one who survives, and he's standing among the wreckage and his whole family is destroyed. That would be a very powerful ending but very much a kick-in-the-teeth kind of ending for the viewers. We talked about a version where Jesse kills Walt. We talked about a version where Walt more or less gets away with it. There's no right or wrong way to do this job — it's just a matter of: You get as many smart people around you as possible in the writers room, and I was very lucky to have that. And when our gut told us we had it, we wrote it, and I guess our gut told us that it would feel satisfying for Walt to at least begin to make amends for his life and for all the sadness and misery wrought upon his family and his friends. Walt is never going to redeem himself. He's just too far down the road to damnation."
And why Jesse had to live:
"When you think of it, he didn't really have a chance in the early days. Walt said, 'You either help me cook meth and sell it, or else I'll turn you in to the DEA.' So this poor kid, based on a couple of really bad decisions he made early on, has been paying through the nose spiritually and physically and mentally and emotionally. In every which way, he's just been paying the piper, and we just figured it felt right for him to get away. It would have been such a bummer for us, as the first fans of the show, for Jesse to have to pay with his life ultimately."
...I prefer to believe that he got away, and he's got a long road to recovery ahead, in a sense of being held prisoner in a dungeon for the last six months and being beaten to within an inch of his life and watching Andrea be shot. All these terrible things he's witnessed are going to scar him as well, but the romantic in me wants to believe that he gets away with it and moves to Alaska and has a peaceful life communing with nature."
The writers borrowed from the John Wayne western, "The Searchers" in the scene during which Walt saves Jesse:
"A lot of astute viewers who know their film history are going to say, 'It's the ending to The Searchers.' And indeed it is. The wonderful western The Searchers has John Wayne looking for Natalie Wood for the entire three-hour length of the movie. She's been kidnapped by Indians and raised as one of their own, and throughout the whole movie, John Wayne says, 'I need to put her out of her misery. As soon as I find her, I'm going to kill her.' The whole movie Jeffrey Hunter is saying, 'No, we're not — she's my blood kin, we're saving her,' and he says, 'We're killing her.' And you're like, 'Oh my god, John Wayne is a monster and he's going to do it. You know for the whole movie that this is the major drama between these two characters looking for Natalie Wood. And then at the end of the movie, on impulse, you think he's riding toward her to shoot her, and instead he sweeps her up off her feet and he carries her away and he says, 'Let's go home.' It just gets me every time — the ending of that movie just chokes you up, it's wonderful. In the writers room, we said, 'Hey, what about the Searchers ending?' So, it's always a matter of stealing from the best. [Laughs]"
Taking cues from Chekhov, the writers made a point to come back to the ricin, which became a major element of suspense through the second half of season 5. Their gut said they needed to use it on Lydia:
The writers and I all subscribe to the dramatic philosophy of playwright Chekhov, who said that if you establish a gun in Act 1, you better have it get fired at somebody by Act 3. We knew that ricin was still out there and we knew it was hidden behind the wall outlet in the old White house bedroom. I guess we could have let it slide, but we thought to ourselves, 'The audience has been real good to us, they've paid very close attention, we want to reward them by not leaving any loose ends here.' And also, honestly, the actress who plays Lydia [Laura Fraser] is a wonderful, warm, sweet person but the chatacter of Lydia — we were all champing at the bit to see her get her just deserts much more than Todd even. Todd is so likable, you almost have these ambivalent feelings when he's being choked to death. But Lydia? We were all of one mind when we were saying, 'Oh man, she's got to go.'
Prachi Gupta is an Assistant News Editor for Salon, focusing on pop culture. Follow her on Twitter at @prachigu or email her at pgupta@salon.com.
MORE FROM Prachi Gupta • FOLLOW prachigu • LIKE Prachi Gupta
Breaking Bad Drama Jesse Pinkman Television Vince Gilligan Walter White
The North remembers Jaime Lannister
Remembering "Deep Space Nine"
Psychiatry & the birth of Sesame Street
Is a "Breaking Bad" reunion coming?
Marsha Blackburn takes one for Trump


text:
Will the Pandemic Lead to a More Peaceful World?
April 16th, 2020 - by Robert C. Koehler / Common Wonders
War, Irony and the New Normal
Robert C. Koehler / Common Wonders
(April 16, 2020) — The uber-irony about the deadly coronavirus is that, as it claims lives, endangers millions and interrupts the social normal, threatening unprecedented global chaos, it is also quietly informing us what we must do to create a better world — and, indeed, creating it, in certain ways, as we look on in stunned wonder.
The "what we must do" part is obvious to many: "After all," writes Lawrence Wittner, "why not work cooperatively to save humanity from massive global death and economic collapse rather than continue to devote $1.8 trillion a year to waging wars and engaging in vast military buildups with the goal of slaughtering one another?"
And Khury Petersen-Smith, pointing out how xenophobic racism at the level of national government — e.g., Donald Trump's initial impulse to blame China for the virus — fans the flames of public stupidity, writes: "The impact will be disastrous. Already, racists have taken license to attack Asians and Asian-Americans in public. And stoking division on a world scale will undermine one of the most important keys to our collective survival of this crisis: cooperation across borders."
As the world struggles to create or flee from the new normal that's emerging (or maybe not), here's a phenomenon almost too strange to comprehend: March 2020, with schools across the country closed down, "was apparently the first March in nearly two decades without a school shooting in the U.S," CBS News reports. The last March our school system has been free of a shooting spree was 2002.
America, America, God shed His grace on thee . . .
But let's go back to the nearly $2 trillion the world as a whole devotes annually to war and armaments, all in the name of keeping itself safe. This is insanity beyond comprehension. But because, up until the last couple months, it has been, for several millennia, the essence of Normal, the falseness of that belief doesn't matter. It's the way things are.
Protecting borders and "interests" is the primary function of most national leaders across the globe. Almost every nation maintains a hammer — that is to say, a military — and every problem out there then becomes a nail to whack at. Is the coronavirus waking us up?
"Imagine," writes David Swanson, "if the nuclear doomsday clock being closer to midnight than ever before were addressed appropriately, with some hint of interest from human governments in human survival."
That's precisely what millions of people across Planet Earth have desperately wanted from their governments — some hint of interest in human survival! — since, I would say, the dawn of the nuclear age. Has the division of the planet into nation states, each with a desperately maintained sense of identity — an identity that seems so real to so many when there's an enemy beyond the borders to hate and fear — completely deprived national leaders of the ability to think holistically: to think beyond the imaginary borders of the worlds they rule?
"Considering these questions," writes Murtaza Hussain, "it's hard not to conclude that the American government's national security priorities have been so askew of reality that they left the country dramatically unprepared for an acute threat to millions of its people."
While world leaders prepare for war, real threats continually percolate. One of them, of course, now has the name COVID-19. But most of them remain nameless and barely imaginable. That doesn't mean we shouldn't be looking at and addressing them with all the clarity we can muster.
Doing this is the work of what Swanson called a Department of Actual Defense, which is a far different entity from the current US. Department of Defense, which for most of American history was more accurately called the Department of War.
A Department of Actual Defense "would need to be global, not national," and, actually having an interest in human survival, would address our collapsing ecosystem, as well as poverty, physical and mental health, and issues of safety, he writes. I could see it also addressing the ongoing global pandemic of violence, the inadequacy of our prison system, the nature of crime and the nature of healing.
"A Department of Actual Defense," he writes, "would train pro-environment workers, disaster-relief workers, and suicide-prevention workers in the tasks of protecting the environment, relieving disasters, and preventing suicide, as opposed to training and arming them all to kill large numbers of people with weapons but then assigning them to other tasks. We don't need a military redirected but disbanded."
Unfortunately, while the Department of Actual Defense has not yet attained actual existence, the Department of War . . . I mean, the Department of Pseudo-Defense . . . continues to strategize about winning victories that have nothing to do with the real world and its real dangers. For instance, the New York Times recently informed us:
"The Pentagon has ordered military commanders to plan for an escalation of American combat in Iraq, issuing a directive last week to prepare a campaign to destroy an Iranian-backed militia group that has threatened more attacks against American troops. . . .
"Some top officials, including Secretary of State Mike Pompeo and Robert C. O'Brien, the national security adviser, have been pushing for aggressive new action against Iran and its proxy forces — and see an opportunity to try to destroy Iranian-backed militia groups in Iraq as leaders in Iran are distracted by the pandemic crisis in their country."
Actual military commanders see a few problems with this: "The debate is happening as top Pentagon officials and senior commanders worldwide are also expressing growing concerns about coronavirus cases expanding rapidly in the ranks, potentially threatening the military's ability to field combat-ready troops."
And there you have it: The virus is interrupting humanity's ability to kill itself.
Robert Koehler is an award-winning, Chicago-based journalist and nationally syndicated writer. His book, Courage Grows Strong at the Wound is available. Contact him or visit his website at commonwonders.com.
© 2020 Tribune Content Agency, Inc.