Search Results: "cas"

30 May 2007

Paul van Tilburg: Master Project Take 2 and 3

I just realised that I forgot to post about take 2, so I’ll combine it with this post about take 3. The past five months I’ve been busy with examining the effect of restriction on CCS with parallelism. We decided to do this in two steps. First (take 2) we considered interleaving of actions, and then (take 3) we added communication. The case with only interleaving of actions went smoothly; it worked out as a nice extension of the case without parallelism. However, when we looked at the case with interleaving and communication, it started to become troubling. I ran into all kind of complications and the risk of failure I described in a previous post seemed to come true. However, I think we managed quite well to catch a large part of the problems and describe them, and also offer possible solutions. In the end, I’m quite happy of the result. So, today I can present the final version of my Master’s Thesis: “Finite Equational Bases for CCS with Restriction”. Yay! I have just submitted it for reproduction. The final presentation of my project will take place June 5, 2007 at 10:00 in the main building of the university, HG 6.29. If you’re interested and are able to attend, consider yourself invited. I want to thank Bas Luttik for his large amount of feedback, clear explanations and guidance, without him the project wouldn’t have worked out as well as it did now. Almost finished, 6 days remaining…

Neil Williams: gpe-expenses and forking gnucash

gpe-expenses is now stable enough for a 0.1.0 release - the NEW queue is really short so it should be in unstable soon.

In order to support the developing gpe-cash (and later gpe-invoice) application(s), the package has been split into a (small) binary and a new shared library - both licenced only under the GPL v2 or later.

The binary depends on libqof1, as before (GPL v2 or later). The new shared library contains the QofExpenses and GpeCurrency objects. QofExpenses is registered with QOF to provide data storage and queries. GpeCurrency is based on the Palm Default Currency Table. http://pilot-qof.sourceforge.net/manual/ch06.html#defaultcurrencytable. This provides a much simpler interface to standard currencies whilst retaining GnuCash data compatibility.

Splitting the objects out allows gpe-cash to share live data with gpe-expenses, reading expense data into double-entry accounts and allows gpe-cash to use sane currencies that can still be converted to GnuCash commodities. gpe-cash will itself contain one or more shared
libraries that include the double-entry financial objects, ready for gpe-invoice to collate data from gpe-contacts, gpe-calendar and gpe-expenses, create invoices (in SQLite) and post transactions to gpe-cash. Early days, I know, but that's the plan. (Invoices would be rendered in HTML/PDF/foo using scripts in the datafreedom packages.) pilot-qof already includes the basic support for generating an invoice from contact, calendar and expense data.

gpe-cash is a fork of gnucash, splitting the behemoth into small(est) functional units and dropping large sections of code - like reports which can be better managed using packages like datafreedom-perl on the desktop. datafreedom already includes example reports from
gpe-expenses. Even so, gpe-cash may well be a large application compared to other GPE packages. So far, gpe-cash comes in at just over 1Mb installed (including libqof1) but there's more Gtk+ stuff to write yet. (Compare with gnucash where the architecture-dependent part alone is >5Mb without any translations, images or other common files or the extra dependencies.) gpe-cash will have none of the dependency problems of gnucash: it just has the object definitions, libqof1, glib2.0, gtk+, gpe and sqlite. (There is an issue with GConf2 right now but I'm sure I can remove the need for that.)

http://gpe-expenses.sourceforge.net/ (CVS available via SF)

http://cashutil.sourceforge.net/gpecash.php. (SVN available via SF)

Russell Coker: Another Heartbeat 2.0 STONITH example configuration

In a Heartbeat cluster installation it may not be possible to have one STONITH device be used to reboot all nodes. To support this it is possible to have multiple STONITH devices configured that will each be used to reboot different nodes in the cluster. In the following code section there is an example of how to configure STONITH for two separate ssh instances. Of course this is not useful apart from as an example of how to configure STONITH. It would be quite easy to change one of those ssh configuration entries to use IPMI or some more effective method of managing machines. My previous post on this topic has an example of a simpler ssh STONITH configuration. It is convenient that the ssh method for rebooting nodes is available both as a shared object (which is used by the following example XML) and as a shell script (type external/ssh). The shell script can be used to give the same functionality as the shared object (with reduced performance) but the benefit is as an example of how to write external plugins. For a client I have just written an IPMI module that works with machines that have two Ethernet ports. When a server has two Ethernet ports you want to send an IPMI reset command to both of them in case the failure which requires a STONITH was triggered by a broken Ethernet cable. Unfortunately I can’t release the IPMI code at this time (more…)

David Welton: Simple item-based collaborative filtering with Rails

I suspect there is room for improvements with this, since it is really simplistic, and I certainly am not an expert in the subject. But it works ok for small numbers of items:
def Pair.from_items(items)
  Pair.transaction do
    res = []
    all = items.reject    i  i.name == ""  .collect    i 
            i.name.downcase  .sort
    all.collect    i  ([i]*all.length).zip(all)  .each    i  
            i.each  j  res << j   
    res = res.each    i  i.sort!  .uniq.reject    p  
            p[0] == p[1]  
    res.each do  pair 
      p = Pair.find(:first, :conditions => 
                            ['val1 = ? and val2 = ?', 
                             pair[0], pair[1]])
      p  = Pair.new(:val1 => pair[0], :val2 => pair[1],
                     :num => 0)
      p.num += 1
      p.save!
    end
  end
end
Basically what happens is that for a list of items [A, B, C, D], it calculates and inserts into the database that A and B have been purchased/rated/viewed/whatevered together once. Same for A and C, A and D, B and C, and so on. After accumulating enough of these pairs, you can query the datbase for an item - B for instance - and see what it's been purchased with the most times, and recommend that to people who have shown an interest in B. When someone purchases a group of items togehter, you call Pair.from_items(the_items) and it takes care of inserting the various combinations.

Matthew Palmer: The Programmer's Rant

Normally I'd sigquote this sort of thing, but (a) it requires a wider audience than the occasional appearance at the bottom of a drivel e-mail, and (b) it's way too long for that. So I'm going to blog it instead. In response to a comment that programming requires the skill of clairvoyancy, a response was:
Required? It just makes you suffer more. You know up front that they'll accuse you of ducking the question when they ask for a schedule and you give one contingent on specific preconditions. You know ahead of time that they'll change the specifications at the last minute. You no ahead of time that if you object to changes without revised budget and schedule that they'll say you're no a team player. You know ahead of time that they'll blame you even though they signed off on the schedule being contingent on no changes. You know ahead of time that there will be nothing that you can do about any of these. So what does your precognition buy you other than an ulcer or perhaps a coronary?

29 May 2007

Nico Golde: libacpi general purpose acpi library

During the last time I developed a general purpose library for ACPI on linux.
Initially I just wanted to rewrite yacpi but since there is no shared lib for acpi information I decided to
put the important stuff in a seperate library.

Before releasing it I want some people to test it because my notebook doesn't support all of the information it can gather.

If you want to help me a bit, download a snapshot from:
http://nion.modprobe.de/libacpi-unreleased.tar.gz.

Install cmake, unpack the tarball and do:
$ cmake .
$ make
$ ./test-libacpi

and send me the output of test-libacpi together with tmpfile which should be generated like:

for i in find /proc/acpi -type f ; do
    echo -e "FILE: $i ================\n" >> tmpfile
    cat $i >> tmpfile
done

via mail to:


Thanks!

UPDATE: yes I totally fucked up the install instructions and the generation of the tmpfile :-) Sorry.
And in case I didn't reply to every mail I got until now, thanks very much for you help all!

Alexander Schmehl: Donating blood

Sven Mueller wrote a nice blog about how important it is to donate blood. To cite him: Please donate blood if you can. If you are uncomfortable with the choice you made on your first donation, check out other options for donations. I agree wholeheartedly! I heard from a Lady, who can't donate blood herself, since she doesn't feel comfortable with it -- I can understand it, I hate needles and don't like to see my own blood neither. But she wants to help nonetheless, so she volunteered to help during blood drives: She sits by the people donating blood, talks to them, helps them walk around when they still feel dizzy, give out food and drinks, etc.

Sven Mueller: blood donations

Hi. Recently, on planet.debian.org, there were quite a few posts relating to blood donations. I must say that I really only live thanks to people donating blood. As many might know, I had a freaking motorcycle accident about 9 years ago. Well, apart from loosing my right leg in the weeks following the accident (irreparable damages to tissues led to amputation), I also lost a lot of blood after the accident. In the six hours following the accident, I got no less than 65 blood infusions (approximately 24-30 litres or 6-8 US gallons). As you can imagine, this is about 3-4 times as much blood as my body normally carries around. At least I can say that I didn’t receive blood without giving some before, though certainly I wasn’t able to give that much blood (I donated about 10 times, approx. 0.45 litres each time). However, due to the medication I now need, I can’t donate blood anymore. Anyhow, I strongly suggest to anyone who is capable of donating blood to do so. And regarding Thijs comment about the frequency of donation and payment: This is highly depending on the area you live in and the organisation who manages the donations. For example, while I donated blood in Dortmund, Germany, I had two options to donate blood: German Red Cross, who would accept a donation every 6 weeks, with free sandwiches, drinks and chocolate but without payment and the city-owned hospital’s blood bank, which allowed a donation every 3 month, with free drinks and a 50DEM (approx. 25EUR/30USD) payment. This sounds as if the city-owned blood bank could attract homeless and junkies who were in for the money, but from my experience, the blood bank did far stricter pre-donation tests (I can’t tell what they did after donation for either organisation) than the red cross. And knowing how much money can be earned with the blood donated, I certainly think that payment is fair, though not strictly necessary. And the blood bank people did a much better job when applying the needle than the red cross people did, which might be because they were used to taking blood from people with bad veins (mostly patients donating blood for themselves for use in a later, planned surgery). But to be fair: I know from other people who had very good experiences with the red cross staff in this respect. Once again: Please donate blood if you can. If you are uncomfortable with the choice you made on your first donation, check out other options for donations. For example, if you almost collapsed when donating blood, try out the plasma donation if it is offered. They usually take the plasma, but give back an equal volume of a substitution, so your circulation isn’t disturbed as much as by taking approx. 0.5 litres from it within an hour. If you feel that the person who applied the needle did a bad job, ask for someone else next time or try a different organisation altogether. cu,
Sven

Pierre Habouzit: Dear Eric ... you should use git-svn

Dear Eric, the best way to import a svn repository into git is to use git-svn (in a separate package in debian). It works that way:
$ git svn clone svn+ssh://path-to-the-root-of-your-repo -t foo/trunk -b foo/branches -T foo/tags
then just wait. foo/ trunk,branches,tags is in case you want to import one subproject foo from your repository, and of course you don't need to specify it if you want the root of your repository. git-svn is in fact a two way bridge between git and subversion, and works fine as an importer as well :) That's what I use to work with pkg-glibc svn.

Joey Hess: on multitasking

I try to avoid doing multiple things at once on the computer, since I know that focusing on one thing is when I do my best work (see fighting computer-induced ADD). But I've noticed that I can do two things at once quite well if they're the right two. Two of them are:
  1. listening to music
  2. reading (but not writing, or much programming, unless the music isn't based on vocals)
That's pretty obvious, but I was suprised by this pair:
  1. listening to podcasts, interviews, etc
  2. command-line drudgery (upgrades, sysadmin work, etc)
This really suprised me, since I consider the unix command line to be another form of speech. This is making me think I don't really process it that way. Perhaps my mind really considers it a wholey visual/manual activity. It gets iffy when the sysadmin spills over into minor programming, and once I get into programming where I have to hold a lot of info in my head, I lose track of the audio.

Cameron Dale: May-28-2007: Start of Coding / New Release

The start has finally arrived, today is officially the first day of coding for the 2007 Google Summer of Code. To commemorate this occasion, I have prepared the next release (the second so far) of the software package I am writing for it, DebTorrent. You can download it from the Alioth project. Some of the changes in this release are: You can read detailed instructions for how to download using it in the README file, but the basic idea for using DebTorrent as part of an update is to: This is still an alpha release, but at least it has some more functionality than the previous one. Feel free to test it, but keep in mind that at this early stage most of the torrents will be unseeded.

Ian Haken: GSoC, vlosuts, and other acronyms

Summer of Code officially started today, and as such it was time to start hacking out some code for it. For the past couple of weeks I've been casually looking over an upgrade testing suite for Ubuntu (website, bzr repo). It's fairly sophisticated and does a lot of things that I'd like to bring to Debian. However, after considering it for awhile, I decided that I would prefer to start on the Debian version from scratch. This decision came about for a few reasons:

At any rate, I will probably end up reusing many pieces of the code from that tester.

Updates posted here as progress continues.

Andrew Pollock: [debian] From the horse's mouth...

Just in case Ben Fowler doesn't read Planet Debian, Eric Dorland has written a much more detailed and accurate account of the Iceweasel situation than I did.

28 May 2007

Lars Wirzenius: Random hacks: Static website, with translations, using IkiWiki

One of my current projects involves setting up a website that is translated to at least two languages. For various reasons I wanted to use IkiWiki as the backend, even though the site is static, and does not need the wiki functionality. IkiWiki is, in principle, a wiki engine, but with a difference: it is run off-line, and creates a set of static HTML pages, rather than running every time a page is accessed. This makes it suitable for static websites. For the translation, I wanted to have the following setup: Each page is available in each language, so the pages are named foo.xx.html, with xx being the ISO language code. This also allows HTTP content negotiation to work, if the client asks for the page without the .html suffix. IkiWiki itself does not currently have support for translations. Doing translations by manually editing each page in each language is tiresome and error prone. I wanted to use the gettext approach, where the translations are maintained using .po files. The po4a tool makes this possible: it supports many file formats. English is declared as the original language for this project: all other languages are generated via po4a from the English ones. The page content gets put into foo.xx.mdwn. po4a generates all other language files than English, and these are then fed as input to IkiWiki, which generates the HTML. In summary and horrible ad hoc pseudo-notation:
  • po4a: foo.en.mdwn -> foo.pot
  • cp: foo.pot -> foo.xx.po
  • $EDITOR: update translation in foo.xx.po
  • po4a: foo.en.mdwn + foo.xx.po -> foo.xx.mdwn
  • IkiWiki: foo.*.mdwn -> foo.*.html
This works pretty well, but only for the part of the page that gets put into the content section in the IkiWiki page template (<TMPL_VAR CONTENT>). The page design we have calls for a couple of elements with translatable content outside the content: a logo and a menu/navigation bar. To deal with these, I made a little IkiWiki plugin. The plugin sets a couple of Perl HTML::Template variables, LANG and BASENAME, based on the input file name. If the input name is foo.en.mdwn, the variable get set to en and foo, respectively. The IkiWiki page template then uses the variables to load the right logo for the language of the page being generated. The navigation bar needs further work. Unfortunately, the po4a tools have trouble with the IkiWiki page templates, and can't extract just the menu entries. I ended up doing the navigation bar translation directly in the page template, since it is only a few words anyway.
<li><a href="index.<TMPL_VAR LANG>.html">
<TMPL_IF EN>Home
<TMPL_ELSE FI>Etusivu
</TMPL_IF></a></li>
The "this page in other languages" part of the navigation part looks like this:
<li><a href="<TMPL_VAR BASENAME>.fi.html">suomeksi</a></li>
I made the plugin (my first Perl ever!) available in case anyone else finds it useful. Note that the plugin isn't of much help if you want to maintain a translated wiki, since this all need some Makefile magic to make things smooth. I'm not sure the Makefile is at all optimal, though. We haven't yet gone public with the website, so this setup of mine may well get improvements still.

27 May 2007

Jos Parrella: Recent political issues, travelling to DC and emdevs hacking

A few days ago, some people in Venezuela were shocked by Mark Shuttleworth’s claims against Hugo Ch vez Government and supporting Mar a Corina Machado, a minor opposition leader in the Country. Today, at 23:59:59, the nationwide open air TV broadcaster RCTV will cease operations. In Venezuela, as in several other countries in the World, the economically profitable portion of the electromagnetic spectrum is State’s property, thus requiring a concession to make use of it. RCTV concession was granted in 1987 for twenty years, and the Government has decided to deny the renewal, which is quite unusual (right-wing governments in the past simply would have shut up the antennas) Of course, RCTV is not a pro-Government channel, accounting between 90 and 100 percent of the airtime with anti Government news and opinions, which is not bad per se, though in Venezuela there’s a law requiring equilibrium in times devoted to political ads. Both situations (Mark’s comments and the Government’s decision) pose the threats of a now common situation in our Country: people taking very valid decisions with somewhat doubtful consequences. In the first case, Mark is using his right to freely write what he likes in his blog but it seems that it has damaged a little bit Ubuntu’s image in Venezuela (not that it’s Mark’s fault, of course) In the second case, the Government is taking a lawful decision, but it has actually raised an important discomfort in the population (polls, which are not always accountable, point out as much as 80% rejection rate), the journalists of other media and most foreign observers, which state that they’re actually closing a TV channel and destroying freedom of speech in the Country. Expressing political POVs is quite critical nowadays in Venezuela. Some famous etiquette bookwriters, such as the one at Emily Post’s, always tend to promote a be honest, be respectful position while listening or expressing your points of views in order to keep a productive attitude. I do think that politics are important: I just think mixing them with practical daily tasks, including FLOSS development and promotion, is becoming obnoxious and dangerous. Cheeseconf On June 15th., I’ll be departing to DC7 in Edimburgh. I’ll stay a night in Frankfurt, probably in a hostel, and then I’ll stay at one of the hostels in EDI. I plan to carry white cheese to the Cheese and Wine BoF, and I’d love any comments on how to transport them without posing a biological threat for Europe. I’ll be carrying a 65 liters backpack. How long will it take for the cheese to become a lifeform? Any special tips and tricks to avoid that? Copying files to embedded devices I’ve been trying to copy some binary files into an Axesstel D800 EvDO modem which runs Linux over a tiny ARM processor on less than 16 MB. of memory. I’m actually trying to get netcat in so I can get more useful stuff such as snmpd in. The modem has telnetd, but it has no zmodem utilities, particularly rz. Neither it has wget, nor ftpd. It has thttpd to serve the administrative webpages, but it can’t process shell CGI programs so I can’t send the file through a CGI form. Any ideas? I would love to read comments from hackers who have already managed their ways into embedded devices such as 802.11 devices with Linux, and any generic ideas on how to provide new firmware images for devices such as this Axesstel modem.

Andrew Pollock: [tech] Finding out just how hot the linen cupboard is...

I decided to move the old 1-RU Pentium III server (the thing providing all the storage for my MythTV box via ATAoE) from under the bed in the spare room to the linen cupboard. It had a brief stop in the wardrobe in the spare room, but it didn't really help with the noise. Sarah was a concerned about the heat in the linen cupboard, as this is where the patch panel is, so caesar is already in here, along with an Ethernet switch, an ADSL modem, a wireless access point, and the Vonage ATA. There's a lot of DC plug packs generating heat, so it was a reasonable concern. I figured in this day and age, someone must make some sort of USB temperature sensor, and after some searching around, I discovered the DLP-TEMP-G, which seemed to be about the right price, doing what I wanted. I'm going to say the web page was a bit ambiguous, but it was probably just late at night, because I read the bottom as having the option to buy it from Mouser, or via PayPal directly with DLP Design. So I went down the latter path, because I generally prefer to deal directly with the manufacturer. Turns out what I was actually ordering was just a "Test Application", so that email I'd received the day after I placed my order for two units was all I was going to get. I figured this out after a week or so of wondering when it was going to arrive. They were really good about it, and refunded me my $40, even though I'd received said software, and I placed a new order with Mouser for what I really wanted. Now this time, I just didn't read things thoroughly enough, although I'll still say that things were a little ambiguously worded. The page I've linked to above does say "DLP-TEMP-G and 1 DS18B20 sensor $25.00", but when reading datasheet, it goes on about three sensors, and coming with one that isn't soldered on so that you can optionally run a cable between it and the board. I somehow interpreted this as meaning there were two sensors on the board, and one loose. Not the case. The board supports having up to three DS18B20 sensors attached to it, however you please. It comes with one unattached. In hindsight, why would you want two temperature sensors directly on the board? So the moral of this story is I just can't read. Anyway, I got home from Santa Monica last night, and the goods had finally turned up, so I had a play. The DS18B20 just looks like a transistor. I initially ignored it, and just shoved the USB board in caesar, and it happily recognised it
usb 1-1: new full speed USB device using uhci_hcd and address 8
usb 1-1: configuration #1 chosen from 1 choice
drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device
ftdi_sio 1-1:1.0: FTDI USB Serial Device converter detected
drivers/usb/serial/ftdi_sio.c: Detected FT232BM
usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0
usbcore: registered new driver ftdi_sio
drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver
I then fooled around with minicom, and discovered that the little transistor thing I'd been ignoring was indeed the temperature sensor, as I got a reading of zero back (when using this program I found on the 'net). So I went to bed, and this morning did a bit of messing around with the sensor, and with a bit of creative bending, I've got it sitting in the S1 holes without requiring any soldering. It tells me the linen cupboard is about 44 degrees Celsius. Warm, but I don't think it's in any immediate danger of bursting into flames. Wouldn't surprise me if some of the gear in there isn't too keen about the temperature though. At least we won't have to worry about mold. Next step is to convince cacti to graph it, and nagios to monitor it, and we're in business. Here's a little Python program I knocked up to grab the temperature. pyserial is nice. Read on, Macduff!

26 May 2007

David Welton: Airlines and rand()

Ilenia and I are looking for tickets to go "home" (Eugene, Oregon) this summer. We've had pretty good luck with Lufthansa in the past (as opposed to Air France, which lost a huge bag of my stuff), so we turned to them first to look for flights. I like the page they have for prices/dates, which gives you a nice way to look around for a better price without stabbing randomly at dates: Big long Lufthansa URL However, the maddening thing is that the prices change frequently. Not every day, but often after even 5 minutes! They bounce around up to 100 euro at a time. I understand the theory behind price descrimination, but this is the classic case where the customer ends up feeling like they're being made fun of and goes elsewhere. United, in our case, which offers a cheaper price for the same plane (they're Lufthansa's partner and thus share flights).

Yves-Alexis Perez: xfmedia drop in question

We (the pkg-xfce team) are considering to drop xfmedia from Debian.

It has nasty bugs, isn't really well maintained upstream and I guess none of us use it. Some people use it, so maybe it's not a good idea to drop it, but in case you're using it and are greatly against the drop, please talk (to pkg-xfce mailing list and post comments), and offer your help.

Thanks!

25 May 2007

David Welton: ShopList updates

I did some work on my mobile phone shopping list ShopList today. Thanks to a bug report from Sven Mueller, I think I managed to correct an encoding issue. If you use ShopList and enter non-ascii text into the shoplist web application, let me know if things are working for you. I also did some work on the back end to enable statistics, but only for users who are logged in to their accounts. Not surprisingly, the most common things people buy at the store are: Which probably hasn't changed in hundreds of years. Sort of reassuring, I guess?

Biella Coleman: Pricefull and Priceless

$ 5000 medical bill (that insurance won’t pay for)
$ 450 water bill in Puerto Rico
$ 150 library fine for one lost book that normally costs under 20 dollars Anxiety and rage from dealing with these ludicrous bills: priceless. Ok seriously I am now dealing with these three things and it has been really really really unpleasant. I sometimes wonder if I was once a bad as* Roman tax collector by the name of Biella Plebius and now, reincarnated as Biella Coleman, I am suffering the karmic consequences of extorting people in the 3rd century A.D. Other times I take a lighter approach to all of this and console myself that if nothing else, I am learning a lot. For example, as I had mentioned awhile back, Blue Cross Blue Shield Horizon of New Jersey is stalling and denying health insurance bills for my mole surgery. Because I had a pre-existing clause in my contract, they are trying to squirrel out of it. However, since I never had a pre-existing issue with moles, I am pretty sure they are required to pony up the cash but getting them to do this has been a Herculean, no Sisyphean task. Since it was clear they were not going to pay if I alone was applying pressure, I was about to file a claim in Special Civil court (the bill is too high for small claims court) but I wanted to see if I had any other options. So hours and hours after diligent web research, I finally found on lawyers.com that I can file a complaint against my health insurance via the Department of Banking and Insurance. I am amazed that NO ONE in the doctor’s office, including those whose only job is to deal with health insurance, had a clue about this option. And even when you go to the Dept of Insurance website it is not totally obvious that you can file a complaint (it is under the “file for assistance” category). But once I got in touch with them, they have been incredibly helpful. Now, my detailed complaint letter is with them, and some other documentation and apparently they have an investigator on the case. I am not sure if this route will be enough pressure to get the job done but at least by the time this is over, I will be in the greater NY area so that I can move to the court option. The take away lesson here is that if you are having any trouble with claims and health insurance, do do do do file a complaint with your state Department of Banking and Insurance. This is a great first option to use.

Next.

Previous.