Xfce

Subdomains
 

Git Weirdness

  • March 17, 2009
  • Brian Tarricone

So I have a git repo on my machine at home, that’s cloned from a repo on git.xfce.org. I was doing some work in it the other day – in a private branch, not published to git.xfce.org – and I wanted to continue working on the private branch from another machine. But… it won’t work. Let’s say ‘machine1’ has the repo with the private branch, and ‘machine2’ is where I want to work today.

So, on machine2, I cloned from the master repo on git.xfce.org:

[brian@machine2 src $] git clone git@git.xfce.org:kelnos/airconfig
[... stuff happens...]
[brian@machine2 src $] cd airconfig
[brian@machine2 airconfig $] git branch -a
* master
  origin/master
  origin/pre-hal

Ok, cool, that’s what I expect. So I ssh over to machine1 (the one I eventually want to pull from), and I check out my list of branches there:

[brian@machine1 airconfig $] git branch -a
  advanced-ip-settings
  master
* nm-frontend
  notification-rework
  reconnect
  origin/master
  origin/pre-hal

Ok, cool. the ‘nm-frontend’ branch is the one I want to pull to machine2. So on machine2, I do this:

[brian@machine2 airconfig $] git remote add machine1 machine1:src/airconfig
[brian@machine2 airconfig $] git pull machine1 nm-frontend
fatal: Couldn't find remote ref nm-frontend
fatal: The remote end hung up unexpectedly

Uh… what? Do I have the wrong syntax? Ok, let me just try to pull everything from the remote:

[brian@machine2 airconfig $] git pull machine1
remote: Counting objects: 1085, done.
remote: Compressing objects: 100% (301/301), done.
remote: Total 1085 (delta 774), reused 1085 (delta 774)
Receiving objects: 100% (1085/1085), 323.43 KiB | 14 KiB/s, done.
Resolving deltas: 100% (774/774), done.
From machine1:src/airconfig
 * [new branch]      advanced-ip-settings -> machine1/advanced-ip-settings
 * [new branch]      master     -> machine1/master
 * [new branch]      pre-hal    -> machine1/pre-hal

And then at the bottom it prints out a message about not knowing which local branches to merge stuff into. That’s fine, no big deal. But… how come it pulled 3 of my local branches on machine1, but left off 2 of them (‘notification-rework’ and ‘nm-frontend’). No combination of src:dest refspecs seem to do the trick. Pulling one of the 3 branches it seems to like using the syntax I used above seems to work fine, but it can’t see the one I want. What am I doing wrong…?

Git Weirdness

  • March 17, 2009
  • Brian Tarricone

So I have a git repo on my machine at home, that's cloned from a repo on git.xfce.org. I was doing some work in it the other day -- in a private branch, not published to git.xfce.org -- and I wanted to continue working on the private branch from another machine. But... it won't work. Let's say 'machine1' has the repo with the private branch, and 'machine2' is where I want to work today.

So, on machine2, I cloned from the master repo on git.xfce.org:

[brian@machine2 src $] git clone git@git.xfce.org:kelnos/airconfig
[... stuff happens...]
[brian@machine2 src $] cd airconfig
[brian@machine2 airconfig $] git branch -a
* master
  origin/master
  origin/pre-hal

Ok, cool, that's what I expect. So I ssh over to machine1 (the one I eventually want to pull from), and I check out my list of branches there:

[brian@machine1 airconfig $] git branch -a
  advanced-ip-settings
  master
* nm-frontend
  notification-rework
  reconnect
  origin/master
  origin/pre-hal

Ok, cool. the 'nm-frontend' branch is the one I want to pull to machine2. So on machine2, I do this:

[brian@machine2 airconfig $] git remote add machine1 machine1:src/airconfig
[brian@machine2 airconfig $] git pull machine1 nm-frontend
fatal: Couldn't find remote ref nm-frontend
fatal: The remote end hung up unexpectedly

Uh... what? Do I have the wrong syntax? Ok, let me just try to pull everything from the remote:

[brian@machine2 airconfig $] git pull machine1
remote: Counting objects: 1085, done.
remote: Compressing objects: 100% (301/301), done.
remote: Total 1085 (delta 774), reused 1085 (delta 774)
Receiving objects: 100% (1085/1085), 323.43 KiB | 14 KiB/s, done.
Resolving deltas: 100% (774/774), done.
From machine1:src/airconfig
 * [new branch]      advanced-ip-settings -> machine1/advanced-ip-settings
 * [new branch]      master     -> machine1/master
 * [new branch]      pre-hal    -> machine1/pre-hal

And then at the bottom it prints out a message about not knowing which local branches to merge stuff into. That's fine, no big deal. But... how come it pulled 3 of my local branches on machine1, but left off 2 of them ('notification-rework' and 'nm-frontend'). No combination of src:dest refspecs seem to do the trick. Pulling one of the 3 branches it seems to like using the syntax I used above seems to work fine, but it can't see the one I want. What am I doing wrong...?

Git Weirdness

  • March 17, 2009
  • Brian Tarricone

So I have a git repo on my machine at home, that’s cloned from a repo on git.xfce.org. I was doing some work in it the other day — in a private branch, not published to git.xfce.org — and I wanted to continue working on the private branch from another machine. But… it won’t work. Let’s say ‘machine1′ has the repo with the private branch, and ‘machine2′ is where I want to work today.

So, on machine2, I cloned from the master repo on git.xfce.org:

[brian@machine2 src $] git clone git@git.xfce.org:kelnos/airconfig
[... stuff happens...]
[brian@machine2 src $] cd airconfig
[brian@machine2 airconfig $] git branch -a
* master
  origin/master
  origin/pre-hal

Ok, cool, that’s what I expect. So I ssh over to machine1 (the one I eventually want to pull from), and I check out my list of branches there:

[brian@machine1 airconfig $] git branch -a
  advanced-ip-settings
  master
* nm-frontend
  notification-rework
  reconnect
  origin/master
  origin/pre-hal

Ok, cool. the ‘nm-frontend’ branch is the one I want to pull to machine2. So on machine2, I do this:

[brian@machine2 airconfig $] git remote add machine1 machine1:src/airconfig
[brian@machine2 airconfig $] git pull machine1 nm-frontend
fatal: Couldn't find remote ref nm-frontend
fatal: The remote end hung up unexpectedly

Uh… what? Do I have the wrong syntax? Ok, let me just try to pull everything from the remote:

[brian@machine2 airconfig $] git pull machine1
remote: Counting objects: 1085, done.
remote: Compressing objects: 100% (301/301), done.
remote: Total 1085 (delta 774), reused 1085 (delta 774)
Receiving objects: 100% (1085/1085), 323.43 KiB | 14 KiB/s, done.
Resolving deltas: 100% (774/774), done.
From machine1:src/airconfig
 * [new branch]      advanced-ip-settings -> machine1/advanced-ip-settings
 * [new branch]      master     -> machine1/master
 * [new branch]      pre-hal    -> machine1/pre-hal

And then at the bottom it prints out a message about not knowing which local branches to merge stuff into. That’s fine, no big deal. But… how come it pulled 3 of my local branches on machine1, but left off 2 of them (‘notification-rework’ and ‘nm-frontend’). No combination of src:dest refspecs seem to do the trick. Pulling one of the 3 branches it seems to like using the syntax I used above seems to work fine, but it can’t see the one I want. What am I doing wrong…?

Xfce 4.6.0 Released

  • March 15, 2009
  • Brian Tarricone
I’m a bit late with this, but we finally got Xfce 4.6.0 out the door. Others have written much more about this than I have, so feel free to read about it on our blog aggregator.

Git Weirdness, Part 2

  • March 15, 2009
  • Brian Tarricone
Ok, now this is just ridiculous: [brian@machine1 airconfig $] pwd /home/brian/src/airconfig [brian@machine1 airconfig $] git branch -a advanced-ip-settings * master nm-frontend notification-rework reconnect origin/master origin/pre-hal [brian@machine1 airconfig $] cd .. && mkdir t && cd t [brian@machine1 t $] git clone ../airconfig Initialized empty Git repository in /home/brian/src/t/airconfig/.git/ [brian@machine1 t $] cd airconfig [brian@machine1 airconfig [...]

Getting Things Done Right

  • March 15, 2009
  • Jannis Pohlmann

I've started to read Getting Things Done by David Allen some time ago. You can read about the concept of GTD at 43 Folders or Lunch & Learn if all you want is a short summary.

I think it's an interesting idea and it sounds very pragmatic and feasable. I'm a very unorganized person. I usually try to keep everything I need to do in my head and I rely on friends to remind me of birthdays, exams and other events because I don't have or use a calendar. I guess I'm a tough test candidate for GTD ... and I'm planning to give it a shot.

Now the only problem I see is the question which tools I should use. I'm not that much into paperwork, so I'd like to use my laptop for organizing my tasks. Of course you can use simple text files or other generic tools to do that (just like you can use paper) but that's really far from optimal.

About a week ago, a program called Getting Things Gnome! popped up on Planet GNOME and of course there is a number of online or offline tools designed after GTD available for Linux. Most of them allow you to define tasks, add notes, group them into projects and stuff like that. However, what they are missing is proper integration with other programs, online services and file formats. Notes are limited, they usually only consist of text, though sometimes they also support markup. In a lot of scenarios this is not enough (at least it is a very complicated way) to attach useful information to a task.

Just imagine the following situation: I receive an email from someone with a link and a few pictures and asks me to do something with them, e.g. upload these pictures to the website with the given link. If I want to make that a task, I'd like to be able to attach the pictures and the link to the task. So that afterwards I can trash the mail and thereby empty my inbox again. I don't necessarily want to keep it somewhere in my email program unless it has a really good search function.

Imagine another situation: Someone sends me an email describing a problem in my software together with a link to a bugzilla entry and a backtrace file. Let's say I'm working on a new release, there's a deadline for this release and the bug is critical. I'd like to create a task for that, attach the mail content and the backtrace file. Due to the deadline I also want to set the date this task is due and have my favorite calendar application being synchronized of course.

Basically, for a GTD application to be really useful in a computer environment, it

  • has to allow arbitrary task attachments likes files, emails, links or even calendar events (possibly implemented as plugins),
  • has to support calendar synchronization (off- and online),
  • needs to provide extensions for programs that are part of the workflow so that the user can create tasks from anywhere,
  • should use a storage format that can easily be converted into other formats (to make it easier for people to switch tools without losing all their tasks).

Of course there's more involved in getting it right. But most of todays GTD applications for Linux lack the above features and thus keep me from trying GTD out on my machine.

What are your experiences with GTD software? What features do you think are essential?

A Day Like Any Other

  • March 14, 2009
  • Jannis Pohlmann

After having finished watching Barfly, I kinda felt like I had to sum up the day. It went like this:

That's it.

There won't be many days like this in the next few weeks. I'm about to move in with a friend of mine at the beginning of next month. I'm going to start working on my thesis about Thunar next week. I still have a voluntary oral exam in software verification ahead of me in 12 days (I think ...) and of course I need to find someone to take over the appartment I'm currently living in. Lots and lots of things to keep me more than busy.

Xfce Buildbot Server – Call for Donations

  • March 13, 2009
  • Jannis Pohlmann

We've talked about the possibility of an Xfce Buildbot server for a while now. Samuel Verstraete, a fellow Lunar Linux developer, and Thomas Dupas have offered to donate a server for that. The University of Stockholm has kindly accepted to house it. The main Lunar Linux/Foo Projects server is already located there and we've made very positive experiences with them in the past.

But right now the server is still in Belgium. Samuel has calculated that 87 EUR are needed for UPS shipment. The server currently has 2 GB of RAM which is not much considering that we're planning to run several virtual machines on it. So if we could gather 40 EUR for an another 4 GB of RAM that would be great! In addition its worth thinking about adding another CPU. The machine has two sockets of which only one is being used right now. That would add another 40 EUR.

So, all in all we're in need of 130-170 EUR here. This is why we'd be very happy if you people could help us out here.

Every donator will be personally mentioned on this weblog (and thus on blog.xfce.org) and on our mailing lists. Due to the lack an official PayPal account for Xfce, donations can be send to my account: info@sten-net.de.

A start has already been made by these people:

  • Michael Marending (who donated to Thunar a while a go)
  • Enrico Tröger
  • Colin Leroy
  • Michele Renda
  • Madcap
  • Harold Aling
  • Christoph Borsbach
  • Nick Schermer
  • Jim Campbell
  • Jean Philippe Neumann
  • Brian J. Tarricone
  • Maximilan Schleiss
  • Fedora
  • Alexander Zolotko

Current Status: 485/170 EUR

We'll post a final update in a few days, when the missing hardware has arrived at Samuel's place.

Thanks to everyone for making this happen so fast!

Refresh the Xfce background

  • March 11, 2009
  • Mike Massonnet
In Xfce 4.4 there was a little hack that worked to refresh the background. I managed to get the same result for Xfce 4.6 with the following "hack":
#!/bin/sh
if [ -z "${DBUS_SESSION_BUS_ADDRESS}" ] ; then
. ${HOME}/.dbus/session-bus/`ls -rt ${HOME}/.dbus/session-bus/ | tail -1`
export DBUS_SESSION_BUS_ADDRESS
fi
PATH=/usr/local/bin:${PATH}
MONITOR=${1:-0}
PROPERTY="/backdrop/screen0/monitor${MONITOR}/image-path"
IMAGE_PATH=`xfconf-query -c xfce4-desktop -p ${PROPERTY}`
xfconf-query -c xfce4-desktop -p ${PROPERTY} -s ""
xfconf-query -c xfce4-desktop -p ${PROPERTY} -s "${IMAGE_PATH}"
Now when will this be useful? Barely never. Still enjoy it :-)

Update: script snipped updated to run within a cronjob.

Vala Notes Plugin

  • March 11, 2009
  • Mike Massonnet
Or better, there is Vala in the Notes plugin. It's been a long time I thought about a hypertext view widget for the notes plugin, so it can highlight links and open them on click, and doing this in pure C/GObject is quite a PITA because there is a lot to take care about (more lines of code), and then you didn't start thinking about the whole functions of the object. Now this is retro with the presence of Vala. I played with Vala some time ago, doing some very rudimentary hello worlds, and I never had a chance to really write something in Vala, untill two days ago. I started to write a very dummy object on top of GtkTextView that implements the simple undo/redo feature I wrote inside notes.c and it was very fast and easy to backport from the C code to Vala, and this gave me a very good start with Vala (now that was one Vala too much, wasn't it? anyway...). Yesterday I added skel functions to support hyperlinks which I finished today. Finally I integrated the Vala object inside the notes plugin in a way that it compiles to C code when you are in MAINTAINER_MODE, which means for end-users they won't need Vala but only gcc.

Now for those interested into Vala, here is the file I played with: hypertext.vala. This source contains at the end of the HypertextView class, another class that contains a main function so it can be compiled to a binary. This proves how easy it is to test a class, and all you need to do is to run the following command: valac --pkg=gtk+-2.0 hypertextview.vala && ./hypertextview.
There are many samples available with the source of Vala and on Gnome Live. The tutorial covers important points, the FAQ too, but the documentation is a little less interesting if you already know GObject IMHO.
One important thing I learned about Vala was the difference between the out and ref arguments.

If you have a hard time at finding the right method definitions, look into /usr/share/vala/vapi/gtk+-2.0.vapi for instance for GTK+. There you can quickly find any function name you now from the C API, for instance if you want to have a look at gtk_text_view_get_iter_at_location search for get_iter_at_location. By scrolling up you will see that you are in the class Gtk.TextView. Vapis are very easy to read.

I am very interested into porting the objects of the Xfmpc project to Vala, and then start trying out the plugin sample (loading modules during runtime)... I hope my fellow will like that idea :-)

Now for the people interested to develop Vala classes with VIM I have some tips. First follow these instructions in order to get Vala syntax. Then I suggest you install the Tag List plugin, and to get it working with Vala you will need to add the following lines to your vimrc configuration:
" Work-around Tag List
let tlist_vala_settings='c#;d:macro;t:typedef;n:namespace;c:class;'.
\ 'E:event;g:enum;s:struct;i:interface;'.
\ 'p:properties;m:method'
If you don't know about folding then you miss a lot of VIM culture, in fact you can fold/unfold brackets by going over a bracket and typing zf% in command mode. And that's all folk, thanks for reading til here.