You can now pass input data to all tools via ?input-url=URL query argument.

Check out this example - Load a GIF from Giphy and extract 15th frame from it as a PNG.

Load a CSI Miami GIF from Giphy and extract 15th frame from it as a PNG

In this example GIF's URL is:

https://media.giphy.com/media/cNWU2Zeh54VJC/giphy.gif

And ?input-url query is:

?input-url=https://media.giphy.com/media/cNWU2Zeh54VJC/giphy.gif

Full url to a tool that extracts 15th frame:

onlinepngtools.com/convert-gif-to-png?input-url=https://media.giphy.com/media/cNWU2Zeh54VJC/giphy.gif&frame=15

Input-url query argument also works with chaining.

Here's an example - Load a good boi JPG from Imgur, flip it horizontally, convert to grayscale and change JPG output quality to 5%.

Load a good boi JPG from Imgur, flip it horizontally, convert to grayscale and change JPG output quality to 5%

Image tools also accepts input images as Data URI encoded data via ?input argument.

Here's an example - Resize a base64-encoded 32x32 pixel image to 64x64 pixels, pixelate the result, make the image transparent, crop it to 192x64 pixels, add "Hot!" italic text to the right.

Resize a base64-encoded 32x32 pixel image to 64x64 pixels, pixelate the result, make the image transparent, crop it to 192x64 pixels, add

In this example image is a Data URL:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAFTElEQVRIS32We2wUVRTGf/fOzG7ZbosWSimtFkpBTZGH+AY00YCGRIkPVEwUND4iJgj4/MvIKyE+CCGID0wUsUriIzFGBRSJgghUIogEWmqspYVCK1Dabnfnca+5M8s2C+hJJpOZyT3fud/3nXNHaK01JpQCIaLrQqE16p+juHu34u3fTtDaSOy66STuXQDSuvAaQJwF8H7/Ce27OGOmIGLxvAXac/H2/kDm+zr81kbwPURBIYWPL8cZM+k/k5sPOYDM9i/IbF9F7PpZFEx6BJxYuFBnUqQ3ryezpQ7d15NLJosHkVzwNtawkfkAvhs929H6HIDfUE/qu4XIZCWJu99EFpeA75Le+D7pjR+gvUxeIlFUQtH8t7AqR+Xe654u0ls34NTeiF19ZT6A7j5F5pePsarG4oyeBELi7vqG1CfL8yo/my2k6IlXcWpviF4pRXrTWjK7NpCYuQSndnI+wLlCB8eb6X3nBYK2pnwKjDyBuQSJmc8Sv/XBiMpUN70fPU9wei8Dpi4hNmHqBQBMIac7wg+ZrRtCenJhgawGWQXqIKhWiF17G4nZixBGL63x/9qHf7geZ/w0rLKq8wGMDfu+XIN92dUh7+pES5RfgBwN1tjo0f8ZdBvI0gqS81aHyYxGwlg8K26Oylwf+B6pz1fi7v4Wu2YC3v5tEPigQQwGy8hSaLJDsAvU34BlkZj1IvGb7sXd+TVBezMFt88JLXwegH9oNz1rX0L3nkHYTr9rJFjXRPQYMBPBflB/RDszIicefoU+U9yvmxkwYy4F02aDlP0UmUZKrV8cuiYvTPVDwDaGKMgCCIU+KvF3AB5htfboifiNe9DpXuRFQ8IGtGvG9wMERw7Rs/qZSGAzKcxlnGKBNRFkjUmuQcaQiSrUmXb8H7vR7Wa0ZEsy9+wOwxHy0Muh+GGjpb+vo++zFaA0siKqVjVnqzc2j2uElcQun4GwE3itdQTNKYLdArL9J0qN9UCfAVFcQvLpldgjxiCUm9apdYtw6zdCDGwj5kWgjkd3UWySJ3Aq7sceNAX3yEf4HVtAS1QjBAej3VoTgHSkj4lQi+mPIYKuTt2zeh5B80FEeQRggPpD4gy9E6d8BlqlyTStQHU3RFNXCfQ/oNMgy0F3gf9TtBNn3M0UProUEXS26e43Hkd1HkPWgjWun0tQWMXjiY14EuEMRHtdZA6/huptQhZUoP2uEDQX6QhAd4I1rJrk/DWIoKNVd7/+GOr0cayrQF5m2jlsfoRVSKx6LtbA8aAVaB/v2JcEZw7glN2O3/kjQde+cG5F/oVgJ6gWkCVlFD33HiI43aF7Vj1N0HY4cszoLIBWWBdfTXzEUyDPetR8c9HKRdhF+J1bcVvWgTaWi9YFu0H9BXJIJUUL382K/KHpgW+RV4AV2TfcgVPxAE75HVH1eRGdfKqvlUzjcrR3KvK2lx0jx6IGNP0Q2tSMh9S6xZDMYE0BkTTZLGKXzsEuvaW/wnNATOJ0wzJ0pj0ENNz724ybJAPumUfBtIcjAHNSpeqW4dZvQo7MCh0XxCofxC6b/j8AJ0k3LEW7J6BPEOwBdQTsUVeFDpIlQ/tPNNXZRurTFXgHtiHLfOQohTX8SuI1jyIKys6yFt3D7tX4nT/j/vk+uiONahCodoE9YhwD7nsWe3ht/6jIsR6eal/h7vwG1dUSUmZfMhK7aiJy0FBEPBFNg3QvwYk/8Zp3oI6fhO44MlGOM/FW4pPvQg424yBbS25c51AU6mQ73qF6/MO/oY42obpPhOezNr82ZgMymvsiOQSrvDo8f+3Lr8UqrQTLzlPqX1sejSZHcIRWAAAAAElFTkSuQmCC

And ?input query is:

?input=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAFTElEQVRIS32We2wUVRTGf/fOzG7ZbosWSimtFkpBTZGH+AY00YCGRIkPVEwUND4iJgj4/MvIKyE+CCGID0wUsUriIzFGBRSJgghUIogEWmqspYVCK1Dabnfnca+5M8s2C+hJJpOZyT3fud/3nXNHaK01JpQCIaLrQqE16p+juHu34u3fTtDaSOy66STuXQDSuvAaQJwF8H7/Ce27OGOmIGLxvAXac/H2/kDm+zr81kbwPURBIYWPL8cZM+k/k5sPOYDM9i/IbF9F7PpZFEx6BJxYuFBnUqQ3ryezpQ7d15NLJosHkVzwNtawkfkAvhs929H6HIDfUE/qu4XIZCWJu99EFpeA75Le+D7pjR+gvUxeIlFUQtH8t7AqR+Xe654u0ls34NTeiF19ZT6A7j5F5pePsarG4oyeBELi7vqG1CfL8yo/my2k6IlXcWpviF4pRXrTWjK7NpCYuQSndnI+wLlCB8eb6X3nBYK2pnwKjDyBuQSJmc8Sv/XBiMpUN70fPU9wei8Dpi4hNmHqBQBMIac7wg+ZrRtCenJhgawGWQXqIKhWiF17G4nZixBGL63x/9qHf7geZ/w0rLKq8wGMDfu+XIN92dUh7+pES5RfgBwN1tjo0f8ZdBvI0gqS81aHyYxGwlg8K26Oylwf+B6pz1fi7v4Wu2YC3v5tEPigQQwGy8hSaLJDsAvU34BlkZj1IvGb7sXd+TVBezMFt88JLXwegH9oNz1rX0L3nkHYTr9rJFjXRPQYMBPBflB/RDszIicefoU+U9yvmxkwYy4F02aDlP0UmUZKrV8cuiYvTPVDwDaGKMgCCIU+KvF3AB5htfboifiNe9DpXuRFQ8IGtGvG9wMERw7Rs/qZSGAzKcxlnGKBNRFkjUmuQcaQiSrUmXb8H7vR7Wa0ZEsy9+wOwxHy0Muh+GGjpb+vo++zFaA0siKqVjVnqzc2j2uElcQun4GwE3itdQTNKYLdArL9J0qN9UCfAVFcQvLpldgjxiCUm9apdYtw6zdCDGwj5kWgjkd3UWySJ3Aq7sceNAX3yEf4HVtAS1QjBAej3VoTgHSkj4lQi+mPIYKuTt2zeh5B80FEeQRggPpD4gy9E6d8BlqlyTStQHU3RFNXCfQ/oNMgy0F3gf9TtBNn3M0UProUEXS26e43Hkd1HkPWgjWun0tQWMXjiY14EuEMRHtdZA6/huptQhZUoP2uEDQX6QhAd4I1rJrk/DWIoKNVd7/+GOr0cayrQF5m2jlsfoRVSKx6LtbA8aAVaB/v2JcEZw7glN2O3/kjQde+cG5F/oVgJ6gWkCVlFD33HiI43aF7Vj1N0HY4cszoLIBWWBdfTXzEUyDPetR8c9HKRdhF+J1bcVvWgTaWi9YFu0H9BXJIJUUL382K/KHpgW+RV4AV2TfcgVPxAE75HVH1eRGdfKqvlUzjcrR3KvK2lx0jx6IGNP0Q2tSMh9S6xZDMYE0BkTTZLGKXzsEuvaW/wnNATOJ0wzJ0pj0ENNz724ybJAPumUfBtIcjAHNSpeqW4dZvQo7MCh0XxCofxC6b/j8AJ0k3LEW7J6BPEOwBdQTsUVeFDpIlQ/tPNNXZRurTFXgHtiHLfOQohTX8SuI1jyIKys6yFt3D7tX4nT/j/vk+uiONahCodoE9YhwD7nsWe3ht/6jIsR6eal/h7vwG1dUSUmZfMhK7aiJy0FBEPBFNg3QvwYk/8Zp3oI6fhO44MlGOM/FW4pPvQg424yBbS25c51AU6mQ73qF6/MO/oY42obpPhOezNr82ZgMymvsiOQSrvDo8f+3Lr8UqrQTLzlPqX1sejSZHcIRWAAAAAElFTkSuQmCC

Input-url query argument also works for text tools, not just image tools.

Here's another example - Load digg.com/robots.txt text file, drop empty lines, apply a regex that extract just values, drop non-urls, and then sort them.

Load digg.com/robots.txt text file, drop empty lines, apply a regex that extract just values, drop non-urls, and then sort them

In this example ?input-url is digg.com/robots.txt.

And text tools also support plain text input via just ?input argument.

For example - Remove all leading slashes from digg's robot.txt urls.

Remove all leading slashes from digg's robot.txt urls

In this example input is loaded via ?input=... query string.

Awesome work team Browserling and see you all next time!

At Browserling we just launched a super awesome Online Tools feature - all tools can now be chained together. What that means is that you can pipe output of one tool as input to another tool and do it as many times as you want.

Here are examples!

1. Convert text to binary, split binary numbers into bytes, center binary numbers and replace 1's with x's.

2. Draw an ascii cat, convert it to image, rotates image 30 degrees, flip image horizontally, adds a border around image, and fill transparent regions with red color.

3. Generate first 50 Fibonacci numbers, pick 5 random numbers from these 50, converts them to hex, and joins them in a list by a comma.

4. Generate random JSON that contains only arrays of boolean values, strip all whitespace, and display it in JSON syntax highlighter.

5. Generates a random green PNG, rotate by -45 degrees, sharpen by 200%, then blurs it with pixel radius 10.

6. Generate 4 random calendar dates from 2010 till 2020, add a word "at" between date and time, add text "(don't be late)" at the end of each date.

7. Convert CSV to JSON, then convert JSON to TSV, then convert TSV to YAML, then minify YAML.

8. Prettify XML, then syntax highlight it, then convert XML code to a screenshot, then pixelate the screenshot.

9. Generate 6 results from "[a-f]{8} [0-9]{8}" regex, sprintf the results using "%s:%d" format, then left-pad the result.

10. Transpose TSV, append a column at the end, ROT13 the data, and then URL-encode the result.

Also we've added a super simple chain linking scheme. For example if you want to chain ascii-to-binary with binary-to-hex and then hex-to-image, then you can use ?chain=tool1,tool2,tool3 url scheme, like this:

onlineASCIItools.com/convert-ascii-to-binary?chain=convert-binary-to-hex,convert-hex-to-image

Awesome work team Browserling and see you all next time!

At Browserling we're building a network of online tools websites. Each site in the network focuses on one and only one tool category. Each tool does one and only one thing. The first eleven websites in the network are Online CSV Tools, which is all about working with Comma Separated Values files, Online TSV Tools, which is all about working with Tab Separated Values files, Online JSON Tools, which is all about working with JSON data, Online XML Tools, which is all about working with XML documents, Online YAML Tools, which is all about working with YAML configs, Online STRING Tools, which is all about working with strings, Online RANDOM Tools, which is all about doing random things, Online BINARY Tools, which is all about working with binary zeros and ones, Online PNG Tools, which is all about working with PNG images, Online HEX Tools, which is all about working with hexadecimal values, Online JPG Tools, which is all about working with JPEG images.

Today we're releasing the twelfth site.

The twelfth site in our network is Online ASCII Tools. Online ASCII Tools is a collection of simple, free and easy to use utilities for working with ASCII character set. There are no ads, popups or other garbage. Just ASCII utilities that work in your browser. Load ASCII chars and instantly get result.


www.onlineASCIItools.com

Here's a list of all ASCII tools:

Here are upcoming ASCII tools:

  • Convert ASCII to JPG
  • Convert JPG to ASCII
  • Convert ASCII to PNG
  • Convert PNG to ASCII
  • Convert ASCII to Chemical Elements
  • Convert ASCII to EBCDIC
  • Convert EBCDIC to ASCII
  • Rotate ASCII Characters
  • Randomize ASCII Order
  • Reverse ASCII Characters
  • Convert ASCII to Integer
  • Convert Integer to ASCII
  • Convert ASCII to Keycodes
  • Convert Keycodes to ASCII

The next few sites are onlineHASHtools, onlineUTF8tools, onlineGIFtools, onlineBMPtools, onlinePDFtools, onlineIMAGEtools, onlineBROWSERtools, onlineCRYPTOtools, onlineAUDIOtools, onlineCSStools, onlineJStools, onlineMATHtools, and then 10 more.

If you like what I'm doing you can subscribe to my blog and/or follow me on twitter and/or follow browserling on twitter and/or do nothing.

See you next time!

I illustrated something that I like to say a lot.

Give me the command line and I shall move the world.
Give me the command line and I shall move the world.

Until next time!

I was just interviewed on TGDaily. Here's a copy of the interview:

Peter Krumins is a well-known open-source developer and co-founder and CEO of Browserling, a popular cross-browser testing service. Peter is most known from his popular blog cat-on-mat where he's been blogging about programming for a decade. We'll be chatting with Peter about how he became a programmer, how he created his blog and what it's like to run your own software company.

Q: Hello Peter and thanks for your time. Can you tell more of yourself to the readers?
Peter: Hey, thanks for inviting me here. You already gave a good introduction. Besides Browserling and catonmat, I'm also Hacker-in-Residence at Hackers/Founders, world's largest startup network. The term "hacker" here means a skillful computer user.

Q: How did you start programming?
Peter: I just really liked computers as a kid. I started exploring them and then heard that they can be programmed. I asked everyone I met to explain this to me and teach me. People were helpful and I quickly learned various programming languages.

Q: Which was your first programming language?
Peter: I started with Visual Basic, mIRC Scripting and C all at once. I also tried C++ but couldn't understand templates so I only learned it later.

Q: Which programming language do you enjoy the most?
Peter: I like many programming languages. They're all pretty much the same. They're all Turing machines. But if I have to choose one then it's Perl.

Q: What do you think new programmers should know when they start?
Peter: That programming is super hard and it will take many years to learn it.

Q: How to learn a new programming language?
Peter: You should just start with an empty text file and try to write some code in that language, and use a search engine to find examples. Don't buy books as you don't know which one to choose and most authors have no idea how to teach. Another great approach is to start with interactive online tutorials such as Code Academy or the similar sites.

Q: You're an author of a book yourself, aren't you?
Peter: Yes, I actually wrote several books about one-liners. Perl one-liners, Awk one-liners, Sed one-liners and now I'm working on Bash one-liners.

Q: What are one-liners?
Peter: One-liners are these tiny programs that fit in a single line of code and do one and only one thing really well. They're the best time savers. One-liners help you quickly accomplish big things. For example, doing quick data calculations, deleting particular lines in files, extracting patterns and converting data. All this can be done with one-liners and doesn't require you to write bigger programs.

Q: What's the difference between Perl, Awk, Sed and Bash one liners?
Peter: There is no big fundamental difference. These are just different languages. I like to know many languages so I wrote about them all, and will be writing about many more.

Q: How did you write one-liners books?
Peter: It started as a tutorial on my catonmat blog. I wanted to show people how awesome one-liners are. My tutorial turned into a series of posts. Then I self-published my posts as e-books. Then No Starch Press noticed my work and I published Perl One-liners with them.

Q: How was it to work with No Starch Press?
Peter: It was a long process. We did a lot of editing for about 6 months until it was finished.

Q: How did you start your blog?
Peter: I just wanted to become popular online and establish my name as a great developer. My idea was that if I write interesting articles and create interesting projects then people will get to know me and when I launch a startup I'll immediately have a lot of users and customers.

Q: Did that work?
Peter: It did! My blog quickly grew in popularity and when I started Browserling I already had a base of users and when I went to meetups people told me they read my blog. Success!

Q: How did you start Browserling?
Peter: I read a lot of Paul Graham's essays about starting a startup. Then I met a friend online in Perl programming channel on FreeNode and he had read Paul Graham's essays, too. Then we just started working on the idea that we had and just launched.

Q: What's exactly the idea behind Browserling?
Peter: Browserling is a cross-browser testing platform. It lets developers quickly test their website designs and code in all the web browsers. There are so many browsers (IE, Firefox, Chrome, etc), and each browser is a little bit different. To make great websites you've to test your site in all the browsers. Browserling maintains installations of all browsers and lets you test your code in 5 seconds.

Q: What is your biggest challenge faced so far?
Peter: In Browserling or in general? My biggest challenge in life was learning everything I know. That was very difficult and time consuming. At Browserling everything is easy as it's just programming that I really like.

Q: How do you choose your development environment?
Peter: I prefer a dual Windows/Linux setup. Windows runs GUI software, such as Photoshop, and I ssh into my Linux servers with Putty. I automate everything with Perl scripts and one-liners. I use Vim as my text editor. I don't need anything else. As I like to say, give me the command line and I shall move the world.

Q: On your blog you run a popular article series about your favorite books. Can you tell me more about that?
Peter: I just love reading computer and programming books. I constantly keep myself updated about the latest literature. Especially I like books that follow puzzle-hint-solution style, such as The Little Book of Semaphores by Allen Downey, or books that are a dialogue between the writer and the reader, such as The Little Schemer.

Q: What are you fond of doing when not coding?
Peter: I like to make comics for nerds.

Q: What's more important talent or hard work?
Peter: I don't know. A little bit of each, I suppose.

Q: What are your plans for any new projects?
Peter: Actually I just started a new project. It's a network of online tools. Online tools are tiny utilities for getting simple tasks done. Each online network site focuses on a single tool category and each tool does one and only one task. All tools work in the browser and are entirely powered by JavaScript without any server-side processing, so they are super fast and I can handle 1 million users on a $5 Linode. That has been fun.

Thanks Peter!