Syntext Serna

Xml No Comments »

Syntext is planning a major release of Serna 4 and has just released a minor release 3.6 in April 2008. Alpha Serna 4 is available already.

Syntext Serna is a highly customizable, multi-platform, pure XSL-driven WYSIWYG XML content editor. It looks and works like a conventional word processor, yet gives you much more flexibility to alter or reuse content while keeping its integrity intact. Serna lets you collaborate on compound documents that contain embedded data from various sources. Content is viewed as an integrated whole that is intuitively transparent to authors. Possible applications of Syntext Serna range from technical and business content authoring to sophisticated PDM systems.

Syntex currently has hundreds of companies using this product since its inception in 2003. They provide Basic support (e-mails, minor releases availability) and Premium support (e-mails, special hot fixes availability, priority bug fix).

If you have used Syntext Serna or products like it and would like to provide feedback, please comment here about the product and your experience with it. We value your opinion.

Bookmark

a2a_linkname=”Syntext Serna”;a2a_linkurl=”http://www.webucator.com/blog/index.php/2008/05/06/syntext-serna/”;

Python Expressions and Operators

Python No Comments »

In this fourth part of a nine-part series on Python you ll learn about expressions operators sequences and more. This article is excerpted from chapter four of the book em Python in a Nutshell Second Edition em written by Alex Martelli O Reilly ISBN 5961 469 . Copyright 2 7 O Reilly Media Inc. All rights reserved. Used with permission from the publisher. Available from booksellers or direct from O Reilly Media….

Technorati Tags: media

WTH: eth0 got renamed to eth2 after an upgrade

Linux No Comments »

While upgrading a remote server from sarge to etch including the new kernel, the server did not come up. After attaching a console (thanks Hetzner!) I found out that the network interface got mysteriously renamed to eth2!

After snooping around a bit, I found out that the culprit was udev, more specifically /etc/udev/rules.d/z25_persistent-net.rules which says:

This file was automatically generated by the /lib/udev/write_net_rules

program, probably run by the persistent-net-generator.rules rules file.

#

You can modify it, as long as you keep each rule on a single line.

MAC addresses must be written in lowercase.

PCI device 0×1106:0×3065 (via-rhine)

SUBSYSTEM==”net”, DRIVERS==”?*”, ATTRS{address}==”00:0c:76:af:2f:9d”, NAME=”eth0″

It also contained two entries for bogus eth0 and eth1 (usb dongle got identified as a network card?). After removing the and relabeling interfaces everything is back to normal now.

Why I Don’t Write Book Reviews

Python 3 Comments »

I have a lot of interaction with publishing types. I write a lot, and I edit some, and I do tech reviews and stuff for some publishers, and I co-authored a book, and I’ve worked on two magazines, and a newspaper, and I’m generally fascinated by the technical book market and stuff like that. I’m also someone who is lucky enough that his job is also his hobby. I work in technology, and am always doing something technology related at home in my spare time. Needless to say, I read tons upon tons of technical books.

I almost never post book reviews, in spite of the fact that I read all of these books. Why? Well, to be honest, I couldn’t tell you. It just hasn’t occurred to me to write a book review. Could be because I don’t really value book reviews too much myself I guess. I mean, if there’s a really obvious consensus across a huge number of reviews, I might be swayed. But in general, I find that book reviews are too often the target of astroturfing campaigns.

If there’s a tech book you’d like a review of that deals with things I’m generally into, let me know and I’ll post a review, if I’ve read it (or want to read it). Here are subjects I’m likely to have read books about in the past couple of years:

  • Linux, UNIX, and administration thereof
  • Python (all levels - I just read pretty much whatever is out there)
  • web 2.0 APIs (mostly Google and Amazon)
  • Any book about any service that can be run in a *x environment (DNS, Apache, DHCP, Jabber, and most other things that open a port)
  • Anything related to generic SQL, database design, or (more specifically) mysql and postgresql.
  • HPC (cluster computing)
  • Generic programming, software, computer science, or high-level systems design books
  • Digital photography (I have a Canon Digital Rebel, if that helps - I do *not* use Photoshop)
  • PHP
  • Maybe some other stuff I’m forgetting

Deprec2- chgrp: invalid group

Ruby On Rails No Comments »

I was using deprec2 to install RoR, MySQL, Nginx, etc. to Slicehost using the crack_the_nut instructions on my mac. I came to where I had to run the rails_stack (cap deprec:rails:install_rails_stack) and I kept getting an error that said “chgrp: invalid group deploy”.

Deprec automatically creates the deploy group as part of it’s recipes. I was stunned. Upon looking for an hour or two I came across a ‘grep’ that deprec runs. It runs “sudo -p ’sudo password: ‘ grep ‘deploy:’ /etc/group || sudo /usr/sbin/groupadd deploy”. This grep checks the /etc/group file for any occurances of ‘deploy’. My deploy user was named pd_deploy. Users live in the /etc/group file under their group following the following convention:

group: user1,user2,user3

My /etc/group file contained the following:

admin:root,pd_deploy

Deprec found ‘deploy’ in my user, pd_’deploy’, and thought that the group already existed. It therefore failed to create a new one and blew up when it was trying to change a group that did not exist.

To save yourself a lot of hassle, don’t have ‘deploy’ anywhere in your /etc/group file, meaning, don’t have a user with ‘deploy’ anywhere in the name. So no ‘deployuser’ or ‘user_deploy’.

Chock Full of RDFa Goodness

Semantic No Comments »

I spent a good portion of my morning injecting some RDFa into my blog. In case you didn’t know, RDFa is basically Microformat’s big brother. RDFa takes the full power of RDF and embeds it invisibly in a normal XHTML page. It takes a little bit to get used to thinking of your data in terms of RDF triples, but when it comes down to it, it’s really not that much harder than coding in support for a Microformat.

I’ve got a bit more data that I can still mark up properly, but for now you can grab your favorite RDFa extractor, highlighter bookmarklet, or Firefox extension and see the semantic goodness hidden just under the covers of this page.

iCab

Web Standards No Comments »

No Gravatar

Today iCab is discounted on mupromo (50%).

Here it is the wikipedia article and here the website of the author.

iCab is a browser for the Mac. It is much more: it is a piece of WWW and Mac history. For a long time it has been the only relatively functional browser for MacOS Classic (after Moz dropped support for the platform).

It’s a one man affair and once it used to have its custom rendering engine (until version 3). Now it’s a nifty commercial browser with some nice features. Of course WebKit is great and means good support, but I kind of regret it does not use its own engine anymore. Diversity is good…

What has iCab that Firefox hasn’t? Nothing. It has a great affective value. Of course, if you’ve got a MacOS 9, 8 or 7.5 system, it is also the only browser (version 3 from MacOS 8.1 and version 2.x from MacOS 7.5).

Still, its a good tool. It has some nice features, for example the smiley which signals when a website (or CSS) is not standard and opens a windows with the errors.
It has got some relics of when browsing was costly and slow: an offline mode and an acoustic signal triggered when it finishes to load a page.

And it’s the only tabbed browser for older macs (but this isn’t technical, is it?).

It’s quite fast, indeed. And it has a very good filter system. Filters are quite general personalization tools: for example they can be used to add a “download” link to YouTube videos or create an AdFilter. iCab has a very good session management, too.

And that’s it: it’s not rocket science. It’s a little old browser. But at $12.5 it’s a bargain!

Using OpenID with Ruby on Rails

Ruby On Rails No Comments »

Dr. Dobbs Journal published a great article, showing how to implement OpenID for Ruby on Rails.

The author, Jeremy Weiskotten, demonstrates how an OpenID consumer can be implemented using the Ruby on Rails framework. The article provides a short tutorial explaining how OpenID single sign on works, and why it’s important. Next it discusses several issues and complications. The final section provides a solid demonstration tutorial, with plenty of Ruby code examples and some screen shots.

Setup of RAID5 without losing data

Linux No Comments »

I have here a server (Debian Linux of course) which is storing its data on a 1TB hard drive. I want to upgrade the storage to a RAID5 using 4x 1TB drives. I’d like the existing drive to be a part of the RAID array so I only need to buy 3 new drives, but I don’t want to lose the 600G or so of data on it.

The solution ? Set up a degraded array, copy the data and then add the original disk to the array.

Put simply, a degraded array is a RAID array with one or more drives missing. RAID5 can operate with any one drive down. This is very useful if a drive fails, you can replace the faulty drive without losing any data. So we are going to pretend the drive with the data on it is ‘faulty’ so it won’t be part of the RAID until later when we miraculously ‘fix’ it.

On my machine, the new drives are /dev/sde, /dev/sdf and /dev/sdg. The drive with the data is /dev/sdh1. First we partition the new drives. You’ll need to type these two commands for each new drive:

echo ",,L" | sfdisk /dev/sde

sfdisk --change-id /dev/sd1 1 fd

You don’t have to use sfdisk, as long as you set up the partitions somehow and set them to type 0xFD (Linux RAID).

Now to create the degraded array. This is the magic bit.

mdadm --create /dev/md3 --level=5 --raid-devices=4 --spare-devices=0 /dev/sde1 /dev/sdf1 /dev/sdg1 missing

The magic word missing stands in for the drive with the data on it.

Next format the RAID array, mount the data drive and copy the data

mkfs.xfs /dev/md3

mount /dev/md3 /home/adam

mount /dev/sdh1 /mnt

cp -prv /mnt/* /home/adam/

This will take a while so you might want to do it in a screen session.

Finally, after the data is copied, we can add the data drive to the array. This is the bit where we can lose everything if it goes wrong so check your data is all on the RAID before proceeding.

umount /dev/sdh1

sfdisk --change-id /dev/sdh 1 fd

mdadm --manage /dev/md3 --add /dev/sdh1

I’m really pleased at this neat trick. I’ve now got a shiny RAID array with a total storage of 3TB. It all worked so well, I just had to blog about it!

Interesting Linux & Windows compatible chat program

Linux No Comments »

For quite some time I’ve used BorgChat for Windows networks, and it works very well as a local chat client between users on the LAN, without having to use extra internet bandwidth.

Recently, however, I wanted to join a Linux desktop to the Borgchat network, but since Borgchat doesn’t work on Linux, I need to find something else that does.

So, I found the following: QChat
According to their website it will work on Linux, and Windows. So, let’s see what it does :)

Share/Save/Bookmark