text:
Linda Hamilton And Tim Miller Have Blunt Thoughts About Terminator 2's Thumbs Up Scene
Gina Carbone
I was today-years-old when I learned not everyone loves the thumbs up scene in Terminator 2: Judgment Day. James Cameron co-wrote and directed 1991's T2, so it makes sense that he loves the scene where Arnold Schwarzenegger's T-800 sacrifices himself and gives one last thumbs up to the tearful John Connor (Eddie Furlong) and sad-but-stoic Sarah Connor (Linda Hamilton).
Turns out, Linda Hamilton was not into the thumbs up. Neither was Tim Miller, her new director in Terminator: Dark Fate. Miller shared their true thoughts about the T2 scene with CinemaBlend's ReelBlend podcast:
I can only say that that was not my favorite part of the movie. And the fact that it is yours is a symptom of your age [when] you saw it. Because when I saw T2, I was 27 right? But one of the first things I asked Linda is, 'How do you feel about the thumbs up moment?' And she's like, 'No.' And I went, 'Okay, we're going to be fine.' … Well, Jim [Cameron] loves that scene. Many people love that scene. For me, it's just, it's a little, it's iconic, I know, but maybe a little too sentimental for me.
I disagree, but I get it. And maybe he's right about age being a factor. I was fresh into double digits when I first saw T2 and that heartfelt moment hit me hard.
There goes John Connor's only true father figure. His friend. Our friend. Our hero. He won't be back. And yet, he is kinda back.
Arnold Schwarzenegger is returning for the direct sequel to T2, Dark Fate. He plays another T-800, one who now goes by Carl (!!!). This will be explained in the movie, including the connection to John Connor and how we left things in T2.
Terminator: Dark Fate reviews are in, and they have been mixed-to-good. Critics seem to think it's the third best Terminator film after the first two, which may be a low bar, but it also sounds like it brings the franchise back to James Cameron's basics. He never went to set during filming but was heavily involved behind-the-scenes and in editing.
Terminator: Dark Fate aims to answer the franchise's biggest question. A few other questions remain, though: Will there be another movie after this one? James Cameron has talked about setting up a trilogy, even if Linda Hamilton joked that she'd rather fake her own death than join in. One deciding factor for future movies will surely be how much money Terminator: Dark Fate makes at the box office. Opening projections are in, but the proof will be in the receipts next weekend.
Terminator 6, aka Dark Fate, opens in theaters Friday, November 1, which is also when the ReelBlend episode will drop. You can stream Terminator 2: Judgment Day on Amazon, YouTube, Google Play, iTunes, etc. Feel free to sniffle at the thumbs-up scene, it's OK to be human.
podcast ReelBlend #101: Passionate Reactions To The 2020 Oscar Nominations
news ReelBlend #100: Our Most Anticipated Films of 2020 - LIVE!
news New DVD Releases 2020: All The Latest Movies And TV Shows
news The 10 Best Action Movies Of 2019, Ranked
10 Other Comic Book Characters Christian Bale Should Play news
2020 Netflix Schedule: Premiere Dates For New And Returning Shows television


text:
Stop Making Negative Progress — How to Build Stronger, More Reliable Hardware Products
Christine Evans
Successful product development involves a rigorous and detailed process of testing, breaking, and fixing. However without the right system in place, it can be difficult to parse out the details of effective changes versus ineffective ones.
Nathan Hall-Snyder, VP of Engineering at Kespry, a commercial drone technology company that recently raised $10M in Series A funding, knows this process well. In the beginning of his journey with Kespry, it simply began with a curiosity around the drone space and then by a process of experimentation, exploration and problem solving, Nathan and his team have developed a robust system that allows them to rigorously test their products to avoid negative progress and inefficiencies.
In this interview, Nathan shares his knowledge on how to implement a system for stronger, more reliable hardware products.
Own the Entire Stack
Utilizing available hardware components and open source software is a great place to start for exploring the power of drone technology. Eventually, however, it has its limitations and the best way to develop a safe and reliable product is with strong control over both the software and hardware design.
When asked about open source software for drones, Nathan is quick to express his enthusiasm for the DIY drone community and is open about the various tools Kespry used in the early days to explore what could be possible. "I'm certainly a proponent of DIY drone tools and in the beginning we experimented with a consumer drone just to help us learn and explore. We realized we could telnet into it to make it do things, which was pretty entertaining, and we learned a lot about takeoff and landing. Eventually we ran into some obvious computer limitations though, so going forward we realized we needed more computational power and moved to develop our own software."
"It's all in proper testing. Without it, you risk implementing one change that makes it worse and one that makes it better, leaving you unable to tell if you've made any progress at all."
Because a commercial-grade drone requires a very high standard of safety and reliability, Nathan knew they had to move away from integrating outsourced components and toward a custom made drone. "When integrating a number of subcomponents, like some other companies are doing, it's difficult to know what's going on when you run into a problem," Nathan explains. "Is it a change you've made or is it a problem with one of the subcomponents? It's hard to know in that situation where the problem originates… it's impossible to fix if it does in fact originate from someone else's component."
Kespry owns their entire stack, including custom-built electronics, hardware components, and internal software. Nathan advises, "When you own the entire stack the product is so much more reliable. We can test our entire system and control each change, which allows us to more easily and efficiently assess problems and integrate solutions."
Invest in and Perfect Your Testing Infrastructure
In addition to the necessity of custom-built components, Nathan stresses the importance of a detailed testing infrastructure. After working at Google X on their Google Glass product, he recognized the value of their rigorous testing system and wanted to integrate it immediately at Kespry. "The first priority when we set up our company was to find a system with which to integrate regression testing," says Nathan. "This way, any time a software change is made, it negates the possibility of making the drone fly worse than before."
"We set up our testing infrastructure before we had even written any of our code for the drone," Nathan adds. "That's certainly a very Google way of doing things – to write the tests before you've even touched the code! This way you can very easily measure your progress."
"We set up our testing infrastructure before we had even written any of our code for the drone."
In order to test the hardware, Nathan also uses a large test suite including a full drone simulator. "We fly the drone in a virtual space while testing all the sensor inputs, software, and hardware. We use this simulator to work our way up to a full hardware test," says Nathan. In order to test the hardware, Nathan also uses a large test suite including a full drone simulator. "We fly the drone in a virtual space while testing all the sensor inputs, software, and hardware. We use this simulator to work our way up to a full hardware test," says Nathan.
A cautious and detailed testing process is surely a time investment, but it pays dividends down the road, saving you from the headache of unidentifiable problems. "It's all in proper testing." Nathan says. "Without it, you risk implementing one change that makes it worse and one that makes it better, leaving you unable to tell if you've made any progress at all."
Moreover, when reliant on someone else to assemble your parts, someone who doesn't know your product as well as you do, mayhem can ensue. "There can be so many problems when you set up parts and then have someone else assemble them," Nathan sighs. "When I've done that sometimes the product returns to me in a configuration I couldn't have even imagined! I'm like, 'how did you even come up with that!?'"
Use a Hands-On Approach to Your Hardware
When it comes to building your product, Nathan encourages a hands-on approach, at least in the early stages. "Every drone I've built so far I've been doing by hand. Eventually we'll be ramping up our manufacturing process, but I really enjoy building all the drones myself because you learn a lot by assembling your own product," Nathan shares.
At the end of the day it all comes down to knowing your product. The more you know about your product and all its features and parts, the better your product will be. Assembling a product yourself leads to a deeper understanding and is part of the process of more effective and efficient product iteration. "We're learning very quickly but there's always more to learn. We're just trying to learn as much as we can, as quickly as we can, to build the best product possible," says Nathan.
Develop your own components, build and assemble them yourself and test them continuously and rigorously. It will be a detailed process, but you will thank yourself at the end for the product that results.
Fictiv Product Marketing Manager. I'm passionate about sharing the stories of amazing hardware entrepreneurs and when I'm not doing that, I'm probably in Disneyland. Or sharing cat memes.

redpajama_set_name: RedPajamaCommonCrawl


Compare the best door catches and latches across a wide range of high quality cabinet door catches and stainless steel latches. In addition to regular door catches and latches, special tension catches, compression latches, and push knob latches are available for your projects. Sugatsune door catches and latches are renowned the world over for consistent door retention performance and smooth door release. Our catch and latch hardware are not only suitable for use with residential closet, sliding doors, and cabinet doors but also great fit for boat cabin, cruiser cabin, and RVs. There are infinite possibilities of custom catch and latch applications.


This paper analyses the reorientation of Hanseatic merchants' involvement in world trade during the second half of the nineteenth and first decades of the twentieth centuries. This shift was influenced by the independence of former British and Iberian colonies in the Americas, which caused the implosion of colonial trade monopolies. The abolition of the Trans-Atlantic Slave Trade, and the Scramble for Africa also allowed German commerce to obtain more direct access to markets in and raw materials from tropical regions. An examination of the commodity chains of rubber and palm oil/ kernels reveals the great influence of Hanseatic merchant families (e.g. O'Swald, Schramm or Woermann) on determining and shaping the terms by which African and South American regions became incorporated into the emerging world economy.


text:
Q: how to aded cluster-level extended resources to k8s use scheduler extender? I have already read the k8s cluster-level-extended-resources and scheduler documents.
https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#cluster-level-extended-resources
From the documents, I knew that extender can get the pod specs at filter or bind phase, so that extender can allocate a managed source at that time. My question is how to inject the external resource into the pod. eg: how to add some environment variables(URL related to external resources) to pods.

redpajama_set_name: RedPajamaStackExchange


text:
package io.fabric8.rest;

import io.fabric8.common.util.Files;
import io.fabric8.zookeeper.utils.ZooKeeperUtils;
import org.apache.curator.framework.CuratorFramework;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import static io.fabric8.rest.ProfileResource.guessMediaType;

/**
 * Represents the fabric registry (access to ZooKeeper).
 */
@Produces("application/json")
public class RegistryResource extends ResourceSupport {
    public static final String FABRIC_ZK_PREFIX = "/fabric/registry/";
    public static final String ROOT_ZK_PREFIX = "/";

    private static final Logger LOG = LoggerFactory.getLogger(RegistryResource.class);
    private final String resourcePathPrefix;
    private final String zkPrefix;

    public RegistryResource(ResourceSupport parentResource, String resourcePathPrefix, String zkPrefix) {
        super(parentResource, resourcePathPrefix);
        this.resourcePathPrefix = resourcePathPrefix;
        this.zkPrefix = zkPrefix;
    }

    @GET
    public Map<String, String> links() {
        Map<String, String> links = new LinkedHashMap<>();
        links.put("data", getLink("data"));
        links.put("children", getLink("children"));
        if (zkPrefix.length() > 0 && !"/".equals(zkPrefix)) {
            String baseUri = getBaseUri();
            int idx = baseUri.lastIndexOf('/');
            if (idx > 0) {
                String parentLink = baseUri.substring(0, idx);
                links.put("parent", parentLink);
            }
        }
        return links;
    }

    @GET
    @Path("children")
    public Map<String, String> list() throws Exception {
        String zkPath = toZooKeeperPath("");
        List<String> fileNames = ZooKeeperUtils.getChildrenSafe(getCurator(), zkPath);
        return mapToLinks(fileNames, "child/");
    }

    @Path("child/{path}")
    public RegistryResource child(@PathParam("path") String path) {
        return new RegistryResource(this, "child/" + path + "/", toZooKeeperPath(path) + "/");
    }

    @GET
    @Path("data")
    public Response get() throws Exception {
        CuratorFramework curator = getCurator();
        if (curator != null) {
            String zkPath = toZooKeeperPath("");
            byte[] bytes = ZooKeeperUtils.getData(curator, zkPath);
            if (bytes == null) {
                return Response.status(Response.Status.NOT_FOUND).
                        entity("No such ZooKeeper entry for path: " + zkPath).build();
            } else {
                String mediaType = guessMediaTypeWithJsonDefault(zkPath, bytes);
                return Response.ok(bytes, mediaType).build();
            }
        } else {
            return Response.status(Response.Status.SERVICE_UNAVAILABLE).
                    entity("No ZooKeeper connection").build();
        }
    }

    protected static String guessMediaTypeWithJsonDefault(String path, byte[] bytes) {
        String mediaType = guessMediaType(path);
        if (mediaType.equals("text/plain")) {
            String fileExtension = Files.getFileExtension(path);
            if (fileExtension == null) {
                // if we start and end with {} or [] that we're json
                String trimmedText = new String(bytes).trim();
                if (trimmedText.startsWith("[") && trimmedText.endsWith("]")
                        || trimmedText.startsWith("{") && trimmedText.endsWith("}")) {
                    mediaType = "application/json";
                }
            }
        }
        return mediaType;
    }

    protected String toZooKeeperPath(String path) {
        if (path != null) {
            while (path.startsWith("/")) {
                path = path.substring(1);
            }
        }
        if (path == null || path.length() == 0 || path.equals("/")) {
            if (zkPrefix.endsWith("/") && zkPrefix.length() > 1) {
                return zkPrefix.substring(0, zkPrefix.length() - 1);
            } else {
                return zkPrefix;
            }
        }
        return zkPrefix + path;
    }
}

redpajama_set_name: RedPajamaGithub


text:
Q: array.min() <= array[0] --> return false As described in the title. The value in question is min of red. ath returns the expected result for both min and max. The elements are datetime.date. I did some experiments to explain this situation but it becomes even more confusing. This almost sounds fake, so I attached the screenshot of the notebook.
[In]
(red.shipped_date.values.min(), red.shipped_date.values.max())
(ath.created_date.values.min(), ath.created_date.values.max())
[Out]
(datetime.date(2021, 1, 10), datetime.date(2021, 7, 6))
(datetime.date(2016, 1, 1), datetime.date(2021, 6, 23))

[In]
red.shipped_date.values.min()
[Out]
datetime.date(2021, 1, 10)

[In]
red.shipped_date.values[0]
[Out]
datetime.date(2018, 7, 25)

[In]
red.shipped_date.values.min() > red.shipped_date.values[0]
[Out]
True

[In]
(red.shipped_date.values).min() == (red.shipped_date.values)[0]
[Out]
False

[In]
# I want to see if the array only searched for the first n values and that's why?
np.where(red.shipped_date.values == red.shipped_date.values.min())
[Out]
(array([ 21769,  22728,  22730,  64642,  64643,  71007,  71008, 140756,
        140757, 154368, 154369, 154372, 154373, 154376, 154377, 154544,
        156998, 157003, 157004, 157006, 157007, 158041, 158042, 160156,
        160157, 161450, 161451]),)

[In]
# If there is no so-called min() in the array, will it recognize the true minimum?
first_min = red.shipped_date.values[:21769]
first_min.min()
[Out]
datetime.date(2016, 1, 4)
# Yes. This output is expected.

[In]
red.shipped_date.values[0] < red.shipped_date.values.min()
[Out]
True

[In]
# If we include the so-called min(), will that still be the min()?
inc_first_min = red.shipped_date.values[:21769+1]
inc_first_min.min()
[Out]
datetime.date(2016, 1, 4)
# This is expected.

[In]
# After getting rid of all so-called min() values, what would be the min() of the array?
red.shipped_date.values[np.where(red.shipped_date.values != red.shipped_date.values.min())].min()
[Out]
datetime.date(2021, 1, 11)


text:
PwC fined £5M for audit misconduct in U.K.
May 12, 2017, 4:20 p.m. EDT
PricewaterhouseCoopers' firm in the United Kingdom was fined a record £5 million ($6.4 million) by the U.K.'s Financial Reporting Council for its audits of Connaught, a social housing maintenance business that collapsed in 2010.
PwC was also ordered Thursday to pay the FRC Executive Counsel's costs and to make an interim payment on account of £1.5 million ($1.93 million). The FRC also fined a retired PwC audit partner, Stephen Harrison, £150,000 ($193,000).
The Financial Reporting Council conducted an investigation and a 12-day hearing by an independent Tribunal chaired by Sir Stanley Burnton and found misconduct in three auditing areas: mobilization costs, long-term contracts and intangible assets.
The firm issued a statement apologizing for its work. "We are sorry that our work fell short of professional standards," said a PwC U.K. statement. "Since 2010 when the case began, we've worked hard to improve our procedures and processes. Audit quality is of paramount importance to PwC and the FRC's annual audit quality assessments have shown a trend of improvement in our work over several years." Harrison could not be reached for comment.
Connaught, which maintained affordable housing for British residents, needed to appoint administrators in September 2010 after it failed to secure financing from lenders. In June, U.K. housing authorities suddenly announced they were delaying several housing upgrade projects in response to the government's planned budget cuts.
AuditsInternational accountingPwC


text:
JAMES HUDSON
'TOMORROW'
"One of the rising stars on the British swing and Big Band scene"
JAZZ FM
"A brilliant voice"
CLARE TEAL
"His voice shows real class and consistency - with a pure tone and precision of intonation"
British vocalist James Hudson has all of the unique qualities that epitomise the 21st century jazz singer. An assured and charming performer, with an effortless voice that can communicate the nuances of a melody and lyric with great confidence.
James has an immense adoration for the timeless jazz standards of The Great American Songbook and is one of the many young jazz musicians carrying the mantle to ensure these songs continue to live on. This fascination for interpreting and singing standards is seen on his debut album 'TOMORROW' which was released in 2021 to widespread critical acclaim - gaining exceptional reviews, international media coverage and air-time across national radio stations.
One of the most sought-after jazz singers in the U.K, James regularly performs at top London venues and world renowned jazz clubs such as Ronnie Scott's Jazz Club, Pizza Express Jazz Club Soho, The Crazy Coqs and featured in the The EFG London Jazz Festival. Leading several ensembles and guesting with top orchestras and bands in the industry has seen James travel all over the globe - recently performing in Egypt, Malta, India, Spain and Monte Carlo. With such accomplishments to date - James Hudson promises to be an exciting new artist with much more to give.
Candlelight Concert at Manchester Cathedral
5-Star reviewed Piano Smithfield show. Also featured in The Daily Express!
Singing with The London Dance Orchestra at The Ritz & meeting Kylie Minogue.
Selling out Upstairs at Ronnies with Nick Fitch.
Sold-out Album Launch at Pizza Express Jazz Club - Dean St
A night of swinging standards at The Crazy Coqs, London.
Guesting with The Dover Street Big Band.
Featured Vocalist with The Sam Every Big Band for Willy Wonka Film Release Anniversary.
Guesting with Megan McConnell Jodhpur Palace in India.
Performing 'The Nat King Cole Songbook' show at Crazy Coqs, London.
Abbey Road Studios - Mastering the album 'TOMORROW'.
Ronnie Scott's with the National Youth Jazz Orchestra.
EFG London Jazz Festival at St John's Smith Square, Westminster.
'The Christmas Songbook' at the Pizza Express Jazz Club, Soho London.
Singing at The Ritz in London's Mayfair with The London Dance Orchestra.
Recording the debut album at Eastcote Studios in West London.
Performing 'The Nat King Cole Songbook' at Troubadour Wembley Park Theatre.
Workshop with award-winning jazz vocalist Kurt Elling at Ronnie Scott's.
Guesting with The Tom Sharp Jazz Orchestra at Wigan International Jazz Festival.
Performing for the Egyptian Prime-Minister in Cairo, Egypt.
Performing in Monte Carlo for a 2 week residency at The Hotel De Paris.
Guesting with the Tom Sharp Jazz Orchestra at Durham Jazz Festival.
For news, upcoming shows and more - Subscribe to James's mailing list here
© James Hudson 2021


text:
Q: nonmatching groups in Google App script https://jsfiddle.net/sbzxd5ya/1/ - Here is a javascript which works where I try to extract some values from a column in a array using regular expression.
But when I try same google app script i get - SyntaxError: Unmatched ) in regular expression for var - splitter
function getSpreadsheetData61() {
var data6 = [
  ["id", "name", "count", "Category"],
  ["1", "g", "8", "[(P2, 7), (P1, 1)]"],
  ["2", "g", "8", "[(P0, 7), (P2, 1)]"],
  ["2", "g", "8", "[(P0, 7), (P2, 1),(P1,5)]"],
  ["3", "g", "8", "[()]"],
  ["4", "t", "4", "[(P2, 4)]"]
];

var output=[];
for (var i = 1; i < 2; i++) {
var row = data6[i];
data6.map(function(row) {
  var toExpand = row[row.length - 1];
  var indices = new RegExp('/\(?:\\(P)(\d)/','g');
  var splitter = new RegExp('/(\d)(?:\))','g');
  var extracted;
  var eIndex;
  Logger.log(splitter);

  toAdd = [0, 0, 0];
  while (extracted = splitter.exec(toExpand)) {
    eIndex = indices.exec(toExpand);
    toAdd[eIndex[1]] = extracted[1];

  }
  //Logger.log(eIndex);
  output.push(row.concat(toAdd));

});

 }
Logger.log(output);
  return data6;
}

Can some one help to fix the issue and get the expected result.

A: Non-capturing groups are broken in Google Apps Script with the status "WontFix":

The engineering team decided not to take action on this issue.

So, don't use them. They play no role in your regexes, anyway.
Another issue,  indicating either a broken regex engine or incorrect loop optimization, is that the lastIndex property of your regex indices does not get reset to zero when you assign indices with var indices = .... (I suspect this is because this assignment get "optimized" out of the loop.) So, reset it manually:
  var indices = /\(P(\d)/g;
  indices.lastIndex = 0;
  var splitter = /(\d)\)/g;

Then the script works correctly.

Test example for the lastIndex issue:
  for (var i = 0; i < 3; i++) {
    var re = /a/g;
    Logger.log(re.lastIndex);
    re.exec('aaa');
  }

outputs 0, 1, 2 in Google Apps Script. In a browser, the output would be 0, 0, 0.

Last remark, regarding a syntax issue.  For some reason you decided to build regular expressions from strings using new RegExp(string) instead of regex literals used in the fiddle. To do so correctly you need to pay double attention to escaping: there is escaping on the regex level, and then there's escaping on the string level.  Long story short,
var splitter = new RegExp('/(\d)(?:\))','g');

should be
var splitter = new RegExp('/(\\d)(?:\\))','g');

because every backslash that you want to appear in the regex must be a double backslash in the string. It would be easier to use a regex literal: you don't need to escape backslashes in it, though forward slashes now must be escaped:
var splitter = /\/(\d)(?:\))/g


You can try this trial version and confirm yourself before opting to purchase.
Also you will find the basic information as well as tutorials from the ChemBio3D Help and manual. You can download the ChemBio3D Manual from the following link.


Marshall House Hotel. Hotel Centro Internacional.
The Marshall House stood on the corner of King and South Pitt streets. It was torn down in the 1950's. James W. Jackson was killed by Union troops after he shot and killed Col. Elmer Ephraim Ellsworth.
Marshall House is a historic home located at Canandaigua in Ontario County, New York. It is a two story, five bay center hall brick dwelling on a slightly raised basement. Although built in 1844 with later alterations, it has characteristics of the Federal style.
Marshall House is located at 2009 Arch St., Little Rock, Arkansas. It was built in 1908, from designs by Charles L. Thompson. It was added to the National Register of Historic Places in 1982.
The old Avon Theater and the restored Marshall House Hotel.
Only the facade and marquee remains of the old Avon Theater - all the former theater interior is demolished. A japanese restaurant occupies the section that once was the lobby area. I couldn't find much information about The Avon but I would guess it was built in the 1930's.
The the much older Marshall House Hotel originally opened in 1849 and become the Gilbert House Hotel in the 1940's before finally closing as a hotel in the 1950's. It was during the 1950's that the building was drastically altered and cut up into modern storefronts. The original iron balcony was removed and a smooth false front covered the windows. In the 1990's the building was restored back to it's original look and purpose with a new replicated iron balcony put in place.
The story of Col. Ellsworth's death for taking down a Confederate flag at the Marshall house was widely published and sparked the patriotic fervor of Northerners who claimed him as their first martyr. When the story appeared in Southern newspapers, James Jackson, the hotel's proprietor, was hailed as a victim of Northern aggression. Cries of "Remember Ellsworth!" recruited thousands for the Union and "Remember Jackson!" recruited thousands for the Confederacy. Exhibit at The Lyceum.