Simply adore these plants that are such prolific bloomers all year round in our tropical sun and high humidity. Flowers come in such a diverse range of marvelous colors and shades that are so exciting and captivating, making their slightly unpleasant scent seem so distant and tolerable.
Some gardeners may be wary of growing them as they are considered noxious weeds in some regions and included among 100 of the world's worst invasive species, as recorded in the Global Invasive Species Database (GISD). Well, avoid the wild ones and go for those cultivated varieties sold in the garden centres instead, which are mostly non-invasive and of shorter hybrids. We have grown these in pots and in flower beds and found them to be easily uprooted. Anyway, be aware that its leaves and unripe fruits are highly toxic, and may be fatal if ingested, so do keep out of reach of children and pets.
Read more about what lantana growers around the world have to say at Dave's Garden.
Plant type: Perennial flowering shrub (or annual in cold regions) that is native to tropical region in Central and South America. Now, popularly grown in gardens around the world as an ornamental plant.
Features: Lantana camara is the most cultivated species of among 150 species of the genus Lantana. A highly variable species with more than 650 varieties grown worldwide, in many different forms and a multitude of colors. It is a vigorous shrub that grows to 1-2 meters or more in height and as widely spread, though newer cultivars and varieties are much shorter and compact, with a mounding habit. It can be erect, sprawling or vinelike, and takes well to repeated hard pruning. It has a very strong root system that is fire-resistant.
It produces green-colored leaves that are opposite or whorled, ovate with a pointed tip and rounded base, and have serrated margin and a rugose surface. Also, they emit a typical herbal scent when crushed, offensive to some people but pleasant to others. Branches and leaves are covered with rough hairs that may cause skin irritation or rash allergies in some people when handled.
L. camara blooms almost non-stop throughout the year in the tropics, but in temperate regions they bloom from summer to late fall. Multi-colored scented flowers are small and tubular, and borne in axillary long-stalked heads or flat-topped clusters called umbels, measuring 2-5 cm across. Flower colors are endless, ranging from white to yellow, orange to red, pink and purple to rose, and flower clusters are seen in beautiful and attractive color combination that also changes as the flowers age. Lantana produces small and fleshy fruits too that are greenish-blue maturing to purplish black, and consumed by birds that dispersed the seeds. However, quite many of the cultivated hybrids and varieties are sterile (do not bear fruits/seeds), hence are non-invasive.
Culture (Care): L. camara is an easy to grow plant that does not need much maintenance. Being a tropical plant, it is happy in full sun and humid conditions, though it is very versatile and has been known to grow in diverse habitats under varying climatic conditions.
Light: Full sun or partial shade. Grows best and flowers prolifically in full sun.
Moisture: Require adequate water regularly though can be very drought resistant once established. Over watering can cause root rot or yellowing of leaves.
Soil: It is adaptable to most soil types, but must be well-drained. It is salt tolerant too.
Others: Prune whenever necessary to maintain shape, encourage bushiness and flowering. Feed sparingly as too much fertilizer will promote more leaves and less flowers. It is relatively pest free except for mealy bugs and whiteflies that are very attracted to it. Lantana camara is also susceptible to brown leaf spots caused by a fungus, Pseudocercospora guianensis. Read further for some Q&A on Lantana propagation, pruning and care at HortChat.com.
For temperate zones: Hardiness: USDA Zones 8-11. It may die back to the ground after frost at 28 degrees F (-2.2 degrees C) but recovers quickly every spring or when warm weather returns.
Propagation: From seeds that germinate easily or cuttings that root easily. Lantana hybrids and named varieties must be propagated by cuttings.
Usage: Plant Shrub Verbena or L. camara in mixed beds and borders, as a ground cover, shrub or hedge to add beauty and color to your garden landscape. It grows well in containers as a lovely specimen bush or above-ground planters to line road-dividers, walkways, streets, etc. Planted in hanging pots/baskets, it will be an attractive specimen at a patio, deck or porch. An excellent shrub to draw butterflies, bees and birds to your garden. In some of our local garden centres, we've seen many colored varieties grafted onto a single trunk and trained as a standard specimen which is stunning, truly an attention grabber! As Lantana plant tolerates salt spray, it is popularly grown along coastal regions, and also used for xeriscaping because the plant is very drought resistant as well.
L. camara has medicinal uses too, herbal and folkloric in nature. Other uses include the usage of its stems to produce household furnitures and pulp for paper, in addition to using its twigs and branches as simple brooms or as fuel. Know more at ISSG (Invasive Species Specialist Group) site.
or is it 'Lucky Red Hot Improved'?


Family: Big. Four brothers, two sisters, two parents, two extra parents, lots of cousins, aunts and uncles, a couple of nephews and nieces and two sister-in-laws.
The characters of Roswell belong to its founder - Jason Katims, Twentieth Century Fox Corporation, Regency Entertainment, and Monarchy B.V.
Thank you ChrissyP47 for this beautiful banner!!
Summary: Everything up to "Max in the City" has happened. Liz is starting to get sick and no one knows what's wrong. Simultaneously, she is haunted by nightmares - are they premonitions of the future or just dreams?
This beautiful banner is made by bordersinsanity. Thank you so much, Jen!!
Summary: This fic is based on a challenge by Dia (the girl with the many ideas). It basically is a love story with some complications (just to make it interesting!) Honestly, I don't really know where this fic will end so I'll guess you just have to follow me on this journey to find out.
Author's note: This fic is based on a challenge by Dia. There are some aspects in the challenge that I need to fulfill – but otherwise I have no clue myself to where this fic will end up, as with all of my other fics. But one thing I'm very clear about – feedback! It's what keeps my fingers typing.
This story has been rewritten (see "Lethal Whispers (rewritten)"), which means that this first version will, due to the lack of inspiration, never be completed in its original form. If you still wish to read the "old version" - even though it'll never have a proper ending - you're free to click on the link below.
Author's note: This story is based on a fantastic challenge by the even more fantastic Deejonaise.
Summary: Everything up to and including "The Departure" has happened (with some minor alterations) – or did it? Six years after a shooting incidence at the Crashdown in Roswell, New Mexico, Liz Parker is attending college with her best friend Maria DeLuca, and Liz is haunted by dreams. Dreams of a dark-haired boy she used to have biology classes with in high school. As the dreams continue to interrupt her life, Liz starts to question her reality and what she knows is true. Was no one injured that day in September or do Liz's dreams about her being shot and healed by the secretive boy harbor some truth?
Summary: Following the alteration to Liz and Maria's memory, the I-know-an-Alien-Club is forced to live with the consequences and adjust to a life where pretending that two of their friends are strangers becomes reality.
Due to the numerous questions left unanswered in "Mnemosyne's Daughter" I decided to write a companion piece, portraying the situation from Max's (and the rest of the gang) side.
Author's note: "Kiss Me" by Six Pence None the Richer was played on the radio and this popped into my head. A short one-parter.
Summary: It started with a pacifier. Liz Parker might have just been a toddler, but the war was nevertheless on. It did not help matters that her sworn enemy, the pacifier-thief, became best friends with her big brother, forcing them to occupy the same areas on more than one occasion. Would they ever declare peace or would they go on fighting forever?
This story is supposed to be fairly uncomplicated (compared to my other stories). It's snapshots of Max and Liz's lives, having more or less grown up together. And then of course, there's the undeniable background noise that is Max and Liz. Since it's snapshots, it will jump in time. But I'm going to be very specific in dating the chapters and will try my best to not confuse you. If I do, let me know, okay? And I'll sort it out.
Summary: Elizabeth Parker was a gifted woman; her intelligence both impressive and unnerving to the people she encountered in her daily life. Ms. Parker was plagued by odd nightmares at a fairly young age, inhibiting her possibilities for a great life. The night terrors featured a strange terrain, a dying lover and herself - losing her baby over and over again. Unbeknownst to her, her life was about to become threatened in real life, her prospective dark future inadvertently sending warning signals to a stranger. The premonitory visions experienced by a man of alien ancestry would eventually bring the two together, introducing Elizabeth Parker to a world she never thought to exist.
Author's note: I started writing on this story in 2003 - 12 years ago - and while simultaneously writing on a lot of my other fics, I lost my inspiration for this one. While being on RF, I always promised that I wouldn't leave any fics incomplete, so here I am with a remake of "Lethal Whispers". To jumpstart my inspiration I rewrote the whole thing, so even though there is still a version of this story in the "Dead and Buried"-section, this story will be slightly different and hence replaces the "old version".
Last edited by max and liz believer on Sun Jul 02, 2017 6:28 am, edited 83 times in total.
As a writer in different Roswellian-fanfiction communities, I was a proud and grateful recipient of some of the awards from annual annual award ceremonies.
It amounted to a total of 28 winning titles and 5 runner-ups. The specific details are listed below.
Disclaimer: The banners used below are not made by me. Credit goes to the fans of Roswell, who contributed their work to the awards.
I won this one together with Stef (Anais Nin), whom I was co-writing "Broken Wings"
Fictional Work: "Love By Any Other Name"
Thank you, everyone, who has not only read my stories, but also nominated and voted for them!
Last edited by max and liz believer on Sun Oct 25, 2015 5:52 pm, edited 5 times in total.
After 4 years of writing (most of this time was actually spent not writing ) I've finished "Solar Eclipse". This was my first Roswell fic and I cringe when I read the first chapters (e.g. I spell 'hey' with an 'a' instead of an 'e' ), but fortunately it got better... I'm really proud of this story and I'm intending to revise the first couple of chapters...someday.
After some months of no writing (Uni got in the way...and extended periods of no inspiration didn't make things any easier either) I'm on a roll with this story, making this the only story I'm currently updating.
This is my co-writing project with Anais Nin. However, due to school, Stefanie (Anais Nin) told me that she is unable to continue writing and left it up to me to finish the story. I don't exactly have much more time than her to write, but since I refuse to leave a story unfinished I decided to finish this story on my own. "Broken Wings" is currently in the Dead and Buried-section, but I am writing on it right now. However, I want to write all the chapters to the end before I bring the story back to life, so that you, my dear readers, won't have to wait for updates.
Okeydockily... That's all for now!
Last edited by max and liz believer on Mon Jan 18, 2016 1:40 pm, edited 2 times in total.
I can completely understand that need Thanks, Tanya!
It's called Mnemosyne's Daughter, can be found in the Conventional Couple forum and summary etc. can be found three posts above along with a direct link to the story.
"Mnemosyne's daughter" is finished but I'm planning to write a parallel story to that one to shed some light on Max's side.
Due to the numerous questions left unanswered in "Mnemosyne's Daughter" I decided to write a companion piece, portraying the situation from Max's (and the rest of the gang) side. The writing is coming along a bit slowly, but the first chapter is currently with my b-reader so the story will be posted shortly.
I'm working on "Broken Wings" at the moment. I'm almost up to date with the reposting and I'm currently writing on new chapters. So maybe...just maybe... I'll finally finish that one.
I was nominated "Superhero of the month" (March 2007) at Roswellian Chronicles.
And I found out that I was a runner up for "Best Portrayal of Isabel Evans" in "Love by Any Other Name" at Roswellian Chronicles.
To all of you who voted for me and made that possible - THANK YOU!!
Last edited by max and liz believer on Sun Oct 25, 2015 6:15 pm, edited 1 time in total.


text:
var creep_work5 = {

    /** @param {Creep} creep **/
    run: function(creep) {

        /*if (creep.carry.energy > 0 && creep.memory.priority != 'miner' && creep.memory.priority != 'minerNearDeath') {
            //All creeps check for road under them and repair if needed.
            var someStructure = creep.pos.lookFor(LOOK_STRUCTURES);
            if (someStructure.length && (someStructure[0].hitsMax - someStructure[0].hits >= 600) && someStructure[0].structureType == STRUCTURE_ROAD) {
                creep.repair(someStructure[0]);
            }
        }*/

        switch (creep.memory.priority) {
            case 'mule':
            case 'muleNearDeath':
                if (creep.ticksToLive <= creep.memory.deathWarn && creep.memory.priority != 'muleNearDeath') {
                    creep.memory.priority = 'muleNearDeath';
                }

                if (_.sum(creep.carry) <= 15) {
                    creep.memory.structureTarget = undefined;
                    let linkTarget = undefined;
                    if (creep.memory.linkSource) {
                        linkTarget = Game.getObjectById(creep.memory.linkSource)
                    }
                    if (linkTarget && linkTarget.energy >= 600) {
                        if (creep.withdraw(linkTarget, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                            creep.travelTo(linkTarget, {
                                ignoreRoads: true
                            });
                        }
                    } else {
                        let storageTarget = creep.room.storage;
                        if (creep.room.terminal && storageTarget.store[RESOURCE_ENERGY] < 100000 && creep.room.terminal.store[RESOURCE_ENERGY] > 0) {
                            storageTarget = creep.room.terminal;
                        } else if (creep.room.terminal && storageTarget.store[RESOURCE_ENERGY] < 250000 && creep.room.terminal.store[RESOURCE_ENERGY] > 31000) {
                            storageTarget = creep.room.terminal;
                        }
                        if (storageTarget) {
                            if (storageTarget.store[RESOURCE_ENERGY] >= 50) {
                                //Get from container
                                if (creep.withdraw(storageTarget, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                                    creep.travelTo(storageTarget, {
                                        maxRooms: 1
                                    });
                                }
                            } else {
                                var spawnTarget = Game.getObjectById(creep.memory.fromSpawn);
                                if (spawnTarget) {
                                    if (!creep.pos.isNearTo(spawnTarget)) {
                                        creep.travelTo(spawnTarget, {
                                            maxRooms: 1
                                        });
                                    }
                                }
                            }
                        }
                    }
                } else {
                    if (creep.carry[RESOURCE_ENERGY] == 0) {
                        if (creep.room.terminal) {
                            var currentlyCarrying = _.findKey(creep.carry);
                            if (creep.transfer(creep.room.terminal, currentlyCarrying) == ERR_NOT_IN_RANGE) {
                                creep.travelTo(creep.room.terminal, {
                                    maxRooms: 1
                                });
                            }
                        } else if (!creep.room.terminal && creep.room.storage) {
                            var currentlyCarrying = _.findKey(creep.carry);
                            if (creep.transfer(creep.room.storage, currentlyCarrying) == ERR_NOT_IN_RANGE) {
                                creep.travelTo(creep.room.storage, {
                                    maxRooms: 1
                                });
                            }
                        }
                    } else {
                        var savedTarget = Game.getObjectById(creep.memory.structureTarget)
                        var getNewStructure = false;
                        if (savedTarget) {
                            if (creep.build(savedTarget) == ERR_INVALID_TARGET) {
                                //Only other blocker is build.
                                creep.repair(savedTarget);

                                if (savedTarget.structureType != STRUCTURE_CONTAINER && savedTarget.structureType != STRUCTURE_STORAGE && savedTarget.structureType != STRUCTURE_CONTROLLER) {
                                    //Storing in spawn/extension/tower/link
                                    if (creep.transfer(savedTarget, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE && savedTarget.energy < savedTarget.energyCapacity) {
                                        creep.travelTo(savedTarget, {
                                            maxRooms: 1
                                        });
                                    } else {
                                        //assumed OK, drop target
                                        creep.memory.structureTarget = undefined;
                                        getNewStructure = true;
                                    }
                                } else {
                                    //Upgrading controller
                                    if (Memory.linkList[creep.room.name].length > 1) {
                                        var upgraderLink = Game.getObjectById(Memory.linkList[creep.room.name][1]);
                                        if (upgraderLink && upgraderLink.energy < 100) {
                                            if (creep.transfer(upgraderLink, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                                                creep.travelTo(upgraderLink, {
                                                    maxRooms: 1
                                                });
                                            }
                                        } else if (creep.upgradeController(savedTarget) == ERR_NOT_IN_RANGE) {
                                            if (Game.flags[creep.room.name + "Controller"]) {
                                                creep.travelTo(Game.flags[creep.room.name + "Controller"], {
                                                    maxRooms: 1
                                                });
                                            } else {
                                                creep.travelTo(savedTarget, {
                                                    maxRooms: 1
                                                });
                                            }
                                        }
                                    }
                                }
                            } else {
                                let bResult = creep.build(savedTarget);
                                if (bResult == ERR_NOT_IN_RANGE) {
                                    creep.travelTo(savedTarget, {
                                        maxRooms: 1
                                    });
                                } else if (bResult != OK) {
                                    creep.memory.structureTarget = undefined;
                                } else if (savedTarget.structureType == STRUCTURE_RAMPART) {
                                    //Become a repair drone
                                    creep.memory.priority = 'repair';
                                    creep.memory.previousPriority = 'mule';
                                    Memory.repairTarget[creep.room.name] = undefined;
                                }
                            }
                        } else {
                            creep.memory.structureTarget = undefined;
                        }
                        //Immediately find a new target if previous transfer worked
                        if (!creep.memory.structureTarget) {
                            var targets = undefined;
                            if (Memory.warMode) {
                                if (getNewStructure) {
                                    targets = creep.pos.findClosestByPath(FIND_STRUCTURES, {
                                        filter: (structure) => {
                                            return (structure.structureType == STRUCTURE_EXTENSION ||
                                                structure.structureType == STRUCTURE_SPAWN ||
                                                structure.structureType == STRUCTURE_LAB) && structure.energy < structure.energyCapacity && structure.id != savedTarget.id;
                                        }
                                    });
                                } else {
                                    targets = creep.pos.findClosestByPath(FIND_STRUCTURES, {
                                        filter: (structure) => {
                                            return (structure.structureType == STRUCTURE_EXTENSION ||
                                                structure.structureType == STRUCTURE_SPAWN ||
                                                structure.structureType == STRUCTURE_LAB) && structure.energy < structure.energyCapacity;
                                        }
                                    });
                                }
                            } else {
                                if (getNewStructure) {
                                    targets = creep.pos.findClosestByPath(FIND_STRUCTURES, {
                                        filter: (structure) => {
                                            return (structure.structureType == STRUCTURE_EXTENSION ||
                                                structure.structureType == STRUCTURE_SPAWN ||
                                                structure.structureType == STRUCTURE_LAB) && structure.energy < structure.energyCapacity && structure.id != savedTarget.id;
                                        }
                                    });
                                } else {
                                    targets = creep.pos.findClosestByPath(FIND_STRUCTURES, {
                                        filter: (structure) => {
                                            return (structure.structureType == STRUCTURE_EXTENSION ||
                                                structure.structureType == STRUCTURE_SPAWN ||
                                                structure.structureType == STRUCTURE_LAB) && structure.energy < structure.energyCapacity;
                                        }
                                    });
                                }
                            }

                            if (targets) {
                                creep.memory.structureTarget = targets.id;
                                if (getNewStructure) {
                                    creep.travelTo(targets, {
                                        maxRooms: 1
                                    });
                                } else if (creep.transfer(targets, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                                    creep.travelTo(targets, {
                                        maxRooms: 1
                                    });
                                } else {
                                    creep.memory.structureTarget = undefined;
                                }
                            } else {
                                //Store in terminal
                                let terminalTarget = Game.getObjectById(creep.memory.terminalID)
                                if (terminalTarget) {
                                    let targetEnergy = 0;
                                    if (creep.room.storage) {
                                        if (creep.room.storage.store[RESOURCE_ENERGY] >= 275000) {
                                            targetEnergy = 60000;
                                        } else if (creep.room.storage.store[RESOURCE_ENERGY] >= 50000) {
                                            targetEnergy = 30000;
                                        }
                                    }
                                    if (terminalTarget.store[RESOURCE_ENERGY] < targetEnergy && terminalTarget.store.getFreeCapacity() > 5000) {
                                        creep.memory.structureTarget = terminalTarget.id;
                                        if (creep.transfer(terminalTarget, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                                            creep.travelTo(terminalTarget, {
                                                maxRooms: 1
                                            });
                                        }
                                    } else {
                                        terminalTarget = undefined;
                                    }
                                }

                                if (!terminalTarget) {
                                    //Store in factory
                                    let factoryTarget = undefined;
                                    if (Memory.factoryList[creep.room.name]) {
                                        factoryTarget = Game.getObjectById(Memory.factoryList[creep.room.name][0]);
                                    }
                                    if (factoryTarget && factoryTarget.store[RESOURCE_ENERGY] < 10000 && factoryTarget.store.getFreeCapacity() >= creep.store[RESOURCE_ENERGY]) {
                                        creep.memory.structureTarget = Memory.factoryList[creep.room.name][0];
                                        if (creep.transfer(factoryTarget, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                                            creep.travelTo(factoryTarget, {
                                                maxRooms: 1
                                            });
                                        }
                                    } else {
                                        factoryTarget = undefined;
                                    }

                                    if (!factoryTarget) {
                                        var targets2;
                                        if (creep.room.controller.level == 8) {
                                            targets2 = creep.pos.findClosestByRange(FIND_STRUCTURES, {
                                                filter: (structure) => {
                                                    return (structure.structureType == STRUCTURE_POWER_SPAWN ||
                                                        structure.structureType == STRUCTURE_NUKER) && structure.energy < structure.energyCapacity;
                                                }
                                            });
                                        }
                                        if (targets2) {
                                            creep.memory.structureTarget = targets2.id;
                                            if (creep.transfer(targets2, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                                                creep.travelTo(targets2, {
                                                    maxRooms: 1
                                                });
                                            } else {
                                                creep.memory.structureTarget = undefined;
                                            }
                                        } else {
                                            //Build
                                            targets2 = creep.pos.findClosestByRange(FIND_CONSTRUCTION_SITES);
                                            if (targets2) {
                                                creep.memory.structureTarget = targets2.id;
                                                let buildResult = creep.build(targets2)
                                                if (buildResult == ERR_NOT_IN_RANGE) {
                                                    creep.travelTo(targets2, {
                                                        maxRooms: 1
                                                    });
                                                } else if (buildResult == ERR_NO_BODYPART) {
                                                    creep.suicide();
                                                } else if (targets2.structureType == STRUCTURE_RAMPART && buildResult == OK) {
                                                    //Change job to repair, reset room repair target.
                                                    creep.memory.priority = 'repair';
                                                    creep.memory.previousPriority = 'mule';
                                                    Memory.repairTarget[creep.room.name] = undefined;
                                                }
                                            } else {
                                                //Upgrade
                                                if (creep.room.controller.level == 8) {
                                                    //Check for nearby link and fill it if possible.
                                                    if (Memory.linkList[creep.room.name].length > 1) {
                                                        var upgraderLink = Game.getObjectById(Memory.linkList[creep.room.name][1]);
                                                        if (upgraderLink && upgraderLink.energy < 200) {
                                                            creep.memory.structureTarget = upgraderLink.id;
                                                            if (creep.transfer(upgraderLink, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                                                                creep.travelTo(upgraderLink, {
                                                                    maxRooms: 1
                                                                });
                                                            }
                                                        } else {
                                                            //Turn into a repair worker temporarily
                                                            creep.memory.priority = 'repair';
                                                            creep.memory.previousPriority = 'mule';
                                                        }
                                                    }
                                                } else {
                                                    creep.memory.structureTarget = creep.room.controller.id;
                                                    if (creep.upgradeController(creep.room.controller) == ERR_NOT_IN_RANGE) {
                                                        if (Game.flags[creep.room.name + "Controller"]) {
                                                            creep.travelTo(Game.flags[creep.room.name + "Controller"], {
                                                                maxRooms: 1
                                                            });
                                                        } else {
                                                            creep.travelTo(creep.room.controller, {
                                                                maxRooms: 1
                                                            });
                                                        }
                                                    } else if (creep.upgradeController(creep.room.controller) == ERR_NO_BODYPART) {
                                                        creep.suicide();
                                                    }
                                                }
                                            } //targets2
                                        } //FactoryTarget
                                    } //TerminalTarget
                                } //targets
                            } //structureTarget
                        } //carry energy check
                    } //storage target check
                } //carry check
                break;
            case 'distributor':
            case 'distributorNearDeath':
                if (creep.ticksToLive <= creep.memory.deathWarn && creep.memory.priority != 'distributorNearDeath') {
                    creep.memory.priority = 'distributorNearDeath';
                }

                if (creep.memory.previousPriority == 'labWorker' && Game.time >= creep.memory.nextResourceCheck && Game.flags[creep.memory.primaryFlag] && creep.memory.lab4) {
                    DoResourceCheck(creep);
                }

                if (_.sum(creep.carry) <= 0) {
                    if (creep.memory.previousPriority == 'labWorker' && creep.memory.hasDistributed) {
                        creep.memory.priority = 'labWorker';
                        break;
                    }
                    creep.memory.structureTarget = undefined;
                    //Get from storage
                    //Look for dropped energy to use
                    let locatedTarget = false;
                    if (creep.memory.groundEnergy) {
                        let groundTarget = Game.getObjectById(creep.memory.groundEnergy)
                        if (groundTarget) {
                            if (creep.pickup(target) == ERR_NOT_IN_RANGE) {
                                creep.travelTo(groundTarget, {
                                    ignoreRoads: true
                                });
                                locatedTarget = true;
                            } else {
                                creep.memory.groundEnergy = undefined;
                            }
                        } else {
                            creep.memory.groundEnergy = undefined;
                        }
                    }
                    if (!locatedTarget && Memory.roomsUnderAttack.indexOf(creep.room.name) === -1) {
                        let groundItems = creep.pos.findInRange(FIND_DROPPED_RESOURCES, 10, {
                            filter: {
                                resourceType: RESOURCE_ENERGY
                            }
                        });
                        if (groundItems.length > 0) {
                            if (creep.pickup(groundItems[0]) == ERR_NOT_IN_RANGE) {
                                creep.travelTo(groundItems[0], {
                                    ignoreRoads: true
                                });
                                creep.memory.groundEnergy = groundItems[0].id;
                                locatedTarget = true;
                            }
                        }
                    }
                    if (!locatedTarget) {
                        //Check 4th link first just in case
                        var linkTarget = undefined;
                        if (creep.memory.linkSource) {
                            linkTarget = Game.getObjectById(creep.memory.linkSource)
                        }
                        if (linkTarget && linkTarget.energy >= 600) {
                            if (creep.withdraw(linkTarget, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                                creep.travelTo(linkTarget, {
                                    ignoreRoads: true
                                });
                            }
                        } else {
                            var storageTarget = creep.room.storage;
                            if (creep.room.terminal && storageTarget.store[RESOURCE_ENERGY] < 100000 && creep.room.terminal.store[RESOURCE_ENERGY] > 0) {
                                storageTarget = creep.room.terminal;
                            } else if (creep.room.terminal && storageTarget.store[RESOURCE_ENERGY] < 250000 && creep.room.terminal.store[RESOURCE_ENERGY] > 31000) {
                                storageTarget = creep.room.terminal;
                            }
                            if (storageTarget) {
                                if (creep.withdraw(storageTarget, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                                    creep.travelTo(storageTarget, {
                                        ignoreRoads: true
                                    });
                                }
                            }
                        }
                    }
                } else if (creep.room.energyAvailable < creep.room.energyCapacityAvailable) {
                    if (creep.memory.previousPriority == 'labWorker' && !creep.memory.hasDistributed) {
                        creep.memory.hasDistributed = true;
                    }
                    var savedTarget = Game.getObjectById(creep.memory.structureTarget);
                    var getNewStructure = false;
                    if (savedTarget && savedTarget.energy < savedTarget.energyCapacity) {
                        if (creep.transfer(savedTarget, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                            creep.travelTo(savedTarget);
                        } else {
                            getNewStructure = true;
                            creep.memory.structureTarget = undefined;
                        }
                    } else if (savedTarget) {
                        getNewStructure = true;
                        creep.memory.structureTarget = undefined;
                    }
                    if (!creep.memory.structureTarget) {
                        var target = undefined;
                        if (getNewStructure) {
                            target = creep.pos.findClosestByPath(FIND_STRUCTURES, {
                                filter: (structure) => {
                                    return (structure.structureType == STRUCTURE_EXTENSION ||
                                        structure.structureType == STRUCTURE_SPAWN || structure.structureType == STRUCTURE_LAB) && structure.energy < structure.energyCapacity && structure.id != savedTarget.id;
                                }
                            });
                        } else {
                            target = creep.pos.findClosestByPath(FIND_STRUCTURES, {
                                filter: (structure) => {
                                    return (structure.structureType == STRUCTURE_EXTENSION ||
                                        structure.structureType == STRUCTURE_SPAWN || structure.structureType == STRUCTURE_LAB) && structure.energy < structure.energyCapacity;
                                }
                            });
                        }
                        if (!target) {
                            //Find closest by path will not return anything if path is blocked
                            if (getNewStructure) {
                                target = creep.pos.findClosestByRange(FIND_STRUCTURES, {
                                    filter: (structure) => {
                                        return (structure.structureType == STRUCTURE_EXTENSION ||
                                            structure.structureType == STRUCTURE_SPAWN || structure.structureType == STRUCTURE_LAB) && structure.energy < structure.energyCapacity && structure.id != savedTarget.id;
                                    }
                                });
                            } else {
                                target = creep.pos.findClosestByRange(FIND_STRUCTURES, {
                                    filter: (structure) => {
                                        return (structure.structureType == STRUCTURE_EXTENSION ||
                                            structure.structureType == STRUCTURE_SPAWN || structure.structureType == STRUCTURE_LAB) && structure.energy < structure.energyCapacity;
                                    }
                                });
                            }
                        }

                        if (target) {
                            if (getNewStructure) {
                                creep.travelTo(target);
                                creep.memory.structureTarget = target.id;
                            } else if (creep.transfer(target, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                                creep.travelTo(target);
                                creep.memory.structureTarget = target.id;
                            }
                        }
                    }
                } else if (Memory.roomsUnderAttack.indexOf(creep.room.name) == -1 && creep.room.terminal && creep.room.storage && creep.room.storage.store[RESOURCE_ENERGY] < 250000 && creep.room.terminal.store[RESOURCE_ENERGY] > 31000) {
                    //Being supplied, drop in storage
                    if (creep.memory.previousPriority == 'labWorker' && !creep.memory.hasDistributed) {
                        creep.memory.hasDistributed = true;
                    }
                    if (creep.transfer(creep.room.storage, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                        creep.travelTo(creep.room.storage);
                    }
                } else if (creep.room.controller.level != 8 && Memory.linkList[creep.room.name].length > 1) {
                    if (creep.memory.previousPriority == 'labWorker' && !creep.memory.hasDistributed) {
                        creep.memory.hasDistributed = true;
                    }
                    var upLink = Game.getObjectById(Memory.linkList[creep.room.name][1])
                    if (upLink) {
                        if (creep.transfer(upLink, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                            creep.travelTo(upLink);
                        }
                    }
                } else if (_.sum(creep.carry) < creep.carryCapacity) {
                    if (creep.memory.previousPriority == 'labWorker' && !creep.memory.hasDistributed) {
                        creep.memory.hasDistributed = true;
                    }
                    //Get from storage
                    //Check 4th link first just in case
                    var linkTarget = undefined;
                    if (creep.memory.linkSource) {
                        linkTarget = Game.getObjectById(creep.memory.linkSource)
                    }
                    if (linkTarget && linkTarget.energy >= 600) {
                        if (creep.withdraw(linkTarget, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                            creep.travelTo(linkTarget);
                        }
                    } else {
                        var storageTarget = creep.room.storage;
                        if (creep.room.terminal && storageTarget.store[RESOURCE_ENERGY] < 100000 && creep.room.terminal.store[RESOURCE_ENERGY] > 0) {
                            storageTarget = creep.room.terminal;
                        } else if (creep.room.terminal && storageTarget.store[RESOURCE_ENERGY] < 250000 && creep.room.terminal.store[RESOURCE_ENERGY] > 31000) {
                            storageTarget = creep.room.terminal;
                        }
                        if (storageTarget) {
                            if (creep.withdraw(storageTarget, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
                                creep.travelTo(storageTarget);
                            }
                        }
                    }
                } else {
                    if (creep.memory.previousPriority == 'labWorker' && !creep.memory.hasDistributed) {
                        creep.memory.hasDistributed = true;
                    }
                    var homeSpawn = Game.getObjectById(creep.memory.fromSpawn)
                    if (homeSpawn) {
                        if (!creep.pos.isNearTo(homeSpawn)) {
                            creep.travelTo(homeSpawn);
                        } else {
                            //Make sure you're not in the way
                            let talkingCreeps = creep.pos.findInRange(FIND_MY_CREEPS, 1, {
                                filter: (thisCreep) => (creep.id != thisCreep.id && thisCreep.saying)
                            })
                            if (talkingCreeps.length) {
                                let coords = talkingCreeps[0].saying.split(";");
                                if (coords.length == 2 && creep.pos.x == parseInt(coords[0]) && creep.pos.y == parseInt(coords[1])) {
                                    //Standing in the way of a creep
                                    let thisDirection = creep.pos.getDirectionTo(talkingCreeps[0].pos);
                                    creep.move(thisDirection);
                                    creep.say("\uD83D\uDCA6", true);
                                }
                            }
                        }
                    }
                }
                break;
            case 'mineralMiner':
            case 'mineralMinerNearDeath':
                if (creep.ticksToLive <= creep.memory.deathWarn && creep.memory.priority != 'mineralMinerNearDeath') {
                    creep.memory.priority = 'mineralMinerNearDeath';
                }

                let thisMineral = Game.getObjectById(creep.memory.mineralID);

                if (thisMineral.mineralAmount == 0 && creep.memory.onPoint) {
                    //Nothing left to do
                    creep.suicide();
                } else if (Game.time >= creep.memory.nextMine) {
                	if (creep.memory.storageUnit && Game.getObjectById(creep.memory.storageUnit) && Game.getObjectById(creep.memory.storageUnit).store.getFreeCapacity() < 40) {
                		//skip and wait until room is made
                		creep.say("\u2716\uFE0F", false);
                	} else {
                		let harvestResult = creep.harvest(thisMineral);
	                    if (harvestResult == ERR_NOT_IN_RANGE) {
	                        creep.travelTo(thisMineral);
	                        if (!creep.memory.travelDistance && creep.memory._trav && creep.memory._trav.path) {
	                            creep.memory.travelDistance = creep.memory._trav.path.length;
	                            creep.memory.deathWarn = ((creep.memory.travelDistance * 2) + _.size(creep.body) * 3) + 15;
	                        }
	                    } else if (harvestResult == OK) {
	                        creep.memory.nextMine = Game.time + 6;
	                        if (!creep.memory.storageUnit) {
	                            let containers = thisMineral.pos.findInRange(FIND_STRUCTURES, 1, {
	                                filter: (structure) => structure.structureType == STRUCTURE_CONTAINER
	                            });
	                            if (containers.length) {
	                                if (creep.pos != containers[0].pos) {
	                                    creep.travelTo(containers[0]);
	                                } else {
	                                    creep.memory.onPoint = true;
	                                }
	                                creep.memory.storageUnit = containers[0].id;
	                            } else {
	                                let sites = thisMineral.pos.findInRange(FIND_CONSTRUCTION_SITES, 1)
	                                if (!sites.length) {
	                                    //Create new container
	                                    creep.room.createConstructionSite(creep.pos.x, creep.pos.y, STRUCTURE_CONTAINER);
	                                }
	                            }
	                        } else if (!creep.memory.onPoint) {
	                            let thisContainer = Game.getObjectById(creep.memory.storageUnit);
	                            if (thisContainer && creep.pos != thisContainer.pos) {
	                                creep.travelTo(thisContainer);
	                            } else if (thisContainer && creep.pos == thisContainer.pos) {
	                                creep.memory.onPoint = true;
	                            } else {
	                                creep.memory.storageUnit = undefined;
	                                creep.memory.onPoint = false;
	                            }
	                        }
	                    }
                	}
                }
                break;
        }
    }
};

module.exports = creep_work5;

function repairCompare(a, b) {
    if (a.hits < b.hits)
        return -1;
    if (a.hits > b.hits)
        return 1;
    return 0;
}

function orderPriceCompareBuying(a, b) {
    if (a.price < b.price)
        return -1;
    if (a.price > b.price)
        return 1;
    return 0;
}

function DoResourceCheck(creep) {
    creep.memory.nextResourceCheck = Game.time + 50;
    if (creep.memory.resourceChecks < 15) {
        var lab4 = Game.getObjectById(creep.memory.lab4);
        var lab5 = Game.getObjectById(creep.memory.lab5);
        if (creep.room.terminal && creep.room.terminal.store[creep.memory.mineral6] >= 40000) {
            //Immediately swap flags
            creep.memory.resourceChecks = 15;
            if (creep.memory.mineral5 == RESOURCE_CATALYST && creep.memory.mineral6 != RESOURCE_CATALYZED_GHODIUM_ACID) {
                //If producing something with catalyst, make an order.
                var foundOrder = _.findKey(Game.market.orders, {
                    'roomName': creep.room.name,
                    'resourceType': creep.memory.mineral6
                });
                if (foundOrder) {
                    //Update quantity if less than 40000
                    var thisOrder = Game.market.orders[foundOrder];
                    if (thisOrder.remainingAmount < 40000) {
                        var comparableOrders = Game.market.getAllOrders(order => order.resourceType == creep.memory.mineral6 && order.type == ORDER_SELL);
                        if (comparableOrders.length > 0) {
                            comparableOrders.sort(orderPriceCompareBuying);
                            var targetPrice = comparableOrders[0].price;
                            if (Memory.RoomsAt5.indexOf(comparableOrders[0].roomName) == -1) {
                                //Not competing with self, undercut!
                                if ((thisOrder.price - 0.5) > targetPrice) {
                                    targetPrice = thisOrder.Price
                                } else {
                                    targetPrice = targetPrice - 0.001
                                }
                            }
                            //Regardless of everything, never dip below 1.
                            if (targetPrice < 0.5) {
                                targetPrice = 0.5
                            }
                            Game.market.changeOrderPrice(foundOrder, targetPrice);
                            Game.market.extendOrder(foundOrder, creep.room.terminal.store[creep.memory.mineral6] - thisOrder.remainingAmount);
                        } else {
                            if (thisOrder.price < 0.5) {
                                Game.market.changeOrderPrice(foundOrder, 0.5);
                            }
                            Game.market.extendOrder(foundOrder, creep.room.terminal.store[creep.memory.mineral6] - thisOrder.remainingAmount);
                        }
                    } else {
                        //Keep prices up to date
                        var comparableOrders = Game.market.getAllOrders(order => order.resourceType == creep.memory.mineral6 && order.type == ORDER_SELL);
                        if (comparableOrders.length > 0) {
                            comparableOrders.sort(orderPriceCompareBuying);
                            var targetPrice = comparableOrders[0].price;
                            if (Memory.RoomsAt5.indexOf(comparableOrders[0].roomName) == -1) {
                                //Not competing with self, undercut!
                                if ((thisOrder.price - 0.5) > targetPrice) {
                                    targetPrice = thisOrder.Price
                                } else {
                                    targetPrice = targetPrice - 0.001
                                }
                            }
                            //Regardless of everything, never dip below 1.
                            if (targetPrice < 0.5) {
                                targetPrice = 0.5
                            }
                            Game.market.changeOrderPrice(foundOrder, targetPrice);
                        }
                    }
                } else {
                    //Create new order, 0.001 less than lowest comperable order
                    var comparableOrders = Game.market.getAllOrders(order => order.resourceType == creep.memory.mineral6 && order.type == ORDER_SELL);
                    if (comparableOrders.length > 0) {
                        comparableOrders.sort(orderPriceCompareBuying);
                        var targetPrice = comparableOrders[0].price;
                        if (Memory.RoomsAt5.indexOf(comparableOrders[0].roomName) == -1) {
                            //Not competing with self, undercut!
                            targetPrice = targetPrice - 0.001
                        }
                        //Regardless of everything, never dip below 1.
                        if (targetPrice < 0.5) {
                            targetPrice = 0.5
                        }
                        Game.market.createOrder(ORDER_SELL, creep.memory.mineral6, targetPrice, creep.room.terminal.store[creep.memory.mineral6], creep.room.name);
                    }
                }
            }
            //Game.notify('PRODUCTION MAXED: ' + creep.room.name + ' has swapped off ' + creep.memory.primaryFlag + ' New Target : ' + creep.memory.backupFlag);
        } else if (lab4 && lab5 && (lab4.mineralAmount < creep.carryCapacity || lab5.mineralAmount < creep.carryCapacity)) {
            //tick up, but don't swap yet
            creep.memory.resourceChecks = creep.memory.resourceChecks + 1;
            if (creep.memory.resourceChecks >= 15) {
                //Game.notify('NO MATERIALS:' + creep.room.name + ' has swapped off ' + creep.memory.primaryFlag + ' New Target : ' + creep.memory.backupFlag);
            }
        }
    } else {
        //Still can't find resources, switch flags
        if (!Game.flags[creep.memory.backupFlag] && Game.flags[creep.memory.primaryFlag]) {
            creep.room.createFlag(Game.flags[creep.memory.primaryFlag].pos, creep.memory.backupFlag, COLOR_CYAN);
            Game.flags[creep.memory.primaryFlag].remove();
        } else if (Game.flags[creep.memory.backupFlag] && Game.flags[creep.memory.primaryFlag]) {
            //Just in case
            Game.flags[creep.memory.primaryFlag].remove();
        }
    }
}

redpajama_set_name: RedPajamaGithub


text:
Treat your goldfish well – or else!
Depriving a goldfish of fishy companions has become a crime in Switzerland.
Michael Cook | May 2 2008 |
Switzerland is well on its way to becoming the most dignified country in the world, after its federal parliament decreed that goldfish must be protected against physical and psychological abuse. From September 1, Swiss aquariums must have an opaque side to allow the fish live in a natural cycle of day and night. The new law sets rigorous standards for the treatment of all "social animals". It will be an offence, for instance, to keep only one guinea pig or budgerigar. Or one rhinoceros, apparently, because the law also covers pet rhinoceroses.
The Swiss are amongst the best educated people in the world, but they are about to be educated even further. Prospective dog owners will have to pay for and complete a two-part course on the theory and practice of dog ownership. Anglers will also be required to take a course on handling fish with dignity.
The Swiss are pioneers in this field. In 1992 Switzerland was the first country in the world to begin to phase out battery hens. Since then the law has become even tougher. In 2006, for instance, a researcher was forbidden to give thirsty monkeys a drink of water because a reward mechanism to get them to carry out a task was deemed harmful to their dignity.
And if that is not absurd enough, it now seems possible that the ever-expanding boundaries of non-human dignity will include plants.
The Swiss Constitution requires respect for "the dignity of creation when handling animals, plants and other organisms". The body in charge of interpreting this Delphic phrase, the Federal Ethics Committee on Non-Human Biotechnology, has just released a discussion paper about the dignity of plants. In due course its astonishing conclusions could become law.
Amongst them is that "decapitation of wild flowers at the roadside without rational reason" is essentially a crime. In fact, the committee was unanimous in its agreement that any "arbitrary harm caused to plants[is] morally impermissible." Genetic modification of plants would be permitted -- but only if their "independence", including their reproductive ability, is ensured. This could mean, for instance, that producing sterile roses or seedless fruit would become an offence under Swiss law.
None of this is a joke. The world's leading science journal, Nature, recently reported that Swiss biologists are worried. Funding for their work might get cut off if they offend the dignity of plants.
Switzerland's passion for the dignity of all creatures great and small, however, rings hollow in view of its treatment of human beings. It is one of the few countries in the world where assisted suicide is legal. The best-known agency for DIY euthanasia, a Zurich-based group called – what else? – Dignitas, recently opened its thanatorium in the same building as Switzerland's biggest legal brothel. Surely that violates one of the numerous provisions in the constitution guaranteeing human dignity. As it is now, there seems to be about as much bureaucracy involved in killing a Swiss goldfish as there is in killing a human being. (Special chemicals are required since flushing fish down the toilet has been deemed undignified.)
The poor, befuddled Swiss have clearly lost the plot on what dignity is and who is entitled to it.
But they are not alone. Around the world the concept of human dignity is in crisis. Influential government reports in country after country are now condescendingly placing scare quotes on either side of the phrase "human dignity".
Britain's Human Fertilisation and Embryology Authority last year complained that "it is difficult to gain a consensus on the definition of human dignity". And the Irish Council on Bioethics last month declared that "its exact meaning is elusive". The President's Council on Bioethics in the US has just released a fat report which tries to clarify what it is. Although many of the contributors defend it, neuroscientist Patricia Churchland guts "human dignity" of all content. She contends, like many of her colleagues, that morality and free will are essentially illusory and that past defenders of "human dignity" have been self-righteous, totalitarian fanatics.
The trigger for this controversy is a widely-discussed paper written four years ago by an American bioethicist, Ruth Macklin, in the British Medical Journal. She stated bluntly that "dignity is a useless concept in medical ethics and can be eliminated without any loss of content."
Well, the Swiss folderol suggests we will all be very sorry when "human dignity" is eliminated. As the scope of human dignity in Switzerland has shrunk to the point that international death tourism there has become a boutique business, the scope of non-human dignity has expanded. This is to be expected. For years the radical fringe of animal rights activists has defended animals against violence by using violence against humans.
What is unexpected is that there seems to be no brake on the ever-expanding circle of dignity. You would think that it must stop somewhere above spiders and slugs. But the Swiss experience suggests otherwise. Once the DNA of human dignity has been tampered with, it keeps expanding by some crazy logic, unrestrained by common sense, until it includes plants, and even "other organisms". It is already burdening Swiss farmers with additional costs and hampering the work of Swiss scientists. Now it threatens to turn treading on wildflowers into a crime. And it might not stop there. What constitutes respect for the dignity of bacteria and viruses must send shivers through the Swiss pharmaceutical industry.
The Swiss need to recover the conviction that human beings deserve a special status because they are unique in the universe, the only beings with reason and free will. That is not only the wellspring of our dignity, but the source of our obligation to treat animals and plants with due care. Otherwise they will end up conferring rights upon irrational beings who cannot appreciate their dignity by stealing them from rational beings who can.
Michael Cook is editor of MercatorNet.
MORE ON THESE TOPICS | human dignity, Peter Singer
You might also like to read:
The law and Martin Luther King Jr
Making the case for a new Olympics model
A vote's consequences and a voter's conscience
This article is published by Michael Cook and MercatorNet.com under a Creative Commons licence. You may republish it or translate it free of charge with attribution for non-commercial purposes following these guidelines. If you teach at a university we ask that your department make a donation. Commercial media must contact us for permission and fees. Some articles on this site are published under different terms.
MOST READ IN WEEK
What do professors want?
The real harms of prostitution
An ecological blind spot
50 years of the Pill
Red carpet morality
The pain of anonymous parentage
How the Nazis engineered a paedophile priests scare
The ultimate conversation stopper: does life have meaning?
The hidden costs of coeducation
Teleprompter president
Follow MercatorNet
MercatorNet RSS feed
Sections and Blogs
audited accounts
New Media Foundation
L1 488 Botany Rd
editor@mercatornet.com
skype: mercatornet
© New Media Foundation

redpajama_set_name: RedPajamaCommonCrawl


Foreign Policy Diary – China's Uyghur Problem: Threat of Destabilization 5 out of 5 based on 3 ratings. 3 user reviews.
First of all, Beijing is concerned over the Uyghur Islamist threat. Chinese intelligence believes that about 3000 Uighur militants have been fighting at the side of ISIS and Al Nusra in Syria. Most of them get training in Afghanistan and then militants move to Syria or Iraq. China notes that the Turkish National Intelligence Organization (MIT) provides support to them. On account of this, SouthFront: Analysis & Intelligence wants to remember that Saudi Arabia's special services have a strong position in Afghanistan and links with Al Nusra. So, it's hardly possible to believe that MIT is the only supporter of these developments.
On the other hand, Yu Zhengsheng's public activity is linked to his possibility to become the head of the Politburo Standing Committee. Experts believe that in this case Chinese security chiefs will get more influence to impact the China's foreign policy. So, it will likely start to counter Islamist militant groups more actively. This will lead to the intensification of antagonisms with MIT which supports Uyghur separatists in China.
In any case, Beijing will prefer to act on a foreign soil, at least, in the Middle East and Central Asia. China has major economic interests in Tajikistan. It needs a stability of the regime there. Another important point is Uzbekistan. The Islamic Movement of Uzbeksitan (IMU) militant group is a main threat there. It has a major human potential. A destabilization in Uzbeksitan will definitely fire the whole Central Asia.


Amaretto - Strong almond fragrance along with a dash of ripe cherries.
Apple Pie - A nice blend of apple & cinnamon that smells good enough to eat.
over the delicate bouquet of lilies, roses & freesia.
and woodsey fir, delicate nutmeg and sweet berries.
subtle hints of fresh cut herbs.
warm butter cake & vanilla.
paired with ripe and succulent fig.
leaves, vanilla and just a trace of strawberries.
Cedar Closet - The woody and earthy aroma of a cedar tree.
fresh summer breeze, potent with jasmine, violet & gardenia.
crisp cucumber with sweet honeydew melon.
vanilla with hints of cinnamon, nutmeg and clove.
leaves and a touch of lime.
aromatic tree resin thats sweet and spicy.
French Vanilla - A creamy and sugary vanilla aroma.
of tulip, lilac, hyacinth, jasmine, rose & carnation.
grass on a sunny summer's day.
zesty orange flowers and tropical tuberose.
vanilla & ginger baked into our candles.
Ginger Peach - Warm ginger coupled with plump peaches.
with a hint of sweet juicy oranges.
base notes of hazelnut and butter.
hints of rose and ylang ylang.
with hints of lilac, rose and jasmine.
cream and chocolate with a hint of liquor.
peppermint, warm vanilla and enticing musk.
its cool, sweet and earthy undertones.
Lilac - Fresh and clean fragrance of a blooming lilac bush.
of clean & uplifting walks in the moonlight.
cocoa that's addictive and scrumptious.
strawberries with a hint of vanilla.
a mountain top with flowery undertones.
cinnamon, wild berries & bitter orange peels.
faint hints of creamy vanilla filling.
and a sprinkling of cinnamon & balsam.
Patchouli - An exotic, earthy and sensual scent.
Pine - The natural & woody essence of fir and balsam trees.
iris accompanied by traces of plum, lemon, lime and apple.
with nuances of nutmeg, clove and ginger.
raspberries with hints of warming spices and alcohol.
magnolia flowers, white gardenia and honeysuckle blossoms.
cranberries, cinnamon & ground cloves.
pinch of vanilla and musk.
tangerines that is clean, refreshing and delicious.
and buttery vanilla with soft mossy undertones.
mingles with just a pinch of spicy and tangy ginger.
tangerine, lemon satsuma, bergamot and oakmoss.


Fri., 10 a.m.-8 p.m.; Sat., 10 a.m.-7 p.m.; Sun., Noon-5 p.m.
Many of the familiar exhibitors from Christmas Village Festival switch gears to create a spring shopping experience for their customers. One-of-a-kind Easter dresses can be found on the same aisle as handmade garden decor or gourmet candy. Original art, handcrafted soaps and unique jewelry, created by artisans from across America, fill the BJCC for this annual event.


CHESTERLAND — Steve Daley knows his Catholic Central football team faces a monumental challenge Friday in its Division VI, Region 21 quarterfinal game.
The veteran coach also knows his Crusaders will give it everything they have.
The 7-3 and seventh-seeded Crusaders will face unbeaten Kirtland, the second seed, at 7 p.m. Due to poor field conditions, the game will be played at West Geauga High School.
"They're everything they are billed to be, no doubt about it," Daley said when discussing the Hornets. "They're number one in the AP regular season poll, they have size and they have athletes.
Kirtland has played for a state title in six of the last seven years. In 2017, the Hornets dropped a 34-11 verdict to Maria Stein Marion Local in the Division VI championship game. In putting together a perfect regular season, Kirtland outscored its opponents 409 to 32. The Hornets have not allowed a rushing touchdown and the first team defense hasn't surrendered a single point.
"They like to run the football and they run it very well," Daley said. "They have better size than we do up front and they use their size well.
Since becoming the head coach at Kirtland, Laverde has compiled a record of 153-17.
Kirtland, which has an all-time playoff mark of 33-10, has run for 3,094 yards and passed for 948. Its defense has surrendered just 637 yards on the ground and 658 via the air.
Tommy Powers directs the Kirtland offense. He has completed 37 of his 54 passes for 738 yards and 11 touchdowns. He has yet to throw an interception.
The running game is led by Joey Torok and Jake Neibecker. They both earned second team all-Ohio honors a season ago when they combined for 3,000 rushing yards and 34 touchdowns in limited duty –because Kirtland has so many lopsided scores.
Through 10 games this season, Torok has 81 carries for 1,219 yards and 20 touchdowns. Neibecker has contributed 726 yards on 78 trips and scored 11 times.
They run behind a huge offensive line, anchored by Jack Bailey and Kalid Alabsi. The line in fact is the biggest in Kirtland history, averaging 266 pounds across the front five.
Mason Sullivan and Michael Bottesch both have 10 catches for the Hornets, who have a roster of 77 players.
"We're embracing the challenge," Daley said. "We are going up there and plan to give it our best shot. We're going to do everything as coaches and our kids are going to do everything they can as players to make stops and score points.
Central is making its second straight trip to the Division VI playoffs. Last season, the Crusaders competed in Region 23 and were moved to Region 21 this year. Central's three losses have come to teams with a combined record of 27-1 (Wheeling Central 9-0, Fort Frye 9-0 and Southern Local 9-1).
"I can't say enough about the effort our kids have put forth this year," Daley said. "The last several weeks we have played with 21 guys in uniform–we're the smallest Division VI school in the state and we're in the toughest Division VI region.
Three of the top five teams in the final Division VI AP poll (Kirtland, Mogadore and McDonald) are assigned to Region 21.
Offensively, the Crusaders average 374 yards a game and 33 points. They have run for 2,730 yards and thrown for 1,005. The Central defense surrenders 252 yards a game and 18 points.
Senior quarterback Justin Hartzell makes the Central offense go. He has run for 1,110 yards and 16 touchdowns. Through the air, he's completed 66 passes for 1,005 yards and nine touchdowns. Daley believes Hartzell is the first quarterback in Central history to go over 1,000 in both rushing and passing.
Junior tailback Jayden Keeder has 643 rushing yards and six touchdowns. Jeffrey Dawson, also a junior, has 429 yards on 72 attempts.
Senior Anthony Fallon is Central's top receiver with 15 catches for 213 yards. Seniors Matt Bell and Noah Fayak have 11 receptions each.
"I thought when the season started we had a shot at being a Week 11 team," Daley said. "As the season progressed, I began to understand what kind of competitive, tough region we were a part of. If we had stayed in Region 23, no doubt about it. If we were in Division VII, probably where we belong if not for competitive balance, I think this team makes a run.
Teams Central finished ahead of included Middletown Springfield (9-1), Sugarcreek Garaway (8-2) and Hanoverton United (8-2).
Central is making its 13th trip to the playoffs and currently has a 12-11 overall record. The Crusaders captured a state championship 25 years ago in 1993.


Making a goalkeeping mistake in a high profile game to give your nearest rivals a vital away win is never a good idea.
The focus shifts to the bottom of the table this week, although there's only one game between the bottom six tomorrow so Millwall v Hull automatically becomes Game of the Week.
There'll be brief details of the FA Cup draw at the end of the post, but suffice to say this will be the first of two meetings in a less than a month between these two at the Den.
Although the Lions have gone five games without a win, their record at home isn't that awful: the recent reverse at the Den against Birmingham City was their first defeat at home since the end of September and having already hosted six of the current top ten, Neil Harris' team can look forward to a somewhat easier run of home games in 2019. That being said, Millwall are two points worse off at this stage than they were when they were relegated at the end of 2014/15 and having seen them live recently I have to say that it's no surprise that they're struggling.
Hull currently have a three game away unbeaten streak going and have discovered their shooting boots after a run of five games where they only scored once between the end of August and mid October. Fraizer Campbell has scored three of their seven goals in the last three games and he'll need to keep that type of run going over the next few months: the Tigers still have to play at eight of the teams currently in the top ten including a visit to Leeds at the end of the month. On the flip side, they've won three of their four encounters with the sides that are currently below them and if their recent form continues the best possible scenario is a mid table finish.
Head to head: Hull have only won twice at Millwall in ten games since December 1984; the Tigers last win at the Den was almost six years ago. Last season's encounter in South London finished 0-0 – Hull have only scored twice in their last five visits to Millwall.
Verdict: in games between the bottom six this season, the home team has only lost three times but none of those duels featured either Hull or Millwall. The Tigers have already won at Rotherham and Bolton this season and I'd not be too surprised if they earn at least a point tomorrow.
There are two other games to note that could have an impact at both ends of the table. Bolton travel to Norwich having not won any of their last ten games and having not won at Carrow Road for eighteen years; in the Saturday evening televised game, managerless Reading play Sheffield United – the Royals finally dismissed Paul Clement on Wednesday, a move that shouldn't have come as a massive surprise to regular readers of this blog.
The other televised game takes place this evening: WBA v Aston Villa would have been Game of the Week if Villa had been in the top six. This is the first time the clubs have met outside the top tier since 1987; Villa haven't won at the Hawthorns for just over a decade.
Finally this week, the draw for the third round of the FA Cup resulted in seven ties against Premier League opposition (only Bristol City and Derby were drawn at home), four all Championship games, six clubs play League One opposition, Sheffield United will host Barnet of the National League and both Bolton and Middlesbrough are currently waiting for next week's replays to find out their opponents. Off the top of my head, Derby are capable of beating Southampton and Ipswich will be lucky to escape Accrington Stanley with a replay. More to follow in the first post of 2019.
I'll be back next weekend!


K and I attended the San Antonio Scottish Society Burns Night Dinner last night. It was in honor of the 257th anniversary of the poet Robert Burns' birthday, the 25th of January. It became a tradition after his early death for his friends to meet at dinner in celebration of his life on his birthday, which spread along with Burns' fame to become a Scottish tradition around the world.
Performances by the San Antonio Pipe Band, Bluebonnet Scottish Country Dancers, and Highland dancers framed a dinner with Haggis, which is almost always initiated by a recitation of Burn's "Ode to a Haggis". The Rt Hon Viscount Dunrossil, Honorary Consul of the United Kingdom, rendered his oratorical services yet again for this particular gathering.
While some wore formal black-tie highland attire, other were comfortable in clothing suitable for dining at a restaurant–Don't let a lack of sartorial highland splendor stop you from seeking out your local Burns Night next year! Dallas, Lubbock, Houston, San Antonio, Victoria, Austin, and many other cities and metro areas have Burns Nights– Though to get the maximum results, you may want to google "Burns Nicht", the scots spelling of the event.
This entry was posted in Clan Gatherings, Scotland. Bookmark the permalink.


Light grey are dominant on this Patio Extension 37 Awesome Collection Backyard Patio Extension Ideas due to table below. Then charcoal grey & charcoalcolor scheme is make it perfect. Combination beetween gunmetal, silver, medium grey, greyish, grey are wraping around the room.
Below is the table contains color information of Patio Extension 37 Awesome Collection Backyard Patio Extension Ideas.


in a quiet cul-de-sac 1 mile inland from beaches, and village of Seahouses. Wi-fi, off road parking, enclosed garden. Ideal base for walkers, birdwatchers, cyclists. Riding stables close by.
Block-paved driveway with ramp up to the front door. Entrance hall with cupboard for outdoor wear.
Off this is the lounge which with its polished wooden floor and patio doors providing views over the garden and fields to the side. Two sofas, occasional tables, TV/video/DVD, dining table and chairs. A good selection of books, CDs, games, videos, wildlife guides and binoculars are available to enjoy during your stay. The patio doors lead out to a paved area and grassed garden.
A modern fully-fitted kitchen has views to the front. Equipped with gas cooker and hob with extractor hood, microwave, built-in fridge, and radio. Steps down to the garage, which in addition to providing storage for leisure gear, has a washing machine, freezer, utility sink and access to the rear garden.
Bedroom 1: a good size with double bed, pine furniture, TV and views to the rear over the garden.
Bedroom 2: a twin room, pine furniture, also having views to the rear over the garden.
The family bathroom has a bath, tiled with wooden floor, bath with overhead shower, WC and wash hand basin.
Large enclosed grass and pebble garden with garden furniture.
Ample parking for at least three cars on the drive and one in the garage.
Cycle storage available in the garage.
Fishing nets available for guests' use during their stay.
This property does not accept pets or smokers.
3rd Visit - Mini Break. As wonderful as ever. Watching sheep out of the living room window, just magic.
Wonderful 4th visit to Pebbles. Thoroughly enjoyed our winter break, great walks, good food and Christmas shopping. Thanks to Wal and Annie for the welcome gifts. Looking forward to August 2018 already!
Another very pleasant week, with lots of 'bracing' weather! The cottage is very warm and cosy to come back to. Thank you for the welcome 'goodies', much enjoyed. We'll be back again in the spring.
Our first time to Northumberland and will definitely be returning! Pebbles was very comfortable and we have loved our stay here.
Hopefully this was our first of many visits to pebbles and this area, don't want to leave! 10/10, would highly recommend. Loved it, thank you.
Great stay. Lovely bungalow. Would definitely return.
Our third time at Pebbles. As comfortable and as relaxing as ever. The perfect base for exploring the area.
Had a wonderful time staying at Pebbles - a lovely peaceful cottage!
Another fantastic stay at Pebbles - 3rd visit here and to the beautiful county of Northumberland! We love it here and the people! Until next time..... Many Thanks!
Our 2nd visit - enjoying a relaxing break in wonderful Northumberland. It would be very hard not to! Like a lot of other guests returning to Pebbles again. The cottage can be well recommended to family and friends. Weather has been kind to us. Thank you for the welcome pack. We hope to be back again for another holiday - why stay anywhere else?!
This is our 2nd visit to Pebbles Cottage and it wont be our last! Everything was very clean and tidy when we arrived with a lovely welcome pack. A lovely, homely cottage very well looked after by the owners. Thank you!
We've had a lovely week in Pebbles. A very cosy cottage to come back to after walking every day. We hope to return.
Just to let you know our stay at Pebbles Cottage Seahouses was really nice. I've been to the cottage three times now, and would book to go there again. Everything for comfort is provided, and the cottage is bright and warm.


I recently ran a one hour workshop to introduce pair testing to my team. I wanted to make the session interactive rather than theoretical however, having done the research, I struggled to find any practical tips for training people in how to pair effectively. Having created something original to suit my purpose, I thought I would share my approach in case it is useful for others.
I coach a large team of 20 agile testers who are spread across several different teams, testing different applications and platforms. Though I wanted the workshop to be hands-on, the logistics of 10 pairs performing software testing against our real systems was simply too challenging. I needed to go low-tech, while still emulating the essence of what happens in a pair testing session.
So, what is the essence of pair testing? I spent several days thinking on this and, in the end, it wasn't until I bounced ideas around with a colleague that I realised. Communication.
Most people understand the theory of pairing immediately. Two people, one machine, sharing ideas and tackling a single task together. It's not a difficult concept. But the success of pairing hinges on the ability of those who are paired to communicate effectively with one another. How we speak to each other impacts both our enjoyment and our output.
One of the listening skills activities that I do is that you have people get in groups of 2, you give one of them a pack of 8 dominos and the other a shape diagram of rectangles (dominos) in a random pattern. Only the person without the dominos should see the pattern. They sit back to back on the floor or the one with the dominos at a table and the other in a chair back to back. The one with the diagram instructs the other on placing the dominos to match the diagram. The one with the dominos cannot speak. They get 2 min. I usually do this in a big group where they are all working in pairs at once.
Then they switch roles, get a new pattern and do the exercise again, this time the person with the dominos is allowed to speak. 2 min. usually successful.
Then we debrief looking at challenges, jargon words used, analyze how they provided instructions without being able to watch the person, tone, questions asked, etc. ( I have this all in a document if you want it) It is quite fun and enlightening for those who are training to be able to be in a support role with technology.
Though it wasn't quite right for my workshop, this was an exercise for pairs that was interactive, communication focused, and involved toys. I decided to adapt it for my purpose and use dominos to illustrate two different types of knowledge sharing -- "follow me" and "flashlight" -- that hoped to see occur in our real-life pair testing sessions.
The workshop participants were placed in pairs. One person in the pair was given a packet of dominos and a diagram of 8 dominos in a pattern. They were given 2 minutes to arrange their dominos to match the diagram while their partner observed.
I asked each pair to push all their dominos back into a pile. The person who had arranged the dominos was asked to pick up the instruction diagram and hold it out of view of their partner. The person without the instructions was then given 2 minutes to repeat the same domino arrangement with limited assistance from their partner who was forbidden from touching the dominos!
Though the person with the dominos had seen the puzzle completed and knew it's broad shape, it was clear that they would need to talk to their partner and ask a lot of questions about the diagram in order to repeat the arrangement precisely. It was interesting to observe the different approaches; not every pair successfully completed the second part of this exercise within the 2 minute time frame.
keeping an encouraging tone when giving instructions helped to focus people on the task rather than feel stressed by the short deadline.
I felt that there were clear parallels between this activity and a pair testing scenario in which a tester is exploring a completely unfamiliar domain with guidance from a domain expert. I emphasised the importance of being honest when help is required, and keeping up a constant dialog where people are uncertain.
In the same pairs, one person was given a diagram of 8 dominos while the other was given a partial diagram that included only four. The person with access to only the smaller diagram was given 2 minutes to arrange the full set of 8 dominos.
In this iteration the person who was arranging the dominos was given some understanding of what was required, but still needed need to ask their partner for assistance to complete the entire puzzle. As previously, the person with the complete picture was not permitted to touch the dominos and kept their instructions hidden from their partner.
Again we had a short debrief. The participants felt that this exercise was much easier than the first. Because the person arranging the dominos was bringing their own knowledge to the task it meant that almost every pair completed the arrangement within the 2 minutes.
As a facilitator I noticed that this little bit of extra knowledge changed the communication dynamics of some pairs quite dramatically. Instead of talking throughout, the observers remained silent as their partner completed the arrangement of the first four dominos. Only once the person with the dominos had completed the task to the extent of their abilities did they ask their pair for input.
The pairs who worked in this way were ultimately slower than their colleagues who kept talking to one another. One way that talking made things quicker was in eliminating double-handling of dominos -- "You'll need that one later".
Having shared this reflection, the two people switched roles and, with new diagrams, repeated the activity. With the expectation set that communication should remain continuous, it seemed that the pairs worked quicker together. The second iteration was certainly noisier!
I felt that there were clear parallels between this activity and one in which a tester is exploring a domain where they have some familiarity but are not an expert. It's important to remember that there is always something to learn, or opportunities to discover the ways in which the maps of others differ to our own. This exercise illustrated how important it is to continue communicating even when we feel comfortable in our own skills.
I was happy with how the dominos activities highlighted some important communication concepts for effective pair testing. If you'd like to repeat this workshop in your own workplace I would be happy to share my domino diagrams to save you some time, please get in touch.


text:
Q: calculation of money account in a bank in recursive public static double capitalAfterYearsRecursive(double K0, int n, double i,double R) {
    double K1;
    if(n < 0)
    {
        return K0;
    }
    else
    return capitalAfterYearsRecursive(K0, n-1 ,i ,R)*(i+1);
}

So guys i need your help, it doesnt show up the correct balance :/
 K0 start capital
 n runtime (years)
 i interest rate
 R yearly rate

A: I believe that your initial problem is that base condition.  You run the recursion back to year -1, rather than year 0.  How about
if (n <= 0)

...
Try your code with a time period of 0: your result should be the original principal.

A: public static double capitalAfterYearsRecursive(double K0, int n, double i,double R) {

    //double K1;
    if(n <= 0)
    {
        return K0;
    }
    else
    return capitalAfterYearsRecursive(K0, n-1 ,i ,R)*(i+1)+R;
}

Ok, the problem was, i had to add the +R

redpajama_set_name: RedPajamaStackExchange


text:
Tag Archives: st. martin's press
Adult Ficiton, NetGalley, NetGalley Review, Paranormal
Book Review: First Grave on the Right by Darynda Jones
January 17, 2018 motifink
Published Feb. 1, 2011
Charley Davidson is a part-time private investigator and full-time grim reaper. Meaning, she sees dead people. Really. And it's her job to convince them to "go into the light." But when these very dead people have died under less than ideal circumstances (like murder), sometimes they want Charley to bring the bad guys to justice.
Complicating matters are the intensely hot dreams she's been having about an entity who has been following her all her life…and it turns out he might not be dead after all. In fact, he might be something else entirely. But what does he want with Charley? And why can't she seem to resist him? And what does she have to lose by giving in?- Goodreads
If I had to describe this book, which I do because this is a review, but in short words it would be this quote:
"That took balls."
"Please," I said with a snort, "that took ovaries. Of which I have two."
Yeah, that is Charley. And she is hilariously blunt, demanding and mentally strong. I liked her…for the first half of the book. She is so gun ho, that she makes some really dumb decision without care of herself and how her actions will affect others. It gets redundant and annoying. She is a grown woman, who has been using her power for years and still makes reckless mistakes as if she is a newbie. It is frustrating.
But Charley and her rushing and blunt nature keeps the book going. You are instantly drawn into this book and kept interested for a majority of it. The author, thankfully, does not go the route you think she will go. You know the cliche love triangle, the I must choose between the modern world and magical world and things like that. The series is long so it may or may not pop up but it didn't in this one.
I loved the pace of this novel and I also,surprisingly enough, enjoyed the fact that the author gave Charley some form of emotional discord with her powers, family and her overall job as a PI. It made her more human and I began to take her a bit more seriously.
But in regards to her romance, I can't say I liked it. It is fairly new and it starts off really weird, not what she does for the relationship to happen but where her emotions come from, I was actually jaw dropping surprised that she wanted a relationship or some form of intimacy. I can completely understand wanting to know more about this person but she took it kind of far. At the end of the novel, the relationship is crazy new, so it doesn't development much but I think there will be a lot of it in the second book.
I would have liked more supernatural aspects in this book and more mythology and dark things happening. It was light and I hope the author goes deeper in the next 13 books.
Overall,
adultArcbook reviewchick litDarynda JonesfantasyFirst Grave on the Rightparanormalst. martin's press
Adult Ficiton, book review, NetGalley, NetGalley Review, Realistic, st. martin's press
Book Review: The Best of Adam Sharp by Graeme Simsion
May 15, 2017 motifink Leave a comment
TBP May 2, 2017
On the cusp of turning fifty, Adam Sharp likes his life. He's happy with his partner Claire, he excels in music trivia at quiz night at the local pub, he looks after his mother, and he does the occasional consulting job in IT.
But he can never quite shake off his nostalgia for what might have been: his blazing affair more than twenty years ago with an intelligent and strong-willed actress named Angelina Brown who taught him for the first time what it means to find—and then lose—love. How different might his life have been if he hadn't let her walk away?
And then, out of nowhere, from the other side of the world, Angelina gets in touch. What does she want? Does Adam dare to live dangerously? -Goodreads
If you haven't noticed, I love reading Graeme Simsion books. There is something about his writing that is honest and reliable even from a male's perspective. This is still the case with The Best of Adam Sharp, however, I didn't really enjoy this book.
Firstly, this book was different and I can see the author taking a risk. I don't mind the risque scenes; they were surprising but I don't mind them. What bothered me about this book was Adam and how boring he was even when his past was discussed. His tone never changes… not even once throughout the book. Because of that it made it extremely difficult to read this book (took me a week).
The book was slow and it dragged. There was no real life or passion within this book. It was hard to tell if Adam was actually in love or if it was more infatuation. It didn't feel real at the beginning nor at the end. Overall that is what the book was lacking; deep emotion, real heartbreak, real anger etc..
Another issue I had was Adam is selfish and the love of his life was just as selfish and became even a worst person as she got older. This told a lot about Adam. He wasn't the hero you want to love and I was disappointed in him and the weak characters around him. I say weak characters because no one really fought for what they wanted. I can't even say Adam did because he went with whatever was allowed.
The music element was cute. It added some character to the book but the music didn't define Adam nor was it as important as I thought it would be. The music was defined based on his relationship. Yeah, he did trivia at the pub but he music wasn't his life nor was he missing it.
I wanted better from this book. I wanted to be moved because it was different from The Roise Project. I like where the author is going with this but it needs some more work. I didn't feel this was a bad book but it wasn't something I would read or recommend unfortunately.
adultArcbook reviewContemporaryfictionGraeme SimsionmusicNetGalleyromancest. martin's pressThe Best of Adam SharpThe Rosie Project
Book Review: Eleanor & Park by Rainbow Rowell
********Maybe a tiny spoiler**********
Where do I begin! Where do I begin! How about the summary of the book?
St. Martin's Press Published Feb 26 2013 325Pages
In 1986, Eleanor and Park meet on the school bus. Eleanor, who is tall (considers herself a giant) chunky and with curly red hair, is new to the school and sits next to Park. Park, who is half Korean, and in Eleanor's eyes a perfect neat freak, doesn't care too much for Eleanor and can't stand the fact she sits next to him. To say the least he is embarrassed not just for himself but for her.
However, he isn't mean to her; he just ignores her. But soon Eleanor and Park connect changing each others' lives physically and emotionally.
I would have appreciated this book better if I was 14 and not 24. This book was a cute read. But it was full of puppy love clichés. There was so much I miss you, "no I don't like you, I need you" that I was laughing saying Oh my GOODNESS WHY DID SHE PUT THAT IN THERE!
What I liked about the book was it wasn't love at first sight. Park and Eleanor couldn't stand each other but little things each other were doing kept building their like for each other. I liked that. That is usually how relationships start anyway, so I felt that was realistic.
I also liked the fact that Eleanor and Park had real problems at home. Their lives we're perfect and yes Eleanor got teased in school badly but it didn't ruin her life. Park had his share of issues at home with his Dad but his priority other than school was Eleanor and he made sure she knew that.
What I didn't like was the cover and what it led me to believe. Eleanor and Park are wearing headphones on the cover . . . but that is not what connected them. It was comic books. They shared a love of comic books. Although there was exchanging of music and Park did make tapes for Eleanor it really didn't matter. There were no music references beyond the exchanging of the tapes until the end which was completely unnecessary. Also neither one of them were misfits. Park had a decent social standing and no one like Eleanor because of how she looked. She didn't act out nor was she dressed in all black. She was a shy large girl with a lot of red hair.
I also didn't like the ending. Eleanor had a lot of home problems and it wasn't as if she didn't trust Park because she did. She didn't trust herself and she lacked confidence. And she stilled lacked confidence at the end. How after everything you've been through you don't even write the boy you love a letter . . . . You send him a post card after goodness knows how many letters he wrote you. And the post card only had three words on it. I didn't like that. I was so frustrated with the ending not because it was a bad book but because it could have been so much better. I would have appreciated the book more if Eleanor actually showed some kind of progress.
Overall, the book gets 7 out of 10. It could have been developed more not for an adult reading a young adult book but just to be great book for all ages.
Tania Lasenburg is a communications major that plays video games and cyber stalks Gym Class Heroes. Follow her on twitter @mrztanyapickles
book reviewbooksclicheeleanor & parkgoodreadspuppy loveRainbow Rowellst. martin's presstania lasenburgyoung adult for 14 year olds


Create endless romantic moments with Christina Wu 15546. This organza wedding gown features a strapless and sweetheart neckline. Scattered allover the form-fitting bodice is the dazzling beads that create elegance on the best day of your life. This gown also features ruffled skirt that streams down the floor, with the elegant train that will make you look exquisitely charming on your special day.