OpenSourceWaffeln

From Chaos Communication Camp 2007

Jump to: navigation, search

Contents

[edit] OpenSourceWaffeln

Bei diesem Projekt geht es darum das ich (Elch) der OpenSource community etwas zurück geben möchte. Da ich selber aber nicht programmieren kann dachte ich mir, dass OpenSource und Freeware Waffeln genau das richtige sind.

[edit] Variables

Deutsch English
Menge Zutat Ammount Incredient
500 g Mehl 500 g Flour
300 g Butter 300 g Butter
250 g Zucker 250 g Sugar
16 g
(2 Pck.)
Vanillezucker 16 g
(2 Pck.)
vanilla sugar
2 g
(1 Prise)
Salz 2 g
(1 dash)
salt
150 g
(3 Stk.)
Ei(er) 150 g
(3 pieces)
egg(s)
400 g
(400 ml)
Milch 400 g
(400 ml)
milk

Note: There are different Egg sizes. See Wikipedia for further reference.

[edit] Options

Es gibt einige verschiedene Optionen die man zu seiner Waffel hinzufügen kann. Diese hängen allerdings von der lokalen Verfügbarkeit ab und werden vor Ort aushängen.

-p Puderzucker
-n Nutella
-b Blaubeeren | not available
-k Kirschen | not available
-s Sahne
-a Apfelmus | not available
-z Zimt

[edit] Suggested Features

-v vegan: s/milk/soy drink/g | s/butter/marge/g | s/eggs//g

For compatibility reasons. Just as tasty, but executable on more systems with dietary preferences.

Notice from Autor: Not in this version

-m mate: s/milk/club-mate/g

For experimental caffeine powered systems.

Doesnt work

[edit] Code

RELEASE NOTES
  • ALPHA RELEASE: do not use for production environment!
  • KNOWN BUGS:
    • does not support arguments yet
    • missing incredient preparation
  • POSSIBLE BUGS:
    • everything in right order?
    • are egg yolks added all at once or one after the other while mixing?
  • LICENSE:
    • released into Public Domain
void Main(String [] args)
{
   #region Prepare Incredients
   // TODO
   #endregion 
   
   #region Prepare Requisites
   Bowl bowl1, bowl2; 
   Pan pan = new Pan(); // HACK: if there is no pan, use the Waffle compiler
   Whisk whisk = new Whisk(); 
   Putty putty = new Putty();
   WaffleIron compiler = new WaffleIron();
   
   bowl1 = new Bowl();
   
   // WARNING: bowl for Eggwhite should be made off copper
   // on copper the fat don't clings so much
   // try to avoid plastic bowls if possible
   bowl2 = new Bowl();
   #endregion
   
   foreach(Egg egg in Eggs)
   {
      // NOTE: use a knife, the rand of the bowl, or some other hard&sharp tool
      egg.Brake(Middle); 
   
      // NOTE: separete the egg yolk and egg white 
      // by giving the yolk from one egg-half to the other and back
      bowl1.Insert(egg.Yolk); // Dotter
      bowl2.Insert(egg.White); // Eiklar
      egg.Flat.Dispose();
   }
   
   // HACK: if there is only one Whisk, then first execute t1 and then t2
   // If you don't (by accident) then you need to clean the whisk from fat. 
   // Yolk in the egg white would avoid the creation of good foam. 
   Thread t1 = new Thread( Task_CreateEggWhiteFoam (ref bowl2) );   
   Thread t2 = new Thread( Task_CreateEggYolkFoam (ref bowl1) );
   Thread t3 = new Thread( Task_MeltButter (ref pan1) );
   t1.Execute();
   t2.Execute();
   t3.Execute();
   Thread.WaitAll(t1, t2, t3}; // wait till the bowls are finished mixed and butter melted
   
   // HACK: give some of the butter on the waffle iron (if not already)
   // You can use a brush for that. With the butter on it, 
   // the paste will stick less on the iron. 
   // TODO: check if butter is in right order
   bowl1.Insert(bowl2.Content); // add egg white
   bowl1.Insert(pan.Content); // add butter; much fat
   
   // WARNING: do not use the whisk here  
   // Because the egg white foam and the egg yolk form have different densities
   // they wouldn't distribute well. Use the putty to under-lift the bottom mass up
   // until the mixture is well mixed. 
   bowl1.Mix(putty); 
   
   // HACK: if you want the waffles crusty, use a temperature of 200°C (392°F)
   // HACK: if you want the waffles more soft, use a tempearature of 160°C (320°F)
   compiler.SetTemperature(453.15); // 453.15K = 180°C = 356°F
   compiler.Insert(bowl1.Content); 
   
   // NOTE: because of the riffles, the waffles have a very big surface
   // compared to their volume. Therefore the paste will be finished much 
   // faster than a cake, where the overall shape is more cylindric. 
   Thread.Wait(150000); // 2-3 minutes
   
   Waffle waffle = compiler.Content;
   
   case(waffle.Look)
   {
       good:
          Waffle.Eat();
          return;
       bad:
          Waffle.Dispose(); 
          SendBugReport();
          return;
   }
}
void Task_MeltButter(ref Pan pan)
{
   pan.Insert(butter);
   pan.Heat();
   // Thermodynamic heat will now melt the butter
   // WARNING: no themolysis should occur
   // NOTE: the optimal melting temparture is at about 60-70°C
   // avoid overheating. Also, if its kept to long on this tempearature, 
   // the butter separates its caseine. 
   while(!Butter.IsMelt){continue;}
}
void Task_CreateEggWhiteFoam(Bowl bowl)
{
   // NOTE: the mass is ready when you turn bowl around and it don't comes out
   // WARNING: do not mix it to less 
   // WARNING: do not mix it more then needed 
   // The proteines in the egg have a hydrophil and a hydrophob end. 
   // The sticky end will bound to the water, while the not sticky end will 
   // bound to the air. If you mix it, the air bubbles are getting devided and 
   // become smaller and the foam becomes stronger. 
   // HACK: add a very little ammount of vinegear or lemon (or similar acid)
   // to improve the bindings of the molecules so that the foam becomes finished faster
   while(!bowl.Content.IsFluffy)
   {
      bowl.Mix(Whisk); 
   }
}
void Task_CreateEggYolkFoam(ref Bowl bowl)
{
   bowl1.Insert(Sugar); // gives electrons while burning
   bowl1.Insert(Milk); // proteines
   bowl1.Insert(Salt); // used for osmosis processes
   bowl1.Insert(VanillaSugar); // aromates
   
   while(!bowl1.Content.IsFoamy){ bowl1.Mix(Whisk); }
   
   // NOTE: The flour serves here for the connection the paste 
   // with the help of contained strength. The water contained 
   // in the mass penetrates between the strengt-grains and 
   // connects the grains by capillary attraction. The water 
   // takes some time to penetrate by the capillary effect, 
   // so the mass should rest a short time. 
   // During baking, the water will vaporize and the strength will 
   // get sticky. The strength-grains clue together. 
   // HACK: By the addition of melted butter, the paste 
   // becomes tougher and more flexible, since the clue can't connect
   // in the places the butter is. After baking the paste becomes 
   // instable. After the cooling of the butter, the butter 
   // builds a creamy connection. 
   bowl1.Insert(Flour); // carbonhydrates
   
   // HACK: Insert backing powder
   // With the baking powder, carbon dioxide gets produced during baking, 
   // results in loosen the paste up together with the air.
   
   while(!bowl1.Content.IsFoamy) { bowl1.Mix(Whisk); }
   
   // NOTE: liquid butter is added right after this 
   // but it is still melting within the pan... 
}

[edit] Compilers

stable
stable
experimental (from [1], with kindly permission)
experimental
(from [1], with kindly permission)

[edit] Bugreport

beta and rc1 | rc2 were very good a bug appeard because there weren't enough plates for the compiled waffels → DO1LNA

[edit] Doku

Waffeln - You Tube Video vom Chaos Communication Camp 2007

[edit] Weblinks

Personal tools