Releases: IvanMathy/Boop
Version 1.4.0
If you got Boop on the Mac App Store, you can update it there as well.
Peeps,
First of all, how have you been? I myself have been alright. Time is weird, eh? One minute, it’s October. The next minute, it’s still October, but also a year later. And so here we are, much later than expected, reunited again to chat about a new Boop update. And what an update it is.
The kind folks over at Accidental Tech Podcast chatted about Boop, giving it a very nice review. One of their listeners said Boop is “like paper plates but for JSON” and I cannot overstate how much I love that. You can listen to it here: https://atp.fm/437 starting at 1:06:50
Now, this new version finally brings some very much needed upgrades: First off, a new icon that won’t look totally wonky alongside other Big Sur icons. It is an iteration of a new icon designed by @mmshivesh, and it makes quite a bit of a difference in the ol’ dock.
I bet what sticks out is my number of unread messages.
I’ve also spent some time refreshing the overall user interface, to make it more in line with other Big Sur/Monterey applications. The picker has a new look, the editor got a more refined color scheme, and it overall just feels a lot better. Plus, it's now a universal app. Yay!
Anyway, here's what's new:
- New icon inspired by mmshivesh
- New design
- Fixed an issue with the status bar
- Fixed the CSV to JSON script
- 13 new scripts
- Added support for SF Symbols as script icons
- Universal build for Apple Silicon support
New Scripts:
- ASCII to Hex
- Hex to ASCII
- Binary to Decimal
- Decimal to Binary
- Decimal to Hex
- Hex to Decimal
- Fish Hex Path Converter
- Lorem Ipsum
- Sort JSON
- URL Defang
- URL Refang
- URL Entities Decode
- URL Entities Encode
I wish you a lot of great spooks, stay safe and healthy out there!
Ivan_
Full Changelog
What's Changed
- Updated Icon for Big Sur by @mmshivesh in #168
- clear statusView before script execution by @nhnicwaller in #180
- Added hex to ASCII conversion scripts by @aWZHY0yQH81uOYvH in #185
- feat: add "Sort JSON" script by @madnh in #187
- Promoted ascii script, added error by @IvanMathy in #242
- doubled spaces fix by @Akhrameev in #191
- full url encode/decode by @luisfontes19 in #192
- created lorem impsum script by @luisfontes19 in #193
- created script to convert rgb to hex by @luisfontes19 in #195
- created script to compare lines by @luisfontes19 in #196
- Js object to json by @luisfontes19 in #197
- Unicode scripts by @luisfontes19 in #199
- Fix typos in README by @reichert621 in #198
- Time to seconds script by @PeteChu in #201
- Add URL Defang and URL Refang scripts by @nzrb in #211
- Fix main() example param name by @KaraJovian in #224
- Added csv, tsv or markdown table to "pretty markdown table" Script by @xshoji in #203
- fix(csvToJson): address CSV complexities by @Flare576 in #205
- digi 2 ascii by @jnre in #209
- Add script to convert JS arrays/objects to PHP associative array. by @jtolj in #210
- Add scripts for converting decimals to hexadecimal strings and decima… by @mauricevb in #219
- Promoted url script, fixed error, added icon by @IvanMathy in #244
- Promoted sort, added array sorting by @IvanMathy in #243
- Add Fish PATH Hex Converter by @psseelman in #234
- Script: Generate Project Glossary Markdown file by @ke4vtw in #249
- Feat/bigsur by @IvanMathy in #286
- Supporting SF Symbols identifiers for script icons by @nd-net in #273
- Release/1.4.0 by @IvanMathy in #305
- Fixed popover issue by @IvanMathy in #306
New Contributors
- @mmshivesh made their first contribution in #168
- @aWZHY0yQH81uOYvH made their first contribution in #185
- @madnh made their first contribution in #187
- @Akhrameev made their first contribution in #191
- @luisfontes19 made their first contribution in #192
- @reichert621 made their first contribution in #198
- @PeteChu made their first contribution in #201
- @nzrb made their first contribution in #211
- @KaraJovian made their first contribution in #224
- @xshoji made their first contribution in #203
- @Flare576 made their first contribution in #205
- @jnre made their first contribution in #209
- @jtolj made their first contribution in #210
- @mauricevb made their first contribution in #219
- @nd-net made their first contribution in #273
Full Changelog: 1.3.0...1.4.0
Version 1.3.0
If you got Boop on the Mac App Store, you can update it there as well.
Friends,
I hope this release finds you well. Taking care of yourself is important. I've been doing a bit of that lately (hence the delay between releases), but I've also been taking care of Boop. And boy, what a release it is!
Version 1.3.0 brings some big, big, big performance improvements. As in, 99.7% faster editing according to some of my tests, potentially even more on very big documents. Plus, we've got 11 new scripts like SHA hashing and oNe tHaT MAKE YouR tEXt loOk LIkE thAt oooOoOoOOOH.
The syntax highlighting should be a lot, lot faster now, thanks to a fairly big overhaul of how it works under the hood. What's cool with this update is that it also handles tricky situations like this (look at lines 4, 10, and 12):
a lot better:
The speed improvements are clearly noticeable. If you take a look at my notes from when I started working on the issue, you'll see that there was a drastic change in processing time when dealing with significant amounts of data:
And here are some actual benchmarks between 1.2.1 and 1.3.0 with a huge JSON file:
I wrote a giant post-mortem of the why and how this happened, but all things considered I don't think anyone wants to hear me ramble about some obscure part of computer science. So the cliff notes version is: Regexes were too complex, so I changed the way they work by taking inspiration from Prism. This allowed more accurate results with smaller expressions. Also, ditching Swift's String for NSString gave like a 30% performance bump.
Anyway, here are all the changes in this release:
Changelog
- Huge performance upgrades
- Fixed link pasting from Safari
- Fixed window jumping around on launch
- Fixed count character scripts to support unicode
- Fixed line detection in some scripts
- Changed the way the tab key works in the script picker
- Upgraded the smart characters system
And 11 new scripts:
- SpONGeCASe
- Android localized Strings to iOS
- iOS localized String to Android
- HML Encode all Characters
- PHP Unserialize
- Replace Smart Quotes
- YAML to JSON
- JSON to YAML
- SHA1 hash
- SHA256 hash
- SHA512 hash
It took a lot of effort to put this update together, so thank you so much to all the contributors, bug reporters, and users! Next time, we'll tackle some Big Sur updates and a few more things.
That's pretty much it for me, thanks for listening and have a fantastic rest of your week!
Version 1.2.1
If you got Boop on the Mac App Store, you can update it there as well.
Howdy! Here's a quick update to fix a few issues. It contains the same changes as 1.2.0 plus the following fixes:
- The JWT decoder script now works properly
- Input that require substitutions or replacements now work properly.
Here's a comparison of the current version (top) and the previous, broken behavior (bottom) while typing some French:
As you can see, the original characters were left in after the substitution. This should hopefully also fix languages such as Japanese and Chinese.
Anyway, version 1.3.0 is well underway and has some very, very exciting stuff. See y'all soon!
Version 1.2.0
If you got Boop on the Mac App Store, you can update it there as well.
Friends, I hope you're all doing well. Today's Boop update is pretty exciting, and I hope you'll like it!
Feeling lazy? I made a trailer and animated explanations of what's new on Twitter. Otherwise, the full changelog is below.
First of all, we have 19 new scripts, including some absolute bangers like CSS formatting, JSON Minifying, line sorting, and eval Javascripting. Plus, they're now loaded only when you need it so Boop does more with a smaller memory footprint.
Second of all, we have the new modules support system. This lets you bring external dependencies into your scripts with minimal changes and share code between scripts, kinda like that:
const { encode } = require('@boop/base64')
let something = encode('hello')
Boop ships with a couple modules, and you can add in your own. It's overall pretty awesome, and you should read the documentation to better understand how it works. Here's an example where I use lodash to power several scripts based on the same functions:
Third of all, we have a new insert()
function that lets you insert text at the cursor's location. It's pretty neat.
Fourth of all, we now have script debugging. Kinda. You'll need to make your own debug build of Boop, and it's all explained in the documentation so make sure to read it carefully. It's also super cool and very useful when debugging modules.
Last of all, there is a bunch of bug fixes and small enhancements, which can all be found right below.
Changelog
New features:
- 19 new scripts including CSS and SQL format/minify, sorting, and more!
- New modules API! You can now include dependencies as modules, leveraging existing libraries and sharing code between scripts.
- The Boop window now remembers its size when you re-open it.
- Scripts are now loaded on demand, saving processing power and memory.
- Added
insert()
function, allowing scripts to insert text where the cursor is.
Bug Fixes:
- Scripts now properly handle UTF-8 text containing special characters.
- Updated documentation links to avoid missing page issues.
- Fixed memory leak in search panel.
- Fixed a crash when accidentally searching for something very, very long.
- Status View messages now disappear properly after 10s. * Base 64 encode/decode now supports UTF-8.
- Fixed an issue with HTML encode/decode.
- Fixed XML formatter.
- Fixed an issue with JSON to CSV.
- Fixed an issue with Reverse String.
New scripts:
- Camel Case
- Count Words
- Deburr
- Eval Javascript
- Format CSS
- Format SQL
- Kebab Case
- Minify CSS
- Minify JSON
- Minify SQL
- Minify XML
- Natural Sort Lines
- Rot 13 Cypher
- Snake Case
- Sort Lines
- Start Case
- Sum All
- Trim
- Hex color to RGB
Thanks for reading til the end! Next time, I should be done with the performance upgrades. In the meantime remember to be kind to others and to take care of yourself.
Version 1.1.0
If you got Boop on the Mac App Store, you can update it there as well.
Well, dang. Before we get to the release notes, I’d like to say thank you for the overwhelming response to Boop.
I have been working on this app for over two years now, and decided to release it because a couple of friends liked it a lot. I did not imagine it would get so much love from the internet. Between the fantastic PRs submitted, the awesome feature requests, and being featured on the Mac App Store’s “Apps and Game We Love Right Now” list, it’s been quite a thrilling ride.
So once again, thank you for using, contributing to, and/or spreading the word about Boop. It means a lot to me and this is what keeps me going. I hope you'll like this update!
If you're not a fan of reading release notes, here's a trailer for it.
New features:
- Text Services: Send any text to Boop from anywhere by right clicking and selecting Services > Send to Boop. Special thanks to Martin Pittenauer.
- Light mode: Boop now follow the system settings and can optionally be locked into light or dark mode via the preferences menu.
- New Scripts: JWT decoding, Query String <-> JSON, shuffle lines, date to timestamp, and more!
- Better Text Editor: Quotes, braces, and special characters are handled better in this version.
- Find more scripts: Added a link to the scripts repository. Find new ideas or suggest your own!
Bug Fixes:
- Keyboard shortcuts (such as ⌘+W) now behave as expected
- Fixed a potential crash for the macOS 10.15.6 Beta
- Fixed a display issue with the status bar in light mode
Next update, I’ll tackle performance issues, and upgrade the scripting engine to be even more powerful. See you then!
Ivan_
(PS: In the meantime, you can follow me on Twitter)