I work with it-agile in beautiful Hamburg, where I develop well-crafted software using agile practices and help others doing so. Otherwise, I listen to lots of music, tinker with software, work out and run.
I guess you all know you can reduce the size of a PDF on a Mac via “Save as …” in Preview and then selecting “Reduce file size” as the Quartz filter. The problem with this filter is that it often degrades the image quality to an unusable degree. You can create your own Quartz filter that uses more adequate compression settings.
I was very satisfied with these settings:
This shrank a photominutes PDF from 35 to 1.6 MB with hardly any visible loss of quality.
Vor ein, zwei Jahren hatte ich Angst um meine wichtigste Nachrichtenquelle: Spiegel Online. Die Artikel wurden stumpfer, die Rechtschreibfehler nahmen zu, der Mehrwert aus der investierten Zeit ging gegen null. Doch scheint mir, dass sich in der Redaktion etwas verbessert hat. Immer wieder finde ich Artikel, die informativ, orthographisch korrekt und gut geschrieben sind – und glänzen. Zum Beispiel mit Formulierungen wie dieser:
Doch gerade dieses religiös heilsgeschichtlich aufgeladenen Endzustands wegen hat die Utopie von Marx und Engels halbe Generationen fasziniert. (Quelle)
„Halbe Generationen“ – wie viel Sprachwitz und zugleich Bedeutung steckt drin!
Von Angst keine Spur.
Nate: “It’s really fucking lonely. I feel like all I do all day long is manage myself, try to fucking connect with people. But it’s like no matter how much energy you pour into … getting to the station on time or getting on the right train, there is still no fucking guarantee that anyone will be there for you – to pick you up when you get there. – You know what I mean?”
Maggie: “Well, I know that if you think life is a vending machine, where you put in virtue and you get out happiness, then you probably are gonna be disappointed. I know that.”
From: Six feet under, season 5, episode 4
Falsch:
Für Veh, ein Verfechter attraktiven Offensivfußballs, muss es manchmal eine Qual sein, einigen seiner Profis bei der Arbeit zuzuschauen.
Quelle: Spiegel Online
Richtig:
Für Veh, einen Verfechter attraktiven Offensivfußballs, muss es manchmal eine Qual sein, einigen seiner Profis bei der Arbeit zuzuschauen.
Going from 2.5 to 3.0, JBehave changed its default reporting behavior – unfortunately, for the worse. Out of the box, JBehave 2.5
JBehave 3.0, on the other hand,
So how do you make JBehave 3.0 more verbose? You have to change the configuration in your story class:
StoryReporterBuilder, that either does not talk at all or at all times – and is not open to extension :( – and You can make this setup even more useful by making pending steps fail:
In one team, we have come up with the convention of committing stories in progress with an @Ignore annotation so as not to disturb other people on the team.
When working on the story, you just remove the @Ignore and the policy of failing pending steps prevents you from checking this in – unless you’re done, of course.
The most common mechanism for automating tasks on Ubuntu is the cron daemon. You can schedule tasks with crontab -e or you can make your life easier by using Scheduled Tasks, a graphical frontend for crontab. You might need to install gnome-schedule for that.
Now, how do we actually empty the trash? The most commonly recommended way is rm -r ~/.local/share/Trash/files/*. This, however, leaves some garbage in ~/.local/share/Trash/info, where Ubuntu keeps metadata about the contents of the Trash, including the original location and the deletion date. Merely deleting the contents of Trash/files will leave you with orphaned metadata.
A better way is to use the utilities from the trash-cli package:
trash
list-trash
restore-trash
empty-trash
The best bit is that you can provide empty-trash with a parameter. So
empty-trash 5
will permanently delete all files that have been in the Trash for more than 5 days.
I keep all of my notes in thousands of plain text files in one directory, and version them using Bazaar. Being fed up with Bazaar’s sluggishness – for instance, it makes me wait a couple of seconds for a simple bzr status – I decided to migrate to Git.
I first tried Tailor because Jeff Hodges was favorably impressed by it. Unfortunately it kept nagging me about some branch parameter. Having a fresh repo as a target, it was not obvious to me how to proceed. So I turned to Google for alternatives.
And so I discovered git fast-import and its Bazaar counterpart, bzr fast-export. This description looked sufficiently straight forward. But in fact it’s even easier. From the Bazaar working tree I did:
sudo apt-get install bzr-fastimport
git init .
bzr fast-export . | git fast-import
This left the working tree dirty, even though it had been clean before. So after
git reset --hard
I was done.
I used to discard programs that promise natural lighting for computers as something quite out there. Not sure what hit me, but last weekend I decided to give it a try, after reading about a new release of F.lux on Omg Ubuntu. Well, F.lux did not work on my Ubuntu installation at all, but Redshift, an alternative, did.
Now, just a week later, I find any monitor without “natural” lighting irksome. So I encourage you to try it too. If you are on OS X or Windows, go with F.lux, if you are on Ubuntu, I recommend Redshift.
Installing is trivial:
sudo add-apt-repository ppa:jonls/redshift-ppa
sudo apt-get update && sudo apt-get install redshift
redshift is the commandline program, gtk-redshift is its equivalent that sits in the notification area.
Redshift adjusts the lighting according to the time of day. To this end, by default, it asks the clock for your location. If you do not have a clock in your Gnome panel, gtk-redshift fails silently. So get your settings right with redshift first.
You can manually pass a location to Redshift. Find your latitude and longitude here. For Hamburg the parameters are:
redshift -l 53.6:10.0
Redshift has two color temperature settings: one for the day and one for the night. According to the time of day, it adjusts the color temperature on the continuum between the two. I found Redshift’s default temperature for the night to be too dark. You can adjust that too. So my settings look like this:
redshift -l 53.6:10.0 -t 5500K:4400K
Now go add a new entry to Startup Applications and forget all about what you just read.
Twitter is down and I cannot tweet about it.
In der Rechtsprechung des Bundesgerichtshofs und der Oberlandesgerichte gebe es „soweit ersichtlich keinen einzigen Fall“, in dem eine fristlose Kündigung eines Geschäftsführers oder Vorstandsmitglieds wegen eines geringfügigen Eigentums- oder Vermögensdelikts Bestand hatte.
So seien in der Vergangenheit selbst unberechtigte Spesenabrechnungen in dreistelliger Höhe als zu gering angesehen worden, um eine außerordentliche Kündigung zu rechtfertigen. Wenn dagegen bei einer Arbeitnehmerin die Einlösung zweier Bons in Höhe von 1,30 Euro als Kündigungsgrund ausreichen würde, verstoße dies gegen das „Gebot der Gleichbehandlung“ nach Artikel 3 des Grundgesetzes.
Quelle: Spiegel Online
If you are having trouble with wifi tethering on Ubuntu, your problem may well be caused by Ubuntu’s inconvenient treatment of ad-hoc wireless networking.
Just put your wifi card into ad-hoc mode manually and you are ready to go.
ifconfig wlan0 down
iwconfig wlan0 mode Ad-Hoc
You only have to do this once. Afterwards Ubuntu will readily allow ad-hoc wireless networking.
Haruki Zaemon’s thoughts on functional programming and OO remind me of the shift in sociology from Parson’s structural functionalism to Luhmann’s functional structuralism.
There’s a certain breed of Monday where morning comes with fangs, ones so straightouttahell, I image the horned one himself, hunched over workbench sanding down the best till its grain reads your name, each flint sharp, Dickensian in darkness, a certain type of 9 a.m. where coffee tars the tongue, high fives hail Hitler and the postman’s whistlesong will strangle you from inside. The Welcome mat will cuff you, the door resist your shoulder, outside the easy limp of wind will whip you like a bitch. If blades of grass that break concrete, their tips stiff as fists, lend none of their rebel strength, drive or sapling hymns and journeying pollen pause just to poison, all this and the front gate is grating at your gait, do as I do: crawl for your sofa, flick for a channel, find a thick book, paint, do nothing till Tuesday. Just wait.
In part one of this post series, I explained how to use disper to simplify switching between display configurations on Ubuntu. In this post I will explore the next level of convenience: reusing display configurations.
Chances are, you have a couple of settings that together make up most of the situations in which you use your notebook. For instance, I use mine at home, at work and of course, on the go. These three scenarios cover more than 90% of my notebook use.
Now, I am lazy and I do not want to rethink time and time again which arguments to pass on to disper after turning on my notebook. So I use auto-disper, a little script by Stefan Tomanek, to save the respective display configurations. Let me show you.
cd
git clone git://github.com/wertarbyte/auto-disper.git
Now we need to put the script someplace that is on your path. I find ~/bin a convenient location. Ubuntu adds it to your $PATH by default.
If ~/bin does not exist yet, create it, then log out and log back in.
mkdir ~/bin
Let’s put auto-disper there.
cp ~/auto-disper/auto-disper ~/bin
Now use disper to configure the displays the way you want them. For instance, at home, I want to use only my external monitor:
disper -S
Then I tell auto-disper to save this as the home configuration:
auto-disper --save home
auto-disper uses the names of the attached monitors to identify configurations. For instance, my ~/.auto-disper/home/setup reads as follows.
display DFP-0: CMO
display DFP-1: LG L227W
Obviously, I have a 22” LG at home.
From now on, whenever you want to reuse a saved display configuration, just type
auto-disper --change
and auto-disper will detect and apply the appropriate configuration.
Again, you can go one step further and assign this command to a global hotkey, so you only have to hit, say, Super+F4 in most situations in order to configure the monitors the way you want them. Now that’s something I did not know how to do on Windows.
Dealing with multiple monitors on Ubuntu used to be a pain for me. No more. In a three-part series, I will explain how I have made it very comfortable.
In this installation of the series, I will explain how to use disper, a nifty little tool by Willem van Engen, to simplify changing your monitor setup.
I assume you are on Karmic. If you are not, dealing with PPAs differs slightly.
sudo add-apt-repository ppa:wvengen/ppa
sudo apt-get update && sudo apt-get install disper
The following basic commands will be enough for most cases. If not, use disper -h to find out more.
disper -s
This will switch to your primary display. If you have a notebook like me, it’s the internal TFT panel. The external monitor or projector, if connected, will remain dark. I use this on the go, of course.
disper -S
This will switch to your secondary display. This could be an external monitor or a projector. Your primary display, in the case of a notebook the internal TFT panel, will remain dark. I commonly use this at home, as I am not too fond of dual-monitor setups.
disper -c
This will show the same contents on both, the internal and the external display. If their resolutions differ, disper will use the lower of the two. I commonly use this for live coding, for instance during a TDD Camp.
disper -e -t top
This will extend your desktop to the other display to the top. You can specify other directions, too: left, right and bottom. I commonly use this for presentations with the OpenOffice.org presenter console.
That’s it. No more manually manipulating nVidia X Server Settings. A quick command, that’s it.
If you only have a couple of setups you need to quickly switch between, assign hotkeys to them. If you use Compiz, which I believe is the default in Karmic, you can do so via the Commands plugin in the CompizConfig Settings Manager.
In part two, I will explain how to use auto-disper to save and use monitor configurations.
Der Bund will Computer-Benutzer mit von Viren infizierten Rechnern bestrafen. Konkretes zu Sanktionen gibt es noch nicht, aber schon die Idee ist bemerkenswert. Zur Argumentation bemüht Sven Karge die TÜV-Metapher:
Wer im Netz ohne Virenschutz unterwegs ist, gefährdet andere Nutzer in etwa so, wie ein Autofahrer, der mit kaputten Bremsen unterwegs ist und so andere fahrlässig gefährdet. – via Spiegel Online
Habe lange nicht mehr so einen Unsinn gehört! Mit einem Computer habe ich die Möglichkeit, mich selbst zu schützen. Damit können andere mich nicht gefährden. – Ganz andere Situation mit einem nicht kontrollierbar gewordenen Auto.
Earlier today, I was looking for a continuous testing solution for Python and I stumbled upon Patrice Neff’s post about continuous testing for Python – alas, on a Mac.
Of course, I could reuse the engine, Bruno Bord’s test daemon, which simply reruns your tests with Nose whenever you save a change. It works fine, but you have to look hard at the console to recognize the result. So I gave Rudolf a try. This is a plugin for Nose that colorizes its output.
But I was still envious of those nice and shiny Growl notifications. So I wrote a Nose plugin myself that shows notifications of test results on Gnome: nose-gnome-notify.
A harbor doesn’t prevent all waves from rocking the boats, it just makes the big ones smaller. MVC and its ilk make maintenance easier by reducing the cost of change, not creating a plug-replaceable system.
Right on the money, Ben Rady.
If anyone is building an Android or iPhone app, you might want to check out these icons:
Nav4All offers free turn-by-turn navigation for all major smartphones, except the iPhone. Nav4All updates the route automatically when you deviate. The voices are quite pleasant too.
Of course, there are some glitches. On my HTC Hero, Nav4All fails to navigate to addresses of my contacts. And the address book search itself is painfully slow. Also the app does not feel native on Android.
Overall however, Nav4All is fairly functional and intuitive to use. If you do not have fruit on your hardware, be sure to give this a try.
Yeah, vol. 29 is here. A rather scary number. The good thing though is that they are still trying. In my opinion, Mixed Tape 29 is miles better than the previous couple ones. It is not that sickening blend of maple sirup, honey and cocoa powder anymore that it has been at times. Rather a collection of good elevator tracks that have small surprises to offer when you listen more closely.
Panda Cloud Antivirus has the most user-friendly interface I have seen on antivirus program. It is supposed to be very good at protecting you too. If you are on Windows, give it a try.
This is not even funny, or is it?
The vast body of academic research demonstrates that most mergers add no value or reduce shareholder value for the acquiring firm. Given the failure of so many mergers, the question of why mergers continue to occur in large numbers remains. Overconfidence and optimism have come to the forefront as the most common behavioral explanations for the continued prevalence of ill-advised mergers. This paper investigates a different type of behavioral bias that also may influence merger and acquisition decisions—confirmation bias. Using a unique experimental data set, we provide evidence in support of the existence of confirmation bias in merger decision making behavior, particularly with respect to the behavior of actual corporate executives.
Ever typed in a command and then realized you need to do something else first? Like you typed in
mv some.file target/
and then realized you need to create the target directory first? If you use Bash, the solution is simple:
mkdir target.This is my most common use case for killing and yanking. But you have a couple more options with both. You can read up on them in the Bash reference manual.
These are some serious tricks that could improve your interaction with the shell.
I particularly like:
updatedbsudo !!!:1, !:2, …, !$ and !*. Example:
less foo.pyrm !*ˆoldˆnew to fix a typo or change something quickly. Example:
locate -i modonnaˆmodˆmadHowever, I absolutely agree with one commenter that editing the history interactively (using Up to get the last command line and then editing it) will often be a better choice, for it provides you with immediate feedback about what happens to your command line.
Before getting my HTC Hero, I really was looking forward to trying Shazam. Now I did – and got a reality check.
I played
Of these Shazam only recognized
Shazam recognized Sky and sand only on my second attempt. The track that I do not know was misidentified as Circus by Britney Spears.
All in all, it seems you should not even try feeding anything to Shazam that is not charts material. Pity, but that’s the way it is.