Search Results: "tar"

7 November 2007

Andrew Pollock: [life/americania] "As keen as mustard"

Daniel observes that the simile "as keen as mustard" isn't grokked by Americans, and had some trouble explaining the etymology of it. As far as I understand it, it derives from a brand of mustard, known as Keen's. Keen's mustard

Michal Čihař: RC bugs

I'm just wondering: Why do all my packages start getting RC bugs which are easy to fix right now, when ftp-master is down and uploads are not possible? It must have some coincidence...

Roland Mas: Planet scores

Top posters in a few Debian-related Planets:
$ planet-scores.sh 
Planet Debian-FR :
     19 Rapha l Hertzog
      4 Roland Mas
      3 Jean-Christophe Dubacq
      2 Gr gory Colpart
      2 Alexis Sukrieh
Sometimes I think this should be renamed Planet Buxy.
Planet Debian-FR (utilisateurs) :
     10 Julien Candelier
      8 Emilien Macchi
      4 Guilhem Bonnefille
      3 Shams Fantar
      1 Rapha l Hertzog
      1 Olivier Berger (perso)
      1 Jean-Christophe Dubacq
      1 Jean-Baptiste H tier (djib)
      1 Eric Veiras Galisson
Newly added contributors to that planet have all their recent articles aggregated, not only the ones they wrote since they were added.
Planet Debian :
     40 Christian Perrier
      2 Russell Coker
      2 Raphael Geissert
      1 Wouter Verhelst
      1 Steve Kemp
      1 Romain Francoise
      1 NOKUBI Takatsugu
      1 Michal  iha 
      1 John Goerzen
      1 Joey Schulze
      1 Gerfried Fuchs
      1 Fathi Boudra
      1 Enrico Zini
      1 Emanuele Rocca
      1 Dirk Eddelbuettel
      1 David Welton
      1 Christine Spang
      1 Antti-Juhani Kaijanaho
      1 Adam Rosi-Kessel
Planet "Christian loves rugby".
debian-community.org :
      4 Holger Levsen
      3 Andrew Donnellan
      2 Evgeni Golov
      1 Wolfgang Lonien
      1 Rapha l Hertzog
      1 Martin Albisetti
      1 Marcos Marado
      1 Jean-Christophe Dubacq
      1 Cord Beermann
      1 Benjamin A'Lee
      1 Andreas Putzo
$
I know I have an encoding problem on some planets, but that script is a very basic curl+shell+sed+grep+recode+sort+uniq pipeline, and I only use it for the amusement value. Maybe I'll recode it with a proper RSS parser some day if I feel utterly bored.

Dirk Eddelbuettel: New York Marathon 2007

I was in New York last weekend to run the 37th New York Marathon which reportedly currently stands as the largest marathon ever run in terms of starters and finishers. And it couldn't have happened on a nicer day: sunny at the start with temperatures in the 50s, no wind, and some clouds in the second half prevented it from getting too hot. Large crowds at most parts of the course, a decent number of bands, and a generally very excited atmosphere. And of course a nice course across the five buroughs finishing in Central Park. For once, I managed to run the race steadily and yet fairly fast, ending up with a time of 3:18:47 (and thus a 7:35 pace). This is about a minute slower than my PR from Sunburst 2006, and just two seconds faster than my best Chicago Marathon result from 2006, yet much better than this year's times from Boston 2007 where it was too cold, and Chicago 2007 where it was way too hot. Given that the NY course is somewhat hillier, and that was definitely busier and more crowded than the other races, I'm quite happy with the time, and the way I ran, getting through without any walking breaks. Not quite negative splits at around 1:38 and 1:40 for the two halfes. With enough energy left at the end, I finished the remaining 2+ km after the 40 km with a sub-7:00 min/mile pace which felt great. And it is a nice feeling to have completed the Boston, Chicago and now New York marathons in the same year. Last but not least, the weekend was a general blast as I was staying with a friend I hadn't seen in a decade which made for lots of stories, and even more beers...

Raphael Geissert: Your message to FOO awaits moderator approval..

After sending 785 reports I received three notification messages about my message awaiting moderator approval.


I find it curious that some lists aren't open for anyone to post but anyways used in the Maintainer field of some packages.

Here are the three emails I received:
Your message to Debian-arabic-packages awaits moderator approval
Your message to Pkg-icecast-devel awaits moderator approval
Your message to Pkg-dia-team awaits moderator approval


Besides that, people already started to react to the reports so it seems like my goal will be accomplished :)

Raphael Geissert: mass bugs filing: debian/watch fails to report upstream's version

About five minutes ago I started a script I wrote which is sending over 780 bug reports :).

I have to say at first I was a little bit afraid of something wrong happening (I've never done this before so I didn't want to create a massive mess) so after it sent like 7 bug reports I stopped the script to make sure it was all right.

After verifying the already sent bug reports I started the script once again :)

Right now I'm watching the script's output just to make sure it is all right:

...
Sending report for galrey (2p3-9)...done
Sending report for pads (1.0.2-1)...done
Sending report for qtemu (1.2-7)...done
Sending report for latrine (1.0.4-2)...done
Sending report for libfile-rsync-perl (0.10.0-1)...done
Sending report for mednafen (0.42-1)...done
Sending report for tau (0.8.1-1)...done
Sending report for trang (2.16.4-1)...done
Sending report for xoo (20030619-5.1)...done
...


All bug reports are user-tagged dehs-no-upstream.

This is only the first step on making Debian maintainers more "DEHS-aware" :D

6 November 2007

Steve Kemp: There's trouble blowing like a hurricane

xen-tools has just got a new command:
xen-resize-guest --hostname=foo.my.flat --increase=5Gb
That will take the existing guest foo.my.flat and magically resize the main disk image to be 5Gb larger. This works for LVM & loopback images, but not yet for users of EVMS. Whilst doing this job manually isn't terribly difficult it can be troublesome to perform all the steps in order without screwing up. Hence the new command. In other news I've managed to fix my broken greylisting implementation - so all the mails which were previously being queued upon klecker.debian.org should now be delivered/bounced. I believe the blame here was 50/50 me and exim's back-off behaviour, but I'll know better in the future. Remember me when you come to choose your next anti-spam service. It copes beautifully with a sustained delivery rate of 300-700 messages a minute when queues suddenly restart delivery ;) TODO: Catchup on mail. Implement message tagging for mutt to better keep track of items which are pending/claimed by me. Until we get RT.

Enrico Zini: axi-searchasyoutype

apt-xapian-index: search as you type I've recently posted: Note that I've rewritten all the old posts to only show the main code snippets: if you were put off by the large lumps of code, you may want to give it another go. Today I'll show how to implement a very attractive feature for a user interface: search as you type. The idea is that you don't need to press enter to fire up a query: instead, the results materialise in front of your eyes as you type them. The example I created uses curses, but the idea is good on any interactive user interface. The main thing to keep in mind with search as you type is that the last word is likely to be partially typed, unless maybe some timeout expired since the user's last keystroke. Xapian comes into help here, as it allows us to expand the partially typed word into an OR query with all the terms that start with it. This means that if we are typing, for example, "progr", we can turn the query into "program OR programmer OR programming OR programmed [...and so on...]". I won't show the UI code, except a simple input loop that triggers the query at every keystroke:
    def mainloop(self):
        while True:
            c = self.win.getch()
            self.line += chr(c)
            self.results.update(self.line)
The interesting part is in the update function. First we split the line in words and convert the words into a query:
        # Split the line in words
        args = self.splitline.split(line)
        # Convert the words into terms for the query
        terms = termsForSimpleQuery(args)
Then we expand the last word with all possible completions:
        # Since the last word can be partially typed, we add all words that
        # begin with the last one.
        terms.extend([x.term for x in db.allterms(args[-1])])
Now we can build the query. Of course you can add all other sorts of things to the query, for example a boolean expression of tag filter like in axi-query-pkgtype.py; Xapian will cope.
        # Build the query
        query = xapian.Query(xapian.Query.OP_OR, terms)
Finally the query. For bonus points you can do the adaptive cutoff trick to discard bad results. In my case, since I don't implement scrolling of results, I also limit them to what fits in the window:
        # Retrieve as many results as we can show
        mset = enquire.get_mset(0, self.size - 1)
Finally, draw the results on screen:
        # Redraw the window
        self.win.clear()
        # Header
        self.win.addstr(0, 0, "%i results found." % mset.get_matches_estimated(), curses.A_BOLD)
        # Results
        for y, m in enumerate(mset):
            # /var/lib/apt-xapian-index/README tells us that the Xapian document data
            # is the package name.
            name = m[xapian.MSET_DOCUMENT].get_data()
            # Get the package record out of the Apt cache, so we can retrieve the short
            # description
            pkg = cache[name]
            # Print the match, together with the short description
            self.win.addstr(y+1, 0, "%i%% %s - %s" % (m[xapian.MSET_PERCENT], name, pkg.summary))
        self.win.refresh()
That's it, try it out. You can use the wsvn interface to get to the full source code and the module it uses. You can see a similar technique working in goplay, where it is also integrated with an interactive tag filter.

Russell Coker: Xen for Training

I’m setting up a training environment based on Xen. The configuration will probably be of use to some people so I’m including it below the fold. Please let me know if you have any ideas for improvements. The interface for the user has the following documentation:
(more…)

Christian Perrier: RWC: RSA-TON, or why I love rugby

If you hadn't the occasion to see RSA-TON, just look around for it, find if it is broadcasted at a later time and watch it. The Tonga team just had 10 minutes of weakness, with South-Africa scoring three tries. But they never gave up, scored two tries and finally ended up 25-30, winning the defensive bonus point and really worrying South-Africa. For sure, the repeated failures of RSA on penalties also helped for this scenario, but Tonga became the stars of this pool and Finau Maka is the star of Tonga..:-) The Bollaert stadium in Lens is more used to the fights of the local soccer team than high level rugby but they supported the Tonga team the very same way they support the "Sang et Or". I think that the Tonga players will remember that one. England can *really* worry.

Christian Perrier: RWC: why did France lose...

...at least, in my opinion (which is obviously biased, let's admit that). There are several reasons for this loss: Some *bad* reasons for the English victory:

Christian Perrier: RWC: SCO-ROM and ITA-POR

Two successive days with only one match. We watched Scotland-Romania (42-0) yesterday. Very serious match by the Scots who played better than their first match. They scored 6 tries against a quite weak Romanian team, with no soul. Nothing really important to say as I nearly felt asleep watching the match. Italia-Portugal today feature a good hot attendance in Parc des Princes with the numerous Portuguese or Portuguese-origin people who live in the Paris area pushing "their" team. Most of them certainly never got interested in rugby before (futebol!) but that gave a noisy stadium, particularly when portugal scored their try (and only points in the game). Italia won 31-5 after a good start, but quite weak field play later even if the Portuguese has big defensive holes. I don't really see Italia beat Scotland now and I think we'll see Scotland in 1/4th finals. Small day to come tomorrow (Wales-Japan, with a probable easy win by Wales), before a peak day on Fridady with a very much expected France-Ireland.

Christian Perrier: RWC: Argentina still there, Italy wakes up

After one day off, we watched Argentina-Georgia yesterday evening. Interesting game because it directly affect France's chances to qualify after Argentina's win on Friday. Argentina had a big disadvantage by playing only 4 days after their historic battle against France. As a logical consequence, they appeared quite tired and very imprecise. On the other hand, Georgia fought very courageously with a strong pack of forwards, encouraged by most of the crowd in Lyon. Finally, Argentina won *and* scored the bonus point by scoring a try in the very last minute (which might become very important to qualify in this pool. Good game even if Argentina was not that impressive, but I still think this is mostly because of the 4-days delay. Today, 3 games were scheduled. We didn't watch USA-Tonga (15-25). USA was slightly favourite for that one but they also were quite tired by playing 4 days only after their battle against England on Saturday. This was the first match for Tonga and obviously the island players were less tired and played a good rugby to win that one. Japan-Fidji (31-35) seems to have been the most uncertain match as of now. I somewhat regret not watching it as these two are among the teams I like watching and 7 tries in the match probably made it very interesting. Tonight, we watched Italy-Romania (24-18). The italians compete with Scotland for the remaining qualifying spot in that pool, if one assumes that New Zealand will obviously win all its matches. So, Italy *had* to win that match. The quality of romanian rugby has decreased in the last 10 years, but they still have a good set of great players, most of them playing...in France (just like one third of the italian team, indeed). The match was quite indecise with italy keeping the ball all first half long, but only leading 8-0 on half time....and being surprised by two romanian tries at the beginning of second half (8-12). After a strong domination of Italy, Romania was logically sanctioned by one expulsion and a penalty try (for successive voluntary faults), but, until the end, Italy was still in danger. They finally made it, which was the most important for them, 4 days after they were sweeped out by the All Blacks. We're now eagerly waiting for *THE* game of this week, England-South Africa in the Stade de France on Friday. Elizabeth found out that a few tickets are still available, but for 253 euros each, we decided to watch it on TV. So, between 21:00 and 23:00UTC that day, don't even think about pinging me on IRC. I still haven't decided who I'll support the most as I'm not a huge fan of either team....but they're still among the best in the world, of course.

Russell Coker: Squid and SE Linux

Is Squid not returning some data you need on a SE Linux system? The default configuration of the SE Linux policy for Squid only allows it to connect to a small number of ports which are used for web servers. For example ports http (80) and https (443) are labelled as http_port_t which permits serves such as Apache to bind to them and Squid to connect to them. But sometimes services run on non-standard ports and periodically new services are devised which use the HTTP protocol and thus you have Squid and Apache using new ports. semanage port -a -t http_port_t -p tcp 11371 One example of such a port is hkp (11371) - the latest protocol for sending and receiving GPG/OpenPGP keys. Running the above command relabelled the TCP port 11371 in question as http_port_t and thus allowed everything to work. setsebool -P squid_connect_any 1
An alternate option would be to run the above command to allow Squid to connect to any port. I will suggest that the upstream policy be changed to make the default labelling of TCP port 11371 be http_port_t, but the same operations can be used for other ports. Some people may claim that this makes things difficult for sys-admins. But the fact is that a well known port is a significant resource that you don’t want to permit any random user to access. Not only do the SE Linux port access controls prevent malice, but they also prevent system programs from accidentally using the wrong ports. A common example of accidental mis-use is the port 631 used for the IPP (Internet Printing Protocol - CUPS). When system programs need to use TCP source ports below 1024 they start at 1023 and work their way down, having such programs get down to 631 is not uncommon (there are some error conditions which result in ports being reserved for some minutes after use). In terms of malicious operations, it seems that the ports used by database servers such as MySQL and PostgreSQL would ideally be inaccessible to a Squid proxy, and services such as network backup should be inaccessible to everything other than the backup software.

John Goerzen: American Priorities

Number of people killed on Sept. 11, 2001: 2,974
Number of suicides in 2004: 32,439
Number of people killed on American highways in 2006: 38,588
Annual deaths from obesity:300,000
Total deaths from cancer in 2007:559,650
Total deaths from heart disease in 2004:871,500
 
Total military spending in FY2008: $1228 billion
Funding for health research & improvement (NIH):$29 billion
Total support of Amtrak (safer, cleaner than highways):$1.6 billion
National Highway Traffic Safety Admin. spending in FY2008: $0.8 billion
 
WHAT IS WRONG WITH THIS PICTURE?

Kartik Mistry: Jigdo and Debian DVD/CD

Kumar, a dedicated Debian dude has written following and I’m sponsoring the first ever Sponsored Post to my blog: Thanks to Kartik Mistry for sponsoring’ this blog post. I wanted him to do this because I don’t blog, and his blog has wide reception on Planet India FLOSS and Planet Debian. So, here goes! Jigdo is a wonderful way of constructing CD/DVD ISOs by dowloading smaller units (like deb packages) to construct an image on your machine, rather than download a 4.3 GB monster over internet only to realize that the connection stops half way or some such thing. I would also take this opportunity to publicize IIT Madras’ mirror, which mirrors quite a bit of free software. It has a (somewhat) offical Debian (x86, amd64) mirror at http://ftp.iitm.ac.in/debian
ftp://ftp.iitm.ac.in/debian And am x86 mirror for Ubuntu as well:
http://ftp.iitm.ac.in/ubuntu
ftp://ftp.iitm.ac.in/ubuntu It is also (most of the time) ftp.in.kernel.org and www.in.kernel.org, since it is an official Linux kernel mirror (the only one I know of in India). Anyway, let’s jigdo now! We are to prepare the DVD for Etch 4.0r1 (i386) using jigdo. Here are the steps: 0. Get Jigdo. You can get the “lite” version for any GNU/Linux distribution or Windows here:
http://atterer.net/jigdo/ But Debian/Ubuntu users just need to apt-get install jigdo-lite. 1. Visit http://cdimage.debian.org and go to the “Download CD/DVD images with Jigdo” section. 2. I need the official i386 “stable” DVD image for i386, so I click that. That takes me to a page with a directory listing with many “.jigdo” files and “.template” files. While the jigdo file is a gzipped and formatted list of files in the CD/DVD, the template file is one with a description of the image itself. See TechDetails.txt in the jugdo distribution (or /usr/share/doc/jigdo-file) for details. 3. I download debian-40r1-i386-DVD-1.jigdo and debian-40r1-i386-DVD-1.template to a directory on my computer, and run this: jigdo-lite debian-40r1-i386-DVD-1.jigdo 4. First, I am asked for files to scan. Since I don’t have any files on my disk already (or don’t want to use them), I just press Return. 5. I am then asked for a mirror. I specify the fastest mirror available:
ftp://ftp.iitm.ac.in/debian And that’s it. It is supposed to write a blank image and start populating it with Debian packages! Simple, huh? Depending on the speed of your connection, it should take a few hours (or days) to get a DVD image done. A CD would be much quicker. For people inside IIT Madras, we get 5-7 MBps to the mirror, so it takes around half an hour for the DVD image. So, now you know whom to ask for those Debian DVDs and CDs, if you’re near Chennai, right? Troubleshooting suggestions are available on the Debian CD-Image
website here: http://www.debian.org/CD/jigdo-cd/ So, hope this was useful. Kumar Appaiah

Christian Perrier: Broken KDE

It's quite some time since I daily live with a partly broken KDE. I know that some transitions are on their way, so this might be related in some way. As of now: This is quite frustrating as I see no obvious place to look at and I dealt with daily aptitude upgrades quite painlessly. It is not frustrating enough to make me look deeper into this but, anyway, I have no damn clue about where to look, indeed. I guess that a KDE wizard could probably have more clue about this but, really, putting myself in Joe User's skin, I really feel as clueless as the average Windows user when something is broken on his computer. THat's maybe the 'just like Windows' stance of KDE, after all...:-) (GNOME zealots, go away: I ran out of GNOME a while ago when I had about the very same feeling during some transitions and my only option was to either try understanding every funky file in ~/.gconf to fix my problems)

5 November 2007

Sune Vuorela: de-uic

I found some program today. It had a file, buttons.h which was autogenerated by:
uic -o buttons.h -embed buttons pics/attach.png pics/detach.png
Unfortunately, those pictures wasn’t included in the tarball - and as it is seen earlier, uic doesn’t generate endian-agnostic code. So what do smart man do now? Write upstream and wait? Could be done. Or figure out how to de-uic the header file. Qt and #kde4-devel to the rescue. #include "buttons.h"
#include "qimage.h"
int main()

uic_findImage("attach.png").save("attach.png","PNG");
uic_findImage("detach.png").save("detach.png","PNG");

compiled with g++ -I /usr/include/qt3/ test.cpp -lqt-mt and now there is images that can be uic’ed.

Gunnar Wolf: Mini-post-mortem of a failed mini-Debconf

Over one year ago, still at DebConf 6, the Latin American Debian people (and by people I mean just interested people, regardless of whether they were/are official DDs or not) held a BoF session. One of the ideas we discussed there was that, in order to increase Debian presence in our region (which is by no means small - Let alone the geographical aspects, I'm guessing we are about 350 million people, roughly split in half between [officially] Spanish- and Portuguese- speaking countries). Yet, this is an area with very little involvement in Debian in particular, and with Free Software in general.One of our first issues seems to be language - Just by its scale and economic importance, we cannot even put in the same scale Brazil and the Spanish-speaking countries... So I'll focus on Spanish-speaking Latin America, as (I recall) we did in that session.So, we agree: We need more local involvement in each of our communities. And, so far, we have seen quite relevant results. The number of people directly involved in Debian in Argentina, Chile, Per , Colombia, Venezuela, El Salvador and Mexico (excuse me if I forget you in another country!) has notably risen since I brought this topic up, together with Christian Perrier, back in DebConf5, Helsinki. An undeniable fact is that distances in our continent, however, are huge. In the 2006 BoF, we agreed we should promote regional meetings, that would serve both for working focused on Debian topics (i.e. hack sessions, as we do in DebConf) and for spreading our work to the local population, to help them see that it is not needed to be super-skilled or anything like that to contribute to a real, important and large Free Software project such as ours. Of course, taking into account the distances in the continent, we thought it would be sensible to split it in two - and to try and hold regional mini-debconfs - One for the Northern half (i.e. Per , Ecuador, Colombia, Venezuela, Central America, Cuba and Mexico), and one for the Southern half (Bolivia, Chile, Argentina, Uruguay, Paraguay). And, for logistical reasons mainly, I strongly advocated having our first Northern meeting in Panam . Why Panam ? Because it is a place cheap and easy to get to. They have a very important international airport, connecting to most if not all countries in the region, and -as they have risen as a business center- have good connectivity. Visa is required for many of the interested countries, but trivial to get (as opposed to what happened here in Mexico :-( ). Of course, other countries also looked interesting (there was some argument pushing Venezuela, but in the end, we all conceded it would be in Panam .I have to strongly thank Guillermo Garc a - He is not (yet? :) I hope he still wants to get involved with this bunch of people) in Debian in any way, but after I contacted him, he agreed to start looking for a way to get us the right facilities in Panam . He coordinated with a team which did most of the organization - A very nice web site is still available so you can look at their work - Quite a good job, I must add.They contacted Universidad Tecnol gica de Panam , started talking with several potential sponsors, got information regarding hotels for us... But in the end, it flopped. Why? Because, although many of us were originally interested, in the end very few people (only three, none of them officially a Debian Developer, according to their last press release) confirmed their intention to attend.Which brings me again to the question: Why?First and foremost, I think it was lack of involvement. For one reason or another, all of the people that in the beginning pushed for this miniDebConf ended up busy doing other stuff, and didn't get at all involved in organization. It would have been a great present from our Panaman friends, yes, but quite unfair. And, of course, with no Debian people involved in organizing it, we got an chicken-and-eggesque situation... Where it didn't grab the attention of other Debian people.Second, what they offered us was quite different to what we intended in the first place - At least, to what I imagined. On my first messages both to debian-devel-spanish and to Guillermo, I tried to get something close to what we had in mind: Something as informal and as intimate as it could be. My original request to Guillermo was just to get us a room where we could hack and talk, and probably sleep with sleeping bags.Of course, I can perfectly imagine that when he requested the space to the university, on one hand, they didn't feel at ease having International Guests (with capital I and G - Very important for most Latin American universities!) sleeping on the floor. And, on the other hand, they would love to be able to show us around! Having an international project focus on a university in a non-technologically-well-known little country is quite something to show off!Anyway... What happened? I was among the instigators, but Real Life called me away (I've been mostly inactive in Debian since September! :-( ). The miniconf was scheduled for November 14-17. I also insisted originally on having the miniconf on a long weekend (say, Friday through Sunday), as -being a miniconf and not the Real Deal- it'd be much easier for most of us to rob one day off work than a full week. In the end, this was the most important point for my decision not to join: I cannot afford more time off my work, not at this time of year. About the other involved people? I do not want to speak for any other people.In the end, sadly, Guillermo had to inform us they cancelled - No, not postponed, but definitively cancelled. Why? Because -and I have to agree- next year we will have DebConf in Argentina... And many people in the region will focus our time and money on getting there. Ok, making this whole story short: I'm very, very ashamed and sorry, with you personally, Guillermo, and with your whole team. And I hope we can resurrect this idea - be it in Venezuela (as it was suggested once) or elsewhere.

John Goerzen: Viper

Well, now this is quite the experience.

I've been trying Viper for the past few days. Viper, for those that don't know, is usually described as a set of Vi bindings for Emacs.

After reading the nearly 100 pages of documentation and trying it a bit, I have realized that this is not really an accurate description. Viper is a port of vi to Elisp.

But that doesn't really do it justice. Viper seems to have pretty much everything going for it that Vim does, and then some. It is extensible with Elisp, and works with all the Emacs major modes (indentation and so forth). Yet it also is a very authentic Vi implementation, yet more customizable than Vim. And, in my opinion, more capable than Vim too.

On the one hand, this is a really neat combination: the power of the vi editing commands with the power of Emacs and Elisp for indentation, customization, etc.

On the other hand, it makes my head hurt. While Viper and Vim both are supersets of the vi command set, they don't always implement extensions (such as multiple windows) the same way or with the same keys. Of course, you could remap them in both, but it's a bit jarring to run Viper in expert mode, press C-w to start creating a new window, and have it run the Emacs cut command. (You can run Viper in a more limited mode where it does not recognize any regular Emacs keys if you don't want that)

It's just weird. It mostly looks like Emacs. It is modal like Vim, and responds to all Vi and most Vim commands. It has an additional mode: the Emacs mode. Also if configured to run in expert configuration, Emacs commands are accepted most places. Yes, you can move with h, j, k, l and C-n, C-p, C-f, C-b all at the same time.

The main drawback I can see is that Viper mode doesn't work well with Info mode, which has other bindings for keyboard shortcuts... so all of a sudden, hjkl don't work in info mode.

I don't know yet if I'll use viper much, but it is a slick program.

Next.

Previous.