ecto
desktop blogging
endo
total aggregation
1001
flickr accessory

Welcome

Wed, 2008-09-10

Passing the torch

 

Reblogged from infinite-sushi.com:

After 6 years of developing, maintaining and improving ecto, I felt it was time to move on. From now on, the new owner of ecto will be illumineX, inc. Instead of one guy working on your favorite blog client part-time, you'll now have a team of developers working on ecto full time. Before I decided to sell ecto, I had a long correspondence with Gary Longsine, the CEO of illumineX. I wanted to make sure it will continue to be in good hands. I found Gary to be a great guy and he convinced me that his team has many new ideas that will keep ecto growing in functionality and power. In fact, they have already developed a blog client for iPhone based on ecto's code base. I helped out with a few tricky XML-RPC and Atom issues and I was very impressed with how quick the illumineX team picks up things and how fast they work.

I will remain involved with ecto as a consultant and it's very likely I will develop custom plugins (I already wrote an ). I will always be a fervent user of ecto, so obviously I'd like to see it continue the excellent job it's been doing. You will also still find me in the support forum.

It does feel odd to let go of something that has been my flagship product and my precious for so long. I put many hours in it and I take much pride in having created ecto. But it remains in capable hands and I now have the opportunity to spend my free time on new things.

If you have any questions about the transfer of ecto to illumineX, feel free to post them in the comments section of the original post.

Sun, 2008-03-30

Separating ways

 

Starting today, Alex Hung and I will develop our products separately. We started a partnership a few years ago to release our blog clients under the same banner. At that time, I was a full-time software developer at Kula Co. Ltd. However, I'm now working for Technorati Japan and Alex has a lot more commitments with a new full time job. I also have some changes coming up in my personal life with have less time to devote to administrative matters related to the sales of the Windows version of ecto. We have been developing independently as well, so at this point a partnership does not make much sense anymore.

Alex Hung will continue developing ecto for Windows under a new name from his own mineblogging.com domain. He has some good changes planned that will benefit Windows users greatly. The new Windows support forum is at http://mineblogging.com/support.

ecto for Mac itself will enjoy a 100% dedication.

Although our software partnership has ended, I gain a good friend in Alex Hung, which is more important.

Fri, 2008-02-29

Looking for localizers

 

ecto3 has been in beta for a while, even though it's been release mode stable for quite a few versions. It's time to actually take it out of beta, so I'm starting to work on localization.If you're interested to translate ecto in your language, drop me a line using the contact form.

Update: Localization in progress for languages:

  • Finnish
  • French
  • Russian
  • Spanish

Update: Localization included in latest beta for:

  • Arabic
  • Chinese
  • Danish
  • German
  • Japanese
  • Korean
  • Portuguese
  • Taiwanese

Thanks much all!

Tue, 2007-10-09

ecto3 beta

 

After two months of testing, I'm satisfied enough to upgrade ecto3's status from alpha to beta. Thanks to the massive amount of feedback I received via the support forum and by email I was able to smoothen wrinkles, fix bugs, and add some more features. The beta stage will be mostly about adding to the feature set, documentation and opening up the plugin interface.

The first beta version of ecto adds initial AppleScript support and a new set of plugins for notifications.

The first notification plugin I wrote is to publish a tweet on twitter.com after a post was successfully published. You can download it as Twitter.zip. Unarchive and double-click to let the Finder invoke ecto3 to install the plugin. To set it up, go to Settings under the ecto menu and choose the Tools… menu item. Choose the settings pane for Twitter and enter your login credentials and a twitter template (you can leave it blank to use the default template).

The initial AppleScript library is closely modeled to the architecture of ecto3. If you do not use AppleScript, you can ignore the text that follows.

Here's a sample script to publish an entry:

tell application "ecto"
  set account_list to accounts whose name is "MT4"
  set a to first item of account_list
  set blogs_list to blogs of a
  set b to first item of blogs_list
  tell b
    set e to make new entry
    publish e
  end tell
end tell

If you prefer to have a document popup for the user to edit the entry, use "edit e" instead. If you make changes to the entry via AppleScript while an editor is open, invoke "edit" again.

To upload an image, you can use, for example:

tell application "ecto"
  set b to selected blog
  set att to make new image with properties {filepath:"/Users/foo/Desktop/foo.png", scales:false, filename:"foo.png", thumbnail:false}
  properties of att
  upload att to blog b
  delay 30
  set upurl to url of att
end tell

Since ecto uploads files asynchronously, you will need to use a delay or your script will proceed to the next statement while the upload is still in progress. You should also check if the web address of the uploaded attachment is valid. If it is not, the upload has not been completed or has failed.

More to come!

Mon, 2007-08-13

ecto3 alpha

 

It's here and it's a free upgrade! Let's start with the disclaimers first:

  • This release of ecto3 is an alpha-release. In other words, it has bugs and it has missing features that will be incorporated in later versions, including:
    • AppleScript
    • Automator actions
    • Notifications
    • Smart quotes
    • Support for blog systems using the Blogger API
    • del.icio.us support
    • Growl hasn't been built in yet
  • ecto3 will only work on 10.4 or later.
  • ecto3 uses a different data storage structure and formats and does not use any settings from ecto2. This means you can use both ecto2 and ecto3 alongside each other, but it also means that you will have to set up ecto3 from scratch. Once ecto3 is in its final stages, there will be an import function.
  • ecto3 is not localized. That will come once it's good enough for a final release.
  • ecto3 does not have a built-in Help Book. Writing documentation is as much fun as watching paint dry, so I am delaying it until a final release.

So what does ecto3 offer now in this early alpha phase?

First of all, ecto3 is not ecto2. They do not share any code at all. ecto2 derived from ecto1 which was based on Kung-Log which itself originated from an AppleScript utility. At one point it was just code stacked on other code. It worked great, but wasn't very manageable. So I found it necessary to rewrite ecto3 from the ground up. The added benefit is that I was able to fully use 10.4-only goodies.

One of the biggest changes is that ecto3 has a new rich text editor, one that is based on Apple's very own Editable WebKit. It allowed me to do the nested list above. It does the job far better than ecto2, but it's not perfect yet. More than 3500 lines of code interface between the GUI editor and WebKit to make it work for blogging. There is also a bunch of JavaScript code helping out where WebKit sputters.

The architecture of ecto3 is plugin-based. Almost everything that can be powered by a plugin is a plugin. Blog-system support, add-ons such as Amazon, formatters such as Markdown, bookmarkers (forthcoming) and uploaders (forthcoming). The advantage is that anyone can write a plugin to enhance ecto, or to customize a blog-system plugin. I will be releasing sample plugins with documentation for anyone interested in playing with ecto3's plugin support.

I have not yet written blog system plugins for every blog system imaginable. So far, ecto3 has support for MovableType, WordPress and Blogger. There's a custom version of the MovableType plugin for Conversant, a Vox plugin is on the way, as well as a plugin that will use the old Blogger API for some of the blog systems around that haven't gone with the times. This basically means that people using MovableType, WordPress or Blogger are the best candidates for playing with this alpha version, for now.

If you want to try out the alpha, here's the download link:

http://infinite-sushi.com/ecto.zip

Once you have it, just let ecto update itself with each new version. A few directions:

Once you set up your blog via the Account Manager, hit "Settings…" from the Weblog menu to configure a variety of options, including editor and publishing defaults. A few more general preferences are under the ecto menu. You will need to reinstall the bookmarklet and/or set ecto3 up as blog editor in your favorite newsreader again, since it has a different application ID from ecto2.

Note the Extra menu, which contains any add-ons. The Scripts menu has gone and any scripts are now handled by the Scripts add-on that you can find under the Extra menu. Scripts go in ~/Library/Application Support/ecto3/scripts/ and are loaded at startup. Supported script languages are Perl (.pl), PHP (.php), Python (.py), Ruby (.rb), AppleScript (.scpt), JavaScript (.js) and shell scripts (.sh). Both AppleScript and JavaScript scripts need a 'main' routine. Here's a simple JavaScript sample:

  function main(str) {
      return str + "\n\nHello!";
  }

Or some silly Bash:

  #!/bin/bash
  read -e INPUT
  echo "You wrote:"
  echo $INPUT
  top -l1 | head -n 1 | awk '{print $1,$2}'

For troubleshooting and other issues, please report in the support forum. Please keep in mind that this is not my day job, so I may not be able to respond in a timely manner. When you report an issue, please provide as much information as possible: The exact steps required to produce it, any console logs, both from the system and from ecto's own console log (which logs the communication with your blog system). If there are crash logs, bring them along as well. They usually hide out in ~/Library/Logs/CrashReporter/.

That's it for now. I hope you'll enjoy ecto3 as much as I do.

You may notice that commenting is turned off, which I selfishly did to encourage you to blog and ping Technorati. I work at Technorati and I believe we do a great job tracking conversations in the blogosphere.

Sun, 2007-08-12

Evolution of code

 

kung-log logoOn August 3rd, 2002, I released a small AppleScript utility to posts and manage entries of a weblog. It was very simple and worked only with weblogs that supported the MovableType publishing API. It even sported a very ugly application icon. It was a surprising hit, though, and based on numerous feedback I was able to make incremental improvements. Kung-Log went from 1.0.0 to 1.6.1 in just five months.

I soon realized that I would not be able to improve Kung-Log further if I was going to stick with AppleScript, so in January 2003 I rewrote the application from the ground up using Cocoa. Support for additional weblog systems was added in, and each next version found itself enriched with a new feature. Erik Veland designed a new icon as well, which has been in use till now.

By then, Kung-Log was in wide spread use in the MacOSX community and attracted the attention of ground-breaking internet-focused entrepreneur Joichi Ito. I was at that time a post-doc researcher in artificial neural networks, but had become more and more interested in internet-related technologies. Joichi Ito provided the final nudge I needed to expand my foray into the world wide web. I quit academics and worked at the new Six Apart Japan for a few months. Once it was set up, I switched and worked directly for Joi, in his private company, Kula Co. Ltd. On December 24th, 2003, I pushed out a new version of Kung-Log, but renamed as ecto and included many changes. Several months later, it introduced a basic rich text editor. I also formed a partnership with Alex Hung, who has developed a Windows version of ecto.

While at Kula, I also produced two other software applications, endo and 1001. Writing these apps taught me a tremendous amount of Objective-C, Carbon, and Cocoa, as well as objective-oriented design patterns. At the same time, I was heavily involved with Technorati, spending many hours working on their API, increasing my skills in Perl and PHP and learning a lot about web apps.

Last year, in August, I joined Technorati Japan as a full-time employee. Joi also got more involved in Digital Garage, which is the parent company of Technorati Japan. Due to his busy schedule and his many responsibilities, Joi decided to put Kula in the freezer. This effectively meant that ecto once again had become a side-project for me. Even though development on ecto had slowed down, it never stopped. My work on endo and 1001 made me realize that I needed to rewrite ecto once more to fully profit from object-oriented aspects of Objective-C and Cocoa. I also spend countless hours working on a better rich text editor, based on Apple's own Editable WebKit. Most of this work was in collaboration with iBlog's Sarat Kongara.

Now, five years since the initial release of Kung-Log, I'm at a point where I think ecto3 is in decent enough shape to be public alpha. Because I felt most of the old ecto website as well as the support forum contained too many outdated pieces of information, I have decided to do a reset. All the relevant software web pages has been moved to infinite-sushi.com, a web domain I once registered because I found it catchy. Mike Rohde designed a new application icon and new toolbar icons for ecto3. I'm sure Mike will blog soon about the design process behind the application icon. Before I release the alpha version of ecto3, I need to write some documentation on it, about what has yet to be done and what some of the many changes are.

And in response to the numerous messages I have been receiving: Yes, it's a free upgrade.