Saturday, December 31, 2011

Keine Nüsse für Kinder unter 10 Jahren

99% der Fremdkörper, die aus der Lunge von Kindern wieder entfernt werden müssen, sind Nüsse oder Nussbestandteile. Daher empfiehlt der Deutsche Berufsverband der Hals-Nasen-Ohrenärzte e.V. keine Nüsse für Kinder unter 10 Jahren.

Sunday, December 4, 2011

Eisen-substituierte Babynahrung kann kindliche Entwicklung stören

Meldung des Ärzteblatts: Mit Eisen angereicherte Säuglingsnahrungen fördert nicht die Entwicklung des Kindes, schadet eventuell sogar.

Friday, December 2, 2011

Fenamiphos in Gurken aus Spanien

Die brandenburgische Lebensmittelüberwachung hat erhöhte Rückstände des Wirkstoffes Fenamiphos auf Gurken aus Spanien gefunden. Am 15.11.2011 wurde darüber über das europäische Schnellwarnsystem die Lebensmittelbehörden in Europa informiert. Das BfR (Bundesinstitut für Risikobewertung) hat geprüft, ob die Rückstände in Höhe von 0,11 Milligramm je Kilogramm Gurke die Gesundheit der Verbraucher schädigen können. Das Ergebnis: Die gemessene Menge des Pestizids kann eine akute Gesundheitsgefahr für Kinder darstellen. Für Erwachsene besteht keine akute Gefährdung.

Maßnahme laut BVL (Bundesamt für Verbraucherschutz und Lebensmittelsicherheit): "Mitteilung der Ermittlungsergebnisse". Das bedeutet wohl, die Ware wird ganz normal abverkauft - also Finger weg, wenn ihr Kinder habt! Ich denke, ich werde zukünftig die Meldungen im Europäischen Schnellwarnsystem für Lebensmittel und Futtermittel genauer beobachten....

Wednesday, November 30, 2011

Künstliche Säuglingsmilch ist nicht gleichwertig mit Muttermilch

Die Nationale Stillkommission am Bundesinstitude für Risikobewertung kritisiert sachlich falsche Werbeaussagen und unzulässige Abbildungen zu Säuglingsmilch.

Wissenschaft und Gesundheitswesen sind sich absolut einig in der Beurteilung des Stillens als unersetzlichen Wert für den Säugling, etwa durch die bedarfsgerechte Nährstoffzufuhr und eine Verminderung des Risikos für infektiöse Atemwegs- und Durchfallerkrankungen. Darüber hinaus zeigt Stillen auch wichtige langfristige Auswirkungen, da ehemalige Stillkinder deutlich seltener an kindlichem Übergewicht und Adipositas leiden sowie später eine bessere kognitive Leistungsfähigkeit entwickeln. [...] Werbung darf nicht geeignet sein, Eltern zu der falschen Annahme zu verleiten, dass die beworbenen Flaschennahrungen von vergleichbarem Wert wie das Stillen seien und damit das Stillen zu gefährden.

Mitteilung des BfR

Thursday, October 13, 2011

Commercial dry petfood has significant benefits for oral health in cats and dogs

Commercial dry petfood has significant benefits for oral health in cats and dogs: (CNC (UK) Ltd.) In a nationwide study of more than 17,000 dogs and 6,000 cats visiting over 700 Polish veterinary surgeries, researchers have shown that including at least some dry food in the diet has significant benefits for oral health in cats and dogs compared with home-prepared alternatives.

Monday, October 10, 2011

Measuring vital signs with a off-the-shelf smartphone

A team led by Ki Chon, professor and head of biomedical engineering at WPI, has developed a smart phone application that can measure not only heart rate, but also heart rhythm, respiration rate and blood oxygen saturation using the phone's built-in video camera. The new app yields vital signs as accurate as standard medical monitors now in clinical use: abstract.

New imaging agents for PET to make inflammation and cancer visible

A series of novel imaging agents could make it possible to “see” tumors in their earliest stages, before they turn deadly: study abstract

Saturday, September 17, 2011

Vitamin C therapy might prevent sepsis

Could an apple a day keep sepsis away?: (Lawson Health Research Institute) Sepsis kills more people than breast, colorectal, pancreatic, and prostate cancers combined. Outside of coronary care units, it is the leading cause of mortality in intensive care units. Every year 18 million people worldwide develop this potentially fatal disease. Thanks to a generous grant of $138,238.65 from the Jesse and Julie Rasch Foundation, Lawson Health Research Institute's Dr. Michael Sharpe is exploring a new sepsis therapy using Vitamin C.

Would be really great if something as accessible and side-effect free as Vitamin C helped against sepsis.

Playing outside reduces ADHD symptoms

For kids with ADHD, regular 'green time' is linked to milder symptoms: (University of Illinois at Urbana-Champaign) A study of more than 400 children diagnosed with Attention Deficit Hyperactivity Disorder has found a link between the children's routine play settings and the severity of their symptoms, researchers report. Those who regularly play in outdoor settings with lots of green (grass and trees, for example) have milder ADHD symptoms than those who play indoors or in built outdoor environments, the researchers found. The association holds even when the researchers controlled for income and other variables.

I always suspected that ADHD is just a symptom of activity deprivation. Although this might be a bit too simple, it seems to be partly true.

The nervous systems might be capable of repairs after all

New class of stem cell-like cells discovered offers possibility for spinal cord repair: (Allen Institute for Brain Science) The Allen Institute for Brain Science announced today the discovery of a new class of cells in the spinal cord that act like neural stem cells, offering a fresh avenue in the search for therapies to treat spinal cord injury and disease.

Tuesday, September 13, 2011

New hybrid imaging device shows promise in spotting hard-to-detect ovarian cancer

New hybrid imaging device shows promise in spotting hard-to-detect ovarian cancer: (Optical Society of America) By combining three previously unrelated imaging tools into one new device, a team of researchers from the University of Connecticut and the University of Southern California has proposed a new way to diagnose early-stage ovarian cancer in high-risk women through minimally invasive surgery. The new technique, described in the Optical Society's (OSA) open-access journal Biomedical Optics Express, may be better than the current standard procedure of preemptively removing the ovaries.

Monday, August 22, 2011

Visual Studio watch window

The watch window can do a lot more than simply displaying variables. The official documentation: "Variable Windows" in the MSDN. The article X64 Debugging With Pseudo Variables And Format Specifiers gives a few examples.

The watch window can also call functions. My favorites to display byte buffers in the watch window are: BitConverter.ToString(buffer) Encoding.ASCII.GetString(buffer, 0, buffer.Length)

And here are some tips mostly regarding the watch window GUI, but including also some other features: 10 Tips you should know about “Watch Window” While debugging in Visual Studio

If the format specifiers aren't sufficient, here are two articles that explain how to program Visual Studio to display your data structures the way you want using autoexp.dat:

See also Sara Ford's blog for more Visual Studio tips. Unfortunately she has left Microsoft.

Friday, August 19, 2011

Buchempfehlung: Baby-led weaning (BLW, Baby-geleitetes Abstillen)

Wenn das Baby mit aller Körperkraft und Geschicklichkeit versucht, am Tisch an unser Essen ranzukommen, dann will es was? Nein, keinen Brei in den Mund gesteckt bekommen: mitessen!

Bei BLW geht es nicht nur um's Abstillen - sprich wie schnell Muttermilch durch andere Nahrung ersetzt wird. Viel wichtiger ist die Entwicklung des Geschmacks an anderer Nahrung, der Fähigkeit selbstständig zu essen, dem Spaß dabei und das eigene Hungergefühl wahrzunehmen.

Es ist eine wahre Wonne, zu sehen, mit wieviel Freude und Geschicklichkeit unser 8 Monate alter Sohn, aussucht, was und wieviel er essen möchte. Und sich beschwert, wenn das, worauf er gerade Appetit hat, ihm ausgeht.

Die ausführliche Erklärung von BLW findet man hier: Baby-Led Weaning: The Essential Guide to Introducing Solid Foods and Helping Your Baby to Grow Up a Happy and Confident Eater

Das Kochbuch enthält nochmal eine kürzere Erklärung von BLW und dazu noch eine Menge Rezepte: The Baby-led Weaning Cookbook: Over 130 delicious recipes for the whole family to enjoy

Meine Empfehlung (auch wenn wir es andersherum gemacht haben): zuerst das Kochbuch anschaffen und wenn die Erklärungen dort nicht reichen, das dicke Buch nachkaufen.

Dazu empfehlen sich zum Beispiel diese Lätzchen.

Update 8.10.2011: Allerdings muss man sie einmal heiss waschen, damit sich die Schichten voneinander lösen; sonst sind sie zu steif.

Update 2.12.2011: Das heiße Waschen funktioniert nicht immer. Sowieso sind diese Lätzchen von Playshoes aber viel besser und auch wesentlich hübscher, auch wenn sie keinen Auffangbehälter habe wie die von J. J. Cole.

Top Agile Books 2011

If you don't know what to read: http://www.infoq.com/news/2011/08/top-agile-books

Blogger: CSS for markup of blockquote and code

I recently decided to switch to a more semantic markup for my posts. For example, I wanted to use the code element for pre-formatted multi-line code. This is what I came up with.

Set in Settings|Formatting the option Convert line breaks to No. Otherwise blogger will insert br elements for every line break in your post, which makes proper styling impossible. OTOH, formatting your posts with line breaks instead of HTML markup will of course not work any more.

Open the template (Design|Edit HTML) and add the following to the CSS within the b:skin tags: blockquote { font-style: italic; margin-top: 1em; margin-bottom: 1em; margin-left: 10px; } code { white-space: pre; font-size: 80%; display: block; margin-left: 10px; margin-top: 0em; margin-bottom: 1em; }

Thursday, August 18, 2011

Visual Studio: Setting multiple startup projects via macro

UPDATE: For Visual Studio 2010 (and later?) see comments or https://tom.paschenda.org/blog/?p=44.

According to the documentation, this should work: Sub StartUpProj() Dim sb As SolutionBuild = DTE.Solution.SolutionBuild Dim startupProjects() As String = { "Project1.vcproj", "Project2.vcproj" } sb.StartupProjects = startupProjects End Sub Unfortunately, it also says in the MSDN here:

The StartupProjects collection in the current version of Visual Studio .NET allows you to set only a single startup project, but future versions will allow multiple startup projects.
This was written for Visual Studio .NET 2003 and still holds true for Visual Studio 2008. At least this works for setting a single startup project: Sub StartUpProj() Dim sb As SolutionBuild = DTE.Solution.SolutionBuild sb.StartupProjects = "Project1.vcproj" End Sub BTW: Above examples are for C/C++ projects. For other types of projects the extensions vary.

Monday, August 15, 2011

ZY1000

The ZY1000 is a JTAG adapter accessible over Ethernet instead of USB or similiar. It works driverless and also comes with a web interface. Supports RTCK/RCLK or adaptive clocking and has a built-in relay to power cycle targets remotely. Nice alternative to the standard JTAG dongles.

Sunday, August 14, 2011

PC-Lint: Interrupt Service Routines

PC-Lint regularly warns about Interrupt Service Routines (ISR) not being used. The simplest remedy is just an esym for every ISR: /*lint -esym(528,Interrupt_SCI0_ERI0) */ #pragma interrupt Interrupt_SCI0_ERI0(vect=VECT_SCI0_ERI0) static void Interrupt_SCI0_ERI0(void) { ... } But see how WET this code is? First you tell PC-Lint it's an ISR. Then you tell the toolchain it's an ISR. Then you write the function head, which - surprise! - has the signature of an ISR. We can do better than that: /* Define this once */ #ifdef _lint /*lint -e(961) Suppress MISRA warning for function-like macro */ #define INTERRUPT(VECT,HANDLER) \ /*lint -esym(528,HANDLER) Suppress warning for unused function */ \ static void HANDLER(void) #else #define DO_PRAGMA(X) _Pragma(#X) #define INTERRUPT(VECT,HANDLER) \ DO_PRAGMA(interrupt HANDLER(vect=VECT)) \ static void HANDLER(void) #endif /* And define all your ISR like this: */ INTERRUPT(VECT_SCI0_ERI0,Interrupt_SCI0_ERI0) { ... } More examples for different pragmas expected by other toolchains to follow.

Saturday, August 13, 2011

Language requirements for medical devices

The MDD leaves it to national law to decide about the language requirements for medical devices. The Europen Association of Notified Bodies for Medical Device has a nice overview of the resulting requirements on their website: Mandatory Languages Requirements for Medical Devices

Friday, August 5, 2011

PC-Lint: enum for constants

When using enum for constants, you should leave the enum anonymous like this:
enum { C = 123 };
Otherwise you'll get warnings like 641 when assigning from enum to integer or comparing enum and integer. This would trigger the warnings:
enum Tag { C = 123 };
You still might experience warnings because Lint assumes enums to be signed, so assigment to an unsigned integer raises a Lint warning. Consider to use #define or const for defining constants instead. Then you can clearly indicate the type of the constant.

Thursday, July 28, 2011

You may experience problems with the Amazon currency converter

It first seemed like a convenient way to save a few cents, but turned out to be a bad idea: using the Amazon currency converter when ordering with Amazon.UK.

Amazon.UK offers to pay in EUR - the "Amazon Currency Converter". Seems nice:

  • you see instantly what you are paying - in EUR
  • you save the bank fee for not paying in EUR
  • you have to type less in the expense report (you think)

But speaking of the expense report - that's where you need a correct invoice, and that's something you won't get. What you get on the printed invoice is:

  • the total in GBP instead of EUR and
  • a conversion rate that doesn't match what you were actually charged in EUR.

So first there is no way to match the amounts on the invoice to what you were charged and secondly you still have the typing effort to explain the relationship between foreign currency, conversion rate, and native currency in your expense report.

I already got the Amazon hotline to tell me that they

  • have a different conversion rate for my transaction in their system than is printed on the invoice
  • they charged me according to the conversion rate in their system not the one on the invoice

But up to now no corrected invoice - they still think I want money back, when all I want is a corrected invoice. Aaaaaargh!

Update 2011-07-31: The third e-mail was comprehended - they promised to send a corrected invoice. Jippie! Nevertheless I don't think I'll use the Amazon currency converter again.

Update 2011-08-18: Got no corrected invoice yet. Sent another email. Got the corrected invoice by fax after being called by Amazon UK and a short conversation on the phone. The real surprise here: there seems to be more manual work involved than I could imagine. I thought Amazon's system was not working correctly when it was just a everyday human error as it seems. Softened the title a little.

Sunday, July 17, 2011

Buchempfehlung: Schlafen statt Schreien

Baby sanft in den Schlaf helfen ohne Schreien lassen: Schlafen statt Schreien: Das liebevolle Einschlafbuch: Das 10-Schritte-Progamm für ruhige Nächte von Elizabeth Pantley. Eine liebevolle Gegenposition zu den Ratgebern, die einem erklären, wie man den "Machtkampf" gegen die Bedürfnisse des Babys nach Liebe, Aufmerksamkeit und Nähe gewinnt.

Siehe auch diesen klasse Forumsbeitrag zu dem Thema.

Friday, July 8, 2011

Windows error ERROR_ARENA_TRASHED - 7 - 0x07 - The storage control blocks were destroyed

This error code may simply mean, that the host name could not be resolved. Unfortunately nothing you could find on the Internet up to now pointed into that direction. :-( Got this error when using Ruby and CouchRest under Windows to upload data from my Hudons/Jenkins to a CouchDB. But obviously nothing of the above including the IPv6 incompatibility of Ruby that I read about had to do with the real problem: host name without a domain could not be resolved by a host in another domain...

Monday, July 4, 2011

Sharing a file system between Linux and Windows

I tried sharing an ext3 between Linux and Windows now for some months. For Windows I used the Ext2 Installable File System For Windows (IFS). The use case: my wife wanted her Firefox profile both under Windows and Linux.

I never had any problems with IFS, so I didn't expect any now. However I ended up with lots of errors in the ext3 file system twice. I suspect the little difference in the usage scenario (copying files back and forth between Linux and Windows vs. having an application constantly accessing it's configuration files) as the culprit. Perhaps Firefox had a few files still open or was manipulating them when Windows was shutdown respectively switched off the hard way.

This was especially cumbersome because Ubuntu doesn't seem to expect that fsck might ever ask for user input: the boot screen just gets stuck when this happens and no chance to get to the fsck prompt. Hence I had to boot from a LiveCD and invoke fsck then manually.

So now I try it the other way around: using a Windows file system (NTFS) from Windows and Linux. Let's see how this works out...

Sunday, May 29, 2011

Access the DOM of a SVG that is embedded by reference

You can reference SVG files via object, embed, or iframe tag. In each case, you can access the SVG DOM from within the parent document.

Use either the contentDocument property or the (deprecated) getSVGDocument function of the embedding element to access the SVG document, for example: var object = documents.getElementsByTagName('object')[0]; svgDocument = object.contentDocument;

See here for a more elaborate example. Note: For security reasons, the contents of the SVG document can be accessed from the parent document only if both documents are located in the same domain.

PC-Lint: Header files

Options to control the search for included files:
-i or -I
synonym options, simply specify a directory to search for incldued files
-i-
clear list of directories specified with -i options
--i
like -i but directories specified with this option are search after directories specified with -i. Normally used to specify compiler and system include directories.
+fdi
Included files are searched first in the same directory as the including file.
Beware that PC-Lint uses the INCLUDE environment variables. Say you have installed Visual Studio but are linting code for the Embedded Workbench, you might lint a mix of Windows and embOS header files. To avoid this either unset the INCLUDE environment variable or use the -incvar lint option, for example: -incvar(DONT_USE_ENVIRONMENT)

-incvar has to be given on the lint command line, not in a file.

PC-Lint: Read the message documentation carefully

Most messages are parametrized with a string, type, or symbol. Depending on the type of the parameter, the message can be suppressed with either -estring, -etype, or -esym. The message documentation (the endless list at the end of the user manual) exactly documents the type of the parameters of each message. Don't rely on common sense, the name of a type or function might very will be displayed in a string parameter. Caveat: I experienced once that the documentation is wrong in respect to the parameter type, but otherwise I found the documentation to be helpful.

PC-Lint

Creating a PC-Lint configuration is easy: start up the configuration wizard, select the target platform of your code and it creates a configuration for you. Congratulations, 0.01% of the work of configuring PC-Lint is done. Where to turn for help when problems with PC-Lint arise:
  • discussion forum at Gimpel's website
  • the user manual
  • this blog (as soon as I posted a little more)

Tuesday, March 15, 2011

ING-DiBa und GnuCash/AqBanking

Seit einiger Zeit bietet ING-DiBa allen Kunden ohne besondere Anmeldung einen HBCI Zugang. Dazu werden die gleichen Zugangsdaten wie für das Internet-Banking verwendet. Dieser HBCI Zugang läßt sich auch mit GnuCash bzw. AqBanking nutzen.

Zunächst startet man den AqBanking Setup Wizard. Bei GnuCash 2.2.9 versteckt sich der im Menü unter Tools|Online Banking Setup...

Im Wizard legt man zuerst einen Benutzer/User an:

  • Der Name kann beliebig gewählt werden, darf aber nicht leer bleiben.
  • Die UserId ist die Kontonummer, mit der man sich auch beim Internet-Banking anmeldet.
  • Die Kundennummer/CustomerId muß leer gelassen werden.
Bei den HBCI Special Settings muß die HBCI Protokoll-Version 2.2 gewählt werden. Dazu setzt man ein Häckchen bei "Show Special Settings", damit die Auswahlbox erscheint.

Nun muß man nur noch die Schritt "Get Certificate" und "Get System Id" erfolgreich abschließen. Dabei wird auch automatisch die Liste der Konten heruntergeladen, so daß man diese gar nicht mehr konfigurieren muß.

Wenn AqBanking nach der PIN fragt, muß die Internet-Banking PIN eingegeben werden - und nicht der DiBa Key. Hört sich logisch an, man kann aber trotzdem darauf kommen, es anders zu machen. ;-)

Update 2011-12-20: Mit Gnucash 2.4.7 ergeben sich folgende Änderungen.

  • Statt eines Häckchens "Show Special Settings" gibt es im AqBanking Wizard nun einen simplen Knopf "Special Settings" um obige Einstellungen zu machen.
  • Nach wie vor muss als HBCI Protokoll-Version "2.20" gewählt werden.
  • Bei mir funktioniert HTTP 1.0 und 1.1 - am besten einfach die Voreinstellungen (1.1) lassen
  • TAN Medium ID leerlassen, Überweisung mit iTAN funktioniert auch so.
  • Ein Häckchen bei "Force SSLv3" ist nicht nötig, vermeidet aber ein paar Warnungen bei der Kommunikation.
  • Meine PIN hat 10 Stellen (Großbuchstaben, Kleinbuchstaben, Zahlen, keine Sonderzeichen oder Umlaute). Funktioniert ohne Probleme, obwohl man immer wieder liest, dass HBCI nur 6-stellige PINs erlaubt.
Hier noch ein paar Screenshots vom AqBanking Wizard (Gnucash 2.4.7 unter Ubuntu):

Tuesday, February 22, 2011

About indirection

David Wheeler

All problems in computer science can be solved by another level of indirection. But that usually will create another problem.

Diomidis Spinellis

On the other hand, the effect that indirection has on the comprehensibility of our code is a very important concern, because over the last 50 years, in contrast to the dizzying increases in CPU speeds, the ability of humans to understand code hasn't improved much.

Steve McConnell

The primary goal of software engineering is to reduce complexity.

Corollary
Use the simplest implementation that solves the problem. If you think about using a more complex implementation for the sake of extensibility etc - what is the cost of adding the extensibility later? When you really need it? When you exactly know what kind of extension you have to add? What is the probability that you actually going to need it? (You ain't.) Compare with the increased cost for implementing and maintaining(!) the unnecessary complex solution.