July 14, 2014
Some thoughts on VimR

Just an excerpt from a discussion going on on github:

I don’t see VimR as an IDE, or to be precise, not as a full-fledged IDE: I’ve seen the (current) pinnacle of IDEs in JetBrains’ products like IDEA or AppCode. No, they’re not perfect, but they’re really, really really good. I think that it is impossible—and you should not try— to be on par with such IDEs. I know that you can extend Vim(R) with plugins to a certain degree such that it becomes a kind of lightweight IDE, IDE-nano for various languages if you will. And I think that’s the niche where VimR could fit in very well:

  • Real IDEs for serious and professional coding,
  • VimR as an IDE for lightweight and complementary coding and normal editing needs (personally I would love this for markdown and latex),
  • (Mac)Vim for pure editing needs

The following are few things I have in mind to achieve this:

  • First, use as many of Vim-stuff for things, like wig or auto-save on focus loss (I think that reimplementations of those features in VimR and keeping them in sync with Vim would cost too much time and effort),
  • However, find a good way to offer/set these features in the GUI, eg: you could add an option to ignore vimrc and offer a way of configuring VimR in the preference window for the, say, non-power user. In the background we use the Vim options to achieve those features. The power user can let VimR read their own vimrc and do whatever they want. Just a thought: whether it is a smart way of doing it is a different question,
  • Be a good OS X citizen, ie standard shortcuts, standard behavior whenever possible, etc.,
  • Integrate some IDE features, for instance a plugin system for preview pane/window for various formats, eg markdown, latex, etc.

I think that VimR is headed in the right direction (at least in my opinion 😊) and let’s see where it’ll be in the near future!

8:44pm  |   URL: http://tmblr.co/Z-oSPx1LTgys3
(View comments
Filed under: vimr qvacua vim 
May 9, 2014
Why VimR?

Recently, VimR caught much more attention than I anticipated; even too much considering its premature state. For about half a day it was the number three among the trending projects on GitHub! And it has got about 350 GitHub stars already. Some people asked (me) why I do this, the point being that there already is a GUI version of Vim, namely MacVim. Or that it does not offer any advantage over the terminal version of Vim. With this post I want to clarify the rationale behind VimR.

I started to use Vim as a student and loved it since then. I wrote my theses using Vim with VIM-LaTeX! I personally think the Vim-way is one of the most efficient way for editing, if not the most efficient. However, nowadays, I most of the time use IDEs like IntelliJ IDEA or AppCode for work and for hobby projects like VimR, respectively. (I use a Vim emulator though) Therefore, I am not and won’t be a real power user; rather, say, a appreciative casual user.

Modern graphical editors have many convenience features like fuzzy find (called Open Quickly in Xcode, Go to File in TextMate, etc.) or integrated file browser in the side bar. Sure, you can have all these features in Vim using various scripts like Command-T, NERDTree and what-not. However, since I don’t use Vim all the time, I always forget how to use them, eg how to invoke NERDTree, even if it was me who configured the key. And, most importantly, I want to have these kind of features graphically. It’s like the case of mutt/sup vs. graphical mail clients. I used to use mutt back at the university, but now, well, let me quote Roger Murtaugh from Lethal Weapon: “I’m too old for this sh*t!” :)

So, to summarize: the rationale behind VimR is to build an editor which offers the full Vim experience, even if I don’t use all features of Vim, but has other convenience features—found in many other editors and in Vim scripts—in a graphical form, improving the whole editing experience. (This was @jordwalke's idea and he also encouraged me to start the project after he has seen my MacVimFramework project.)

For, say, purists, VimR could well be perceived as heresy or a way of disfiguring Vim, but, oh well…

10:03pm  |   URL: http://tmblr.co/Z-oSPx1FOsltI
(View comments
Filed under: vimr vim qvacua 
May 5, 2014

3rd! Probably it won’t happen again.

April 30, 2014
Open Quickly (or Go to File) working in VimR

Finally, after some days of coding, Open Quickly (or Go to File in TextMate) works in VimR. It’s not perfect yet and it does not look pretty, but it works.

When the user first uses Open Quickly for an open window, VimR starts to scan and cache the content of the worspace, ie the common parent directory of the window’s open buffers. The scanning may take a while if the workspace contains many files, eg the user’s home folder. However once done, only folders with file system changes since then will be scanned again. (When the Vim window closes, then the cache of that workspace will be deleted.)

I used some dylibs and functions from TextMate, eg the string ranker to compute the result list of files. Due to the very modular architecture of TextMate, it is quite easy to use them in other Apps. Most likely, in the course of extending VimR, more parts of TextMate will be used.

April 1, 2014
Tumblr Pro. Awesome!

Tumblr Pro. Awesome!

9:16pm  |   URL: http://tmblr.co/Z-oSPx1BqTGog
(View comments
Filed under: tumblr fun 
March 17, 2014
OMG’s und OTL’s aus einem BWL-Skript

Aus einem Skript mit dem Titel “Einführung in die Betriebswirtschaftslehre”:

Ok, nehmen wir mal an, dass wir solche eindimensionale Fragen stellen. Die vorgeschlagenen Antworten sind sogar nulldimensional:

Die ersten zwei Antworten sind schon sehr erhellend und sehr sachlich — überhaupt nicht reißerisch, duh… Aber die Dritte ist noch besser: “Dann geh’ doch nach Pjöngjang!” + “Smiley” Wirklich? Ernsthaft? Wirklich? W I R K L I C H ? Lesen diese Autoren die Zeilen, die sie produzieren?

Vielen Dank für dieses Diagramm mit absolut keinem Informationsgehalt.

Ja, wirtschaftswissenschaftlich gebildete Akademiker sind ganz besondere Leute; sie kennen nämlich die geometrische Reihe!

Oh… mein… Gott…

9:56pm  |   URL: http://tmblr.co/Z-oSPx1AQPaGP
(View comments  
Filed under: fail OTL BWL 
March 14, 2014
FEUERHEERD’S Tinto 2010

Superb.

11:50pm  |   URL: http://tmblr.co/Z-oSPx1A8CXUj
(View comments
Filed under: wine 
March 14, 2014

Back to tumblr! Why? Let me quote Roger Murtaugh from Lethal Weapon:

I’m too old for this shit!

January 26, 2014
Minimal MacVim Using MacVimFramework

Some time ago, I did some code-massaging exercise and extracted a Framework part of MacVim: MacVimFramework target in qvacua/macvim on Github.

I (finally) found some time and included an absolute minimal proof-of-concept App that uses the Framework:MinimalMacVimtarget in the Xcode project. Basically it has one class (MinimalMacVim/MMAppDelegate.m) which is the delegate for everything. And for the sake of simplicity it does not handle many things like resizing the Vim-view properly when a new tab is created.

Over the course of time I’ll try to improve the Framework and make it easier to use. (Eg, some delegate methods should/can be handled automatically)

Maybe some other folks will find the Framework useful..

January 11, 2014
A Toy App: Cataloq

To try out the document-based database Couchbase Lite and the grid view of the OpenEmu project, I created a small toy catalog app: Cataloq

image

You can

  • add/delete items,
  • change thumbnail and display name,
  • tag and rate items,
  • search by display name,
  • change the size of the thumbnail.

Well, that’s basically it.

August 28, 2013
"The fact that the discipline of economics hasn’t helped us improve our predictive abilities suggests it is still far from being a science, and may never be. Still, the misperceptions persist. A student who graduates with a degree in economics leaves college with a bachelor of science, but possesses nothing so firm as the student of the real world processes of chemistry or even agriculture.
[…]
An effective chair of the central bank will be one who understands that economics is not yet a science and may never be. At this point it is a craft, to be executed with wisdom, not algorithms, in the design and management of institutions. […]"

— Alex Rosenberg and Tyler Curtain, What Is Economics Good For?

August 28, 2013
"Wir leben in einer besonders merkwürdigen Zeit. Wir finden mit Erstaunen, dass der Fortschritt ein Bündnis mit der Barbarei geschlossen hat. […]"

— Sigmund Freud, Der Mann Moses Und Die Monotheistische Religion

9:02pm  |   URL: http://tmblr.co/Z-oSPx1A82z-c
(View comments  
Filed under: freud quote 
August 11, 2013
Kimchi in Stockholm

JM and I recently visited Stockholm. The travel went flawlessly and the weather was fantastic. We wandered around the Gamla stan (the old city). We also visited to the modern art museum and to the museum for design and architecture. At some point, we went into a Coop supermarket. Guess what we’ve found:

Come on!!! Seriously, you call this not-red-and-strange-looking-stuff Kimchi? OTL

August 10, 2013
What I really don’t like about Chrome for iOS

Chrome is my default browser on all of my devices. On iOS though, there are few things that really bug me.

Useless tabless state

Look at the following two screenshots:

image

image

I get this state when I close the last tab; what is the purpose of this state? Should I look at the Chrome icon for one second before I have to press the “New Tab” button in order to get going? It’s just useless. Safari does a better job and opens a new tab immediately after the last tab is closed. In addition, the position of the hamburger button is different when there are tabs present:

image

Position of Close Button

The position of the close button changes when the device is in portrait or in landscape mode:

image

image

Right, left, what now? This is really annoying…

4:32pm  |   URL: http://tmblr.co/Z-oSPx1A85npW
(View comments
Filed under: chrome ios ux 
July 16, 2013
Agile Methodologies and Social Engineering

As I was reading the chapter 9 of Open Society and Its Enemies by K. R. Popper, I became aware of the striking resemblence between his treatise of social engineering and agile methodologies.

Popper criticizes Plato’s demand for a totalitarian and racialist state. In doing so, he discusses Plato’s version of social engineering which he calls the Utopian engineering:

These principles, if applied to the realm of political activity, demand that we must determine our ultimate political aim, or the Ideal State, before taking any practical action. Only when this ultimate aim is determined, […] only when we are in possession of something like a blueprint of the society at which we aim, only then can we begin to consider the best ways and means for its realization, and to draw up a plan for practical action. […] It is convincing and attractive.

A bluprint! This is a bona fide waterfall model: First plan a multi-year (IT) project in every detail. Then, you just execute the blueprint. It is indeed a convincing and attractive model, but deceiving. The big blueprint gives you a false sense of safety. It does not work in most cases.

[…] the Utopian attempt to realize an ideal state, using a blueprint of society as a whole, is one which demands a strong centralized rule of a few, and which therefore is likely to lead to a dictatorship.

This is also typical for the waterfall model: Developers are not sufficiently involved in architecture and design despite of the fact it is them who actually build the software.

He proposes a different “methodologically sound” approach: The piecemeal engineering:

The politician who adopts this method may or may not have a blueprint of society before his mind, he may or may not hope that mankind will one day realize an ideal state, and achieve happiness and perfection on earth. But he will be aware that perfection, if at all attainable, is far distant, and that every generation of men, and therefore also the living, have a claim; […] The piecemeal engineer will, accordingly, adopt the method of searching for, and fighting against, the greatest and most urgent evils of society, rather than searching for, and fighting for, its greatest ultimate good.

Iterations (or Sprints)! Be able to adapt to the current situation fast. Proceed step by step without necessarily having laid out a complete plan. Also, you should implement features first that have the most business value.

In favour of his method, the piecemeal engineer can claim that a systematic fight against suffering and injustice and war is more likely to be supported by the approval and agreement of a great number of people than the fight for the establishment of some ideal.

In agile process like Scrum this directly translates to Sprint Plannings: The developers—not nobody else—commit to user stories in the first planning. In the second planning they reach an agreement on the architecture and the design.

They are blueprints for single institutions, for health and unemployed insurance, for instance, or arbitration courts, or anti-depression budgeting, or educational reform. If they go wrong, the damage is not very great, and a re-adjustment not very difficult. They are less risky,

Reasonably sized and well formulated user stories are very important ingredients for success.

But the piecemeal method permits repeated experiments and continuous readjustments.

Continous improvement; Kaizen! This is agile at its best!

To conclude: The chapter in question, “Aestheticism, Perfectionism, Utopianism”, is really to be recommended; especially for agile methodologists. Just replace “Utopian engineering” and “piecemeal engineering” by “waterfall model” and “agile methods”, respectively and you will get a beautifully written endorsement for agile practices.