Introducing Hachidori, an Open Source Scrobbler

Posted from Montville, New Jersey, United States.


Just recently, I have gotten back into some OS X programing and decided to port over the existing source code to work with, which is another Anime list managing site that sprung up. While it’s not as comprehensive as the more established site, I didn’t have any problem with their official API, which is rather comprehensive. However, there doesn’t seem to be an API that you can view the Anime information along with the current watch status, so I had to change how the program determines if the title exists on the list and get the current status. But in three hours or so, I got it working.

While the APIs are good, it seems that the search APIs don’t give relevant titles first and just spit out all the titles, leaving me having to develop another algorithm of some sort to get the relevant results before searching through them. Using Parsekit or some work around might fix it, however I don’t have much knowledge in lexical analysis since I’m not a Computer Science major, I major in Information Technology for my Masters) , but hopefully the developers will improve the search APIs. Either way, I plan on adding search exception (tying detected title to the correct title) and correction features to alleviate this drawback (and these lists will be exportable to JSON).

With that, Hachidori is based on MAL Updater OS X and has the same features such as automatic scrobbling, showing basic information about updated title on the status screen, Share Service support, scrobble history and on demand scrobbling. While streaming support is being worked on, what is different from the closed-source HAPU besides my program being open source is that I will only focus on the core features instead of jamming bunch of features and have a buggy product. Plus, I think having an open source alternative encourages developers woho are interested in the platform learn how to interact with the APIs and make their own programs in the language they choose.

So why name it Hachidori instead of Hummingbird Updater OS X? Simply put, shorter names are better and I know a good amount of Japanese.

With that, Hachidori 1.0 Alpha 1 is released. While the basic scrobbling feature works and it will detect most titles correctly, there might be a few bugs and imperfections. If you encounter a bug, report them to the forum post or on Github. I plan on adding Hummingbird specific features in the coming weeks, so stay tuned.


Download 1.0 Alpha 1 (Requires OS X 10.8 or later)

There is also a development blog for this client on Tumblr as well.


MAL Updater OS X is back from the dead, Sort of…

Thanks to the help of Ratan12’s Atarashii API, which is a PHP implementation of the old unofficial MAL API, MAL Updater OS X is back from the dead. The end result…


Yes, it even runs in OS X Yosemite GM 3


I had to make a few changes to the code as the new API handles things slightly differently, but for the most part it works. However, there are some limitations:

  • Twitter functionality does not work. This is due to Twitter updating their API, which in turn drop support for the old API. It will come back when I rewrite the application and it will use the built-in share function within OS X, meaning you can also share the viewing status on Facebook or other social networks OS X supports.
  • Edit Status causes the program to crash, at least in Yosemite. While the update goes through, it causes a segment fault and crashes. I will try to fix this minor bug when I have free time.
  • API now uses HTTPS, kudos to Cloudflare releasing Universal SSL for everyone

You can download the new version at (If you have an old version, you need to reset the API URL Do this by going to Preferences > Reset API URL)

As for the rewrite, I have been putting the core functionality (view, search and update functions) in a reusable framework since I don’t expect the code to change much for that. Since the codebase is more than 3 years old and will take a good amount of effort to rewrite it to support the newer OS X SDK, I decided to rewrite the app in the new and shiny Swift programing language instead in entirely Objective C. This way, it will be easier to tack on new features while making it easier for me to code. This is the tentative list of functions I plan to add:

  • Basic information about the anime that just got updated
  • Streaming support via browser extension (User presses button and the program will automatically update the list)
  • Better detection support
  • List Management (from MAL Client OS X)
  • Localization support (English and Japanese are the only languages that I plan to support officially)

After the rewrite is done sometime in early 2015, MAL Updater OS X will require Mac OS X Mavericks 10.9.4 or higher or OS X Yosemite.

Remember: Always Back up your Website!

Posted from Montville, New Jersey, United States.

Just today, a fellow Anime blogger named Calaggie who runs Nigorimasen recently discovered that somebody hacked it and deleted all the content. It’s a shame that all the content the person worked hard on got wiped in an instant.

People who are running self-hosted WordPress blogs don’t realize that blogs that run WordPress are subjected to brute force attacks (basically an automated attack that guesses every password combination) in effort to gain control and use it to plant malware or even deface a website. If you host your own WordPress blog, you should do the following to prevent this from happening:

  • Have off-site backups – For most web hosting providers, you can perform a backup through CPanel, but you should keep the backup offsite in an event that you are unable to get a backup before the attack. For a Virtual Private Server, this is easier since you can just use rsync to another service or host after making a backup of the database and an archive. Also, some Virtual Private Server providers like BuyVM and Digital Ocean also have automatic backups (although the latter, it’s an additional cost). For me, BuyVM provides 5 GB of backup space and I created a scheduled task to back up and upload the files to the backup space. Also, Amazon S3 can be an affordable solution for backups as well. If you can’t afford offsite backups, just create a reminder to download a backup each week.
  • Check your plugins and themes – Plugins and themes can potentially have vulnerabilities that can be used by attackers to gain control or plant malware on the site. Therefore, you should keep the plugins updated regularly and only use themes from trusted sources.
  • Install Security Plugins: Plugins like BruteProtect (which will be included in Jetpack), Limit Login Attempts, and Rename wp-login.php can be good tools to protect you from brute-force attacks.
  • Use a strong password for your WordPress and web hosting accounts– This is obvious, but people have the tendency to use weak passwords since they are hard to remember. If you have a hard time remembering passwords, use a password manager like Lastpass or 1Password so that you can generate strong passwords without having to remember them. Also, avoid using FTP since  passwords are sent in clear text, use SSH/SFTP instead (most FTP clients should support SSH).
  • Keep WordPress Up to Date – Usually, WordPress updates fixes security issues. However, you can set it to update automatically.

Bash Upgrade App for OS X

Posted from Montville, New Jersey, United States.

I came up with a GUI interface within an hour and a half if you don’t want to mess with the command line. XCode and Command Line tools are required to compile the new version, but you can easily access the functions of the script without fishing though the terminal.

This application will upgrade Bash to 3.2.54(1)

Note: This only works on Snow Leopard or later. Gatekeeper must be disabled in order to run this app.

Update: 1.0.1 adds Sparkle Updater functionality, considering that there may be future patches for Bash since the fix is still incomplete.

Update 2: Apple’s update is still vulnerable by one of the bugs and two new shellshock related bugs has been discovered. To be fully protected, you should continue to compile your own using this app until Apple releases a final bash update.

The changelog is here since this front end will keep updating as new developments happen.

Download | Source Code