• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Remember Lenny

Writing online

  • Portfolio
  • Email
  • Twitter
  • LinkedIn
  • Github
You are here: Home / Archives for Web Development

Web Development

How I Used Machine Learning to Inspire Physical Paintings

July 11, 2017 by rememberlenny

Since I was 15 years old, I have been painting graffiti under bridges and in abandoned buildings. I grew up in San Francisco when street art was booming, and inspired by the colors and aesthetic, I looked for ways to create art and taught myself to paint. As I got older, I discovered the graffiti communities on Flickr, and began making an effort to meet artists where I lived and share photos of my work online. As Tumblr grew in popularity, the community moved. Then Instagram emerged, and the community moved again.








“Gift”, Photo collection from 2010–2012. All photos taken and painted by author.

In recent years, I haven’t had the same leeway to paint in public. There was a greater cultural acceptance of street art when I lived abroad. Painting on walls was seen as beautification in areas where there was much demolition. When I moved back to the US, I started painting on larger canvases, and eventually moved toward spray cans and paint brushes.

Kawan’s “Sunset Running” project. Courtesy of Kawandeep Virdee.

Inspired by a project by Kawandeep Virdee, I photoshopped the paintings with motion blur filters, and modified the lighting effects. The result was a creative jumping-off point, enabling me to create a digitally inspired physical painting.

Last year, I started experimenting even more with digitally manipulated images, and their role in inspiring physical paintings. I began creating aesthetically beautiful images by taking classic paintings from the 18th and 19th century and running various photoshop filters over them. I found the color and contrast from these old paintings to be unmatched and beautiful.

Process for turning classic paintings into beautiful color muses.

I took the digital pieces I created and used them as the inspiration for painting new pieces by the classical paintings on a computer and then physically painting the remixed image.

The Ninth Wave hanging on my wall. Photo by author.

I continued my interest in graffiti, again using the digital space as a canvas, and spent a few months building out various software tools that I thought would be useful for graffiti artists. After creating such a large library of literally millions of paintings, I realized I wanted to do something more than just browse the images, so I started exploring different techniques around machine learning.

Painting based on Ray Collin’s Seascape series painting after digitally manipulating the photo. Photo by author via RememberLenny

I started teaching myself about the application of neural networks to do something called “style transfer,” which refers to the process of analyzing two images for the qualities that make the picture recognizable, then applying those qualities to another picture. This meant that I could replicate an image’s color, shapes, contrast, and various other features onto another. The most commonly recognized style transfer application is from Van Gogh’s “Starry Night” to any photograph.

Example from a GitHub repository that implements the Artistic Style Transfer algorithm using Torch. Credit: jcjohnson

Similar to my previous project of painting the digital sunset images, I processed pictures using the artistic style transfer algorithm and then painted them. Referring to the plethora of graffiti images I’d already collected, I used images of nature and processed them in the style of street art I thought looked interesting. The end result was an aesthetically interesting image I couldn’t imagine creating from scratch.

Process of creating the Artistic Style Transfer images.

It’s been a few months since I’ve done anything with this technique of mixing images and painting them. I hope the process depicted above can be a source of inspiration for other programmer-painters who enjoy mixing both practices.

Final version of the digitally inspired painting. Photo by author.

Below are a few examples of what an artist can create by combining street art images with photographs.











Photos by author.

Thanks to Edwin Morris for the grammatical review and Lam Thuy Vo for the ideas.

Filed Under: Uncategorized Tagged With: Artificial Intelligence, Graffiti, Machine Learning, Programming, Web Development

How to write Desktop-first responsive emails

March 6, 2016 by rememberlenny

Most web pages are written with the assumption that all the content is loaded, then the CSS determines the priority for styling. In emails, you have to design your CSS/class/markup base on the assumption that you can have some parts of your code NOT run.

When it comes to responsive layouts, you have to design for the case where desktop is default (without the media queries) and any media queries are added, only if its possible to run inline styles. In the case where you have things like Gmail, where the style tags are stripped out, you need to account for this.

Inliner from Zurb Foundation — http://foundation.zurb.com/emails/inliner.html

Inliners

Most email browsers don’t read style tags. As a result, you have to write your emails with all the CSS properties as style tags in the html tag. This is called inlined CSS. Instead of writing the raw HTML with inlined CSS, there are many services or libraries for inlining a block of HTML and CSS.

The problem with email inliners, like Rail’s Roadie, was that it was inlining the media query styles that would run on mobile, which broke the default desktop layout. By having roadie ignore certain styles, we control the designed layout to render the desktop mode in all cases, and then serve the inline style tag with media queries to be run where possible.

To make things more complicated, Outlook is very outdated. Specifically, there are a lot of CSS3 properties and even CSS2 properties it doesn’t render. As a result, outlook has some legacy hacks where you can use comment flags to tell Outlook NOT to render certain content.

Basics

For responsive emails, where you use media queries, you have to keep a few things in mind.

1. The email is being inlined
2. Email browsers render CSS2 on average
3. You have some email browsers that have comment hacks (ie. outlook)

Where to start

Write Desktop-First HTML and CSS

Based on this factor, you have to code your emails to be desktop-first. The CSS, without any media queries, need to look good on desktop email browsers. This way, you can assume at the very least, the email looks like this:


Add Media Query for mobile CSS

Considering you want to add a media query, you need to add an inline media query on the email. This is pretty straight forward for desktop rendering. For example, you would get something like this:


Setup your inliner

The problem comes up in emails, the two conditions above don’t work perfectly. For CSS to render in emails, it needs to be inlined. This means that the desktop or media query conditions don’t jive well together. This why we started with the Desktop-First css structure. One you inline your css, when theres a media query, you get this mess:


Consider your inliner to ignore media query for inline

When you have a media query, the media queries CSS gets inlined, and consequently overrides the desktop CSS. As a result, you get markup that looks broken. To prevent this, you have to queue your CSS inliner to ignore the media query CSS. To do this, you separate the media query CSS in a seperate style tag and you flag it in the inliner. In the case for Roadie, thats the `roadie-ignore` flag. This way you get this:


Wrap up

By setting the inliner to ignore the media query style tag, you allow all email browsers to render the working desktop CSS. In the case that the email browser will parse the style tag, it can view the media query and optionally render the mobile styles when relevant. This is how you can have cross-email-browser functional CSS emails!


This was written as a comment in a pull request for C2, a project at 18F. We are using this responsive email structure to make our transactional emails better for our end users. We are also doing some awesome stuff. Reach out if you want to learn more.

Filed Under: Uncategorized Tagged With: Email Marketing, Responsive Emails, Web Development

On ad supported websites from a developer’s perspective

November 10, 2015 by rememberlenny

Developers and editorial teams can work together to create a great product.

I’ve worked at media companies for over three years. Watching the recent discussions about ad-blockers, advertiser’s impinging on reader’s rights, and the growth of content distribution networks (read: Facebook, Apple News, RSS readers), I want to share how it feels to be a web developer.

Websites are complicated, but with thorough planning, complexities can be managed. Media companies often operate on a editorial calendar, which forces a perpetually reactionary state of building. In other words, developers are caught in a whirlwind of reactions: to urgent ad campaigns, soon-to-be published articles or published pieces requiring new features. Even developers with the best intentions, who know best practices of building optimized sites, are constantly under-fire. Business needs and the developer’s desire to keep a fast and clean website become inversely related.

First, working in a media company as a web developer is a lot more complicated than it looks. The process starts with a content producer’s desire to make high quality content for a loyal audience. The website is used to gather stories, edit, and publish. Developers spend time optimizing the website’s content for discovery (read: validate HTML, SEO and social sharing). Writers spend time researching stories and write on captivating topics. And editors and producers spend time preparing and shaping stories for their overall audience. These parts keep the editorial machine moving.

The best website can become bloated when advertisers add their own tracking to each ad.

For established brands, companies prepare direct-sales plans, during which publishers create ad inventory. Ads are sold on the tune of unit-per-thousand. This means a thousand impressions of the advertisement are sold at a single price. For example, $15 per thousand impressions. In most cases, the advertisement inventory is sold based on a contractual agreement between the advertiser and the publisher. The agreements are based on common requirements from organizations like the IAB, but can also include specific requirements, per-advertiser. As a result, inventory pricing and qualifications can vary.

Requirements around inventory can vary greatly. Definitions have only been getting more stringent in the past years. Requirements around viewability, conversion, and targeting are important for advertisers. Billable impressions require a rendered ad to be have at least 50% of the creative in-view to the user for at least 1 second. Conversion and targeting is based around certain agreed clicks on the ad or specific types of users. In regards to demographics, advertisers can specify contracts to require traffic to be domestically based, targeted by age, or catered to user interests.

Publishers are responsible for providing the space on their webpage to render the ads. These predetermined places on the webpage are reserved for ads and packaged as available inventory. The actual placement for these ads are agreed upon based on interests from the editorial designers, as well as the business team. The editorial influence seeks to protect the diginity of the site’s content. The business team considers the various parameters that determine a valid ad impression, and seek to reduce the wasted page-view opportunities.

The techniques around tracking user activity have entirely changed in recent years. Media companies employ countless individuals responsible for understanding on-site behavior. Oftentimes, using 3rd party tracking services, such as Google Analytics or Omniture, publishers track the top-level site metrics around traffic activity. The basic metrics to watch are unique viewers, number of page views, and referrer traffic. Advanced software is implemented to gain further insights to help editorial parties understand their progress in order to grow their audience.

The collected data is used to target company specific performance indicators, often driven by business needs. The larger the organization, the more tools are used to infer insights from the existing site traffic. The more 3rd party tools a business group can implement on the website, the easier their job becomes. Unfortunately, the methods for implementing these tools are not always ideal.

Traditionally, the addition of 3rd party tools is facilitated and monitored by the web developers. With new tools, such as Tag Managers, 3rd party tools can be added in the form of scripts, without the notice of developers. In the immediate, this solves a problem for the marketing and business group, who need to gather data on a tight turnaround. For the developers, the practice of haphazardly adding scripts can counteract the attempts to improve the website’s performance. Because the number of people who can add scripts to the site is uncoordinated, this can lead to unnecessary overlapping functionality.

In the worst cases, the publishers who create partnerships with brands for ad inventory sales are inundated with unnecessary bloat. Each advertisement on a webpage comes with its unique set of creative assets and tracking files. While a publisher may have its own set of site traffic tools, each advertisement may also contain their own.

The combination of 3rd party tools, business intelligence tracking, advertisements, and advertisement specific 3rd party tracking tools create a path of unmanageable complexity.

The rubik’s cube of ad supported websites.

Given these circumstances, there isn’t a clear way forward. Simplifying the website’s permitted scripts or restricting the tooling used by the website isn’t always an option. The growth of an organization often ties directly into the increase in unnecessary scripts and stake holders

No wonder content distributors are gaining traction. Content producers will never be entirely out of business, but the profit margins continue to thin. The distribution channels that can leverage content feeds, such as RSS or Facebook, can create frameworks that control the entire tracking, ad serving, content loading, and user platform.

I imagine in coming years, media companies will re-approach the importance of highly performant websites. The difficulties in managing the on going complexity are solved when engineering influences are prioritized in business level discussions. I’m excited to see how tech teams reshape the digital media landscape. There’s a lot of interesting stuff ahead.


Thanks to Jihii Jolly, KC Oh and Alex Godin for editing and ideas.


Thoughts on Media is a community publication on Medium, curated by ReadThisThing.


If this was interesting to you, follow me on Twitter.

Filed Under: Uncategorized Tagged With: Media, Newspapers, Web Development

Developer

September 18, 2015 by rememberlenny

Recently, I had lunch with a aspiring developer who reached out to me online. He was deciding whether or not to enroll in a web development bootcamp, and decided to ask my opinion. Up to then, he had been a freelance web developer and even employed off-shore contractors to build him a legitimate Instagram marketing service. His service was straightforward, simple, and making money.

I realized how my drive into the technical aspect of products have taken me away from the perspective of solving problems that people will pay for. Instead, I’ve spent most of my time exploring software development as a passion.

I started a series of projects this year that I have taken from idea to product. I released an update for my iOS app, built a community platform for sharing breakup stories, made a low-cost VR story builder platform, released a chrome extension, explored a social network based on the twitter network graph, and launched a delayed email sending widget for publishers.

Everyday, I’ve enjoyed exploring the problems associated to building a product that didn’t exist. I’ll pull out my computer to and from work and work on side projects. I figured out what skills I didn’t have and tried my best to learn them to make a service that other people could use. In each case, I was trying something new, that I couldn’t have done before.

I’ve gotten to the point in my explorations where I want to do more. My first few years of professional web development was focused around contracting. Through contracting, I was able to accumulate skills that provided employable skills. From there, I was able to freelance and deepen my understanding my value as an employee.

I became an expert of WordPress websites, learned to make stores, set up virtual environments, configure servers, mastered concepts surrounding best practices, identified how to keep up with trends, developed a rhythm for learning, and regularly attended meetups, conferences and hackathons.

After a number of years as a web developer employee, I found myself pushing away freelance projects and focusing on personal projects. I deepened my understanding of software that wasn’t immediately valuable, but would be important for seeing my ideas to fruition. If I wanted to make a social network, I learned how. If I wanted to make an iOS app, I understood the options and pursued the best route.

Through this, I learned Ruby, developed many rails applications, used front-end frameworks, built my own set of prototyping practices, became obsessed with workflow process, identified the fastest and cheapest ways to launch products, and began showcasing my past work.

As a front-end developer, I remember learning about mobile development and being very confused. I started learning frontend css frameworks to understand best practices and began identifying the common solutons to a responsive web. I learned how to use CMS’s and began regularly making WordPress websites. From there, I had begun reading about API-first development and didnt know how the tools I knew would let me build any application. The concepts made sense, but I didnt have the toolchain to do it. So I learned how to use node and rails and explored the different options. As I encountered problems or questions, I would identify the solutions and then learn them.

Im feeling like the next step is to build things with people that solve problems people will pay for. Its not a huge step from where I’ve been exploring. My attention recently has been lost on the “newest and best” programing languages and trends.

I have passed the point where I feel the things I don’t understand will have a significant improvement on what I can offer. Im ready to start working on projects that fill needs that people can’t fill themselves.

Filed Under: Uncategorized Tagged With: Web Development

Thoughts on an indexable and easily presentable web.

May 27, 2015 by rememberlenny

Xposted https://medium.com/@rememberlenny/benefits-of-a-google-and-facebook-optimized-web-c3a50b604814

Google and Facebook changed websites in seemingly obvious ways. SEO and Sharing weren’t a “thing” until they respectively attained critical mass. Before Google, there were Yahoo and AOL portals. I don’t remember those days. Before Facebook, there was “homepages” and news sites.

Websites optimized for visibility on Google. People became aware of the potential benefits in traffic from seemingly simple acts of optimizing for search keywords. The more obscure, the more likely the term was going to showcase your website first. People optimized their sites for indexability. Away with the obscure and . Rise of the

and .

Now websites optimize for sharability. The implication of having your website shared on Facebook or Twitter means that someone is “referring” your website to their inner circle. The value of content stands out amongst the seemingly unending content. Social activity became a signal to differentiate quality. As a result, websites optimized for their social cards, clickable titles, and concise descriptions.

The emergence of an infinitely indexable web created the sense of having anything at your fingertips. Anything that you would want to know is only a search result away. The emergence of social networks created a venue for content discovery through the lens of your social filter. The content your consume is as relevant to you as your friends are interesting.

With Google, the available content becomes overwhelming. The sheer quantity of available results reduces your chance of viewing anything more than the immediately available results. When users are dissatisfied with their search results, they are more likely to refine their search then they are to scroll up and down their result. As a result, value of content is limited to the user’s ability to craft effective queries.

Similarly with Facebook, the discoverable content is polarized by the social filter a person creates. Most political opinions and religious sentiments will be reflective of a person’s existing beliefs. As a result, news feeds become a collection of familiar content.

In the context of the points above, the value in Google’s effect on the internet is the shift into indexable content. In relation to meta data on a page, the value of Facebook is the shift toward attention grabbing titles (opposed to the keyword packed SEO titles) and the concise descriptions. Both services encourage the use of valid html and rich meta tags.

There is a missing gap when it comes to discovering the context behind discovered information. A search result is isolated information experience. There is no context associated to the result that helps explain its significance. The value of any information is created relative to everything else.

Content discovery is easier when browsing is efficient. The newsfeed is a unending updating source of distraction. When time is scarce and information is abundant, this can be dangerous. The value of not needing to click into many web pages or open many tabs in outweighed by time wasted in the newsfeed.

We need something that provides broad relevant content to the information we are viewing. We need to leverage the lessons we’ve learned from optimizing brief attention-high information experiences.

Filed Under: Uncategorized Tagged With: Future Of Technology, Semanticweb, Web Development

Thoughts on an indexable and easily presentable web.

May 27, 2015 by rememberlenny

Google and Facebook changed websites in seemingly obvious ways. SEO and Sharing weren’t a “thing” until they respectively attained critical mass. Before Google, there were Yahoo and AOL portals. I don’t remember those days. Before Facebook, there was “homepages” and news sites.

Websites optimized for visibility on Google. People became aware of the potential benefits in traffic from seemingly simple acts of optimizing for search keywords. The more obscure, the more likely the term was going to showcase your website first. People optimized their sites for indexability. Away with the obscure <marquee> and <blink>. Rise of the <h1> and <a title=””>.

Now websites optimize for sharability. The implication of having your website shared on Facebook or Twitter means that someone is “referring” your website to their inner circle. The value of content stands out amongst the seemingly unending content. Social activity became a signal to differentiate quality. As a result, websites optimized for their social cards, clickable titles, and concise descriptions.

The emergence of an infinitely indexable web created the sense of having anything at your fingertips. Anything that you would want to know is only a search result away. The emergence of social networks created a venue for content discovery through the lens of your social filter. The content your consume is as relevant to you as your friends are interesting.

With Google, the available content becomes overwhelming. The sheer quantity of available results reduces your chance of viewing anything more than the immediately available results. When users are dissatisfied with their search results, they are more likely to refine their search then they are to scroll up and down their result. As a result, value of content is limited to the user’s ability to craft effective queries.

Similarly with Facebook, the discoverable content is polarized by the social filter a person creates. Most political opinions and religious sentiments will be reflective of a person’s existing beliefs. As a result, news feeds become a collection of familiar content.

In the context of the points above, the value in Google’s effect on the internet is the shift into indexable content. In relation to meta data on a page, the value of Facebook is the shift toward attention grabbing titles (opposed to the keyword packed SEO titles) and the concise descriptions. Both services encourage the use of valid html and rich meta tags.

There is a missing gap when it comes to discovering the context behind discovered information. A search result is isolated information experience. There is no context associated to the result that helps explain its significance. The value of any information is created relative to everything else.

Content discovery is easier when browsing is efficient. The newsfeed is a unending updating source of distraction. When time is scarce and information is abundant, this can be dangerous. The value of not needing to click into many web pages or open many tabs in outweighed by time wasted in the newsfeed.

We need something that provides broad relevant content to the information we are viewing. We need to leverage the lessons we’ve learned from optimizing brief attention-high information experiences.


If this was interesting to you, follow me on Twitter.

Filed Under: Uncategorized Tagged With: Future Of Technology, Semanticweb, Web Development

  • Go to page 1
  • Go to page 2
  • Go to Next Page »

Primary Sidebar

Recent Posts

  • Thoughts on my 33rd birthday
  • Second order effects of companies as content creators
  • Text rendering stuff most people might not know
  • Why is video editing so horrible today?
  • Making the variable fonts Figma plugin (part 1 – what is variable fonts [simple])

Archives

  • August 2022
  • February 2021
  • October 2020
  • September 2020
  • August 2020
  • December 2019
  • March 2019
  • February 2019
  • November 2018
  • October 2018
  • April 2018
  • January 2018
  • December 2017
  • October 2017
  • July 2017
  • February 2017
  • January 2017
  • November 2016
  • October 2016
  • August 2016
  • May 2016
  • March 2016
  • November 2015
  • October 2015
  • September 2015
  • July 2015
  • June 2015
  • May 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • October 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012

Tags

  • 10 year reflection (1)
  • 100 posts (2)
  • 2013 (1)
  • academia (2)
  • Advertising (3)
  • aging (1)
  • Agriculture (1)
  • analytics (3)
  • anarchy (1)
  • anonymous (1)
  • api (1)
  • arizona (1)
  • Art (2)
  • art history (1)
  • artfound (1)
  • Artificial Intelligence (2)
  • balance (1)
  • banksy (1)
  • beacon (1)
  • Beacons (1)
  • beast mode crew (2)
  • becausewilliamshatner (1)
  • Big Data (1)
  • Birthday (1)
  • browsers (1)
  • buddhism (1)
  • bundling and unbundling (1)
  • china (1)
  • coding (1)
  • coffeeshoptalk (1)
  • colonialism (1)
  • Communication (1)
  • community development (1)
  • Computer Science (1)
  • Computer Vision (6)
  • crowdsourcing (1)
  • cyber security (1)
  • data migration (1)
  • Deep Learning (1)
  • design (1)
  • designreflection (1)
  • Developer (1)
  • Digital Humanities (2)
  • disruption theory (1)
  • Distributed Teams (1)
  • drawingwhiletalking (16)
  • education (3)
  • Email Marketing (3)
  • email newsletter (1)
  • Employee Engagement (1)
  • employment (2)
  • Engineering (1)
  • Enterprise Technology (1)
  • essay (1)
  • Ethics (1)
  • experiement (1)
  • fidgetio (38)
  • figma (2)
  • film (1)
  • film industry (1)
  • fingerpainting (8)
  • first 1000 users (1)
  • fonts (1)
  • forms of communication (1)
  • frontend framework (1)
  • fundraising (1)
  • Future Of Journalism (3)
  • future of media (1)
  • Future Of Technology (2)
  • Future Technology (1)
  • game development (2)
  • Geospatial (1)
  • ghostio (1)
  • github (2)
  • global collaboration (1)
  • god damn (1)
  • google analytics (1)
  • google docs (1)
  • Graffiti (23)
  • graffitifound (1)
  • graffpass (1)
  • growth hacking (1)
  • h1b visa (1)
  • hackathon (1)
  • hacking (1)
  • hacking reddit (2)
  • Hardware (1)
  • hiroshima (1)
  • homework (1)
  • human api (1)
  • I hate the term growth hacking (1)
  • ie6 (1)
  • ifttt (4)
  • Image Recognition (1)
  • immigration (1)
  • instagram (1)
  • Instagram Marketing (1)
  • internet media (1)
  • internet of things (1)
  • intimacy (1)
  • IoT (1)
  • iteration (1)
  • jason shen (1)
  • jobs (2)
  • jrart (1)
  • kickstart (1)
  • king robbo (1)
  • labor market (1)
  • Leonard Bogdonoff (1)
  • Literacy (1)
  • location (1)
  • Longform (2)
  • looking back (1)
  • los angeles (1)
  • Machine Learning (13)
  • MadeWithPaper (106)
  • making games (1)
  • management (1)
  • maps (2)
  • marketing (4)
  • Marketing Strategies (1)
  • Media (3)
  • medium (1)
  • mentor (1)
  • message (1)
  • mindmeld games (1)
  • Mobile (1)
  • Music (2)
  • Music Discovery (1)
  • neuroscience (2)
  • new yorker (1)
  • Newspapers (3)
  • nomad (1)
  • notfootball (2)
  • npaf (1)
  • odesk (1)
  • orbital (14)
  • orbital 2014 (14)
  • orbital class 1 (9)
  • orbitalnyc (1)
  • paf (2)
  • paid retweets (1)
  • painting (1)
  • physical web (1)
  • pitching (2)
  • popular (1)
  • post production (1)
  • Privacy (1)
  • process (1)
  • product (1)
  • Product Development (2)
  • product market fit (2)
  • Programming (6)
  • project reflection (1)
  • promotion (1)
  • prototype (17)
  • prototyping (1)
  • Public Art (1)
  • Public Speaking (1)
  • PublicArtFound (15)
  • Publishing (3)
  • Python (1)
  • quora (1)
  • Rails (1)
  • React (1)
  • React Native (1)
  • real design (1)
  • recent projects (1)
  • reddit (3)
  • redesign (1)
  • reflection (2)
  • rememberlenny (1)
  • Remote work (1)
  • replatform (1)
  • Responsive Emails (1)
  • retweet (1)
  • revenue model (1)
  • rick webb (1)
  • robert putnam (1)
  • ror (1)
  • rubyonrails (1)
  • segmenting audience (1)
  • Semanticweb (2)
  • Senior meets junior (1)
  • SGI (1)
  • Side Project (1)
  • sketching (22)
  • social capital (1)
  • social media followers (2)
  • social media manipulation (1)
  • social media marketing (1)
  • social reach (5)
  • software (3)
  • Soka Education (1)
  • Spatial Analysis (2)
  • spotify (1)
  • stanford (2)
  • Startup (21)
  • startups (7)
  • stree (1)
  • Street Art (4)
  • streetart (5)
  • stylometrics (1)
  • Technology (1)
  • thoughts (1)
  • Time as an asset in mobile development (1)
  • Towards Data Science (4)
  • TrainIdeation (42)
  • travel (1)
  • traveling (1)
  • tumblr milestone (2)
  • twitter (1)
  • twitter account (2)
  • typography (2)
  • unreal engine (1)
  • user behavior (1)
  • user experience (3)
  • user research (1)
  • user testing (1)
  • variable fonts (1)
  • video editing (2)
  • visual effects (1)
  • warishell (1)
  • Web Development (8)
  • webdec (1)
  • webdev (13)
  • windowed launch (1)
  • wordpress (1)
  • Work Culture (1)
  • workinprogress (1)
  • zoom (1)