Black Friendfeed Widget with Fluid

posted 02:42PM May 15, 2008 with tags fluid friendfeed hud macosx ssb by Lars Trieloff

My Favorite SSB application Fluid got an update some days ago that allows you to fiddle with some window settings, namely the window opacity and the window decoration and the window placement (normal, above all windows, below all windows, above the dashboard). With the window decoration comes a black-window style with dark window borders and scroll bars that looks very cool. But using this style with Friendfeed for which I provided a custom userscript before yielded unpleasant results as the white background of friendfeed and the dark window borders do not match.

So I modified the user CSS file that is embedded in every Fluid SSB application (Right-click the application icon in Finder, select "Show package contents", browse to Contents/Resources) called default.css to give me a black background with white text and links (and I removed all the sidebar and clutter to make it a minimal interface)

The result looks like that and gives specialized desktop applications such as Twhirl or AlertThingy a run for it's money.

http://weblogs.goshaky.com/weblogs/lars/resource/friendfeed-hud.png

Fluid userscript for Friendfeed and Mento

posted 12:07AM Apr 26, 2008 with tags fluid friendfeed greasekit growl macosx mashup mento by Lars Trieloff

Being alone this evening I had the opportunity to spend some time programming interesting stuff. As I am currently researching lifestreaming applications, in particular Friendfeed, which is an excellent implementation of this concept I wrote a plugin for Blogbridge that will automatically send "pinned" entries to Friendfeed, similar to "shared items" in Google reader. Secondly, I got an invite to Mento, a social link sharing application (not bookmarking) that is focused around finding interesting links and sending them to friends, services (like Twitter, Friendfeed or del.icio.us/trieloff) or channels, which lead to my third activity: Integrating Friendfeed and Mento.

As Friendfeed is giving me lots of input from interesting people, I would like to save some links directly from the Friendfeed interface. Additionally, I am using Fluid in order to create a site-specific browser (SSB) for Friendfeed, basically a small desktop application that does nothing but running Friendfeed. Aside from this interesting concept, which is also being implemented by Mozilla Prism for instance, Fluid is currently the best implementation of this concept. Todd, the developer is working hard to integrate it with Mac OS X and make it a seamless user experience and he is adding easy programmability as one of the core aspects to SSBs. With Fluid it is possible to run userscripts that not only change the appearance and behavior of the website, these userscripts are also able to invoke advanced desktop integration features like adding an "unread items" badge to the dock item or display Growl notifications.

The small user script you find below does two things: on the one hand it adds a "Share" button to all links posted on Friendfeed. Clicking the "Share" button will invoke the Mento bookmarklet which allows you to send the link to friends and colleagues. On the other hand, the script will track which links have been added to the feed while the Friendfeed window has been in the background. For each new, unread item, it will increase the counter in the badge and display a Growl notification.

Sharing a link on Mento
Sharing a link on Mento

Growl showing an update Notification
Growl showing an update notification. (In the background there is Dashcode, the IDE I have been using to write this userscript)

One unread item
There is one unread item waiting for me in Friendfeed.

The user script that accomplishes this can be found here. You are free to use and modify and redistribute it of course.

// ==UserScript==
// @name        Share With Mento
// @namespace   http://fluidapp.com
// @description Adds a Share link to links listed on friendfeed.
// @include     *
// @author      Lars Trieloff http://weblogs.goshaky.com/weblogs/lars
// ==/UserScript==

(function () {
  var knownclusters = {};
  var unknownclusters = 0;

  function updateMento() {
    refreshMento(true);
  }
  
  function initMento() {
    refreshMento(false);
  }
  
  function refreshMento(background) {
    var infos = document.getElementsByClassName("info");
    for (var i=0;i<infos.length;i++) {
      var link = infos[i].previousSibling.previousSibling.firstChild;
      var parent = infos[i].parentNode.parentNode.parentNode.parentNode;
      var eventid = parent.getAttribute("eid");
      var header = 
      $(parent).find(".summary").get(0).innerHTML.replace(/<(.|\n)+?>/g, "");
      var description = 
      infos[i].previousSibling.previousSibling.innerHTML.replace(/<(.|\n)+?>/g, "");
      
      if (eventid in knownclusters) {
        
      } else {
        unknownclusters++;
        knownclusters[eventid] = "a";
        if (background) {
          window.fluid.showGrowlNotification({
            title: header, 
            description: description, 
            priority: 1, 
            sticky: false,
            identifier: eventid,
          });
        }
        if (link.href) {
        //alert(link.innerHTML);
        
        infos[i].innerHTML = infos[i].innerHTML + " - <a href=\"javascript:(" +
        "function(){o='location=0,width=515,height=375,resizable=1';u='http:" + 
        "//www.mento.info/qp/#v=bk&vn=1&';w=window;d=w.top.document;e=encode" +
        "URIComponent;u+='title='+'"+encodeURIComponent(link.innerHTML)+"'+'" +
        "&url='+'"+encodeURIComponent(link.href)+"'+'&via='+'"
        +encodeURIComponent("http://friendfeed.com/e/"
        +parent.getAttribute("eid"))+"';var%20mw=w.open(u,'_blank',o);if(mw)" +
        "setTimeout(function(){mw.focus()},%20250);else{alert('A%20popup%20b" + 
        "locker%20got%20in%20the%20way.%20Hold%20the%20CTRL%20key%20and%20tr" +
        "y%20again.');}})();\">Share</a>";
        }
      }
      if (background) {
        if (unknownclusters==0) {
          window.fluid.dockBadge = "";
        } else {
          window.fluid.dockBadge = unknownclusters;
        }
      } else {
        window.fluid.dockBadge = "";
        unknownclusters = 0;
      }
      
    }
  }

  function jquery_wait() {
    
    if(typeof window.jQuery == 'undefined') { 
      window.setTimeout(jquery_wait,100); 
    }
    else {
      $ = window.jQuery; initMento();
      window.setInterval(updateMento, 1000); 
    }
  }

    if (window.fluid) {
    window.onfocus = initMento;
    //initMento(true);
    jquery_wait();
    }
})();

RescueTime knows how I spend my time

posted 11:06AM Jan 23, 2008 with tags cool macosx productivity rescuetime software by Lars Trieloff

http://weblogs.goshaky.com/weblogs/lars/resource/rescuetime.png

As you might know, I am mildly obsessed about statistics, visualization and productivity. And this is exactly the mix that makes RescueTime so fascinating for me, RescueTime, marketed as "Time Management for Geeks" will analyze how much time you spend on your computer with what desktop or web applications and what websites. You can get a graph of the ten most used applications based on daily, weekly or monthly view. Additionally you are able to tag all applications and web sites in order to organize them into categories like work, personal, procrastination or according to activities like reading, writing, planning, etc. All in all a very helpful tool that tells me how I spend my time - and a website that has changed the way I work, even if I spend less then 7 minutes on most days on this website.

| Comments[4]

Inkscape and GIMP will look great without X11 on Mac OS X

posted 11:43PM Jan 07, 2008 with tags gimp inkscape leopard macosx macports quartz x11 by Lars Trieloff

http://weblogs.goshaky.com/weblogs/lars/resource/gimp-leopard-no-x11.png

It is great to see the progress of the GTK+ on Mac OS X project. I have been able to build a version of Inkscape (it's the best) and the GIMP (I am more into vector graphics, but GIMP is good for pixel pushing) using Macports and lots of friendly help from the Wilber Loves Apple Community that does not need X11.

It is not really polished yet, for example GIMP uses the Mac OS X toolbar properly, whereas Inkscape has the default GTK toolbar, some keys are always interpreted as shortcuts, but it looks very good for a start and feels more natural than both applications under X11.

In order to get the look and feel right, I installed the Mac4Lin (yes, this means making Linux look like Mac OS X, oh irony) GTK theme and manually changed the default fonts using this tip:

style "mac-font" {
  font_name = "Lucida Grande 13"
}
class "*" style "mac-font"

List of cool things

posted 07:08PM Nov 15, 2007 with tags cool leopard macosx opensocial by Lars Trieloff

A list of cool things I found in the last days, but for which I had not enough time to blog:

Tango Icons for jEdit

posted 09:22PM Oct 28, 2007 with tags icons jedit macosx tango by Lars Trieloff

An easy way to improve the already-sleek look of jEdit on Leopard is using Seph M. Soliman's icon collection for jEdit that is based on the Tango Icon project (another project using this icon set is Gimp.app in the latest 2.4rc3 build)

http://weblogs.goshaky.com/weblogs/lars/resource/jedit-leopard.png

Speaking of jEdit and Gimp, one thing that annoys me with Leopard is that Spaces does not deal with Java or X11-applications. Clicking an application's icon in the dock switches the desktop to the space where the main window of this application. Unfortunately this does not work with jEdit or the Gimp.

Leopard spell checker coolness

posted 10:15PM Oct 27, 2007 with tags leopard macosx spellcheck by Lars Trieloff

Mac OS X Leopard adds a spell checker to all textfields and textareas in Safari. Nice. And the system spell checker supports a "Multilingual" dictionary that eliminates the need to switch between languages if you are writing in english and german. Even nicer.

Fixing Blogbridge Annonyances

posted 10:13PM Oct 27, 2007 with tags atom blogbridge macosx rss safari by Lars Trieloff

As much as a like the Blogbrigde feed reader, one thing has been annoying me since I am using it on Mac OS X: Opening articles in the browser always means changing the active application to the browser, so you cannot go through all new feed entries, open the interesting once in a background tab and read them afterwards.

This means unless you open the Blogbrigde preferences, select the section "Advanced" and select following command as Internet Browser:

open -g $URL$
The open command will open any URL in the default browser and the -g parameters tells Mac OS X not to raise the application to the foreground.

Waiting for the hard disk crash

posted 09:34PM Oct 19, 2007 with tags backup macosx mozy spotlight by Lars Trieloff

I am waiting for my hard disk to crash. In the more than twelve years I have been using computers with hard disks, I never lost any data due to a hard disk crash. As I know this is very unlikely to continue, I signed up for the Mozy backup plan. For 5 USD a month, I can back up one computer. The nice thing about Mozy is the Mac OS X Spotlight integration: You can specify a backup set that is basically the result of a Spotlight search query. If you want to back up a specific set of files, refer to the Spotlight Query Programming Guide and the hints given in this article.

If you want to back up all files of a certain file type, e.g. all MP3 files, open the terminal browse to a folder containing an MP3 file and type

# mdls iTunes\ Music/Chuck\ Berry/Rock\ \&\ Roll\ Classics/01\ Let\ It\ Rock.mp3 
iTunes Music/Chuck Berry/Rock & Roll Classics/01 Let It Rock.mp3 -------------
kMDItemAlbum                   = "Rock & Roll Classics"
kMDItemAttributeChangeDate     = 2007-08-04 13:36:31 +0200
kMDItemAudioBitRate            = 128
kMDItemAudioChannelCount       = 2
kMDItemAudioSampleRate         = 44100
kMDItemAuthors                 = ("Chuck Berry")
kMDItemComment                 = "Moody A3"
kMDItemContentCreationDate     = 2006-09-05 14:31:37 +0200
kMDItemContentModificationDate = 2007-05-20 16:55:52 +0200
kMDItemContentType             = "public.mp3"
kMDItemContentTypeTree         = (
    "public.mp3", 
    "public.audio", 
    "public.audiovisual-content", 
    "public.data", 
    "public.item", 
    "public.content"
)
kMDItemDisplayName             = "01 Let It Rock.mp3"
kMDItemDurationSeconds         = 106
kMDItemFSContentChangeDate     = 2007-05-20 16:55:52 +0200
kMDItemFSCreationDate          = 2006-09-05 14:31:37 +0200
kMDItemFSCreatorCode           = 0
kMDItemFSFinderFlags           = 0
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSLabel                 = 0
kMDItemFSName                  = "01 Let It Rock.mp3"
kMDItemFSNodeCount             = 0
kMDItemFSOwnerGroupID          = 501
kMDItemFSOwnerUserID           = 501
kMDItemFSSize                  = 2019330
kMDItemFSTypeCode              = 0
kMDItemID                      = 671983
kMDItemKind                    = "MP3 Audiodatei"
kMDItemLastUsedDate            = 2007-05-20 16:55:52 +0200
kMDItemMediaTypes              = (Sound)
kMDItemMusicalGenre            = "Rockabilly"
kMDItemTitle                   = "Let It Rock"
kMDItemTotalBitRate            = 128
kMDItemUsedDates               = (2007-05-20 16:55:52 +0200)

then the kMDItemContentType field will tell you how Spotlight saves the file type. Now you can create a new backup set using following query:

kMDItemContentType = "public.mp3"

Made on a Pac

posted 12:15PM Jun 07, 2007 with tags macosx pacoxs by Lars Trieloff

made on a pac
Made on a Mac Pac.

Coolness: Mindquarry Desktop Client for Mac

posted 09:39PM Mar 07, 2007 with tags cool download macosx mindquarry by Lars Trieloff

There is a first snapshot of the Mindquarry Desktop client available for Mac OS X. It is written natively for Mac OS X, as the standard SWT Java client crashes due to problems in the SWT library, especially when it comes to more advanced features like system tray integrations.

The feature set so far:

  • Shows a task list
  • Allows updating a task's status, title, summary and priority
  • Supports multiple servers

Enough said, here is the screenshot:

You can download a development snapshot (as all our development snapshots) from snapshots.mindquarry.com. The client was created by Jonas Witt who is also developer of Aurora.

Downloaded, tested, works: Spanning Sync

posted 03:52PM Feb 07, 2007 with tags calendar google macosx productivity by Lars Trieloff

Via Lifehacker: Spanning Sync is a small Mac OX X application that allows you to synchronize your iCal calendards to Google Calendar bidirectionally. Before Spanning Sync, Google Calendar offered iCalendar export which could be subscribed in iCal and iCal offered iCalendar publishing to a FTP or WebDAV folder, which in turn can be subscribed from Google. However you turn it - there was no bidirectional synchronization until now.

The Beta version of Spanning Sync available from today works for me, but if you try it you have to expect to pay for this useful service in the future.

| Comments[1]

posted 01:46AM Feb 07, 2007 with tags cool docbook gnome inkscape macosx software techdoc by Lars Trieloff

Java 6

posted 08:49PM Dec 11, 2006 with tags java linux macosx windows by Lars Trieloff

Java 6 is out and Danny Coward has a list of 10 reasons to upgrade. One reason he is missing is the new System Tray API which works for Windows, Linux and Mac OS X.

Making Blogbridge 4.0 work with Intel-based Macs

posted 10:21PM Nov 27, 2006 with tags atom blogbridge macosx opensource rss by Lars Trieloff

Blogbridge 4.0 is out and it is great as always. It is one of the best RSS readers available, mostly due to the great blogbridge service that allows you to:
  • use Blogbrigde cross-platform: Windows, Mac OS X and Java are supported.
  • synchronize your reading lists: Blogbrigde supports OPML subscriptions (not only one-time import/export) and expert-powered reading lists by topic experts.
  • synchronize read/unread state using the blogbridge service. This allows you to conveniently share the status of blog entries across multiple computers.
  • tag posts using the blogbridge service or del.icio.us
The bottom line: Blogbridge is the ultimate info-junkie tool.

If you are running blogbridge on an Intel-based Mac, you may experience problems when starting BlogBridge which can be solved by issuing following command in the terminal:

cp /System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub 
  /Applications/BlogBridge.app/Contents/MacOS/JavaApplicationStub

| Comments[2]

pdf2png, pdf2jpg on Mac OS X

posted 09:48AM Oct 25, 2006 with tags jpeg macosx pdf png by Lars Trieloff

I spend an evening looking for a decent tool that creates images out of PDF documents. I tried Imagemagick, Ghostscript and some other obscure tools, but in the end I found out that I had to look no farther than the Mac OS X Preview application which allows you to save any file it can open as PDF, PNG, JPEG and some other formats.

Who else wants to get rid of the default jEdit icons?

posted 09:26PM Aug 01, 2006 with tags gnome java jedit linux macosx tips by Lars Trieloff

jEdit is a great editor. It is free, runs on every platform, can be extended using plugins, can be scripted using macros, but the default set of icons is a shame. Java swing applications are known to look arkward and jEdit is no exception. But there are some simple steps of getting rid of the default look and feel.
  1. If you are using GNOME, you should download Java 1.6 Mustang beta, as it supports the new GTK Look and Feel which makes jEdit look more like a native GTK application. Windows users have no problems, Mac OS X users should follow the next instruction.
  2. If you are using Mac OS X: Start jEdit, open /Applications/jEdit/jEdit.app/Contents/Info.plist. This is an XML file, but you just need to find the line containing <string>org.gjt.sp.jedit.jEdit</string> and add following content below: <key>Properties</key> <dict> <key>com.apple.macos.useScreenMenuBar</key> <string>true</string> </dict>. Save the file and restart jEdit. Now the Menu bar will not be part of the main window any more, jEdit uses the Mac OS X menu bar like a proper Mac application.
  3. Download the icon set from this forum post and install it to the lib/ext folder of your Java runtime installation. For Mac OS X users, this is probably /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/, Windows Users should look for C:\Program Files\Java and Linux users should ask their distribution where Java is installed.

The result is a jEdit that looks much more like the cool and powerful application it is.

| Comments[1]

SVK, the SVN without the .svn

posted 09:00PM Jul 23, 2006 with tags keynote macosx opensource pages subversion svk tips by Lars Trieloff

Rich Bowen reports his problems with Keynote (Apple's presentation program) deleting his .svn directories (which are created and neccessary for the Subversion version control system and contained in all versioned directories to store metadata, repository information, temporary files and pristine copies of files). Keynote stores all documents as directories containing gzipped XML documents, thumbnails and so on, but it does not store or keep .svn directories. This problem is shared by the companion program Pages, which is an excellent word processor, but does not respect other people's .svn directories, too.

Because of this reason, and due to a certain degree of geekness that was not fulfilled by the more and more popular version control system Subversion (short SVN) which I use for all my project for more than two years, I switched to SVK, a distributed version control system built on top of SVN and written in Perl.

There are several nice things about SVK, e.g.

  • It allows to commit, even if you are offline
  • It has support for better branching and merging
  • it does not need .svn, .svk or any other meta-data directories
This last fact makes it the ideal choice for the geek who needs to share Keynote presentations or Pages documents using Subversion. It works by storing a directory-to-repository table in your home directory and a full or partial copy of the repository, which is an elegant, but unintuitive solution. Unfortunately there are some characteristics about SVK that make it not as easy to use as Subversion:
  • There are no graphical user interfaces available, so you should be familiar with the command line environment
  • Documentation in sparse and sometimes outdated
  • You have to sync your local repository ocassionally to the remote repository which means typing two additional commands
So Rich, if you would like to use your existing remote Subversion repository with Pages or Keynote, you should take a look at SVK.

A taggable web, a taggable desktop, a taggable workspace

posted 11:16PM Jul 20, 2006 with tags collaboration desktop macosx metadata tags vennt web20 by Lars Trieloff

The concept of tagging is not new (in the old times it was called keywords), but with web applications like del.icio.us (which I use regularly), Technorati or flickr, using tags or keywords as lightweight metadata has become popular again. The nice thing about tagging is that it allows you to categorize data according to more than one criteria, opposed to strictly hierarchical organization schemes like folder hierarchies or taxonomies. What is new about tagging in Web 2.0 applications? First, there is the concept of folksonomies which helps uses finding the best tags based on tags assigned to an item by other users. But the most important improvements are new user interfaces that make tagging very easy by adding type-ahead suggestions, browser extensions and bookmarklets and tag clouds that make tagging an web item just a matter of klicking the bookmarklet, klicking some suggested tags and hitting return.

The exciting news is that tagging is slowly moving from the web to the desktop. Desktop innovation happens at slower pace than web innovation, mostly due to the fact that there are much longer release cycles, but some applications like leaftag for the Gnome desktop (screenshots, video), the Quicksilver tagging module for Mac OS X (described by Livehacker as 'Metadata as a filing system') and some interesting fake screenshots of a tagging feature for Mac OS X Leopard, which look very good show the direction of development. All modern filesystems support metadata as file attributes. It is now up to the desktop developers to implement tagging interfaces for this new kind of lightweight metadata.

If we take a look ahead we will see in some years metadata-enabled desktops, metadata-enabled websites and tagging an accepted orgainizational principle. What we should be looking for is a metadat-enabled workspace environment that takes up the opportunities of tagging and lightweight metadata and support sharing of this metadata to be able to organize the data of collaborative workspaces, knowledgespaces, taskspaces and conversationspaces. An example of a tagging-centric organization of conversationspaces is vennt, an online forum software I discussed before.

Sandvox 1.0 released

posted 08:11PM May 18, 2006 with tags cool macosx sandvox by Lars Trieloff

Just a quick note: Sandvox 1.0 is out. Sandvox is what iWeb could have been - an easy-to-use, WYSIWYG-Website editor for Mac OS X. The idea behind Sandvox is similar to the CSS Zen Garden: Sandvox creates HTML output and links, depending on the user's preferences, different designs with the website. These designs are 100%-CSS and range from playful to beautiful.

Sandvox allows inexperienced users to build simple websites, but also weblogs (integrates with Haloscan to allow comments), photo galleries (it integrates with iPhoto, iTunes and iMovie to upload media files) and allows a range of ready-to use "Pagelets" that can be added to the website. These pagelet include the essentials for every Web-2.0 citizen: del.ico.us, digg.com, flickr and stickam.

The websites can be uploaded to .Mac and any other provider that supports either FTP, WebDAV or SFTP. Especially the last two alternatives are interesting for me, because it does not require setting up a FTP server on my host, which is required by most other tools.

I've bought this application immediately after the release for my wife and if you are looking for an Website builder for OS X, you should do the same. (I've bought the Pro-version as it allows inclusion of arbitrary HTML snippets, which is not necessary in most cases, but you never know...)