Search Results: "ema"

28 January 2008

David Welton: Munich Android Mobile Meeting

Tomorrow (January 28th), I'll be in Munich for this: http://www.mobile-monday.de/web/guest/android Unfortunately, the event filled up super fast and I barely managed to squeeze in, so there are probably no spaces left. Still, if anyone would like to meet up afterwards, send me an email soonish. If you managed to get in, and would like to see a demo of Hecl, let me know, because I'd like to have the chance to show that off some too! Hopefully it will be a valuable experience. Android is a pretty convincing system in many ways, but of course has yet to fully come into contact with reality, so I'm curious to meet some of the people involved and hear about it from them. I really hope it doesn't end up being a rehash of information that's available on the web, as it's a two hour drive from Innsbruck.

27 January 2008

Martin F. Krafft: Within the next business day

I filed an HP support request on 22 January. On 23 January, I received the following mail: Your support request regarding,HP LaserJet 3052 All-In-One E-Mail Support, was received 1/22/2008, 9:41:14 AM. Your unique ID is 532458. A support engineer will be getting back to you, via email, within the next business day to address your issue. We appreciate your patience. By 28 January I had not heard back from them. Why do they even bother to send such auto-replies?

Biella Coleman: Revoking a license

Seems not so kosher, in a legal sense.

26 January 2008

Adam Rosi-Kessel: Microsoft Outlook 2003 Tip: VBA Macro to Remove Stationery from Email Message

Quick link to ClearStationery.bas I don’t have much (any?) history of posting tips for the Windows platform, but I’m currently stuck with it for daily work use, so I figured I might as well share some tips that my readers who happen to be in the same predicament will find useful. (Planet Debian readers please have mercy.) One of the worst things you that Microsoft Outlook allows a user to do is select a “stationery” for email. Stationery goes beyond regular old HTML mail (e.g., fonts, colors, and bullet lists) to add a patterned background, invariably rendering the content much less readable than it would be with a white (or even any other color) background. What’s worse is every reply to an email with stationery also adopts the original sender’s stationery! I searched quite a bit for a solution that does not involve sending a nastygram to the original sender. Of course you can convert the email to plain text (or set Outlook to only display the plain text version) and then convert back to HTML or Rich Text, but you’ll also lose other formatting that you might want to retain. You could cut and paste the text into a new email, but what is really needed is a simple VBA macro that will strip the stationery but not other formatting. Strangely, I don’t think that macro already exists. So I wrote one, to some extent cribbing from related code snippets (mostly from here). I now present to the world ClearStationery.bas, my best contribution to date to the Outlook ecosystem. Simply paste it into your Outlook Visual Basic Editor (ALT-F11) and then map the macro ClearStationeryFormatting() onto a toolbar with a hotkey, and you can instantly remove stationery from any email, whether it is in the “preview” pane or the full message view. Comments, bug reports, and improvements are welcome:
Sub ClearStationeryFormatting()
On Error GoTo ClearStationeryFormatting_Error
    Dim strEmbeddedImageTag As String
    Dim strStyle As String
    Dim strReplaceThis As String
    Dim intX As Integer, intY As Integer
    Dim myMessage As Outlook.MailItem
' First, check to see if we are in preview-pane mode or message-view mode
' If neither, quit out
Select Case TypeName(Outlook.Application.ActiveWindow)
    Case "Explorer"
        Set myMessage = ActiveExplorer.Selection.Item(1)
    Case "Inspector"
        Set myMessage = ActiveInspector.CurrentItem
    Case Else
        MsgBox ("No message selected.")
        Exit Sub
End Select
' Sanity check to make sure selected message is actually a mail item
If TypeName(myMessage) <> "MailItem" Then
   MsgBox ("No message selected.")
   Exit Sub
End If
' Remove attributes from <BODY> tag
intX = InStr(1, myMessage.HTMLBody, "<BODY", vbTextCompare)
If intX > 0 Then
    intY = InStr(intX, myMessage.HTMLBody, ">", vbTextCompare)
    strReplaceThis = Mid(myMessage.HTMLBody, intX, intY - intX + 1)
End If
If strReplaceThis <> "" Then
    myMessage.HTMLBody = Replace(myMessage.HTMLBody, strReplaceThis, "<BODY>")
    strReplaceThis = ""
Else
    Err.Raise vbObjectError + 7, , "An unexpected error occurred searching for the BODY tag in the e-mail message."
    Exit Sub
End If
' Find and replace <STYLE> tag
intX = InStr(1, myMessage.HTMLBody, "<STYLE>", vbTextCompare)
If intX > 0 Then
    intY = InStr(8, myMessage.HTMLBody, "</STYLE>", vbTextCompare)
    strReplaceThis = Mid(myMessage.HTMLBody, intX, ((intY + 8) - intX))
End If
If strReplaceThis <> "" Then
    myMessage.HTMLBody = Replace(myMessage.HTMLBody, strReplaceThis, "")
End If
If InStr(1, myMessage.HTMLBody, "<center><img id=", vbTextCompare) > 0 Then
    strEmbeddedImageTag = "<center><img id="
    '"<center><img id=""ridImg"" src="citbannA.gif align=bottom></center>"
    intX = InStr(1, myMessage.HTMLBody, strEmbeddedImageTag, vbTextCompare)
    If intX = 0 Then
        Err.Raise vbObjectError + 8, , "An unexpected error occurred searching for the embedded image file name start tag in the e-mail message."
        Exit Sub
    End If
    intY = InStr(intX + Len(strEmbeddedImageTag), myMessage.HTMLBody, " align=bottom></center>", vbTextCompare)
    If intY = 0 Then
        Err.Raise vbObjectError + 9, , "An unexpected error occurred searching for the embedded image file name end tag in the e-mail message."
        Exit Sub
    End If
    strEmbeddedImageTag = Mid(myMessage.HTMLBody, intX, intY - intX)
    intX = InStr(1, myMessage.HTMLBody, "<CENTER>", vbTextCompare)
    intY = InStr(intX, myMessage.HTMLBody, "</CENTER>", vbTextCompare)
    strReplaceThis = Mid(myMessage.HTMLBody, intX, intY - intX) & "</CENTER>"
    myMessage.HTMLBody = Replace(myMessage.HTMLBody, strReplaceThis, "", , , vbTextCompare)
End If
' Finally, saved modified message
myMessage.Save
On Error GoTo 0
Exit Sub
ClearStationeryFormatting_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
Resume Next
End Sub
Stationery-B-Gone!

Nico Golde: Debian Eeepc

Asus Eeepc 701 4G
Yesterday I got an Asus EeePC and I'm really impressed by it. One of the hardware pieces where I thought you get exactly what you pay for it.

So far I ripped off the Xandros installation. While it may fit some users it is a really stripped down installation, you can't actually do much with it. Instead I gave the DebianEeePC project a try. The installation was pretty straight forward like described in the wiki. Put the installer img on a USB stick together with the network driver and install :-)

Most things are working like they are supposed to work, even the webcam and suspend works. Yay!

However some things don't work yet. For example acpi reports the remaining capacity in percentage rather than a real capacity in mAh. You just have something like 100 mAh in your proc which means 100%. This is really annoying, while it works to show the remaining percentage you can't calculate the remaining time. An additional deficit of this is that it is only capable of reporting this in steps of 10 here (until you are under 10% then it gets a bit more precise). This seems to be a BIOS or a battery firmware problem.

Another thing is that nearly all special keys do not work with unmodified acpi-support because the event ids don't match :-(
For some strange reason asus-brn-up.sh is always executed no matter what fn key you use and even if another script like voldownbt.sh get executed as well.

Apart from this I am really happy with the device, I get a working X desktop with openbox in 25 seconds and even the often criticized small screen is not that small in my opinion. A bigger problem is the keyboard. If you have big fingers I think its not fun to type on it, the keys are extremely small.

So far, thanks to everyone for the efforts put in DebianEeepc to make this possible!

See tuxmobil for some other collected installation reports.

UPDATE: it takes like 3 hours to charge the battery while it's switched on which somehow sucks.

Biella Coleman: Spa Audaciousness

New York is a pretty crazy city but who knew there was the room for this type of roomy spa crazinesss?. All I gotta say is check out the different, (some very high-tech), sauna rooms. I gotta check it out. Soon. Update: A small crew went and it is, I think, the best 30 bucks one can spend in the greater New York area. The saunas, baths, and wrist watch tech-keys were nothing short of great, as was eating Korean food after a series of saunas. I can’t wait to go back during the week when I am sure it will be a little more calm.

Biella Coleman: The Atlantic

Nice to see that The Atlantic is now free.

25 January 2008

Biella Coleman: Berkman Center no longer seems to be hosting dvd-discuss

Before I post the longer version… I am looking for a full copy of the dvd-discuss archives. Does anyone have it?? The Berkman Center, who had been archiving them is no longer doing so!! (hard to believe), even though they have a broken link from this page. There are some archives I have found but they seem incomplete. If you have earlier mailing list archives, please please let me know! update: So thanks to some help I have the earlier archives on the wayback machine but they should be archived on the same spot, no?

Ian Haken: Snail-mail is (arguably) less buggy

If anyone tried to email me via ianhaken.com in the last three weeks, you probably met with little success. My contract for dedicated hosting ended at the beginning of the year, and for my small personal uses it wasn't worth the cost to renew it. Since I already had an always-on file server at home, I decided to move my hosting services to my own server. After some downtime associated with transfering domain registrars, I was able to get this much setup.

Since I'm just hosting on a cheap ISP connection, I of course don't get a static IP. Many free DNS services offer dynamic IP update clients which solve this problem, but of course you can't quite take advantage of your personal domain name. I took advantage of a tip I received to redirect all hostname lookups with a CNAME entry to my dynamic DNS domain name, which stays up-to-date with the free client. So in short, a little indirection was able to solve the dynamic IP problem.

What I failed to realize is the affect this would have on my MX records. While I had them properly configured for my domain name, I realized that mail was still not getting through. It took me longer than it should have to perform a manual MX lookup and figure out that my CNAME was being resolved and then MX records were being searched for this canonical name rather than ianhaken.com. So after adding identical MX records to my dynamic IP service all seems to be well again.

On a related note, I've also been trying to get exim working on my internal server. Since I do run a dynamic IP I can't run a full-blown mail-server, but I'll I really want to do is be able to send outbound messages anyway. I've been able to make this happen by configuring exim use gmail as a smarthost. Ideally, I would also like local mail to be delivered to my external mailbox. I figured this would do it:

echo myname@gmail.com > ~/.forward

and it seems to get half way there. Sending a message to myname@localhost results in the following lines in my log:

2008-01-06 13:50:46 1JBdOI-0005sm-4Q = myname@localhost U=myname P=local S=388
2008-01-06 13:50:48 1JBdOI-0005sm-4Q => myname@gmail.com R=smarthost T=remote_smtp_smarthost H=gmail-smtp.l.google.com [209.85.199.109] X=TLS-1.0:RSA_3DES_EDE_CBC_SHA1:24 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com"
2008-01-06 13:50:48 1JBdOI-0005sm-4Q Completed


By the look of it, exim realizes it is supposed to be delivering out to the smarthost, but it's still sending to myname@localhost. At any rate, I'm definitely not seeing anything in my inbox on either end. Anyone know if I'm just not understanding the .forward file or is there something in the exim config I need to change? It's not particularly critical, but it would be nice to see error mail go to my inbox.

24 January 2008

Biella Coleman: Pugarrific screen saver

There are a lot of Pugs in NYC. Really, a lot. They are the right size and since they have tubing issues and thus breathing issues, NYers don’t feel bad that they have subject their dogs to a more or less sedentary life minus small jaunts in the park, unless of course, you send you dog to doggie day camp. Whatever the case, there are many. SO New Yorkers with pugs, a present . Use it at work and then it is just like having your pug with you.

David Pashley: Phisher aren't even trying

Phishers aren't even trying these days: The following things stand out:
  • The date header is +0900. Suspicion rating: 2/10
  • The recorded log in time is in EST. The Halifax and myself are in GMT. Suspicion rating: 6/10
  • The recorded log in time hadn't occured by the time I get the email. Suspicion rating: 8/10
  • I don't bank with the Halifax. Suspicion rating: 10 million/10
Read Comments (0)

Biella Coleman: Spread the beef

Anyone who knows me, even remotely, knows that I have a huge beef with the American health insurance industry, which was greatly magnified after my own unpleasant run-ins with them over the course of the last two years. But of course while the insurance industry is certainly a ruthless predator and thus deserving much of the blame, they are not the sole culprit in sustaining what is a lousy health care system for Americans. A key player, I think, are American doctors, and I would now like to spread that beef patty of disgust to them, especially since they are now the one’s giving me problems dealing with the final portion of BCBS bill. The story is indicative of lager issues and problems that center on the problematic silence “spoken” by doctors. To make a long story short, BCBS of NJ was not ponying up some serious cash (at least for me) for 2 mole surgeries because they were claiming it was pre-existing condition. After having the public relations director email me (thanks to that post) and a lot of research and letters etc, it was more or less resolved. Soon after they overturned the pre-existing “bs” (and I am not talking blue shield here), they promptly started to pay all sorts of bills (and I even got money back from doctors I had paid). But there is one pesky $1600 bill that lingers like a bad smell and the question is why? I am not entirely sure but my interactions with my ex-dermatologists, Affilated Dermatology in NJ, I think reveal some important lessons as to why and how the medical establishment are complicit. Basically, BCBS is telling me that it looks like they have been double billed because the cost is exactly the same for two procedures that are also exactly the same. I explained that I had did indeed have two surgeries on my scalp (they were really close to each other) and they let me know that the provider needs to call back and send information that clearly shows there were two surgeries. This actually seems somewhat legitimate and potential mistake (and it is not like medical billing is known for their lack of mistakes and integrity either). So I call Affiliated Dermatology and while I would say they have been patient, in so far as patiently waiting for my money, they have been completely unhelpful in any meaningful sense to help me getting this resolved. Now, given how difficult it is to deal with the health insurance industry, I understand they can’t provide fine-tuned, fine-grained personal attention. The health insurance industry engages in some real hefty politics of foot dragging and well, there are so many foot soldiers at doctor’s offices to keep up with the web of knots that the health insurance constantly entangles us in. With that caveat in place, they can however do two things: 1. Inform you that you can contact the Department of Housing and Insurance and start some sort of formal complain process. 2. Give you some small clue as to whether the doctor has sent any of the additional requested information (they are usually mum, or enigmatic, or totally confusing with regards to that) so you know what the heck is going on. So a few days ago when I was speaking with health insurance person at the dermatology office, she claimed there was nothing else she could do about this last bill. Every time she calls BCBS, she claims that they claim it is a problem with being a pre-existing condition, and I was like “how can that be when that has been cleared and every other bill, and there were many, has been paid?” And then she also said that there has never been this confusion before where 2 surgeries look like one, blah blah and blah (and in retrospect, I forgot to tell her that my double surgery, according to the doc, was in fact highly unusual, because they would usually do them on two separate days because they were so close to each other. They made an exception because I was literally on my way to Canada and begged them to do so but anyway). Ok, so there I was bickering with this woman and feeling stuck between a rock and a hard place. Finally I let her know, point blank, that they have been remarkably patient with the billing but totally unhelpful in, well, helping me out. I let her know that they should let people like me know, for example, that they can file a formal complaint against the health insurance company and this would at least get the ball rolling. I then let her know that I had no other option but to file another complaint with the Dept of Banking and Insurance and they would just have to wait for that, at which point, she all of a sudden became more helpful. She suggested that we can do a three way call to resolve this. Well there you go. Why did it take a heated 15 minute conversation topped with a threat to get what I think actually makes perfect sense? Get the 3 parties involved on the phone with each other so as to all get on the same damn page about what needs to be done (not sure if BCBS will agree to this… at which point I will pester the public relations director again and in the end, I think this was resolved because he was sick of my emails). Now, why why why why why why are doctors and their staff so unhelpful? I think that main answer is they are overwhelmed and don’t have the staff to deal with the enormous amount of foot dragging and coy tactics deployed by the health insurance. That said, there are 2 things worth mentioning that I think don’t paint a very flattering picture of many American doctors. If you pay attention to your medical bills (and you always should), it is immediately evident that the doctors and hospitals get paid LESS, sometimes a lot less, if the health insurance company foots the bill because of the pre-arranged negotiated rate. So there is an actual incentive on that side of things to get paid via the consumer as opposed to the health insurance company. Now. I am sure that there are health care economic studies and reports justifying this strangeness but that does not make it right either. There is a clear incentive in place to get your green dollars, as opposed to those of the insurance company. Second and this is a much bigger issue, is that I think that for any meaningful change to happen, we need the active support of a large percentage of the medical community, especially doctors. If they are mum, or actively opposed to health care reform (as was the case when the AMA helped derail the Clinton effort at instituting universal health care in the 1990s), well then it becomes all that much harder for the general populace and the politicians to initiate real change. Doctors are the ones, after all, with the moral weight and capacity to make claims that can STICK. If they are saying this system negatively impacts how we care for the ill, it is a system that is is immoral, well, one should listen to them as they are the ones, after all, who dedicated their LIFE to healing the ill, right? Yes? No? Maybe? So their silence is nothing short of grave. The good news is that it seems like more doctors are on board than ever before clamoring for change in the right direction, but we need a lot more to come aboard… A number of years ago, I wanted to write a controversial and critical article that claimed hackers are more ethical than doctors. I thought it would be fun to claim that those who are usually seen as ethical (doctors) are less so than those that are usually portrayed as bad-as* unethical tricksters. Some people were offended by this because doctors deal with the great burden of life, death, sickness, and thus suffering while geeks and hackers are “just” geeking out on their computers. True. But at least a cadre of hackers have sustained a social realm and a real ethics–free software–in order to guarantee their own autonomy and also create the conditions for what is right for software. Doctors, on the other hand, do not carry the torch of ethics as they should. While individually I am sure they deal with a oodles of difficult ethical choices and decisions, it is about time they they turn as a collective to the larger structural conditions that seriously cause a lot of harm to millions of Americans, especially the droves of uninsured. They have the moral weight to do something about it and it is about time they carry their weight in this battle and take some burden of suffering off others.

Adrian von Bidder: Windows vs. Debian

Freesoftwaremagazine has an interesting comparison (at the end of the article) between Vista and Debian (unfortunately, they use sarge numbers, but numbers for etch wouldn't be that different.) The (not really surprising) conclusion: Kernel + libc + X + KDE + Mozilla compared to Vista (assuming that this is about comparable, functionality-wise), Vista is more than three times as big (LoC) and, consequently, expensive (COCOMO numbers.)

23 January 2008

Joey Hess: a problem with tools

We have a problem with our tools in Debian, and it's this: Above the core tools in dpkg-dev, and the nearly core tools in debhelper and devscripts, and the many different -- but all slowly converging -- revision control systems, there is the potential for infinite cruft to pollute the source package. Note that one developer's cruft is another developer's use of an excellent tool. If you don't believe that, you haven't read a lot of crufy upstream build systems, because Debian isn't the only project with this problem. The source of this cruft is a near-constant stream of new tools that are each developed in good faith by someone who needs that tool, and then adopted and used in packages of a generally small percentage of developers, who think that tool might be a good fit for their problems. The tool isn't yet suitable for everyone to use, and most of these tools never become suitable for everyone, because
  1. making the leap from a special-purpose, poorly-designed hack to a general-purpose tool is hard
  2. getting the project to standardise on a tool is hard
  3. a tool often doesn't become general purpose until enough people use it, no matter how well designed it is to start out with
So after a while, a better, or at least different, solution to some of the same problems will come along, and some generally small percentage of developers will choose to use it in their source packages. Meanwhile, the developers who chose the old thing will be set in their ways and not want to use the new thing, and generally cannot be budged to stop using the old thing by any amount of argument. Which in a sense is normal, and fine, until you have to collaborate with them. I don't care if someone I'm collaborating with uses emacs to my vim, but I do care if they use cdbs to my debhelper. I care because their tool-choice encrufts the source that I'm supposed to be working on. Once a significant percentage of all the source packages in Debian are encrufted for a wide array of different tools, it will become harder and harder to work with Debian's source packages. We're already seeing this happen. Another way of looking at it is that we've invented dozens of source package formats that all work differently, aside from a small shared core, and we expect our developers to be able to use all of them. At this point I see this as a huge, potentially killer problem, that is making Debian development become worse with every passing year. But I have no real solution. Obviously pointing out that tools are obsoleted or bad doesn't work; we still have dozens of packages using yada, which everyone agrees is horrible. That doesn't bode well, does it? One partial solution is to design a category killer, and get it embedded in acknowledged core tools. That's what I have tried, and so far, failed, to do with an evolutionary change to the Debian source package format, which I'd hope would give people a reason to stop using dpatch, dbs, and their ilk. As noted, this approach is Hard.
For now, I have no interest in being on a team that requires I use any of the following things: This means that I can't be on the security or release teams, and even teams like the perl team are getting sticky to be on.
PS, this doesn't mean I dislike quilt. I dislike quilt encrufting Debian source packages, which is entirely different. PPS, In case you're wondering why debhelper gets a pass, it's because it's gone through the three numbered steps above to become a standard, general purpose tool, and has no serious competators. (Though it does have parasites, like cdbs.)

Erich Schubert: Fixing Windows - Linux to the rescue

My mothers computer had died. Well, the Linux on it was still working, so she was able to open her document files, read her email and use chat. Pretty much everything works under Linux, with the exception of using the Fax functionality of the AVM Fritz!Box via CAPI-over-TCP. (Ironically, the Fritz!Box itself runs Linux, so it's just because AVM doesn't bother to supply a Linux client too).Anyway. Logging in remotely, I quickly found out that the hard drive had serious issues, with lots of bad sectors on the main Windows partition (fortunately, we kept system data and user data separate!). So I'm not blaming Microsoft for dying (but Samsung; since this is the second time within three years the drive has died, I guess I won't be buying a Samsung HD anytime soon).Last weekend, I bought a new hard disk and went to my parents to fix it. I copied over the partitions (some 64k data could not be read any more), and tried to get Windows up again, too. (Linux was trivial; copy, boot record, done)So I ended up doing a "rescue" Windows installation, using the XP service pack 2 CD. I figure this is still the latest setup for XP available? It went through the usual driver-loading, did the first part of the installation, rebooted into the new system, did this "estimated time 39 Minutes" setup screen. After like 10-15 Minutes, it had a bluescreen, dumped memory and rebooted. And cycled through that again and again.It took me like 6 hours total to get the Windows system fixed (mostly waiting for the Microsoft setup to run through again). I figure that there aren't many users out there that actually could have fixed that Windows. The reason is simple: Microsoft crappy setup. Probably to protect it's serial number thingy or just to display fancier graphics, setup refuses to work in safe mode. And the bluescreen even suggested to try the safe mode, just to display the message "setup.exe doesn't work in safe mode, click OK to reboot".If I could have used that "safe mode", fixing would have been a lot easier. The bluescreen mentioned a device driver ati2something.sys; apparently part of the ATI video driver. So I tried the rescue console of the XP CD to just kill that driver, but setup kept on actually reinstalling the file.The way I fixed it in the end is simple: Linux to the rescue. I booted the (working like a charm) Linux installation, accessed the main Windows partition using ntfs-3g, found all references to the ATI driver in the Windows\Inf driectory and removed them.After I had removed these references, Microsofts setup.exe completed, and I had a working-again Windows in VGA mode. Then I could install the ATI drivers again. Microsoft really needs to work on that setup, it needs to allow disabling certain drivers and similar rescue things.Maybe Microsoft should start shipping a Knoppix CD with Windows, for repair.

Russell Coker: Asus EeePC as a Router

It seems to me that the Asus EeePC (a $AU499 ultra-light laptop with only flash storage) would make a decent router. Often full desktop PCs are used as routers because they run the most common software and have standard interfaces. There have been dedicated router devices with flash for a long time, but without the ability to connect a standard monitor and keyboard they were always more difficult to manage than general purpose PCs. Also dedicated routers have limited RAM and storage which often does not permit running a standard OS. According to the best review I could find [1] EeePC has a minimum of 256M of RAM, a Celeron-M CPU (32bit Intel), and a minimum of 2G of flash storage. This hardware is more than adequate to run most server software that you might want to run (my current router/firewall/server has 192M of RAM). It could run a web server, a mail server, or any other general server stuff. It comes pre-loaded with a modified version of Debian so you get all the Debian software (which incidentally means more pre-packaged software than is available for any other distribution). Bigger versions are common, I believe that the $AU499 version has 512M of RAM and 4G of flash - I’m not sure that I could even obtain a lesser EeePC in Australia. The up-side of flash is that it doesn’t take much power as having a low power device in whatever confined space ends up housing your router is a good thing (the EeePC is listed as using less than 20W no matter what the load and idling at as little as 14W) and that it doesn’t tend to break when dropped or have any moving parts to wear out. The down-side of flash is that a sufficient number of writes will destroy it. Obviously swap is not a suitable use for a flash storage device. But a small mail server (suitable for the needs of a home or a small office) should be fine with it. Squid is commonly run on router devices, to run it on an EeePC I would be inclined to buy 1G USB flash device for the cache, then if Squid’s use destroyed the flash storage it would be easy to spend $20 and buy another. The EeePC has three USB ports and a built-in Ethernet port. I believe that the minimum number of Ethernet ports for a firewall is three, this means either one for the uplink, one for the DMZ, and one for your LAN, or two for uplinks (with a redundant uplink) and one for the LAN. The three USB ports allow using two USB Ethernet devices to provide the minimum three Ethernet ports and one for USB flash storage. One notable advantage of using a laptop as a server is the built-in UPS (the laptop battery). Many people have put old laptops into service as servers for this reason, but usually an old battery gives no more than about 30 minutes of power, while a new EeePC should be able to last for more than 3 hours without mains power. Using a second-hand laptop as a server is usually not viable in a corporate environment as laptops are all different. Repairing an old desktop PC is easy, repairing an old laptop is unreasonably difficult and often more expensive than replacing it. The low price of the EeePC makes it easily affordable (cheaper than some of the desktop machines that might be used for such a purpose) and the fact that it is purchased new at such a price means that you get warranty support etc. It seems to me that a significant disadvantage of using an EeePC (or anything other than a real server) for a server task is that it lacks ECC RAM [2], but as I’m not aware of any device sold for the purpose of running as a low-end router or sold at a price-point such that it could be used as a low-end router which has ECC RAM I guess that’s not a big disadvantage for that purpose. But the lack of ECC RAM and the lack of useful support for RAID does make it a little less suitable for use as a mail server. Finally if you are going to run a VPN then it would be handy to be able to secure the hardware against malicious activity when the office is closed. An EeePC will fit nicely in most safes… Please let me know what you think about this idea. I’ll probably start installing some such machines for clients in the near future if ASUS can keep up with the demand.

22 January 2008

Matthew Johnson: Packaging Java with Javatools

I have just uploaded javatools 0.5 to unstable and it is currently waiting in NEW. Anyone wishing to try it out earlier can find source and packages (it's arch: all) at http://www.srcf.ucam.org/~mjj29/javatools/ . Javatools replaces the existing jarwrapper package and also contains programs to help packagers in creating packages for Java programs and libraries. Packaging tools The javahelper package consists of several small programs which make packaging Java programs and libraries easier. They are generally designed to work in the same fashion as the debhelper programs, but start with the jh_ prefix. All of the programs have their command line arguments documented in manpages. jh_build Many Java programs and libraries are distributed without sane build systems. jh_build provides a simple interface for building Java source code into Jars, including setting the appropriate entries in the manifest. In almost all cases all that needs to be done to call jh_build is to set JAVA_HOME and CLASSPATH and then call jh_build with the name of the jar and the directory containing the source.
JAVA_HOME=/usr/lib/jvm/java-gcj
CLASSPATH=/usr/share/java/esd.jar:/usr/share/java/jsch.jar
jh_build weirdx.jar src
   
This command will compile all the Java files under src , set the classpath in the manifest and build it all into weirdx.jar. A couple of other options are worth mentioning. If this jar contains an application rather than a library then the -m or --main option can be used to set the Main-Class attribute in the manifest which will allow the resulting jar file to be be executed jh_build also provides a --clean parameter which should be called in the clean target of debian/rules . jh_libs For library packages Debian Java policy currently requires that the libraries be installed to /usr/share/java in a versioned format and with an unversioned symlink. jh_libs will take a jar and correctly install it. As with debhelper programs, this can either take a jar as a parameter, or read a list of jars from a file in the Debian directory. It also follows the -p , -i and -s semantics of debhelper for selecting which packages to install the jar to. When operating on a package, jh_libs will read the list of library jars from debian/package.jlibs or debian/jlibs . The jlibs file is a list of jars to install, one per line, and works exactly the same as listing them on the command line. Each jar is installed to debian/package/usr/share/java/ in the appropriate versioned and unversioned forms. jh_depends jh_depends works like dpkg-shlibdeps, but for jar files. For each jar in the package it takes the jars on which it depends and finds the packages to which they belong. These are included in the debhelper substvars as $ java:Depends . The control file can then just list that variable which is filled in automatically. This is done by reading the Class-Path attribute from the manifest of each jar. Jar files should include this attribute to prevent applications which use them from needing a full recursive classpath in their startup scripts and to prevent unneccessary transitions when the library changes its dependencies. If the package is not built with jh_build and the upstream build system doesn't set it correctly then jh_manifest can be used to fix this. If the application uses executable jars (see Runtime support below) then jh_depends will also add the appropriate depends on jarwrapper and the correct Java runtime. jh_manifest Many upstream build systems do not set the Class-Path attribute in the jars they create. This leads to several unwanted problems, such as expanding the classpath which applications have to use and introducing unneccessary transitions. They also may not set the Main-Class attribute. Both of these are required for running jars with the -jar parameter. jh_manifest can fix the manifest files of jars. It can either read from a manifest file in the Debian directory or run in a mode which updates all the jars with the CLASSPATH environment variable. The manifest files can either be debian/package.manifest or debian/manifest . The format of this file is a list of jars and indented below each one a list of manifest elements to set:
usr/share/weirdx/weirdx.jar:
 Main-Class: com.jcraft.weirdx.WeirdX
 Debian-Java-Home: /usr/lib/jvm/java-gcj
   
jh_exec The Runtime support section below describes running executable jars directly. jh_exec will scan package directories for jars in the paths, or symlinks to jar from the paths, and ensure that they have been set executable if necessary. jh_makepkg jh_makepkg will create template Debian packages for Java programs and libraries similar to dh-make . It should be run in the source directory and it will create the orig.tar.gz and most of the files in the Debian directory, which need only small changes neccessary to build the package. java-propose-classpath Some upstreams have complicated classpaths which may not be obvious to the packager when using jh_manifest to set the Class-Path attribute. java-propose-classpath will unpack a jar and look at the symbols imported to the class files, then scan all the jars in /usr/share/java . This shouldn't be run in the build since it is slow, and there may be ambiguities that the packager must resolve. It is still very useful for the packager as most of the time it will get it right automatically. Runtime support Javatools also provides some runtime support. Unlike compiled programs, or purely interpreted programs with hash-bang lines, Java programs cannot be directly executed. Many upstreams expect them to be run using java -jar jarname or java classname . This is not generally acceptible in systems which expect to just be able to run the command or launch it from a menu. As a result, many packagers are writing wrapper scripts which just call java with the correct classpath, jar and main class. jarwrapper There is an alternative to wrapper scripts, however. The binfmt_misc kernel module allows the kernel to call out to a program in userspace to execute specific types of file. jarwrapper registers itself as a handler for executable jars. This is done by reading values from the manifest file. In order for executable jars to work the following attributes must or may be defined in the manifest. These attributes can be set using jh_build and jh_manifest . Putting it together This section shows the debian packaging generated by jh_makepkg for an application and a library using jh_build . Sample Library Packaging debian/control
Source: jsch
Section: libs
Priority: optional
Maintainer: Matthew Johnson 
Build-Depends: debhelper (>= 5), javahelper, java-gcj-compat-dev, libzlib-java
Standards-Version: 3.7.3
Homepage: http://www.jcraft.com/jsch/
Package: libjsch-java
Architecture: all
Depends: $ java:Depends , $ misc:Depends 
Description: Java secure channel
 JSch is a pure Java implementation of SSH2. JSch allows you to
 connect to an sshd server and use port forwarding, X11 forwarding,
 file transfer, etc., and you can integrate its functionality
 into your own Java programs. JSch is licensed under a BSD style
 license.
   
debian/rules
#!/usr/bin/make -f
export JAVA_HOME=/usr/lib/jvm/java-gcj
export CLASSPATH=/usr/share/java/zlib.jar
build: build-stamp
build-stamp:
	dh_testdir
	jh_build jsch.jar src
	touch $@
clean:
	dh_testdir
	dh_testroot
	jh_build --clean
	dh_clean
	rm -f build-stamp jsch.jar
install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs
binary-arch: build install
	# Java packages are arch: all, nothing to do here
binary-indep: build install
	# Create the package here
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_install -i
	dh_installdocs -i
	dh_installchangelogs -i
	dh_javadoc -i --sourcedir=src 
	jh_libs -i
	jh_depends -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
   
debian/libjsch-java.jlibs
jsch.jar
   
Sample Application Packaging debian/control
Source: salliere
Section: misc
Priority: optional
Maintainer: Matthew Johnson 
Build-Depends: debhelper (>= 5), java-gcj-compat-dev, fastjar, 
               libmatthew-debug-java, libcsv-java,
               libitext-java, javahelper
Standards-Version: 3.7.3
Package: salliere
Architecture: all
Depends: $ java:Depends , $ misc:Depends 
Description: Short Description
 Long Description
   
debian/rules
#!/usr/bin/make -f
export JAVA_HOME=/usr/lib/jvm/java-gcj
export CLASSPATH=/usr/share/java/csv.jar:/usr/share/java/debug-disable.jar:/usr/share/java/itext.jar
build: build-stamp
build-stamp:
   dh_testdir
   # Build the package
   jh_build salliere.jar src
   touch $@
clean:
   dh_testdir
   dh_testroot
   jh_build --clean
   dh_clean
   rm -f build-stamp salliere.jar
install: build
   dh_testdir
   dh_testroot
   dh_clean -k
   dh_installdirs
binary-arch: build install
   # Java packages are arch: all, nothing to do here
binary-indep: build install
   # Create the package here
   dh_testdir
   dh_testroot
   dh_clean -k
   dh_install -i
   dh_installdocs -i
   dh_installchangelogs -i
   jh_manifest -i
   dh_link -i
   jh_exec -i
   jh_depends -i
   dh_compress -i
   dh_fixperms -i
   dh_installdeb -i
   dh_gencontrol -i
   dh_md5sums -i
   dh_builddeb -i
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
   
debian/salliere.install
salliere.jar usr/share/salliere
   
debian/salliere.links
usr/share/salliere/salliere.jar usr/bin
   

Wouter Verhelst: FOSDEM 2008 approaching...

In just over a month (1 month and 1 day, to be precise), it's FOSDEM again. The Debian Developers Room schedule is almost complete, and some interesting things are being published around it. Such as the pre-FOSDEM beer event. In previous years, this always happened at the "Le Roi d'Espagne", a bar at Grand Place in Brussels. This was a nice place for many years, because it's easily found, and they have this backroom where quite a lot of people would fit in. Unfortunately, "quite a lot" does not equal "a huge number", with the amount of people going to the pre-FOSDEM beer event more and more approaching the latter than the former as the years go by. Last year, it finally became too crowded, and it was decided that the pre-FOSDEM beer event would change bars this year. Which has now happened. This year, the pre-FOSDEM beer event will be at the Delirium Caf , which is not at the Grand Place anymore, but just 100m away from it; the FOSDEM website has more information. A nice feature of the Delirium Caf , besides the fact that they are much larger, is the huge amount of different beers they have. Over 2000 of them, which you can query online!. And that's not even considering the soft drinks or waters or whatever, which they also have on their menu. Another novelty this year is the streaming; the main tracks that will be held in Janson will be streamed out of the event, and the Debian video team is also planning to do some streaming. Meaning, even if you can't make it to FOSDEM, you'll still be able to follow some of it. You won't be able to follow everything, especially not the hallway track which at FOSDEM is a very important one; but at least you'll be able to sample some bits, which is nice. Other than that, not much will change. There'll be a key signing party, organized by yours truly. There'll be Lightning talks, there'll be the Main track, and there'll be a number of Developer rooms, including the Debian one—which, occasionally, is also organized by yours truly. This conference has always been my favourite (even though I haven't been to many conferences besides FOSDEM); I've never missed even one edition ever since the very first one back in 2001 (when it was still called OSDEM). And since a few years, I've also been offering crashing space at our office, for international geeks who don't mind roughing it a bit (it's an office, there no shower, there's only floor space). This year, perhaps I haven't been spamming enough for that, but for now I only have two people who're interested in sleeping over (and they're not even sure); if you're going to FOSDEM and still need a place to sleep, you're (probably ;-) welcome. Send me an email. On the Debian front, things are going well, for the most part. The list of speakers for the Devroom is nearing completion, leaving me with little more to do than to start assigning times. We've been assigned a booth as well, but there I still need to figure out how to organize it, and what to do with it. There will of course be the regular UK T-shirts, and probably some other merchandizing, but I also want something involving some computer device. We've had this d-i "babelbox" installation running a few times now, which was nice; but I do think we need some variation, too. The only problem with that approach is that I don't really know what that variation could be. Suggestions are welcome! And so time goes on, and FOSDEM draws nearer. At some point it'll eventually happen, and then it will be over before one can say "blueberry pie". Sometimes I wonder whether all these months of preparation are actually worth it. But when FOSDEM is actually here, I'm sure I'll find that it is, indeed, worth it...

21 January 2008

Romain Francoise: Shared links for 2008-01-21

Russell Coker: Free Software Community and forking

I just read an interesting approach to finding a life partner [1]. A summary is “There is a sad truth to the world today. I am part of a dying breed of people known as “shell users.” … Because there are fewer and fewer of us, I must help keep our lineage alive. I am looking for someone to help me do this. I need a woman (obviously) who is willing to raise a child with me in the method of Unix.“. While there is a moderate amount of humour in the post (I recommend that you read it in full) it is a genuine attempt to find a partner. One thing that has occurred to me is that part of the cause of the attitude toward women that is sometimes demonstrated in my community is the fact that there are so many guys who are single and have been single for a long time. If this problem was alleviated then I believe that some of the other social issues would be significantly improved. The advert in question is a bit more courageous than most guys would be prepared to consider (it’s up there with the guy who paid for a giant sign to be installed beside a highway). But there are many other options. ESR has some advice to offer [2], but the name of the URL (sextips) seems an accurate representation of the focus of the pages. One problem with ESR’s advice is that it seems to assume an ability to be extroverted (or at least fake it) which is greater than many geeks possess. Another problem is that he assumes that geeks are inherently more intelligent than average people - there is more than adequate evidence to disprove this theory. It seems more reasonable to only assume that geeks are better than average at doing geeky things. It seems to me that the one thing that geeks really are better at is writing email! Therefore it seems logical that geeks who want good success in meeting women should try and involve the use of email in some way. Singles web sites seem an obvious way to take advantage of this. Unfortunately there is a strange cultural aversion to using such web sites which even afflicts geeks. For some reason it’s thought to be a good idea to try and meet a life partner in a place where there is inadequate light, too much background noise to talk properly, and where everyone has taken mind-altering chemicals (I am referring to drinking alcohol at a bar of night-club). Once strange cultural ideas are discarded it seems obvious that if you want to meet a potential life-partner then you should do so in a place where there is good light, an opportunity to talk, and where everyone is in a normal state of mind. Starting out with email and then talking over the phone and exchanging JPEG pictures seems to be a sensible option in this regard. Most times that you chat to someone you meet over the net it won’t go any further than email or maybe phone-calls. But that’s still entertaining and useful practice at communicating with women. One thing that the Craig’s List advertiser really got right is that he knows what he wants. An advantage of the singles sites on the net is that they often force people to make decisions. When a singles site demands that you enter a desired number of children that you want to have (with 0 being an acceptable answer) then you will be forced to consider the issue and make a decision. While being prepared to negotiate about such things may be desirable, I can’t imagine anyone finding it appealing when someone doesn’t know what they want or doesn’t have the confidence to say it. Finally don’t rule out the possibility of meeting someone through your local LUG. There are a quite a few married couples who met through the Linux community. But don’t go making “pick-up” attempts on women in the community - the result will not be positive. Via Michael Still.

Next.

Previous.