<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Rami Sayar's RSS Feed]]></title><description><![CDATA[AI × UX Engineering Manager at Microsoft. 🍁 MTL ✈️ NYC ✈️ SEA]]></description><link>https://ramisayar.com</link><generator>GatsbyJS</generator><lastBuildDate>Sun, 21 Jun 2026 07:57:11 GMT</lastBuildDate><item><title><![CDATA[Montréal × Seattle: AI Community Connect]]></title><description><![CDATA[Reflections on my participation in 'Montréal × Seattle: AI Community Connect', a panel during Seattle AI Week exploring how two leading AI ecosystems can collaborate and innovate together.]]></description><link>https://ramisayar.comseattle-ai-week-panel</link><guid isPermaLink="false">https://ramisayar.comseattle-ai-week-panel</guid><pubDate>Wed, 29 Oct 2025 00:00:00 GMT</pubDate><content:encoded>
![Seattle AI Week Panel Poster](./ai-week-panel-poster.jpeg)

I had the pleasure of participating in the &apos;Montréal × Seattle: AI Community Connect&apos; panel, a discussion that brought together voices from two of North America’s most vibrant AI ecosystems to explore how we can collaborate, build bridges, and accelerate innovation together.

The topic was close to my heart: connecting Montréal’s startup excellence with West Coast tech to unlock new opportunities in artificial intelligence.

The event took place on October 29 in Seattle, and it was a fantastic opportunity for founders, researchers, and ecosystem builders to come together and exchange ideas about the future of AI and cross-border collaboration.

I was joined on the panel by:

* Carl Chouinard – CEO, Vooban Labs
* Josh Jensen – Co-Founder &amp; CEO, Inspectify
* Rheia Khalaf – Director of Partnerships, Mila – Quebec AI Institute

Together, we discussed how Montréal’s research-driven AI culture and Seattle’s product-focused innovation can complement one another to foster new partnerships, startups, and research collaborations across borders.

![Photo from the panel](./PXL_20251030_002245878.jpg)
![Photo from the panel](./PXL_20251030_003850147.jpg)
</content:encoded></item><item><title><![CDATA[Deep search on Bing]]></title><description><![CDATA[Introducing Deep search on Bing. Deep search leverages GPT-4 to provide more comprehensive and detailed answers to complex search queries.]]></description><link>https://ramisayar.combing-deepsearch</link><guid isPermaLink="false">https://ramisayar.combing-deepsearch</guid><pubDate>Thu, 14 Dec 2023 00:00:00 GMT</pubDate><content:encoded>
I am thrilled to [introduce](https://www.linkedin.com/posts/ramisayar_introducing-deep-search-activity-7137851137654722560-Auw0?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAFc-0IBIeShWjvXlGjwkHp7-W7abNDXAy8) Deep search on [Bing](https://bing.com/search?q=deep+search) ([Official Blog Post](https://blogs.bing.com/search-quality-insights/december-2023/Introducing-Deep-Search)), a groundbreaking feature that represents a significant milestone in my career. Deep search enhances Bing&apos;s ability to provide relevant and comprehensive answers to complex search queries. Deep search uses GPT-4 to expand search queries into more detailed descriptions, helping Bing understand user intent and expectations better. It then goes deeper into the web to find results that might not appear in typical searches, ranking them based on relevance and quality.

The development of Deep search was a collaborative effort by my talented team in partnership with over six different teams across Bing. I am incredibly grateful for the dedication and hard work of multiple teams across Bing that brought this vision to life. Deep search is a testament to the amazing technology we have had the privilege to work with, and the complex challenges we have overcome. This achievement would not have been possible without the collective efforts of everyone involved and the unwavering support of our leadership team.

![Deep search in Bing.com](./Deep-Search-2.gif)

## Official Blog Posts

* [Bing Blog](https://blogs.bing.com/search-quality-insights/december-2023/Introducing-Deep-Search)
* [Microsoft Blog](https://blogs.microsoft.com/blog/2023/12/05/celebrating-the-first-year-of-copilot-with-significant-new-innovations/)

## Media Posts (December 2023)

* [TechCrunch](https://techcrunch.com/2023/12/05/microsoft-bings-deep-search-offers-more-comprehensive-answers-complex-search-queries-gpt-4/)
* [Windows Central](https://www.windowscentral.com/software-apps/copliot-first-anniversary-new-deep-search-gpt-4-turbo)
* [MSPowerUser](https://mspoweruser.com/microsoft-bing-deep-search-relevant-answers/)
* [The Verge](https://www.theverge.com/2023/12/5/23989052/microsoft-copilot-gpt-4-turbo-openai-models-code-interpreter-feature)
* [Search Engine Land](https://searchengineland.com/microsoft-bing-deep-search-435446)

## Media Posts (February 2024)

* [Search Engine Land](https://searchengineland.com/bing-deep-search-is-rolling-out-to-more-users-437190)
</content:encoded></item><item><title><![CDATA[Whirlwind to Wisdom: Product Lessons from Integrating LLMs & GPT-4 into Bing]]></title><description><![CDATA[Thrilled to share product insights learned from the whirlwind integration of LLMs & GPT-4 into Bing at TechAide Product4Good in Montreal benefitting Centraide (United Way).]]></description><link>https://ramisayar.comtechaide-product4good-2023</link><guid isPermaLink="false">https://ramisayar.comtechaide-product4good-2023</guid><pubDate>Wed, 18 Oct 2023 00:00:00 GMT</pubDate><content:encoded>
import { TechAideConference } from &quot;../../../src/components/PhotoStream&quot;

I had the opportunity to present at [TechAide Product4Good 2023](https://www.techaidemontreal.org/en/product4good/). It was a fantastic conference with insightful speakers, amazing staff, and excellent community. The conference raised $47,000 for Centraide (United Way).

&lt;TechAideConference /&gt;

## [Talk Description] Whirlwind to Wisdom: Product Lessons from Integrating GPT-4 into Bing

In this talk, Rami will share insights from his hands-on experience of the whirlwind integration of OpenAI&apos;s GPT-4 into Bing. This session aims to unravel the playbook for successfully navigating the complexities of revolutionary technologies like Large Language Models (LLMs) for professionals across the spectrum of product management, entrepreneurship, and innovation.

First on the agenda is the concept of &quot;play&quot; in a professional context. Far from frivolous, Rami argues that play is essential for deeply understanding new technologies. He will share real-world examples of how this mindset helped his team unlock novel and valuable applications for GPT-4, including how it led to Bing Chat and the most significant single-step improvement in search relevance of the past five years.

Rami will also delve into team dynamics, explicitly focusing on optimally structuring teams to harness groundbreaking technologies while maintaining operational secrecy. Attendees will gain practical tips on assembling cross-functional teams primed for creativity and impact. Navigating the challenges of fostering innovation within a large, established organization is no small feat. Rami will also share his proven strategies that have created an organizational culture conducive to the free flow of ideas.

Concluding the session, the importance of speed in today&apos;s fast-paced technological landscape will be addressed. Rami will offer actionable insights into how even large, established companies maintain agility, make rapid decisions, and stay ahead of the curve without compromising quality.

This talk promises to equip attendees with the tools and perspectives needed to manage revolutionary technologies effectively, regardless of their organizational setting.

## About Product4Good

1st Montreal Product Conference. Product4Good brings together product management professionals, entrepreneurs, innovators, and thought leaders to share their experiences and insights. Learn from a diverse range of perspectives on the future of product management, all under the focus of making a difference and giving back to the Greater Montreal community. All proceeds from the conference will go to Centraide (United Way) to combat social exclusion and poverty through innovative initiatives and corporate campaigns.

## Social Media Posts (LinkedIn)

[Thank you Techaide for hosting hashtag#Product4Good in Montreal.](https://www.linkedin.com/feed/update/urn:li:activity:7120742983187980289/)

[I was truly amazed by the quality of the speeches and the overall event organization, cannot wait for the next one!](https://www.linkedin.com/posts/michelferry_thanks-a-lot-to-techaide-for-organizing-this-activity-7120581559543283712-Xog-/)

[Live from hashtag#Product4Good with Rami S, AI Engineering Manager on Microsoft Bing. Very wise words and great start for the first Montreal Product Conference!](https://www.linkedin.com/posts/vincentpavero_product4good-product-conference-activity-7120412361613537280-7S8h/)

[We also had the pleasure of hearing from some incredible speakers, including Sylvain Carle announcing Product Camp as well as Nancy Douyon and Rami S.](https://www.linkedin.com/posts/techaidemtl_product4good-productcommunity-montreal-activity-7120421350522904576-IIz4/)

[We&apos;ve already raised $46,000! Thank you to everyone who has contributed. Your generosity is making a significant impact. 🙏](https://www.linkedin.com/posts/techaidemtl_product4good-productcommunity-montreal-activity-7120495572221923328-jj1T/)
</content:encoded></item><item><title><![CDATA[Visual Stories on Bing]]></title><description><![CDATA[Thrilled to share Bing Stories, allowing users to visually explore and interact with results in a more engaging way.]]></description><link>https://ramisayar.combing-stories</link><guid isPermaLink="false">https://ramisayar.combing-stories</guid><pubDate>Tue, 21 Mar 2023 00:00:00 GMT</pubDate><content:encoded>
import Vimeo from &apos;@u-wave/react-vimeo&apos;;

&lt;Vimeo video=&quot;810197317&quot; autoplay loop background muted responsive dnt controls={false} showPortrait={false} showTitle={false}/&gt;

I can’t believe it! I am so proud to share Stories on [Bing](https://bing.com/search?q=cubism) ([Official Blog Post](https://blogs.microsoft.com/blog/2023/03/21/create-images-with-your-words-bing-image-creator-comes-to-the-new-bing/))!  Funnily enough, my career has gone full circle. Ten years ago, my first big project was a system that crowdsourced stories at scale. I used SMS to crowdsource story creation one sentence at a time with a few constraints like voting. Besides the talk I did at [TEDxHEC in Montreal](/tedxhec), not much of the project exists anymore. It’s crazy to think that after a decade, I am back to building stories but with machine learning trained on the knowledge of the internet as part of the new Bing.

My team was heavily involved in the [new Bing release](https://blogs.microsoft.com/blog/2023/02/07/reinventing-search-with-a-new-ai-powered-microsoft-bing-and-edge-your-copilot-for-the-web/). Using the latest generative AI technologies and to support the demand for more visual search experiences, we built Stories. [Stories](https://blogs.microsoft.com/blog/2023/03/21/create-images-with-your-words-bing-image-creator-comes-to-the-new-bing/) provide a more engaging way to search and interact with content, offering images and short videos. We also built technology to pair images with the relevant content to better explain concepts and ideas. Our goal is to deliver more immersive experiences in Bing and Edge that make finding answers and exploring the web more interesting, useful and fun.

This project took a lot of hard work across multiple teams at Bing to make this a reality. It uses some of the most incredible technology I have ever worked with. We solved many complex problems that were extremely difficult to solve even a year ago. I am incredibly proud of my UX engineering team for building a scalable and beautiful experience that works across browsers, platforms &amp; devices and supports many kinds of content. This experience would not have been possible without the efforts of so many teams across Bing and without the support of our leadership team.

If you ask me what stories I love, I will say it’s the stories about art. [Welsh Corgis](https://www.bing.com/search?q=welsh+corgi) and [Cubism](https://bing.com/search?q=cubism) are my favorites. Give it a try today!

![Visual Stories in Bing.com](./BingStories_16x9_EN-GB.jpg)

P.S. If you’re curious about my project from 10 years ago. I was young at the time, so please excuse the baby face. And I had little design skills, so please forgive the Comic Sans. You can watch the [video](/tedxhec).

P.S.S. My fiancé is not surprised by any of this work and says it is on brand. She calls me “Mr. Show and Tell” and I guess she’s not wrong.

## Official Product Video

`youtube: https://www.youtube.com/watch?v=wI_rIJiyH3I&amp;t=32`

## Media Coverage (03/24/2023-03/26/2023)

* [The Verge: Bing’s showing ‘AI-generated stories’ in some search results](https://www.theverge.com/2023/3/24/23655312/bing-ai-generated-stories-knowledge-cards)
* [Times of India: Microsoft Bing brings AI-generated visual stories, knowledge cards in search](https://timesofindia.indiatimes.com/gadgets-news/microsoft-bing-brings-ai-generated-visual-stories-knowledge-cards-in-search/articleshow/98998643.cms)
* [Business Insider India: Microsoft adds &apos;AI-generated stories&apos; to its Bing search](https://www.businessinsider.in/tech/news/microsoft-adds-ai-generated-stories-to-its-bing-search/articleshow/99008417.cms)

## Media Coverage (03/21/2023)

* [TechCrunch: Microsoft brings OpenAI’s DALL-E image creator to the new Bing](https://techcrunch.com/2023/03/21/microsoft-brings-openais-dall-e-image-creator-to-the-new-bing/)
* [The Verge: Microsoft’s Bing chatbot now lets you create images via OpenAI’s DALL-E](https://www.theverge.com/2023/3/21/23649943/microsoft-bing-openai-dall-e-image-creator-ai)
* [Reuters: Microsoft launches image-creation tool on Bing powered by OpenAI&apos;s tech](https://www.reuters.com/technology/microsoft-rolls-out-image-creator-bing-powered-by-openais-technology-2023-03-21/)
* [OnMSFT: The new Bing gets AI-Powered Visual Stories and Knowledge Cards to enhance its visual search experience](https://www.onmsft.com/news/the-new-bing-gets-ai-powered-visual-stories-and-knowledge-cards/)
* [SearchEngineLand: Bing Image Creator added to Bing Chat](https://searchengineland.com/bing-image-creator-added-to-bing-chat-394559)
* [9to5mac: Microsoft Edge and Bing team up with DALL·E to deliver text-based image creation](https://9to5mac.com/2023/03/21/dall·e-launches-on-microsoft-bing-ios-mac/)
* [Thurrott: Microsoft Starts Rolling Out Bing Image Creator in its Bing Chatbot and Edge](https://www.thurrott.com/cloud/280836/microsoft-starts-rolling-out-bing-image-creator-in-its-bing-chatbot-and-edge)
* [xda-developers: Bing chat now uses an advanced version of DALL-E to let users create images with words](https://www.xda-developers.com/ai-powered-bing-chat-generate-images/)
* [Neowin: Microsoft&apos;s Bing Chat adds Bing Image Creator for making AI generated art](https://www.neowin.net/news/microsofts-bing-chat-adds-bing-image-creator-for-making-ai-generated-art/)
* [SearchEngineJournal: Bing Image Creator: AI-Powered Visual Content By Microsoft](https://www.searchenginejournal.com/bing-image-creator-ai-powered-visual-content-by-microsoft/482740/)
* [DigitalTrends: Bing Image Creator brings DALL-E AI-generated images to your browser](https://www.digitaltrends.com/computing/bing-image-creator-dall-e-ai-to-browser/)

## Tweets

[![Tweet by The Verge](./Tweet_by_The_Verge.png)](https://twitter.com/verge/status/1639353928189120512)
</content:encoded></item><item><title><![CDATA[Catching up with Modern CSS]]></title><link>https://ramisayar.comcatching-up-with-modern-css</link><guid isPermaLink="false">https://ramisayar.comcatching-up-with-modern-css</guid><pubDate>Thu, 02 Apr 2020 00:00:00 GMT</pubDate><content:encoded>
A colleague of mine recently reached out to ask about new features in modern CSS. He started his career as a web developer in the 2000s but hadn&apos;t touched CSS since.
He was not looking to become an expert web developer but just to know enough to style some simple pages. He remembers getting frustrated by &quot;relative&quot; vs. &quot;absolute&quot; positioning among
the other annoyances of CSS. He asked me to share things or resources to learn about modern CSS. This is what I recommended checking out.

## CSS 3

CSS 3 was the last update to the CSS language since the late 2000s. It came with quite a bunch of new features like the ability to add background images easier, media queries, new layout methods, powerful selectors, CSS Fonts, named colors instead of hex codes, among other improvements. Read [What’s new in CSS 3](https://medium.com/beginners-guide-to-mobile-web-development/whats-new-in-css-3-dcd7fa6122e1).

Also, read [this](https://css-tricks.com/css4/) to understand why there will never be a &quot;CSS 4&quot; in the same way we came to see CSS 3.

## Media Queries

With the rise of smartphones, responsive design is necessary to render a web page correctly to the screen size and resolution of the device. CSS media queries allow you to apply CSS based on many parameters like min-width, max-width, aspect-ratio, resolution, and [more](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries).

This is an example media query for the iPhone X. It allows you to add additional styling for that device. 

```css
/* Portrait and Landscape */
@media only screen 
  and (min-device-width: 375px) 
  and (max-device-width: 812px) 
  and (-webkit-min-device-pixel-ratio: 3) { 
    /* styling goes here */
}
```

## Flexbox and CSS Grids

Layout engines in the different browsers were inconsistent and tough to understand. I remember in the 2000s giving up and using tables as a layout mechanism against the intended use of that element. Luckily, we now have two excellent options for layout builtin to CSS in most major recent browsers. CSS Flexbox and CSS Grids. 

[Flexbox](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox) allows you to layout and space elements in one dimension (horizontal or vertical). It&apos;s a great way to layout websites like blogs and news sites.

[Grid](https://developer.mozilla.org/en-US/docs/Glossary/Grid) allows you to layout and space elements across two axes (horizontal and vertical). It is a great way to layout your page if you&apos;re looking for multiple columns and rows.

Both of these CSS features are well supported across major browsers so you can safely use them on any page. [Can I use: Flexbox](https://caniuse.com/#feat=flexbox). [Can I use: CSS Grid](https://caniuse.com/#feat=css-grid).

Some articles and courses:

*   [A Complete Guide to Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)
*   [The ultimate CSS battle: Grid vs Flexbox](https://hackernoon.com/the-ultimate-css-battle-grid-vs-flexbox-d40da0449faf)
*   [Don&apos;t Overthink It (Flexbox) Grids](https://css-tricks.com/dont-overthink-flexbox-grids/)
*   [Learn CSS Grid](https://cssgrid.io/) from the great fellow Canadian [Wes Bos](https://wesbos.com/).
*   [What the Flexbox!](https://flexbox.io/) also from Wes Bos.

## Sass

Over the years, two supersets of CSS ([LESS](http://lesscss.org/), [SASS](https://sass-lang.com/)) were released and became popular ways to write CSS. Large amounts CSS can be a pain to manage, especially if you want to reuse CSS styling across multiple HTML pages. Recently, it seems that Sass has taken the lead over Less ([I know that some of you will not agree, but Google says so](https://trends.google.com/trends/explore?geo=US&amp;q=sass%20css,less%20css)). Sass introduces a few key features to CSS that I absolutely can not live without.

Sass being a superset of CSS will need to be compiled to CSS to be interpretable in a browser.

### Variables

Sass introduces the ability for you to create variables by prepending the $ symbol. This language feature allows you to reuse values across all your CSS styling.

```css
$theme-color: #333;
body {
  color: $theme-color;
}
```

### Nesting

HTML has a clear and nested hierarchy of elements. You can now do the same with Sass.

```css
nav {
  ul {
    list-style: none;
  }
  a {
    text-decoration: none;
  }
}
```

This feature will map the hierarchy to nav ul. 

### Partials, Modules, Mixins and Extend.

Partials allow you to modularize your CSS into separate files that you can import using the @use rule into modules.

Some things are annoying to rewrite over and over again; that is what @mixin are for - you can create mixins that can be added to any CSS style.

Similar to mixins, you can mark a set of CSS properties as a &quot;placeholder&quot; or a &quot;template&quot; that will only be used if it is called with an @extend. If it is not extended from, then it won&apos;t be included in the compiled output. 

## CSS Frameworks

Three CSS frameworks came out in this time that increased web developer productivity: Bootstrap, Foundation, and Material Design.

[Bootstrap](https://getbootstrap.com/) is extremely popular among developers. So popular that many individuals started to complain that all websites look the same. Bootstrap v4 was built for a responsive, mobile-first world and had extensive styling and components included. It is also themeable, and there are wrappers for your favorite JavaScript libraries (React, Angular, Ember, etc). Bootstrap would be a great framework for any project that needs high initial [developer velocity](https://en.wikipedia.org/wiki/Velocity_(software_development)).

[Foundation](https://get.foundation/) is a similar framework to Bootstrap with the same features. The differentiator is that it relies on the semantic meaning of HTML elements to keep your markup clean.

[Material Design](https://material.io/design/) is a design language introduced by Google for Android that was also quickly adopted elsewhere. There quite a few competing JavaScript and CSS libraries implementing the language.

## PostCSS

[PostCSS](https://postcss.org/) and [Autoprefixer](https://github.com/postcss/autoprefixer) were excellent tools to make it easier to support different browsers and optimize your CSS to work better across all browsers and versions. Just use them.

**Hope that helps!**

## Great Resources

*   [CSS Almanac](https://css-tricks.com/almanac/) and anything else from [Chris Coyier](https://twitter.com/chriscoyier).
*   All things from [Wes Bos](https://wesbos.com/).
*   And from [Sara Soueidan](https://www.sarasoueidan.com/)
*   And from [Erik Meyer](https://meyerweb.com/)
*   Any anything on [A List Apart](https://alistapart.com/)
</content:encoded></item><item><title><![CDATA[How to Include External JavaScript Using Helmet and Gatsby]]></title><link>https://ramisayar.comgatsby-including-external-javascript-using-helmet</link><guid isPermaLink="false">https://ramisayar.comgatsby-including-external-javascript-using-helmet</guid><pubDate>Mon, 23 Mar 2020 00:00:00 GMT</pubDate><content:encoded>
## GATSBY NOW HAS A BUILTIN [HEAD API](https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-head/). Please consider using that API instead of React Helmet.

Gatsby can be confusing for web developers who are new to this world of React server-side rendering. In this short article, I answer the question for how to include external JavaScript libraries from a CDN in your Gatsby site using [react-helmet](https://github.com/nfl/react-helmet).

**First**; you will need to install react-helmet using [npm](https://npmjs.org) (or Yarn).

```bash
npm install --save react-helmet
```

**Second**; you will need to decide if you want this external library to appear on every page of your site or only on certain pages (like posts or another template).

If you would like this external JavaScript library to appear on every page of your website; you will want to insert your Helmet React component on a page that is used everywhere perhaps the Layout or SEO React components that are common in many of the Gatsby starters.

For example, if you are using the [Gatsby-Starter-Blog](https://www.gatsbyjs.org/starters/gatsbyjs/gatsby-starter-blog/) starter; react-helmet is already included and you will want to your script link in the SEO component in src/components/seo.js.

**Third**; react-helmet is powerful so you can use any valid head tag like script, link,style, etc. You will want to find the Helmet component and add your script tag in it like so:

```js
&lt;Helmet&gt;
  &lt;script
    src=&quot;https://code.jquery.com/jquery-3.4.1.min.js&quot;
    integrity=&quot;sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=&quot;
    crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
&lt;/Helmet&gt;
```

You will now have jQuery loaded on every page of your Gatsby site. By the way, you don&apos;t need to use Gatsby, the above code works for any React and Helmet project.

  &gt; *If you need help with a different Gatsby starter and you are stuck, feel free to reach out to [@ramisayar](https://twitter.com/ramisayar) on Twitter or use the [contact form](/contact).*

```js
/**
 * SEO component that queries for data with
 *  Gatsby&apos;s useStaticQuery React hook
 *
 * See: https://www.gatsbyjs.org/docs/use-static-query/
 */

import React from &quot;react&quot;
import PropTypes from &quot;prop-types&quot;
import Helmet from &quot;react-helmet&quot;
import { useStaticQuery, graphql } from &quot;gatsby&quot;

const SEO = ({ description, lang, meta, title }) =&gt; {
  const { site } = useStaticQuery(
    graphql`
      query {
        site {
          siteMetadata {
            title
            description
            social { twitter }
          }
        }
      }
    `
  )

  const metaDescription = description || site.siteMetadata.description

  return (
    &lt;Helmet
      htmlAttributes={{
        lang,
      }}
      title={title}
      titleTemplate={`%s | ${site.siteMetadata.title}`}
      meta={[
        {
          name: `description`,
          content: metaDescription,
        },
        {
          property: `og:title`,
          content: title,
        },
        {
          property: `og:description`,
          content: metaDescription,
        },
        {
          property: `og:type`,
          content: `website`,
        },
        {
          name: `twitter:card`,
          content: `summary`,
        },
        {
          name: `twitter:creator`,
          content: site.siteMetadata.social.twitter,
        },
        {
          name: `twitter:title`,
          content: title,
        },
        {
          name: `twitter:description`,
          content: metaDescription,
        },
      ].concat(meta)}
    &gt;
      &lt;script
        src=&quot;https://code.jquery.com/jquery-3.4.1.min.js&quot;
        integrity=&quot;sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=&quot;
        crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
    &lt;/Helmet&gt;
  )
11}

SEO.defaultProps = {
  lang: `en`,
  meta: [],
  description: ``,
}

SEO.propTypes = {
  description: PropTypes.string,
  lang: PropTypes.string,
  meta: PropTypes.arrayOf(PropTypes.object),
  title: PropTypes.string.isRequired,
}

export default SEO
```
</content:encoded></item><item><title><![CDATA[FITC - How We Built A Bot For FITC]]></title><link>https://ramisayar.comfitc-how-we-built-a-bot-for-fitc</link><guid isPermaLink="false">https://ramisayar.comfitc-how-we-built-a-bot-for-fitc</guid><pubDate>Wed, 10 May 2017 00:00:00 GMT</pubDate><content:encoded>
`youtube: https://www.youtube.com/watch?v=gIA9tvbejZY`

I gave a [talk](https://fitc.ca/presentation/built-bot-fitc/) at [FITC 2017](https://fitc.ca/event/to17/) about how we built a bot for the conference. Here&apos;s the official description:

&quot;Imagine a platform where language is the new UI. When we build chat bots that augment human abilities and experiences, it’s not about man versus machine. It is about man with machines, and each excels at different things. Machines are incredibly persistent if we instruct them to be; even if all we want them to do is provide us with an endless series of cat GIFs. And what better way to please the human spirit than by randomly sending you a cat GIF and being able to answer your questions!

This talk will introduce Microsoft’s Conversation as a Platform and dive into the Bot Framework and Microsoft Cognitive Services. Rami will show you how we built the FITC bot, the design considerations and conversation flow followed by the reasoning behind our insistence on cat GIFs.&quot;		
</content:encoded></item><item><title><![CDATA[FITC - Building Universal JavaScript Applications with React]]></title><link>https://ramisayar.comfitc-building-universal-javascript-applications-with-react</link><guid isPermaLink="false">https://ramisayar.comfitc-building-universal-javascript-applications-with-react</guid><pubDate>Wed, 05 Apr 2017 00:00:00 GMT</pubDate><content:encoded>
`youtube: https://www.youtube.com/watch?v=YD2x2ongMAk`

I gave a [talk](https://fitc.ca/presentation/building-universal-javascript-applications-react/) at [FITC Spotlight React](https://fitc.ca/event/spotlightreact/) about building Universal JavaScript React applications.

React is a powerful production-ready library for building advanced single page applications but React’s magical power lies in its virtual DOM. React’s ability to run on both Node.js and in the browser will finally make the dream of a single codebase on both the server and client-side possible! A dream that has been too long in the making. The singular promise of JavaScript on the backend and front-end will finally come true.

This talk will explain the concepts behind universal JavaScript applications and cover the history of this struggle to achieve the same code base on the server and client-side. The talk will show you how to write React for the backend using Node.js and how to structure your application to make this efficient for your web developer team. Lastly, this talk will also share existing code scaffolding tools, code generators and CLI tools to get your Universal JavaScript app started.

The dream is here!		
</content:encoded></item><item><title><![CDATA[Trondheim DC - An Intense Overview of the React Ecosystem]]></title><link>https://ramisayar.comtrondheimdc-intense-overview-of-the-react-ecosystem</link><guid isPermaLink="false">https://ramisayar.comtrondheimdc-intense-overview-of-the-react-ecosystem</guid><pubDate>Mon, 05 Dec 2016 00:00:00 GMT</pubDate><content:encoded>
I gave a talk at the [Trondheim Developer Conference](https://2016.trondheimdc.no/) covering the various parts of the React ecosystem.

React has been named the front-end library to learn in 2016 however few people talk about the React without mentioning Flux (or Redux or Relay). In this intense talk, we will navigate through the most significant parts of the React tools and libraries. We will look at the various Flux implementations (including a short explanation of Flux) like Redux, at React-Router, at reactive database or reactive API libraries (like GraphQL, Relay and Falcor) and finally at everyday tools and techniques that make the React developer happy. By the end of this talk, you will have a greater grasp of the ecosystem and leave with new tools in your developer arsenal. 

You can view the slides on [SlideShare](http://www.slideshare.net/ramisayar/fitc-spotlight-react-introduction-to-react-ecosystem).		
</content:encoded></item><item><title><![CDATA[Build Toronto - The Future of the Web Panel]]></title><link>https://ramisayar.combuild-toronto-the-future-of-the-web-panel</link><guid isPermaLink="false">https://ramisayar.combuild-toronto-the-future-of-the-web-panel</guid><pubDate>Fri, 10 Jun 2016 00:00:00 GMT</pubDate><content:encoded>
[Wes Bos](https://twitter.com/wesbos), developer of the extremely popular React for Beginner&apos;s video series, [Alex Blom](https://twitter.com/AlexBlom), partner at the IsleOfCode Ember shop in Toronto, [Steve Fisher](https://twitter.com/hellofisher), designer and UX fanatic at the Republic of Quality, and Stacey Mulcahy, JavaScript and Node hacker extraordinaire, get together for a live, opinionated discussion on the future of front-end web frameworks and dev tools. Moderated by Rami Sayar, these experts will explore the future of web dev tools in addition to npm, Grunt, Gulp and Webpack; the future of cross-platform app frameworks now that React Native supports UWP, iOS, Android; and will compare and contrast building complex apps with tools such as Visual Studio Code with Electron and React Native.

[Watch Here!](https://learn.microsoft.com/en-us/events/build-tour-2016-toronto/future-of-web)
</content:encoded></item><item><title><![CDATA[FITC - Introduction to the React Ecosystem]]></title><link>https://ramisayar.comfitc-spotlight-react-introduction-to-the-react-ecosystem</link><guid isPermaLink="false">https://ramisayar.comfitc-spotlight-react-introduction-to-the-react-ecosystem</guid><pubDate>Mon, 14 Mar 2016 00:00:00 GMT</pubDate><content:encoded>
`youtube: https://www.youtube.com/watch?v=8yTb3J6_Hak`

I gave a [talk](https://fitc.ca/presentation/an-overview-of-the-react-ecosystem/) at [FITC Spotlight React](https://fitc.ca/event/react/) covering the various parts of the React ecosystem.

React has been named the front-end library to learn in 2016 however few people talk about the React without mentioning Flux (or Redux or React Native or Relay). In this talk, we will explore the ecosystem of tools and libraries that surround React. We will look at the various Flux implementations (including a short explanation of Flux) like Redux, at some of the React routing libraries, at some of the reactive database or reactive API libraries and finally at everyday tools and techniques that make the React developer happy. By the end of this talk, you will have a greater grasp of the ecosystem and leave with new tools in your developer arsenal.

You can view the slides on [SlideShare](http://www.slideshare.net/ramisayar/fitc-spotlight-react-introduction-to-react-ecosystem).		
</content:encoded></item><item><title><![CDATA[On Michael Wolf’s Presentation about the Future of Tech and Media in 2016 for Montreal Startups]]></title><link>https://ramisayar.comon-michael-wolfs-presentation-about-the-future-of-tech-and-media-in-2016-for-montreal-startups</link><guid isPermaLink="false">https://ramisayar.comon-michael-wolfs-presentation-about-the-future-of-tech-and-media-in-2016-for-montreal-startups</guid><pubDate>Sun, 25 Oct 2015 00:00:00 GMT</pubDate><content:encoded>
[Michael Wolf](https://en.wikipedia.org/wiki/Michael_Wolf_(businessman)) (from [Activate](http://activate.com/)) presented at [The Wall Street Journal’s Digital Live Conference](http://wsjdlive.wsj.com/) a massive amount of data points on the future of technology and media in 2016. In the same vein as my [previous article](https://ramisayar.com/internet-trends-report-2015/) on Mary Meeker’s annual internet trends report, I will highlight the most interesting stats for Montreal startups. You can see the full deck on [SlideShare](http://www.slideshare.net/ActivateInc/activate-tech-and-media-outlook-2016).

## On Time Spent on Tech &amp; Media

When Wolf wrote, “Capturing Attention is not a Zero Sum Game”, this should catch your attention. Many smart people have been arguing both sides of this idea; that user attention is finite and is a zero sum game. In other words, time spent on Twitter is taking away from time spent on Facebook or anything else. Wolf is arguing quite the opposite; that attention is multitasked and split between multiple screens or devices. This implies that there is more than 24 hours of user attention up for grabs. 

I am not going to dissect this idea any further as it deserves a separate article and research. That being said, judging from my usage patterns, I am rarely fully engaged in a single thing and always have at least two screens around (typically, my laptop and phone). 

According to Wolf, the average American is spending over 31 hours a day. Video accounts for an enormous portion of that although I’d be curious to see how the pie chart on Slide 7 splits across age groups. You can expect massive competition for user attention in the coming years as the time spent on tech and media per day increases. 

Although the total user time spent is significant, it is spent in a small number of apps, websites, and channels. The portal-ization (not a real word) of the Internet is increasing. You can see this more clearly outside of North America within messaging apps like WeChat and others. Why would you leave WeChat when you can do even your banking within it? 

Another interesting stat is that you can build a billion-dollar business by capturing less than 1 minute of daily attention. For startups looking to be in the entertainment business, seems like you can build an entire company around capturing 15 seconds or so if a user’s time. Vine makes a lot more sense now.

## On Messaging

Messaging is growing at what I can only describe as an insane rate. Mary Meeker also touched on this in her [Internet Trends 2015 report](https://ramisayar.com/internet-trends-report-2015/). Not much new information here when it comes to messaging besides some new numbers like: “1.1 billion new users will be added by 2018”. Different messaging apps dominate different markets which is also not a surprise. WhatsApp and Facebook Messenger are the big whales globally with collectively over 1.5 billion users. Asia-Pacific is an entirely different world for messaging apps (also not a surprise).

One thing that is fascinating is that the Middle East &amp; Africa have the largest untapped messaging market: 579 million potential users. If you are a startup in Montreal in the social and messaging space, look to MEA. 

Building platforms on top of messaging is the name of the game, and Asia-Pacific is way ahead.

## On Streaming Audio

Four hours a day of audio listening time and growing. Lots of potential for growth from existing tech players. Obviously, the millennial and younger generation is all about streaming vs. radio. 

Another interesting thing I found, “Spotify and Pandora are catering to two different audiences.” Perhaps, we should stop considering them to be competitors but complements instead.

I loved this because I am an example of someone who went from 1 podcast to 15 different ones: “Podcast consumption has exploded in recent years and will keep growing steadily. Podcast listeners are the elite of audio: they listen to more non-podcast audio than average, and are an attractive demographic.” Attractive: more likely than the average to have incomes above $50k and a bachelor’s degree. 

## On Cable Killers

Lots of interesting stuff in this section of Wolf’s slides. I will recommend you take a look at some of the slides for this section.

Traditional TV is still a big chunk of video time, but online media companies are coming up fast. According to Wolf, the future of TV is apps and we have hit “peak cable”. TV cord cutting will not look like typical tech transitions; I highly recommend taking a look at Slide 67.

Slide 73 is also absorbing in how you can describe consumer behavior when it comes to video watching. As much as on-demand video consumption is growing, live sports will probably never go on-demand. Think about it: why would you want to look at the game after you know who won/lost, unless you are a real fan. Ben Thompson has a [fantastic article](https://stratechery.com/2015/why-disney-and-espn-will-be-ok/) detailing why Disney and ESPN will be okay. 

“Web Video is driven by native indie creators producing short content that reaches a massive audience and grows overall video consumption.” Wolf.

Consumer spending on video is outpacing salaries. Traditional Pay TV is in trouble.

The “Cable Killer” won’t be competing on price but user experience.

## On E-Sports

No surprises here: the video gaming industry is HUGE, 2 billion users. Global spend on gaming will keep growing. Surprisingly, the PC/Web have the highest revenues as a platform (Slide 97); PC Gaming is not dead after all.

There’s now a huge spectator audience for gaming in Twitch and YouTube. 

Organized eSports is now big billion-dollar businesses, following the [South Korean model](http://www.nytimes.com/2014/10/20/technology/league-of-legends-south-korea-epicenter-esports.html?_r=0).

Wagering will be a real thing (for a definition go to Slide 107), and Millennials are the largest adopters.

## On the App Store

“The dream of the independent developer building a business in the app store is over.” That is right. Move on now.

## On Money in Consumer Tech &amp; Media

By Annual ARPU (Average Revenue Per User), Apple, Amazon, World of Warcraft, EBay (?really?) have the highest ARPU globally but their growth is negative. Twitter, Facebook, Tencent and LinkedIn are growing the fastest.

## One What to Do Next

Fill the gaps as M&amp;A activity will be tremendous, there will be lots of acquisitions. You can do it Montreal!
</content:encoded></item><item><title><![CDATA[On The Internet Trends Report 2015 For Montreal Startups]]></title><description><![CDATA[Kleiner Perkins Caufield & Byers Mary Meeker released her annual Internet Trends Report. As an avid yearly reader of this report, I want to highlight a few of the stats that are particularly pertinent to tech startups in Montreal. Global Internet usage has definitively shifted to Asia. China alone accounted for 23% of Internet users. Combined with the rest of Asia, over half of the global Internet usage is in Asia. Montreal startups looking to expand outside of North America should consider China first even if the temptation to go to France due to reduced language barriers is very strong.]]></description><link>https://ramisayar.cominternet-trends-report-2015</link><guid isPermaLink="false">https://ramisayar.cominternet-trends-report-2015</guid><pubDate>Wed, 27 May 2015 00:00:00 GMT</pubDate><content:encoded>
[Kleiner Perkins Caufield &amp; Byers](http://www.kpcb.com/)&apos;s Mary Meeker released her annual Internet Trends Report on [SlideShare](https://www.slideshare.net/kleinerperkins/internet-trends-v1). As an avid yearly reader of this report, I want to highlight a few of the stats that are particularly pertinent to tech startups in Montreal.

**On Internet &amp; Mobile Phone Users:**

Global Internet usage has definitively shifted to Asia. China alone accounted for 23% of Internet users. Combined with the rest of Asia, over half of the global Internet usage is in Asia. Montreal startups looking to expand outside of North America should consider China first even if the temptation to go to France due to reduced language barriers is very strong. There are plenty of resources available to you. The [Canada-China Chamber of Commerce](http://www.chinachamber.ca/) &amp; [Canada-China Business Council](http://www.ccbc.com/) frequently host networking events and have plenty of resources online. If you&apos;re hesitant to jump directly to China, many companies pursue Hong Kong as a stepping stone to the Chinese market. The [Hong Kong-Canada Business Association](http://www.hkcba.com/) can help you. If you&apos;re looking for consulting experts in Chinese market entry, you can look at the [Dragonbridge Corporation](http://www.dragonbridgecorp.com/). If you&apos;re looking at South-East Asia, the ASEAN is the organization grouping countries in the region. The [Canada-ASEAN Business Council](http://www.canasean.com/) is another resource with many Canadian companies as members. Lastly, the [Asia Pacific Foundation of Canada](https://www.asiapacific.ca/) and the [Canadian International Council](http://opencanada.org/) frequently publish articles about Canadian relationships with Asia. 

Smartphones are 40% of all mobile phone users although that ratio will depend strongly on the country. 

China now counts 3 of the biggest public Internet companies by market capitalization. Any global search engine advertising campaign should consider including Baidu. 

Internet user growth in Asia is heading towards India, which is up 33% vs. China up at 7%. For comparison, the USA is up 2% &amp; Canada is 0% (See Appendix of slides). As for smartphone subscription growth, Chinese growth is being outpaced by India and Brazil.

Video traffic all up is increasing including on mobile. Time spent per adult user on mobile is growing while on Desktop/Laptop growth has flatlined. 

**On Advertising:**

If you&apos;re building ad-related or ad-tech startups, mobile ad spending is a $25+ Billion dollar opportunity in the USA. Facebook and Twitter ad growth is strong but slowing.

Startups should experiment with these new advertising channels: [Pinterest Cinematic Pin](https://business.pinterest.com/en/blog/new-promoted-pin-options-help-you-reach-your-goals), [Vessel 5-Second Ad](http://techcrunch.com/2015/03/24/former-hulu-ceo-jason-kilars-vessel-launches-to-the-public/), [Facebook Carousel Ad](https://www.facebook.com/business/news/Multi-Product-Ads-and-Enhanced-Custom-Audiences-from-your-Website) and [Google Local Inventory Ad](https://support.google.com/merchants/answer/3057972?hl=en&amp;ref_topic=3052707).

**On Video:**

Optimize small screen video ads for vertical viewing. Time spent in vertical viewing is growing faster than horizontal. Full-screen vertical video ads on Snapchat have a 9x higher completion rate. 

**On the Enterprise:**

&quot;While consumer Internet entrepreneurs often pursue personal passion... ‘Enterprise’ Internet entrepreneurs often pursue prior company pain points.&quot; Examples: Slack, Square, Stripe, Domo, DocuSign, Intercom, Gainsight, Directly, Zenefits, Anaplan, Greenhouse, Checkr, GuideSpark, Envoy, etc.

**On Messaging:**

LINE, Viber, KakaoTalk and WeChat are extremely popular but practically unheard of in North America. LINE, WeChat, KakaoTalk are dominating Asia. The trend for messaging apps is to evolve into central communication hubs. Looking at this data, one can understand why Facebook decided to split the Messenger away from the main app and build a platform around it. 

**On Content:**

User-generated content continues to dominate with Pinterest experiencing continued growth. Traditionally male dominated categories like &quot;Car &amp; Motorcycle&quot; &amp; &quot;Men&apos;s Fashion&quot; pins are growing almost +100% Y/Y. This data should change your advertising messaging on Pinterest as the demographics evolve.

Video on Facebook is up 4x in 6 months. Live gaming/video streaming is growing +100% Y/Y. You should take a look at Twitch. Wattpad is growing like crazy too, and this is a new platform. 

**On Demographics:**

Millenials and younger generations spend most of their time creating and consuming images and videos. Millenials are also now the largest generation in the workforce. 

**On Everything Else:**

Consumer drone usage and cyber attacks are growing rapidly worldwide.

Freelancers are a growing proportion of workers, and their use of the Internet is exploding. Online platforms are allowing for both product and service commerce. 

**On China &amp; India:**

China is #1 Internet market in sheer mass, India is #1 in new users.

Research these companies &amp; their strategies in Asia: WeChat, Mogujie, Melishuo, Xiaomi.

India is at an inflection point for Internet growth.

[Download the PDF](http://kpcbweb2.s3.amazonaws.com/files/90/Internet_Trends_2015.pdf?1432738078)

Note: The accuracy of the data above is limited to the accuracy of Mary Meeker&apos;s sources. 		
</content:encoded></item><item><title><![CDATA[FITC - What’s New in ES6 for Web Devs]]></title><link>https://ramisayar.comfitc-whats-new-in-es6</link><guid isPermaLink="false">https://ramisayar.comfitc-whats-new-in-es6</guid><pubDate>Fri, 01 May 2015 00:00:00 GMT</pubDate><content:encoded>
`youtube: https://www.youtube.com/watch?v=lhZbga8BM_4`

I gave a [talk](https://fitc.ca/presentation/whats-new-in-es6-for-web-devs/) at [FITC 2015](https://fitc.ca/event/to15/) on what&apos;s new in ECMAScript 6 for web developers.

Wondering what the future has in store for JavaScript web developers? ECMAScript 6 (ES6) is the next major release of the ECMAScript language specification a.k.a. JavaScript. This talk will showcase some of the features proposed in the current ES6 draft along with examples of how to use them, why these features are important and why you should care. This talk will also show you a survey of ES6 feature compatibility across all the major browsers and platforms as well as showcase some Node.js modules using these new features to big success. Features like block scoping, destructuring, modules &amp; classes, proxies, collections, iterators &amp; generators and arrow functions, etc… will be showcased. 

You can view the slides on [SlideShare](http:/www.slideshare.net/ramisayar/whats-new-in-es6-for-web-devs).
</content:encoded></item><item><title><![CDATA[FITC - Twitter Bootstrap Unleashed]]></title><link>https://ramisayar.comfitc-twitter-bootstrap-unleashed</link><guid isPermaLink="false">https://ramisayar.comfitc-twitter-bootstrap-unleashed</guid><pubDate>Thu, 18 Dec 2014 00:00:00 GMT</pubDate><content:encoded>
`youtube: https://www.youtube.com/watch?v=IxCr5byta2c`

I gave a [talk](https://fitc.ca/presentation/twitter-bootstrap-unleashed/) at [FITC Web Unleashed 2014](https://fitc.ca/event/webu14/) on Twitter Bootstrap.

Twitter Bootstrap is a wildly popular HTML and CSS framework for building websites and web applications. It is the number 1 project on GitHub. Bootstrap supports responsive web design, allowing the layout of your page to adapt to the device (desktop, tablet, mobile). This talk will introduce you to the basics of using Bootstrap and show you how to build responsive web layouts to build your own app.

You can view the slides here or on [SlideShare](http://www.slideshare.net/ramisayar/fitc-bootstrap-unleashed).
</content:encoded></item><item><title><![CDATA[FITC - Data Visualization in Practice]]></title><link>https://ramisayar.comfitc-data-visualization-in-practice</link><guid isPermaLink="false">https://ramisayar.comfitc-data-visualization-in-practice</guid><pubDate>Wed, 17 Dec 2014 00:00:00 GMT</pubDate><content:encoded>
`youtube: https://www.youtube.com/watch?v=tSdVrfKmMbY`

I gave a talk at [FITC Spotlight Front-End](https://fitc.ca/presentation/data-visualization-in-practice/) on data visualization. 

Data visualization is crucial to understanding the big data being generated by apps and services. Data visualization toolkits such as D3.js and charting toolkits are immensely popular but it remains difficult to create meaningful dashboards or usable analytics tools or clear data visualizations. In this talk, I discussed data visualization principles, presented best practices, showcased excellent visualizations in practice, and shared useful tips and mistakes learned.

You can view the slides here or on [SlideShare](http://www.slideshare.net/ramisayar/fitc-data-visualization-in-practice-42809637).
</content:encoded></item><item><title><![CDATA[Introduction to Growth Hacking at KWS Montreal 2014]]></title><description><![CDATA[I am very delighted to be speaking again at this year's KWS Forum, Social Good and Innovative Technology week. Be sure to attend my talk if you want to think more like a startup and growth hack. I included a discount code to the event in the article.]]></description><link>https://ramisayar.comintro-to-growth-hacking-at-kws-montreal-2014</link><guid isPermaLink="false">https://ramisayar.comintro-to-growth-hacking-at-kws-montreal-2014</guid><pubDate>Wed, 13 Aug 2014 00:00:00 GMT</pubDate><content:encoded>`youtube: https://www.youtube.com/watch?v=Q98R-5gvJTA`

I participated as a speaker at last year&apos;s KWS Forum and I am very delighted to be [speaking again](http://kws-forum.org/special-articles/rami-sayar-will-be-speaking-again-at-kws-14/?lang=en)!

The [KWS Forum](http://kws-forum.org/kws-montreal-2014/) this year is manifesting itself as a week of fantastic talks on technology and social innovation. The forum is focusing on the new opportunities brought by the high penetration of technology around the world and the ability of agents of change, brands and corporations to amplify their missions. It is taking place between the 29th of September and the 3rd of October. More information can be found [here](http://kws-forum.org/kws-montreal-2014/).

I will be giving a talk titled &quot;Introduction to Growth Hacking for Traditional Marketers&quot;. Growth hacking is a mindset and a collection of marketing tactics relying on creativity, data and feedback loops to grow brands, products and services at scale. The term growth hacking has a nebulous reputation, and has many critics (Read: people who hate the term) and fans (Read: people who love it to death). Nonetheless, the concept of growth hacking and the accompanying title of &quot;growth hacker&quot; have taken a life of its own. For the marketer accustomed to a more traditional approach, the terms may seem foreign and the techniques bizarre but they do offer valuable lessons on how to grow your product, services and brands in a disruptive, viral web-first world. Be sure to attend my talk if you want to think more like a startup and get a handle on the concept of growth hacking.

Other speakers at the conference include [Amelia Showalter](http://ameliashowalter.com/), former Director of Digital Analytics at President Obama&apos;s re-election campaign, and my friend [Louis-Félix Binette](https://twitter.com/iamlfb) from [f. &amp; co](http://fandco.ca/en/).

If you&apos;re interested in attending the conference, be sure to use the promo code &quot;Startup&quot; and receive 10% off [here](http://www.eventbrite.ca/e/semaine-technologie-et-innovation-sociale-technology-for-good-week-29-sept-03-oct-tickets-11779447645).		
</content:encoded></item><item><title><![CDATA[FailCampMTL]]></title><description><![CDATA[Failure comes with a certain stigma and fear, particularly among entrepreneurs. It should not be this way, for to fail is to learn.]]></description><link>https://ramisayar.comfailcampmtl</link><guid isPermaLink="false">https://ramisayar.comfailcampmtl</guid><pubDate>Fri, 07 Feb 2014 00:00:00 GMT</pubDate><content:encoded>
Failure comes with a certain stigma and fear, particularly among entrepreneurs. It should not be this way, for to fail is to learn.

I am proud to be an instigator behind the [rebirth](http://outofcomfortzone.net/2013/07/29/failcamp-montreal-naura-pas-de-deuxieme-edition/) of [FailCampMTL](http://failcampmtl.org), an event celebrating failure in all its glory. [Gabrielle Madé](https://twitter.com/GabrielleMade), [Francis Gosselin](https://twitter.com/monsieurgustave) and [I](http://twitter.com/ramisayar) hustled hard to rekindle an event last held by [Fred Harper](http://outofcomfortzone.net/2011/07/27/celebrate-failure/) in 2011. Surprisingly, the event did not live up to its name and succeeded beyond our expectations. Over one hundred and sixty attendees registered in 7 minutes from ticket availability. #failcampmtl became trending on twitter across the country. FailCampMTL appeared in most major news and media outlets in Montreal.

FailCampMTL is about sharing your tales of epic fail and the lessons you learned from them. Not viewing failure as defeat is a key stepping stone to success. Ignoring fear, embracing risk and thinking big - granted are clichés - truly help you achieve what you thought you couldn&apos;t.

[LP Maurice](https://twitter.com/lpmo) and [JS Cournoyer](https://twitter.com/jscournoyer) talked about startup fails. [Cynthia Savard Saucier](http://twitter.com/CynthiaSavard) graced us with a history of design and web fails. [Claude Théorêt](https://twitter.com/cgtheoret) lectured about failures in physics and science. [Marc Gagne](https://twitter.com/marc_gagne) discussed what causes personal fails in startups. [Mélanie Joly](https://twitter.com/melaniejoly) talked about her failures in politics and public life.

After the success of the 2013 edition, we are considering a repeat in 2014. Please reach out to me on [Twitter](http://twitter.com/ramisayar) with any ideas or suggestions.

Visit [http://failcampmtl.org/](http://failcampmtl.org/) for more information. See [Eva Blue&apos;s Photo Set on Flickr](https://www.flickr.com/photos/evablue/sets/72157641386415615/) for beautiful photos.

**Media:**

*   Les Affaires by Julien Brault: [Vous ne croirez pas comment l&apos;ange montréalais Austin Hill a fait son premier 75 000$](http://www.lesaffaires.com/blogues/julien-brault/vous-ne-croirez-pas-comment-l-ange-montrealais-austin-hill-a-fait-son-premier-75-000/566617)
*   Le Journal de Montreal by Joanie Godin (Paywall): [Célébrer les échecs au FailCamp MTL](http://www.journaldemontreal.com/2014/02/21/celebrer-les-echecs-au-failcamp-mtl)
*   Ici Radio-Canada: [#FailCamp : célébrer l&apos;échec](http://ici.radio-canada.ca/emissions/la_sphere/2013-2014/chronique.asp?idChronique=328673)
*   BetaKit by Joseph Czikk: [“A STRAIGHT OUT SCAM”: MONTREAL ANGEL AUSTIN HILL RECOUNTS FIRST BUSINESS AT FAILCAMPMTL](http://www.betakit.com/montreal-angel-austin-hill-failed-spectacularly-before-later-success/)
*   BetaKit by Joseph Czikk: [THIS WEEKEND’S FAILCAMP IN MONTREAL SOLD OUT IN SEVEN MINUTES](http://www.betakit.com/this-weekends-failcamp-in-montreal-sold-out-in-seven-minutes/)
*   cllbr by Francis Gosselin: [Failure is always an option](http://cllbr.com/en/post/failure-is-always-an-option/)
*   TechVibes by Roger Huang: [Busy Weekend in Montreal Sees Three Events Spurring Startup Community](http://www.techvibes.com/blog/montreal-events-recap-2014-02-25)
*   Geeks and Com&apos; by Benoit Chamontin: [Une deuxième édition le 22 février prochain #failcampmtl](http://www.geeksandcom.com/2014/02/10/failcamp-montreal-une-deuxieme-edition-le-22-fevrier-prochain/)
*   BaronMag by Camille Lauwers: [Fail Camp MTL : tous unis dans l’échec](http://baronmag.com/2014/03/fail-camp-mtl-tous-unis-dans-lechec/)
*   WinkStrategies: [LEARN FROM YOUR FAILURE, THEN LAUGH ABOUT THEM #FAILCAMPMTL](http://winkstrategies.com/english/2014/06/08/learn-failure-laugh-failcampmtl/)
*   DES MONTRÉALITÉS by Karine St-Germain Blais: [Célébrer l&apos;échec : première édition du FailcampMTL](http://desmontrealites.com/leblogue/premiere-edition-du-fail-camp-mtl)
*   Medium by Austin Hill: [On your permanent record](https://medium.com/@austinhill/on-your-permanent-record-f5ab81f9f654)
*   Nexalogy Blog by Craig Silverman: [Nexalogy CEO Claude Théoret’s transition from studying black holes to analyzing social data](http://nexalogy.com/nexalogy-news/nexalogy-ceo-claude-theorets-transition-from-studying-black-holes-to-analyzing-social-data/)
*   BusBud Blog: [FailCamp MTL, le 22 février chez Busbud](http://blog.busbud.com/2014/02/17/failcamp-mtl-le-22-fevrier-chez-busbud/)		
</content:encoded></item><item><title><![CDATA[ThoughtBasin's Panel on Communication and Connection]]></title><description><![CDATA[I am super excited to be participating in ThoughtBasin's Panel on Communication and Connection this Thursday.]]></description><link>https://ramisayar.comthoughtbasin-panel-communication-connection</link><guid isPermaLink="false">https://ramisayar.comthoughtbasin-panel-communication-connection</guid><pubDate>Wed, 22 Jan 2014 00:00:00 GMT</pubDate><content:encoded>
I am super excited to be participating in [ThoughtBasin&apos;s](http://thoughtbasin.com/) [Panel on Communication and Connection](https://www.facebook.com/events/513153695465304/) this Thursday. It is the first time I will be chatting about communication and connection since becoming a full-time evangelist at [Microsoft](http://wootstudio.ca/) in Montreal. I will be sharing what I learned over the last 6 months in my role at Microsoft and in my volunteer role at [Startup Grind Montreal](http://startupgrind.com/montreal/). The panel is mostly geared towards students but any young professional is sure to benefit. So be sure to attend if you want to improve your network online and offline.

It&apos;s bound to be a lot of fun as I will be joined by my friend, [Fred Harper](http://outofcomfortzone.net), technical evangelist at [Mozilla](http://www.mozilla.org/en-US/). Fred gave a talk about [personal branding](http://outofcomfortzone.net/2013/11/19/personal-branding-recording-presentation/) not too long ago, so I am pretty sure you will not want to miss the chance to ask him how to improve your brand online.

We will also be joined by Armando Gomez from [AskMen](http://www.askmen.com/), Jo-Ann Munro from [Marketel](http://www.marketel.com/en/home), Marie-Josée Tessier from Reader&apos;s Digest and Vincent White from [Movember Quebec](http://movemberquebec.com/).

I am excited that we will also interact with the crowd by brainstorming at the end of the event to come up with great ideas on how to communicate new concepts. Bound to be fun!

Be sure to get your ticket on [Eventbrite](https://www.eventbrite.ca/e/thoughtbasin-panel-on-communication-and-connection-tickets-8162445093) and mark you are attending on [Facebook](https://www.facebook.com/events/513153695465304/).		
</content:encoded></item><item><title><![CDATA[KWS Forum Recap Video]]></title><description><![CDATA[My friends from the Kongossa Web Series have launched a recap video of their conference.]]></description><link>https://ramisayar.comkws-forum-recap-video</link><guid isPermaLink="false">https://ramisayar.comkws-forum-recap-video</guid><pubDate>Sun, 12 Jan 2014 00:00:00 GMT</pubDate><content:encoded>`youtube: https://www.youtube.com/watch?v=QzLHON11ZLU`

My friends from the [Kongossa Web Series](http://www.kws-forum.org/?lang=en) launched a recap video of their conference. The KWS Forum was fantastic and the video below will prove it. Be sure not to miss the next KWS forum in Toronto.

You also see my good friend [Fred Harper](http://outofcomfortzone.net/) talking about personal branding.
</content:encoded></item><item><title><![CDATA[Why I Love Startup Grind]]></title><description><![CDATA[We are just days away from the first Startup Grind event in Montreal. It is another startup event in a city that already has many, including a startup festival. But Startup Grind isn’t just another startup event; it’s an opportunity to take our community to the next level.]]></description><link>https://ramisayar.comwhy-i-love-startup-grind</link><guid isPermaLink="false">https://ramisayar.comwhy-i-love-startup-grind</guid><pubDate>Mon, 18 Nov 2013 00:00:00 GMT</pubDate><content:encoded>

We are just days away from the first [Startup Grind](http://startupgrind.com/montreal/) event in Montreal. It is another startup event in a city that already has many, including a startup festival. (If you are new to Montreal’s startup community, take a look at [LP](http://swell.lpmo.com/post/60910191019/entrepreneurship-in-montreal) and [Fred’s](http://outofcomfortzone.net/2013/11/15/want-find-co-founder-startup-idea-montreal/) articles.) But Startup Grind isn’t just another startup event; it’s an opportunity to take our community to the next level.

Ahead of Thursday’s get together, I wanted to take a moment to explain why I’m so excited about Startup Grind and why you should be as well. (Good on you if you’re already excited. If you aren’t, then read on, get pumped, and [go get yourself a ticket.](http://www.eventbrite.ca/e/startup-grind-montreal-hosts-greg-isenberg-5by-tickets-9145437249))

I first attended Startup Grind while working in Silicon Valley. Of the many events taking place every night, Startup Grind caught my attention. There was no shortage of opportunities to talk about startups in San Francisco but the approach taken by Startup Grind stood out in the crowd.

The use of the word ‘grind’ in the name gave me the sense that this wasn’t going to be another event where we just celebrate the success story of a startup. While we absolutely should celebrate the success of our peers, there are so many more stories that need to be told about the startup world. Running a startup is about hard work, dealing with setbacks, long days, and longer nights. Contrary to the rosy picture of startups that you see on TV, there is no such thing as overnight success. It truly is a grind.

Jessica Livingston was the speaker at my first Startup Grind event. She wasn’t there to tell me and everyone else how to get into YC. Instead, she spoke about the struggles entrepreneurs face, the struggles she faced and **her story**. This may be a less sexy topic than getting into YC but it is incredibly important. Startup Grind has an unwavering commitment to educating entrepreneurs about the challenges they will face on their journey and the ways they can be overcome.

`youtube: cl7JO36hJDU`

By talking about these bumps in the road, Startup Grind created a true sense of community among the people in attendance. I wasn’t approached with yet-another-founder-pitching at the event, which invariably happens at startup networking sessions. People cared more about what I was struggling and how I felt then where I worked. They offered mutual support as opposed to their products. Sharing was important to them, giving had more values. I quickly learned that you didn’t come to Startup Grind events to make contacts, but to make friends. Everyone took these values to heart. The community was truly passionate about the journey and not the result.

Having been impressed by my Californian Startup Grind experience, I then attended one of their events in Toronto and was pleased to find the same communal vibe. Startup Grind has codified its values, gone to great lengths to promote them with posters at events, and truly transcended the Silicon Bubble.

Now these values are coming to Montreal.

I’ve been thinking about bringing an event like Startup Grind to Montreal ever since that first night in San Francisco with Jessica Livingston. I didn’t want another demo day or pitch event. The more I thought about it, I didn’t just want to create an event like Startup Grind in Montreal; I wanted to bring Startup Grind to Montreal. So, for the uninitiated, here’s what you should expect: no scripted presentations, just an intimate and authentic interview with a founder and plenty of people who are with you on the complicated journey to success.		
</content:encoded></item><item><title><![CDATA[Africa + Startups = Kongossa]]></title><description><![CDATA[The world has recognized the promise of Africa. It is home to more than a billion people and houses 16 of the world’s 30 fastest growing economies. Coupled with explosive Internet growth, there are incredible opportunities for startups and technologists.]]></description><link>https://ramisayar.comafrica-startups-kongossa</link><guid isPermaLink="false">https://ramisayar.comafrica-startups-kongossa</guid><pubDate>Wed, 18 Sep 2013 00:00:00 GMT</pubDate><content:encoded>`youtube: https://www.youtube.com/watch?v=M49P8ChHeIQ`

_Crossposted from [WootStudio](http://wootstudio.ca/articles/africa-startups-kongossa-web-series)._

The world has recognized the promise of Africa. It is home to more than a billion people and houses 16 of the world’s 30 fastest growing economies. Coupled with explosive Internet growth, there are incredible opportunities for startups and technologists.

Africa Link is an Cameroun-based organization dedicated to increasing access to the Internet in Africa. They are organizing an awesome all-day conference in Montreal, September 21st at Concordia University. [The Kongossa Web Series](http://www.kws-forum.org/) is an international forum which assembles the most reputable experts of Digital Marketing, Entrepreneurship and the Social Economy to deliver conferences and panels on the most important topics of today for Africa and Canada.

I am quite excited to be giving a talk among such great speakers as [Jon Gosier](http://jongosier.com/), [Frédéric Harper](http://outofcomfortzone.net/) and [Franck Nlemba](http://www.francknlemba.com/). I will be speaking about the startup ecosystem in Montreal, the [BizSpark](https://www.microsoft.com/bizspark/) program and [Imagine Cup](http://www.imaginecup.com/). Take a look at the speakers overview on [YouTube](http://www.youtube.com/watch?v=M49P8ChHeIQ).

If you are a startup looking to raise funding, I have a special treat for you. I have invited my friend [Louis-Phillippe Maurice](http://lpmo.com/) from the startup [BusBud](http://www.busbud.com/) to chat with you at the Microsoft booth between noon and 1PM about raising Series A capital in Montreal.
</content:encoded></item><item><title><![CDATA[TEDxHEC Montreal]]></title><description><![CDATA[At TEDxHEC Montreal, I address the question of how can we best put our networks to use. The resulting talk, entitled “Democratic Collaboration”, examined the challenges of collaboration and demonstrated the ways that technology can be used to solve these problems.]]></description><link>https://ramisayar.comtedxhec</link><guid isPermaLink="false">https://ramisayar.comtedxhec</guid><pubDate>Tue, 23 Jul 2013 00:00:00 GMT</pubDate><content:encoded>
**Update 02/20/2023:** This post is almost a decade-old. At the time of this project, I was young, so please excuse the baby face. And I had little design skills, so please forgive the Comic Sans. My journey building innovation projects continued at [Microsoft](/about) where I currently lead a UX engineering team at Bing. I write a [weekly newsletter](https://readings.ramisayar.com?utm_source=ramisayar.com&amp;utm_medium=referral) on the latest in technology, machine learning, design and innovation. Enjoy the show!

`youtube: https://www.youtube.com/watch?v=wnQGl4ZLsWI`

At [TEDxHEC Montreal](https://web.archive.org/web/20130722061419/http://tedxhecmontreal.com/), I address the question of how can we best put our networks to use. The resulting talk, entitled “Democratic Collaboration”, examined the challenges of collaboration and demonstrated the ways that technology can be used to solve these problems. Democratic collaboration called on the audience to approach the leveraging of networks as if they were building a democratic system: everyone is treated equally but certain rules are in place to prevent chaos.

To demonstrate the merits of democratic collaboration, a few friends and I built a real-time collaborative project in which the audience could participate through SMS. Audience members were asked to write a story by submitting sentences. At first, no constraints were imposed and sentences were posted in the order they were received. It was a mess. The experiment was run a second time but with constraints; one sentence would be chosen every 15 seconds and the audience could see where the story was going before submitting another sentence. The resulting story, while imperfect, was more coherent. Take a look at the video to see it live in action!

The talk received positive reactions on social media channels and was featured in [Les Affaires](https://www.lesaffaires.com/archives/generale/dix-idees-a-partager/558114) ([Wayback Machine](https://web.archive.org/web/20141022141654/https://www.lesaffaires.com/archives/generale/dix-idees-a-partager/558114)).

[![TEDxHEC Video Rami Sayar Democratic Collaboration”](/media/968986_10152852838865313_1368543054_n.jpg &quot;Newspaper clipping from Les Affaires&quot;)](/media/968986_10152852838865313_1368543054_n.jpg)

The real-time collaborative system built for TEDxHEC was tested to manage thousands of messages, apply constraints, and filter out profanities. A detailed report of the technology behind the project can be found on [GitHub](https://github.com/sayar/tedxhec).
</content:encoded></item><item><title><![CDATA[HOWTO: Automatically Enable GZip Compression on AWS Elastic Beanstalk]]></title><description><![CDATA[Recently, I started experimenting with the AWS fancy deployment system, Elastic Beanstalk. The first thing I noticed was that gzip (mod_deflate) compression was not enabled by default. A quick search revealed that it is indeed not enabled by default for reasons of compatibility.]]></description><link>https://ramisayar.comhowto-automatically-enable-gzip-compression-on-aws-elastic-beanstalk</link><guid isPermaLink="false">https://ramisayar.comhowto-automatically-enable-gzip-compression-on-aws-elastic-beanstalk</guid><pubDate>Mon, 08 Oct 2012 00:00:00 GMT</pubDate><content:encoded>
Recently I started experimenting with the [AWS](https://aws.amazon.com/) fancy deployment system, [Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/). The first thing I noticed was that gzip (mod_deflate) compression was not enabled by default. A quick search revealed that it is indeed not enabled by default for reasons of compatibility.

If you are running a web application (e.g. Django, RoR, etc...) that separates out static resources and asks [Apache](https://www.apache.org/) to serve them directly, you can not rely on your web app to do the compression. We have to enable compression at the web server level in a way that will work even when Amazon updates the configurations files. Luckily, it seems that every Apache module underneath the sun is already preloaded, including mod_deflate. Also, the Elastic Beanstalk developers had the foresight to rely on the conf.d/ pattern for loading additional configuration files so that we do not have to mess with their httpd.conf file.

Taking advantage of the .ebextensions configuration file, we can attach a command to copy over our mod_deflate configuration to the conf.d/ folder.

```
container_commands:
  01_setup_apache:
    command: &quot;cp enable_mod_deflate.conf /etc/httpd/conf.d&quot;
```

Finally, this is the enable_mod_deflate.conf. Make sure the file is somewhere within your git repository and that you update the above path to reflect that. (Also ensure that the file extension is .conf or else Apache will not pick it up.)

```
# mod_deflate configuration
&lt;IfModule mod_deflate.c&gt;
  # Restrict compression to these MIME types
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE application/xml+rss
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE image/png
  AddOutputFilterByType DEFLATE image/gif
  AddOutputFilterByType DEFLATE image/jpeg

  # Level of compression (Highest 9 - Lowest 1)
  DeflateCompressionLevel 9

  # Netscape 4.x has some problems.
  BrowserMatch ^Mozilla/4 gzip-only-text/html

  # Netscape 4.06-4.08 have some more problems
  BrowserMatch ^Mozilla/4\.0[678] no-gzip

  # MSIE masquerades as Netscape, but it is fine
  BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

  &lt;IfModule mod_headers.c&gt;
    # Make sure proxies don&apos;t deliver the wrong content
    Header append Vary User-Agent env=!dont-vary
  &lt;/IfModule&gt;
&lt;/IfModule&gt;
```

There you have it; a fairly quick and easy way to automatically enable gzip compression on AWS Elastic Beanstalk without having to manually configure Apache or mess around with all the servers Elastic Beanstalk will instantiate (remember EB instances are meant to be ephemeral).		
</content:encoded></item><item><title><![CDATA[More QR Code Madness]]></title><description><![CDATA[After my initial post exclaiming "Enough with the QR codes!", I got another interesting picture of a QR code fail.]]></description><link>https://ramisayar.commore-qr-code-madness</link><guid isPermaLink="false">https://ramisayar.commore-qr-code-madness</guid><pubDate>Wed, 28 Mar 2012 00:00:00 GMT</pubDate><content:encoded>After my initial post exclaiming &quot;Enough with the QR codes!&quot;, I got another interesting picture of a QR code fail.

This picture is from Martin from the UK. He shared a link on [imgur](https://imgur.com/0dTy8).

![](/media/0dTy8.jpg)

This is frightening and a clear endangerment of public safety. It&apos;s bad enough when drivers use their cellphones in cars but to be asking for people to take pictures with one hand on the steering wheel... A whole other story... Now, I know that the argument that drivers should be careful and only attempt to take a picture of it when fully stopped will be floated around and that it should be the drivers responsibility not to crash his car (scan with care ROFL), but what is the likelihood of **THAT** happening? In this day and age where ADHD seemingly is taking over the population, you honestly expect that drivers will not be distracted?
</content:encoded></item><item><title><![CDATA[Enough with the QR Codes!]]></title><link>https://ramisayar.comenough-with-the-qr-codes</link><guid isPermaLink="false">https://ramisayar.comenough-with-the-qr-codes</guid><pubDate>Mon, 19 Mar 2012 00:00:00 GMT</pubDate><content:encoded>

![](/media/8096e4606e0b065e56d219cf2d0805aa_view.jpg)

QR codes have exploded in usage ever since smartphones took off. Presumably, companies wanted to add these ugly white and black boxes to their advertisements to give the impression of being cutting edge and in-tune with technology. However, this &quot;novelty&quot;, if it ever was one (QR codes look too much like barcodes to me and barcodes are oldschool... don&apos;t even try to deny that), is now wearing off but **STILL** we see marketing agencies relentlessly sticking these things everywhere. What is even worse is now I keep seeing advertisements with **JUST** the QR code and no URL to tell me what I am scanning.

**Firstly**, that&apos;s a huge security risk in my mind, it&apos;s like I am trying to open an email attachment from an unknown sender because nobody knows who put up these ads.

**Secondly**, these QR codes also completely wreck whatever design this ad had; worse, I have started seeing ads where the whole thing is just a QR code... Do the people behind these ads have any creativity?

**Thirdly**, I can type in your URL faster than I can scan it, this is especially true with my iPhone as typing on it is a breeze and having me aiming my phone at your silly ad for it to scan properly is a total pain.

**Fourthly**, there are people who still do not own smartphones, like say [60% of the population](https://www.comscore.com/Press_Events/Press_Releases/2011/11/Smartphone_Adoption_Reaches_40_Percent_in_Canada), but if you included a URL on there it would at least be easy to note down or remember.

Let&apos;s see how far this QR code business has gone... Enjoy the following picture.

That is quite simply the stupidest thing I have ever seen... I do not even think that this is scannable with any consumer device. It is a complete waste of money, yet for some reason, the company behind this thought it would be a good idea. Even better, I will never find out which company thought it was a good idea because I cannot even scan the thing! EPIC FAIL!

What&apos;s even better is that I recently received an MMS (multimedia text message) with a picture to a QR code. First, it&apos;s bad enough advertising agencies still randomly text people ads. Second, what am I supposed to scan that with? My eyes?

Enough with the QR codes, it&apos;s ridiculously overused and inefficient. Marketing agencies, you must stop this madness now! /Rant Over.

P.S. Help me out here, can anyone actually give me a use case for QR codes.
</content:encoded></item><item><title><![CDATA[Neat Features in Python: Slicing and Sliding (Stepping)]]></title><link>https://ramisayar.comhidden-features-in-python-slicing-and-sliding</link><guid isPermaLink="false">https://ramisayar.comhidden-features-in-python-slicing-and-sliding</guid><pubDate>Sat, 14 Jan 2012 00:00:00 GMT</pubDate><content:encoded>
Anyone following my [twitter feed](https://twitter.com/#!/ramisayar) can tell you that I am a great fan of the [Python](https://python.org/) programming language. It is an incredible programming language and it is filled with many neat language features that truly help programmer productivity and code readability. For a quick tutorial, visit the informal Python tutorial [here](https://docs.python.org/tutorial/introduction.html). If you would like to suggest a feature to cover, please don&apos;t hesitate to let me know. Leave a comment and let&apos;s have a discussion!

## Introduction

The first feature in Python that I would like to cover is slicing and sliding. Although, **slicing is a very well-known feature** of the Python programming language; **the companion &quot;sliding&quot; or &quot;stepping&quot; feature is not particularly documented in places where it should be** (like [here](https://docs.python.org/tutorial/introduction.html)) and I rarely see any usage of it in regular Python code. Slicing and sliding together make for some sweet list manipulation action! Slicing and sliding is the equivalent to Batman and Robin, one is feared and loved while the sidekick occasionally pops up here and there to complement Batman hehe. I have seen usage of term stepping (perhaps more frequently) and sliding, use the term you prefer. They are perfectly interchangeable.  In my opinion though, slicing and sliding sounds so much better together (hehe one letter change and the letters are consecutive ZOMG!) and since the features are tied together why not make the names sound similar. I am going to stick with slicing and sliding until someone convinces me not to.

## Definition

Slicing is the ability to create a [list](https://en.wikipedia.org/wiki/List_(computing)) (in the abstract data type sense) from another list by cutting pieces of that other list.

![Fig 1. Slicing](/media/2011/09/Slicing-Sliding-Fig1-300x141.png &quot;Fig 1. Slicing&quot;)

Off course, you can do this by looping through the list and picking the elements you want to put in your new list but slicing is great because it provides a cleaner and more readable syntax to do just that. The syntax looks like this:

```python
l[start:end] # slices from start to end - 1
l[start:] # slices from start through the rest of the list
l[:end] # slices from the beginning to end - 1
l[:] # slices through the entire list i.e. does a copy of the list
```

### Example 1

```python
&gt;&gt;&gt; l = range(5) # produces this list: [0,1,2,3,4]
&gt;&gt;&gt; print l
[0, 1, 2, 3, 4]
&gt;&gt;&gt; l[2:4]
[2, 3]
&gt;&gt;&gt; l[2:]
[2, 3, 4]
&gt;&gt;&gt; l[:4]
[0, 1, 2, 3]
&gt;&gt;&gt; l[:]
[0, 1, 2, 3, 4]
```

So what is sliding or stepping? Sliding allows you to specify an increment between the elements to cut from your list.  If you wanted to slice every 2 elements, instead of specifying an increment of 1, you specify 2.

![Fig 2. Slice and Slide](/media/2011/09/Slicing-Sliding-Fig2-300x141.png &quot;Fig 2. Slice and Slide&quot;)

The syntax looks like this:

```python
# slices from start to end - 1 but slide by the step value
l[start:end:step]
# slices through the entire list i.e. does a copy of the list
l[::]
```

### Example 2

```python
&gt;&gt;&gt; l = range(10)
&gt;&gt;&gt; print l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
&gt;&gt;&gt; l[::2]
[0, 2, 4, 6, 8]
&gt;&gt;&gt; l[::3]
[0, 3, 6, 9]
&gt;&gt;&gt; l[::-1] # ZOMG
[9, 8, 7, 6, 5, 4, 3, 2, 1]
&gt;&gt;&gt; l[::-2] # BUT WATCH OUT!
[9, 7, 5, 3, 1]
```

## Why it is awesome?

So why is this awesome? Well as you can see from above, you can select every two elements of the list, reverse a list, reverse a slice of the list... well you can basically do a lot of things that would have required you to create a loop to retrieve specific slices of a list. Your code for grabbing elements from a list is significantly shorter and more concise. Add in the sliding (or stepping) notation and you suddenly have a very powerful method of manipulating lists.

### Slice Objects

Now that slicing and sliding has been explained, the underlying implementation of the above syntax is done by calling the slice method with the same parameters.

```python
slice([start,] stop[, step])
```

However, this method will return a slice object. This object conveniently holds a start, stop and step read-only variables that you can access. You can pass around slice objects easily and reuse the variables. (Clean code yay!) You apply a slice object by doing the following:

```python
&gt;&gt;&gt; # The following is equivalent to list[1::2]
&gt;&gt;&gt; s = slice(1, None, 2) # None is the default for empty.
&gt;&gt;&gt; l = range(5)
&gt;&gt;&gt; print l
[0, 1, 2, 3, 4]
&gt;&gt;&gt; l[s] # Apply the slice!
[1, 3]
```

**Bonus**: Interview Question for Python Candidates:

Reverse a list in one line and explain how it works?
It works through the use of a stepping parameter. We slice the whole but we specify that we want to step in the negative direction by 1, i.e. slide backwards from the end of the list by 1 step.

```python
print mylist[::-1]
```

## Interesting Links

* [Dive into Python List Page.](https://diveintopython.org/native_data_types/lists.html)
* [Slicing and sliding was introducing in Python 2.3.5, here are the release notes.](https://docs.python.org/release/2.3.5/whatsnew/section-slices.html)
* [Slicing tutorial](https://pyref.infogami.com/slice)
* [The slice object](https://pyref.infogami.com/type-slice)
</content:encoded></item></channel></rss>