text:
using System;
using System.IO;
using System.Linq;
using System.Reflection;
using UnityEditor;
using UnityEngine;

namespace HoloToolkit.Unity
{
    public class SetIconsWindow : EditorWindow
    {
        private const string WindowTitle = "Tile Generator";
        private const string InitialOutputDirectoryName = "TileGenerator";
        private const float GUISectionOffset = 10.0f;
        private const string GUIHorizSpacer = "     ";
        private const string EditorPrefsKey_AppIcon = "EditorPrefsKey_AppIcon";
        private const string EditorPrefsKey_SplashImage = "EditorPrefsKey_SplashImage";
        private const string EditorPrefsKey_DirectoryName = "EditorPrefsKey_DirectoryName";

        private string _outputDirectoryName;
        private string _originalAppIconPath;
        private string _originalSplashImagePath;
        private Texture2D _originalAppIcon;
        private Texture2D _originalSplashImage;

        [MenuItem("HoloToolkit/Tile Generator", false, 0)]
        private static void OpenWindow()
        {
            SetIconsWindow window = GetWindow<SetIconsWindow>(WindowTitle) as SetIconsWindow;
            if (window != null)
            {
                window.Show();
            }
        }

        private void OnEnable()
        {
            Setup();
        }

        private void OnDisable()
        {
            // Save settings
            EditorPrefs.SetString(EditorPrefsKey_AppIcon, _originalAppIconPath);
            EditorPrefs.SetString(EditorPrefsKey_SplashImage, _originalSplashImagePath);
            EditorPrefs.SetString(EditorPrefsKey_DirectoryName, _outputDirectoryName);
        }

        private void OnGUI()
        {
            GUILayout.Space(GUISectionOffset);

            // Setup
            int buttonWidth_Full = Screen.width - 25;

            // Images section
            GUILayout.BeginVertical();
            GUILayout.Label("Images");

            EditorGUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            EditorGUILayout.EndHorizontal();

            EditorGUIUtility.labelWidth = 200f;

            // Inputs for images
            _originalAppIcon = CreateImageInput("App Icon", 1240, 1240, _originalAppIcon, ref _originalAppIconPath);
            _originalSplashImage = CreateImageInput("Splash Image", 2480, 1200, _originalSplashImage, ref _originalSplashImagePath);

            // Input for directory name
            _outputDirectoryName = EditorGUILayout.TextField(GUIHorizSpacer + "Output folder", _outputDirectoryName);

            // Update Icons
            using (new EditorGUILayout.HorizontalScope())
            {
                GUILayout.FlexibleSpace();
                if (GUILayout.Button("Update Icons", GUILayout.Width(buttonWidth_Full)))
                {
                    if (_originalAppIcon == null)
                    {
                        EditorUtility.DisplayDialog("App Icon not set", "Please select the App Icon first", "Ok");
                    }
                    else if (_originalSplashImage == null)
                    {
                        EditorUtility.DisplayDialog("Splash Image not set", "Please select the Splash Image first", "Ok");
                    }
                    else
                    {
                        // Resize Images
                        EditorApplication.delayCall += () => { ResizeImages(); };
                    }
                }
                GUI.enabled = true;
            }

            GUILayout.EndVertical();
        }

        private void Setup()
        {
            this.titleContent = new GUIContent(WindowTitle);
            this.minSize = new Vector2(600, 200);

            // Load settings
            _originalAppIconPath = EditorPrefs.GetString(EditorPrefsKey_AppIcon);
            _originalSplashImagePath = EditorPrefs.GetString(EditorPrefsKey_SplashImage);
            _outputDirectoryName = EditorPrefs.GetString(EditorPrefsKey_DirectoryName);

            if (!string.IsNullOrEmpty(_originalAppIconPath))
            {
                _originalAppIcon = AssetDatabase.LoadAssetAtPath<Texture2D>(_originalAppIconPath);
            }
            if (!string.IsNullOrEmpty(_originalSplashImagePath))
            {
                _originalSplashImage = AssetDatabase.LoadAssetAtPath<Texture2D>(_originalSplashImagePath);
            }
            if (string.IsNullOrEmpty(_outputDirectoryName))
            {
                _outputDirectoryName = InitialOutputDirectoryName;
            }
        }

        private Texture2D CreateImageInput(string title, int width, int height, Texture2D texture, ref string path)
        {
            var newIcon = (Texture2D)EditorGUILayout.ObjectField(GUIHorizSpacer + title + " (" + width + "x" + height + ")", texture, typeof(Texture2D), false);

            if (newIcon != null && newIcon != texture)
            {
                int newIconWidth, newIconHeight = 0;
                GetImageSize(newIcon, out newIconWidth, out newIconHeight);

                if (newIconWidth != width && newIconHeight != height)
                {
                    // reset
                    newIcon = texture;
                    EditorUtility.DisplayDialog("Invalid Image", title + " should be an image with prefered size of " + width + " x " + height + ". Provided image was: " + newIconWidth + " x " + newIconHeight + ".", "Ok");
                }
                else
                {
                    path = AssetDatabase.GetAssetPath(newIcon);
                }
            }

            return newIcon;
        }

        private void ResizeImages()
        {
            try
            {
                EditorUtility.DisplayProgressBar("Generating images", "Checking Texture Importers", 0);

                // Check if we need to reimport the original textures, for enabling reading.
                var reimportedAppIcon = CheckTextureImporter(_originalAppIconPath);
                var reimportedSplashImage = CheckTextureImporter(_originalSplashImagePath);

                if (reimportedAppIcon || reimportedSplashImage)
                {
                    AssetDatabase.Refresh();
                }

                // Create a copy of the original images
                string directoryPath = Application.dataPath + "/" + _outputDirectoryName;

                if (!Directory.Exists(directoryPath))
                {
                    Directory.CreateDirectory(directoryPath);
                }

                File.Copy(_originalAppIconPath, directoryPath + "/1240x1240.png");
                File.Copy(_originalSplashImagePath, directoryPath + "/2480x1200.png");

                // Loop through available types and scales for UWP
                var types = Enum.GetValues(typeof(PlayerSettings.WSAImageType)).Cast<PlayerSettings.WSAImageType>().ToList();
                var scales = Enum.GetValues(typeof(PlayerSettings.WSAImageScale)).Cast<PlayerSettings.WSAImageScale>().ToList();
                float progressTotal = types.Count * scales.Count;
                float progress = 0;
                bool cancelled = false;

                foreach (var type in types)
                {
                    if (cancelled)
                    {
                        break;
                    }

                    foreach (var scale in scales)
                    {
                        var texture = GetUWPImageTypeTexture(type, scale);
                        if (texture != null)
                        {
                            string filename = null; //string.Format("{0}{1}.png", type, scale);
                            CloneAndResizeToFile(texture, type, scale, ref filename);
                            PlayerSettings.WSA.SetVisualAssetsImage(string.Format("Assets/{0}/{1}", _outputDirectoryName, filename), type, scale);

                            progress++;
                            cancelled = EditorUtility.DisplayCancelableProgressBar("Generating images", string.Format("Generating resized images {0} of {1}", progress, progressTotal), progress / progressTotal);
                            if (cancelled)
                            {
                                break;
                            }
                        }
                    }
                }

                if (!cancelled)
                {
                    // Set Default Icon in Player Settings (Multiple platforms, can be overridden per platform)
                    PlayerSettings.SetIconsForTargetGroup(BuildTargetGroup.Unknown, new[] { _originalAppIcon });

                    EditorUtility.DisplayDialog("Images resized!", "All images were resized and updated in the Player Settings", "Ok");
                }
                else
                {
                    EditorUtility.DisplayDialog("Generation cancelled", string.Format("{0} Images of {1} were resized and updated in the Player Settings.", progress, progressTotal), "Ok");
                }

                EditorUtility.ClearProgressBar();
                AssetDatabase.Refresh();
            }
            catch (Exception)
            {
                EditorUtility.ClearProgressBar();
            }
        }

        private bool CheckTextureImporter(string assetPath)
        {
            var tImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter;
            if (tImporter != null && !tImporter.isReadable)
            {
                tImporter.isReadable = true;

                AssetDatabase.ImportAsset(assetPath);
                return true;
            }
            return false;
        }

        private string CloneAndResizeToFile(Texture2D texture, PlayerSettings.WSAImageType type, PlayerSettings.WSAImageScale scale, ref string fileName)
        {
            var iconSize = GetUWPImageTypeSize(type, scale);
            if (iconSize != Vector2.zero)
            {
                fileName = string.Format("{0}x{1}.png", iconSize.x, iconSize.y);
                return CloneAndResizeToFile(texture, iconSize, ref fileName);
            }

            return null;
        }

        private string CloneAndResizeToFile(Texture2D texture, Vector2 iconSize, ref string fileName)
        {
            string directoryPath = Application.dataPath + "/" + _outputDirectoryName;
            string filepath = directoryPath + "/" + fileName;

            if (!((iconSize.x == 1240 && iconSize.y == 1240) || (iconSize.x == 2480 && iconSize.y == 1200)))
            {

                // Create copy of original image
                var clone = CloneAndResizeToTexture(texture, iconSize);

                // Write clone to assets folder
                var bytes = clone.EncodeToPNG();
                if (!Directory.Exists(directoryPath))
                {
                    Directory.CreateDirectory(directoryPath);
                }
                File.WriteAllBytes(filepath, bytes);
            }

            return filepath;
        }

        private Texture2D CloneAndResizeToTexture(Texture2D texture, Vector2 iconSize)
        {
            // Create copy of original image
            var clone = Instantiate(texture);

            // Resize clone to desired size
            TextureScale.Bilinear(clone, (int)iconSize.x, (int)iconSize.y);

            return clone;
        }

        private Texture2D GetUWPImageTypeTexture(PlayerSettings.WSAImageType type, PlayerSettings.WSAImageScale scale)
        {
            switch (type)
            {
                case PlayerSettings.WSAImageType.PackageLogo:
                case PlayerSettings.WSAImageType.StoreTileLogo:
                case PlayerSettings.WSAImageType.StoreTileSmallLogo:
                case PlayerSettings.WSAImageType.StoreSmallTile:
                case PlayerSettings.WSAImageType.StoreLargeTile:
                case PlayerSettings.WSAImageType.PhoneAppIcon:
                case PlayerSettings.WSAImageType.PhoneSmallTile:
                case PlayerSettings.WSAImageType.PhoneMediumTile:
                case PlayerSettings.WSAImageType.PhoneWideTile:
                case PlayerSettings.WSAImageType.PhoneSplashScreen:
                case PlayerSettings.WSAImageType.UWPSquare44x44Logo:
                case PlayerSettings.WSAImageType.UWPSquare71x71Logo:
                case PlayerSettings.WSAImageType.UWPSquare150x150Logo:
                case PlayerSettings.WSAImageType.UWPSquare310x310Logo:
                    return _originalAppIcon;
                case PlayerSettings.WSAImageType.SplashScreenImage:
                case PlayerSettings.WSAImageType.StoreTileWideLogo:
                case PlayerSettings.WSAImageType.UWPWide310x150Logo:
                    if (scale != PlayerSettings.WSAImageScale.Target16 &&
                        scale != PlayerSettings.WSAImageScale.Target24 &&
                        scale != PlayerSettings.WSAImageScale.Target32 &&
                        scale != PlayerSettings.WSAImageScale.Target48 &&
                        scale != PlayerSettings.WSAImageScale.Target256)
                    {
                        return _originalSplashImage;
                    }
                    else
                    {
                        break;
                    }
                default:
                    break;
            }

            return null;
        }

        private Vector2 GetUWPImageTypeSize(PlayerSettings.WSAImageType type, PlayerSettings.WSAImageScale scale)
        {
            Vector2 size = Vector2.zero;

            switch (scale)
            {
                case PlayerSettings.WSAImageScale.Target16:
                    size = CreateSize(16);
                    break;
                case PlayerSettings.WSAImageScale.Target24:
                    size = CreateSize(24);
                    break;
                case PlayerSettings.WSAImageScale.Target32:
                    size = CreateSize(32);
                    break;
                case PlayerSettings.WSAImageScale.Target48:
                    size = CreateSize(48);
                    break;
                case PlayerSettings.WSAImageScale.Target256:
                    size = CreateSize(256);
                    break;
                default:
                    size = GetWSAImageTypeSize(type, scale);
                    break;
            }

            return size;
        }

        private Vector2 GetWSAImageTypeSize(PlayerSettings.WSAImageType type, PlayerSettings.WSAImageScale scale)
        {
            Vector2 size = Vector2.zero;
            float scaleFactor = (float)scale / 100;

            switch (type)
            {
                case PlayerSettings.WSAImageType.PackageLogo:
                    size = CreateSize(50);
                    break;
                case PlayerSettings.WSAImageType.StoreTileLogo:
                    size = CreateSize(150);
                    break;
                case PlayerSettings.WSAImageType.StoreTileSmallLogo:
                    size = CreateSize(30);
                    break;
                case PlayerSettings.WSAImageType.StoreSmallTile:
                    size = CreateSize(70);
                    break;
                case PlayerSettings.WSAImageType.StoreLargeTile:
                    size = CreateSize(310);
                    break;
                case PlayerSettings.WSAImageType.PhoneAppIcon:
                    size = CreateSize(44);
                    break;
                case PlayerSettings.WSAImageType.PhoneSmallTile:
                    size = CreateSize(71);
                    break;
                case PlayerSettings.WSAImageType.PhoneMediumTile:
                    size = CreateSize(150);
                    break;
                case PlayerSettings.WSAImageType.PhoneSplashScreen:
                    break;
                case PlayerSettings.WSAImageType.UWPSquare44x44Logo:
                    size = CreateSize(44);
                    break;
                case PlayerSettings.WSAImageType.UWPSquare71x71Logo:
                    size = CreateSize(71);
                    break;
                case PlayerSettings.WSAImageType.UWPSquare150x150Logo:
                    size = CreateSize(150);
                    break;
                case PlayerSettings.WSAImageType.UWPSquare310x310Logo:
                    size = CreateSize(310);
                    break;

                // WIDE 31:15
                case PlayerSettings.WSAImageType.PhoneWideTile:
                case PlayerSettings.WSAImageType.StoreTileWideLogo:
                case PlayerSettings.WSAImageType.UWPWide310x150Logo:
                    size = new Vector2(310, 150);
                    break;
                case PlayerSettings.WSAImageType.SplashScreenImage:
                    size = new Vector2(620, 300);
                    break;
                default:
                    break;
            }

            if (size != Vector2.zero)
            {
                size = (size * scaleFactor);
                size.x = (float)Math.Ceiling(size.x);
                size.y = (float)Math.Ceiling(size.y);
            }
            return size;
        }

        private Vector2 CreateSize(int size)
        {
            return new Vector2(size, size);
        }

        private bool GetImageSize(Texture2D asset, out int width, out int height)
        {
            if (asset != null)
            {
                string assetPath = AssetDatabase.GetAssetPath(asset);
                TextureImporter importer = AssetImporter.GetAtPath(assetPath) as TextureImporter;

                if (importer != null)
                {
                    object[] args = new object[2] { 0, 0 };
                    MethodInfo mi = typeof(TextureImporter).GetMethod("GetWidthAndHeight", BindingFlags.NonPublic | BindingFlags.Instance);
                    mi.Invoke(importer, args);

                    width = (int)args[0];
                    height = (int)args[1];

                    return true;
                }
            }

            height = width = 0;
            return false;
        }
    }
}

redpajama_set_name: RedPajamaGithub


text:
import sys # Arguments.
import re # Regex operations.
import matplotlib.pyplot as plt # Plotting.
import os.path # File extension extraction.

# `time` is of format: MM/DD/YYYY HH:MM:SS.MMM
def toMinutes(time):
  time = re.split('[ /:]', time)
  for i in range(0,len(time)):
    time[i] = float(time[i])
  day = time[0]*365.25/12.0+time[1]+time[2]*365.25
  return day*24+time[3]+time[4]/60.0+time[5]/(60.0*60.0)

# `time` is of format: HH:MM:SS.MMM
def toSeconds(time):
  time = re.split(':', time)
  for i in range(0,len(time)):
    time[i] = float(time[i])
  return time[2]+time[1]*60.0+time[0]*60.0*60.0

dateRegex = re.compile("^\[INFO\] \[([^\]]*)\]")
def parseDate(line):
  return dateRegex.search(line).group(1)

secondsRegex = re.compile(".*([0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}).*")
def parseSeconds(line):
  return secondsRegex.search(line).group(1)

if len(sys.argv) != 2:
  print("Usage: ./parse.py <output-file>")
  exit(42)

outFile = sys.argv[1]
outFileName = os.path.splitext(outFile)[0]
f = open(outFile, "r")

for line in f:
  if "RemoteServerStarted" in line:
    startTime = toMinutes(parseDate(line))
    break

clientDelays = []
firstClientSeconds = None
for line in f:
  if "RemoteClientStarted" in line:
    if not firstClientSeconds:
      firstClientSeconds = toSeconds(parseSeconds(line))
    clientDelays.append(60*(toMinutes(parseDate(line))-startTime))

plt.figure()
plt.title('Successful remote client initialization delays')
plt.xlabel('Delay (seconds)')
plt.ylabel('Clients online')
plt.plot(clientDelays, range(1,len(clientDelays)+1), color='k')
plt.savefig(outFileName + '-timeToGoOnline.png')

f.seek(0)
msRegex = re.compile("Profiled [0-9]* in ([0-9]*) ms")
taskDelays = []
for line in f:
  if "Profiled " in line:
    taskDelays.append(float(msRegex.search(line).group(1))/(1000*60*60))

plt.figure()
plt.title('Time to profile applications')
plt.xlabel('Delay (hours)')
plt.ylabel('Applications profiled')
plt.plot(taskDelays, range(1,len(taskDelays)+1), color='k')
plt.savefig(outFileName + '-timeForTasks.png')

f.seek(0)
emuDelays = []
for line in f:
  if "emulators awake" in line:
    emuDelays.append(toSeconds(parseSeconds(line)) - firstClientSeconds)

plt.figure()
plt.title('Time to boot emulators')
plt.xlabel('Delay (seconds)')
plt.ylabel('Emulators booted')
plt.plot(emuDelays, range(1,len(emuDelays)+1), color='k')
plt.savefig(outFileName + '-timeForEmulators.png')

f.close()


text:
Modern Slavery Act: Is your business ready?
Home Insights Blogs Employment Law Blog Modern Slavery Act: Is your business ready?
The date triggering the first reporting obligations under the Modern Slavery Act 2015 (the MSA) passed a few weeks ago. Here is a brief look at some of the key questions we are being asked.
The MSA aims to incentivise businesses to tackle modern slavery (comprising slavery, servitude and forced or compulsory labour) and human trafficking in their own organisations and in their supply chains by requiring transparency to investors, consumers, employees and the wider public. Businesses that meet certain criteria must publish a slavery and human trafficking statement each financial year. This should set out the steps that they have taken, if any, to ensure that modern slavery is not taking place in their business or supply chains.
How is the MSA relevant to my business?
This will depend upon the turnover of your business. The MSA requires businesses with a turnover of £36m or more (who are carrying on a business or part of a business in the UK) to prepare and publish a slavery and human trafficking statement.
It is also likely to have an indirect impact on businesses, including those with a turnover of under £36m. The effect of the MSA's reporting obligations are likely to filter down supply chains. This could be by way of additional due diligence requirements before entering into a contractual arrangement (for the customer to satisfy themselves that the supplier meets their standards), or because the customer requires specific contractual obligations in supply agreements. By way of example, a supplier may be asked to audit their own supply chain and report back, warrant that they are complying with applicable laws and labour standards, or be asked to comply with the customer's own policies and requirements in relation to modern slavery and trafficking. A supplier could even be asked to ensure that they cascade these contractual provisions down their own supply chain.
UK quoted companies already have requirements to disclose certain social, community and human rights issues in their strategic reports, and so they may already have some of the material necessary to produce a slavery and human trafficking statement.
What are the reporting requirements for businesses with a turnover of £36m?
For those businesses that are required to report, the transitional arrangements mean that the first reporting obligation arises in relation to financial years ending on or after 31 March 2016. Businesses have 6 months from their year-end date to publish their statement. No doubt those organisations that have to report later in the year, or next year, will be looking at what their competitors have published.
Thereafter, a slavery and human trafficking statement must be published in relation to each financial year. The statement must be published on the organisation's UK website (if there is one) with a link in a prominent place on the UK homepage. This positioning means that it is likely to have a real impact on the way in which the business is perceived in the market, and the PR implications of the statement should not be overlooked.
In order to ensure accountability at a senior level, companies must ensure that the statement is approved by the board or directors and signed by a director. Equivalent requirements apply to LLPs and partnerships.
What should the statement include?
Whilst compliance with the reporting obligations can be achieved by stating that you are taking no steps, this could expose the business to reputational risk.
A business is not required to guarantee that its supply chains are free of slavery. The statement should, however, set out the steps it has taken during the financial year, if any, to ensure modern slavery and trafficking is not taking place in its own business and in its supply chains. This does not just apply to its operations and supply chains located in the UK.
Statutory guidance anticipates that the first statement will be forward looking and will outline the business's action plan for ensuring slavering and human trafficking is not taking place. It is anticipated that the statement will be updated each year in line with any progress through the action plan.
Conducting a risk assessment of the business and supply chain is a good place to start. Once you have carried out your risk assessments, you will be in a better position to work towards implementing relevant prevention strategies, which in turn can be included in the statement. The strategies will depend on the outcome of your risk assessment, but may include:
a. The performance of due diligence, where specific impacts are feared or identified;
b. The development of a responsible procurement policy, which providers are bound to adhere to;
c. A clear recruitment policy and statement; and
d. Staff training programmes.
Whilst these steps are voluntary, as mentioned above, there is a reputation risk in not engaging with the regime appropriately and modern slavery will also now be a procurement issue for a business's clients or customers with a turnover of £36 million or more.
What if we do not comply?
Failure to comply could result in civil proceedings and an injunction requiring the business to comply with reporting requirements. Failure to comply with such an injunction could then result in being found in contempt of court and an unlimited fine.
Aside from the legal sanctions, non-compliance (or inaccurate reporting) is likely to have a significant reputational risk and could severely damage a business's brand. There may be increasing levels of public and industry pressure to not only comply, but to be proactive in the steps taken.
Should you have any questions about the issues raised in this blog post please contact Kirsty Churm or a member of our employment team.
Kirsty Churm
kchurm@kingsleynapley.co.uk
LinkedIn Twitter Facebook Email to a friend
Share insightLinkedIn Twitter Facebook Email to a friend Print
Your friend's name: Your friend's email address: Your name: Comment:
To help avoid automated spam please type the word 'napley' in this box:
We welcome views and opinions about the issues raised in this blog. Should you require specific advice in relation to personal circumstances, please use the form on the contact page.
Your name: Email address: Comment:
Partner expulsion case offers lessons to LLP firms and their partners
Andreas White
The advantages of mediation in resolving family disputes
Connie Atkinson
The disclosure of law firm partnership capital and income in divorce proceedings
Services, Situations and Expertise
The Modern Slavery Act 2015: What is it and how will it impact businesses?

redpajama_set_name: RedPajamaCommonCrawl


text:
Dans la mythologie grecque, Polycaon, fils de Boutès (un des Argonautes, fils de Téléon) et d'Aphrodite, est l'époux d'Évechmé, fille d'Hyllos, petite-fille d'Héraclès.

Citation
Pausanias le mentionne dans sa Description de la Grèce, dans son rapport sur Polycaon, le fondateur éponyme et premier roi de la ville de Messène. Il écrit qu'au cours de ses recherches infructueuses sur les descendants du roi Polycaon et de sa femme Messène, il est tombé sur un autre homme du même nom. Il ne semble pas y avoir d'autre lien au-delà de la similitude des noms.

Notes et références

Bibliographie
  (IV, 2, 1).
 : Polykaon 2). Dans: Wilhelm Heinrich Roscher (Hrsg.): . (en français:Lexique complet de la mythologie grecque et romaine ) Band 3,2, Leipzig 1909, Sp. 2649 - Version digitalisé (allemand).

Mortel de la mythologie grecque
Progéniture d'Aphrodite
Mythologie grecque de Sicile

redpajama_set_name: RedPajamaWikipedia


Our customers and users will occasionally receive newsletters or e-mails with information on products, services, or special offers.
On some occasions, it may also be necessary to send out service-related announcements. In most cases, users may not opt-out of these communications. If you do not wish to receive them, you have the option to deactivate your account. You may deactivate your account by creating a cancellation request ticket in your hosting control panel, by contacting us via live chat or at +91-8129118771.


text:
Insilico Medicine's AI-Driven Platform Pushes The Envelope Of Drug Discovery
By Deborah Borfitz
December 15, 2022 | During a recent virtual unveiling party livestreamed from around the world, Insilico Medicine introduced the latest updates to Pharma.AI, its end-to-end drug discovery platform using generative artificial intelligence to discover new targets, design new molecules, and predict the outcome of clinical trials. Among the highlights were the addition of a knowledge graph to target discovery product PandaOmics and numerous new panels to generative chemistry engine Chemistry42, as well as specifics on the predictive capabilities of the platform's newest inClinico tool.
Up first, from the company's headquarters in Hong Kong, was CEO Alex Zhavoronkov, Ph.D., pointing out Insilico Medicine's global reach with sites in Taipei, Shanghai, Abu Dhabi, Montreal, New York, and San Francisco. The most important feature of Pharma.AI, he says, is that it is validated. To date, 31 internally developed therapeutic programs have been derived from the platform—in addition to a "very large number" of others being run externally by partnering pharmaceutical companies and academic institutions.
Notably, Insilico Medicine is one of a handful of AI-based companies anywhere to make its platform commercially available as a service delivered over the internet or by installing the software on premises, Zhavoronkov says. The company was effectively born at NVIDIA GTC, a global AI conference, in 2014 with a focus on deep learning for drug discovery.
In 2021, after 11 years at GSK and another three with contract research organization Medicilon, Feng Ren, Ph.D., joined Insilico Medicine as chief scientific officer and head of research and development and quickly transitioned into his role as the company's co-CEO. Together, Zhavoronkov says, they began "performing miracles" with the Pharma.AI platform.
NVIDIA founder Jensen Huang made a brief appearance at the event, pointing to the significant role of the microprocessor in accelerating computing and the application of artificial intelligence. "Nowhere is the impact of AI going to be more profound than digital biology and healthcare," he says, where its ability to learn complex patterns and relationships has given researchers a way to "decipher the meaning of DNA, proteins and chemicals, and explore the vast universe of drug discovery at lightning speed."
Large language models that have learned the language of chemistry and biology are at the heart of this revolution, says Huang, and Insilico Medicine is in the lead position. "Insilico identified a potentially new cellular target and treatment for idiopathic pulmonary fibrosis, a chronic lung disease which results in irreversible decline in lung function. They conjured up a novel drug in less than 18 months for pennies on the dollar compared to traditional drug discovery methods."
Alex Aliper, Ph.D., co-founder and head of AI platforms, is one of few people at Insilico Medicine to stay on after the company's decision in 2015 to hedge its bets on generative chemistry, says Zhavoronkov. He has also played a pivotal role in the development of inClinico, "the oldest and most important project" of the company initially trying to predict the phase 2 to phase 3 transitions in the pipeline of big pharmaceutical companies but now finding an audience with hedge funds and banks supporting the development efforts of small and medium-sized biotechs.
Development and continued refinement of the Pharma.AI platform is being driven by the expertise and guidance of a global team of biologists, chemists, developers, and AI experts, according to Aliper. Since the launch of PandaOmics just over two years ago, the company has made multiple advancements to the platform. Among the many applications of Pharma.AI was a recent breakthrough study (Frontiers in Aging Neuroscience, DOI: 10.3389/fnagi.2022.914017) showcasing how PandaOmics identified eight novel targets against amyotrophic lateral sclerosis (ALS).
PandaOmics 3.0 Fleming
Insilico Medicine believes rigorous testing and feedback in real-world settings using real-world data provides the strongest possible validation of any major piece of software, according to Petrina Kamya, Ph.D., head of AI platforms, in explaining the company's rationale for making Pharma.AI available to all. "We are democratizing AI for drug discovery."
PandaOmics, which incorporates an interactive artificial intelligence encyclopedia, is designed for building action-driven hypotheses regarding which targets and corresponding pathways are most implicated in a disease, she says. The leveraged data sources include multiomics data, clinical trial data, and publications.
The tool has been used to identify targets for some of the most challenging diseases, including cancer as well as fibrosis and ALS, says Daniil Polykovskiy, Ph.D., director of IT. Newly launching PandaOmics 3.0 Fleming introduces a transformer-based knowledge graph for comparison and data harmonization, he announces.
The knowledge graph—a network linking genes, diseases, chemical compounds, and biological processes automatically generated by a deep learning model that reads scientific publications—is among the most appealing features of the release, Polykovskiy says. The relationship between each pair of connecting nodes is indicated in a legend by arrows or line segments.
With the cross-dataset comparison feature, PandaOmics can now simultaneously analyze several datasets to enhance the statistical power of the platform, adds Kamya. The data harmonization function allows users to merge multiple datasets together, and the group list of different datasets can be expanded so users can select their sample groups of interest and assign case or control groups accordingly.
More than 60 scoring philosophies have been integrated into the PandaOmics engine, says Zhavoronkov, including ones tied to genetic evidence, genomic expression profiles, metabolomics, protein-protein interaction networks, and specified tissues of interest. "Basically, we made PandaOmics suitable to tackle any problem ... [and] identify a trackable hypothesis."
Therapeutic area leads initially need to know the scoring mechanism is tied to the biological evidence they're used to relying on, to feel comfortable with the validity of the targets coming out of the platform, explains Polykovskiy. Over time, they tend to become more willing to experiment with additional AI scores "to increase the level of novelty while still retaining this [traditional] link."
Sometimes, commercial tractability of a new drug is a key consideration, Polykovskiy says. "We try to make PandaOmics into an MMA [mixed martial arts] fighter for any situation." Soon, PandaOmics could start doing automatic target selection in real time, based on the disease profile on a sample, he adds.
Chemistry42 2.0 LeCun
The latest release of Chemistry42, 2.0 LeCun, is packed with the many features requested by drug hunters to overcome more challenging real-world problems when designing therapeutics, says Polykovskiy. It also has improved ease of use.
Chemistry42 is designed for exploring uncharted chemical space to enable the rapid discovery of novel, lead-like structures, he says. It includes the annotation tools to guide the selection of molecular structure, as well as a module for predicting the ease of synthesizing them.
The product's pocket-ligand interaction score, based on information about different types of interactions, now incorporates fine-tuned parameters for different pocket types, Kamya says. Chemistry42 also includes a predictive model for seven ADME (absorption, distribution, metabolism, and excretion) properties that are important in later stages of drug discovery, and the list will grow with each upcoming release.
Another new feature with 2.0 LeCun, Polykovskiy adds, is a sketcher tool allowing users to modify generated structures that can then be scored and included in the dataset. The latest release also introduces a Golden Cubes module for ligand-based scoring of the kinase selectivity of small molecules to minimize unintended, off-target effects that can lead to severe side effects. "This update is the largest update of the platform so far, and we have an aggressive program [of planned improvements] up ahead."
As Zhavoronkov reports during the post-presentation Q&A, Chemistry42's capabilities extend not only to the tracking of protein-protein interactions. The software can also simulate some of those interactions, which play a key role in predicting the protein function of targets and druggability of molecules.
Chemistry42 can be used for novel short peptides as well as small molecule therapeutics, Kamya later adds.
Predicting Trial Success
The core utility of inClinico 1.0, the latest addition to the Pharma.AI suite, is to the probability that a clinical trial will succeed as it transitions from one stage to the next, says Kamya. Perhaps more importantly, the framework pins down the properties behind a prediction of failure or success using data on investigator and pharma trials.
Many data sources are used to make predictions, says Polykovskiy. These include information from study sites as well as analyses of a drug's mechanism of action based on proprietary and nonproprietary biomedical knowledge, a drug's ADME tox profile, the classification and signaling pathway of the disease, and study eligibility criteria. Deep graph neural networks are among the machine learning models employed.
Key features of inClinico, Kamya says, are "a comprehensive clinical trial database to scout for clinical catalysts that drive growth in pharmaceutical companies ... [and] the opportunity to research clinical trials under a microscope." A proprietary biomedical knowledge graph was utilized to build in a model for estimating the relevance of a drug's mechanism of action for a given disease.
Importantly, inClinico also models the critical part of patients' eligibility criteria relating to a trial's success, says Polykovskiy. Users can know the impact of adding or removing different eligibility criteria on clinical trial outcome scores. "This is just the first step in our journey into clinical trials and we can't wait to see how users will uncover the knowledge and data and reports that we provide."
Insilico Medicine started quietly putting its date-stamped trial outcome predictions on preprint server medRxiv in 2016, Zhavoronkov says, which should ultimately provide support of the effectiveness of the inClinico tool. Predictions have been made on trials in the Novartis and Roche pipelines as well as a few smaller, unrelated biotechs. The company has worked extensively on retrospective validation as well as "quasi-prospective" validation using data that mimics the prospective, time-stamped data.
'Virtual Portfolios'
Additionally, Insilico Medicine has some "virtual portfolios" where it is doing simulated trading for small and medium biotechs involving fixed predictions, he adds. "Our actual first customers for inClinico are hedge funds and banks who are looking to take certain positions in those companies, and we can now intelligently talk to them about the returns they can get ... we have made those predictions and demonstrated prospectively that the algorithm works ... for a certain percentage of the clinical trials."
To be predictable, a trial needs to be on a single, small molecule agent that is a targeted therapeutic, he elaborates. "If it is not targeted, we won't be able to significantly augment the probability of success by making this prediction."
The prospective validation work is happening in partnership with hedge funds as well as big pharma companies, adds Aliper, where inClinico has demonstrated 80% predictive accuracy. "In most therapeutic areas we are outperforming ... the baseline benchmarks available for these sorts of predictions."
For the purely prospective validations, between 100 and 300 clinical trials are typically being used, he says. The overall database contains roughly 180,000 trials of a targeted small molecule.
As Aliper points out during the Q&A, inClinico incorporates profile data on different clinical sites and statistically evaluates how productive or efficient they are in running trials in specific therapeutic areas. The tool also indirectly evaluates historical data points coming from sites in different geographies, to account for differing placebo rates seen with treatments for specific central nervous system disorders.
For clinical oncology, inClinico can use predictive values based on the preclinical toxicology and ADME of a small molecule and, if disclosed by the pharma company, the molecule's structure, says Aliper. The final prediction can include an evaluation of ongoing phase 2 trials and programs in the broader clinical portfolio that may have a higher potential of covering more indications.
Role For Deepfakes
Startup investor Michael Antonov, one of the initial financers of Insilico Medicine, spoke briefly about a few of the technologies being integrated into the workings of the Pharma.AI platform. These include the Nanome platform allowing researchers to work together on molecule development in the same virtual reality space.
"Insilico generates molecules in much the same way that we can get today with deepfakes using AI," Antonov says. But instead of using the technology to create artwork or lifelike images of virtual human beings—or fake news and hoaxes—it is being deployed for the design of new molecules that could potentially treat disease.
Polykovskiy and Steve McCloskey, CEO of Nanome, next provided a first-hand look of the company's platform by putting on their virtual reality headsets to observe and manipulate molecules designed using Chemistry42 and AlphaFold, an AI program for predicting protein structures.
Any protein structure prediction tool could be used with the Pharma.AI platform, says Zhavoronkov, but "ideally they should be using the experimentally derived crystal." As reported in a study on medRxiv, AlphaFold has been used to generate molecules based on a target picked by the PandaOmics engine and "it might be the first AlphaFold-derived molecule that went to drug-like status in a matter of a few weeks."
Documenting The Science
Few people anywhere in the world understand drug discovery and development at even a rudimentary level, points out Zhavoronkov. He has therefore created the first-ever "docuthon" inviting filmmakers to submit a documentary on the costly, complex target-to-clinic journey that has a notoriously low probability of success.
Since the launch of its first antifibrotic program, Insilico Medicine has generated over 130 hours of high-quality film footage shot in locations around the world with different key opinion leaders and drug discovery experts, he says. That footage is being offered to university students working in filmmaking as well as professional documentarians to transform into long- and short-form stories and compete for prizes.
Results will be determined by a panel of experts from the science and documentary worlds and be announced in May 2023. Zhavoronkov says he is hopeful pharmaceutical companies will come up with prizes and perhaps contribute some content.
"One of the main challenges in drug discovery is the fundamental complexity of human biology," says Zhavoronkov. It is still not understood how most drugs currently on the market work and why they cause certain side effects.
"I think the integration of AI-powered robotics with personalized medicine and drug discovery ... is the future," Zhavoronkov says. "We need to get as close to the clinic as possible ... [and] work with real patients."
Technology in general is a "huge market of waste," he says. "We very often think about recycling plastic ... but we are not thinking about recycling biomedical assets ... [and consequently] we are going to see a lot of companies fail and go out of business." The solution, he believes, is to have more players in the biology and chemistry field working collaboratively on answering complex questions and solving diseases.


Born in Mobile, Alabama, Raine Bedsole spent much of her childhood on a farm. Her earliest experiences inspired a lifelong interest in nature's forms and textures and continue to influence themes in her art. She received a Bachelor of Fine Art from Auburn University and a Masters of Fine Art from the San Francisco Art Institute. Returning to the south, Bedsole settled in New Orleans twenty years ago. Recent recognition includes feature footage of her work in the final two Twilight movies and grants for public art from the Joan Mitchell Foundation and the Jefferson Parish Public Art Initiative. Bedsole's work is included in the collections of the New Orleans Museum of Art and the South Carolina Museum of Art, as well as many other public and private collections both nationally and internationally. She is represented by Callan Contemporary in New Orleans and Cumberland Gallery in Nashville.


Bedir Education and Medical Foundation Trust – Malawi will this September start offering tertiary education at its Kanjedza Office Complex in Blantyre.
The Trust's Chairman, Rajab Mkakosya, said the discussions with the National Council for Higher Education (NCHE) on the matter are currently at an advanced stage.
Mkakosya said the team which will be managing the university applied to NCHE in March last year and in May 2017, officials from NCHE visited the university campus for preliminary viewing.
"The tertiary learning institution shall be known as University of Southern Africa. What has remained now is for NCHE to come again for assessment and other things. We are aiming to open by September 2017 if all goes on well. What I can say now is, we are very much prepared for the establishment of the university," he said.
Currently, the trust has Bedir High Schools which has over 600 learners from their three campuses in Blantyre and Lilongwe.
In Malawi, Bedir was founded in the year 2000 but is found in over 160 countries worldwide.
At national state, Malawi should not allow its name dragged through the mud by failing to vet these institutions. Surely, for a national university to carry such a name requires benchmark standards that aligns it to prevailing institutions. International academic reputation of its teachers, administrators and governors must also be at par and recognised by all existing outstanding regional universities. Short of that, this will prove to be a scandal in waiting…what is indeed 'misleading', 'mis-selling', 'misrepresentation', 'fraud', etc.
Hopefully this is not a stepping stone to Southern Africa for advancing clandestine activities.
I just hope that the government is aware of these people. See their curricula, before they start and who will attend their college. Fees will be very high such that ONLY their kind will attend.
Truly,now my beloved country is into carry on education(no child left behind system) Secondly, sad to be surrounded by FLY BY NIGHT OVERSEAS UNIVERSITIES!!!!


I see a lot of pitch decks. Hundreds per year. Almost every one is wrong. Not the startup idea. Not the slide layout. Not the facts per se. But which facts and in what order. Nearly all founders use a structure guaranteed to kill their "conversion rate".
The common flaw stems from a fundamental mismatch in the way our brains create versus consume content. Each engages a different forms of reasoning. I studied this general topic in graduate school under one of the pioneers in the field. I kept up with the literature over the years. And I observed a huge number of pitches. But it still took me years to realize what was happening (repeating the same mistake in my own pitches, of course). Once I did, I couldn't help appreciating the ironic beauty of the situation.
Now, when you build a pitch deck, you have to call on System 2 to develop the content. System 2 is logical so you can't help but try to construct a deductive proof of why someone should invest in your company. That's why most pitches have 3-7 slides setting the stage: here's the problem, here's the size of the problem, here are the current solutions, here are the drawbacks of current solutions, here are the requirements for a better solution…" I refer to this pattern as "In the Beginning".
However, when investors consume that pitch deck, either at Demo Day, in an email, or face-to-face, they call on System 1. For most people in most situations, System 1 is the default. System 2 takes much more energy and operates much more slowly, so it only gets called on when something special happens. Thus, unless your pitch quickly triggers investors' System 1s to recognize your company as a tasty dinner, their System 2s will never wake up and no amount of logic can help you. And then when you use your System 2 to try and improve your pitch, you'll be blind to the problem.
You may be wondering why none of your advisers notice this problem when they reviewed your deck or watched a practice pitch? Here's another ironic bit. People who sincerely want to help with your pitch will expend the effort to use System 2, also blinding them to the lack of System 1 appeal.
Perhaps the worst case of "In the Beginning" I've seen was at a pitch event several years ago with a brutal schedule of 12 fifteen-minute slots. A company in the last hour really started at the beginning: the last generation of technology, quotes on recent shortcomings of that generation, market sizing for the next generation, the founders' previous experience designing this type of system, technical architecture of their new solution, and performance metrics versus the primary incumbent. Logical, but not engaging. Ran over his time and had to rush through the last slide, which was something along the lines of logos for 5 blue chip enterprise customers, an average annual contract value of $60K/year, and current $MRR of $35K/month with 20% MoM growth for 6 months.
WTF? By the time that slide flashed on the screen, 80% of the audience members were fiddling with their cellphones or chatting with their neighbors. Talk about a missed opportunity! Better to just show that last slide, drop the mike, and walk off the stage!
Putting the Ask right after the Boom is key. The Boom triggers alertness and primes for action. Then you've got to give the investors something to pursue. Otherwise, you may lose their interest. Also, telling them about good stuff that will happen in the future right after good stuff that has already happened in the past naturally gives your good-stuff-forecast more credibility. Your investment ask will seem maximally reasonable at this point.
My guess is that most founders' pitch decks already contains 80%+ of this content. It's just in the wrong order and probably too much detail on Context and Why. The big question you probably have is, "What should my Boom be?" Sorry, no blanket advice here. It's situation dependent. But guess what? By simplifying the problem to one question, we've made it amenable to A/B testing. If your Boom isn't obvious, generate 3-7 alternatives and test them against several investors each. Also, if you can't come up with a decent Boom, it might be a signal that you haven't made enough progress to fundraise with much success. So your near term goal becomes to make something Boom-worthy happen.
That's my preliminary diagnosis and treatment. I've given this advice face-to-face to many startups over the past two years and have received a lot of positive feedback. But it's an inherently limited sample. So if you read this post, try out the approach, and learn anything interesting (positive or negative), please drop me a line and let me know! Maybe someday we'll be able to develop a thoroughly researched system of Evidence Based Pitching (EBP).
Regular readers know that I've been trying to bust the "Seed Bubble" myth for years. In my latest analysis, I show that total seed funding in 2014 was nearly identical to that in 2008, not even adjusting for inflation or economic growth. Over the last year, I've encountered several other persistent VC myths that similarly conflict with the data. Given that the seed bubble meme seems to be subsiding (though I dispute talk of a nonexistent bubble "popping"), I thought I'd tilt at some of these other windmills.
OK, so let's look at the data on Early Stage VC dollars and deals from the NVCA.
Hmm. I'm having trouble seeing much of a "crunch". Pretty much up and to the right since 2009. Perhaps a slight valuation correction from 2011 to 2012, but deal volume was still going up. Certainly not a "nuclear winter". Basic version of the myth.. busted.
Now, if you've read my Seed Bubble posts, you know that seed capital has not been "free flowing" over the past few years. But even I was shocked at the stark reality when I overlay VC Early and All Seed funding on the same graph.
For a long time, seed funding was much greater than VC Early funding–twice the size or more. Then VC Early started to creep up. During the period of the supposed "Series A Crunch", VC Early funding was actually shooting up from about 10% less to 60% more than All Seed. In fact, the ratio of VC Early to Seed tied the all time high in 2011 when the crunch supposedly began, then nearly doubled that record by 2014. If there's an imbalance by historical standards, it's the opposite direction!
Obviously, if people managing investment portfolios believe the Series A Crunch or Seed – Series A Imbalance myths, they won't allocate dollars across startup stages correctly. This trap is compounded by a misimpression of the stages themselves. Many investors believe they are allocated to "seed" when in fact they have only fractional exposure to "something VCs call seed but is vastly different from the rest of the seed market." From an allocation perspective, misidentifying your asset classes is a huge danger.
The ratio rose from about 4X in 2002 to 11.5X in 2014, with a peak of 14.5X in 2009. There's clearly a categorical difference between what VCs and angels call seed.
Moreover, if you invest in an early stage VC fund, at best a modest fraction of each dollar actually goes to seed. Most early stage VCs make only a small subset of their initial investments at the round they call seed (unsurprisingly, most of the money goes into the round they call "early"). Moreover, even funds who always make their initial investments at what they call seed generally reserve at least $1 of follow-on for each initial $1. So at absolute best, investors who think they have seed exposure through VCs are getting half their dollars exposed to only the tiny slice of the seed market that accounts for the largest deals.
The share of this very high end of the market dropped precipitously in 2011.
In my opinion, the combination of all these factors means most investors in funds are dramatically under-allocated to over 90% of the seed stage technology startup market–a market that's roughly the same size as the Early Stage VC market.
In 2014, 73% of technology companies acquired never took traditional VC.
So if you believe that that VC Seed gets you exposure to the entire seed stage startup asset class, your portfolio will lack exposure to 3/4 of the liquidity options. By the way, this statistic is up from 2/3 in 2013. And with record amounts of cash on the large technology company balance sheets that make these acquisitions, I could easily see this bias growing further. Imagine a portfolio that lacks exposure to 80% or 90% of the liquidity events in that asset class! This third party data dovetails nicely with my previous calculation of a massive difference in the small M&A vs IPO and large M&A market.
I will stipulate that the VC-backed exits are almost certainly each bigger. But the goal of portfolio allocation is to balance out risks within and across asset classes. The data makes it clear that relying on VC Seed leaves a portfolio exposed to idiosyncratic risks within a particularly narrow exit market. So finding some way to target the other 90% of the seed stage technology startup market seems like prudent portfolio construction.
Of course, there may be different data out there or I may have botched the crunching somehow. So as always, feel free to check the work on my spreadsheet.
From angels, seed stage funding plunged nearly 50%, from $11.2B to $6.0B.
From VCs, seed stage funding dropped about 25%, from $940M to $740M.
But median seed valuations increased 20%, from $2.5M to $3.0M.
The run up of a bubble does not typically include sharp volume drops, but the price rise may indicate something interesting is going on.
See here, here, here, here, here, here, and here for previous posts in this thread. My data sources are the Center for Venture Research for angel data, the NVCA for VC data, and my personal tracking spreadsheet for "super angel" funds not part of the NVCA. I use the HALO report for pricing data.
Out of concern that one possible explanation for individual angel investments dropping is a shift to angel funds, I reconstructed my angel fund tracking spreadsheet from scratch. I was worried that my list of funds was too haphazard. So I pulled a longer, hopefully more complete, list of micro VC firms from CB Insights. I then removed ones that are members of the NVCA, whose investments should already be included in that data. I also went through fund CrunchBase listings and Web sites, filtering out those who invest primarily outside the US or not at the seed stage. I noted the reason for any such exclusions in my latest spreadsheet. This updated source contains 74 funds totaling $3.2B, while my 2013 source contained 29 funds totaling $1.2B—a substantial increase in coverage. There were also 23 funds on the new list for whom I could not find dollar amounts. However, I assume each fund with dollar amounts is completely deployed in the current year so the total should still be a gracious estimate given that even very fast funds actually deploy over two or three years.
The big question is how do you get a pronounced volume drop and a pronounced price increase? First, one of the data sources could have a problem. The obvious candidate here is the CVR angel data because it accounts for most of the total volume I track, the methods aren't documented, and this is its biggest one-year drop ever. According to the latest report, total angel investment volume was only down 2.8%. But the proportion of seed and early investment plummeted from 45% to 25%. I can think of several reasons for a potential measurement inconsistencies here. Note that the 2012 measurement was 35% so it has a lot volatility.
Similarly, the CB Insights pricing data could be the result of an anomaly, as it also experienced its biggest one-year move. In contrast to CB Insights' 20% jump in valuations, the CVR valuation data showed a slight decrease across all stages (but the CVR valuation data is reported inconsistently, so I have avoided using it in the past). Of course, the CB Insights and CVR data collection methods could somehow result in systematically different samples that explain the conflicting data.
There's another explanation that I find tantalizing, if only because it would confirm my hypothesis that founder opportunity cost drives the earliest company valuations. Think of seed stage companies as "supplying" investments and investors "consuming" them. Econ 101 says that a simultaneous decrease in volume and increase in price implies that the supply curve has shifted left. It's like a freeze wiping out a significant fraction of the orange crop. People buy less at higher prices because there's a shortage. But why would this happen now in the seed stage startup market?
I have a guess: the macroeconomy recovered. Unemployment eased from 7.5% in June 2013 to 6.1% in June 2014. Moreover, according to Indeed.com, software engineering salaries jumped 20% in 4Q2013. All of a sudden, the opportunity cost of founding a seed stage startup went up dramatically. That could definitely have an effect on formation rates, which would show up first in the seed stage funding data. Another "supply side" explanation would be that founders simply need less money to advance their ideas past the seed stage. The total number of angel-funded deals actually went up 3.8% according to the CVR report.
At RSCM, we've certainly seen no shortage of quality opportunities at low valuations. If anything, we are deluged. Of course, we purposely focus on smaller deals so we wouldn't expect to see any shortage if lower capital requirements were the underlying cause. Our experience is also consistent with a data collection anomaly. I'd love to get my hands on a good dataset for accelerator program application volume. That might allow us to distinguish between declines in formation rates and capital requirements.
Bottom line: I'm still very skeptical that there is a seed stage bubble.
In nominal terms, we roughly equaled the global peak from 2005.
Seed stage valuations have remained flat since 2011.
Adjusting for the size of the economy and our wealth, the level is still down.
Kind of hard to call this situation a "bubble". But I can live with calling it a "recovery".
Once again, see here, here, here, here, here, and here for previous posts in this thread. My data sources are the Center for Venture Research for angel data, the NVCA for VC data, and my personal tracking spreadsheet for "super angel" funds not part of the NVCA. For super angel investment, I worry most about detecting new chunks of money, not necessarily measuring the "true" level. I use the HALO report for pricing data, which goes back to 2011.
Let's look at prices, as I did in my 1H2013 post. According to the full year 2013 HALO report, the median seed valuation is still $2.5M… just like 2012… and 2011. The 75th percentile valuation is up slightly in 2013, from $3.7M to $4.2M. But the 25th percentile valuation is down a hair from $1.5M to $1.4M. According to the methodology described in the report, this data includes angel group deals before Series A. So what I think is happening is that some companies that might have gone for a VC round in the past are doing a larger angel round instead. If you check out my spreadsheet, you can see that check sizes for what the NVCA calls "seed" have taken another swing up, probably pushing some early startups out of that market. So no obvious pricing pressure.
Moreover, I think the following graphs make a bubble quite unlikely. I've been waiting for years to pull these out. The first one "deflates" the seed investment levels by adjusting for GDP. Thus it measures how seed investment has changed relative to total economic output. The second one deflates seed investment levels by adjusting for the level of the S&P500 index (on July 1 of the given year). Thus it measures how seed investment has changed relative to the total stock of wealth.
Compared to our economic output and total wealth, seed-stage investment seems like it still has a significant amount of headroom. I'm actually pretty sure I could build a darned accurate forecasting model based mostly on the S&P. Given that the index is up roughly 25% from July 2013 to July 2014, my eyeball estimate is that 1H2014's numbers will show us somewhere around a $16B annual rate.
You simply don't have a bubble when volume is down and prices are flat!
To review the history of my seed bubble watch, see here, here, here, here, and here. Recall that I use the Center for Venture Research's angel data, the NVCA's VC data, and my personal list of "super angel" funds not part of the NVCA. The volume calculation methodology is not designed to produce the most accurate estimate of the true number of seed-stage dollars. Rather, I want it maximally sensitive to sudden influxes in new seed money. I use the HALO report for pricing data, which started coming out in 2011.
The story continues to be that traditional VCs have become increasingly irrelevant as their seed dollars have dropped 60% from 2009 to 1H2013 and their share of all seed dollars has plunged from 22% to 7.5%.
Angel's position has gradually eroded from 2011 to 2013, with their share decreasing from 88% to 77%. Super angels and seed funds have gained in share during that time, jumping from 3.0% to 15%. My guess is that trend will continue unless the individual angel pool increases via new platforms like AngelList. In any case, the new breed of funds is not growing fast enough yet to make up for decreases from other sources.
[Edit 8pm: Somehow this paragraph got deleted from my draft.] There also appears to be no pricing pressure at the seed stage. According to the 2012 and 2Q2013 HALO reports, the median seed-stage pre-money valuation has remained $2.5M since 2011. Moreover, the 25th and 75th percentile valuations have actually decreased, making it hard to argue that there is some hidden dynamic masking a buildup in prices.
Interestingly, the HALO report shows a continued drop in California's share of angel group activity. From 21.0% in 2011, to 18.1% in 2012, to 17.3% in 1H2013. I'll take this as continued confirmation that RSCM is right that some of the best values are outside the Bay Area.
It will be interesting to see what the data shows for 2H2013 and 1H2014. With the S&P reaching new highs throughout 4Q2013, institutions should increase their allocations to alternative investment funds and angels should feel like they have more wealth to invest in startups. Assuming the public markets don't experience a sudden drop in the beginning of 2014, of course.


Sequin Champagne Gold Tablecloth 90X156 Inch Sequin Tablecloths is free HD wallpaper. This wallpaper was upload at January 26, 2019 upload by admin in .
Sequin Champagne Gold Tablecloth 90X156 Inch Sequin Tablecloths - We hope that , by posting this Sequin Champagne Gold Tablecloth 90X156 Inch Sequin Tablecloths , we can fulfill your needs of inspiration for designing your home. If you need more ideas to Table Ideas, you can check at our collection right below this post.


text:
A washed-up writer forms an unlikely friendship with a teenager from Long Island. Both are unsure, both are afraid to take firm steps forward, and both are looking for that special friend, that connection, to help guide them into the future.
Actors: Conrad Wolfe,
Conrad Wolfe
Jeff Daniels,
Jeff Daniels 19 February 1955, Athens, Georgia, USA
Hunter Parrish,
Hunter Parrish 13 May 1987, Richmond, Virginia, USA
Michael Heintzman,
Michael Heintzman
Arabella Field,
Arabella Field 5 February 1965, New York City, New York, USA
Eric Gilliland,
Eric Gilliland
Lisa Kudrow,
Lisa Kudrow 30 July 1963, Encino, California, USA
Ryan Reynolds,
Ryan Reynolds 23 October 1976, Vancouver, British Columbia, Canada
Louis Rosario,
Louis Rosario
Brian T. Finney,
Brian T. Finney
Jill Shackner,
Jill Shackner 28 November 1989, Long Island, New York, USA
Director: Michele Mulroney ,
Michele Mulroney
Kieran Mulroney
Kieran Mulroney 24 September 1965, Alexandria, Virginia, USA
Keywords: #Emma Stone #Jeff Daniels #Kieran Mulroney #Michele Mulroney #Paper Man #Ryan Reynolds
DIRECTORS OF "Paper Man"
24 September 1965, Alexandria, Virginia, USA
CREATORS OF "Paper Man"
ACTORS OF "Paper Man"
19 February 1955, Athens, Georgia, USA
Hunter Parrish
13 May 1987, Richmond, Virginia, USA
Arabella Field
5 February 1965, New York City, New York, USA
30 July 1963, Encino, California, USA
23 October 1976, Vancouver, British Columbia, Canada
Jill Shackner
28 November 1989, Long Island, New York, USA
Kieran Culkin
30 September 1982, New York City, New York, USA
5 February 1967, Memphis, Tennessee, USA
Violet O'Neill
6 November 1988, Scottsdale, Arizona, USA
Brian Patrick Russell
HEROES OF "Paper Man"
Claire Dunn
Captain Excellent
CRITICS OF "Paper Man"
One Guy's Opinion
A flimsy character study...as ephemeral and forgettable as a sheet of paper carried off by a gust of wind.
The manipulations characters act out with each other are realistic, even if the overlong and not-nearly-twee-enough comedy built around them isn't, making for a movie whose script may have had more merit than its execution. Or not.
Ignore the story of Paper Heart ... Concentrate instead on the delightful performances.
We're subjected to so much arbitrary quirkiness that the characters' big breakthroughs and breakdowns ring false, accidentally making for some of the film's biggest laughs.
Clever, quirky, and surprisingly affecting, Paper Man is a good reminder of what it takes to finally grow up.
Aided by subtly wounded performances by Daniels and Stone, and a surprisingly affecting comic turn from Reynolds, Paper Man makes up for many of its shortcomings with an abundance of heart.
A big Twinkie stuffed with indie-film cliches and glazed with chiming emo guitars.
CinemaBlend.com
Primarily charming and peculiarly funny, but dribbles on during the final portion of the film.
Too introverted and gimmicky for its own good.
We don't even get a real sense of what kind of writer Richard is, or even if he's any good. It does make a difference, after all, if the novel he can't write is worth writing. A bigger question: Was "Paper Man" worth making?
It's tough to watch such a glum progression through the familiar, with bits of quirk dissected and bandied about.
What we have in this film is a whole lot of nothing, and the little that's there is irritating.
GALLERY OF "Paper Man"
Subscribe Subscribe to Fmovies mailing list to receive updates


Over the years we have built up an enviable client list, and conducted varied research projects over our four key sectors. These have included both qualitative and quantitative research studies, conducted worldwide in over 55 languages.
Below is just a handful of examples of our work. For further information, or to discuss your own research project, don't hesitate to get in touch with our expert team.


Treat yourself to a gourmet evening in a purely mountain setting with a magnificent panorama!
Chalet de la Marine offers a choice of a Savoyard menu with delectable local specialties or a traditional menu with tasty recipes worthy of grandma's cooking.
These evening gathering are held every Wednesday or by reservation for groups of 40 or more.


Christian Kraler and Maiko Stuerz (University of Innsbruck) from the European Doctorate in Teacher Education (EDiTE) and Irma Eloff (University of Pretoria) from the African Doctoral Network in Teacher Education (DNTEA) presented a paper on strategies, ideas and findings on international PhD programs in Teacher Education at the WERA 2018 conference. The World Education Research Association conference "Reimaging Worldwide Education Research" took place between the 3rd and 5th of August in Cape Town, South Africa.
The presentation "International Doctorate in Teacher education. Lessons learned and considerations for the future" was an outcome of an ongoing and expanding collaboration between Prof Dr Irma Eloff from the University of Pretoria and the Department of Teacher Education and School Research, University of Innsbruck. Prof Eloff visited Innsbruck in May 2017 and was guest professor at the department during summer term 2018. Irma Eloff is Deputy-chair of the Council of the SA Akademie vir Wetenskap en Kuns (South African Academy of Arts & Sciences). She serves on the UNESCO International Task Team for Teacher Education and is founding member and lead facilitator of the continental African Deans of Education Forum (ADEF) and. The ADEF is currently planning the African Doctoral Network in Teacher Education (DNTEA). Its aim is to generate knowledge in teacher education to support Global Goal #4 (SDG4) and to leverage the potential of doctoral networks for indigenous knowledge creation in Africa, by African scholars. The DNTEA will have a strong focus in and on Africa, whilst taking a globally connected approach.
At the WERA Conference Prof Eloff, Christian Kraler and Maiko Stuerz presented ideas based upon (1) the ongoing research collaboration between Pretoria and Innsbruck and (2) experiences drawn from EDiTE and the planned DNTEA project. The need of international continental based PhD programs in teacher education derives from the idea to see school as a societal subsystem that mirrors society in its substantial structure in a self-similar way. In a world of globalisation, acceleration, economization, diversification, pluralisation and strong movements of political ideas, people and goods ""The importance of the role of the teacher as an agent of change, promoting understanding and tolerance, has never been more obvious than today. It is likely to become even more critical in the twenty-first century. The need for change […] places enormous responsibilities on teachers." (Delores 1998, p. 141f). PhD-programs like EDiTE and DNTEA explore and research these issues with a strong emphasis on dissemination and the implementation of ideas.
(Importance of a theoretical framework) International PhD programs in teacher education with focus on fundamental principles facilitate frameworks that foster collaboration between different learning, teaching and research cultures (eg. in EDiTE: Transformative Teacher Learning for Better Student Learning within an Emerging European Context or in DNTEA: UN Sustainable Development Goal 4: Ensure inclusive and equitable quality education and promote lifelong learning opportunities for all).
Despite of mostly short term funding policies, the alignment with long-term continental strategies support sustainability (human resources, curricula, implementation of ideas) and the building of institutional networks (that might change after a first project phase).
International programs in Teacher Education face multiple (partially contradictory) national and institutional regulations (especially because of usually extensive and complex national bureaucracy-driven regulations in the field of formal education).
Even within an international and inter-institutional program, sometimes problems (legal, technical, administrative issues) are more likely to be solved bilaterally than with a project wide approach.
The value of institutionalised, well-prepared and planned direct personal interaction of all project members can never be underestimated.
Supervision and Co-supervision shared between supervisors from different countries and institutions might lead to challenges but foster mutual understanding and enrich the PhD candidates' academic experiences in the end.
Content or subgroup specific social media and platforms foster continuity in communication and the constant exchange of ideas. They are an important pillar of self-organisation.
A feasible period for an international PhD would be 4-6 years (including planning process).
One crucial factor for success and sustainable effects is creating strong networks on different levels of an international PhD project (project network, PhD-students network, supervisor-network, local project management network) supported by adequate software solutions. Keeping them alive is worth the effort and needs systematic planning.
At least some aspects of the project should be implemented funding independent to ensure continuity in times without project specific financial support.
A content wise focused program with an overall goal (compatible with strategies of international organizations or institutions) lifts conceptualizations of teacher education and teacher identities beyond the national level.
One of the most motivating aspects to experience was that the collaboration between members from EDiTE and DNTEA serves as a problem solving machine and idea generator. The different cultural and structural backgrounds of the two programs enrich the discussion and give hints to future directions.


The XTX50/DS4 is the same as the XTX50 mentioned prior in terms of performance but uses a different first stage.
Members earn 900 Points on this purchase!
The XTX50/DS4 is the same as the XTX50 mentioned prior in terms of performance but uses a different first stage. The DS4 first stage lacks the rotating turret found on the XTX50 model and offers one HP port.


Jerry Kahrs, aged 77 years of Moose Jaw, SK passed away on Wednesday, July 31st, 2018. He was predeceased by his wife, Erna "Ernie" (Schatz); parents, Henry and Margaret Kahrs; and sister, Helen Hume. Jerry is survived by and will be dearly missed by his nephew, Alex Hume; family members: Emil and Kathy Schatz, Lorne Schatz, Edith Volk, Lilly and Alfred Keller; as well as numerous nieces and nephews. Born and raised in Grenfell, SK on August 19th, 1940, Jerry married the love of his life Erna in their hometown in 1961. Together they settled their lives in Moose Jaw in 1972. The adventurous couple shared a love of travelling, dancing, and their passion of fastball and bowling. Those closest to him will always remember his quick smile and generous heart. Jerry worked various jobs throughout his life, ending his working career retiring from Safeway after 25+ years. Some of Jerry's favourite pastimes included watching baseball and his favourite team the L.A. Dodgers, and curling. Together, Jerry and Ernie spent watching his "adopted" grandchildren grow-up. They supported them in all their endeavours. If there was a sport, play, graduation, or parade, Jerry and Ernie were always there. Jerry will be sadly missed by his adopted family, The Cox's: Greg, Sheila, Steven (Larissa), Molly, Eric, and "Papa's" little girl, Aubrey. In keeping with Jerry's wishes, a private service will be held.


I completely disagree with the common belief that people who are emotional and love deeply are 'needy', weak, and look for support and strength from another. On the contrary, I think that it takes a special kind of simplicity and guts to open up to loving: you have to have the courage to let yourself be completely vulnerable and acknowledge your neediness – truths that are anathema to the independent, free-spirited, strong-willed, intellect-driven individual. Not so much of a problem for someone like me though. I, for one, revel in the strength of another person, not because I am weak or need support, but because I enjoy its presence. It's awfully attractive.
The truth is that we all have our own unique definitions of what love is and our own notions of how to love. It seems to me then that everyone experiences love in different ways. As one of the rationalists spoke about keeping things 'real' and explained how she sensibly decided – after duly weighing the pros and cons (and there was a long list of practical stuff full of logical reasons) – to end her relationship and move on, there were exclamations of dismay, commiseration, agreement and admiration from the others depending on where each one was on the rationalist-romantic spectrum. My question was, 'But did that mean you managed to fall out of love as well?' I did not get an answer to that. She went quiet. I think she had not considered the question at all. It is interesting to note that even when our minds work furiously to deny the existence of love, we are, in fact, acknowledging its presence. I believe it is a waste of time and energy to deny love. Of course, you may decide not do anything about its presence, and you may have the capacity to suppress or ignore the feelings it generates, but you cannot dismiss its existence. It will remain with you like a thorn in the side or envelope you like a fragrance. Depends on which side of the fence you want to be on.
Why would anyone label romantics as weak? From a romantic's point of view, when you love, you have to be willing to suffer the ache of desiring possession, while having to relinquish control. You have to be ready to risk rejection, while being aware that you would continue to love helplessly despite the eventuality. Or, you have to have a heart that is large enough to love without being loved back in the same way or with a matching intensity, or perhaps have no reciprocation at all. What requires even more courage then is to acknowledge the love nonetheless and express it simply to honour its existence; to make up your own song and dance to it all the same just for the enjoyment and pleasure of having felt it at all. You must also have the capacity to fully immerse yourself in the thrilling experience of loving with abandon, while continually dealing with the fear of loss. Is there anything here that smacks of weakness? I think one has to be scarily brave to be that way.
Who says emotional people are weak? Can you be weak if you have the nerve to suffer the chaos that are emotions and admit that there is no place for logic in magic; a difficult prospect to digest when you make the mistake of using your intellect where you should be using your heart. Sometimes the heart knows what the mind cannot rationalise and the intellect cannot explain. There is a realm beyond logic. You have to be willing to live with the roller coaster of feelings that love puts you through: your spirit surges, ebbs, bubbles, blazes, flows, wanes, and surges again – all in a span of minutes.
For me, love is danger and safety. It is a see-saw of contradictions that drags us through hell while we experience heaven. It is delight standing on the shaky foundation of dismay. It is confusion and clarity, certainty and doubt, delusion and truth, self-deception and actuality, rapture and misery. Within that whirlpool is the possibility for a unique kind of happiness that is yours for the taking if you have the courage.
Indeed, love appears to be the ultimate challenge in that it brings us to a place where we have to face our most dreaded fears, each individual dealing with their own unique set of things. I sometimes think that it is a most peculiar feature of humans to be compelled to the condition of loving. Why do we so desire to subject ourselves to a continuous and gnawing restlessness? My reason is that it is inextricably linked with the deepest sense of contentment and peace.
Why do we put ourselves in a state of continual agitation with the ache of longing while not being clear what it is that we long for? My thought is that what we long for is possibly the intimacy of possession, while also wishing for a little psychological distance that gives us breathing space to explore at leisure the incredible mystery of another's mind. You just cannot ever say, 'There! I know all that is in there.' And because you can never fathom it, you want to possess it and know it. It's adventure! For a romantic, love goes much beyond outward actions; there is always an element of being blissfully immersed in some way. There is a striving to merge and unite, while yet trying to safeguard the individual identity. The romantic will see neither contradiction, nor dilemma in achieving that! You just dissolve and yet exist, like the salt water of the ocean: you are the flavour that cannot be seen; only felt, but you are integral to defining the nature of the whole.
I find it rather wonderful to ponder on the fact that it is human nature to want to be elevated to a higher plane of consciousness; to strive towards we often know not what: maybe something divine; like the essence of what the Sufis captured so well. Love, that touches all humans in some way, gives us the means to rise higher. We do not 'become' divine when we love, we simply find and unlock the divinity in ourselves that is already existent.
Through all of the contradictory feelings that we experience, love brings us to a state of exaltation. It is an interesting thought that loving someone is a matter of self-interest: it is a journey of self-discovery. It is amusing that love challenges the sense of order and structure that define the intellect, and laughs in its face reveling in the entropy of emotions it causes.
Perhaps this is the difference between rationalists and romantics: Romantics recognise the need for love and actively seek, find and revel in the experience of loving. On the other hand, rationalists probably need to put it all in context, in neat little packets of reason and logic before they decide whether to let themselves experience it depending on whether or not it will impinge on or disturb their routine lives.
The question remains: heart over intellect or the other way round? There is no right or wrong. It is about how we process our own unique realities.
Only, I don't understand why it has become fashionable to consider being emotional a weakness.
Digressing from the topic of love and looking from a broader perspective, this same idea could be the reason for the eternal conflict between cynicism and hope. There is vulnerability and emotion in the hopeful. And then there are rationalists who try to place it in "neat packets", as you said. Hope, indeed is considered weak today.
Thank you. I do believe that hope is a human instinct central to all our actions and endeavours.


Good morning folks. Here is an updated look at the visible solar disk on Sunday. Solar activity declined to low levels with only C-Class flares detected. Region 2159 produced a C7.5 flare at 02:04 UTC and was associated with a non Earth directed coronal mass ejection (CME). A number of low level C-Flares are being observed this morning around region 2157. Both regions 2157 and 2158 continue to undergo changes in formation and magnetic complexity as they rotate into a better Earth facing position. An isolated moderate to strong solar flare will remain a possibility during the next 24-48 hours.
A weak shock passage observed on Saturday did not lead to a noteworthy increase in geomagnetic activity. Geomagnetic storming is unlikely.
Also included in today's report is today in history for September 7th.


It gently conceals dark circles and minor blemishes.
It is also used as a complexion corrector to hide imperfections and redness.
Apply a small quantity then dab with the finger, stretching the product progressively towards the temples and the cheeks.
A friend to minor imperfections!


Want to walk over a rickety-feeling swinging bridge, above a roaring torrent of water that just crashed over a fierce waterfall? Of course you do! And you can, at Kootenai Falls and the Swinging Bridge, west of Libby, Montana. It's free, and it requires just a short hike through the woods.
After spending the night in Libby, I decided to backtrack slightly, and drive back up US 2 to something I had missed on the way into town, the previous night. How could anyone pass up a scary swinging bridge, and the biggest un-dammed waterfall in Montana? With just one stop, you get to see both.
… but the staircase on the far side is terrifying — I think it worried me more than the swinging bridge! A spiral staircase, constructed of an open-grate metal, takes you down to the ground. It's at least 3 stories high, and the metal seems to give-way under your feet. Not to mention, you can see straight down, too!
Once you're safely on the ground, you have a choice to make.
The waterfall is to the right, and the swinging bridge is to the left. Both are roughly the same distance away, just a short 5-10 minute walk.
I decided to go to the bridge first, because, well, swinging bridges are cool. And while this one is obviously well-constructed, its height and length were enough to cause me to hesitate for a moment.
… and the view looking straight down.
I decided to sit down for a minute and collect my thoughts.
The bridge does sway, and bounce, and if you jump on it, it will bounce a lot, so don't do that.
… and upstream, to the east. Kootenai Falls is just around the bend, up ahead.
If you're a Meryl Streep or Kevin Bacon fan, there's a good chance this bridge looks familiar. The movie, The River Wild, was filmed here.
These days, the bridge is used by the forest service, as well as kayakers who want to access something called the "SuperHole": a patch of intense water, directly underneath Kootenai Falls. I'd try to describe it further, but since I'm not a kayaker, I'd probably sound like an idiot. I'm quite sure, though, that something called a "SuperHole" directly under a waterfall is probably a heck of a lot scarier than a swinging bridge.
Once you've explored the area on the far side of the bridge, hike back over to the south side, and retrace your steps back to the split in the trail, then continue on to the waterfall.
I'm not sure if Kootenai Falls is always this powerful, this intimidating, but it certainly was an incredible sight in late June, 2014. Perhaps the snow-melt had increased the river's flow — or maybe not, since the Kootenai River is dammed 23 miles upstream from here, at the Libby Dam. Standing at the edge of the water, the sound was deafening.
The river loses 300 feet of elevation in just a few hundred yards, although not all at once.
You're free to walk along the edge of the river, and get as close to the water as you think is safe. Be sure to check out this unusual (presumably natural) feature, a dam that holds back the river. As you walk here, the river is well above your head, on the other side of that rock wall.
This is the view looking west, from the top of the falls.
You'll find plenty of places to view the falls, and thanks to the roar of the river, it won't matter if other people are nearby — you'll feel swallowed-up by this place, until of course, you have to turn around and return to your car (and climb those metal stairs again!).
You get to enjoy two great attractions in one stop, with just a short hike. Even if you don't feel safe crossing the bridge, it's still fun to see.
The swinging bridge and waterfall is located along the Kootenai River, 11 miles west of Libby, Montana. From Libby, take US 2 west. After 11 miles, watch for a wide parking area on the north side (the river side) of the road. There is a sign at the parking area, but there is no sign warning you before you get there.


text:
Raiders' Las Vegas stadium bridge could alter I-15 plans
Plans for a pedestrian bridge connecting the new Raiders NFL stadium in Las Vegas to the city's iconic Strip could force the Nevada DOT to redesign a planned $200 million reconstruction project planned for that same area, according to the Las Vegas Sun.
The department currently plans to rebuild Interstate 15 at the Tropicana Avenue interchange near the T-Mobile Arena to accommodate the significant increase in pedestrian and vehicular traffic since the highway was originally constructed in the 1960s. Plans for two high-occupancy vehicle ramps planned for nearby overpasses — Hacienda Avenue and Harmon Avenue — were in the works before the Raiders decided to relocate to Las Vegas, but Nevada DOT director Rudy Malfabon told the Sun that they might have to be built elsewhere.
For now, the required environmental study for the interchange portion of the work will continue, and state transportation officials are working with the Raiders, casino owners and others impacted by the project to figure out the best course of action for the HOV lanes. Once the project is complete and restrictive bridge supports have been altered, Malfabon said that the department could look at adding additional lanes to some sections of I-15.
The I-15 Tropicana interchange project and HOV lanes are just a small portion of what the Nevada DOT has planned for the area around the stadium. Last year, when the Raiders deal was still in the "maybe" stage, department officials and Nevada Gov. Brian Sandoval said the state would spend about $900 million on a series of improvement near the venue's site whether or not the team decided to move to Las Vegas. At the time, officials said the work could include new highway interchanges, carpool lanes and direct access ramps.
The department pointed out that the work had been planned for some time and if the Raiders did move forward with their stadium that it would simply re-prioritize the work to better accommodate the increased traffic in the area. However, the massive overhaul isn't likely to receive funding until 2020 or 2021, which means work will not likely begin until after the Raiders are already playing in Las Vegas.
One event that probably has given the team and its backers some measure of relief is that former Republican candidate for governor Dan Schwartz, also the current state treasurer and vocal critic of state lawmakers' decision to help pay for the stadium, lost in the party's June primary. Schwartz said that if he were to win the governor's race, he would do his best to block funding for road improvements around the stadium unless the team returned the $750 million that the state pledged.
Pedestrian bridge for stadium prompts new look at I-15 improvement project Las Vegas Sun
Filed Under: Infrastructure
PeopleImages via Getty Images
Call for entries: Construction's top female leaders
Construction Dive is seeking nominations through Feb. 11 to highlight the industry's leading women in all sectors.
A roundup of articles about issues affecting the workforce.
TSI Corporations Appoints Thomas Cornellier as CEO From TSI Corporations
TSI Corporations Appoints Thomas Cornellier as CEO
From TSI Corporations
Latest in Infrastructure
White House urges states to name infrastructure coordinators
By Zachary Phillips
I-40 bridge shutdown 'could have been prevented' with the right technology
By Robyn Griggs Lawrence


text:
from zerver.lib.test_classes import WebhookTestCase
from zerver.lib.users import get_api_key

class DropboxHookTests(WebhookTestCase):
    STREAM_NAME = 'test'
    URL_TEMPLATE = "/api/v1/external/dropbox?&api_key={api_key}&stream={stream}"
    FIXTURE_DIR_NAME = 'dropbox'

    def test_file_updated(self) -> None:
        expected_topic = "Dropbox"
        expected_message = "File has been updated on Dropbox!"

        self.send_and_test_stream_message('file_updated', expected_topic, expected_message,
                                          content_type="application/x-www-form-urlencoded")

    def get_body(self, fixture_name: str) -> str:
        return self.webhook_fixture_data("dropbox", fixture_name, file_type="json")

    def test_verification_request(self) -> None:
        self.subscribe(self.test_user, self.STREAM_NAME)
        get_params = {'stream_name': self.STREAM_NAME,
                      'api_key': get_api_key(self.test_user)}
        result = self.client_get(self.url, get_params)
        self.assert_json_error(result, "Missing 'challenge' argument", 400)

        get_params['challenge'] = '9B2SVL4orbt5DxLMqJHI6pOTipTqingt2YFMIO0g06E'
        result = self.client_get(self.url, get_params)

        self.assertEqual(result.status_code, 200)
        self.assertEqual(result["Content-Type"], "text/plain; charset=UTF-8")
        self.assert_in_response('9B2SVL4orbt5DxLMqJHI6pOTipTqingt2YFMIO0g06E', result)