OCTOBER 18, 2018

Who said that making art was easy? Today, I'm glad to invite you to see the world from the perspective of an artist and creative that brings her craft everywhere she goes, might it be painting at her studio or teaching youngsters how to use digital tools to formalize their ideas.

Listen to artist, designer, and educator Jiyoo Jye on the struggles of making art and choosing your projects; education at an innovation school as a creative; when to share your work and the role of feedback; media consumption and technology; and her approach to simple living and daily routines.


And hey! You can now listen on iTunes, Spotify, Overcast, and Stitcher!

OCTOBER 17, 2018

This year, the ACADIA conference is taking place at UNAM's Facultad de Arquitectura, Mexico City. As part of the Talk to a Wall workshop, Cristobal Valenzuela (@c_valenzuelab) talked about his work on RunwayML, ml5js, and a lot of what's going on at the moment on the field of artificial intelligence, machine learning, and deep learning.

Along his definition of artificial intelligence, "[The] simulation of intelligent behavior in computers," he shared the following quotes of some of the most relevant researchers of artificial intelligence over the last years.

Models for Thinking, Perception, Action.

—Patrick H. Winston, MIT

Many things can be AI, including simple programming. AI is the automation of thought.

—François Chollet, researcher and author of Keras

A field of study that gives computers the ability to learn without being explicitly programmed.

—Arthur Samuel, MIT. Samuel Checkers, 1957

If you're interested in artificial intelligence and machine learning, you should definitely follow @c_valenzuelab, @ml5js, and @runwayml.

OCTOBER 11, 2018

Autodesk AEC Generative Design Day in Barcelona. Kean Walmsley, Nono Martinez Alonso, Raquel Bascones Recio, & Safi Hage

Last week, I had a really good time at Generative Design Day, in Barcelona. I recently relocated from the US to Spain. This was a great opportunity to meet some Autodesk colleagues in person (among which were Raquel Bascones Recio, Kean Walmsley, Jacob Small, Paolo Serra, Safi Hage, and Reginald de Visscher); to talk about the next-generation AEC tools I'm working on at the Autodesk Generative Design team; and to meet some of our European customers.


You can head over to Kean Walmsley's blog to read more about the event — these are my highlights from his post:

[Autodesk] had invited our larger customers from all over Europe to come and hear about the use of generative design technologies in the AEC space, both present and future.

[...]

For those of you who aren’t familiar with The Living, they’re an architectural practice that Autodesk acquired back in 2014. [...] Over the last few years The Living has done pioneering work applying generative design in the AEC space. They’re the ones responsible for the generative design of the A320 Bionic Partition (admittedly more of an engineering project), the generative space planning of Autodesk Toronto’s new office in the MaRS district based on employee data, and the generative layout of the AU 2017 Exhibit Hall to maximize buzz and access. Oh, and the generative urban planning tool that Van Wijnen are now using, of course.

[...]

Raquel Báscones Recio was our master of ceremonies, introducing the subject of the event and its various speakers. She also put in a great deal of work to make the event happen, in the first place. Jacob Small is a legend on the Dynamo forum. He works in our support team in Boston and gave a presentation on Dynamo.

[...]

People seemed to respond well to the vision for generative design, and I had some really good discussions with a few attendees who were particularly motivated by the position my team is taking on this: there’s a huge opportunity to create designs based on data.


Next week: ACADIA 2018, Mexico City.

SEPTEMBER 28, 2018

Every requirement is an opportunity for delight, even the ugly ones. Sometimes the creative treatment of these warts are the most enjoyable parts of a design.

—Frank Chimero, The Shape of Design

SEPTEMBER 26, 2018

Lobe is a web-based visual programming language to create and deploy machine learning models, founded in 2015 by Mike Matas, Adam Menges, and Markus Beissinger "to make deep learning accessible to everyone," recently acquired by Microsoft.

Lobe is an easy-to-use visual tool that lets you build custom deep learning models, quickly train them, and ship them directly in your app without writing code.

I saw a live demo at SmartGeometry earlier this year and I can't wait to play with it once its deployed on Microsoft's servers.

You can see a few examples at Lobe.ai. (They're looking for people to join their team.)


Watch this video to see examples of things people have built using Lobe and how to build your own custom deep learning models.

SEPTEMBER 25, 2018

From png to jpg.

mogrify -format jpg *.png

From jpg to png.

mogrify -format png *.jpg

SEPTEMBER 23, 2018

The Processing Foundation recently announced the second Processing Community Day event, which will be happening on Jan 19, 2019, at University of California, Los Angeles (UCLA):

[A]n inclusive event that will bring together people of all ages to celebrate and explore art, code, and activism. The day-long event features four themed-tracks — Accessibility, Disability, and Care, Radical Pedagogy, Under the Silicon, the Beach!, and Epic Play!. Each themed track contains lightning talks and sessions presented by conference guests we invite through an open call.

In addition to a full day of programming, we want to make space for anyone to share ideas and projects with the community. We will set up Show & Tell Stations, a Processing Community Cafe, and a Community Open Mic Session for participants to sign-up on the day of the event. The program will wrap up with an after party consists of performances, food, and drinks.

You can get a good picture of the purpose of this event (and the people making it possible) by reading Taeyoon Choi's afterthoughts of 2017's event at MIT Media Lab, and here is a YouTube Playlist with all of 2017's talks (including the ones by Andrés Colubri, Jose Luis García del Castillo y López, Dan Shiffman's Coding Train, Cristóbal Valenzuela and Cassie Tarakajian

Early bird tickets are available here. Go get yours!

SEPTEMBER 21, 2018

Olver Reichenstein on iA Writer 5.1:

The all new Tags and x-callback-urls are so hip they’ll take you to funky town.

Here is how tags started. We decided to add smart folders to iA Writer for Mac. Just before wrapping that task up, someone on the iA Writer design chat said:

Great, now I’m going to use tags with smart folders and get organized.

I'm super excited about this new feature. I found myself organizing my writing in various different ways with iA Writer—including prefixing file names with hashtags to group drafts by topic. Definitely, this is going to be a game changer.

These are my highlights from this release:

  • Write #tags to group files (See tags working)
  • All hashtags are shown in Organizer and Go menu (and can be hidden from Preview and PDFs)
  • Added authenticated x-callback-url commands to read and write files
  • Dark appearance (will adapt to the system's light and dark appearance with the incoming macOS Mojave)
  • HTML tags are dimmed in Editor

SEPTEMBER 16, 2018

Last August, the simple gesture of a stranger boosted my mood on my way to work. I've been living in Cambridge, Massachusetts for three years now, and the time for me to move onto new things has come—I'm going to miss this place.

Here is a little story on how paying attention to the slightest, subtle differences of your day-to-day can add meaning to your life.

SEPTEMBER 4, 2018

Researcher Nathan Melenbrink on his research on simple robots, teaching, his efforts to bring news neutrality to the internet, liking new things, acquiring taste, and much more.

AUGUST 28, 2018

In TypeScript, as in other languages, Array.map allows you to apply a function to each of the items on a list or array. You can either pass an existing function which will take each of the items as its input parameter (say, the existing Math.sqrt function, or one that you define).

let list = [0, 1, 2, 3]; // [0, 1, 2, 3]
list.map(Math.sqrt); // [ 0, 1, 1.414.., 1.732.. ]

Or you can also define a lambda function on-the-go.

let list = [0, 1, 2, 3]; // [0, 1, 2, 3]
list.map((value, key, all) => {
  list[key] = value * 2;
}); // [ 0, 2, 4, 6]

AUGUST 19, 2018

There is a nifty way to specify the way in which you want each of the pages (or Laravel routes) of your site to be indexed by search engines. In my case, I looked Robots meta tag and X-Robots-Tag HTTP header specifications to learn more about what was possible.

In short, you might tell Google a specific route or page has "no restrictions for indexing or serving" by setting the X-Robots-Tag HTTP header to all or, on the contrary, tell it to stop indexing (or saving cached versions of a page) with the noindex value.

In Laravel, the guys at Spatie made it really easy. Just install their spatie/laravel-robots-middleware composer package on your Laravel app with:

composer require spatie/laravel-robots-middleware

Let's see a few examples on how to use this.

Allow every single page to be indexed and served

Create a new middleware in your application.

// app/Http/Middleware/MyRobotsMiddleware.php

<?php
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Spatie\RobotsMiddleware\RobotsMiddleware;

class MyRobotsMiddleware extends RobotsMiddleware
{
    /**
     * @return string|bool
     */
    protected function shouldIndex(Request $request)
    {
        return 'all';
    }
}

And then register your new in the middleware stack.

// app/Http/Kernel.php

class Kernel extends HttpKernel
{
    protected $middleware = [
        // ...
        \App\Http\Middleware\MyRobotsMiddleware::class,
    ];

    // ...
}

Forbid every single from being indexed, cached, and served

// app/Http/Middleware/BlockAllRobotsMiddleware.php

<?php
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Spatie\RobotsMiddleware\RobotsMiddleware;

class BlockAllRobotsMiddleware extends RobotsMiddleware
{
    /**
     * @return string|bool
     */
    protected function shouldIndex(Request $request)
    {
        return 'noindex';
    }
}

Conditional robots middleware

Probably, the most interesting application of this middleware is to embed more intelligent logic to avoid indexing specific pages, but letting Google (and other search engines) crawl the pages you want to expose in search engines.

We could send a noindex header for our admin pages only, for instance.

// app/Http/Middleware/SelectiveRobotsMiddleware.php

<?php
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Spatie\RobotsMiddleware\RobotsMiddleware;

class SelectiveRobotsMiddleware extends RobotsMiddleware
{
    protected function shouldIndex(Request $request) : string
    {
        if ($request->segment(1) === 'admin') {
            return 'noindex';
        }
        return 'all';
    }
}

Remember that you need to add all of your new middlewares to the app/Http/Kernel.php file in order for them to be called before each request. This method can be handing to block search indexing with noindex or to customize the way search engines are allow to process your pages. Here are other directives you can use in the x-robots-tag HTTP header and what they mean.

  • all - There are no restrictions for indexing or serving. Note: this directive is the default value and has no effect if explicitly listed.
  • noindex - Do not show this page in search results and do not show a "Cached" link in search results.
  • nofollow - Do not follow the links on this page
  • none - Equivalent to noindex, nofollow
  • noarchive - Do not show a "Cached" link in search results.
  • nosnippet - Do not show a text snippet or video preview in the search results for this page. A static thumbnail (if available) will still be visible.
  • notranslate - Do not offer translation of this page in search results.
  • noimageindex - Do not index images on this page.
  • unavailable_after: [RFC-850 date/time] - Do not show this page in search results after the specified date/time. The date/time must be specified in the RFC 850 format.

Thanks!

I hope you found this useful. Feel free to ping me at @nonoesp or join the mailing list. Here are some other Laravel posts and code-related posts.

AUGUST 18, 2018

Oramata iOS Icon

oramata (visions in Greek) is an iOS app developed by Panagiotis Michalatos to apply customizable effects to a live video stream on your iPhone, iPad, or iPod touch. The real time effects feel smooth as they are applied to your device's video stream, straight from your camera. You can get it for $2.99 on the App Store.


Oramata iPhone Screenshots
Screenshots of oramata for iPhone.

Get oramata on the App Store.

AUGUST 15, 2018

Host Nono Martínez Alonso gives a brief overview of what's new and what's coming to Getting Simple over the next months.

This month's interview features Ian Keough — The Father of Dynamo — who shares insights on working remotely full time, getting started with a startup, the flow state, and a lot more. (Listen to the episode here.)

New interviews are already underway, listen to this mini-episode and discover who will be on The Getting Simple Podcast in September, October, and November.

If you want to keep tuned, join my mailing list, and you'll receive (very few) emails when new content and episodes are out.


Thanks for listening!


If you enjoy the show, the best way to support it is by rating it on Apple Podcasts, or by becoming a Patreon to support it financially. Share this episode on Twitter or Facebook.


AUGUST 1, 2018

Ian Keough (@ikeough) is the founder of Hypar. He writes code from his garage to automate the generation of the built environment to help stakeholders make better decisions faster. Trained as a fine artist and architect—and known as The Father of Dynamo—Ian believes efficiency breeds quality and automation yields better, higher-quality products. This episode uncovers the Ian Keough beyond Dynamo—including his life habits, tactics to get into the flow state and avoid distractions, his new adventure to disrupt the architecture, engineering, and construction industry, and a lot more.

JULY 31, 2018

ViveTrack is a DynamoBIM package that allows real-time reading of HTC Vive spatial tracking data, developed by Jose Luis García del Castillo y López (@garciadelcast) at the Generative Design Group at Autodesk.

JULY 15, 2018

Simplified Facebook Login Screen

Facebook's homepage always offers you to, mainly, sign up and create a new account. But you only have to do that once. Every single time you access Facebook afterwards, you probably just want to log in. With the following steps, you'll be able to hide everything but the login form.


This workflow overrides the styling of some website elements to hide them, and you just need to paste the following code inside the Stylebot Chrome extension when you have Facebook.com open in your browser. It will just hide the HTML elements that clutter your screen and leave a clean interface for you to sign in.

#pagelet_video_home_suggested_for_you_rhc,
#createNav,
#appsNav,
#pageFooter,
.fb_logo,
.pvl,
.login_form_label_field {
    display: none;
}

How to install Stylebot (and apply this style to Facebook.com)

  • Open this page on Google Chrome.
  • Click on Add to Chrome.
  • Go to Facebook.com
  • Open Stylebot by clicking the CSS icon you just installed, in your browser's top-right panel.
  • Then select Open Stylebot...
  • Paste the code snippet in the text editor.
  • Press Save.

Beware that, as Facebook updates their CSS class names (this is, the way the name the code that styles their website), this code will need to accommodate the user interface changes.

JULY 1, 2018

Saurabh Mhatre (@sm8928) talks about the simplicity behind deployable systems, the chaos of taking pictures, mindful photography, material science, social media, productivity tools, and more.

JUNE 27, 2018

Last month, Jose Luis García del Castillo y López (@garciadelcast) and myself (@nonoesp) had the opportunity to lead the Mind Ex Machina cluster at SmartGeometry1 2018. (Watch on YouTube.)

This talk summarizes the projects that came out of our workshop, which intended to explore the possibilities of robot-human-ai interactions with the use of machine learning libraries and the Machina2 robotic control framework.

The SmartGeometry workshops and conferences were hosted in May 7–12, 2018, at the John H. Daniels Faculty of Architecture, Landscape, and Design at University of Toronto, Canada. The Mind Ex Machina cluster worked most of the time at the Autodesk Toronto Technology Office, located in the MaRS Discovery District.

I'm extremely thankful to Marc Webb for the following video, which provides a bit more insight on the things we worked on. (Watch on Vimeo.)

Shout-out to the impressive work of other clusters such as Fresh Eyes and Data Mining the City. See all of the videos here.

I think the whole group had a blast working on these projects—thanks! You can find notes and source code of the projects on GitHub (especially, in this repository).


🧠x🤖


  1. SmartGeometry is a bi-annual workshop and conference, this year entitled sg2018: Machine Minds, at the University of Toronto, Canada, from 7th-12th May 2018. The sg2018 workshop and conference is a gathering of the global community of innovators and pioneers in the fields of architecture, design and engineering. ↩︎

  2. Machina is an open-source project for action-based real-time control of mechanical actuators or, in more human terms, it allows you to talk to a robot and tell it what to do. Machina is developed and maintained by Jose Luis García del Castillo y López. ↩︎

Want to see older publications? Visit the archive.

Listen to my Podcast.