Weeknotes: October 23, 2023

A weekly digest of progress, updates, and insights from Tableland.

Begin transmission…

Studio launch & learnings

by Aaron Sutula

Studio updates (Thanks for the feedback!)

The ETH Online hackathon kicked off recently and we worked hard to get the first version of Tableland Studio available to hackathon participants. During the first week of hacking, we received some great feedback about ways we could improve Studio. Over the past week, I've worked on implementing as much of that feedback as possible. The following changes are already live at

https://studio.tableland.xyz

:

  • Better chain names in the Deployment execution chain selector.

  • Chains in the Deployment execution chain selector are categorized by "mainnets" and "testnets".

  • Scroll bar is visible in the Deployment execution chain selector so you know you can scroll down to see more chain options.

  • User input strings are trimmed of white space so your Team, Project, and Table names and descriptions don't have any accidental white space at the beginning or end.

  • When creating a Table, the Table name and column names are validated so you don't use any reserved SQL keywords (which will cause the Table Deployment to fail).

Keep the feedback coming and we'll keep the improvements coming!

ETHOnline observations

by Dan Buchholz

We're less than a week away from rounding up ETHOnline. There has been a LOT of activity from developers building on Tableland in both the Tableland Discord as well as ETHGlobal's. It's still a bit early to know what types of applications developers are building, but in terms of how they're using the protocol, it's been all across the board.

The Studio is a hard requirement for any prizes, and the hackathon has been extremely helpful for producing value input, from bugs to new features to just, general, positive feedback. One of the goals for why we built the Studio was to make it easier for developers to get started without worry about all of the setup work. There are a lot of features planned to make that process even easier, but the developer activity has shown a significant uptick and points to the Studio enabling a much lower lift for newcoming devs.

Explore… interview

by Andrew Hill

Protocol Labs has been releasing some of their "Explore…" video series. Here's a brief spot from my recording back in April(?): here. I try to unite some of my thinking and passion areas around open data, data provenance, data verifiability, and data science with our work on protocols and tooling for data publishers.

Call for Lightning Talks: Share your insights at our 'Boom' session in Istanbul

by Brian Hoffstein

DevConnect in Istanbul beckons, and we're inviting visionary developers to our 'Boom' lightning talks session. We seek speakers ready to share innovative technical insights in a crisp 5-minute presentation. The session will be a unique platform to showcase your work to a diverse audience keen on the latest developments in distributed storage and blockchain technology. It’s not just a stage, but a confluence of minds ready to delve into the technical narratives shaping the decentralized ecosystem. Seize this chance to contribute to the broader dialogue and network with peers. Submit your talk here: https://cfp.ipfsconnect.org/ipfsconnect-istanbul/cfp

How we approach user design

by Jim Kosem

User-centred design at Textile and for the decentralised internet world at large requires quite a bit of nuance in understanding the user. This is because the user is often times a developer working on bleeding edge technologies and requires complex tools to navigate the space. In a nascent space such as this where the end-user software is equally complex and tool and transaction based, it has to date largely been a struggle to help build tools that build tools. Designers and developers can begin looking at what is happening in terms of platform design, that is, the design of a loose base where many things can happen rather than a strict set of premeditated and guided interactions, for instance through guidelines and developing best practices. This helps insure that the many times there isn’t necessarily a designer, that the end user, who could also be another developer, will get the best experience based on evidence and design thinking.

DIMO's giving away a Macaron

by Marla Natoli

Our friends at DIMO are giving away a DIMO Macaron, their new bite-sized activity tracker and digital companion for your car. DIMO are doing some really interesting work to transform automotive utility. To enter, post a meme and tag @DIMO_Network for a chance to win: here (note: we are not affiliated with this contest in any way).

Testing out Basin

by Dan Buchholz

We released the Basin MVP some weeks ago, and I've been testing various Postgres setups for compatibility checks as well as checking out some helpful tooling for Filecoin and Parquet. Recall that Basin let's you set up Postgres publications and replicate that data to Filecoin—once a Filecoin deal is made, that data can be extracted as Parquet for further usage.

There are some initial setup requirements to use Basin, but Supabase had most of these ready out-of-the-box. So, all it really required was running the basin publication create command with database connection information that Supabase displays in their Project settings > Database dashboard, and then the basin publication start command worked with relative ease.

After data is replicated, tools like lassie and car make it easy to extract data from a Filecoin deal's CID, and then the parquet-cli can help further manipulate that data locally. Parquet is a bit newer for me, so I figured I'd share some of this tooling for anyone in the same boat. For example, you can do something like:

> lassie fetch -o - bafybeia7g3c3avf7h5nt7ij27oytzo2jrmabye7taovvx3glo33w4dzbc4 | car extract

To retrieve the replicated data locally, and then parquet CLI lets use interact with the file to show its contents:

> parquet head -n 2 starter/my_table/export178ebbfc78a992150000000000000001-n909083943229489153.0.parquet {"id": 0, "val": "val1"} {"id": 1, "val": "val2"}

Lastly, DuckDB has a nice CLI tool where you can open up its shell and interact with parquet files directly:

> duckdb v0.9.1 401c8061c6 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. SELECT * FROM READ_PARQUET('~/starter/my_table/export178ebbfc78a992150000000000000001-n909083943229489153.0.parquet') LIMIT 2; ┌───────┬─────────┐ │ id │ val │ │ int64 │ varchar │ ├───────┼─────────┤ │ 0 │ val1 │ │ 1 │ val2 │ └───────┴─────────┘


Other updates this week

  • At the end of ETHOnline, a number of developers dropped a note about their experience during the hackathon. This one in particular was amazing to hear with such positive feedback (there were over 20 sponsors!), so we figured we’d share it with everyone:

Thanks for making such as easy-to-use product! Using Tableland, we were able to completely eliminate the need for us to maintain our own centralized database for our product. Of all the sponsors we used, you provided the best overall developer experience.

- Discord: @linkmorgan

End transmission…

Want to dive deeper, ask questions, or just nerd out with us? Jump into our weekly research office hours. Or, for hands-on technical support, you can join our weekly developer office hours.

And if you’d like to discuss any of these topics in more detail, comment on the issue over in GitHub!

Textile Blog & Newsletter logo
Subscribe to Textile Blog & Newsletter and never miss a post.