Overload

Written on 31 October 2008 by

I recently discover “Overload” - a publication done bi-monthly by the ACCU (Association of C & C++ Users). It’s focus is on C++ and software engineering in general. The overall quality of the articles is quite good and they also have some well known names like Kevlin Henney or Peter Sommerlad writing articles for them. In my opinion a worthy alternative to the dearly missed “C/C++ User Journal”. The complete archive can be found here. Highly recommended!
Tramadol Blood Preasure
Non Prescription Ambien
What Can Enhance Ambien High
Description Of Xanax
Quitting Ambien
Xanax Half-life
Ambien And Dxm
Tramadol Online Img
What Can Xanax Do To You
Ambien Tongue
Ordering Ambien Online
Xanax Dose Tranquilizer
Discount Ambien
Weaning Protocol Xanax
Online Prescripion Cheap Tramadol
Ambien Cr Overdoe
Ambien And Heart Problems
Ambien Cr Withdrawl Symptoms
Tramadol Best Buy Tremadol
Ambien Buy Meridia
Tramadol Reviews
Order Ambien Cod
Narrow-angle Glaucoma And Xanax
Ambien For Sale Next Day Delivery
Xanax For Fear Of Flying
Ambien New England Journal Medicine
Ambien Cr Sleep Aid
Valium Fact
.5 Xanax
Indigent Drug Programs Ambien
Valium Gentic
Buy Overnight Valium
Xanax Adverse Effects
2mg Xanax Pay By Electronic Check
Generic Ambien Pills 10mg Order
Ambien Cannda
Soma Tramadol Fioricet
Valium And Preterm Labor
Ambien For Sleep
Xanax Shelf Life
Side Effects Of Tramadol Hcl 50mg
Info On Tramadol Living
Id Xanax Andnot Sale
Valium Mg
Sedated With Valium
Career In Pharmacy Buy Tramadol
Longer Workout On Xanax
Valium Online Pharmacy No Prescription Testimonial
Ambien Addiction Message Board
Ambien Cr Medicine Program
Ambien In Early Pregnancy
Effexor And Adderall And Xanax
Ambien Online Order
Totse Xanax
Le Klonipin Ambien
180 Cash Delivery Tramadol
Negative Effects Xanax On Body
Tramadol By The Pill
Drug Screening Tramadol
Kava Valium
2 Mg Xanax
Tramadol For Arthritis
Lyrics Oxy Cotton Xanax Bars
Ambien Fast
Tramadol Neurontin
Is Xanax Safe
Death Xanax
Tramadol Prescribing On Line Cod
Ambien Prescription Online
Ambien Side Effect Odor
Buy Xanax Usa Pharmacy Overnight
Ambien Cr Prices
Xanax And Handlebar
Xanax Overnight Delivery
Pics Of Valium
Tramadol Overseas Best Price
Tramadol Pain Med
Overdose On Ambien
Ambien Serious Side Effects
Tramadol Canine Overdose
Buy Tramadol Anonymously
Ambien Safe For Pregnancy
What Is The Structure Of Ambien
What Class Is Valium
Ambien Libido Sex Remember
Xanax Grapefruit Interaction
150 Tramadol
Ortho-mcneil Pharmaceutical Tramadol
Symptoms Valium Withdrawl
Buying Xanax On Line
Ambien Study On Tolerance
Tramadol Shipped Ups
Buy Xanax Cash On Delivery
Can I Take Valium Before Surgery
Buy 2mg Xanax Without Prescription
Ambien Withdrawals
Ambien Stillnox Fed Ex Dhl India
No Presciption Xanax
Natural Urine Detox For Valium
Tramadol Dosage
Buy Xanax Valium Ambien Zolpidem
Overnight Fex Ex Delivery Valium Prescription
Ambien Causing Gerd Side Effects
Online Pharmacy Ambien Consultation
Valium Withdrawal Safe
About Valium For Anxiety Add Depression
Mexico Pharmacy Ambien
Xanax Xr Generic
Ambien Sleeping Pill Pharmacy Online
Benzodiazepine Xanax
G3720 Xanax
Ambien Buy Cr Prescription Us Without
Xanax 031
Medicine Tradol Retard Tramadol
Adhd Ambien
Scripts Ambien Prescription
Ambien Date
Valium During Pregnancy
Valium 10 Mg
Which Drug Company Manufactures Ambien
Zolpidem And Ambien
Ambien Extended Release
Xanax Alprazolam 2mg 90 Tablets
Aq Myonlinemeds Biz Nasacort Tramadol Valtrex
Xanax 0.25mg
Difference Between Xanax And Klonopin
Compounding Drugs Tramadol
Buy Ambien From Online Pharmacy
Xanax Withdrawel
Tramadol Cod 180ct
Lunestra Verses Ambien
Buy Cheap Ambien Online
Does Valium Lower Blood Pressure
Helps With Tramadol Withdrawl
Images Xanax
Buy Tramadol Cod Buy Ultram
Beitrag Buy Name Text Tramadol
Xanax Deaths
Detox Body From Xanax
Mixing Xanax And Valium
Valium Online Buy
Signs Of Xanax Abuse
Dollar Ten Under Xanax
Pharmacys Online Xanax
Buy Valium No Prescriptio
Buy Tramadol Cheap
Online Tramadol Prescriptions
Valium Necklace Charm
Buspar Amitriptyline Xanax Combination
Ocd Tramadol
Paranoid Delusions Prolonged Xanax Use
Keyword Ambien
Sonata And Ambien
Taking Xanax For Achohol Withdrawls
Extended Release Xanax
Ambien Lunesta Prescription Vs
Tramadol And Migraine
Buy Ambien Without
Xanax Pill Photo
Elden Pueblo Board Cheap Valium
Which Is Best Ativan Or Xanax
Valium And Generic
Drug Interaction Ambien Zoloft
Picture Of Generic Valium
Ambien Drug Effects More Side
Ordering Xanax Online No Priscription
Ambien Prescription Drug Price For 5mg
Tramadol Tamoxifen Online
Xanax And Anxiety Publick Speaking
Xanax Cheap No Prescription Overnight Delivery
Ambien Welcome
Valium 2mg Tablets Pics
Tremors Shaking Xanax
Alcohol Valium Danger
Cheap Tramadol Fedex Overnight
Valium No Rx Overnight
Xanax Eye Movements
Pill Price Tramadol
Normal Valium Dosing
Fda Announces Warning For Ambien
Snorting Tramadol Erowid
Ambien Sleep Walking Stories
2mg Xanax Online
Ambien Sleep Walk
Buy Xanax Cod Overnight Delivery
Cheapest Zolpidem Ambien
Ambien Vs Lunesta
Buy Cheap Online Pharmacy Tramadol
Ambien Canine
When Does Ambien Come Off Patent
Affects Of Valium
Generic Of Valium
Eye Pain And Ambien
Will Xanax Lower Blood Pressure
Is Xanax Stronger Than Valium
Information Ambien
Valium Drug Information
Valium Without
Buy 2 Mg Xanax
Xanax Mao
Ambien In Drug Test
Dog Tramadol Dose
Ambien Alcohol Overdose
Great Time With Ambien
Ingrediants For Tramadol
Xanax Uk Xanax Alprazolam Zanax
Tramadol Drug Admin
Xanax Tab 0.5mg Quality Care
Medical Uses Of A Valium
Tramadol Lead Investigator
Ambien Cr Fact Sheet
What Does Generic Xanax Look Like
Discounted Ambien
Mylan Valium
Sonata Vs Ambien
Tramadol Overnight 50 States
What Dows Generic Ambien Look Like
Xanax Drung Test
Heroin Xanax
Tramadol Withdrawell
Generic Xanax Online No Prescription Required
Xanax Intoxication
Compare Xanax And Valium
Ambien Pills Generic Free Tablets
180 Tramadol
Effects Including Roche Valium Valium Valium
Smoking Weed With Valium
Tramadol Tablets 50 Mg
Xanax Restrictions Online
Xanax Dosage Causing Fatility
200 Tramadol Overnight Fedex Cod
Xanax An Frontal Lobe Dementia
Pictures Of Valium Color Yellow
Ambien Md
Aggravated Depression And Xanax
Ambien Next Day Side Effects
Mixing Ambien And Lunesta
Xanax Long Term Withdrawal
Tramadol From Mexico Bring Back
Tramadol Medicine
Valium Cheap Overseas
Vicodin Valium
Xanax Lsd
Abuse Help Online Xanax Xanax
Buy Pharmaceuticals Xanax
Xanax Children Dosage
Pain Medications Tramadol
Info On Valium
Cheap 2mg Xanax
Is Ambien Safe During Pregnancy
Ex Tramadol
Ambien Cr Facts
Ambien Overnight No Prescriptions India
Valium Producer
Off Weaning Xanax
Tramadol Gargle
Generic Ultram Tramadol 50 Mg
Cheap Propecia Tramadol
Generic Names For Valium
Tramadol Memory Loss
Headache Tramadol
Heart Health What Is Tramadol
Ambien Doral Information Online
Xanax Anxiety Relief Global Pharmacy
Pot And Tramadol
Buy Buy Mu Site User Xanax
Darvon Valium
Xanax Findlay Ohio
Tramadol And Half Life
Ambien Timeline
Tramadol 2bfor 2bdogs
Tramadol 58 93
Seratonin Syndrome Tramadol
Xanax Mylan 4
Tramadol Dose For Cats
Onset Time Of Oral Xanax
Tramadol Overnight Shipping
White Bar Xanax
Does Generic Ambien Work As Well
Cheapest Xanax Online
Roche Valium Overseas No Prescription
Xanax Affects
Natural Source Of Ambien
Zolpidem Compared To Ambien
Xanax Anonymous
Concerta With Xanax Side Effects
Pharmacy Ad Museum Valium
Xanax Opiate
Drug Interactions Celebrex Tramadol Cyclobenzaprine
Ambien Cr Mm
Hydrocodone App And Tramadol Hcl Compare
Paxil Tramadol
Mexican Ambien
Children Ambien
High On Xanax
Cheapest Valium
Subutex Mixed With Xanax
Free Online Valium
Ambien And Joint Pain
Dangers Of Mixing Subutex And Xanax


OpenWrt Gemini 0.2

Written on 29 March 2008 by

Paolo Scaffardi just released version 0.2 of his OpenWrt port for SL3516 based devices. The main change from the 0.1 release is that he switched to the OpenWrt trunk as base. The great benefit of this decision is that there are a lot more packages available (over 940 new packages). The pre-compiled firmware images worked without problems with my NAS4220 device. YMMV!


Webif^2 tutorial part 02

Written on 22 March 2008 by

Last time we created a simple “hello world” page. Not very useful. For our NAS box we need a way to input/select configuration data. Web interfaces implement user input using HTML forms. Webif^2 provides some features to make it easier to work with them.

The following example allows us to enter the name (text) and job description (selecting a predefined value) of the person you want to cheer. I start with my explanation at the end of the script.

script output

On the lines 11 to 21 we use the function display_form to create the output you can see in the screen shot. display_form is at its heart an AWK script. AWK works on a line by line basis so every line till the EOF marker will be processed on its own. Processing means that the lines are expanded into fragments that will make up the final form.

start_form/end_form are doing exactly what you expect them to do. What about line 13? display_form is not only generating a form, it also embeds the form elements together with other elements into a table. “field” will put the text following it into a cell of this table. Line 14 creates a drop down box. The following two lines add two options to this drop down box. By passing the value of the variable FORM_job we can preselect a particular option. This allows us to remember user input between script invocations (albeit only on the browser side).

The input field to enter the name is created on line 18. As the last step before finishing the form we add a submit button so we can send the form back to the server for processing (line 19). The action associated with the form will be the embedding page.

  1. #!/usr/bin/webif-page
  2. <?
  3. . /usr/lib/webif/webif.sh
  4.  
  5. header "Test" "Cheers" "Cheers" "$SCRIPT_NAME"
  6.  
  7. empty "$FORM_name" || empty "$FORM_job" || {
  8.         echo "cheers to $FORM_name the $FORM_job!</br>"
  9. }
  10.  
  11. display_form <<EOF
  12. start_form|Who is to be cheered?
  13. field|Job description
  14. select|job|$FORM_job
  15. option|Code Simian|Code simian
  16. option|Code Monkey|Code monkey
  17. field|Name
  18. text|name|$name
  19. submit|button_set_name|Set
  20. end_form
  21. EOF
  22.  
  23. footer
  24. ?>
  25.  
  26. <!–
  27. ##WEBIF:name:Test:50:Cheers
  28. –>

To wrap up this tutorial we now only have to do something with the data submitted through the form. On line 07 we check if $FORM_name or $FORM_job are empty. If both of them contain a value we display a customized greeting message.
Where do these variables come from? Haserl is parsing POST/GET requests and places form variables into the context of the script it currently exectues. The variables are always prefixed with “FORM_”.

This example wasn’t extensive of course. display_form provides a number of additional features to create radio buttons, check boxes, text areas, …. For a complete list you have to look up files/usr/lib/webif/form.awk.

The time we will extend this example to do some input validation.


Webif^2 tutorial part 01

Written on 21 March 2008 by

This article tries to explain how you can extend Webif^2 with your own functionality. I am myself new to Webif^2. The reason i am writing this article is to get acquainted enough with the code so i can decide if i would like to use it to create some NAS specific functionality.

Webif^2 runs on devices with some severe CPU and memory limits. Given that using one of the mainstream web development platforms was apparently off the table. Instead a combination of shell/awk and sed is used to generate dynamic content. Basically the way your father would have done it back in the days (given that there had been a web to develop for…) Having done some work with Ruby on Rails recently i am not too excited by this prospect but lets see how it goes.

My first goal is to have some pages which are displaying friendly greeting messages. These pages should be grouped into a new category in the main menu. I assume that you have checked out a copy of webif^2. All path references are relative to trunk/package/webif/.

Step1: Adding a new category.

files/www/cgi-bin/webif/.categories contains the entries of the main menu. We just add our entry here (”Test”).

  1. ##WEBIF:category:Info
  2. ##WEBIF:category:Graphs
  3. ##WEBIF:category:Status
  4. ##WEBIF:category:Log
  5. ##WEBIF:category:-
  6. ##WEBIF:category:System
  7. ##WEBIF:category:Network
  8. ##WEBIF:category:VPN
  9. ##WEBIF:category:Test
  10. ##WEBIF:category:-
  11. ##WEBIF:category:Logout

If you now reload your web browser you should see a new category “Test”. The next step will be to add content to this category.

Step2: Putting content into the new category.

I add the file test-hello.sh in files/www/cgi-bin/webif. The name of the file doesn’t matter but the convention seems to be to name it $(category)-$(name).sh.

  1. #!/usr/bin/webif-page
  2. <?
  3. . /usr/lib/webif/webif.sh
  4.  
  5. header "Test" "Hello" "@TR<<Hello>>" "$SCRIPT_NAME"
  6.  
  7. echo "hello openWrt"
  8.  
  9. footer ?>
  10.  
  11. <!–
  12. ##WEBIF:name:Test:0:Hello
  13. –>

Webif^2 uses an interpreter called Haserl. It will parse html files and execute the shell fragments it finds enclosed by <? … ?> (basically like it is done by php/jsp/…). The documentation for it can be found here.

The first line tells the linux kernel which interpreter to use when trying to execute this file (webif-page is the actual haserl program). The lines 02 to 09 contain the actual program that will generate our page. 03 pulls in webif.sh which is a library containing the functions we will use. 05 calls the header function (found in webif.sh). It will generate the html header, the head section of page and also the main- and sub-menu. $SCRIPT_NAME is set by haserl. On line 07 we say “hello” to openWrt. The only thing left now is to finish the page. To accomplish this we call the footer function (also found in webif.sh). This function will generate the content you see in the bottom section (”Apply Changes”, “Clear Changes”, …). It will also close the HTML document.

The last three lines contain a strange HTML comment. Lets have a closer look. When the main menu is generated webif^2 scans all files in files/www/cgi-bin/webif/ having the .sh extensions, looking for this special marker. The marker tells it to put an entry “Hello” into the category “Test”. The number can be used to allow a non-alphabetical ordering of the entries. The entry with the lowest number comes first. It will also be the page being selected by default of you click on the category.

So far so good. Next time we try to use some forms.


Webif^2 on a NAS box

Written on 21 March 2008 by

Webif^2 aka. X-Wrt is a kick ass web interface used on OpenWrt systems. I really like it but as the main focus of OpenWrt is routers and related devices it is missing a lot of functionality which would be needed for a NAS box. Still its a good starting point. It has all the basic functions you would also need for a NAS box. Another point to consider is that most NAS devices have USB so they can be very easily turned into an access point or router where all this standard Webif^2 features would be very handy.


Up and running!

Written on 13 March 2008 by

I managed to build and install the 0.1 release of OpenWrt for SL3516 based devices. It needed some small tweaks to make it compile but nothing too serious. The only pitfall was that you need to change the gcc version from 4.2 (pre-selected) to 4.1.2. If you don’t do this there will be no init process at the and of the kernel boot. There is something wrong with the toolchain. The produced kernels are fine but the userspace programs are not working. Thanks to Paolo Scaffardi for the hint.

BusyBox v1.4.2 (2008-03-13 22:32:26 CET) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 KAMIKAZE (7.09) -----------------------------------
  * 10 oz Vodka       Shake well with ice and strain
  * 10 oz Triple sec  mixture into 10 shot glasses.
  * 10 oz lime juice  Salute!
 ---------------------------------------------------
root@OpenWrt:/# uname -a
Linux OpenWrt 2.6.15 #2 Tue Mar 11 22:54:29 CET 2008 armv4l unknown
root@OpenWrt:/#


Crippled Redboot

Written on 12 March 2008 by

From working with evaluation boards for the intel ixp4xx and ixp24xx i have some previous experience with Redboot and i always liked its power and flexibility. Given this i really don’t like the Redboot found on the NAS-4220 (and other SL351x based systems). It has been stripped of a lot of functionality i came to expect. StormLink, the vendor of the SL351x SOC, who also created the software distribution running on nearly all of these systems, has for instance removed the whole set of commands used to manipulate the internal flash (fis_*). These commands have been replaced with some simple pre-canned choices. I guess the idea behind this was to make future software upgrades easier for them because all manufactures using their SOC and software can be expected to have the same flash layout?

[ Update: I have been wrong on this one. You can actually delete and create new flash partitions through the menu system… ]


dm_crypt on the NAS-4220

Written on 11 March 2008 by

According to Harald Welte who had a look at the GPL sources released by RaidSonic, the hardware crypto acceleration is not integrated with dm_crypt. It supports only the older and now deprecated crypto loop system. That is bad news. Getting this done might prove to be some work.


OpenWrt for SL3516 based devices

Written on 11 March 2008 by

I was not the only one who thought that OpenWrt might be a good choice to create a better firmware image for the NAS-4220. This guy has already started a port based on the Kamikaze branch (OpenWrt stable). The project is in an early stage but i will give it a spin anyway.


OpenWrt

Written on 10 March 2008 by

I’ve been wondering which system to use for building a custom firmware for the NAS-4220. I’ve worked with ptxdist and buildroot in the past so i was inclined to simply use buildroot. On the other hand i have heard a lot of good stuff about the OpenWrt project. It was originally started to provide custom linux firmwares for the Netgear WRT54 devices but has expanded into other areas in the recent years. After reading these slides from FOSDEM08 and having a first look at the code i guess i will give OpenWrt a shot.


Next Page »