MarioGT
Software | Dev Blog | About Me
Dev Blog
πŸ’Ύ (01-09-2021 -- 12:57:31) Backup your stuff! NOW!

Some time ago I decided to leave DropBox as my main backup strategy, why? because they are lazy enough to not provide native Apple Silicon binaries for their macOS DropBox app and all their finder integration subsystem. Their x86 apps are already very resource hungry and slow on Intel Macs, and this situation is even worse on the M1 machines, because they have to run on top of Rossetta 2 in translation mode. They had almost one year to update their apps but they don't care, I canceled my subscription.

Nowadays I backup all my sensible data in 4 places, 2 locally and 2 in the cloud. First I bought two LaCie rugged hard drives, of 2TB each. In one I store my TimeMachine backup, and in the other hard drive, ExFat formatted, a backup accessible through any OS (Win - Mac - Linux). You never know when You will have to escape to another OS!

The two cloud backups that I use are Google Drive and Microsoft OneDrive. In Google Drive I only store my most accessed data, using the free storage included in the Google account. The Google Drive app is already Apple Silicon native, very fast and light on system resources, kudos to the Google coders!

In the case of OneDrive, I have a very large storage capacity (2TB), included with my Office 365 subscription. The official OneDrive app it's not Apple Silicon ready, but I fixed that using an application that it's Apple Silicon native, named CloudMounter, where you can access a myriad of online cloud providers and FTP servers.

cloud mounter

I use Bash scripting with rsync for the heavy lifting and synchronization with my local and cloud storage. Here is the script that I use to copy my home directory to the external Hard Drive, note the --exclude option, where you can specify files and folders to exclude from the backup. For more info about rsync type $man rsync on the Terminal.

        # copy my home folder to the external HD
        
        rsync -uhazrv --progress --delete --exclude={".Trash",".mono",".cache",".npm",".bash_sessions",".bundle",".CMVolumes","Google Drive","Library","Downloads","temp"} ~/ /Volumes/Backup/Respaldos\ Documentos/home/

        echo ">> Backup Ready!"
      

And here is another example of how I compress, sync, and store one folder into my OneDrive account. First I make a compressed copy of my code folder into a temporary folder called "temp", located on my home directory, then I backup and sync that archive into my OneDrive folder. When all the sync is done I delete the temp compressed archive, nice and neat!

        # compress and backup my code folder to OneDrive
        
        echo ">> INIT --code.tar.gz-- en OneDrive"
        tar -czf ~/temp/code.tar.gz -C ~/code/ ./$DIR
        rsync -uhazr --progress --delete ~/temp/code.tar.gz ~/.CMVolumes/oneDrive/Documentos/
        echo ">> OK --code.tar.gz-- en OneDrive"
        rm -f ~/temp/code.tar.gz
      

Also, almost all my current dev projects are hosted on Github (public and private repos). That gives me another layer of protection in case of my computer explodesπŸ’₯. This website also has his Github repository, linked to an action, that in case of a Push request uploads all the updated files to my web hosting server through FTP. In another post I will explain how to do that, stay tuned!

☠️ (19-08-2021 -- 12:14) Parallels Software Awful customer support

Please don't buy any Parallels software, his support is inexistent, his free upgrade policy is ridiculous, I was trying to contact parallels support for days to no avail, I purchased parallels desktop 16 on 5-7-2021, then they released Parallels Desktop version 17 less than a month later, and You guessed, I'm not eligible for a free upgrade!

They don't answer to any PMs in their official Twitter support account, their support web page is broken, you can't send them a direct support request through these channels. Because of all of that I requested a full refund, not directly on their website (I can't), I had to contact cleverbridge, nice folks, they derived my request directly to Parallels, and you can guess what happened, today Parallels responded that they will not refund anything because is not within the return period. Awful simply awful, I will not buy anything from them ever again, period.

πŸͺ² (17-06-2021 -- 15:35) Seriously macOS Big Sur? Why?

This happened today on my mighty powerful MacBook Pro M1, with 16GB of ram, running only a few apps. Out of memory! the only App I'm running, with high use of memory, is Brave Browser, and that not explain why the virtual memory it's not making its job. macOs Bug Sur!

memento
⌨️ (11-06-2021 -- 20:04) Testing some keyboards and more...

For some time I've had problems with my fingers and hand in general, some pains and some numbness. Looking at the "internerd" I have found that this is a big problem for programmers and typists, the good news is that I'm committed to fixing it!

First I tried to switch to a new keyboard layout, searching the internet I found a layout called Colemak, simple to wire to your brain, because you have to learn only 17 new key positions, nice! also your fingers are positioned most of the time on the home row of the keyboard. That means that your fingers are barely moving for reaching the most used keys for the English and Spanish keyboards. The problem with this configuration is that you have to change almost all your custom shortcuts in all your Apps, and this is a big pain in the ***, especially for VIM and Emacs users. I'm a heavy user of Emacs and also VIM, and for that reason I struggled a lot to configure new shortcuts for the new layout, finally I gave up. Colemak is a nice keyboard layout, easy on your fingers and brain, but the friction between this new layout and my workflow was intolerable for me. Anyway check the official website for Colemak, perhaps you can adapt better than me (^ _ ^)

https://colemak.com

Next I tried a split keyboard, the Freestyle Kinesis Keyboard, I found one on eBay for less than 50 bucks and I bought it right away. When the keyboard arrived at my house his build gave me a good impression, nice hardware and with all the special keys layout for macOS, this was the Freestyle Mac Edition. I tried it for a week, but I couldn't tolerate the lack of mechanical switches, the keys were too light to press, I'm a heavy hitter! also the keyboard was totally silent! no clicks sounds! no good for my coder ego! My hands were more tired, and my typing was far more prone to errors, mainly because of the zero tactile feedback. No luck for me with this keyboard.

kinesis freestyle

Finally, I found a very nice 60% mechanical keyboard, the Royal Kludge RK61 with blue switches, that include a really nice led multicolor backlight, macOS support, wired and Bluetooth connection (with the capacity of pairing up to 3 devices at once), and the best of all, a really good price, less than 50USD. The Royal Kludge has excellent reviews by almost all the users that bought it, also has very good reviews on YouTube, hailing its nice sturdy construction, its cheap price, and general functionalities.

This keyboard it's a delight to use, responsive, clicky, cute, and very comfortable to type for hours! I'm sold! this is the one, this is the chosen one! My fingers fly on this little thing, perhaps the 60% layout is the type of keyboard that I'm more comfortable with. Perhaps you think that this layout it's not for you, but listen to me, try this little gem, it's only 50 bucks, this can be your favorite keyboard ever!

royal kludge rk61
🍺 (21-04-2021 -- 10:29:33) Making my software available on Homebrew

Yesterday I accomplished one thing that I wanted to do for a long time, make my software available from the fabulous macOS package manager Homebrew. Some time ago I realized that someone published a Homebrew Cask for my little utility SpaceSaver.app, and that gave me the impetus to make a Cask for ArKiwi.app. First I had to fork the Homebrew/hombrew-cask repo from Github, then create the new Cask, test it, and request the pull to the main branch. All the steps are well documented on the Homebrew Github page, but are not so easy to accomplish, for a better understanding of the required steps read this documentation:

After you request a Pull to the main branch of the Homebrew, automated tests systems start to run, checking all the Cask Ruby code, making sure that your cask can install, uninstall, and update the App without a problem. In some of these steps my arkiwi.rb failed to pass some of the tests, but with the help of two Homebrew contributors my Cask was able to pass all the tests. Some days later was approved to be merged into the main branch of Homebrew/hombrew-cask Yeah! here is the final ArKiwi Cask code:


        cask "arkiwi" do
        version "4.0,400"
        sha256 "6725544c12d8f012a7aafb832c3318ce9a04853296ef3047e9a79c9eee9113d5"

        url "https://www.mariogt.com/appsChest/ArKiwi#{version.before_comma.dots_to_hyphens}.zip"
        name "ArKiwi"
        desc "File archiver"
        homepage "https://www.mariogt.com/arkiwi.html"

        livecheck do
        url "https://www.mariogt.com/appsChest/arkiwiAppCast.xml"
        strategy :sparkle
        end

        app "ArKiwi.app"

        zap trash: [
        "~/Library/Containers/com.mariogt.arkiwi/Data/Library/Application Support/ArKiwi",
        "~/Library/Containers/com.mariogt.arkiwi/Data/Library/Preferences/com.mariogt.arkiwi.plist",
        ]
        end
      

The final step in my Homebrew journey will be pushing TabTopus.app to the Hombrew/homebrew-cask repository, but that will be only possible when I finish the new version available outside the Apple Store, cheers and stay tuned!

homebrew
🐣 (11-04-21 -- 20:07) Good bye macOS AppleStore, thanks to Apple!

UPDATE! on 12-04-2021 Apple allowed me to create 2 new certificates, this fixes my current issues, but this don't change the facts exposed below.

More than 3 weeks waiting for Apple to regenerate my Dev Certificates, several emails send to developer support and replied with words like "exception requests such as this can take an undetermined amount of time to receive an update", or "I have provided this feedback to our internal team", all for no avail. Without these certificates I can't update or publish anything on the macOS App Store, also I can't notarize any of my Apps, I had to pay $100USD to Apple for the right to be on the App Store and notarize my Apps (and pay them 30% of all my sales). Not anymore, I'm tired of being ignored like almost every little indie developer in the Mac world, and because of that I will not be renewing my Apple Developer Program membership, for now on I will publish all my work only on my web site, and forget about Apple Store. The only problem will be that I will not be able to notarize any of my apps anymore, and for that Apple Gatekeeper will be nagging the user showing these awful alert windows, "mandating" them to delete the "offending" app. Anyway, you can override these stupid alerts in the Security and Privacy section on the macOS settings, allowing the App to run on your Mac. Also, I will have to integrate Sparkle framework to TabTopus (allowing the download of updates directly from the App), a nice and rock-solid SDK for that matter, the only problem is the humungous size added to the binary. Today the size of the universal binary compilation of TabTopus is only 800kb in size, but with the addition of Sparkle, that size will be augmented by more than 5MB !! , that's a lot, but the gains to the user are also big in terms of convenience.

The other big change will be that all my current Apps will be offered as DonationWare, with that approach all my current macOS AppStore customers will be covered with free upgrades, and also allowing new users to use all my Apps for free, they can support my work with donations if they want. Perhaps nobody will be donating, but I will be free from the Apple chains, until the day when they decide to block permanently the user to run any non-notarized Apps on macOS, we will see, if that day arrives I will migrate to Win or Linux immediately.

apple lock
πŸ”₯ (31-03-21 -- 21:02) Space Saver, TabTopus and ArKiwi are now Apple Silicon and Intel ready!

Today I put online the version 0.6 of Space-Saver, Universal Binary compiled ! that means that Space-Saver now runs native code for Intel and Apple Silicon machines. Also I have ready the Universal versions of TabTopus and ArKiwi, but Apple still don't fixed my dev certificates, and without that I can't publish any updates to the AppStore or sign ArKiwi, come on Apple!

πŸ™ (26-03-21 -- 14:44) I'm back !!

After months and months of disappearing from the mac world, I'm back! Now I have a shiny MacBook Pro M1, a beast of a machine and my dev companion for the years to come, with this tool finally I can build Apple Silicon binaries for all my Mac Apps, the first one will be of course TabTopus. I hope to be able to upload the new version (with major bug fixes and M1 support) to the App Store the next week if Apple fixes my developer certificates, because right now I can't sign anything to be published in the Mac App Store.

My next steps will be programming a new version of TabTopus with more functionalities and a new UI, also I want to start a new App project related to macOS gaming, and of course, focused on the M1 machines. That's all folks, I hope that this year brings to all of us more luck and more energy to afront the pandemic, cheers!

πŸ”₯ (30-09-20 -- 12:05) macOS Big Sur Beta 9 Good News

Yesterday I installed the beta 9 of macOS Big Sur, and proceeded to test TabTopus on it, and surprise !! the Save Sheet Panel works perfect, Yeah. Appears to be that the Golden Master version is near to be released because they are fixing the most of the bugs at a rapid pace, that is very good news for users and especially for developers that are suffering the bugs in Apple SDK's.

🌈 (22-09-20 -- 12:56) Getting my Software ready for macOS Big Sur

This week I started to prepare my code base to be 100% compatible with macOS Big Sur, almost all my Apps are already ready, but some inconsistencies in the current beta state of Big Sur make some UI misaligned, and that plus the general low contrast in the Big Sur UI, made necessary some tweaking here and there in the interface of some of my Apps.

The more serious bugs, for me anyway, are in the macOS SDK in some areas like the Big Sur implementation of beginSheetModalForWindow, this NSSavePanel method is crashing TabTopus all the time (unlike previous iterations of macOS), I tried several approaches for overcoming this, for no avail, for the moment I'm forced to implement a normal modal window instead of the sheet modal. The bugs present in macOS Big Sur Beta 7 are still significant, both in the user and developer land, but I'm confident that the worst ones will be ironed out in time for the GM release (I hope).

Note: today I filled a bug report informing about this beginSheetModalForWindow related crash.
πŸ’» (18-09-20 -- 19:31) VIM Stuff

VIM I'm a VIM Geek, I love this editor (also Emacs) and I hope that you will love it too :). For all of you that don't know anything about this text editor, I can tell you, with VIM you will be editing code and text faster than a cheetah and more efficient than before. VIM is extensible, lightweight, multiplatform, and FREE !!, but all this KI come with some sacrifice of your part, the learning curve is steep, and some of you will be afraid and somewhat upset in the first attempts of make use of it, but with the time you will be gaining experience and knowledge needed for be efficient in daily use. You can download VIM (and read it documentation) here: VIM WebPage


Opening files from the command line:

Working with files:

Text navigation:

Text editing:

Text editing 2:

Search & Replace:

Window managment:

πŸ΄β€β˜ οΈ (10-07-20 -- 16:00) My nocturnal Dev Setup

This is my battle station, where I spend countless hours coding or procrastinating coding (β—•β€Ώβ—•)

πŸ™ (10-07-20 -- 13:01) TabTopus 3.0 now available on the macOS App Store

Good news !! finally the version 3.0 was published on the macOS App Store, and that after a long road of rejections because of one button named "Edge Beta" in TabTopus. Apple doesn't want anything named " beta" in his App Store, go figure, I had to change the button FOR export data from Microsoft Edge Beta browser to a button named " Edge Insider".

Big changes in this update, support for Brave Browser was added, also Microsoft Edge and Microsoft Edge Insider/Beta now have their own buttons and separated logic. But the big change is invisible from the TabTopus interface, a shiny new HTML parser with multilingual support for the exported HTML bookmarks file, also the parser is more than 50% faster than the old one, now you can export hundreds of tabs in the blink of an eye !!

⛔️ (08-07-20 -- 11:42) Future support for Firefox in TabTopus

The road for integrating Firefox in TabTopus has been a bumpy one. First the good news, I have a prototype that successfully export all the tabs data from Firefox, the bad news is that for extract and parse these data I have to access to the Firefox user data folder, located in ~/Library/Application Support/Firefox/ and that is no go in a Sand-Boxed App, hence impossible for me to publish TabTopus with Firefox support on the Apple App Store (would be rejected immediately). I'm analyzing the possibility of publishing TabTopus with support to Firefox directly from this WebSite, If you are interested in that possibility please let me know. Cheers !! (mario@mariogt.com)