text:
package io.druid.server.lookup.namespace.cache;

import com.google.common.base.Throwables;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningScheduledExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.metamx.common.IAE;
import com.metamx.common.ISE;
import com.metamx.common.concurrent.ExecutorServices;
import com.metamx.common.lifecycle.Lifecycle;
import com.metamx.common.logger.Logger;
import com.metamx.emitter.service.ServiceEmitter;
import com.metamx.emitter.service.ServiceMetricEvent;
import io.druid.query.lookup.namespace.ExtractionNamespace;
import io.druid.query.lookup.namespace.ExtractionNamespaceCacheFactory;

import javax.annotation.concurrent.GuardedBy;
import java.util.Collection;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;

/**
 *
 */
public abstract class NamespaceExtractionCacheManager
{
  protected static class NamespaceImplData
  {
    public NamespaceImplData(
        final ListenableFuture<?> future,
        final ExtractionNamespace namespace,
        final String name
    )
    {
      this.future = future;
      this.namespace = namespace;
      this.name = name;
    }

    final ListenableFuture<?> future;
    final ExtractionNamespace namespace;
    final String name;
    final Object changeLock = new Object();
    final AtomicBoolean enabled = new AtomicBoolean(false);
    final CountDownLatch firstRun = new CountDownLatch(1);
    volatile String latestVersion = null;
  }

  private static final Logger log = new Logger(NamespaceExtractionCacheManager.class);
  private final ListeningScheduledExecutorService listeningScheduledExecutorService;
  protected final ConcurrentMap<String, NamespaceImplData> implData = new ConcurrentHashMap<>();
  protected final AtomicLong tasksStarted = new AtomicLong(0);
  protected final ServiceEmitter serviceEmitter;
  private final Map<Class<? extends ExtractionNamespace>, ExtractionNamespaceCacheFactory<?>> namespaceFunctionFactoryMap;

  public NamespaceExtractionCacheManager(
      Lifecycle lifecycle,
      final ServiceEmitter serviceEmitter,
      final Map<Class<? extends ExtractionNamespace>, ExtractionNamespaceCacheFactory<?>> namespaceFunctionFactoryMap
  )
  {
    this.listeningScheduledExecutorService = MoreExecutors.listeningDecorator(
        Executors.newScheduledThreadPool(
            1,
            new ThreadFactoryBuilder()
                .setDaemon(true)
                .setNameFormat("NamespaceExtractionCacheManager-%d")
                .setPriority(Thread.MIN_PRIORITY)
                .build()
        )
    );
    ExecutorServices.manageLifecycle(lifecycle, listeningScheduledExecutorService);
    this.serviceEmitter = serviceEmitter;
    this.namespaceFunctionFactoryMap = namespaceFunctionFactoryMap;
    listeningScheduledExecutorService.scheduleAtFixedRate(
        new Runnable()
        {
          long priorTasksStarted = 0L;

          @Override
          public void run()
          {
            try {
              final long tasks = tasksStarted.get();
              serviceEmitter.emit(
                  ServiceMetricEvent.builder()
                                    .build("namespace/deltaTasksStarted", tasks - priorTasksStarted)
              );
              priorTasksStarted = tasks;
              monitor(serviceEmitter);
            }
            catch (Exception e) {
              log.error(e, "Error emitting namespace stats");
              if (Thread.currentThread().isInterrupted()) {
                throw Throwables.propagate(e);
              }
            }
          }
        },
        1,
        10, TimeUnit.MINUTES
    );
  }

  /**
   * Optional monitoring for overriding classes. `super.monitor` does *NOT* need to be called by overriding methods
   *
   * @param serviceEmitter The emitter to emit to
   */
  protected void monitor(ServiceEmitter serviceEmitter)
  {
    // Noop by default
  }

  protected boolean waitForServiceToEnd(long time, TimeUnit unit) throws InterruptedException
  {
    return listeningScheduledExecutorService.awaitTermination(time, unit);
  }

  protected void updateNamespace(final String id, final String cacheId, final String newVersion)
  {
    final NamespaceImplData namespaceDatum = implData.get(id);
    if (namespaceDatum == null) {
      // was removed
      return;
    }
    try {
      if (!namespaceDatum.enabled.get()) {
        // skip because it was disabled
        return;
      }
      synchronized (namespaceDatum.enabled) {
        if (!namespaceDatum.enabled.get()) {
          return;
        }
        swapAndClearCache(id, cacheId);
        namespaceDatum.latestVersion = newVersion;
      }
    }
    finally {
      namespaceDatum.firstRun.countDown();
    }
  }

  // return value means actually delete or not
  public boolean checkedDelete(
      String namespaceName
  )
  {
    final NamespaceImplData implDatum = implData.get(namespaceName);
    if (implDatum == null) {
      // Delete but we don't have it?
      log.wtf("Asked to delete something I just lost [%s]", namespaceName);
      return false;
    }
    return delete(namespaceName);
  }

  // return value means actually schedule or not
  public boolean scheduleOrUpdate(
      final String id,
      ExtractionNamespace namespace
  )
  {
    final NamespaceImplData implDatum = implData.get(id);
    if (implDatum == null) {
      // New, probably
      schedule(id, namespace);
      return true;
    }
    if (!implDatum.enabled.get()) {
      // Race condition. Someone else disabled it first, go ahead and reschedule
      schedule(id, namespace);
      return true;
    }

    // Live one. Check if it needs updated
    if (implDatum.namespace.equals(namespace)) {
      // skip if no update
      return false;
    }
    if (log.isDebugEnabled()) {
      log.debug("Namespace [%s] needs updated to [%s]", implDatum.namespace, namespace);
    }
    // Ensure it is not changing state right now.
    synchronized (implDatum.changeLock) {
      removeNamespaceLocalMetadata(implDatum);
    }
    schedule(id, namespace);
    return true;
  }

  public boolean scheduleAndWait(
      final String id,
      ExtractionNamespace namespace,
      long waitForFirstRun
  )
  {
    if (scheduleOrUpdate(id, namespace)) {
      log.debug("Scheduled new namespace [%s]: %s", id, namespace);
    } else {
      log.debug("Namespace [%s] already running: %s", id, namespace);
    }

    final NamespaceImplData namespaceImplData = implData.get(id);
    if (namespaceImplData == null) {
      log.warn("NamespaceLookupExtractorFactory[%s] - deleted during start", id);
      return false;
    }

    boolean success = false;
    try {
      success = namespaceImplData.firstRun.await(waitForFirstRun, TimeUnit.MILLISECONDS);
    }
    catch (InterruptedException e) {
      log.error(e, "NamespaceLookupExtractorFactory[%s] - interrupted during start", id);
    }
    if (!success) {
      delete(id);
    }
    return success;
  }

  @GuardedBy("implDatum.changeLock")
  private void cancelFuture(final NamespaceImplData implDatum)
  {
    final CountDownLatch latch = new CountDownLatch(1);
    final ListenableFuture<?> future = implDatum.future;
    Futures.addCallback(
        future, new FutureCallback<Object>()
        {
          @Override
          public void onSuccess(Object result)
          {
            latch.countDown();
          }

          @Override
          public void onFailure(Throwable t)
          {
            // Expect CancellationException
            latch.countDown();
            if (!(t instanceof CancellationException)) {
              log.error(t, "Error in namespace [%s]", implDatum.name);
            }
          }
        }
    );
    future.cancel(true);
    try {
      latch.await();
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw Throwables.propagate(e);
    }
  }

  // Not thread safe
  @GuardedBy("implDatum.changeLock")
  private boolean removeNamespaceLocalMetadata(final NamespaceImplData implDatum)
  {
    if (implDatum == null) {
      return false;
    }
    // "Leader" election for doing the deletion
    if (!implDatum.enabled.compareAndSet(true, false)) {
      return false;
    }
    if (!implDatum.future.isDone()) {
      cancelFuture(implDatum);
    }
    return implData.remove(implDatum.name, implDatum);
  }

  // Optimistic scheduling of updates to a namespace.
  public <T extends ExtractionNamespace> ListenableFuture<?> schedule(final String id, final T namespace)
  {
    final ExtractionNamespaceCacheFactory<T> factory = (ExtractionNamespaceCacheFactory<T>)
        namespaceFunctionFactoryMap.get(namespace.getClass());
    if (factory == null) {
      throw new ISE("Cannot find factory for namespace [%s]", namespace);
    }
    final String cacheId = String.format("namespace-cache-%s-%s", id, UUID.randomUUID().toString());
    return schedule(id, namespace, factory, cacheId);
  }

  // For testing purposes this is protected
  protected <T extends ExtractionNamespace> ListenableFuture<?> schedule(
      final String id,
      final T namespace,
      final ExtractionNamespaceCacheFactory<T> factory,
      final String cacheId
  )
  {
    log.debug("Trying to update namespace [%s]", id);
    final NamespaceImplData implDatum = implData.get(id);
    if (implDatum != null) {
      synchronized (implDatum.changeLock) {
        if (implDatum.enabled.get()) {
          // We also check at the end of the function, but fail fast here
          throw new IAE("Namespace [%s] already exists! Leaving prior running", namespace.toString());
        }
      }
    }
    final long updateMs = namespace.getPollMs();
    final CountDownLatch startLatch = new CountDownLatch(1);
    // Must be set before leader election occurs or else runnable will fail
    final AtomicReference<NamespaceImplData> implDataAtomicReference = new AtomicReference<>(null);

    final Runnable command = new Runnable()
    {
      @Override
      public void run()
      {
        try {
          startLatch.await(); // wait for "election" to leadership or cancellation
          if (!Thread.currentThread().isInterrupted()) {
            final NamespaceImplData implData = implDataAtomicReference.get();
            if (implData == null) {
              // should never happen
              throw new NullPointerException(String.format("No data for namespace [%s]", id));
            }
            final Map<String, String> cache = getCacheMap(cacheId);
            final String preVersion = implData.latestVersion;
            final Callable<String> runnable = factory.getCachePopulator(id, namespace, preVersion, cache);

            tasksStarted.incrementAndGet();
            final String newVersion = runnable.call();
            if (newVersion.equals(preVersion)) {
              log.debug("Version `%s` already exists, skipping updating cache", preVersion);
            } else {
              updateNamespace(id, cacheId, newVersion);
              log.debug("Namespace [%s] successfully updated", id);
            }
          }
        }
        catch (Throwable t) {
          try {
            delete(cacheId);
            if (t instanceof InterruptedException) {
              log.debug(t, "Namespace [%s] cancelled", id);
            } else {
              log.error(t, "Failed update namespace [%s]", namespace);
            }
          }
          catch (Exception e) {
            t.addSuppressed(e);
          }
          if (Thread.currentThread().isInterrupted() || (t instanceof Error)) {
            throw Throwables.propagate(t);
          }
        }
      }
    };

    ListenableFuture<?> future;
    try {
      if (updateMs > 0) {
        future = listeningScheduledExecutorService.scheduleAtFixedRate(command, 0, updateMs, TimeUnit.MILLISECONDS);
      } else {
        future = listeningScheduledExecutorService.schedule(command, 0, TimeUnit.MILLISECONDS);
      }

      // Do not need to synchronize here as we haven't set enabled to true yet, and haven't released startLatch
      final NamespaceImplData me = new NamespaceImplData(future, namespace, id);
      implDataAtomicReference.set(me);
      final NamespaceImplData other = implData.putIfAbsent(id, me);
      if (other != null) {
        if (!future.isDone() && !future.cancel(true)) {
          log.warn("Unable to cancel future for namespace[%s] on race loss", id);
        }
        throw new IAE("Namespace [%s] already exists! Leaving prior running", namespace);
      } else {
        if (!me.enabled.compareAndSet(false, true)) {
          log.wtf("How did someone enable this before ME?");
        }
        log.debug("I own namespace [%s]", id);
        return future;
      }
    }
    finally {
      startLatch.countDown();
    }
  }

  /**
   * This method is expected to swap the cacheKey into the active namespace, and leave future requests for new cacheKey available. getCacheMap(cacheKey) should return empty data after this call.
   *
   * @param namespaceKey The namespace to swap the cache into
   * @param cacheKey     The cacheKey that contains the data of interest
   *
   * @return true if old data was cleared. False if no old data was found
   */
  protected abstract boolean swapAndClearCache(String namespaceKey, String cacheKey);

  /**
   * Return a ConcurrentMap with the specified ID (either namespace's name or a cache key ID)
   *
   * @param namespaceOrCacheKey Either a namespace or cache key should be acceptable here.
   *
   * @return A ConcurrentMap<String, String> that is backed by the impl which implements this method.
   */
  public abstract ConcurrentMap<String, String> getCacheMap(String namespaceOrCacheKey);

  /**
   * Clears out resources used by the namespace such as threads. Implementations may override this and call super.delete(...) if they have resources of their own which need cleared.
   *
   * @param ns The namespace to be deleted
   *
   * @return True if a deletion occurred, false if no deletion occurred.
   *
   * @throws ISE if there is an error cancelling the namespace's future task
   */
  public boolean delete(final String ns)
  {
    final NamespaceImplData implDatum = implData.get(ns);
    if (implDatum == null) {
      log.debug("Found no running cache for [%s]", ns);
      return false;
    }
    synchronized (implDatum.changeLock) {
      if (removeNamespaceLocalMetadata(implDatum)) {
        log.info("Deleted namespace [%s]", ns);
        return true;
      } else {
        log.debug("Did not delete namespace [%s]", ns);
        return false;
      }
    }
  }

  public String getVersion(String namespace)
  {
    if (namespace == null) {
      return null;
    }
    final NamespaceImplData implDatum = implData.get(namespace);
    if (implDatum == null) {
      return null;
    }
    return implDatum.latestVersion;
  }

  public Collection<String> getKnownIDs()
  {
    return implData.keySet();
  }
}

redpajama_set_name: RedPajamaGithub


This year's guest of honor of the Turin book fair was Egypt. At this occasion, and in light of Beirut World Book Capital 2009, several Italian houses publishing Arab authors had invited them.
From RAYA agency, authors Najwa Barakat, published by Epoché for her book Ya Salam, and Jabbour Douaihy, to be published by Feltrinelli, for his book June rain, took part to highly attended literary encounters.


text:
Magento is the world's largest open source e-commerce solution which was released in 2008. From its inception, it instantly became developers' favorite solution due to being an open source platform. It has gone from strength to strength and is now one of the world's most successful e-commerce platforms which have led to its parent company – Varien – being very successful.
What is Magento?
Magento provides online merchants with a flexible shopping cart system and control over the core functionality, look, feel and content of their online store. Additionally, Magento offers powerful marketing tools, search engine optimization, and other management tools.
Whether you're creating a new store or migrating an existing one to Magento, starting out with the platform requires a lot of knowledge, and it is a great learning curve; an experienced developer working with you can go a long way.
It is a feature-rich, professional and open source e-commerce platform which offers you complete flexibility and control. However, this power and flexibility cannot be hosted on just any plan. Small shared hosting platforms would struggle to deliver quick and reliable performance. Depending on the size (or potential size) of your store, you should consider either a big shared plan with allocated resources or even a small or medium VPS in order to get the maximum out of Magento.
When it was released in 2008, it completely changed the e-commerce market. It was purchased by eBay in 2011, and it is now the fastest growing e-commerce platform in the world.
Over $25 billion in transactions are made each year with Magento.
Over 25% of online businesses use Magento.
There are over 300 industry partners worldwide.
Over 260,000 websites are now using Magento, and an additional 1,000 are added to that number each month!
How Does Magento Work?
If you've decided that Magento is right for you, then you will need to decide which version you want. There are two different versions: community and enterprise. Magento's Enterprise Edition is a paid version which provides high performance and fantastic scalability for large businesses or fast-growing stores. You get what you pay for with Magento Enterprise Edition, and you have access to expert support, hundreds of additional extensions and features which provide you with more control and enables you to give your website different dimensions.
Magento's Community Edition is a free download and is primarily aimed at developers or small businesses who have developers working with them. The Community Edition is an open source version where you have access to community support and basic functions such as user groups, product categories, and coupons.
Why Did Magento Change E-Commerce?
Simply put, it made creating your own online store simple. It's intuitive and can be connected with PayPal and Google Shopping. It is an all-in-one package for starting your own store. Magento offers flexibility regardless of the size of your business. There are tons of templates and themes available online which can be used to create beautiful and responsive stores. It is very easy to build a store, and it saves you tons of time, meaning you can focus on more important things such as marketing. It offers integration with over 50 different payment gateways, and this gives customers great flexibility. Checkout is a simple, step-by-step process and it won't confuse or frustrate customers when they are ordering from you.
Magento also helps store owners drive traffic to their sites through on-page SEO solutions. It doesn't stop there, though. Magento offers tools such as a customizable sitemap, SEO filters, and optimized page headers to prepare stores for search engines. Customer experience is improved by dynamic search features which allow simple and easy product filtration. The Magento cloud maintains a library of unique search terms and product tag filters. Reviews can be displayed on site. All that boiled down demonstrates one thing: it's an all-in-one solution which allows the easy creation of modern, optimized websites which are automatically resized for mobile.
The Magento is so popular and vast that there are dedicated Magento developers out there who only work on Magento projects. Magento developers develop Magento websites, that's it. A Magento developer builds, supports and improves Magento websites. Designing and building a Magento website requires a team of experienced Magento developers to get the maximum utility out of the platform. A Magento developer, simply put, is a web developer with skills particular to the Magento platform. Magento developers commonly work as freelancers alone, but there are also Magento agencies out there employing these experts.
There are frontend and backend Magento developers. The front-end developers build Magento themes. They make sure your website looks great, is responsive and works effectively on smartphones and other smart devices.
The backend developers build features for the Magento website and wider platform. They make everything work and keep the Magento machine running.
Magento offers formal certification in form of the Magento Certified Developer status or Magento Certified Developer Plus status. To gain this certification, the developers must pass an examination which relates to that field.
Magento developers have a range of tasks, and these typically include stuff such as:
Installing Magento and setting it up
Creating Magento themes
Optimizing Magento
Integrating payment gateways and other systems such as PayPal and SagePay
Magento Version History
Magento Community Edition is published as the first stable version. 1.1 came out shortly after which included API.
1.2 then came out which included downloadable products, layered navigation, and FTP.
Community Edition 1.3 was released which included catalogs.
Magento Enterprise Edition was released.
Community Edition 1.4 and Enterprise Edition 1.8 were released which introduced widgets, the WYSIWYG editor, and customizable appearances.
Community Edition 1.6 and Enterprise Edition 1.11 versions were released which were able to handle several simultaneous databases, allowing you to run several stores parallel to each other.
Community Edition 1.7 and Enterprise Edition 1.12 were released and introduced mobile themes, automatic coupon codes, and product groups. CAPTCHA was added.
Magento 2.0 was released. The long-anticipated update modernized the e-commerce platform, and several of its functions and architecture was renewed and given a new lease of life.
Although Magento 2.0 was announced in 2010, its development took much longer. It was originally expected to be released in 2011, but in the end, its beta version came out in July 2015!
Recent Magento Developments
March 2017: Frost & Sullivan – the business consulting firm – awarded Magento with the 2017 Global Ecommerce Platforms Product Line Strategy Leadership Award which recognizes Magento's excellence in providing businesses with the ability to deliver a custom experience to shoppers.
January 2017: Hillhouse Capital made a $250 million investment to help Magento grow in the Asia Pacific region in sales, marketing, and client support.
August 2016: Magento acquired RJMetrics, a company which deals with cloud-based analytical services.
The company became independent again in 2015 as a consequence of the restructuring eBay underwent. It is now owned by Permira, a private equity firm.
Magento SEO Practices
Magento is well-built for SEO, and this is no accident! It offers lots of tools for drawing in traffic and increasing visibility. Lots of SEO features are built into Magento, but you can also add external extensions to further increase your site's visibility through search engines.
You can also connect your Magento store to a WordPress blog where you can tell your customers about the products you sell, in a review-style format from the point of view of a customer. This is a fast-growing trend which many sites have adopted because of just how useful it is for increasing sales.
eBay's Magento Integration
As we've already mentioned, eBay took over Magento quite early on in 2011 when eBay acquired the majority of its shares in February. Then, in June, eBay became the sole shareholder of Magento before spinning it off in 2015.
Most people did not understand the significance of eBay buying Magento, and they thought that it wouldn't have a major effect on the platform. However, eBay also owned PayPal, and this acquisition meant that the PayPal payment gateway was already integrated into the Magento platform. Other extensions were made including Zendesk, MailChimp, and Salesforce. These, along with other extensions, provided much additional freedom to Magento users. It was capable of operating as a stand-alone service which had everything you needed integrated.
It also worked well with Google Analytics which is essential for all e-commerce stores. Google Analytics provides crucial data which allows store owners to optimize its pages and content to appease the desires of its visitors. As Magento began to grow rapidly following eBay's takeover, a huge die-hard community has also formed behind it. Magento's following is not just online, though.
Magento Conference
In 2011, Magento launched its first official conference and more than 800 people attended. Over the years it has grown rapidly and in 2014 over 1700 people attended. This year, over 3,000 e-commerce professionals are expected to attend Magento Conference being held at Imagine 2018 at the Wynn Las Vegas between April 23rd and April 25th. There will be over 150 speakers from across 50 countries delivering over 100 sessions. Imagine 2018 attracts the biggest innovators and ground-breaking companies in e-commerce. It's a brilliant networking event which gives you the opportunity to rub shoulders with key players in the industry, including merchants, partners, and developers.
The conference kicks off on Monday, April 23rd with special sessions, breakout tracks, and the Opening Night Networking Event. On Tuesday, April 24th there will be lots of keynote speakers, more breakout tracks, and an evening event. On the third and final day, Wednesday, April 25th, there'll be a final general session, and a few more special sessions before the conference comes to a close.
Magento 2.0 was released in 2015. The 2.0 platform contains new APIs which make the integration of modern services even simpler for developers. Magento 2.0 also features a fine-tuned payment system which allows conversions to be maximized to their full potential. Unfortunately, if you want to switch to Magento 2.0 from the original Magento e-commerce system, you have to rewrite everything from scratch; migration is not possible (save for data). Lots of new technologies were integrated with Magento 2.0 which makes development and the operation of your online store more efficient. Some of the new technologies include:
Modern JS Stack
User experience was also massively improved. Checkout was optimized and made much quicker with only two steps and entering a billing address is no longer obligatory. Also, product photos were added to the checkout! New payment gateways were added, including WorldPay and Authorize.net. Magento 2.0's popularity steadily increased and is widely used today. More and more e-commerce businesses have realized the importance of switching to Magento 2.0, and lots of them are doing so. At the moment, there are more than 10,000 websites using Magento 2.0, and this number is increasing by the day.
Magento Social
Magento Social was recently released which addresses the platforms social commerce demands. Magento social helps merchants and stores engage with their customers on social networking sites. It is a free extension which turns your store into a commerce channel.Consumers are relying on social media channels more than ever to engage with brands and buy their products. 57% of consumers are more likely to buy from a brand which they follow on social media sites such as Facebook and Instagram. Magento Social is allowing every business on its platform to gain a competitive edge by turning their social media pages into digital stores. Magento Social allows merchants to sync their Magento product categories with their social network pages. It is now possible to have a physical storefront on your Facebook page, for example, on which people can buy your products. It is a seamless integration which automatically keeps product listings on social media profiles consistent with your Magento product catalog. This has given the Magento platform even more dimensions and further establishes it as the modern leader in the e-commerce game.
Want to learn more about Magento? Check out our cool infographic below, where you can find out about its history, growth, current statistics, figures and see where it's headed in the future.
Please help us in maintaining this blog! Share this:
Simple Marketing Tips Any E-commerce Store Owner Can Implement
Success of IoT in Smart Cities of India: An empirical analysis
One thought on "Magento – Today's Best E-Commerce Solution"
Pingback: How Cloud Computing is Shaping E-commerce – Tech Talk

redpajama_set_name: RedPajamaCommonCrawl


75 percent of the respondents in a recent survey conducted for Red Hat said that being able to move OpenStack workloads to different providers or platforms was important (ranked 4 or 5 out of 5)–and a mere 5 percent said that this question was of least importance. This was just one of the answers that highlighted a general desire to avoid proprietary solutions and lock-in.
Before being able to use everything that OpenStack has to offer, you need to be able to install it. The installation step of OpenStack has been a heavily talked about topic over the last few years. Whether you are a developer or tester trying to get your environment up and running or an end user trying to use OpenStack to spin up VMs, you've most likely put a fair amount of time into the install and configuration step. Since it's the first thing every user experiences with OpenStack we really need to make it as effortless as possible. OpenStack is an interesting beast because there are so many pieces to the project (some being optional) which make configuration very tricky. We've set out to reduce the frustration from a user's point of view as we designed RDO Manager.


My husband brings me to Buffalo Zoo on my first year in upstate New York. The Buffalo Zoo is the 3rd oldest zoo in America. Located right in the city alongside lovely and active Delaware Park. Some parts of it definitely look that way. But they truly are making strides to update the zoo and make it comfortable and inviting for visitors and refocus its mission to protect endangered species. The architecture is cool, however there are wide pits and ditches separating visitors from some of the animals, like the bears and tigers, making it tough to get a really good look at the animal (particularly in the case of the lion and tigers), but does bring to mind one important aspect-safety for the visitors. Other exhibits are much more modern like the stunning.
The Rainforest which features a waterfall, bridges, a tiny vampire bat cave, poison dart frogs, an anteater, turtles galore, beautiful bright pink and red birds(that fly freely). The exhibit looks gorgeous and is sure to pleased you. The gorilla house seems kinda small, but the baby gorilla brightens the place up. And oh the giant Brazilian cockroaches freak me out! Each season is a good season to go to the zoo, so make a day of it and spend the whole day at this zoo. If you are from the Buffalo area and have not been to the zoo, I encourage you to give it a try, because it only takes about 2 hours to go through the entire zoo. Extremely reasonable price, cute rides for the kids, and a GREAT rainforest exhibit that you shouldn't miss!
I love to bring my daughter to the zoo. But I never been here. I'll put in my travel list.
Wow! a pretty nice place to get close to nature and to animals. There would be a lot to see in there.
Pwede naman mag-visit ng zoo kahit alang kids eh, go na. Nakigulo lang sa inyo ni Gracie..hehe.
the place looks refreshing with lots of greens! thanks for joining Wednesday Whites.. here for a very late visit!


text:
Home > Public Policy & Legal > Legislation & Regulations
DACA Update
September 21, 2017 | By NACE Staff
TAGS: immigration, legal issues
The clock is running. As DACA individuals and their institutions and employers wait for Congress to take action to protect DREAMers, there are some practical considerations that need immediate attention.
No travel outside of the United States: DACA students and employees should be advised NOT to travel outside of the United States. If they do, they will not be readmitted to the country. Please note that the DACA advance parole program, which was used in the past to allow travel, has been suspended.
October 5 deadline for DACA renewal: DACA individuals whose permission to stay in the country expires before March 5, 2018, must renew by October 5, 2017. The fee for renewal is $495. Some groups have set up scholarships (see below), and the state of Rhode Island recently announced its own scholarship fund for eligible DACA students in its state. Other states may follow Rhode Island's lead.
Scholarships to fund the DACA renewal fee are available through a number of private and local organizations. Many are specific to a locality or state. Some that provide funds nationwide include:
Mexican Consulate: Check your local Mexican Consulate office for an application.
Mission Asset Fund (MAF): See www.lc4daca.org/
United We Dream: The group provides information about local service providers who will have resources to distributed from the DACA Renewal Fund. United We Dream is also collecting donations to support its fund.
Free or low-cost nonprofit immigration legal services providers: Each DACA case is unique, and students/employees should be advised to consult with an immigration attorney. See https://www.adminrelief.org/legalhelp/ .
FLSA GUIDELINES FOR INTERNSHIPS
DACA Resource: United We Dream
DACA Recipient Support


Nufarm fixed rate USD bond with a yield to worst and April 2026 maturity of 6.429%. For wholesale investors only.
Dicker Data floating rate note with a projected yield to worst in March 2019 of 4.557%pa and a projected yield to maturity in 2020 of 4.794%pa. Available to both retail and wholesale investors.


Here's a selection of some of our favorite responses to the prompt for Project 01, the self-portrait.
Alison's self-portrait is careful and considered. This is sensitively executed, patient work, made with evident care.
Zai's star constellation is personal, utterly unique, and carefully crafted with exceptional attention to color, shape, and overall composition. Great design.
Jen's playful watch face is an unusual concept, demonstrating highly innovative lateral thinking and a simple yet smart, secret surprise when interacting.
Yoon's traced photograph has rigorous visual design and excellent self-control. We wonder whether he did it 'by hand', or wrote an intermediate "helper" script?
Marisa's project has superb colors and exquisitely crafted curves. One of the few projects to use transparency. This is really sharp, splendid work.
Ben's solution, which is constructed exclusively from 10 arcs, exhibits exceptional (one might even say rare) restraint. A disciplined study.
Faith learned a lot to make her elegant, careful project. We admire how she taught herself about push(), pop(), and related transformations in order to achieve the rotated ellipses.


text:
<?php

namespace Cosa\Instant\TimelineBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 */
class Keyword
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=100)
     */
    private $keyword;

    /**
     * @ORM\ManyToOne(targetEntity="Cosa\Instant\TimelineBundle\Entity\Instant", cascade={"persist"})
     */
    private $instant;

    /**
     * Set keyword
     *
     * @param string $keyword
     * @return Keyword
     */
    public function setKeyword($keyword)
    {
        $this->keyword = $keyword;

        return $this;
    }

    /**
     * Get keyword
     *
     * @return string
     */
    public function getKeyword()
    {
        return $this->keyword;
    }

    /**
     * Set instant
     *
     * @param \Cosa\Instant\TimelineBundle\Entity\Instant $instant
     * @return Keyword
     */
    public function setInstant(\Cosa\Instant\TimelineBundle\Entity\Instant $instant = null)
    {
        $this->instant = $instant;

        return $this;
    }

    /**
     * Get instant
     *
     * @return \Cosa\Instant\TimelineBundle\Entity\Instant
     */
    public function getInstant()
    {
        return $this->instant;
    }

    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }
}


Unprocessed field note material exists for this structure (FN-12).
2. Historic American Buildings Survey Photographed by Henry F. Withey June 1937 WEST ELEVATION FROM NORTH END.
3. Historic American Buildings Survey Photographed by Henry F. Withey November 1936 WEST ELEVATION FROM NORTH END.


text:
Zachary Elbouzedi (born 5 April 1998) is an Irish professional footballer who plays as a midfielder for AIK.

Club career

Inverness Caledonian Thistle
Elbouzedi started his career with Malahide United before he joined Inverness Caledonian Thistle on a free transfer deal in the summer of 2017 from West Bromwich Albion. He was not able to play immediately due to an injury, but manager John Robertson believed he would compete for a place in the team when healthy.

Elgin City (Loan)
He was signed by Elgin City on a 28 day long emergency loan contract on 30 December 2017.

After working himself back to match fitness by playing for Elgin City, Elbouzedi made his professional debut for Inverness Caledonian Thistle on 13 March 2018 against Dunfermline Athletic.

Waterford
Zak left Inverness on 31 August 2018, after terminating his contract by mutual consent after an injury ravaged season and only playing in one game in the 2018–19 season, which was a League Cup win over Cove Rangers.

On 7 November 2018, Elbouzedi joined League of Ireland Premier Division side Waterford.

He made 29 appearances for the Blues in all competitions, scoring 6 goals in an impressive season personally despite a disappointing season for the club as they finished in sixth place.

Lincoln City
On 16 December 2019, it was announced that Elbouzedi would move to English club Lincoln City on 1 January 2020 after signing a long-term deal with the club. He scored his first goal for Lincoln in an EFL Trophy tie against Shrewsbury Town on 8 December 2020.

Bolton Wanderers (loan)
On 16 January 2021, he would join Bolton Wanderers on loan for the remainder of the season. He would make his debut a few hours later, starting the EFL League Two game against Cheltenham Town.

AIK
On 15 July 2021, it was confirmed that he would join Swedish Allsvenskan side AIK for an undisclosed fee, signing a contract until 31 December 2024. He would make his AIK and Allsvenskan debut just a few days later, coming off the bench in the 85th minute against Kalmar FF.

International career
Elbouzedi has represented the Republic of Ireland at youth international level. He remains eligible to play for the Libya national football team due to his father being Libyan and has been contacted about representing Libya but has always stated he only ever wanted to play for the Republic of Ireland. Elbouzedi was capped at under 21 level for the first time in 2019 and was selected for the 2019 Toulon Tournament.

Personal life
Elbouzedi was born in Dublin to a Libyan father and an Irish mother.

Career statistics

Honours
Inverness CT
Scottish Challenge Cup: 2017–18

Bolton Wanderers
EFL League Two third-place (promotion): 2020–21

References

Inverness Caledonian Thistle F.C. players
1998 births
Republic of Ireland association footballers
Scottish Professional Football League players
League of Ireland players
English Football League players
West Bromwich Albion F.C. players
Elgin City F.C. players
Living people
Republic of Ireland youth international footballers
Irish people of Libyan descent
Irish sportspeople of African descent
Association footballers from Dublin (city)
Association football midfielders
Malahide United F.C. players
Lincoln City F.C. players
Waterford F.C. players
Bolton Wanderers F.C. players
AIK Fotboll players
Allsvenskan players
Republic of Ireland expatriate association footballers
Irish expatriate sportspeople in Sweden
Expatriate footballers in Sweden

redpajama_set_name: RedPajamaWikipedia


text:
Andrew Rostan
creator of fictions
An Elegy for Amelia Johnson
PARASITE, The Question of Storytelling Time, and a Brief Note on MARRIAGE STORY
November 7, 2019 / andrewjohnrostan	/ Leave a comment
I'm in the middle of NaNoWriMo and seeing what might happen to my comic works in progress, but in a pause from this beautiful madness, I have to talk about something I've realized about how storytelling works…at least for me and possibly for you!
Sometimes—most of the time—you learn lessons in how to be a better writer from utter failures (including your own) and mediocrities. (Paul Johnson has a great line that a committed writer reads the second-rate as much as the first.)
But sometimes I learn from a great piece of art that has something a little bit off.
On my birthday (my actual birthday), I went to see Bong Joon-Ho's Palme d'Or winner Parasite. Parasite is outstanding. It's impeccably filmed and beautifully designed. The cast is great. It says something truly powerful about the menace of unregulated capitalism. I went in taking everybody under the sun's advice to see it without knowing a thing about the plot, and the surprise factor made the finale hit me in so many of the feels.
And yet…I didn't love Parasite the same way everyone around me seems to love Parasite. Not in the same way I loved The Souvenir and Marriage Story (which I'll be touching on later). During the second half of the film, when the twists start accumulating one on top of the other, the entire experience felt off. Only Joon-Ho's mastery and the commitment of the actors kept me invested enough to overlook a tickling sensation.
I felt annoyed for a while, trying to deduce why Parasite wasn't fully working for me.
Then I found the answer. It came from, of all the things, a tweet I casually tossed off a few weeks back during the "Marty v. Marvel" debate that rocked Film Twitter to its core.
One of my twitter acquaintances was saying how if you love Martin Scorsese, it's okay to admit that Gangs of New York isn't one of his best movies. There's a lot of debate about GONY, but I agree with this. It may be due to Harvey Weinstein's editing, but GONY is for me a film that's working great for two hours and then utterly collapses in the last thirty minutes.
It happens because the tempo changes.
This is where I will refrain from making a J.K. Simmons joke and say that my mind is always subconsciously alert to tempo in storytelling. If events suddenly start speeding up or slowing down without inherent reason given by the story itself, then I feel myself being pulled out and confused.
With Gangs of New York, the film very carefully documents the relationship and ultimate rivalry between Amsterdam and Bill the Butcher for the bulk of the running time, until the rivalry takes over. At that point, everybody starts making decisions which compared to the rest of the movie seem hasty and overly dramatic and the step-by-step storytelling leaps into a final battle we have no groundwork laid for.
And in Parasite…
NO PLOT DETAILS BUT THIS MIGHT AFFECT YOUR PERCEPTION OF PARASITE SO KIND OF A SPOILER ALERT
After meticulously going through all the elements that lead the protagonists to the place they want to be in for maximum conflict to occur, a chain of events that happens over an unspecified but consistent amount of time, the second half of the film has all of the plot twists gain critical mass over a period of less than 24 hours.
This is not to say that the twists weren't a) individually effective, b) individually moving, and c) fit in with one of the film's ideas which is so important a main character says it out loud and I don't even get annoyed by it, but at the same time, the thing nagging at my brain was "this multitude of accelerating and unrelated events is all happening practically simultaneously with no warning? In what I am to believe is a realistic structure?"
Last year there was another great movie, Sorry to Bother You, which used genre (absurdist comedy) to comment on the destructive nature of late capitalism much the same way as Parasite (Hitchcockian thriller) does. But Sorry to Bother You is for me the better movie in part because its twists, reversals, and character revelations are equally plentiful, but moved along at a pace where I believed Cassius Green's problems would accumulate this way, each problem peaking at the right time, with the subsequent resolutions logically building off those problems. Parasite's speeding to the finale does not work the same way.
END OF PARASITE POSSIBLE SPOILERS
What I've discovered is that temporally consistent storytelling makes for effective storytelling.
If you keep the action moving at the same tempo throughout, with a few exceptions, then the conflicts, problems, and resolutions hit harder—at least they do for me. I think it's because when the tempo is consistent, the dynamics of the story both hit harder (as deviations from the established norm) and they feel logical, not like a cheat.
In reading this over, I realize I might not be making what I mean by tempo clear. So let me use as an example one of my favorite movies of the year and one that's in contention as the BEST film I'll see in 2019: Noah Baumbach's Marriage Story.
Marriage Story tells the story of protagonists Charlie and Nicole deciding to divorce and working towards a resolution that works for them and their child. After an opening montage which reflects their interior monologues at a mediation session, the film moves straightforwardly through a series of scenes, in chronological order, each capturing a few minutes of a different day.
This is a very common structure for a story's tempo, as opposed to literal minute-by-minute action (Cleo From 5 to 7) or a specific timespan such as one day or night (Can't Hardly Wait). It's a structure my favorite writer, Anthony Trollope, used in his novels.
What this does for me is it creates a predictable framework in which all else is unpredictable. It signifies to the audience or reader, that each thing we're watching is important except we won't know why until the scene ends. In an expertly-written story like Marriage Story, the consistent tempo cements how the characters (Charlie and Nicole in this case) are changing and growing over time, making new decisions, and building off things that happened in the past in clear ways. Consistent tempo makes this feel natural, logical, and thus real.
And this works for science fiction, fantasy, or any genre that may dip into the unreal…consistency sets a tone for how we take the information in for the duration. To reference two authors I talked about in my last entry, Paul Kreuger uses this style in Steel Crow Saga, even leisurely lingering over the action pieces with the same style he employs to describe a good meal. Ashley Poston, both in her space operas and romance novels, works with an accelerated version of this tempo where action and detail fly thick and fast; we're always aware of a goal to be reached and the perils of a situation that must be resolved within a specific timeframe.
All of the above is a concept it's hard for me to explain without sounding like a dry theoretician, but it's also a revelation to me that I'm still working out!
A couple more notes:
There are some stories where genre convention necessitates a tempo shift, such as when the story is building up to a big event and we know it's building up to a big event…then we expect the tempo to slow down and focus on all the action and detail of said event much more than what leads up to it. My immediate example is the heist story, but it also works for stories with, say, a sporting event or a source of family drama (weddings, funerals, etc.) at the core.
Flashbacks, flash-forwards, and experimental structure do NOT negate the idea of consistent tempo. Two of the finest graphic novels I've read this month, Suzanne Walker and Wendy Xu's Mooncakes and Jarrett J. Krosozcka's Hey, Kiddo both involve time jumps where months or years pass between scenes, but each scene plays out at the same tempo. (Other examples would be David Lean and Robert Bolt's masterpieces, which play out like Trollope's Victorian novels in skipping time to focus on what's important to the story, and Stanley Kubrick's 2001: A Space Odyssey, which leaps millennia into the future but keeps its pace.) Similarly, Quentin Tarantino's greatest films—Pulp Fiction, Death Proof, Once Upon a Time in Hollywood—have structures where two or three days are explored in microscopic detail. They can be out of sequence or have months pass between them offscreen, but the tempo remains the same.
Finally, one might ask if keeping a consistent tempo breaks the rule of variety in your writing. I do not think so. Within the basic structure discussed above, a scene can be a few lines of dialogue in a single shot or an extended set piece full of editing, but both represent the same "few minutes of different days."
I'll also add that in terms of practicing what I preach…my own major works in progress adhere to my idea of keeping a consistent tempo. Both my novels and comics are divided into scenes that represent continuous action on distinct days. Two of the only exceptions are my heist story, which slows time down for the 30% of the saga devoted to the crimes themselves, and the giant "nine drafts and counting" novel, in which the finale allows for one day to stretch over two chapters so elements hinted at in the beginning (structure again!) can come back in the ending.
Those are my thoughts. They might mean not a damn thing but I felt like getting them out there. And you all should see Parasite. And Marriage Story…
I don't want to talk dispassionately about Marriage Story. Noah Baumbach has written and directed a picture of stunning extremes. I went from hysterical laughter to uncontrolled sobbing within minutes on constant whiplash. Baumbach is this century's Woody Allen in some ways, using very urban characters with unusual lives to tell witty, emotional stories that tap into the deepest reservoirs of humanity…but Baumbach doesn't have Allen's neuroses and does have extra levels of love for his characters that I don't know if Allen ever fully showed. (This has become especially apparent since 2012's Frances Ha, the start of a joint professional and personal merging with one of our greatest humanists, Greta Gerwig, whose presence is clear in Marriage Story.)
What makes the picture work besides Baumbach's script and editing are Adam Driver and Scarlett Johansson in the leads. Both of them are very funny and very heartbreaking, but what makes them work is how low-key they are compared to the rest of the cast, especially the murderers' row of actors playing the lawyers and family members, as well as Wallace Shawn basically playing himself. The supporting cast goes so big that Driver and Johansson can stay smaller, more natural, more getting through to everyone who's had heartbreak and moments of decision and resolution. Johansson gets more dialogue and plays it very well, but Driver, with less to say, brings forth a performance that's angry, tortured, and winning…a man who knows when his behavior tips into toxicity and walks it back immediately, and someone who's committed enough to those he loves to fight and principled enough to know when to give in. It's one of the finest pieces of work by a male actor—and a great movie star—I've seen in a long time.
My Stories of the Summer — and a New York Comic-Con Signing!
September 26, 2019 September 26, 2019 / andrewjohnrostan	/ Leave a comment
I wanted to post something during these last days as September turns into October. Mainly because on October 4th and October 5th, I'll be back in New York City for my ninth consecutive New York Comic-Con!
But more than that, I'll be at Boom! Studios headquarters on Friday morning (10-2:30) and Saturday afternoon (2:30 – 7).
If you stop by TABLE 1828 during those times, I'll be there to sign Form of a Question or An Elegy for Amelia Johnson and have plenty of time to talk!
But because I can't simply self-promote, I also wanted to take some time to write about art I've experienced lately. I'm currently handling a surfeit of different Works in Progress over a multitude of media, and as I plan out the rest of my writing year, singling out some movies, television, and literature that made me think about how I tell stories seems appropriate
Ten Years in Chicago
September 5, 2019 September 5, 2019 / andrewjohnrostan	/ Leave a comment
Ten years ago, I spent a night with my family in a building on 52nd and Kenwood that at the time was called The Breakers, a living space for people on extended visits. It's not remarkable. A two-story brick building with long exterior corridors and large-ish windows. It's not even called The Breakers anymore. Like so many of the old buildings in Hyde Park, including so many far more beautiful buildings that were once used as housing by the University, it's been taken over as another apartment complex. But whenever I walk to places while going to and from the church of St. Paul and the Redeemer, I walk by it with a bit of reverence.
It was the first building I slept in on what has now become a permanent residency in Chicago.
2019 First Half Recap – Pre-San Diego Comic-Con
July 10, 2019 July 10, 2019 / andrewjohnrostan	/ Leave a comment
A week from today, I'm getting on an airplane and flying off to my first San Diego Comic-Con in eight years. Unlike my other two conventions this year, I won't be tabling but will be roaming around, introducing (or re-introducing) myself to the world at large, and generally having a good time.
So if I haven't seen you in a while or we haven't gotten a chance to talk, I wanted to provide an update on what I've been doing and thinking about comics-wise lately.
Form of a Question: out everywhere!
Can't believe it's still here at last.
From what people tell me online and in person, it seems like it's being received well, which as you all might imagine I'm grateful for—every bit as much as feeling overjoyed it exists at last. My greatest hopes are first, that people feeling really conflicted about themselves might read it and feel inspired and emboldened to lean into who they are, and second, that other people in comics who've read it might be interested in taking a flyer on one of the WIPs I've developed since we began work on the darn thing; the release was the clearest reminder of how much I love comics and want to keep making them. This is more important than any financial gain I might have; not even close.
Around the World, Fantastic and Not – My Top 10 (11) Films of 2018 and More
February 8, 2019 February 8, 2019 / andrewjohnrostan	/ Leave a comment
People were putting out their 2018 top ten lists, in some cases, on December 1st. Maybe by waiting until the dawn of a polar vortex-filled February, I compensate for all those who jump the gun. But I also had time to think, to see the movies still playing in cinemas, and to compare until I felt sure these were the best choices. And as you will see, I have eleven!
An interesting note on this list: December 2018 may rank as one of the finest moviegoing months of my life. The films ranked in places 8, 7, 4, 3, and 1 were all seen in one month, either in theaters or on Netflix, and I caught up with enough in January 2019 to make sure this was not a fluke.
There is so much to admire in this work of beauty that gets biopics right where so many others fail. (Always, always, concentrate on one period of the subject's life and never the whole story…but, for the first time, I digress.) In a year when it seemed a trove of great female filmmakers were passed over for recognition—though not on this list; four of the eleven films were helmed by women, and that was NOT due to me working towards gender parity but due to me really loving these movies—Marielle Heller particularly shines with a direction full of darkness, loneliness, and shadow. Even brightly lit rooms feel muted in Heller's world. The film's lucky enough to boast an extraordinary double act in Melissa McCarthy, shedding her comic skin to capture the anger of Lee Israel, and Richard E. Grant incarnating a trickster god. But what makes this a highly subjective pick for me is the screenplay, adapted by Nicole Holofcener and Jeff Whitty from Israel's memoirs—few films have so perfectly captured the psychology of the writer, the way writers deal with career uncertainty, crowds, talking to others, talking to others about their work, the painstaking act of writing itself. It's almost frightening to be so seen.
Set It Up/To All the Boys I've Loved Before
Another thing four of the eleven movies on this list have in common is that they're Netflix productions, and these two movies tie for a spot on the list because I didn't have a better time watching anything this year. One of the particular geniuses of Netflix is that they invest in movies which, over the past decade, the major studios stopped making as they retooled for the international market and the Oscars with little (broad comedies and horror) in between. The intelligent, not-that-expensive romantic comedy was one of many genres to fall by the wayside. Then this summer, Netflix unleashed this one-two punch that seemed to capture everyone's hearts, and for great reason: these pictures barely broke the bank, were cleverly written, and most of all avoided the stupid traps that too many rom-coms fell into near their conclusions. There's no moments where someone lies to someone else for two-thirds of the story and then finally get caught, no misunderstandings blown out of proportion, no Atonement syndrome (to borrow a phrase from the great Kal-El Bogadnove) where all the problems would be cleared up if someone said one sentence of information. These are movies where even the teenagers are mature, people communicate clearly and honestly, and the drama is genuine while the laughter keeps coming, all building up to endings that definitely feel earned.
(These were also movies written and directed by only women. Sensing a pattern here?)
To All the Boys I've Loved Before (directed by Susan Johnson and adapted from Jenny Han's novel by Sofia Alvarez, with Netflix already having plans for the rest of the trilogy) ended up getting the most love and rightfully so! It took a great high concept premise—a teenage girl's letters to the five crushes on get delivered—and never let happen any of the things I expected to happen, which is rare indeed. Throwing in Lana Condor and Noah Centineo as the appealing leads, a supporting cast full of surprising depth (the relationship between the older sister and the neighbor didn't have to get that complex), and the always welcome John Corbett as the widowed father who loves chardonnay and heartfelt monologues only helped.
But I slightly preferred Set It Up (directed by Claire Scanlon from Katie Silberman's screenplay), which kept me laughing from beginning to end thanks to a non-stop succession of terrific set pieces and great one-liners powered by four of the most charming leads you'll ever see: Lucy Liu and Taye Diggs as the wealthy, ballsy executives, and Zoey Deutch and Glen Powell as the two beleaguered assistants who get through the dicking around and conspire to Cyrano their bosses. As Dorothy Parker said about Hemingway, it's so simple, but you try to do it.
The Palme d'Or winner for 2018 is, along with the next film, one of the two great movies that speak to this moment in world history while holding the qualities that will make it endure. As a writer, Hirokazu Koreeda pens one of the cleverest screenplays of our time. His story of a Tokyo family crammed into the grandmother's single apartment and living off hustles and shoplifting gets the inciting incident overwith as soon as the credits roll, as they take in an abused and abandoned little girl. This simple choice snowballs into consequences that fill the second half of the movie with multiple twists and emotional gut punches. As a director, Koreeda lifts from Ozu and Mizoguchi with a static camera that observes the natural behavior of actors you don't believe are actors and the environment they try to navigate with intimacy both charming and so probing it hurts. As we follow the elderly, the adults with menial jobs and trying to get what pleasures they can from life, and the younger ones who are conflicted about sex work or face totally unknown futures, the look at life on the margins is nothing but searing and unforgettable.
Tamara Jenkins has only directed one film per decade. This is a crime. Her third feature, brought to us by the grace of God and Netflix, is all the proof one needs she should be working more often. It's a chamber piece of a movie, mostly unfolding over conversations in rooms where people, comfortably or not, bare their souls. It also, like Shoplifters, strikes a perfect balance with its characters who are constantly aware of the world's problems yet also focus on their own wants, needs, and dreams. Jenkins's script delights in language and plays everything with a mix of hilarity, heartbreak, and a deep love that pushes people to do things for others even when they don't always want to. In short, it's a reminder of our humanity in a time when we need it and not all movies show it. Paul Giamatti and Kathryn Hahn are outstanding as the aging artists trying to have a baby in a time and place full of uncertainty; rarely have I loved two people more, as they make even Richard and Rachel's flaws empathetic. And if there's any justice, not only will Jenkins be granted more opportunities, but Kayli Carter, in an indelible role as a young relation who can lend a helping hand, will become a star.
Did we need a fourth version of what Karina Longworth calls Hollywood's greatest myth about itself? It turns out, we did. There's can be a magnificent pleasure in seeing a well-told story get retold, linking back to the past and pointing to the future. (For more on this, I refer you to my friend Sarah Welch-Larson's essay reading the film through the lens of Ecclesiastes.) And this time, Bradley Cooper (along with Eric Roth and Will Fetters, pulling hard from the 1954 Hart and 1976 Didion/Dunne/Pierson scripts) adds a new layer to the story. Jackson Maine is still an addict fighting not so much for stardom as for survival, Ally Campana is still the determined ingenue who doesn't realize how great she is, and their love is still tempestuous and old-school romantic (for good AND ill). But Cooper (who apparently read Greta Gerwig's Lady Bird multiple times during pre-production) introduces the idea that Jackson and Ally have been shaped by parents and parental figures with whom they have complex relationships…and how those ties are lessened as they find new figures and new people to strive for…and how this all plays out as they navigate their bond with each other. If the ending is the same, these details make Jackson's fate and Ally's last choices all the more poignant; I could feel people sobbing through the theater when I saw it the first time. Cooper and Lady Gaga, who is so reminiscent of Cher in her best movies, play it low-key and natural to great effect, Sam Elliott has never been so magical, Cooper's novice direction is as confident and assured as you can get, and the music is great from the first frame to the last. You couldn't ask for a more Hollywoodish time in the best way.
(Note: with this, Crazy Rich Asians, and the Conjuring series, Warner Bros. is singlehandedly reminding Hollywood that medium-budget films can make terrific money if you give the audiences an experience they haven't had before.)
Is Black Panther the finest live-action superhero movie ever made? It doesn't feel like a mere chapter in an ongoing comic book her saga as it does an extraordinary alternate universe. Ryan Coogler, working with Joe Robert Cole, Rachel Morrison, and a production design team without peer makes Wakanda and the world surrounding it real as anything you could reach out and touch, effortlessly shifting from long takes that soak in the atmosphere to thrilling set pieces shot like few others could. More importantly, while so many recent movies fail to create compelling villains or conflicts as much as excuses to watch characters hang out and use their cool abilities, Coogler and Cole write the battle between T'Challa and Erik Killmonger as one not merely of good versus evil but one of different ideologies which complicate our notions of right and wrong. (As FilmCritHulk so magnificently puts it here.) Everything may be decided by a final all-out battle between superpowered men in tech suits, but the real war is one of ideas forged from the weight of history, culminating in the single most beautiful shot I saw this year in film. (That also made me cry for thirty seconds.) Chadwick Boseman, Michael B. Jordan, and Lupita Nyong'o effortlessly carry the movie and its themes leading a note-perfect ensemble cast…and the presence of Letitia Wright, Winston Duke, and others provide the final masterstroke. Black Panther has so much on its mind and says it in a way to make you think and not stop thinking, but unlike Nolan and Snyder's similarly grandiose epics, it never forgets that at heart, superheroes are fun, and having a sense of humor and thrills to make you smile are just as important.
Barry Lyndon and Dr. Strangelove get in the Large Hadron Collider and fuse…but Stanley Kubrick was never inclined to put the focus on women, and he rarely kept it as surreal as Yorgos Lanthimos does. A black comedy for the ages, Lanthimos crafts every moment with the knowing, graceful control of the Vivaldi music that provides the score, using different lenses and fluid movements to thrust the viewers into the action and balancing the serious talk with anachronistic dances, more animals than you'd expect, more mud and filth than you'd have guessed, and the most uninterested sexual act I've ever seen. But while the world of early 18th-century England and its nonstop barbed one-liners draw you in, Lanthimos and screenwriters Deborah Davis and Tony McNamara have something serious to say about how much things can get out of control when the personal and the political mingle in the most undesirable ways, when millions of people are affected by decisions they have no say in, made simply according to mood and caprice (This film isn't timely at all.), and the politicians with their speeches and plans don't hold the real power. If a director's job is in large part working with the actors, Lanthimos gets superhuman work from his three leads. Olivia Colman as the lonely, recently widowed Queen Anne gives one of those rare performances that make you rethink everything she's said and done when the movie's over, as she balances a character both achingly sympathetic and crafty. Rachel Weisz, unruffled and fabulous, plays Sarah Churchill as a gamesmaster with layers of thought behind every word. And Emma Stone gives the most brilliant turn in her career, which is saying a lot; Stone's Abigail Marsham has less dialogue than Colman and Weisz, but her facial expressions and gestures say more than page-long monologues ever could. It's an acting clinic put on by three incredible women working with a director who knows how to get out of their way. The Favourite is aptly titled.
The reason I qualified Black Panther as possibly the best LIVE-ACTION superhero movie ever made is that nothing could have prepared us for the genius of Into the Spider-Verse. Bob Perischetti, Peter Ramsey, and Rodney Rothman, working with guiding producers Phil Lord and Chris Miller, have done something unfathomable: bringing all the storytelling and artistic techniques of comics history to the big screen. It's a mixture of larger than life animation with one style bouncing into the next with nary a moment to catch your breath AND an acknowledgment of how the superhero mythology is reborn in infinite variations on the same theme by making the variations fuse into one beautiful melody. Given the creative team and the players involved, the movie is full of laughter, but it also reconsiders and perfects the origin story in a way that may render it superfluous (Thank God) for the future, as Miles Morales's unlikely path to heroism is shaped by others who've undergone the same origin, and who ultimately push him, by their lessons and by what he sees in their triumphs and failutes, to reach within and take the leap into his destiny in his own way, a way that feels earned, right, and inspiring as no other film has done. It's corny to say that there's a hero within us all, but Into the Spider-Verse proves that such corniness is real. And the laughter and heart comes to life thanks to the best ensemble of 2018, with the earnest, inspiring Shameik Moore playing with Jake Johnson (quietly brilliant), Hailee Steinfeld, Mahershala Ali, Brian Tyree Henry, Nicolas Cage, the incredible John Mulaney, and more. It passes Mask of the Phantasm as the best animated superhero movie. It may be the best superhero movie, period. And it inarguably has the best post-credits scene ever devised.
Sorry to Bother You
Continuing with the idea of non-stop laughs; a picture full of outrageous humor and sight gags that would have made Mel Brooks and Zucker/Zucker/Abrahams proud. But Boots Riley's film about a gifted telemarketer who discovers a corporate conspiracy that—up to a point—defies imagination may be the defining movie of the late capitalist, Donald Trumpian era. A movie Fredric Jameson would put on the cover of his books. Sorry to Bother You isn't subtle in what it rails against (capitalism, racism, sexism) and what it stands for (unions, personal freedoms, friendship rooted in shared beliefs). It's a call to action. But all calls to action should mix infectious, righteous anger with hilarity as this does. It staggers the mind Riley had never made a movie before this. His direction is always assured as he handles the absurd tone with ease, and his screenplay is intricately constructed but easy to understand. The conceits are introduced early, each character's role is defined, and the many personal conflicts between them tie into and are resolved by the overarching, nationally-scaled conflict. This is a movie you could teach in schools. And on top of that, Riley is helped by a terrific cast. Lakeith Stanfield's Cassius Green shares initials with Cary Grant, and Stanfield brings a Grantian charm to the protagonist: handsome, confused, a bit wrong-headed, and finally resolute. Tessa Thompson is magnificent as the loving, fiercely independent Detroit, the platonic ideal of Riley's world, and Steven Yuen anchors the supporting cast in the fascinating role of Squeeze, the organizer who effortlessly blends passions causal and carnal. But the film's real MVP is Armie Hammer, who should have been up for every Supporting Actor category for his depiction of Steve Lift as a man transcending wealth and power to reach a singular, messianistic state of domination. Few actors could have played Lift with the confidence that they're benevolent and harmless. Hammer nails it and helps bring Riley's points home. The voice cast is next-level as well, but the less said about them before you see the movie, the less said about anything in the movie, the better.
I call Roma the impossible movie. Because I don't understand how it exists. I don't understand how director/writer/cinematographer/editor/total artistic visionary Alfonso Cuaron constructed shots where hundreds of people are moving not in any choreographed fashion but to the orderly pulse of life itself. How the camera moves to take in every single detail, no matter how small, from objects on shelves to cars passing down the road at the right second, that makes you feel you are in 1971 Mexico City. How the sound design is immaculately constructed to the point where half a dozen times I turned to see if people were aggressively whispering right behind me only to realize it was the film itself. How light and shadow play together in ways I've never seen. How I've never felt so immersed in a movie before.
Roma might still be my film of 2018 if all it boasted were these technical astonishments. But Cuaron, being Cuaron, uses them in service of a story that strikes you to the core. Roma is a meditation on existence itself and how the connections between us shape existence, how a countless multitude of lives observed and dancing around ours work with our lives. It doesn't offer a secret to life or a big answer. Instead it observes Cleo, the maid, and Sofia, her middle-class employer (played by first-time actress Yalitza Aparicio and Mexican entertainment veteran Marina de Tavira), as the status quo of their lives is upended and how, amidst the tumult of a society in transition, they discover or rediscover things about themselves. And while the trajectories of their lives change, their state of affairs does not…and the bond between them becomes a question for heartfelt interpretation. While de Tavira leaves a great, empathetic impression, Aparicio is revelatory, playing Cleo with openness, honesty, and a quiet grace in a way no one can explain.
On a last, personal note; I saw Roma with my now ex-girlfriend, one of two movies we saw together during our relationship. And I think it's one of the ultimate movies to watch while you're holding hands with someone and letting things wash over you.
WORST TWO MOVIES I SAW THIS YEAR:
Ready Player One – Bohemian Rhapsody
Neither of these films rank as the worst of their respective directors' careers. Both have something to recommend. Ready Player One's visual effects are truly a delightful funhouse ride to experience, especially in 70mm, and Bohemian Rhapsody boasts Rami Malek giving one of the finest physical performances I've seen in any movie, all without gaining or losing weight or wearing ridiculous make-up; he seems to work backwards from Freddie Mercury's stage persona to imbue his actions with a singular air in a way that's really tough to do. That said…
Ernest Cline's novel Ready Player One was far from great literature, but it was a rollicking read that also took a stab at saying something about our responsibilities to the real world and the perils of being in a virtual world. I had thought Steven Spielberg would play into these themes. Instead, halfway through a movie that for the most part had been really entertaining, a choice is made, the film's plot structure wildly breaks off from the novel's, and from there, everything collapses. There are no thematic points made. The hero has no conflicts with his allies and learns zero lessons. It finishes as an even more masturbatory nostalgia trip than the novel, which is saying a lot.
Meanwhile, Bohemian Rhapsody tries to bring home messages about "living your own life" and "the power of love and friendship" except, and this may be even worse than saying nothing, it says the most banal somethings imaginable. This is a movie that never met a cliché it didn't like, to the point where you have to seriously wonder how a movie like this can exist after Walk Hard destroyed the genre so badly it demanded a reinvention that still hasn't happened. Some parts made with care and imagination are "balanced" by atrocious filmmaking, every montage is laughable, and while you expect certain elements of a true story to be fictionalized or elided for the screen, this gets so much about Queen wrong on a basic level that it doesn't seem like it was worth telling this story in the first place. If not for Malek, who manages to push this to acceptable, this movie would be completely useless. As it is, he and the final twelve minutes, and I tip my hat to this in a cynical way, are enough to manipulate you into thinking that film was worth something.
And Finally…Great Performances Outside the Top Ten
PUT THIS MAN IN EVERYTHING
Jesse Plemons – Game Night and Vice
TWO AWESOME MARRIED COUPLES WHOSE RELATIONSHIP IS REFLECTED BY JESSE PLEMONS
Jason Bateman and Rachel McAdams – Game Night
Christian Bale and Amy Adams – Vice
(I want to talk for a moment about Christian Bale in Vice. I expected Amy Adams to be wonderful. I did not expect Bale to be as truly great as he was.
Last year, Gary Oldman won an Oscar he didn't deserve for Darkest Hour, in which he let makeup, weight gain, and an accent stand in for an actual performance. Bale transforms into Dick Cheney the way Oldman transformed into Winston Churchill, but Bale takes the further steps, letting the girth, the quiet voice, the air of a harmless-seeming, soft-spoken man build a real character whose words carry force, whose thoughts are terrifying, and whose motivations build into a thunderstorm of affect…and who ultimately comes across as a real person even though in one of his many terrible decisions, Adam McKay tries to undercut this.
There are two moments in the film which are surprisingly underplayed. At the start, Dick Cheney makes a promise which he will keep through the movie, until the chronological end when he breaks it. In both scenes, Bale conveys a deep, empathetic brokenness that definitely doesn't make us like Cheney, but brings a moment of humanity in a film which refuses to let anyone be human most of the time.
INCREDIBLE IN A MOVIE I DON'T UNDERSTAND WHY ALL OF YOU LOVED
Ethan Hawke – First Reformed
Regina King – If Beale Street Could Talk
GREAT YOUNG STAR
Ed Oxenbould – Wildlife
GREAT "27 BUT SELLING THAT SHE'S IN HIGH SCHOOL" STAR
Danielle Macdonald – Dumplin'
BIGGEST SURPRISE, AS BOTH CHARACTER AND STAR
Joanna Kulig – Cold War
COOLEST THROWBACK COUPLE (FOR GOOD AND ILL)
Constance Wu and Henry Golding – Crazy Rich Asians
BEST ONE-SCENE PERFORMANCE
Harry Belafonte – BlacKKKlansman
FORM OF A QUESTION – FIRST SIGNINGS
November 13, 2018 / andrewjohnrostan	/ Leave a comment
So the election's been won and I'm working on a lot of stuff to pitch in January…but TOMORROW, the momentous day arrives.
FORM OF A QUESTION will be available from your comic book retailer! And it will be everywhere on November 20th! Come get the book Paste calls one to gift for the holidays if you love game shows and extraordinary memoirs – although I wouldn't go that far on the latter.
We're going to kick it off with two Chicago events.
Wednesday, 11/14 5-7 pm – First Aid Comics, 1617 E. 55th Street
Saturday, 11/17 1-4 pm – Challengers, 1845 N. Western Avenue
Going to try to be setting up more events for December but for right now, hope to see you there!
A Brief Thought on the 2018 Midterms
October 24, 2018 October 24, 2018 / andrewjohnrostan	/ Leave a comment
I'll admit it; I'm terrible at writing stuff for my own website. And I'm sorry. (On the other hand, one of my planned essays was going to be an angry couple thousand words on why the movie of Ready Player One screwed up the source material, and I'm happy I didn't subject you to that!)
But that's going to change. In case you missed the announcements, Form of a Question will be out NOVEMBER 14th in comic shops and NOVEMBER 20th everywhere. I have events planned for six months down the line, and there will be lots of details here and elsewhere.
I also went to New York for NYCC, which was a total blast full of old and new friends and some extraordinary nights on the town. When you're up at 1:30 in the morning reading poetry out loud in somebody's apartment and you feel you're meant to be there, you can say that life's going pretty good.
But for right now, and this is what this post is about, I'm NOT writing.
Trust me, I would rather be writing. But we live in unusual times, and that calls for unusual action on my part.
Image obviously via Shutterstock…but I like these big, strong, anthropomorphic individuals.
For the past month AND the next two weeks, I have been knocking on doors, calling, texting. Here in Illinois but also in Indiana, Wisconsin, Ohio, Florida, Missouri, North Dakota, Arizona, Texas…shall I go on? All leading up to Election Day.
And I am here to encourage anyone who reads this, and is considering who they will vote for, to cast your ballots with a Democratic ticket as opposed to the Republicans.
That being said, while I'm going to admit upfront I have a left-wing bias (big surprise, I know), my dad taught me to be an independent thinker, and having a D next to your name's not going to make me automatically vote for you.
Rahm Emanuel, I know you're reading this, and sorry not sorry.
I also follow my fair share of conservatives on twitter along with liberals, socialists, etc., because I want to know what people are thinking and what value it contributes to the national discourse.
As I've said before, true conservatism has a valuable place in the grand scheme of things.
With all of the above in mind, I'm going to tell you that the distinction between the Democrats and Republicans has never been so obviously clear.
A lot of my friends have some valid criticisms of the Democratic Party. I myself have valid criticisms of the Democratic Party. But right now there is a golden opportunity for them, and the nation, in that the Dems don't have a leader.
For good or for ill (and I think it's both), the two people who dominated the landscape in 2016 are not leading. Hillary Clinton has no leadership position and no influence on things. Bernie Sanders goes his own distinctive way.
While not having a clear figurehead sometimes leads to disorganization, there is also a clear advantage. The Clinton-Sanders primary turned into a debate about ideas, and what I have witnessed since 2018 began is a competition, indeed a rapid-fire competition, among every Democrat younger than, say Chuck Schumer. And the endgame of this competition is simple: the winner is the one who can start making those ideas that caught the popular imagination in 2016 a reality. In this past year, I have seen statements and genuine policy proposals on the following:
– Both protection of the ACA and the steps that will get us to universal health care
– Job guarantees or UBI
– Tax reform that will genuinely benefit the lower and middle classes
– Climate issues
– Codifying civil rights protections into law
– Educational reform
– Electing state governors and attorneys general who will protect voting rights
– Most recently, the baby bonds plan
– Possibly even having a TRUE infrastructure week.
(Dave Weigel's reporting in the Washington Post, by the way, is where I learned this, since unlike many political reporters, Weigel is on the ground constantly seeing what campaigns across the nation talk about.)
This is what the Democrats are running on: a series of ideas that will revitalize the social framework of the nation. And the people who best personify those ideas are going to be set up as power figures for 2020 and beyond following the increasingly inevitable change of the guard.
Moreover, you know so many of us rediscovered the civic virtue of calling, emailing, and writing to our representatives these past two years? Imagine calling your reps not to say "don't vote for this" and saying "Vote for this, and possibly make it better" with a Democratic House (and slim chance but possibly Senate) majority? I like imagining that.
And what we end up with is not only a true check and balance in the government, but also a series of legislative positions that whoever ends up running for president in 2020 can campaign on as a great message.
Speaking of positions and messages, let's turn to the Republicans.
Here I have a key question: WHAT are the Republicans running on?
Because when I engage with conservatives on twitter and look at what's being covered in more right-wing-leaning media, the answer gets murky.
Health care? If they are, they're doing so in the most confusing way possible. Candidates continually talk about protecting pre-existing conditions AT THE SAME TIME Republican officials are suing to eliminate the pre-existing conditions clause of the ACA, and a Texas judge actually has a ruling that he's sitting on until after Election Day. And there's also serious discussion about slashing Medicare, Medicaid, and Social Security coming from the Senate Majority Leader himself, which leads me to…
The Economy? It's actually pretty good according to several indicators right now. However, there's very little about the economy, and almost nothing about the vaunted tax reform bill from the winter that was supposed to be the cornerstone of the 2018 messaging. Because the GOP realized that the tax bill did nothing for the lower and middle classes and only bankrolled the wealthy…which is why Donald Trump is currently talking about pushing through another tax bill that doesn't even exist. And the deficit has exploded so much that the party of small government has given us no reason to ever listen to fears about the deficit ever again.
The Judiciary? They're confirming judges at hyperspeed, and Brett Kavanaugh was supposed to be a galvanizing force for the Republicans…which he was for a week during the hearings. But then the polling and forecasting for everywhere but the Senate returned to numbers as good as they'd ever been or better for the Democrats. Other polling has shown a lot of people couldn't even tell you if their senators voted for or against Kavanaugh's confirmation. (Personally, the same way that if Trump had worked on infrastructure and jobs as opposed to health care and taxes, then he would be in a better place right now…if the GOP had either waited until after the elections for the Supreme Court hearings or picked a new nominee, they would have been able to truly capitalize. They did not.)
The truth of the matter is that the Republicans have nothing. No agenda. (You can read this in more detail here.) But it's somehow worse than having no agenda. For two reasons.
First, right now, beyond Robert Mueller, we have no idea what Donald Trump's personal and business relationships are with so many entities around the world. The New York Times has created a clear picture of Trump committing tax fraud. His unilateral foreign policy moves are empowering China and Russia, which are not really friends of America, and propping up disastrous governments in Saudi Arabia and Israel. And the Republican Party is decidedly incurious about checking and balancing anything Trump does because he benefits them. The Democrats will actually provide congressional oversight.
Second, I won't mince words. The Republican Party is the party that attracts the support of the Proud Boys and such. They are a party of "personal responsibility" that is increasingly determined to regulate the bodies of people and possibly deny civil rights. They have children in internment camps who have to represent themselves in court. Their candidates run race-baiting political ads. They are afraid of the opposition so much that they project everything about themselves onto the opposition and ratchet up fear, to the point where baby boomers in Minnesota are convinced Hispanic gang members will occupy their lake houses.
(Seriously, I read that article this week.)
This is to hide the lack of a real agenda. The lack of a pan to fairly govern all and value democracy.
The Democrats (especially the rising new generations of Democrats) have something to offer.
The Republicans have nothing to offer.
The choice in my mind is clear. And I hope this makes sense for many of you as well.
@AndrewRostan


text:
FBI turns to insurers to grasp the full reach of ransomware
Jeff Stone
Mar 30, 2020 | CyberScoop
Written by Jeff Stone
Tim Manley didn't even know who to call.
As the president of National Ink and Stitch, Manley had to figure out how to recover files that hackers had encrypted as part of a ransomware attack on the small screen-printing business. Malicious software called only "LockedIn" struck the Maryland company's systems on Dec. 2, 2016, scrambling 16 years' worth of the company's intellectual property, like proprietary logos and designs.
So Manley paid the two bitcoin that extortionists had demanded to free his files. It totaled about $1,500. Instead of letting National Ink and Stitch get back to work, though, the hackers asked for more money. That's when the company president filed a report with the local police department and spent $110,000 on an IT contractor that, to this day, hasn't recovered all the locked files.
At the time, federal law enforcement wasn't even on Manley's list of potential allies. He didn't alert the FBI to the breach until the IT contractor suggested it.
"I just wouldn't even have thought to call the FBI," he said during a recent interview. "It wasn't at the front of my mind. I was just searching Google for a decrypter, and thinking about how to remedy this."
More than three years after National Ink and Stitch was hit, it seems that many businesses throughout the U.S. are taking the same approach.
The FBI's Internet Crime Complaint Center received 2,047 ransomware complaints from U.S. victims in 2019, resulting in adjusted losses of roughly $8.9 million. The most recent figures represent an uptick in reported attacks — 1,493 victims told the FBI about $3.6 million in losses in 2018 — yet still fail to account for the exponential growth in the number of incidents. Beazley, the London-based insurance firm, said last week that its clients reported 131% more ransomware attacks in 2019 than in 2018.
"There's a percentage of ransomware attacks that go unreported, just generally, because there's no legal federal requirement to report them," said Katherine Keefe, global head of Beazley's Breach Response Services. "There's a lot more of this going on than the public is aware."
Over the past year, the FBI has taken steps to change that.
Bureau officials have met with insurance firms in at least two small, informal meetings in New York City to discuss how law enforcement and insurers might collaborate to accelerate efforts to stop ransomware, according to three industry executives. The FBI also hosted a larger ransomware summit in September, when corporate executives were invited to "fill some of the gaps in the intel," as Herb Stapleton, section chief in the FBI's cyber division, described it.
The smaller meetings in New York have typically included around 10 insurance industry representatives and five bureau officials, according to one executive who attended the sessions. Conversations have focused on how insurers can help a hacked client restore normal business functionality, and perhaps provide the bureau with anonymized information that would help ransomware investigations.
"In the cyber division we have units specifically dedicated to private sector outreach…including the cyberinsurance industry," Stapleton said last week. "It's not a regularly scheduled engagement. One of the real opportunities for real cooperation, and the betterment of society against this threat, is for the FBI to provide cyberinsurers with some of the technological processes that we think would help combat the problem."
Officials also have provided insurers with guidance on how to fend off emerging attack techniques, such as which software to update, and tried to assuage concerns that agents would try to prosecute insurance clients who elect to pay ransoms, according to one executive who attended the meetings.
"For a long time, there weren't open lines of communication," the executive said. "When I talk to victims of ransomware they're concerned that they're solving one problem only to create another by paying, and then going to jail themselves. But I do think it's got to a point where it's been productive."
If victims aren't reporting ransomware attacks to the FBI, then insurers might be the next best source of information. The industry's longtime reliance on risk mitigation has informed firms' approach to ransomware claims.
While techniques vary, insurers typically know the frequency of ransomware events, which businesses are most likely to be hacked, the size of the extortion demands and whether a specific gang is likely to negotiate. They also possess information on cryptocurrency wallets where scammers demand fees to be sent, and retain threat intelligence firms that track hackers' histories.
"None of this was a thing years ago but as these crimes have popped up we've pushed the message to our policyholders that 'We offer services to help you with this,'" said Beazley's Katherine Keefe, who was not present at the meetings. "During that conversation, there will invariably be a conversation with a client about whether to report this to the FBI. We encourage that, but it's not our call."
Yet FBI agents may know more than the Internet Crime Complaint Center numbers would seem to indicate. Coveware, an incident response firm that insurers use to track ransomware groups, provides the bureau and other police organizations with quarterly reports of anonymized and aggregated data from its own negotiations with ransomware groups. The company uses its own software, and organizes relevant information in a database populated with data, like the time each negotiation takes.
Bill Siegel, Coveware's CEO, says the goal is to help understaffed law enforcement agencies have a better idea of how hackers actually are going about their work.
"They're looking to arrest people," he said. "There isn't a week that goes by when we don't field requests from the FBI and [the Department of Homeland Security] and international law enforcement. It's the right thing to do."
Face-to-face meetings also serve another, less obvious purpose, Siegel said. It's an opportunity for agents and industry practitioners to share information that might be too sensitive to discuss via email. In some cases, FBI agents and the contractors that work with insurers discuss the latest decryption tools.
"We know of a [ransomware] variant that the FBI can crack right now, and there's other where a specialized security firm can [decrypt] it," Siegel said. "So we know of a company that gets hit, sometimes it's easier to go offline and talk about it[.]"
For National Ink and Stitch, though, the cooperation didn't come soon enough. More than three years after Tim Manley used the FBI's website to report the ransomware attack, he says hasn't heard back from the bureau.
Meanwhile, the IT contractor Manley hired is still going through the encrypted files in an attempt to restore access to proprietary information. And in January, a Maryland federal judge had to force the company's insurance firm to cover the costs of the attack after years of expensive litigation. (Court filings show that Manley's company had sought $310,000 in damages. He declined to discuss the case.)
"We're just a small business, and this still affects us to this day," he said.
Asked if it was reassuring that the FBI might be able to respond to more attacks after working with the insurance industry, he added, "Not really…I'm pretty sure they will be overwhelmed and people like me won't ever hear from them."
Beazley, Federal Bureau of Investigation (FBI), insurance, ransomware


In the video below, the Lebanese discuss why their cuisine is so amazing. From diversity to simplicity, from breakfast to dinner, there is something unique in every establishment, a passion and freshness accumulated over centuries of trade and communication with other nations and built on one of the broadest natural gardens in the world. And in case you were wondering, the lamb above is one that we made for a function recently – Kharouf Mahshi.


Hiya, I'm Harriet. I've just graduated from Fashion Communication and now I'm figuring out my next step! My love of health and fitness has blossomed and become a huge part of me. It took over my life in the best way possible about 18 months ago, and hasn't let me go since. It found me when I needed it most after struggling with moving to uni and not enjoying my time.
I realised that the gym answered my call. It gave me back what I put in and always responded. It has given me a clarity and a way to hold on to sanity when I need it.
Finding the Girl Gains showed me I'm not alone in this, and not alone in my crazy dream of empowering each and every woman out there. I want nothing more than for every girl I know to elevate each other and understand the power of their voices!
For now, I'm just trying to find the happiest possible course for my life.