WordPress

#24 – Aki Hamano on Building Useful Blocks for Fun – WP Tavern

[00:00:00] Nathan Wrigley: Welcome to the Jukebox podcast from WP Tavern. My title is Nathan Wrigley. Jukebox is a podcast which is devoted to all issues WordPress, the individuals, the occasions, the plugins, the blocks, the themes, and on this case, the constructing of helpful blocks and making them freely accessible. For those who’d prefer to subscribe to the podcast, you are able to do that by trying to find WP Tavern in your podcast, participant of selection. Or by going to WP tavern.com ahead slash feed ahead slash podcast. And you’ll copy and paste that URL into most podcast gamers as nicely.

When you have a subject that you just’d like us to characteristic on the podcast. Nicely, I’m very eager to listen to from you and hopefully get you, or your thought featured on the present.

Head over to WP tavern.com ahead slash contact ahead slash jukebox. And you should utilize the contact kind there.

So on the podcast right this moment, now we have Aki Hamano. Aki is a contract developer from Japan. He builds web sites for purchasers and enjoys setting himself troublesome issues to unravel. He got here to my consideration when Justin Tatlock wrote an article on the Tavern. A couple of playful block he’d created, however extra on that later.

After a little bit additional exploration, it seems that Aki’s been busy in his spare time, creating a variety of blocks. All of them helpful and all of them freely accessible within the WordPress plugin repository.

We begin off by having a short chat about what the WordPress scene is like in Japan. Is there a powerful sense of neighborhood and do in-person occasions happen there?

We then transfer on to speak about how he turned fascinated about creating blocks. Did he discover it simple to grasp the brand new abilities required to stand up and operating? And was there sufficient documentation to make speedy progress?

We spend the rest of the podcast speaking via the 5 blocks, which Aki has put within the WordPress plugin repository. Typically they have been created to scratch his personal itch, to unravel an issue that he confronted in his work. However generally, as along with his glorious piano block, it was only for enjoyable, and the problem of making an attempt one thing new.

The piano block apart. All of our keys blocks have a straightforward to grasp function and so they tackle a easy problem and resolve it. That is maybe one of many predominant causes that blocks are so fascinating. They are often easy or advanced, utilitarian or simply enjoyable.

It’s an fascinating dialogue. And also you by no means know, maybe you’ll end up utilizing Aki’s blocks sooner or later your self.

For those who’re fascinated about discovering out extra, you could find all of the hyperlinks within the present notes by heading over to WP tavern.com ahead slash podcast. The place you’ll discover the entire different episodes as nicely.

And so with out additional delay, I convey you, Aki Hamano.

I’m joined on the podcast right this moment by Aki Hamano. Hiya Aki.

[00:03:35] Aki Hamano: Hiya, Nathan.

[00:03:36] Nathan Wrigley: I’m actually happy to have you ever on the podcast right this moment. Actual welcome to you. Aki is becoming a member of us right this moment to speak largely about blocks. We’ve had just a few conversations earlier than this, making an attempt to determine what it’s that we’re going to say. We’re going to speak primarily about Aki’s contribution to wordpress.org and the blocks that he’s created there.

To start with Aki would you simply introduce your self, inform us who you’re and the place you come from?

[00:04:06] Aki Hamano: Okay. I’m an internet developer by dwelling in Japan. And I constructed many web site, for my shopper and just lately, in my aspect undertaking, I create some blocks, and printed to wordpress.org plugin listing. It’s very implausible.

[00:04:29] Nathan Wrigley: We can be speaking about these blocks later. There’s lots of them and a few of them have a really critical function, as we’ll discover out, and a few of them are only for enjoyable. So we’ll get into that in a second. Earlier than then, may you simply inform us a little bit bit concerning the WordPress neighborhood in Japan? I confess I’ve by no means been to Japan, and I don’t know too many individuals within the WordPress neighborhood in Japan. So I’m simply to listen to what it’s like, how massive it’s. Are there any meetups? Something like that?

[00:05:02] Aki Hamano: Ah, sure. Really, we plan to create an occasion, WordPress Mega Meetup in Could. And there’s a lot of communities in Japan, and we’re having fun with to contribute or speaking about WordPress or create issues. It’s very thrilling in Japan.

[00:05:27] Nathan Wrigley: Do you’ve got common meetups unfold all through Japan? For instance, within the UK, there are completely different meetups, often within the massive cities like Leeds and London and Manchester and so forth. Do you’ve got meetups in Japan as nicely?

[00:05:43] Aki Hamano: Really, I don’t have a meetup, however the largest meetup is WordPress Tokyo meetup. That’s the largest communities.

[00:05:54] Nathan Wrigley: And are actual world occasions taking place for the time being, or like the remainder of the world, are you doing digital meetups due to COVID restrictions.

[00:06:04] Aki Hamano: Sure.

[00:06:05] Nathan Wrigley: Yeah, it’s all digital, like it’s right here within the UK. Nicely, it’s good to, good to have you ever on the present. If anyone who’s listening to this, is from Japan, we’d be most to listen to from you and probably get engaged in conversations about what individuals in Japan are doing with WordPress. Nevertheless it’s good to listen to that you just’ve obtained your Mega Meetup, hopefully popping out in Could.

Let’s speak about your blocks. Nicely, earlier than we get to your blocks, let’s speak about blocks basically. And I wish to ask you the query, what’s it that you just like about blocks? Why do you discover blocks to be thrilling?

[00:06:41] Aki Hamano: I’ve a easy reply. I like to construct the issues, and I believe it was related to make use of Lego blocks. It’s very thrilling, and I’m very excited to see on block editor after I create some little code on my editor. It’s a really, very implausible, that’s all.

[00:07:05] Nathan Wrigley: Did you begin to construct blocks proper originally? Have you ever been doing it for years or is it more moderen? Have you ever simply been doing it for a 12 months or two years or three years?

[00:07:17] Aki Hamano: Perhaps three, perhaps three years, and truly my first block plugin, Wealthy Textual content Extension. And WP Tavern posted an article about this plugin three years in the past. That’s my first block.

[00:07:36] Nathan Wrigley: There’s fairly just a few extra which have come down the pipe and we’ll get to these in only a second. We’ll do them separately in a minute. I’m curious to understand how troublesome you discovered it. Was it very onerous to study the brand new abilities required to construct blocks? Did you discover it simple or was it actually challenged?

[00:07:57] Aki Hamano: Ah sure. I believe it’s very, very onerous. as a result of we have to construct codes and we have to study one other language, JavaScript, and framework reworked or NPM. I didn’t know why do we have to construct the code as a result of, for instance, PHP works you recognize? I didn’t perceive what does it imply to construct. So, it was very obscure the instructions, new language and the construct instruments.

[00:08:33] Nathan Wrigley: Why did you make an effort? If it was actually troublesome, why did you persist and why did you retain going with all of this troublesome new expertise, when it might have been simpler simply to hold on doing what you have been at all times doing?

[00:08:49] Aki Hamano: So. I’ll study from and Block Editor Handbook. There’s many tutorials on there. It’s very helpful doc. I began to create blocks. And one other instance, there’s a helpful GitHub repository, Gutenberg Examples. There are a lot of examples on the repository and I analyze these codes, and in addition, I deep dive into Gutenberg core code and core blocks. It’s onerous to grasp these codes, nevertheless it’s very helpful for me to construct the blocks.

[00:09:33] Nathan Wrigley: Do you assume it’s simpler now? If any person was beginning to construct blocks right this moment, do you assume they’d have a neater time? Are there extra, tutorials, extra documentation to make it simpler than it was for you? Is it a neater factor?

[00:09:52] Aki Hamano: I wish to suggest NPM bundle. So it’s a WordPress create block. The bundle creates a block plugin template and mechanically set up really helpful script bundle. And with easy command, we will construct plugin rapidly. And for those who change some codes in JavaScript, we will see the change on block editor. So first I wish to suggest create block bundle.

[00:10:29] Nathan Wrigley: I’ll hyperlink to that within the present notes. In order that’s the WordPress create block bundle.

[00:10:35] Aki Hamano: Sure.

[00:10:36] Nathan Wrigley: Are there some other instruments that you’ve got discovered helpful? That might be issues in your laptop, software program, or it might be sources, tutorials, or books or something that you just might need used. Is there something which you assume was actually helpful other than the WordPress create block?

[00:10:55] Aki Hamano: There’s many instruments however I exploit primary instruments. For instance, I exploit VS code. For native environments, I exploit WPM, that’s all.

[00:11:07] Nathan Wrigley: Simply these two issues?

[00:11:08] Aki Hamano: Sure.

[00:11:09] Nathan Wrigley: Now I performed along with your blocks over the previous couple of days and there are 5, I believe, presently there. You will discover Aki’s Github repository which has hyperlinks to the general public going through variations of them. Alternatively, it’s also possible to discover them on wordpress.org, and I’ll, within the present notes, hyperlink to them individually. There are 5 and I’m going to undergo them so as of my favourite. Not essentially so as of how intelligent they’re, or how good they’re, however simply those that I like, as a result of I may see a use for them. I’ve left in all probability essentially the most, fascinating one till the top, which is simply implausible enjoyable, however I couldn’t see myself utilizing it, so I’ve left it till the top.

However, first off, let’s speak about your versatile area of block. Now this, you will discover on the wordpress.org repo as you’ll do for all of them. Inform us what this does. That is sublimely intelligent. It’s very, very cool.

[00:12:12] Aki Hamano: Sure. we all know that core spacer block can create area, however solely unit, and just one peak. However I wish to create a number of spacers, relies on window width. This plugin lets you create three varieties spacer, for desktop and pill and the cell. And we will change the break factors.

So breakpoints, it’s used to media queries and in addition I can create a damaging area. So we will cross two blocks, and I would like it, so I made it.

[00:12:55] Nathan Wrigley: Is that why? It was one thing you wanted, and so that you created it after which let it go into the repository? That’s very good to listen to.

[00:13:02] Aki Hamano: Okay, thanks.

[00:13:03] Nathan Wrigley: The interface, the best way that the block works, is you clearly set up it as a plugin in WordPress, after which you’ve got an choice, there’s a spacer choice, which seems, a versatile spacer. And as a substitute of the core block, which simply has the spacer, Aki’s block offers you three completely different spacers in a single.

So the interface reveals you what the cell spacer will do, what the pill spacer will do, and what the desktop spacer will do. And so they’re all there within the interface all on the identical time. I can solely say that you just’ll get it for those who set up it. It’s troublesome to elucidate, however the second you even have it in your web site and also you see the aim of it, it’s good. So relatively than having the settings within the menu on the suitable, the entire settings are, nicely, actually for the peak, the entire peak settings are literally proper earlier than you in a visible manner, after which as Aki mentioned, there’s the choice to, create damaging area. There’s a toggle change and you may create damaging area after which you’ll be able to draw up your content material to overlap with different blocks. It’s very nice. It really works actually, rather well. Nicely achieved.

[00:14:11] Aki Hamano: Thanks.

[00:14:12] Nathan Wrigley: The following one which I wish to speak about might be I believe essentially the most put in of the 5 that we’re going to speak about. That is your versatile desk block. And once more, I’ll hyperlink within the present notes. Would you simply rapidly inform us what your versatile desk block does?

[00:14:29] Aki Hamano: Ah, sure. Probably the most nice level is that we will create merged cells. Core desk block doesn’t enable too merge cells. This burning can create many, many sorts of types on every cells and it’s very simple to insert or delete row and column from backside, prime of the desk. So I believe you’ll be able to create any sorts of a desk.

[00:15:00] Nathan Wrigley: Yeah. So once you’re in Gutenberg, after you’ve put in the plugin, you get the choice so as to add in a block, and on this case, you wish to be choosing the versatile desk block. For those who simply seek for desk, you’ll get the choice to insert it.

It’s obtained an icon with like a lightning bolt, after which it throws in a desk, however the choices there’s so many implausible choices. Probably the most helpful, I consider which as you mentioned, is the power to merge cells. So for instance, for those who put a 3 by three, three row and three column desk in, you could possibly merge the entire columns or the rows, or only a portion of them, and you are able to do that by clicking shift and deciding on a number of cells on the identical time. And then you definately click on the little merge icon to make that occur.

Nevertheless it additionally brings alongside a complete load of different prospects. So there’s, there’s the choice to clearly add in as many rows as you need in a intuitive UI, however there’s choices so as to add in colours, uh, you’ll be able to add in headers and footers to the desk, you’ll be able to add in widths of distinction sizes and, you recognize, padding and margins and all of that. And then you definately’ve obtained choices for captions as nicely, and topography choices as nicely. It’s obtained loads, principally. And it’s all achieved in a visible manner and it simply works. Now this should I’m imagining have taken fairly a very long time to create.

[00:16:23] Aki Hamano: Sure, it could be confused to create desk, however we will create any form of desk. It’s my function.

[00:16:31] Nathan Wrigley: it’s actually, actually glorious. So once more, for those who go to the present notes, you’ll have the ability to discover the versatile desk block. And as Aki mentioned, the principle function there may be simply to, is to essentially, to have the ability to create any structure and merge various things. And also you’ll see within the present notes on the wordpress.org repo, the entire completely different choices and what have you ever. And it’s, it’s very complete. Primarily, if you would like a desk to be displayed in virtually any configuration, then the versatile desk block is extremely really helpful.

My third decide is your wealthy textual content extension.

[00:17:05] Aki Hamano: Sure.

[00:17:07] Nathan Wrigley: Once more actually fascinating. Inform us what this does.

[00:17:10] Aki Hamano: The plugin is my first plugin. I made it two or three years in the past. Now Gutenberg lets you create inline spotlight, however, two or three years in the past, we don’t have the perform. So, I wish to create, I wish to spotlight inline textual content, or I wish to allow, I wish to change the inline font dimension. So I made it.

[00:17:39] Nathan Wrigley: There’s a few choices which grow to be accessible. Primarily, you’ll be able to spotlight textual content in a number of other ways. So you could possibly totally spotlight in a single colour or one other. So you could possibly, for instance, within the pre-installed model, when the plugin is put in, you get the choice for yellow and crimson, however you’ll be able to change these as you want.

And you’ll both do full highlighting of the textual content, or you are able to do half highlighting and you may, you’ll be able to specify how thick the highlighting is. So for instance, for those who needed it to look virtually like an underline, it may spotlight a bit like that. Or alternatively, you could possibly simply go full peak and spotlight the entire textual content, and also you’ve obtained a number of choices to modify various things on, rename the highlighting.

So that you would possibly prefer to rename it as daring crimson or one thing like that. And then you definately’ve additionally, obtained the, different choice, which is to vary the defaults for the dimensions of your textual content. So you’ll be able to have as many as 4 completely different choices, and you may rename them, no matter you want. And you could possibly have like an extremely small, a medium, an enormous, or a extremely massive. Choose no matter names you want.

After which these are added into the Gutenberg editor, as choices for altering the textual content dimension. So let’s say for instance, that in the course of a sentence, for some specific cause, you simply needed one phrase to be extraordinarily massive, you could possibly try this with Aki’s wealthy textual content extension answer. After which in fact you could possibly spotlight it as nicely.

There’s a settings menu, which lets you fiddle with these items, however there is just one menu and every little thing that you have to work together with is in that one, easy menu. Does Gutenberg now do all that this one did?

[00:19:24] Aki Hamano: So highlighting inline textual content is ready to create now through Gutenberg now. However to vary in line textual content dimension, we will’t create now on Gutenberg.

[00:19:37] Nathan Wrigley: So it nonetheless, it nonetheless serves a function, it’s nonetheless helpful. Simply as an apart, how typically do you return and have a look at these plugins and replace them. I can see, for instance, that the versatile spacer block was up to date two months in the past and also you’ve up to date the versatile desk block only one week in the past.

Are you dedicated to retaining every of those going? Do you return and have a look at them, all 5 of them often?

[00:20:05] Aki Hamano: Ah sure. So earlier than WordPress main replace, I examine these plugins will work. Repair some points, I wish to add some new features, sure.

[00:20:18] Nathan Wrigley: So that you return periodically and examine them simply to verify every time WordPress Core is up to date. That’s nice. Thanks. Okay, subsequent one, second to final one, is the customized HTML block extension. What does this do?

[00:20:37] Aki Hamano: There’s block that we will create pure HTML, and we will create pure HTML to point out on front-end. It’s a customized HTML block, nevertheless it’s very onerous coding on block, as a result of there is no such thing as a textual content spotlight and it’s troublesome so as to add indent. So I wish to create some codes in editor that are like VS Code. Really, this plugin use VS Code Core library named Monaco editor. So we will write code like we coding on VS Code. It’s similar to VS Code. It’s simple to create code.

[00:21:26] Nathan Wrigley: This feels prefer it was essentially the most troublesome to create. I might be unsuitable, however this one has so many various choices in there.

[00:21:37] Aki Hamano: Sure.

[00:21:38] Nathan Wrigley: For those who want to create one thing in your web site, which requires you to put in writing some HTML, however the core HTML block doesn’t actually spotlight issues or indent issues in a manner which makes it simple so that you can perceive, since you’re used to your IDE, VS code as you’ve described on this case or no matter you’re utilizing.

This makes the HTML in Gutenberg feel and appear similar to it might do in your textual content, editor of selection. So issues will be indented, issues are highlighted, the font will be altered. You’ll be able to customise it to look precisely how you favor it.

After which once you click on save and publish, every little thing is output on the entrance finish simply as HTML. So, all of that design is stripped away and it turns into HTML. You recognize, for those who’ve obtained one thing in an H1 tag, it seems to be like an H1 in your web site, relying on what your theme is telling that to do. Once more, why did you construct this?

[00:22:46] Aki Hamano: Why? So someday I can’t create a structure with core block or different plugin. So someday I would like to put in writing some code straight. And so I wish to write code extra simply.

[00:23:07] Nathan Wrigley: In case you are accustomed to utilizing a textual content editor, then this may simply be implausible for you. You’ve obtained every little thing that you really want. You’ll be able to resize, you should utilize issues like Emmet and what have you ever, and, you would possibly have the ability to throw in a, the demonstration that you’ve got here’s a record merchandise, sorry, a an ordered record and also you add 5 gadgets in utilizing the Emmet shortcodes and 5 record gadgets will seem and so forth.

So it’s actually for these individuals who wish to put HTML into their WordPress posts or pages and need it to appear like their IDE, one thing that they’re accustomed to, one thing that they’re used to. And yeah, bravo, it’s a chore doing something within the core block trigger it doesn’t have sufficient similarity to what you’re used to doing in your Mac or PC. Okay. So we’ll suggest that one as nicely.

And final however under no circumstances least. That is simply genius. In truth, that is the one which alerted Justin Tatlock, I believe to you, he perhaps been following you earlier than this, however this was the one which he wrote a chunk about over on the WP Tavern, and I’ll hyperlink to that. That is, that is the piano block. I can inform you it does precisely what you assume it’s going to do. It places, it places a piano within Gutenberg. Now, why, why do we’d like a piano inside Gutenberg? That is good.

[00:24:33] Aki Hamano: First, I wish to say it’s simply enjoyable. And perhaps somebody would possibly say, what can they do with this plugin or, what does it imply. My function, my function to construct these items is, take pleasure in to create. I wish to strive a possible, chance of block editor..

I wish to know what block editor can create, can clarify, and in addition, I really like music. I needed to play music on ebook editor. It was loopy.

[00:25:09] Nathan Wrigley: Yeah, that’s one thing that I simply discover actually fascinating. The concept that it doesn’t have a function past studying the right way to use the block editor.

I might completely encourage all people to go and set up this one one, and simply put it someplace and check out it out. Principally what you get is a block and also you add the piano block. It’s obtained a beautiful, apparent icon. It’s in all probability the obvious icon I’ve ever seen that clearly is a piano as an icon. And, you get, it seems to be like a few octaves, keys are all there. You’ve obtained keyboard shortcuts, so each key on the piano is mapped to a key in your keyboard.

So for those who actually needed to, you could possibly really play on the keyboard. Alternatively, you’ll be able to simply hover over along with your mouse and click on on the important thing in query. You’ll be able to improve the amount and reduce the amount. There’s the chance to select from, I don’t know, it seems to be like about 12 completely different sounds.

So we’ve obtained an acoustic bass and electrical guitar and organ, a daily piano, violin, harp, and xylophone and so forth. After which there’s the addition of, there’s a toggle change for these individuals who prefer to have maintain. So it turns the maintain pedal on and off. Now the one function is for enjoyable.

[00:26:29] Aki Hamano: Sure.

[00:26:30] Nathan Wrigley: On the minute, it doesn’t go onto the entrance finish although does it? For those who publish this, that block is not going to seem in your web site. It’s solely within the editor itself. Now, why is that?

[00:26:43] Aki Hamano: My function is to play on block editor, not the entrance finish. It’s the rationale, and it was troublesome to create piano on entrance finish as a result of this block made with React, and I don’t construct React on entrance finish now, however I believe it’s attainable. Sooner or later I’ll allow it.

[00:27:09] Nathan Wrigley: So on the minute, it’s not ready on the entrance finish as a result of there’s gaps within the data that you’ve got. It’s constructed with React on the backend, and also you’ve but to determine the right way to make that occur. Clearly with a undertaking, as enjoyable as this, it doesn’t essentially have a function on the front-end and possibly it’s not proper on the prime of your precedence record.

I’ve obtained to say although, it’s obtained the least choices, a variety of the opposite ones, for instance the wealthy textual content extension that you’ve got and the versatile desk block, they’ve obtained numerous completely different choices accessible to model the best way issues look and so forth. The customized HTML block extension specifically has tons and many completely different choices.

I’m imagining although that they have been doubtlessly simpler to construct than the piano block, as a result of the piano block, It’s like a toy, it’s virtually like a recreation constructed within the editor. So was the piano block, was that essentially the most troublesome to tug off as a result of, you recognize, you’ve obtained all kinds of issues taking place.

You’re creating sounds for the time being that you just click on a button and people sounds need to be a specific octave. They’ve so as to add maintain and be generated by a unique audio sound. I’m imagining, you recognize, relying on which instrument you’re manipulating. Was that essentially the most difficult one to construct?

[00:28:25] Aki Hamano: Uh, yeah. This plugin used internet audio API, and internet audio API may be very, very difficult, however I exploit wrapper library, tone.js. It’s enabled to create sounds with small code. And a lot of the troublesome issues is to seek out good sounds, as a result of this plugin used actual audio sounds, every be aware.

[00:28:53] Nathan Wrigley: Oh wow, okay.

[00:28:55] Aki Hamano: I wanted to seek out audio with GPL compatibility. It’s very troublesome to seek out it.

[00:29:02] Nathan Wrigley: So, for instance, if I play, I don’t know, an a on the acoustic piano after which play a D for instance, then they’re completely different audio information that you just’re pulling out with a view to render that sound?

[00:29:17] Aki Hamano: Sure.

[00:29:18] Nathan Wrigley: That’s actually fascinating. These are all free. Clearly the piano block is simply one thing a bit completely different. It’s a little bit of enjoyable, however the entire different 4 that we talked about, they’re all free and so they all have a really helpful utility. Do you propose now that you just’ve obtained all this expertise, do you propose at any level to return out with any new blocks, any new issues that we would hear about?

[00:29:43] Aki Hamano: Now, I don’t know, however I wish to create block for full web site editor. For instance, I wish to create block, contained in the question loop block. For instance, if the article was posted in just a few days, we’d like a brand new stage. So I’m planning to create a brand new stage block. Or social community sharing hyperlink block.

[00:30:12] Nathan Wrigley: So that you’ve obtained a pair deliberate for the long run. This should take a variety of time. And though you described earlier that you just’ve been doing this to be able to study, and in some instances you wanted one thing to be achieved, presumably to your web sites. Do you propose on creating income, charging, having a professional model of any of those, or are they at all times going to be freely accessible on the repo?

[00:30:41] Aki Hamano: So, I wish to create these plugins at no cost. It relies on WordPress philosophy. No, I don’t assume as a result of I get cash from my very own work. So these plugins don’t want cash. I would like create these plugins at no cost sooner or later.

[00:31:01] Nathan Wrigley: That’s completely implausible to listen to. I really like the truth that you’ve created so many free plugins and so they’re so completely different from one another. If anyone needed to succeed in out to you and speak about these completely different blocks that you just’ve created, what’s the easiest way? That might be an electronic mail or it could be a Twitter account or maybe Slack. What’s the easiest way to get in contact with you Aki?

[00:31:25] Aki Hamano: For those who love these plugins, please comply with my Twitter account, or please ship and direct message. Or please examine my Github repositories.

[00:31:36] Nathan Wrigley: I’ll hyperlink to all of these. The accounts for Github, the Twitter account, I’ll hyperlink to within the present notes. So yeah, if you wish to attain out to Aki and specific your gratitude, or simply have any questions, then make sure to take a look at the present notes on the WP Tavern web site.

Thanks for becoming a member of us on the podcast right this moment. I actually recognize it.

[00:32:00] Aki Hamano: Me too. Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *