text:
Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
ATL/Developer Guide
This documentation aims at contributing to improve the comprehension of the ATL source code.
ATL Source Code
Plug-ins organization
Below is the list of the ATL plugins:
- ATL Core: provides APIs to launch and extend ATL
- org.eclipse.m2m.atl.common: provide common utilities
- org.eclipse.m2m.atl.core: defines the ATL Core API (launching, model handling)
- org.eclipse.m2m.atl.core.emf: EMF implementation of the Core API
- org.eclipse.m2m.atl.core.ui.vm: defines a wrapper which allow to launch the ATL Regular VM using the Core API
- org.eclipse.m2m.atl.core.ant: provides the ATL ant tasks, based on the Core API
- ADT (ATL Development Tools): Eclipse integration plugins:
- org.eclipse.m2m.atl.core.ui: provides the ATL launch configuration, based on the Core API
- org.eclipse.m2m.atl.adt: provides ATL nature and builder
- org.eclipse.m2m.atl.adt.ui: provides ATL perspective and wizards (new file, new project)
- org.eclipse.m2m.atl.adt.debug: the ATL Regular VM debugger
- org.eclipse.m2m.atl.adt.editor: the ATL textual editor
- ATL Parser and Compiler:
- org.eclipse.m2m.atl.dsls: provides the syntaxic/semantic definition of ATL and ACG
- org.eclipse.m2m.atl.engine: provides ATL compiling and parsing utilities
- ATL Virtual Machines:
- org.eclipse.m2m.atl.engine.emfvm: the ATL EMF-specific VM
- org.eclipse.m2m.atl.engine.vm: the ATL Regular VM, using model handlers:
- org.eclipse.m2m.atl.drivers.emf4atl: the ATL Regular VM model handler for EMF
- org.eclipse.m2m.atl.drivers.uml24atl: the ATL Regular VM model handler for UML2
External dependencies
Historically, ATL imports two libraries : ANTLR version 2 and MDR. Those libraries are not authorized in Eclipse because of their non-compliance with the Eclipse IP policy. Consequently, ATL imposes users to download those libraries by themselves and install them into Eclipse plugin folder.
Today, ATL dependencies have been strongly reduced : ATL only needs ANTLR-runtime (version 3) library, which is compliant with the Eclipse IP policy and included into ATL source code. The MDR library is only necessary for the MDR Model Handler. According to the fact that most of people uses EMF Model Handler (which seems to be more powerful), MDR Model Handler has been separated into a single feature, which is not natively required for ATL.
TCS (Textual Concrete Syntax), a tool for parsing and extraction, is used to generate some ATL components (e.g. ATL-Parser). Unlike ATL, TCS uses both ANTLR library, in version 2 and newly in version 3. TCS is available on GMT. ATL doesn't have any dependency with TCS. Specific injectors depend on ANTLR too.
Install ATL from git
ATL source code is hosted on git.
MDR installation (Regular VM only)
Some external libraries are required for the plug-in org.eclipse.m2m.atl.drivers.mdr4atl but not available on the CVS repository. You need to download the jar files into the lib/ directory of this project.
Download mdr-standalone.zip from http://mdr.netbeans.org/download/ and put the included jar files into lib/ of plugin org.eclipse.m2m.atl.drivers.mdr4atl.
Note that mdr-standalone.zip is updated more often on the MDR website than in our development source. As a consequence, bugs may appear when using the last-in-date mdr-standalone version of MDR.
When you have finished this operation, there is normally no error left.
WARNING: The MDR model handler is no more maintained, so it may need to be fixed.
ATL is ready to be tested. There are two ways to use it:
- In the "Plug-in Development perspective", you can launch a Run-time workbench (Click on Run -> Run as -> Run-time workbench).
- You can install ATL in your copy of Eclipse. Go in the Plug-in perspective and select all the plug-in projects. In the context menu choose Export -> Deployable Plug-ins and Fragments.
In the screen Export Plug-ins and Fragments, check if all the projects are selected and choose the output folder.
Now you need to close Eclipse. Enter the "eclipse" directory (which contains plug-ins and features directories) then copy the created Jar files into the "plugins" directory. After that you can restart Eclipse.
ATL Architecture
The ATL architecture consists on:
- a Core, which describes ATL concepts in an abstract way
- a Parser and a Compiler
- Virtual Machines, allowing to execute transformations
- an IDE: editor, debugger, perspective, all based on previous components
The following schema describes ATL components and their role during the execution of a transformation.
ATL VM is intercalated between the ATL compiler and the used frameworks (EMF, MDR), allowing modularity. Consequently, changes on ATL Language only involve ATL compiler.
Core API
This schema describes the ATL Core API and how it interacts with tools like LaunchConfigurations, Ant tasks.
- An IModel is an adapted representation of a model, suitable for ATL transformations. It provides methods to lookup elements, create new ones, etc...
- The IReferenceModel interface extends the IModel one, and is a specific version of an IModel which symbolizes metamodels. It defines metamodel-specific operations which are useful for ATL transformations
- The ModelFactory is dedicated for model and reference model creation
- The IInjector, IExtractor interfaces provide a way to load and save models previously created by the modelFactory
- The ILauncher interface is dedicated to be implemented by ATL virtual machines: it defines methods to parametrize and launch a transformation
To simplify the use of ATL Core and reduce code duplication, two services are provided: CoreService and LauncherService.
This utility class provide a way to lookup into eclipse extensions, or an internal storage, for Core implementations. Those implementations can be registered into the CoreService for a standalone use. For instance, here we register the extensions needed to launch a transformation using EMF-specific VM, in standalone:
CoreService.registerLauncher(new EMFVMLauncher()); CoreService.registerFactory("EMF", EMFModelFactory.class); CoreService.registerExtractor("EMF", new EMFExtractor()); CoreService.registerInjector("EMF", new EMFInjector());
The launcher service allows to launch a transformation from a set of parameters like maps of path and maps of model names: this is strongly related to launch configurations and ant tasks as it allows to launch the transformation on any virtual machine.
EMF interactions
The main implementation of the ATL Core is the EMF one, which is used by ATL itself for parsing and compilation. It is defined under the org.eclipse.m2m.atl.core.emf plugin.
Here is an explanation about the use ATL EMF-specific injector/extractor. For both, we use the EMF notation to select Resources:
Resource Type | ATL EMF API Syntax | Example |
File system Resource | file:/<path> | file:/D:/eclipse/workspace/mmproject/sample_metamodel.ecore |
EMF uri | <uri> | http://www.eclipse.org/uml2/2.1.0/UML |
pathmap | pathmap:<path> | pathmap://PROFILE/sample_profile.uml#_0 |
Workspace Resource | platform:/resource/<path> | platform:/resource/mmproject/sample_metamodel.ecore |
Plug-in Resource | platform:/plugin/<path> | platform:/plugin/mmproject/sample_metamodel.ecore |
Here is an example of usage:
ModelFactory factory = CoreService.createModelFactory("EMF"); IReferenceModel umlMetamodel = factory.newReferenceModel(); injector.inject(umlMetamodel, "http://www.eclipse.org/uml2/2.1.0/UML");
According to the previous table, you can use another notation to load the model:
injector.inject(sampleMetamodel, "file:/D:/eclipse/workspace/mmproject/sample_metamodel.ecore");
Examples of use (run ATL transformations in Java)
- This very simple RunTransfoJava program shows how to run ATL transformations programmatically, including the loading (injection) and saving (extraction) of corresponding required metamodels and models.
- The ATL launch configuration delegate and the ATL non-regression test are examples of launching using the Launcher Service.
- The public2private example (UI part) shows how to directly use the Core
ATL Virtual Machine
The ATL VM is a byte code interpreter which manages OCL and ATL types hierarchy. A complete ATL VM specification is available : ATL_VMSpecification. This specification consists on a precise description of the ATL VM functionalities, but doesn't describe the implementation. The intent is to allow any developer to create an ATL VM in any language. The Native Library (org.eclipse.m2m.atl.engine.vm.nativelib package) gathers all basic type definitions used by the ATL VM : OCL types and ATL specific types. Both are defined at the same level, and use reflexion. OCL appears at several levels in the ATL architecture :
- nativelib implementation
- OCL package in the ATL, ACG and TCS metamodels
The following schema shows the ATL VM working:
During ATL VM initialization, every operations are registered into a Map. The ExecEnv Class contains the virtual execution environment. It deals with the operation map which registers all operations used by the transformation. It contains every information used by a given execution, like models, and is recreated for each execution. Operations are executed sequentially, into frames, according to their type. For instance, in ATL, a call of the append() method is directly mapped to a call to the corresponding method in the ASMSequence class.
The Frame stores and throws all error messages. The ASMStackFrame is dedicated to ASM methods, when the StackFrame is dedicated to native methods. Execution errors come from ATL VM when the method Frame.printstacktrace is called.
At this time there are two implementations of the ATL VM.
Regular VM
The Regular VM is the first version of the ATL Virtual Machine. The implementation is abstracted from the used model management framework, using model handlers. Model Handlers consists on an abstraction layer dedicated to model access. This access is implemented by two classes : ASMModel et ASMModelElement.
ATL contains three plugins drivers corresponding to different Model Handlers : EMF, MDR, UML2. Each plugin implements those abstract classes :
- AtlModelHandler : implementation of the basic tasks "newModel", "saveModel", "loadModel"
- ASMModel : getElementsByType implementation, framework oriented "newModelElement" method, etc...
- ASMModelElement : "allInstances" implementation, etc...
Input and output models are loaded using the same API and are differenciated with an "isTarget" property. That API implements the "getMetaElementsByName" method which correspond to the "findme" ASM instruction.
This VM implementation is still used in ATL, because it is strongly linked to several parts. But the Regular VM has a lot of performance issues, especially because of the model handler architecture.
EMF-specific VM
The EMF-specific VM is a redefinition of the Regular one, which resolves a lot of performance issues by avoiding EObjects wrapping. Its API allow to consider EMF Resources directly as models, without complex loading as done previously in the Regular VM.
ASM format
ASM language is a kind of assembly language, adapted to model handling. The low level of ASM allows modularity facilities, with the intent to provide easier model management possibilities. The current file format for ASM is XML. Thus it allows not to care about any syntax and to only focus on bytecode. An ASM file only contains names and string constants. No Ecore reference is present. Those are resolved by launch configurations and AMMA Megamodel, with a name binding.
ASM transformations are serialized in a way to increase performance and preempt further serializations like binary files. The ASMXMLWriter class is an ASM extractor used to save ASM into a file. Serialization computes the constant pool, which factorizes constants, values and method calls by generating an ordered constants list at the top of the ASM file. ASMWriter is the parent abstract class which allows a binary implementation of ASM injection and extraction.
All instructions are explained into ATL VM specification. Here are details about some of them:
- The getasm instruction retrieves the ATL Context Module, i.e. The "thisModule" equivalent for ATL.
- N symbolizes a native type, ATL specific
- TransientLink are traceability links
- all functions like "getLinkBySourceElement" are implemented in the nativelib
- Object creation :
- The "new" instruction takes two parameters : the metamodel name and the classifier type. Then it creates an element of this type in the output model (only one is allowed). The parameters are not available in the bytecode because they are pushed on the stack before calling instruction.
- We can notice that ATL allows only one output model, but the ATL VM could be extended two allow many others.
- A delete instruction could be implemented in the ATL VM
- ATL provides the newInstance method which is directly mapped to the Model Handler method. This method doesn't generates a new because the call is dynamic. The main advantage is that the newInstance is directly applied to the class and do not use the ATL VM stack for that (otherwise it should store the class element).
ATL parsing is done using a parser defined in TCS, which outputs an ATL model conforming to the ATL metamodel. Then, an ATL-WFR transformation (interpreted by the engine) generates a problem model. This model produces errors interpreted by the editor and translated into markers, visible on the ATL file on each compilation.
To manually parse (or extract) ATL files, see the ATLParser class.
Note that as ATL parser implements IInjector and IExtractor interfaces, it can be use in ATL ant tasks to parse or extract atl files (just specify "ATL" as injector/extractor name).
Two versions of the ATL compiler are available : 2004 and 2006. The 2006 version of ATL compiler uses ACG. The 2004 version uses ATP, the historical ACG predecessor.
To manually compile ATL files, see the AtlDefaultCompiler class.
ACG (ATL VM Code Generator)
ACG is a compiler-oriented DSL, which intends to make easier to create a compiler targeting the ATL VM. A compiler described with ACG generates ASM files and contains a description of ASM instructions to generate for each type of input elements, coming from a compiled file. Therefore the input of this kind of compiler is a model describing the content of a compiled file (for instance, an ATL file).
An ACG file, when compiled, looks through the input model using a visitor design pattern. ACG is bootstrapped : an ACG.acg file exists and describes the ACG compiler. Since an ACG file describes precisely ASM instructions, the ACG.acg file is rather trivial.
A complete ACG documentation is available.
The following schema places ACG in the AMMA platform.
ATL Bugzilla
Here is a link to query the ATL bugzilla for opened bugs.
- To report a new bug about a specific ATL component, please use the table below:
- To contribute something to ATL, use the ATL-Contribution component.
- To report a bug about ATL documentation, use the ATL-Doc component.
- To report a bug about ATL website, use the ATL-Website component.


text:
Wednesday, November 19, 2008
Undeserving of Congrats
Wednesday, November 19, 2008
On the other end of the spectrum, all they asked for here was "congratulations". Unfortunately the decorator took that to be plural...
Aaand much hilarity ensued.
Melanie U. and Wedge C., er, well done.
76 comments | Post a Comment
- The Courteous Chihuahua said...
On the first cake, I think they might be better off with what they got. It would be a crap shoot to see if the decorator could correctly spell Congratulations three times in a row.
- November 19, 2008 at 9:36 AM
- Lauren said...
First? First? First?
Three times!
How could one mistake "congratulations" for plural "congratulation"? >_<
Lauren - November 19, 2008 at 9:38 AM
- Libby said...
What I have learned from Cakewrecks: always order cakes in person and write down exactly what you want it to say on a piece of paper and give it to them. Another thing I learned from Cakewrecks: There are cake decorators out there who would still screw it up.
- November 19, 2008 at 9:41 AM
- Boozy Tooth said...
Well, I'd say three times is a charm, but...
There is just no excuse for the second cake. I used to think such stupidity didn't exist in the world, but Jen proves everyday that 1) IT DOES! and 2) It is a lucrative business.
Alixandra Hice
http://casahice.blogspot.com - November 19, 2008 at 9:41 AM
- Unknown said...
LOL. I guess this goes to show... never take anything for granted when asking for your cake caption. At least they got to laugh about it!
- November 19, 2008 at 9:42 AM
- Matt said...
I'm really dismayed by the second cake. I don't know whether to be more disappointed by the words or the design.
- November 19, 2008 at 9:46 AM
Are we sure it's not supposed to read "Congratulations Times Three"? That would make more sense.
- November 19, 2008 at 9:48 AM
- Errick said...
When I saw those, I couldn't help thinking of those old console games where you got "Congraturation!" for winning. And that in turn made me think of Strong Bad, so everything's good.
- November 19, 2008 at 9:50 AM
- Caitie Miller said...
I am absolutely amazed at how difficult it appears to write in a straight line. It just amazes me how crooked everything is.
- November 19, 2008 at 9:50 AM
- Kristin said...
What is up with the black? Who wants black decorations on a cake. Spelling congratulations would be a great way to start.
- November 19, 2008 at 9:54 AM
- UnitOfForce said...
What's with the black frosting? "Congratulations on your death!" Come on.
And what have we learned today children? That's RIGHT! NEVER order a cake over the phone. - November 19, 2008 at 9:55 AM
- maryjack said...
I love your blog! I just introduced my daughter to Cake Wrecks yesterday, and let me tell you, we laughed ourselves to tears! What really makes it hilarious is your commentary. Your brand of humor is very similar to our own. It's amazing that these "wrecks" happen so often! If only everyone read your blog!
- November 19, 2008 at 9:55 AM
And are those three blobs on either side of the writing supposed to be the three fertilized eggs? Because, that's what they make me think of.
That second cake is just fugly. - November 19, 2008 at 9:55 AM
- Unknown said...
- November 19, 2008 at 9:56 AM
Are those supposed to be ceremonial sperm on the first cake?
Wrong on all levels. Just plain wrong. - November 19, 2008 at 10:02 AM
- HorribleLicensePlates said...
Jeez, that first cake is a choking hazard!
- November 19, 2008 at 10:04 AM
- Angie McCullagh said...
Holy Cow, there are some literal cake decorators out there on auto pilot.
Angie (from over at www.HalfAssedKitchen.com) - November 19, 2008 at 10:05 AM
- Unknown said...
In response to judas_iscariot_79 "Another thing I learned from Cakewrecks: There are cake decorators out there who would still screw it up."
What I have learned from cakewrecks is that many people who are being paid to be cake decorators are not in fact cake decorators. Thank God the screening process for, jobs like ,..... oh say,....BOMB DISABLER, or you know, the like...appears to be a little more thorough. - November 19, 2008 at 10:08 AM
That second cake...my first thought was, "Are these decorators really that stupid?" then I realized that "Big Box" decorators get $8 an hour and don't care!!
- November 19, 2008 at 10:09 AM
- Eternal Lizdom said...
The second one is now one of my new faves... not only for the duplicate "congratulation" but also for the crappy icing work in general!
http://eternallizdom.blogspot.com - November 19, 2008 at 10:10 AM
- Boozy Tooth said...
HIGH FIVES to Anonymous at 10:02 for ceremonial sperm. Genius is born on this site all day long.
- November 19, 2008 at 10:13 AM
- joyce said...
Too funny ! Congratulations three times means six balloons?? Is that symmetry math?? And I don't think it is black icing. Looks more like dark chocolate syrup. Our Scrabble dictionary allows CONGRATS or CONGRATULATIONS. No such word without the S. Too, too funny. Wonder what we are celebrating.
- November 19, 2008 at 10:15 AM
- ~ Rebecca Harbison said...
One of the local high schools when I was growing up had black and white as colors -- a graduation cake might well have been black and white.
(At least you can kind of pretend 'Congratulations Three Times!' was intentional, as opposed to some of the other overly literal inscriptions.) - November 19, 2008 at 10:19 AM
- Hyena Overlord said...
I think even if you drew some decorators a picture they'd screw it up. I have a secret fantasy about being a decorator and making screwed up cakes so that someone will send them to cake wrecks.
wfcotd: kylatic: is a form of seizure that occurs after eating too much black icing. "The grannies went into kylatic seizures after eating my Fathers birthday cake last year." - November 19, 2008 at 10:27 AM
- Sondra! said...
Oh my! Thank the Lord for my local bakery.
What could you be "congratulation" about with black icing?
This site makes me feel soooo smart. It is really good for your self esteem. - November 19, 2008 at 10:29 AM
Blech to the second - black frosting, ew!
- November 19, 2008 at 10:35 AM
- Savannah said...
I love your website! Last year for Christmas I made a Christmas tree cake by layering a cake in smaller squares. It was about 7 layers. I put a few wooden skewers in the center to hold it together. We traveled 30 miles to my mom's house with it on my lap. I had frosting all over my coat and my hands trying to keep it together. We set it up on the counter and then went outside for family pictures. When we came back in the cake and tipped over and fallen on the floor! I was devastated. Sorry no pic, but I am trying to laugh about it now.
- November 19, 2008 at 10:35 AM
- Kami said...
There needs to be some kind of official Cake Decoration Union that requires that all cake decorators comprehend English before they're allowed to write on cakes. =p
- November 19, 2008 at 10:36 AM
- Sara said...
Has anyone else ever noticed the directly proportional relationship between handwriting neatness and message fallacy? The messier the handwriting, the higher your chances that your message will be screwed up.
- November 19, 2008 at 10:41 AM
I don't know, I may be severely whacked out but I find the Congratulation, Congratulation inscription oddly charming.
Yes, it looks like hell. Yes, that black frosting is going to look unappetizing going in and ungodly coming out. Yes, that is a complete wreck of a cake. But there's something about the inscription itself that reminds me of those homemade cards I gave my parents before I learned to spell that makes me go 'awww' at the same time.
Speak not of spotty, bored, untrained young people marking time doing a job they hate for nearly nothing so they can have a little cash in their pockets to buy the latest first-person shooter game and a bit of weed. I prefer to think that somewhere in the back is a sincere - if slightly...okay, hugely inept - person who put heart and soul into producing something that sad for someone's party.
No, I'm not tearing up. There's just something in my eye. - November 19, 2008 at 11:05 AM
Well, come on, if they actually had to write "congratulations" 3 times on that first cake, they would have had to, like, space it properly! Can't you see there's not room for "congratulations" on the next line down? :p
- November 19, 2008 at 11:40 AM
I don't wish to impugn an entire profession but... why is the cake decorating field so heavily populated by idiots who cannot grasp seemingly the most basic of instructions and concepts?
Can anyone representing the professional cake decorating industry answer this? Are you surrounded by sugar- and flour-encrusted dolts? Do the hiring requirements stop at a single working thumb?
This site, while entertaining, truly makes me weep for the future. No Child Left Behind Three Times! - November 19, 2008 at 11:46 AM
- Unknown said...
How about 'Triple Congratulations?" Maybe it would've been easier on the decorator.
Actually, I wonder why the congratulation congratulation cake is black..again?
~Amy B. - November 19, 2008 at 11:53 AM
- Miss Cee said...
OMG...silly friends...who does that??
- November 19, 2008 at 12:29 PM
- W said...
In the second cake's defense, that's not black, it's brown (it was chocolate icing on an ice cream cake) and it was delicious.
But there was NO excuse for the writing..... - November 19, 2008 at 12:46 PM
- MaryO said...
I especially love the comments by Kamity, Sara and Twistie. Man, their insights were GREAT! Especially Twistie:
"Speak not of spotty, bored, untrained young people marking time doing a job they hate for nearly nothing so they can have a little cash in their pockets to buy the latest first-person shooter game and a bit of weed"
BRILLANT & HILARIOUS & probably MUCH closer to the truth than we think!
This blog makes my day! - November 19, 2008 at 1:21 PM
- *~*Lis*~* said...
The scary part is that these people actually had to get in their car and drive to work - which means we're out on the road with these people all the time! Yikes!!!
- November 19, 2008 at 1:33 PM
- Alison said...
I may be reaching here, but I have a suspicion that a great many of these "literal" cakes are decorated by non-English speaking immigrants. Something about the handwriting on some of them make me think of Asian women trying desperately to do the best job they can, for a crappy hourly paycheck, in a culture and language they barely grasp.
Which doesn't make the results any less wrecktastic, but does make me feel some pity for the decorators. Unless I'm wrong, in which case, they're just ijits. - November 19, 2008 at 2:04 PM
Despite the error, I think the first cake actually works as worded.
The second cake is just bad all around. - November 19, 2008 at 2:13 PM
Congratulations. Three times. That, that, that. Another Winner. Woo-Hoo.
- November 19, 2008 at 2:13 PM
Seriously, how are people like this in business? And how do people find them and actually order cakes from them? The mind, it boggles.
- November 19, 2008 at 2:19 PM
- Aviatrix said...
I think they should be pleased with what the got. Congratulations is spelled correctly and the balloons are not penises. Although, as has been pointed out, they may be sperm or fertilized eggs.
My captcha is premorky, the state of something before someone morks it, e.g. by writing 'congertuladins' on it in black icing. - November 19, 2008 at 2:26 PM
I too think the first cake still worked out okay.
But hey, congratulation to the mom-to-be! - November 19, 2008 at 2:26 PM
- kikibibi said...
How sad. Hilarious, yes. But sad, too. kk
- November 19, 2008 at 2:31 PM
- kikibibi said...
I averted a real cake wreck on Saturday. My friend was hosting a surprise 50th for her husband. She asked me to pick up the cake "at 5:10pm" which to me of course meant pick it up on the way to the party at 7pm. I got to the store and the (high-school aged, smoking while talking on his cell phone) clerk opened the walk-in cooler and said "we don't have it. It's probably at the other stop-n-shop. Did you check there first?"
No, of course I didn't go there first, you dumb***. I ended up needing to call my friend, and her husband answered, and I ALMOST ruined the surprise!
Silly boy, at my insistence, checked ALL the walkins in the bakery area and, of course, found it!
The cake was beautiful, by the way, and tasty too!
I believe at 5:10pm the actual decorator would still have been onsite. Live and learn I guess. - November 19, 2008 at 2:48 PM
Pretty crummy penmanship too.
The Blue Ridge Gal - November 19, 2008 at 2:53 PM
- www.AForestFrolic.typepad.com said...
"Some people jus ain't got no sense!" Haha, okay I don't really talk like that but that's the first thing that came to mind when seeing these pics :-)
- November 19, 2008 at 2:58 PM
- jackie31337 said...
Wedge said In the second cake's defense, that's not black, it's brown (it was chocolate icing on an ice cream cake) and it was delicious.
That actually explains a lot. Whoever made that was getting paid a low hourly wage to scoop ice cream, and occasionally scribble on cakes, and probably had no training in cake decorating whatsoever. - November 19, 2008 at 3:19 PM
- Unknown said...
To: "Stun bunny" - Okay here's the real industry answer to your question. I am a journeyman baker and a 30 year veteran cake decorator. Somewhere around 10 years ago the entire baking industry changed. All products in the major grocery bakery field became either pre-mix, premade or frozen product. So to put it all quite simply, the "Trade" part of it all died. You can hire anyone green off the street to place a frozen product on a pan and shove it in the oven. And so that is exactly what the industry has done. The got rid of, bought out, or fazed out all their experienced baking staff and started hiring...yep...pretty much anyone with a pulse at minimum wage. All of this of course included the cake decorators. All those eager faces that said....oooooh...I'd like to try that...finally got their chance. Did they have any experience? Nope. Any talent? Nope. Any ambition to make something of quality? Nope. So what did they have????? The willingness to work for minimum wage...oh and as I mentioned earlier....a pulse! Bottom line is that if you want a quality cake now you need to seek out those that left that field and are now working privately like, ....ahem,...ME! :D
- November 19, 2008 at 3:34 PM
I can't believe how dumb some of these cake makers are... Amelia Bedelia anyone?
- November 19, 2008 at 3:39 PM
My gosh. Do people not have any pride in ANYTHING they do? Or are people really that stupid?
- November 19, 2008 at 3:41 PM
- Suzyhomemaker said...
I find it funny that the second cake is a congratulations cake and it's black bordered and writing and such... it's just... so... funeral like.
- November 19, 2008 at 3:46 PM
- Grandma J said...
There are so many of these cake wrecks that come out of "in-store" bakeries, that as a former grocery store cake decorator, I am thoroughly embarrassed for them! No one that stupid should EVER be hired to be a decorator. Not that I have never made a mistake, but even if I had written, "Congratulations three times", the script would have at least been centered and written straight across, and in much better hand-writing than this one!
- November 19, 2008 at 3:55 PM
I am a professional grocery store cake decorator. I am writing in response to stunbunnys questions: "Can anyone representing the professional cake decorating industry answer this? Are you surrounded by sugar- and flour-encrusted dolts? Do the hiring requirements stop at a single working thumb?"
Yes, no and no.
In my experience as a cake decorator, I have been very lucky to have worked with some decent decorators whose work ordinarily would not be featured on Cake Wrecks. (Not to say that I don't love reading this blog!)
On the other hand, in defense of grocery store bakeries, it is hard to find good talented help. (duh!) There is usually some sort of cake decorating skills test performed by potential decorators before anyone is hired to decorate cakes. Often times when a store is in dire need of a decorator they will hire someone out of desperation who says they decorate cakes, or just 'promote from within' because they ARE so desperate to have anyone. Good decorators are never paid what they are worth in a grocery store bakery. That is the unfortunate truth.
In my experience, sometimes a bakery has people that are working in the afternoon after the decorator has left for the day. These employees are often asked to write on a pre-decorated cake that a last minute cake customer has picked up out of the case. If a customer forgets to special order a cake or they waited until the last minute to pick up a cake on the way to the party, that is their own fault and they are at the mercy of the bakery clerk to inscribe something on the cake. Often times, they are inexperienced young girls, not fully trained with the skill of writing on a cake.
Some folks think "Oh yeah, my handwriting is good, yeah I can write on it for ya"..and they try...only to discover it is harder to accomplish than they think it is. Which I can honestly say with my experience in training those people it IS hard to teach someone to do it right. It takes a lot of practice.
I have suggested to our inexperienced bakery employees to NOT write on a cake until you are trained. Get someone else with experience to do it, until I can train you and then see how good you become with practice. Otherwise, I will be left with cakes that have to be fixed the next morning because the customer got mad and didn't want it because it looked bad.
I also have to say in our bakery we always read back the order to the customer to make sure we have exactly what they asked for. I always ask for correct spelling of names, even if it sounds simple. You would not believe how many different ways that people spell the name Brittany!! I encourage customers to be specific about their requests, even bringing in an idea on a piece of paper, or color samples. I am not a mind reader. I take pride in my work, and the last thing I want is an unsatisfied customer. - November 19, 2008 at 3:58 PM
- cherokeefox said...
This reminds me of a cake I ordered for my sons 16th birthday. I told them I wanted it to say "Happy 16th Birthday" with a BIG 16 and they literally wrote"Happy BIG 16" on it. I was so mad! My sone thought it was funny.
- November 19, 2008 at 4:04 PM
- Carmen @ Life with Sprinkles on Top said...
Idiotic is the only word I can think of. :D
- November 19, 2008 at 4:42 PM
- Unknown said...
Why does that first mistake never cease to amuse me?
- November 19, 2008 at 4:43 PM
- Carie said...
Really??? Unbelievable.where do they find these decorators. If you are not sure, ask the person who took the order.
DUH - November 19, 2008 at 5:13 PM
I think 'Congratulations Times Three' would have been good. I also think that maybe cake#2 is chocolate frosting/trim and not black?
- November 19, 2008 at 5:30 PM
- Clare K. R. Miller said...
The first one is still a pretty good cake. It means the same thing. But the second one... that is absurdly hilarious. Wow. Glad no one was around when I laughed at that, or they might think I was crazy.
- November 19, 2008 at 6:08 PM
http://robotballoon.wordpress.com/ - November 19, 2008 at 6:38 PM
I remember once at work, each store was supposed to order a cake congratulating the boss, take a picture of it and send the pic to him. I remember telling my best friend, on the way over, that I was writing it out because I didn't want to send in a pic with any retardedness on it and I knew how often congratuations was mispelled. I handed the girl the slip and waited. It seemed to take a long time. And finally, she comes out and hands me the box. As I open it up to inspect, she says to me, "Thank God I caught that spelling mistake." And I died inside.
On my cake it said:
"Congrabulations Richard" - November 19, 2008 at 7:55 PM
Hahaha, is the second one from BR? I decorated at a BR for a few years and it sure looks like one the decorators before and after me would make: the tumors on all of the sides, the smeared fudge, bad handwriting and misunderstood message... ahhh, memories :D It *is* fudge, by the way, not black frosting :D
Back then I never really thought about why some customers would be SO explicit with what they wanted. I'd understand the order form perfectly, but they would staple a sketch to it or write out the message EXACTLY how they wanted (line by line). A couple times people had left their order with my coworkers, and then called back to talk directly with me about it to confirm it. Now I know why they were like that...they must have gotten cakes like the ones on this site.
I'm reminded of my brother's 3rd birthday cake. My mom pretty much just said "oh, he likes Ninja Turtles. Make something like that." What she got was a green half circle with a red stripe around it and some eyes and a mouth. My brother even asked her at one point if it was really supposed to be a Ninja Turtle. I should find a picture :D
I think decorators (and even other employees or clerks) who don't understand how the order forms work, or who don't understand what the words and phrases that are typically written on cakes actually mean, or who use quotations for emphasis (oh GOD, my biggest pet peeve ever) are a vast majority in this world. It's also too bad that many employees really do assume that since they know how to write with a pen, they could handle a pastry bag. It's super easy with a lot of practice, but they really do need the practice first.
This blog makes me miss decorating SO much. I wonder if it makes any other former decorators reminiscent, or if it makes them glad to not have to deal with all this mess anymore :D
"I encourage customers to be specific about their requests, even bringing in an idea on a piece of paper, or color samples. I am not a mind reader. I take pride in my work, and the last thing I want is an unsatisfied customer." ---- I totally second this :) - November 19, 2008 at 8:11 PM
- Jennifer Foster said...
The first one...terrible handwriting too. Why do people write so badly on a cake? I still don't get it.
- November 19, 2008 at 9:08 PM
- Katie said...
These are my favorite kind of wrecks. Keep 'em coming!
- November 19, 2008 at 10:06 PM
On the first cake, are they trying to cover all bases with those balloons?
We've got pink, for a girl, blue, for a boy, and... Orange?
Maybe we don't want to know what orange is for.
Alex - November 20, 2008 at 4:55 AM
- searching_for_something said...
lol, how on earth could you come up with that and think it was right? - November 20, 2008 at 6:48 AM
- jackie31337 said...
Alex said We've got pink, for a girl, blue, for a boy, and... Orange? Maybe we don't want to know what orange is for.
Why, orange is for naked mohawk-baby carrot jockeys, of course! - November 20, 2008 at 7:14 AM
ROFL! They should have swapped decorators! :D
The second cake was ugly anyhow. Why black icing? And the pattern on the sides of the cake looks rather sloppy. - November 20, 2008 at 8:55 AM
- Miranda said...
And these are made by professionals???
I don't get it. Seriously. I can decorate, write, spell, etc. better than that in my kitchen at home with nothing but my little Wilton books and videos and advice from girlfriends.
I'm starting to understand now why all my friends are coming to me when they want a cake for an occasion rather than going to a bakery. I thought it was just because I charged less, but I see there's more to it! - November 20, 2008 at 9:07 AM
- pyjammy pam said...
i think the weirdest thing about this entry is that the triplet cake is not for a mel u. that i know with triplets.
- November 20, 2008 at 9:38 AM
Jackie31337 said Why, orange is for naked mohawk-baby carrot jockeys, of course!
Hahaha, true, it probably does.
Alex - November 21, 2008 at 4:36 AM
I love you! You just saved my day! Thank you for the laughs!
- November 21, 2008 at 9:06 AM
This reminds me of a cake I bought for my SIL after a promotion. I asked the bakery lady if she could write Congratulations on it. She said yes and proceeded to write on the cake. I could tell she was having a hard time and pausing a lot to read what she had written. When she was done I looked at the cake and discovered she had written - Congraduation! It was funny so I didn't say anything and we had a good laugh while we ate cake. -Ginger
- November 21, 2008 at 2:41 PM
Two "congratulation"s equal congratulations (pl). This one is clear. You can see how it occured cause any sentence requesting the word 'congratulations' can yield this result to a person unfamiliar with the language, would have though he heard a plural.
"And write congratulations on it" means "write multiple instances of the same word on it."
(No excuse, mind you.) - December 15, 2008 at 3:03 PM
- Maggie said...
I can picture this in my head. My friend had a similar accident once.
- February 8, 2010 at 5:56 PM
Search This Blog
Wreck the Halls
NEW! Pre-Order Today!
Barnes & Noble
Borders |
Buy the Book
Buy the NYT Bestseller
What's a Wreck?
What's a Wreck?
A Cake Wreck is any cake that is unintentionally sad, silly, creepy, inappropriate - you name it. A Wreck is not necessarily a poorly-made cake; it's simply one I find funny, for any of a number of reasons. Anyone who has ever smeared frosting on a baked good has made a Wreck at one time or another, so I'm not here to vilify decorators: Cake Wrecks is just about finding the funny in unexpected, sugar-filled places.
Now, don't you have a photo you want to send me? ;)
- Fan Faves
- The Classics
The Classics
Praise for the Book
- "Will have you laughing so hard you'll forget to eat!"— Washington Post
- "a hilarious winner" — The Oregonian
- "a fantastically gut-busting book"— NPR
- "It's all here, each wreck a disaster of hilarity." — BookPage.com
- "Hysterically funny!"— Epinions.com
- "laugh-out-loud funny"— The Times
- "Yates' sharp humor makes the funny even funnier." — The Dallas Morning News
- "an amazing laugh-out-loud book"— The Book Triblog
What the fans are saying
- "I was laughing so hard, I couldn't catch my breath."
- "As funny as the blog that started it."
- "WAY better than I expected!"
- "Cake Wreckery at its best!"
- "Wrecktastic!"
- American Mensa:Top 50 Websites of 2010
- Amazon: Top 10 gift books of 2009
- The Orlando Sentinal "Orbbies": Winner Humor
- 2009 BlogLuxe Awards: Funniest Blog
- 2009 Bloggies: Best Writing of a Weblog, Best New Weblog, Best Food Blog
- The 2008 Weblog Awards: Best Food Blog
- Blogger's Choice 2008 Awards: Best Humor Blog
Where's the book?
We don't have any copies of Cake Wrecks for sale here, autographed or otherwise. We decided the shipping and handling costs would be too high to make it worth your while. So instead, buy your copies locally or online and then order personalized bookplates: it's cheaper, easier, and I think even looks a bit nicer.
Ordering Info
Payments must be made through Paypal, which accepts all major credit cards. Sorry, but that means no checks or MOs or barter-based chickens.
We ship everything first class USPS, and will do our best to have your package in the mail within 2 days of your order.
Popular This Month
Popular This Month
- Just Watch Out for the Buttercream Boulder
- So What Happens If You EAT the Frog?
- Buy Buy Buy
- And Now, a Word From Your Thanksgiving Turkey Cakes
- Creations That Might Possibly Be Representations o...
- Wrecktopia of Cornucopias
- Fall Fumbles
- Sunday Sweets: Let's Talk Turkey
- Turkey Turkey GOOSE
- Turkeys
- The Displays That Time Forgot
- Just in Time for the Holidays
- Undeserving of Congrats
- Supermom VS the Diabolical Decorator of Doom
- Sooo Corny
- Sunday Sweets: You "Auto" Watch
- And For That Crowning Touch...
- The Sprinkles Decorator Strikes Again
- Face Time On CW
- Maximum Irony Has Now Been Achieved
- Monkey See, Monkey Doo-Doo
- Marine Wild Life: The Big 2-3-3!
- Watch a Cake Being Wrecked
- Sunday Sweets; Fondant Free!
- I've Heard of Death Taking a Holiday, But This is ...
- Fire!
- Cake Headlines
- It's Almost Like He's Part of the Family
- Oh, Mama!
- And Remember:
- As I Wreck Elect...
- Disclaimer
- The Beginning of the End?
- Sunday Sweets: Cupcakes!

subset: commoncrawl


text:
In a matter of months, Turkey has gone from one of Syria's strongest allies to one of its sharpest critics as the uprising in Syria has been met with a harsh crackdown by President Bashar Assad.
Turkey has become a haven for Syrian refugees, a base for Syrian army defectors and a home for Syria's main political opposition group. And on Friday, U.S. Vice President Biden was in Turkey for talks that included the deteriorating conditions in Syria.
On the streets of Istanbul, Akram Asaf, a 31-year-old lawyer who fled Syria, says he feels safe, but not yet free.
"I can't enjoy anything here, not while people inside Syria are dying," Asaf said. He arrived in Istanbul just a month ago after getting a warning that he was targeted for assassination. At that point, he had been leading the uprising for eight months in Deir Ezzor, one of the most volatile cities in eastern Syria.
He says he's still in contact with Deir Ezzor around the clock, adding that he manages to organize protests and plot strategy with other activists through the Internet. Even during an interview, the phone calls kept coming.
Asaf says that in his home town, the ranks of the Free Syrian Army are growing as more soldiers defect. For months, the Syrian security forces cracked down harshly against mostly peaceful protesters. Now, the opposition includes a growing number of armed men, and the rebels are playing an increasingly important role.
"Nobody did anything to protect the peaceful protests, to guarantee that the protests go on," he said. "We have to protect the protesters in some way."
Army Generals Tip Off Opposition
But even more important, he says, some top army officers in the city are aiding the uprising as informers.
"We are in contact with the Syrian army. They help us by giving us information," Asaf said.
Some sympathetic generals send warnings of operations by the security police, he said. The generals provide intelligence on targeted arrests — which allowed him to operate for months by moving from one safe house to another. But the final warning that he was on a death list forced him to flee.
Asaf is part of a growing community of Syrian activists now operating from Turkey.
Another is Hussam al-Marie, a 28-year-old from Tel Khalek, a town on Syria's border with Lebanon. He too says he is in constant contact with activists back home.
"It's my full-time job now. It's better for us to stay inside [Syria] but we can't do that, we can be killed," he said.
I can't enjoy anything here, not while people inside Syria are dying.
Activists Take New Roles
Marie, like Asaf, has expanded his role in exile. They have joined the Syrian National Council, the largest opposition group that includes exiled dissidents and a new generation of leaders from inside Syria.
The Syrian opposition has been playing a more prominent role, too. Encouraged by the Turks, the opposition group met for the first time with leaders of the Free Syrian Army. They agreed to coordinate actions against the Syrian regime — the rebels agreed to use force only to protect civilians, and to scale back attacks against the government.
Asked if he worries about the uprising becoming more violent, Marie says, "No, I don't think so. It's a peaceful revolution. I think you are talking about the Free Syrian Army. They are from the army — so they swear that they will defend the Syrian people. So they are just doing their job to defend those peaceful protesters."
But the Free Syrian Army seemed to ignore the agreement on Friday, claiming responsibility for an assault on an army intelligence center in northern Syria that killed eight people. Activists reported that at least 20 civilians died in protests across the country, shot by security police.
Copyright 2021 NPR. To see more, visit https://www.npr.org.


text:
Extreme Water Levels
The plots show the monthly highest and lowest water levels with the 1%, 10%, 50%, and 99% annual exceedance probability levels in red, orange, green, and blue. The plotted values are in meters relative to the Mean Higher High Water (MHHW) or Mean Lower Low Water (MLLW) datums established by CO-OPS (1 foot = 0.3 meters). On average, the 1% level (red) will be exceeded in only one year per century, the 10% level (orange) will be exceeded in ten years per century, and the 50% level (green) will be exceeded in fifty years per century. The 99% level (blue) will be exceeded in all but one year per century, although it could be exceeded more than once in other years.


text:
Trident TM6000
The TV-Master TM6000 is an integrated Video decoder and USB bridge IC from Trident.
TM5600/6000 based Devices
Preliminary working state (with patch)
- Terratec Grabster MX150/250 (USB Id 0ccd:0079)
- ADStech XPress USBAV-192 (USB Id 06e1:a192)
Driver development in progress:
- Freecom DVB-T & Analog TV USB Stick (USB Id 14aa:0620)
- Moka Hybrid TV receiver MK-DVBT-DUAL (USB Id 14aa:0620)
- LifeView LR535 ... a PCIe Mini Card (USB Id 10fd:0535)
- ADS Tech Mini Dual TV (PTV-339) (USB ID 06e1:b339)
- MSI Vox II (USB Id 6000:0001)
- Plexgear Moviesaver 210/220 (USB ID 6000:0001)
The following device might work with the driver as well:
- Yakumo QuickStick TV Easy .... Article and photos of the PCB: http://www.svethardware.cz/art_doc-153F40C514B8C470C125723F0072F0DD.html
If you discover that a device that is not listed here actually works with the driver (see below), please report it to the developers!
Note: according to the Trident SEC filing the TM5400 is PIN compatible with the TM6000 but without a digital TV TS support.
Updated info
There were some efforts on developing a driver for tm5600/tm6000/tm6010 chips.
Michel Ludwig (michel.ludwig gmail.com) did some development mostly focused at DVB-T of tm6000. Mauro Carvalho Chehab did some development moslty focused at analog support, and extended support for tm6010.
There are some versions of the driver at http://linuxtv.org/~hg that merged both developments.
The driver is still at the TODO list, however its development is currently frosen. Mauro intends to return back to it, but this is not on his current top priorities.
Those chips are very buggy and they behave badly if the driver doesn't do exactly the same thing as the original one (it starts to loose frames). The reason is unknown, but it is suspected that there is a firmware or hardware bug at those chips.
Maybe the conversion of the driver to the new i2c approach could help to fix this issue, since this will avoid sending probing packets at i2c bus, as it is known that some i2c probe sequences can hang those chips.
Also, on all tests we've done so far, it can't reliably read data from an i2c device. This prevents that tools like scan work, since you can't be sure if a signal lock happened. Also, driver can't even be sure if xc3028 firmware were successfully loaded on this device.
It is important to notice that the vendor (Trident) doesn't seem to want helping with open source development. Contacts with the vendor were tried during 2007 and 2008 in order to get their help by opening docs, via Linux Foundation NDA program, without success.
The vendor also seems to be refusing so far to help the development of a driver for their demod DRX-K line that they acquired from Micronas (as pointed at http://linux.terratec.de/tv_en.html).
There is evidently some detailed chipset documentation available now as well as source code to another driver implementation [1].
In brief, while we want to fix the driver issues, it is recommend to avoid buying any devices with tm5600/tm6000/tm6010 (and DRX demod) chips.
Info about driver
- Michel Ludwig (michel.ludwig AT gmail.com)
- Mauro Carvalho Chehab (mchehab AT redhat.com)
- Stefan Ringel (linuxtv AT stefanringel.de)
- Dmitri Belimov (d.belimov AT gmail.com)
- DVB-T works with any supported devices
- Audio doesn't work with any devices
- Input control
- Radio support
- VBI support
- remote control
- switch between 4:3 and 16:9
The hosting of the driver files has been generously provided by François Beerten! Thanks a lot!
Experimental Driver
- Due to high demand, the experimental driver is now available to the public. It provides basic DVB-T support for devices with the USB Id 14aa:0620.
Disclaimer: The experimental driver was never intended to be released. The code contains lots of ugly hacks and no guarantee can given that it is even working at all. Moreover, despite the fact that the driver has been used for several months, the extremely unlikely case of causing hardware damage cannot be fully excluded! In summary, you are using the driver at your own risk!
Additional Warning: It is recommanded to disconnect the USB stick after having stopped watching TV as there is currently no instruction implemented to disable the decoding of the TV signal.
- Compilation/Installation Instructions
- Firmware
v2.4 and v2.7 use the extraction tool
v3.6 xc3028L-v36.fw
- If the compilation and the extraction of the firmware was successful, you should be able to watch TV via DVB-T now! If you want, you can report your geographical location to the developers, so that a list which contains the locations where the driver is working can be kept.
Kernel module parameter
- debug
enabled or disabled debug info.
- 0 disabled (default)
- >=1 enabled
- i2c_debug
enabled or disabled i2c debug info.
- 0 disabled (default)
- >=1 enabled
- ir_debug
enabled or disabled ir debug info.
- 0 disabled (default)
- >=1 enabled
- enable_ir
enabled or disabled ir.
- 0 deactivated
- 1 activated (default)
- card
selection a card from card list.
- 0 auto (default)
- video_nr
- ?
- vid_limit
- ?
- audio_std (tm6010)
set sif audio standard.
- 0 auto (default)
- 3 other (DK3_A2, Korea, Japan, BTSC)
- debug
enabled debug info.
- 0 disabled (default)
- 1 enabled
- debug
enabled debug info.
- 0 disabled (default)
- 1 enabled
TM6010 based Devices
A new version of the TM6000 is present in some devices :
- Hauppauge HVR900H
- Compro VideoMate Vista U2800F (DVB-T Hybrid USB stick), black: Article and photos of the PCB: http://www.ixbt.com/monitor/compro-u2800f.shtml
- Compro VideoMate U2600F (DVB-T Hybrid USB stick), white: This device is almost identical to the U2800F (though does not come with a seperate USB IR reciever module. As far as the stick goes it is just a cosmetic "Vistarization" of the 2600: The components and PCB look identical to the U2800F above, except the rectangular component; T1. The U2800F in the image above shows T1 and T2 to be identical. On my U2600F, T1 is different and has the numbers TA6C 12000S on it. This looks like just a batch difference though. The PCB in my U2600F is identified as 94V-0 w the number 0G9MUH0012 Rev B (This number is obscured on the abovelinked U2800F), but is probably the same (there are no components located there anyway). BTW; my U2600F reports in WinXP's Device Manager as USB\VID_185B&PID_2600\5&23FD63D6&0&8. Compro provide the same rotten software and driver for both models.
- LifeView "Not Only TV" Hybrid LV5H, Hybrid LV5H Power (Windows drivers for reference to developers)
- Terratec Cinergy Hybrid Stick
- Terratec Cinergy Hybrid XE
- DGTechnics Smart HDTV/FM (with TM6010 chip)
An experimental driver is available from http://linuxtv.org/hg/~mchehab/tm6010/ (currently completely broken - analogue, firmware extraction, etc)
TM6010 support is included in the tm6000 driver (in staging!) available from the V4L/DVB repository. Works with a Terratec Cinergy Hybrid Stick (0ccd:00a5) with the xc2028 tuner module (supports device's xc3028/xc3028L tuner).
An article about installing DGTechnics Smart HDTV/FM with tm6010 and XC3028 can be found at: How to Install DGTechnics Smart HDTV/FM on Linux


text:
The photos above are from OFG's Oriental Bank's highly successful "Si Puedo" (Yes I Can) ad campaign.
Data shown on this page is extracted directly from the company's documents. S&P makes every effort to line up fields, captions and headers that represent the same data over time, despite variations in how the company may report these items in different documents. In certain instances the variation in the company's presentation over time may be too significant, potentially resulting in repeating and/or disordered items. Despite possible issues with the presentation, S&P, as always, stands by its commitment to the quality of the data.


text:
Talk:Euler problems
I agree with hk that these pages are literally KILLING Project Euler. If you want a way to publish your OWN solutions in a SAFE manner, see an example here. That blooger RESPONSIBLY uses a md5 hash of the answers as the key to encrypt his own solutions (written in mathematica). I think sites such as that one are much more enlightening than what this is now. You claim that mindful problem solvers will not upset themselves by peeking at your pages, but in all seriousness, rarely are such problem solvers immune to giving in to frustration. However capable, they are only human. Given, once I solve a problem in a particular language, I'm usually curious how other languages cope with the problem, and I usually find the Euler forums (for each problem) sufficient to this end. I plead that this site be remodeled using proper encryption (the mentioned scheme is perfect) or simply remove this site and post your methods in the forums of Project Euler.
As one of the teammembers of Project Euler I must say that you are doing Project Euler not a great favour by maintaining this site. How is it possible that you are so blinded by your enthousiasm of a particular programming environment that you lose out of sight the true nature of Project Euler: problem solving, disregarding all differences of programming languages. As all problems are there, even the most recent ones, those responsible for this must be found among our 100%-ers. Please realise how much work of us you are spoiling with this work and stop spoling our work. Better still: remove it altogether from public domain. Threatening to consider any amendment as vandalism is really a gotspe. It's you that are vandalising our work.
Hans Klein (aka hk)
quote: Additionally, for convenience in checking solutions, a list of pairs giving the exact Euler answers is available
Cale, why are you doing these things just to annoy us? Don't you have better things to do than trying to kill project euler? --
In addition I don't see the use of this checklist. Anyone that wants to check the correctness of his answer can do so at the Project Euler site. It seems more a deliberate attempt to kill Project Euler. Perhaps Gale should do some introspection about his true motives.
quote: On the other hand, this problem space is perfect for illustrating the power of Haskell, and for providing excellent examples of how to "think in Haskell".
The solutions to some of the harder problems are in C++, so that has nothing to do with the power of Haskell. Please remove the solutions from this page. If you want to show your Haskell solution please do so in the forum of a problem.
Stijn aka henk263
If you openly publish problems, people will be free to openly publish solutions to them. There's not a whole lot which can be done about it. This is the same issue as a game developer saying "please don't publish a walkthrough to our game". You can ask, but it's pretty much guaranteed that someone will inevitably do it.
Moreover, it doesn't harm anyone's enjoyment of the game. The pages are clearly marked as containing spoilers, and those who don't want to see the spoilers can avoid them quite easily.
CaleGibbard 18:58, 23 February 2008 (UTC)
The solutions in C++ would indeed be better off replaced by Haskell code. This is, after all the Haskell wiki. However, removing the solutions altogether would be silly. (Not to mention ineffective, as they would remain in the page history.)
If you want to have a contest with problems to which nobody can look up the solution, construct a list of problems which nobody has seen before and hold the contest all at once. Long term contests in which the problems have trivial (i.e. known) solutions won't hold up.
CaleGibbard 19:08, 23 February 2008 (UTC)
I think you misunderstand Project Euler. To my opninion it's not a contest. But by publishing worked out solutions you are spoiling the fun for those that love to solve problems. Of course not much can be done to such "look me being smart" people that haven't even to guts to design their own problems to write their programming tutorial. Moreover stealing other peoples solutions (problem 181) does not look very smart either.
Those who love to solve problems should have no problem with this site. They just won't read it. The only possible way one could have a complaint about published solutions to the problems is if one thought of the site as a contest by which people are being judged and compared. If the problems are meant only for personal use, there's no issue, since the only person one might cheat by looking at the solution is oneself.
If one had already given up on finding the solution, being able to look at a solution is potentially educational as well.
I should perhaps point out that I've not personally had any hand in constructing any of these solutions (though I did clean up the formatting on some of them not long ago), and haven't spent much time working on Project Euler myself either (the problems are not of a sort which I find interesting, there are not nearly enough universal quantifiers in them). I do, however, think that people who put useful things on this wiki should not have them arbitrarily damaged.
CaleGibbard 20:07, 23 February 2008 (UTC)
Quite a few of the recent C++ additions are just stolen from the problem's forum. I'm pretty sure that neither balakrishnan nor Daniel.is.fischer put anything here.
Cale All your arguments fail if you see that the one that put those Haskell (and C++) solutions here has even gone so far as to put the direct answers to the problems on this page http://www.haskell.org/haskellwiki/Euler_answers. This goes too far. I urgently request that that page and this one should be removed from this Haskell wiki. This has nothing to do with Haskell anymore.
I still don't see why you should care about the solutions being published. If particular solutions can be shown to violate people's copyright, then those should be removed. Everything on this wiki is meant to be published under the simple permissive license. Otherwise, I see no reason to remove anything.
CaleGibbard 21:52, 23 February 2008 (UTC)
For me, it spoils the fun of 'climbing up the ladder'. I don't get why this list of numbers belongs in an HASKELLwiki :S
If it would spoil the fun, don't look at it. What's your problem? If your value system is so messed up that you get more satisfaction out of seeing your progress bar go up faster than other people's progress bars than from actually solving the problems yourself, then I think you probably have some serious self-evaluation to do. Also, until then, I have a video game in which you might be interested
CaleGibbard 22:04, 23 February 2008 (UTC)
I guess I do see project euler partly as a contest. There's no need to get personal. I'm very sure that I'm not the only one who doesn't like the idea that all solutions are available to everyone.
Also aren't almost all online games based on seeing your own progress bar go up faster than other people's? Not that PE is a game, but still, I don't think I need to do any self-evaluation :S
You definitely have some introspection to do regarding your motives for doing things.
The pages won't be removed, and none of the solutions will be removed unless you can prove some legal reason that they must be. Obviously some people find them useful, they are largely Haskell content, or of use to people solving the problems in Haskell, and so are on topic. Leave it alone.
CaleGibbard 22:28, 23 February 2008 (UTC)
The Project Euler problems are copyrighted under the creative commons license. http://projecteuler.net/index.php?section=copyright http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Legal version http://creativecommons.org/licenses/by-nc-sa/2.0/uk/legalcode If you read this you will see that the simple permissive license is not identical to the creative commons licence. The share alike condition reads: "Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a licence identical to this one." So in fact the pages I referred to are both infringing in the Project Euler copyright.
- None of these pages contain any of the problem statements or content published on the Project Euler site. --CaleGibbard 22:31, 23 February 2008 (UTC)
- You overlook the phrase "or build upon this work," and you cannot deny that those pages build on the Project Euler work.
- Moreover, some solutions are copies from the Project Euler Forum. --hk
- It refers to making derivative works; these are no more derivative works than my saying 'What is 2+2?' a derivative work of the work of kindergartener teachers. These are eternal mathematical theorems and principles; they can no more be copyrighted or trademarked or patented than can a prime number, even if it takes decades to compute it.
- I certainly do agree with you about the problematic copyright status of the solutions, though. --Gwern 00:15, 24 February 2008 (UTC)
These pages must be deleted.
They are not in the spirit of Project Euler.
They are ruining the fun of problems and the fun of climbing up the ladder.
I am aware that whoever posted this is probably smart and would like us all to know.
RULE #1 of Project Euler:
You do not discuss Project Euler solutions.
RULE #2 of Project Euler:
You do not discuss Project Euler solutions.
Keep it in the problem threads.
I disagree. These are clearly marked as "spoilers". Anyone who wants to participate in Project Euler and enjoy its benefits knows that they should not peek at these solutions.
On the other hand, this problem space is perfect for illustrating the power of Haskell, and for providing excellent examples of how to "think in Haskell". I would refer anyone thinking of learning Haskell to these pages - with the warning that they might first want to solve all of the problems in their current favorite programming language.
My guess is that many people would look at the first few solutions, become hooked, and then redo the rest of them on their own in Haskell without peeking!
You kill the fun!
There is only way to publish solution - just protect access to it with right solution answer, as Euler protects access to forum's threads.
But in wiki - these pages must be deleted.
Note that if you delete these pages, it will be treated as vandalism and reverted. CaleGibbard 19:56, 21 February 2008 (UTC)
Category tags are great for making the Haskell wiki easier to navigate. But having category tags on all of the detail pages of these problem sets has the opposite effect - it just clutters the category pages.
I am removing the category tags from all of the detail pages, and leaving them only on the main page.
Either restrict the access to these pages to those who have the solution or delete them, please. It's just not cricket to violate the Project Euler spirit. Daniel.is.fischer
Not everypone plays cricket! SamB 23:11, 23 February 2008 (UTC)
C++ copyvios
I've removed all the C/C++ code I saw on the problem pages. I have no problems with including answers (be they programmatic or constants), but the C code is very problematic. I can assume good faith and believe that all of the text and Haskell code is Freely and correctly licensed (a few answers to the contrary...), but I find it much harder to believe that a Haskeller would license his own C++ code Freely but not also provide a Haskell solution, and harder still when I see assertions that the code is stolen all from Project Euler's internal fora.
So, I've removed them. I hope I will not see the code re-added; until it's shown that they are licensed appropriately for the wiki, I intend to make sure they are kept off. Cale, as for page history - yes, deletion and partial recreation would be ideal, however I am not an administrator here and so cannot do it. If my wikideletions are ever asserted by one of the copyright holders to be insufficient, well, then we can go back and delete with fire. --Gwern 00:15, 24 February 2008 (UTC)
- I identified several remaining C codes.
- I checked them in the problem Euler forum to be from several different PE users.
- I now put a note in place of this C code stating who published them on the PE Forum.
- It seems that the statement "None of these pages contain any of the problem statements or content published on the Project Euler site. " was somewhat preposterous. --hk
- I missed some, huh... OK, good. Hopefully that's the last of the copyvios. --Gwern 16:01, 24 February 2008 (UTC)
I have protected this page, and will protect other pages as necessary. There seem to be two issues here:
- Copyright violations: anything that is not available under our simple permissive license must be removed immediately. Thank you, Gwern, for doing this.
- Spoiling Project Euler: HaskellWiki is not part of Project Euler and is therefore not bound by its rules or guided by its values or spirit. HaskellWiki's purpose is, roughly, to promote Haskell. If publishing the Euler problems and their solutions in Haskell serves that purpose then that belongs on this wiki. Some people might be annoyed by being unexpectedly given these solutions: for that reason we should warn them with the appropriate spoiler notices.
—Ashley Y 23:18, 24 February 2008 (UTC)
- Unprotected now. —Ashley Y 22:27, 12 March 2008 (UTC)
Another vote for its being utterly childish to post solutions to puzzles on another site in contradiction to the wishes of its admins.
Quote: HaskellWiki is not part of Project Euler and is therefore not bound by its rules or guided by its values or spirit. HaskellWiki's purpose is, roughly, to promote Haskell. If publishing the Euler problems and their solutions in Haskell serves that purpose then that belongs on this wiki. Some people might be annoyed by being unexpectedly given these solutions: for that reason we should warn them with the appropriate spoiler notices
And does this sound like democracy to you? It sounds like nazi to me. Like "we do what we want, if that bothers you well, it's not our problem."
- Actually, it sounds like Libertarianism to me. But if you want to draw specious comparisons and Godwin yourself, go ahead.
There are billions of problems in internet, which are already published with a solution. Many puzzle sites publish a problem and after one week they provide the solution too. Why can't you just pick one of them? There are plenty of problems that could be useful to learn haskell.
- If those billions of problems are so useful and suitable, then why aren't Haskellers doing them instead? --Gwern 20:55, 29 April 2008 (UTC)
Also, once I have learned how to use (eg.) an array, why should I learn it again? I don't see new haskell concept published in every solution you provide, so, if this was just to improve haskell skills, why you spoil problems that touch things already covered?
When you play at project euler, you begin a journey. Some people don't care about the ranking, some others do. For those, knowing that solutions are available for everybody, its not pleasant, because then the ranking is not the same any more. You are always left with the doubt that who's ranked higher than you might have cheated. Personally, every time a new problem comes out, my only preoccupation is to solve it and post my solution on p.e. forum BEFORE some of you post the solution here, so if someone goes and check me I don't mind because I'm clean.
Concluding, you certainly do have the rights to do what the law lets you do, but you should understand that your rights fall down when you do something that bothers other people (a lot, believe me). Even more when you could easily choose another site of the kind I said before, one of those which provide solutions to their problems.
Haskell learners would still learn, and p.e. users would be able to play in peace. If you don't understand this then you should try.
Actually, it sounds like Libertarianism to me. But if you want to draw specious comparisons and Godwin yourself, go ahead.
- Actually I didn't know about this Godwin's law so thank you, I learned something new. Anyway, leaving every nazi stuff apart, the question is really why to spoil p.e. problems. If you look at words like "math puzzle, problems, programming challenges, etc." on google, you can find plenty of really cool websites that provide similar content than what you find on p.e.: math stuff, programming stuff, geometry stuff, and so on.
- So, since some of them don't keep score like it's done on p.e., why not to choose one of them? I mean, if you want to show say a Fibonacci generator, isn't it good to apply your code to a Fibonacci related problem? At that point, isn't any Fibonacci related problem good? So I guess it would be possible to choose a Fibonacci related problem from some site that also gives the solution. In this way you would have achieved what you claim (promote haskell) and nobody would be hurt, therefore everybody wins.
- Wouldn't it be good for everybody?
If those billions of problems are so useful and suitable, then why aren't Haskellers doing them instead?
- Let me get this right. Do you really think p.e. is the only source for interesting maths problems? With all respect, but I don't think so. Ever heard of uva (http://acm.uva.es/problemset/)? And this is just an example. You just have to open google and search.
The reasoning on the front of this page is preposterous:
Note that these solutions are indeed entirely within the spirit of Project Euler. For those who feel otherwise, note that the FAQ on the front page of the Project Euler site says the following:
I solved it by using a search engine, does that matter?
That depends on your motivation for solving the problems. It probably means that you've missed out on some beautiful and hidden mathematics.
So, because the PE site advises people to not cheat, therefore it's "entirely within the spirit" to post solutions? Clearly, that FAQ answer was put there in response to pages such as this. I'm changing this wording (so by the time you read this it may be different). Galen 06:38, 10 September 2008 (UTC)
Dear HaskellWiki,
The wiki pages you have on PE problems in Haskell seems interesting and something one could learn from. If I had the time to learn Haskell (and not just stick with Python, which I personally use for solving the PE problems), it would be interesting to have a look at the solutions after having solved problems myself.
However, the problem is that many users get tempted to climb the PE ladder the easy way by cheating. Of course they are really cheating themselves, but it is still a great nuisance for those of us who try to climb the ladder "the hard way", to see users climb by on the high score lists in a pattern which is clearly indicative of cheating.
The negative effects on the PE community by having solutions here by far outways, I think, the benefits of having them here.
From the responses above I get the impression that the opinion of the HaskellWiki on this dilemma is: Why should we care about another community, we do what is best for us irrespective of other communities. That is a viewpoint, which I respect, albeit I do not agree wth it. Currently PE gives something to this community, which is a set of problems, which are interesting from a Haskell point of view. It takes a substantial time and effort to develop those problems. It is done volunteerly, because it is fun. It is not fun though, when the payback is published solutions. That is poisonous to the PE community.
There is a perfect place to discuss Haskell solutions to PE problems and that is on the PE fourm threads, which unlock when a correct solution is given. That is where they belong.
It has been argued that it is just like walk-thoughs of computer games. I do not agree with that viewpoint. PE is not a childs game, the harder problems requires lots of brains to solve, much more than completing a computer game.
The HaskellWiki is not the only one, which publishes PE solutions, but it is near the top on search engines besides the main site. I am writing to other main sites as well (as many as my time allows).
I kindly urge this community to consider if there are not other problem solving sites, which are more adequate for displaying the power of Haskell without spoiling the fun of the problem solving community?
Kind regards, --Slaunger 21:25, 21 July 2010 (UTC) aka user slaunger on PE
- Just one problem with using PE forums to post your solutions: they are locked (the lower numbered ones). :-L That still doesn't make it OK to post them here, IMO. PE clearly asks of its users not to post solutions anywhere except on its forums. (I'd say fora, but I don't speak Latin). We're given these problems on condition we not publish them, it's kind of breaking a promise to do so. It's not nice. So I wouldn't go as far as to say I respect this choice/"viewpoint". It's clear to me these forums here should be protected by right solutions as passwords, just like on PE site. OTOH having a place to discuss a solution you've just come up with is thoroughly needed, and the urge to show it off can get the better of anyone. WillNess 07:16, 2 July 2011 (UTC)
Let me just throw in $.02 in this as someone who used to teach at the university level. What is being discussed here is a common problem in education. On the one hand solution keys can create temptations for people who then "cheat" either out of momentary weakness or a more profound desire. On the other hand good quality worked problems, like the REA books or the solutions in Schaums are good for education.
It is understandable that some people doing the Euler problems don't think these answers should be redistributed. However, if project Euler (Colin Hughes) genuinely wanted to be able to enforce the kinds of restrictions that many posting here are asserted he should have fully maintained copyright. Then this page would be a obvious derived work, and thus without permission a violation and a failure to obey the takedown notice would be enforceable. But he didn't do that instead according to the Project Euler copyright Euler is licensed under an open license which encourages and allows for derived works to be redistributed providing that credit is given to Project Euler for the original work.
I think there are people speaking for Project Euler who are one class of users, not creators the work asserting an ownership that does not exist. The Euler problems are useful for teaching people how to reason on algorithms. They are also a good collection of examples of well worked problems, that various languages can compare on. Haskell is particularly good at the types of problems in Project Euler so it makes sense this page would be heavily linked to. What we see in these solutions seems to be exactly the kinds of derived works that Colin Hughes was encouraging when he choose to license Project Euler the way he did. Jbolden1517 02:24, 23 October 2011 (UTC)
You know it's not a big deal what 's your purpose when you trying to solve all the problems from Project Euler ,you just want to do something you like and you do it ,and that's it gus ,wish you lucky .
Why publish solutions on haskellwiki?
Publishing the solutions to the Project Euler Problems is not wanted by Project Euler, that's for sure.
Some say that there can nothing be done against it, because somebody else can publish it elsewhere.
I disagree. haskellwiki is responsible for publishing it. it should'nt do. why? It shows haskellwiki in a poor light, and that is something we should avoid. If an idiot would publish it, it wouldn't annoy me that much.


text:
The real signification of sharing and giving has been lost. Most people buy things because they have to make gifts no matter if they have enough money or not (some ever make debts in order to buy them). It is a social obligation. The worst is that because of the way things are in our modern times, the act of offering is made without pleasure or deep purpose (I am not speaking about calculated acts of offering here, but about the meaningful ones). So that leads some persons to offer impersonal presents that are not to the taste of the receivers and will be recycled, given away, exchanged or even thrown away. Not forgetting that many already have everything and need nothing more. This accumulation of goods can be quite pornographic, especially when you think of those that are in need.
Too many of us are stressed by those festivities, feel pressurized by their family who sets the bar far too high and cannot bear the weight which is put on their shoulders as not only do they have to purchase loads of useless paraphernalia, but they also have to get together with people they dislike just for the sake of that "holy day", play the perfect family although hate, jealousy and adversity is in the air (so fake - love and friendship is not something you show only once a year and it cannot be commanded!) and slave in the kitchen all day to prepare a expensive as well as gargantuesque feast. What a comedy!
Everything has to be big, expensive, shiny, artificial, pompous, over the top, burden-like and imposed. In such suffocating circumstances celebrating Xmas is far from being cheery. It is more like a torture or traumatizing nightmare that never ends! I'm sure if you asked people wether they'd prefer to go through the pain of organizing the "perfect" Christmas and lose their sanity or would rather do some cocooning I'm sure 70% would choose the latter (the 30% percent who will claim the contrary are those who are blessed with kind and lovable relatives - something quite rare).
Of course, some of you are lucky to not fall easily into the commercial spiral/trap, have another vision of things and can be proud of having a normal family. In such conditions Christmas is not hollow and it is an event you can look forward to ...
I am fortunate enough to commemorate Christmas in my own way (it also happens to be my birthday on the 25th of December). We try tribute to this day in a very heathen, nature-oriented and non-confomist fashion. We don't go crazy when it comes to spending money, but we exchange humble yet wonderful gifts, value true relationships and eat a 100% homemade meal (cooked by "moi") that is rich in it's simplicity (no 5 hour sessions at the table - we prefer to eat less and to make the fancy food last a few days instead of gulping all of it on the same day). My family being plagued by petty fights, I happen to spend the holidays at home with my boyfriend and our two kitties (Maruschka & Fridolin - my babies LOL). Straight-forward, refined, authentic and humble just like me. Very romantic, laid-back and cozy!
I particularly enjoy the weeks that preceed Xmas as it is a foodlover's and baker's paradize. There are so many cookies to bake, countless magazines to leaf through, tons of gleeful blog post to admires and heaps of wonderful food displayed on markets or in stores to drool over. When you are an epicurean like me, then you cherish this awesome period that is the Advent even more than the 25th of December itself.
Lately, I have been bustling in my kitchen, overusing my oven and baking all kinds of treats that disappear within a few hours or days (a Sisyphus job). In my house delicious things don't last long and it was also the case with my "Eggnog Mousse" which was so good that it was impossible to stop gobbling it.
I found the original recipe in my December issue of "Delicious" magazine (once again!) which is a big source of inspiration and my latest culinary crush . At the origin this pudding was called "Eggnog Creams", but since I adapted it by spicing it up a little more, adding ingredients or substituting others and incorporating more gelatine, I decided to change it's title since this dessert is more like a mousse than a cream.
This "Eggnog Mousse" is a dessert that fits perfectly the Christmas day dinner party menu as it is light, fresh and so festive. It is totally irresistible with it's intense spiciness, fabulous heady notes of whiskey (just perceptible), creamy full-bodiness, delicate vanilla aroma, slight custardy/eggy flavor and dreamlike fluffiness as well as lovely jelly texture. A treat that will charm your guests and conclude the meal ethereally!
I have participated in the elaboration of this issue, so if you want to learn everything about my Christmases and see my pictures then please do check out that online magazine.
~Eggnog Mousse ~
Recipe adapted from "Delicious", December 2010.
Serves 8.
500ml Milk (3.5% fat)
1 1/2 Tsp Pure vanilla paste
2 Sticks Cinnamon
1 1/2 Tsp Freshly grated nutmeg (+ a little more to dust)
A pinch Ground cloves
4 Large egg yolks (free-range or organic)
110g Castor sugar
60ml Whiskey
1/2 Tsp Pure vanilla extract
1/2 Tsp Fine sea salt
8 Sheets gelatine
320ml Double cream (35% fat)
1. Pour the milk into a medium pan and add the vanilla, cinnamon, nutmeg and cloves. Over medium heat stir continuously and bring to a slight boil. Remove from the heat and let infuse for about an hour.
2. In a medium bowl, put the egg yolks, sugar, whiskey, vanilla and salt. Whisk until thick and pale yellow.
3. Over low heat, reheat the infused milk and slowly strain it over the egg mixture. Mix well.
4. Pour back into the pan and cook over low heat while continuously stiring until the mixture becomes thickish and covers the back of a spoon.
7. Pour into a bowl and place it in a sink filled with ice cold water.
8. Let cool completely and stir every now and then. The mixture should get thick, but should not be set.
9. Meanwhile whisk the cream until you obtain soft peaks.
10 Fold delicately into the custard until the mixture is homogenous.
11. Pour into 150ml transparent verrines or glasses.
12. Chill for about 4 hours or overnight.
You can replace the whiskey by brandy, sherry or rum.
Serving suggestions:
Serve cold for dessert and decorate with the cookies of your choice (speculoos, shortbread, macaron, etc...), some grated dark chocolate or broken praline.
Recette adaptée du magazine "Delicious", Décembre 2010.
500ml de Lai (3.5% de mat. grasses)
1 1/2 CC de Pâte de vanille pure
2 Bâtons de Cannelle
1 1/2 CC De Noix de muscade fraîchement moulue (+ un petit peu pour saupoudrer)
Une pincée de Clous de girofles en poudre
4 Gros jaunes d'oeufs (air libre ou bio)
110g de Sucre cristallisé
1/2 CC d'Extrait de vanille pure
1/2 CC de Sel de mer fin
8 Feuilles de gélatine
320ml de Crème double (35% de mat. grasses)
1. Verser le lait dans une casserole moyenne et y ajouter la pâte de vanille, la cannelle, la noix de muscade et le clou de girofle. A feu moyen, chauffer et mélanger continuellement jusqu'à légère ébullition. Retirer du feu et laisser infuser pendant 1 heure .
2. Dans un bol moyen mettre les jaunes d'oeufs, le sucre, le whisky, l'extrait de vanille et le sel. Fouetter jusqu'à obtention d'un mélange mousseux et pâle.
3. Réchauffer le lait infusé à feu moyen et le filtrer tout en versant dans le bol où se trouve le mélange aux jaunes d'oeufs. Bien mélanger.
4. Transvaser dans la casserole puis faire cuire à feu doux tout en remuant jusqu'à obtention d'un custard assez épais (il doit recouvrir le dos d'une cuillère).
5. Faire tremper la gélatine dans un bol d'eau froide pendant 5 minutes, jusqu'à ce qu'elle ait ramolli complètement. Enlever l'eau et la presser afin d'en extraire toute l'eau superflue.
6. Ajouter au custard et mélanger afin que la gélatine soit complètement dissoute et incorporée.
7. Verser dans un bol. Le placer dans de l'eau très froide.
8. Faire refroidir complètement le custard et mélanger de temps en temps. Le mélange ne doit pas prendre, mais doit s'épaissir.
9. Pendant ce temps, foutter la crème jusqu'à formation de pics.
10 Incorporer délicatement au custard afin d'obtenir un mélange homogène.
11. Verser dans des verres ou verrines de 150ml.
12. Mettre au frigo au moins pendant 4 heures ou toute une nuit.
Le whisky peut être remplacé par du brandy, sherry ou du rhum.
Idées de présentation:
Servir froid pour le dessert et décorer avec des biscuits (speculoos, shortbread, macaron, etc...), du chocolat râpé (ou des copeaux de chocolat) ou du praline.


text:
PERAPLAY CASINO BONUS Unlock a world of fantastic Peraplay casino bonus rewards! Elevate your gaming adventure with our exclusive bonuses and promotions, available at our online casino. From welcome bonuses to ongoing promotions, we offer a variety of rewards to enhance your gameplay. Join us now to discover a wealth of opportunities and boost your online casino experience.
Embark on a thrilling journey with Peraplay and unlock a world of fantastic casino bonus rewards! Elevate your gaming adventure to new heights with our exclusive bonuses and promotions, available at our online casino. Whether you're a new player or a seasoned enthusiast, our platform is designed to offer a variety of rewards that enhance every aspect of your gameplay.
At Peraplay, we believe in welcoming our players with open arms. Our welcome bonuses are crafted to provide you with an extra boost as you begin your gaming adventure with us. But the excitement doesn't stop there – we take pride in offering ongoing promotions that keep the thrill alive, ensuring that every visit to our online casino is filled with opportunities to maximize your wins and enjoyment.
What sets Peraplay apart is our dedication to providing a diverse array of rewards. From match deposit bonuses to free spins and loyalty programs, we've tailored our promotions to cater to the preferences of every player. Our goal is not just to be an online casino but a destination where players can discover a wealth of opportunities to enhance their online gaming experience.
Join us now to discover the full spectrum of rewards that Peraplay has to offer. Our user-friendly platform ensures easy navigation, allowing you to explore and make the most of our bonus offerings effortlessly. Whether you're seeking to boost your bankroll or extend your gaming sessions, Peraplay welcomes you to a world where opportunities abound.
Why choose Peraplay for your online casino experience? Our commitment to fairness, security, and responsible gaming ensures that you can enjoy our bonus rewards with peace of mind. Our transparent and secure environment is designed to prioritize your enjoyment and safety, making us the ideal choice for players seeking a trustworthy and rewarding online casino experience.
Don't miss out on the chance to boost your online casino adventure. Join Peraplay now and uncover a world of fantastic casino bonus rewards that will add excitement and value to every moment of your gameplay. Peraplay invites you to elevate your gaming experience, where every bonus is a step towards an even more thrilling and rewarding online casino journey.
Recently: Q9Play PH GF Play Login GF Play GF Play Bingoplus Casino Login App Q9PLAY Login Grandfinity Casino Login App Peraplay Official


text:
Hey, are you looking for a WordPress automation plugin that integrates Kali Formss with Salesforce? Then you are in the right place. In this article, I'm going to show you how to integrate Kali Forms and Salesforce using Bit Integrations.
You can automate in 2 minutes without writing a single line of code.
First of all, please go to WordPress admin > Plugins > Add new > Search "Bit Integrations" and install it.
First Step of Integration: Select Kali Forms as a trigger to integrate & follow the below steps.
Note: for more info, please check the Kali Forms doc.
Second Step of Integration: Select Salesforce integration as an action & follow the below steps.
It's so simple and easy, isn't it? With Bit Integrations you can connect 200+ platforms with WordPress, check the available integrations list here Link. You can create unlimited automation and integration workflow with Bit Integrations. Now, you can automate repetitive tasks and save time, money, and resources.


text:
MIAMI — Florida is among 21 states with a "Stand Your Ground Law," which gives people wide latitude to use deadly force rather than retreat during a fight. The self-defense law helps explain why a neighborhood watch captain has not been arrested in the shooting death of an unarmed teenager.
RELATED: Check Out Our Full Trayvon Martin Coverage
The Florida law lets police officers on the scene decide whether they believe the self-defense claim. In many cases, the officer's defer to making the arrest, letting the courts work out whether the deadly force is justified. In this case, however, police have said they are confident they did the right thing by not charging 28-year-old George Zimmerman, a white Hispanic.
'LIKE' NewsOne's FB Page To Stay Up On Black News From Around The World
The shooting's racial overtones have sparked a national outcry and debate over whether the shooting was warranted. And like many self-defense cases, two sides of the story have emerged.
Zimmerman told police he was attacked by 17-year-old Trayvon Martin after he had given up chasing the boy and he was returning to his truck. He had a bloody nose and blood on the back of his head, according to police. Martin's family questions Zimmerman's story, and believes if their races were reversed, there is no doubt a black shooter would be jailed, even if he claimed self-defense.
"They are making it look like Zimmerman is the victim and their son is in the grave," said Benjamin Crump, attorney for Martin's parents. "It's about equal justice."
The Justice Department and FBI have opened a civil rights investigation, and the local prosecutor has convened a grand jury April 10 to determine whether to charge Zimmerman.
Based on what's publicly known about the case, Michael Siegel, a former federal prosecutor who now directs the Criminal Justice Center and Clinics at the University of Florida law school, said it appears Sanford police were too quick to decide whether Zimmerman should be charged. If the evidence is murky, he said the usual practice is to make the arrest and let the court system sort it out.
"The law has definitely shifted and given a signal to law enforcement to be more careful," he said. "But in a case where the self-defense claim is weak, you would think they would do their job."
In a statement released Wednesday, Sanford Police Chief Bill Lee insisted his officers were "prohibited from making an arrest based on the facts and circumstances they had at the time," including physical evidence that supported Zimmerman's self-defense claim.
"The Sanford Police Department has conducted a complete and fair investigation of this incident," Lee said, adding that it's now up to prosecutors to determine whether to bring charges.
Late Wednesday, commissioners in Sanford, a city of 53,000 people outside Orlando that is 57 percent white and 30 percent black, voted 3-2 to express "no confidence" in the police chief.
Under the National Rifle Association-backed Florida law passed in 2005, Florida, unlike most other states, grants immunity from prosecution or arrest to suspects who successfully invoke the "stand your ground" claim. And if a suspect is arrested and charged, a judge can throw out the case well before trial based on a self-defense claim.
That happened Wednesday in an unrelated case. A Miami judge dismissed a second-degree murder case, citing the Stand Your Ground law and ruling that 25-year-old Greyston Garcia's testimony about self-defense was credible. The Miami Herald reported that Garcia was charged after chasing down and stabbing to death a 26-year-old suspected burglar in January.
Still, it's not enough for Zimmerman or anyone involved in a confrontation to simply claim innocence based on no duty to retreat, said Fordham University law professor Nicholas Johnson.
"By the Florida law, he is not relieved of the traditional and basic requirement of showing that he fairly perceived an imminent deadly threat," Johnson said.
Crump, the Martin family attorney, said the teenager weighed about 140 pounds and was carrying a bag of Skittles and a can of ice tea he had bought at a nearby convenience store when Zimmerman began following him in his sport utility vehicle. Zimmerman, meanwhile, weighs around 200 pounds and was armed with a 9mm semiautomatic handgun, which he had a permit to legally carry.
"So the facts that have come out that I have become aware of, would tend to indicate he should not be granted immunity," Roger Weeden, an Orlando defense attorney closely following the case, said of Zimmerman.
State figures indicate that justified use of deadly force by private citizens is on the upswing.
Florida Department of Law Enforcement statistics show that before the law was enacted in 2005, there were about 13 justified killings each year by citizens from 2000 to 2005. Between 2006 and 2010, the average has risen to 36 justified killings each year.
Some state lawmakers are already questioning whether the law should be revisited.
State Sen. Chris Smith, a Fort Lauderdale Democrat, said he is preparing a bill that would not allow a self-defense claim in cases where the shooter appeared to provoke the victim. That could have be a factor in the Martin case, where 911 calls and other evidence shows that Zimmerman was following the teenager in his vehicle and approached him aggressively despite specific instructions from police to back off.
"Stand your ground appears to be giving suspects better protections from arrest and prosecution than increased security measures for the citizens the law was originally intended to protect," said Smith, whose bill would also limit legal use of lethal force to places such as a person's home, car or workplace.
Lee, the police chief, said in a statement that the police dispatcher's "suggestion" to Zimmerman that he did not need to follow Martin "is not a lawful order that Mr. Zimmermann would be required to follow."
"Mr. Zimmerman's statement was that he had lost sight of Trayvon and was returning to his truck to meet the police officer when he says he was attacked by Trayvon," Lee said.
Republican Gov. Rick Scott, who was elected after the law's passage, said he's open to suggestions if the Martin case illustrates problems with it.
"If there's something wrong with the law that's in place, I think it's important we address it," Scott said Tuesday. "If what's happening is it's being abused, that's not right."