Escape Properties owns and operates premium residential accommodations for an exclusive set of members via our proprietary on-demand investment platform. Our model generates a double bottom line of ROI and enhanced lifestyle travel for our guests. We provide our investors a safe and secure real estate investment as well as luxury residences for their personal and professional travel.
Escape Properties acquires undervalued assets in high-demand locations creating luxury residential accommodations for the enjoyment and financial benefit of our members.
President, Rockrose
MEMBER
President, Ackman-Ziff
MEMBER
Index Ventures
MEMBER
Founder & CEO, Renren
MEMBER
Managing Principal, Onyx Equities
MEMBER
CEO, Meridan Capital
MEMBER


Melt the chocolate with 1/4 cup of coaco powder + the tsp of Espresso + the butter on a low heat then put aside to cool down.
Beat the eggs until they double in size then gradually add all of the sugar with a good pinch of salt and some Vanilla extract and keep mixing for few more minutes.
In another bowl add the flour and 1/2 cup of coaco powder and mix gently.
Now, add the melted chocolate mix slowly to the eggs mix then the flour mix and mix gently until you end up with a brown silky batter.
Grease your baking tin and pour all your batter then add a pinch of salt on top.
Bake it for 40 to 45min in a preheated oven at 180°C
CHOCOLATE CHIPS COOKIES
Here's what you'll need:
1/2 cup granulated sugar
3/4 cup brown sugar
1 teaspoon salt
1/2 cup melted butter
1 egg
1 teaspoon vanilla extract
1 + 1/4 cups flour
1/2 teaspoon baking soda
220 g of chocolate chunk
Here are the steps:
In a large bowl, whisk together the sugars, salt, and butter until a paste forms with no lumps.
Whisk in the egg and vanilla, beating until light ribbons fall off the whisk and remain for a short while before falling back into the mixture.
Whisk in the egg and vanilla, beating until light ribbons fall off the whisk and remain for a short while before falling back into the mixture.
Fold in the chocolate chunks, then chill the dough for at least 30 minutes. For a more intense toffee-like flavor and deeper color, chill the dough overnight. The longer the dough rests, the more complex its flavor will be..
Preheat oven to 180°C. Line a baking sheet with parchment paper. Scoop the dough with an ice-cream scoop onto a parchment paper-lined baking sheet, leaving at least 10 cm of space between cookies and 5 cm of space from the edges of the pan so that the cookies can spread evenly
Bake for 12-15 minutes, or until the edges have started to barely brown
RED VELVET CUPCAKES
Here's what you'll need:
1 2/3 cups all purpose flour
1 cup granulated sugar
2 tablespoons unsweetened cocoa powder
1 teaspoon baking soda
1/2 teaspoon salt
1 cup buttermilk
6 tablespoons vegetable oil
1 tablespoon white vinegar
2 teaspoons vanilla extract
1 tablespoon red food coloring
For the cream cheese frosting:
8 ounces cream cheese
1/2 cup butter room temperature
1/4 teaspoon salt
4 cups powdered sugar
1 tablespoon vanilla extract
Here are the steps:
Preheat oven to 350°F. Line cupcake pans with liners
Whisk flour, sugar, baking soda, cocoa, and salt in a large bowl
Whisk buttermilk, oil, vinegar, and vanilla in a large measuring cup and whisk into dry ingredients until combined. Stir in food coloring carefully.
Fill cupcake liners about 2/3 full. The recipe makes about 12 cupcakes. Bake for 13-17 minutes, or until a toothpick comes out clean. Cool completely before frosting.
Make the frosting: Beat butter and cream cheese with a hand mixer in a large bowl until smooth, then mix in salt. Add powdered sugar 1 cup at a time and beat in between each addition. Add vanilla and continue mixing a smooth frosting forms. Frost cupcakes as desired
Store in an airtight container in the refrigerator for up to 3 days or freeze for up to one month.


Traffic moving on Trans-Canada Highway following slide near Goldstream Provincial Park
Northbound traffic on the Trans-Canada Highway is moving again following a rockslide south of Goldstream Provincial Park on Sunday morning.
A slide blocked the lane near the entrance to Ice Cream Mountain at about 10 a.m. Flaggers were sent to the scene to direct single-lane alternating traffic from Finlayson Arm Road to Westshore Parkway.
Emcon Services, the road and bridge contractor for southern Vancouver Island, said a loader and dump trucks are clearing the lane.


Example page for PhatAuth random user generator endpoint. Press Generate button to generate new random user. You can view and edit source at CodeSandbox by pressing Edit button.


The password toggle plugin allows a user to optionally see their password as they are typing.
To add the password toggle checkbox, simply add the class toggle
to any password
input.
<form> <input type="password" name="test" class="toggle"/> </form>
VM UI Framework is created, owned, maintained by Virtuosi Media, Inc. © 2012-2013.


Click on an image to submit your vote. You can also change the color of the background to see what the design would look like on a different color!


Hi,welcome to my website!I'm 27 years old and Front-End Developer as a result of a career transition. Feel free to explore my social medias and contact me for questions.
let me know you!


Source code for relocators.boundaryRelocator
# Copyright 2014 Modelling, Simulation and Design Lab (MSDL) at
# McGill University and the University of Antwerp (http://msdl.cs.mcgill.ca/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
Base class for a relocator that supports boundary construction and maintenance
"""
[docs]class BoundaryRelocator(object):
"""
Main class
"""
[docs] def __init__(self):
"""
Constructor
"""
pass
[docs] def setController(self, controller):
"""
Set the controller of this relocator
:param controller: the controller object which can be used to fetch all required information about the model
"""
self.server = controller.server
self.model_ids = controller.model_ids
self.kernels = controller.kernels
# All location queries should happen on this CACHE
# This is NOT a live version of the locations and is only a temporary
# version for testing some possible relocations.
# However, this version SHOULD be stable, that is: it is never updated again
self.locations = [model.location for model in self.model_ids]
# Create all boundaries for all nodes
self.boundaries = [{} for _ in range(controller.kernels)]
self.constructBoundaries(self.model_ids)
[docs] def fetchModelActivity(self, model):
"""
Get the activity of a specific model.
It will also cache the activity of all models at the same node to make subsequent calls much faster.
:param model: the model to fetch the activity of, can be remote
:returns: the activity of the model
"""
try:
# Try locally
return self.model_activities[model.model_id]
except KeyError:
# 'Cache miss'
proxy = self.server.getProxy(model.location)
self.model_activities.update(proxy.getCompleteActivity())
return self.model_activities[model.model_id]
[docs] def constructBoundaries(self, models):
"""
Construct the boundaries for the specified models
:param models: the models to be added to the boundary
"""
for model in models:
location = self.locations[model.model_id]
for iport in model.IPorts:
for port in iport.inline:
if self.locations[port.host_DEVS.model_id] != location:
self.boundaries[location].setdefault(
self.locations[port.host_DEVS.model_id],
set()).add(model)
for oport in model.OPorts:
for port, _ in oport.routing_outline:
if self.locations[port.host_DEVS.model_id] != location:
self.boundaries[location].setdefault(
self.locations[port.host_DEVS.model_id],
set()).add(model)
[docs] def removeBoundaries(self, models):
"""
Remove the boundaries provided by the specified models
:param models: the models to be removed from the boundaries list
"""
for model in models:
location = self.locations[model.model_id]
boundaries = self.boundaries[location]
# Only here for efficiency
ms = set([model])
for dest in boundaries:
boundaries[dest] -= ms
[docs] def scheduleMove(self, model_id, destination):
"""
Schedule the move of a model to another destination; this operation is reversible
:param model_id: the model_id of the model to move
:param destination: the destination of the model
"""
self.relocate[model_id] = destination
model = self.model_ids[model_id]
source = self.locations[model_id]
update = set([model])
self.removeBoundaries(update)
for iport in model.IPorts:
for port in iport.inline:
update.add(port.host_DEVS)
for oport in model.OPorts:
for port, _ in oport.routing_outline:
update.add(port.host_DEVS)
# Now update contains all the models that should be updated
# Perform the update 'in cache'
self.locations[model_id] = destination
self.removeBoundaries(update)
self.constructBoundaries(update)
activity = self.fetchModelActivity(model)
self.node_activities[source] -= activity
self.node_activities[destination] += activity
[docs] def getRelocations(self, gvt, activities, horizon):
"""
Return all pending relocations
:param gvt: current GVT
:param activities: activities being passed on the GVT ring
:param horizon: the activity horizon
:returns: all relocations that should be executed
"""
# This is only a base 'abstract' class
raise NotImplementedError()
[docs] def useLastStateOnly(self):
"""
Determines whether or not the activities of all steps should be accumulated, or only a single state should be used.
:returns: boolean -- True if the relocator works with a single state
"""
raise NotImplementedError()


---
layout: post
title: Ello newsletter Feb 2014
date: '2014-02-04T07:30:00+01:00'
categories:
- Ello Mobile
- Illustration
- Klare Lijn — Ligne Claire
picture_url: https://film-Storyboards.tumblr.com/post/75585120009/ello-newsletter-feb-2014
---
Ello Mobile’s newsletter for February 2014 — rough and vector Illustration.


Changeset 97 for mystic/examples
- Timestamp:
- 02/17/09 19:20:27 (7 years ago)
- Location:
- mystic/examples
- Files:
-
- 1 deleted
- 14 edited
-
Make.mm (modified) (1 diff)
-
forward_mogi.py (deleted)
-
mpl_corana.py (modified) (1 diff)
-
sam_corana.py (modified) (1 diff)
-
sam_corana2.py (modified) (1 diff)
-
sam_mogi.py (modified) (1 diff)
-
sam_rosenbrock.py (modified) (1 diff)
-
sam_zimmermann.py (modified) (1 diff)
-
test_dejong3.py (modified) (1 diff)
-
test_dejong4.py (modified) (1 diff)
-
test_griewangk.py (modified) (1 diff)
-
test_mogi.py (modified) (1 diff)
-
test_rosenbrock.py (modified) (1 diff)
-
test_rosenbrock2.py (modified) (1 diff)
-
test_zimmermann.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
mystic/examples/Make.mm
r94 r97 53 53 test_mogi.py \ 54 54 test_mogi2.py \ 55 # test_mogi3.py \56 # test_mogi4.py \55 ## test_mogi3.py \ 56 ## test_mogi4.py \ 57 57 test_mogi_anneal.py \ 58 #test_mogi_leastsq.py \58 test_mogi_leastsq.py \ 59 59 # sam_circle_matlab.py \ 60 60 test_circle.py \ 61 61 # qld_circle_dual.py \ 62 # metropolis.py \63 # test_twistedgaussian.py \64 # test_twistedgaussian2.py \65 # test_twistedgaussian3.py \62 ## metropolis.py \ 63 ## test_twistedgaussian.py \ 64 ## test_twistedgaussian2.py \ 65 ## test_twistedgaussian3.py \ 66 66 test_wavy.py \ 67 # derun.py \68 # example.py \67 ## derun.py \ 68 ## example.py \ 69 69 example_getCost.py \ 70 # forward_model.py \ 71 forward_mogi.py \ 70 forward_model.py \ 72 71 73 72 -
mystic/examples/mpl_corana.py
r94 r97 7 7 import pylab, numpy, mystic 8 8 #from test_corana import * 9 from mystic.scipy_optimize _fminimport fmin9 from mystic.scipy_optimize import fmin 10 10 from mystic import getch 11 11 -
mystic/examples/sam_corana.py
r94 r97 7 7 import sam, numpy, mystic 8 8 #from test_corana import * 9 from mystic.scipy_optimize _fminimport fmin9 from mystic.scipy_optimize import fmin 10 10 from mystic import getch 11 11 -
mystic/examples/sam_corana2.py
r95 r97 11 11 import sam 12 12 #from test_corana import * 13 from mystic.scipy_optimize _fminimport NelderMeadSimplexSolver as fmin13 from mystic.scipy_optimize import NelderMeadSimplexSolver as fmin 14 14 from mystic.termination import IterationRelativeTolerance as IRT 15 15 from mystic import getch, Sow -
mystic/examples/sam_mogi.py
r95 r97 9 9 import sam 10 10 from test_mogi import * 11 from mystic.scipy_optimize _fminimport NelderMeadSimplexSolver as fmin11 from mystic.scipy_optimize import NelderMeadSimplexSolver as fmin 12 12 from mystic.termination import IterationRelativeTolerance as IRT 13 13 from mystic import getch, Sow -
mystic/examples/sam_rosenbrock.py
r95 r97 12 12 import sam 13 13 from test_rosenbrock import * 14 from mystic.scipy_optimize _fminimport NelderMeadSimplexSolver as fmin14 from mystic.scipy_optimize import NelderMeadSimplexSolver as fmin 15 15 from mystic.termination import IterationRelativeTolerance as IRT 16 16 from mystic import getch, Sow -
mystic/examples/sam_zimmermann.py
r95 r97 12 12 import sam 13 13 from test_zimmermann import * 14 from mystic.scipy_optimize _fminimport NelderMeadSimplexSolver as fmin14 from mystic.scipy_optimize import NelderMeadSimplexSolver as fmin 15 15 from mystic.termination import IterationRelativeTolerance as IRT 16 16 from mystic import getch, Sow -
mystic/examples/test_dejong3.py
r95 r97 51 51 52 52 # optimize with fmin 53 from mystic.scipy_optimize _fminimport fmin53 from mystic.scipy_optimize import fmin 54 54 print fmin(DeJong3, [0 for i in range(ND)]) 55 55 -
mystic/examples/test_dejong4.py
r95 r97 50 50 51 51 # optimize with fmin 52 from mystic.scipy_optimize _fminimport fmin52 from mystic.scipy_optimize import fmin 53 53 print fmin(DeJong4, [0 for i in range(ND)]) 54 54 -
mystic/examples/test_griewangk.py
r95 r97 43 43 44 44 if __name__ == '__main__': 45 from mystic.scipy_optimize _fminimport fmin45 from mystic.scipy_optimize import fmin 46 46 from timeit import Timer 47 47 t = Timer("main()", "from __main__ import main") -
mystic/examples/test_mogi.py
r95 r97 110 110 if __name__ == '__main__': 111 111 112 from mystic.scipy_optimize _fminimport NelderMeadSimplexSolver as fmin112 from mystic.scipy_optimize import NelderMeadSimplexSolver as fmin 113 113 from mystic.termination import IterationRelativeTolerance as IRT 114 114 from scipy.optimize import leastsq, fmin_cg -
mystic/examples/test_rosenbrock.py
r95 r97 15 15 from mystic.strategy import Best1Exp, Rand1Exp, Best2Bin 16 16 from mystic.models import rosen 17 from mystic.scipy_optimize _fminimport NelderMeadSimplexSolver as fmin17 from mystic.scipy_optimize import NelderMeadSimplexSolver as fmin 18 18 from mystic.termination import IterationRelativeTolerance as IRT 19 19 from mystic import Sow -
mystic/examples/test_rosenbrock2.py
r95 r97 28 28 from mystic.termination import IterationRelativeTolerance as IRT 29 29 30 from mystic.scipy_optimize _fminimport fmin, NelderMeadSimplexSolver30 from mystic.scipy_optimize import fmin, NelderMeadSimplexSolver 31 31 #print fmin(rosen,x0,retall=0,full_output=0) 32 32 solver = NelderMeadSimplexSolver(len(x0)) -
mystic/examples/test_zimmermann.py
r95 r97 51 51 52 52 from mystic import Sow 53 from mystic.scipy_optimize _fminimport NelderMeadSimplexSolver as fmin53 from mystic.scipy_optimize import NelderMeadSimplexSolver as fmin 54 54 from mystic.termination import IterationRelativeTolerance as IRT 55 55
Note: See TracChangeset
for help on using the changeset viewer.


Pick over and rinse 1 lb. Great Northern beans. Place in large soup pot and cover with cold water. Place over high heat and bring to a boil. Add 2 tsp. baking soda and boil for 60-90 seconds. Drain and rinse well. Return to pot and cover well with water (at least 8 cups). Add 1 meaty ham bone. Bring to boiling, reduce heat, cover and simmer for 2 - 4 hrs. until beans are tender. Add 1 large chopped onion, 1 bay leaf and 1/2 tsp.pepper. Taste for salt. If too salty, add 1 pared diced potato. (This will aid any soup which is too salty.) Cook 1 hr. more or until beans are very tender. Remove bay leaf and ham bone. Cut meat from bone, return to pot and serve.
Note: The preboiling with baking soda is supposed to relieve the gassy aftereffects of eating beans. Sometimes it works and sometimes it doesn’t, but I recommend it for all my soup recipes.
When John was in the Air Force, he was stationed at McDill Field in Tampa, Fla. After we were married, he took me there for a visit and we ate at a wonderful Cuban restaurant called Las Novedades. This is one of my favorites from there.
Ingredients: 3/4 lb. garbanzo beans (chick peas)
1 onion
1 beef bone
1 chorizo sausage(very spicy hot sausage)
1 pinch saffron
1 1/2 qts. water
1/2 lb. potatoes
1/4 lb. salt pork or bacon
1 ham bone
2 oz. lard or oil (optional)
1 Tbsp. salt
Soak garbanzos overnight in sufficient water to cover bean. Drain and precook with baking soda. Drain and rinse. Return to pot with water and both bones. Simmer 45 min. Fry bacon and onions in lard or oil; add to pot with potatoes, saffron and salt. When potatoes and beans are done, remove from fire. Remove bones and cut meat from them. Add thinly sliced chorizo, and serve with crusty bread.
 Fry onion, green pepper and garlic in 1/2 cup oil. Combine all ingredients except vinegar and cook over low heat until beans are tender and the liquid is thick. Add vinegar just before serving. I usually serve the vinegar separately and let each person add it to his taste.
These soups are so easy and delicious when the vegetables are in season. I just keep them in refrigerator for quick refreshing snack.
Ingredients: 3 cups fresh tomatoes, peeled and coarsely chopped
1 1/2 cups cucumbers, peeled and chopped
1 green pepper, cored, seeded and coarsely chopped
1 clove garlic, crushed
1/2 cup water
5 Tbsp. olive oil 1
/4 cup red wine vinegar Salt to taste
2 slices fresh bread, cubed
Combine all ingredients in the container of a blender or food processor and blend at high speed until ingredients are smooth. Taste, and adjust salt and vinegar to taste. Chill before serving.
 Stir in remaining broth, sour cream, vinegar, salt and garlic. Stir gently and chill. When ready to serve, sprinkle tomatoes, onions, parsley and almonds on top as a garnish.
This soup was served at the First Epiphany Bazaar and has been a family favorite ever since. It is much easier if you have a food processor. Just chop and shred and slice in the order given in the recipe You don’t even have to wash the processor between ingredients.
Ingredients: 6 Tbsp. margarine
1 small onion, chopped
1/2 lb. mushrooms, sliced
4 Tbsp. flour
3/4 tsp. dry mustard
2 beef bouillon cubes dissolved in 2 cups water
2 cups milk
2 cups medium cheddar, shredded
1 carrot shredded
3 Tbsp. fresh parsley, minced
Salt and pepper to taste
Melt margarine in a 4-qt. pan set over med. heat. Add onions and mushrooms. Cook, stirring occasionally until onion is limp and mushroom liquid evaporates. Stir together the flour and mustard; stir into mushrooms. Gradually stir in bouillon. Bring to a boil, stirring until thickened. Remove from heat and stir in milk. If making ahead, cover and chill at this point. Before serving, reheat, remove from heat, and stir in cheese until melted. Season to taste. Garnish with shredded carrot and parsley.
We picked up our Cioppino recipe while living in San Diego, California. One of the stories told about Cioppino, is that it was made at the end of the day when the fishermen came in and everyone "Chipped into the pot" with their unsaleable fish.
Ingredients: 1 1/2 lb. any firm-fleshed fish such as sea bass, rock fish or snapper
1 lb. raw shrimp
1 large crab (optional)
1 doz. clams or 1 can minced clams
1/2 cup olive oil (I use 3/8 cup olive oil and 1/8 cup salad oil)
1 large clove garlic, minced
1 1/2 cups onion, chopped
1 cup green pepper, chopped
1 - 8 oz. can tomato sauce
1 No. 2 1/2 can red tomatoes
2 cups red table wine (Gallo Hearty Burg)
1/2 cup minced parsley
1 tsp. salt
1/4 tsp. freshly ground black. pepper
1/2 tsp. oregano, crumbled
1/4 tsp. basil, crumbled
Cut the fish into serving sized pieces. Shell shrimp and devein. Clean and crack the crab saving all large pieces of shell with meat in them. Scrub clams. Cook the onion and garlic and green pepper in hot oil. Add the tomato sauce, tomatoes, wine and parsley. Add the seasonings. Cook for 30 min. Arrange the fish, crab and shrimp in layers in a large Dutch Oven. Pour the sauce over the seafood and cook over low heat until the fish is tender, about 30 min. Watch closely as less firm fish will cook more quickly. Add the clams and when they open, sprinkle with additional parsley and serve. If you are lucky enough to have seafood in the shell, you may want to offer bibs with this dish. If you add a tossed salad and French bread you have a fabulous meal.
Ingredients: 2 cups dried lentils
3 onions, chopped
2 carrots, diced
2 quarts water
2 - 8 oz. cans tomato sauce
1 bay leaf 1 1/2 tsp. salt
1 ham hock
1 cup dry red wine (Gallo H.B. again)
1 lb. Italian sausage links or other garlicky sausage
Wash and drain lentils. Place in a 6 to 8 qt. Dutch Oven. Add onions, carrots, water, tomato sauce, bay leaf and salt. Bring to a boil. Add ham hock and wine. Cover and simmer until ham is tender (about 2 1/2 hrs.) Remove bones and fat from ham. Return to pot with sausages and simmer 30 min. or until sausages are done. Remove sausages and slice. Return to soup and serve 6 very heartily.
I searched for years for a good minestrone recipe and I think this one is it. It is the blend of seasonings which makes it so good so don’t leave out any of the herbs.
Ingredients: 1 cup Great Northern beans
4 cups water
3 Tbsp. oil (part olive oil)
2 cups finely chopped onion
2 large cloves garlic, minced
1 1/2 cups leeks, finely shredded
2 cups cabbage, finely shredded
1 lb. carrots, finely diced
2 cups zucchini, quartered and sliced
2 large tomatoes, peeled and cubed
1/2 cup Parsley, finely chopped
1/4 cup fresh basil, finely chopped or 1 Tbsp. dried basil
1 tsp. fresh rosemary, finely chopped or 1/2 tsp. dried
1/8 tsp. powdered cloves
4 cups beef bouillon (made with cubes)
3/4 cup small elbow macaroni
Soak beans overnight. Drain and put in a large pot and add 4 cups of water. Bring to a boil, covered and simmer for about an hour or until beans are tender. Drain; save 2 cups of the liquid. In a large Dutch Oven, heat the oil. Add the onion and cook, stirring until wilted. Add the leeks, cabbage, carrots, zucchini and tomatoes. Cook, stirring occasionally about 10 min. Add the parsley, herbs and the reserved bean liquid and the bouillon. Put half the beans in the food processor and puree. Add to the soup. Add the remaining beans. Bring to a boil and simmer for 30 min. Add the macaroni and cook until tender - about 15 min. Serve sprinkled with parsley and pass the Parmesan Cheese.
I grew up thinking that Borscht was that pink stuff in jars at the deli. But Leslie introduced me to Russian food at the Russian Tea Room in N.Y.C. and the search was on for a good Borscht recipe. This one is supposed to be a favorite of Rudolf Nuryev.
Ingredients: 2 1/2 lb. boneless beef chuck
2 soup bones
2 onions, halved
1 small clove garlic
1 Tbsp. salt
1/2 Tbsp. pepper
8 cups water
3 carrots, sliced
1 - 16 oz. can tomatoes
1 bay leaf 3 med. beets, peeled and sliced
1 small head cabbage, shredded
3 med. potatoes, peeled and sliced
Place chuck, bones, onion, garlic, salt and pepper and water in a large soup pot. Cover and bring to a boil. Skim off film. Cover and simmer 30 min. over low heat. Remove bones and onions. Discard. Puree tomatoes in food processor and add to pot with bay leaf, beets, potatoes and cabbage. Cover and cook until vegetables are tender. Add lemon juice and sugar to taste. Cook 5 min. more. Remove meat and mince. Return to pot and serve soup very hot with a dollop of sour cream (or yogurt) in each serving. This recipe makes a meal for 6 very hungry dancers or 8 normal people.


Table of Contents - rails-<IP_ADDRESS> Documentation
Pages
- README
- CHANGELOG
- Rakefile
- README
- guides.js
- jquery.min.js
- responsive-tables.js
- shBrushAS3.js
- shBrushAppleScript.js
- shBrushBash.js
- shBrushCSharp.js
- shBrushColdFusion.js
- shBrushCpp.js
- shBrushCss.js
- shBrushDelphi.js
- shBrushDiff.js
- shBrushErlang.js
- shBrushGroovy.js
- shBrushJScript.js
- shBrushJava.js
- shBrushJavaFX.js
- shBrushPerl.js
- shBrushPhp.js
- shBrushPlain.js
- shBrushPowerShell.js
- shBrushPython.js
- shBrushRuby.js
- shBrushSass.js
- shBrushScala.js
- shBrushSql.js
- shBrushVb.js
- shBrushXml.js
- shCore.js
- fixes.css
- kindle.css
- main.css
- print.css
- reset.css
- responsive-tables.css
- style.css
- shCore.css
- shCoreDefault.css
- shCoreDjango.css
- shCoreEclipse.css
- shCoreEmacs.css
- shCoreFadeToGrey.css
- shCoreMDUltra.css
- shCoreMidnight.css
- shCoreRDark.css
- shThemeDefault.css
- shThemeDjango.css
- shThemeEclipse.css
- shThemeEmacs.css
- shThemeFadeToGrey.css
- shThemeMDUltra.css
- shThemeMidnight.css
- shThemeRDark.css
- shThemeRailsGuides.css
-
2_2_release_notes
- Ruby on Rails 2.2 Release Notes
- Infrastructure
- Internationalization
- Compatibility with Ruby 1.9 and JRuby
- Documentation
- Better integration with HTTP : Out of the box ETag support
- Thread Safety
- Active Record
- Transactional Migrations
- Connection Pooling
- Hashes for Join Table Conditions
- New Dynamic Finders
- find_last_by_attribute
- find_by_attribute!
- Associations Respect Private/Protected Scope
- Other Active Record Changes
- Action Controller
- Shallow Route Nesting
- Method Arrays for Member or Collection Routes
- Resources With Specific Actions
- Other Action Controller Changes
- Action View
- Action Mailer
- Active Support
- Memoization
- each_with_object
- Delegates With Prefixes
- Other Active Support Changes
- Railties
- config.gems
- Other Railties Changes
- Deprecated
- Credits
-
2_3_release_notes
- Ruby on Rails 2.3 Release Notes
- Application Architecture
- Rack Integration
- Renewed Support for Rails Engines
- Documentation
- Ruby 1.9.1 Support
- Active Record
- Nested Attributes
- Nested Transactions
- Dynamic Scopes
- Default Scopes
- Batch Processing
- Multiple Conditions for Callbacks
- Find with having
- Reconnecting MySQL Connections
- Other Active Record Changes
- Action Controller
- Unified Rendering
- Application Controller Renamed
- HTTP Digest Authentication Support
- More Efficient Routing
- Rack-based Lazy-loaded Sessions
- MIME Type Handling Changes
- Optimization of respond_to
- Improved Caching Performance
- Localized Views
- Partial Scoping for Translations
- Other Action Controller Changes
- Action View
- Nested Object Forms
- Smart Rendering of Partials
- Prompts for Date Select Helpers
- AssetTag Timestamp Caching
- Asset Hosts as Objects
- grouped_options_for_select Helper Method
- Disabled Option Tags for Form Select Helpers
- A Note About Template Loading
- Other Action View Changes
- Active Support
- Object#try
- Object#tap Backport
- Swappable Parsers for XMLmini
- Fractional seconds for TimeWithZone
- JSON Key Quoting
- Other Active Support Changes
- Railties
- Rails Metal
- Application Templates
- Quieter Backtraces
- Faster Boot Time in Development Mode with Lazy Loading/Autoload
- rake gem Task Rewrite
- Other Railties Changes
- Deprecated
- Credits
-
3_0_release_notes
- Ruby on Rails 3.0 Release Notes
- Upgrading to Rails 3
- Rails 3 requires at least Ruby 1.8.7
- Rails Application object
- script/* replaced by script/rails
- Dependencies and config.gem
- Upgrade Process
- Creating a Rails 3.0 application
- Vendoring Gems
- Living on the Edge
- Rails Architectural Changes
- Railties Restrung
- All Rails core components are decoupled
- Active Model Abstraction
- Controller Abstraction
- Arel Integration
- Mail Extraction
- Documentation
- Internationalization
- Railties
- Action Pack
- Abstract Controller
- Action Controller
- Action Dispatch
- Action View
- Unobtrusive JavaScript
- Helpers with Blocks
- Other Changes
- Active Model
- ORM Abstraction and Action Pack Interface
- Validations
- Active Record
- Query Interface
- Enhancements
- Patches and Deprecations
- Active Resource
- Active Support
- Action Mailer
- Credits
-
3_1_release_notes
- Ruby on Rails 3.1 Release Notes
- Upgrading to Rails 3.1
- Rails 3.1 requires at least Ruby 1.8.7
- What to update in your apps
- Gemfile
- config/application.rb
- config/environments/development.rb
- config/environments/production.rb
- config/environments/test.rb
- config/initializers/wrap_parameters.rb
- Remove :cache and :concat options in asset helpers references in views
- Creating a Rails 3.1 application
- Vendoring Gems
- Living on the Edge
- Rails Architectural Changes
- Assets Pipeline
- HTTP Streaming
- Default JS library is now jQuery
- Identity Map
- Railties
- Action Pack
- Action Controller
- Action Dispatch
- Action View
- Active Record
- Active Model
- Active Resource
- Active Support
- Credits
-
3_2_release_notes
- Ruby on Rails 3.2 Release Notes
- Upgrading to Rails 3.2
- Rails 3.2 requires at least Ruby 1.8.7
- What to update in your apps
- What to update in your engines
- Creating a Rails 3.2 application
- Vendoring Gems
- Living on the Edge
- Major Features
- Faster Development Mode & Routing
- Automatic Query Explains
- Tagged Logging
- Documentation
- Railties
- Deprecations
- Action Mailer
- Action Pack
- Action Controller
- Deprecations
- Action Dispatch
- Deprecations
- Action View
- Deprecations
- Sprockets
- Active Record
- Deprecations
- Active Model
- Deprecations
- Active Resource
- Active Support
- Deprecations
- Credits
-
4_0_release_notes
- Ruby on Rails 4.0 Release Notes
- Upgrading to Rails 4.0
- Creating a Rails 4.0 application
- Vendoring Gems
- Living on the Edge
- Major Features
- Upgrade
- ActionPack
- General
- Security
- Extraction of features to gems
- Documentation
- Railties
- Notable changes
- Deprecations
- Action Mailer
- Notable changes
- Deprecations
- Active Model
- Notable changes
- Deprecations
- Active Support
- Notable changes
- Deprecations
- Action Pack
- Notable changes
- Deprecations
- Active Record
- Notable changes
- Deprecations
- Credits
-
4_1_release_notes
- Ruby on Rails 4.1 Release Notes
- Upgrading to Rails 4.1
- Major Features
- Spring Application Preloader
- config/secrets.yml
- Action Pack Variants
- Action Mailer Previews
- Active Record enums
- Message Verifiers
- Module#concerning
- CSRF protection from remote <script> tags
- Railties
- Removals
- Notable changes
- Action Pack
- Removals
- Notable changes
- Action Mailer
- Notable changes
- Active Record
- Removals
- Deprecations
- Notable changes
- Active Model
- Deprecations
- Notable changes
- Active Support
- Removals
- Deprecations
- Notable changes
- Credits
-
4_2_release_notes
- Ruby on Rails 4.2 Release Notes
- Upgrading to Rails 4.2
- Major Features
- Active Job
- Asynchronous Mails
- Adequate Record
- Web Console
- Foreign Key Support
- Incompatibilities
- render with a String Argument
- respond_with / Class-Level respond_to
- Default Host for rails server
- HTML Sanitizer
- assert_select
- Railties
- Removals
- Deprecations
- Notable changes
- Action Pack
- Removals
- Deprecations
- Notable changes
- Action View
- Deprecations
- Notable changes
- Action Mailer
- Deprecations
- Notable changes
- Active Record
- Removals
- Deprecations
- Notable changes
- Active Model
- Removals
- Deprecations
- Notable changes
- Active Support
- Removals
- Deprecations
- Notable changes
- Credits
-
action_controller_overview
- Action Controller Overview
- What Does a Controller Do?
- Controller Naming Convention
- Methods and Actions
- Parameters
- Hash and Array Parameters
- JSON parameters
- Routing Parameters
- default_url_options
- Strong Parameters
- Permitted Scalar Values
- Nested Parameters
- More Examples
- Outside the Scope of Strong Parameters
- Session
- Accessing the Session
- The Flash
- flash.now
- Cookies
- Rendering XML and JSON data
- Filters
- After Filters and Around Filters
- Other Ways to Use Filters
- Request Forgery Protection
- The Request and Response Objects
- The request Object
- path_parameters, query_parameters, and request_parameters
- The response Object
- Setting Custom Headers
- HTTP Authentications
- HTTP Basic Authentication
- HTTP Digest Authentication
- Streaming and File Downloads
- Sending Files
- RESTful Downloads
- Live Streaming of Arbitrary Data
- Incorporating Live Streaming
- Example Usage
- Streaming Considerations
- Log Filtering
- Parameters Filtering
- Redirects Filtering
- Rescue
- The Default 500 and 404 Templates
- rescue_from
- Force HTTPS protocol
-
action_mailer_basics
- Action Mailer Basics
- Introduction
- Sending Emails
- Walkthrough to Generating a Mailer
- Create the Mailer
- Edit the Mailer
- Create a Mailer View
- Calling the Mailer
- Auto encoding header values
- Complete List of Action Mailer Methods
- Adding Attachments
- Making Inline Attachments
- Sending Email To Multiple Recipients
- Sending Email With Name
- Mailer Views
- Action Mailer Layouts
- Generating URLs in Action Mailer Views
- generating URLs with url_for
- generating URLs with named routes
- Sending Multipart Emails
- Sending Emails with Dynamic Delivery Options
- Sending Emails without Template Rendering
- Receiving Emails
- Action Mailer Callbacks
- Using Action Mailer Helpers
- Action Mailer Configuration
- Example Action Mailer Configuration
- Action Mailer Configuration for Gmail
- Mailer Testing
- Intercepting Emails
-
action_view_overview
- Action View Overview
- What is Action View?
- Using Action View with Rails
- Templates, Partials and Layouts
- Templates
- ERB
- Builder
- Template Caching
- Partials
- Naming Partials
- Using Partials to simplify Views
- The as and object options
- Rendering Collections
- Spacer Templates
- Layouts
- Partial Layouts
- View Paths
- Overview of helpers provided by Action View
- RecordTagHelper
- content_tag_for
- div_for
- AssetTagHelper
- auto_discovery_link_tag
- image_path
- image_url
- image_tag
- javascript_include_tag
- javascript_path
- javascript_url
- stylesheet_link_tag
- stylesheet_path
- stylesheet_url
- AtomFeedHelper
- atom_feed
- BenchmarkHelper
- benchmark
- CacheHelper
- cache
- CaptureHelper
- capture
- content_for
- DateHelper
- date_select
- datetime_select
- distance_of_time_in_words
- select_date
- select_datetime
- select_day
- select_hour
- select_minute
- select_month
- select_second
- select_time
- select_year
- time_ago_in_words
- time_select
- DebugHelper
- FormHelper
- check_box
- fields_for
- file_field
- form_for
- hidden_field
- label
- password_field
- radio_button
- text_area
- text_field
- email_field
- url_field
- FormOptionsHelper
- collection_select
- collection_radio_buttons
- collection_check_boxes
- option_groups_from_collection_for_select
- options_for_select
- options_from_collection_for_select
- select
- time_zone_options_for_select
- time_zone_select
- date_field
- FormTagHelper
- check_box_tag
- field_set_tag
- file_field_tag
- form_tag
- hidden_field_tag
- image_submit_tag
- label_tag
- password_field_tag
- radio_button_tag
- select_tag
- submit_tag
- text_area_tag
- text_field_tag
- email_field_tag
- url_field_tag
- date_field_tag
- JavaScriptHelper
- escape_javascript
- javascript_tag
- NumberHelper
- number_to_currency
- number_to_human_size
- number_to_percentage
- number_to_phone
- number_with_delimiter
- number_with_precision
- SanitizeHelper
- sanitize
- sanitize_css(style)
- strip_links(html)
- strip_tags(html)
- CsrfHelper
- Localized Views
- active_job_basics
-
active_model_basics
- Active Model Basics
- Introduction
- Attribute Methods
- Callbacks
- Conversion
- Dirty
- Querying object directly for its list of all changed attributes.
- Attribute based accessor methods
- Validations
- Naming
- Model
- Serialization
- ActiveModel::Serializers
- ActiveModel::Serializers::JSON
- ActiveModel::Serializers::Xml
- Translation
- Lint Tests
- SecurePassword
- Requirements
- Examples
-
active_record_basics
- Active Record Basics
- What is Active Record?
- The Active Record Pattern
- Object Relational Mapping
- Active Record as an ORM Framework
- Convention over Configuration in Active Record
- Naming Conventions
- Schema Conventions
- Creating Active Record Models
- Overriding the Naming Conventions
- CRUD: Reading and Writing Data
- Create
- Read
- Update
- Delete
- Validations
- Callbacks
- Migrations
-
active_record_callbacks
- Active Record Callbacks
- The Object Life Cycle
- Callbacks Overview
- Callback Registration
- Available Callbacks
- Creating an Object
- Updating an Object
- Destroying an Object
- after_initialize and after_find
- after_touch
- Running Callbacks
- Skipping Callbacks
- Halting Execution
- Relational Callbacks
- Conditional Callbacks
- Using :if and :unless with a Symbol
- Using :if and :unless with a String
- Using :if and :unless with a Proc
- Multiple Conditions for Callbacks
- Callback Classes
- Transaction Callbacks
-
active_record_migrations
- Active Record Migrations
- Migration Overview
- Creating a Migration
- Creating a Standalone Migration
- Model Generators
- Passing Modifiers
- Writing a Migration
- Creating a Table
- Creating a Join Table
- Changing Tables
- Changing Columns
- Column Modifiers
- Foreign Keys
- When Helpers aren't Enough
- Using the change Method
- Using reversible
- Using the up/down Methods
- Reverting Previous Migrations
- Running Migrations
- Rolling Back
- Setup the Database
- Resetting the Database
- Running Specific Migrations
- Running Migrations in Different Environments
- Changing the Output of Running Migrations
- Changing Existing Migrations
- Schema Dumping and You
- What are Schema Files for?
- Types of Schema Dumps
- Schema Dumps and Source Control
- Active Record and Referential Integrity
- Migrations and Seed Data
- active_record_postgresql
-
active_record_querying
- Active Record Query Interface
- Retrieving Objects from the Database
- Retrieving a Single Object
- find
- take
- first
- last
- find_by
- Retrieving Multiple Objects in Batches
- find_each
- Options for find_each
- find_in_batches
- Options for find_in_batches
- Conditions
- Pure String Conditions
- Array Conditions
- Placeholder Conditions
- Hash Conditions
- Equality Conditions
- Range Conditions
- Subset Conditions
- NOT Conditions
- Ordering
- Selecting Specific Fields
- Limit and Offset
- Group
- Total of grouped items
- Having
- Overriding Conditions
- unscope
- only
- reorder
- reverse_order
- rewhere
- Null Relation
- Readonly Objects
- Locking Records for Update
- Optimistic Locking
- Pessimistic Locking
- Joining Tables
- Using a String SQL Fragment
- Using Array/Hash of Named Associations
- Joining a Single Association
- Joining Multiple Associations
- Joining Nested Associations (Single Level)
- Joining Nested Associations (Multiple Level)
- Specifying Conditions on the Joined Tables
- Eager Loading Associations
- Eager Loading Multiple Associations
- Array of Multiple Associations
- Nested Associations Hash
- Specifying Conditions on Eager Loaded Associations
- Scopes
- Passing in arguments
- Applying a default scope
- Merging of scopes
- Removing All Scoping
- Dynamic Finders
- Find or Build a New Object
- find_or_create_by
- find_or_create_by!
- find_or_initialize_by
- Finding by SQL
- select_all
- pluck
- ids
- Existence of Objects
- Calculations
- Count
- Average
- Minimum
- Maximum
- Sum
- Running EXPLAIN
- Interpreting EXPLAIN
-
active_record_validations
- Active Record Validations
- Validations Overview
- Why Use Validations?
- When Does Validation Happen?
- Skipping Validations
- valid? and invalid?
- errors[]
- Validation Helpers
- acceptance
- validates_associated
- confirmation
- exclusion
- format
- inclusion
- length
- numericality
- presence
- absence
- uniqueness
- validates_with
- validates_each
- Common Validation Options
- :allow_nil
- :allow_blank
- :message
- :on
- Strict Validations
- Conditional Validation
- Using a Symbol with :if and :unless
- Using a String with :if and :unless
- Using a Proc with :if and :unless
- Grouping Conditional validations
- Combining Validation Conditions
- Performing Custom Validations
- Custom Validators
- Custom Methods
- Working with Validation Errors
- errors
- errors[]
- errors.add
- errors
- errors.clear
- errors.size
- Displaying Validation Errors in Views
-
active_support_core_extensions
- Active Support Core Extensions
- How to Load Core Extensions
- Stand-Alone Active Support
- Cherry-picking a Definition
- Loading Grouped Core Extensions
- Loading All Core Extensions
- Loading All Active Support
- Active Support Within a Ruby on Rails Application
- Extensions to All Objects
- blank? and present?
- presence
- duplicable?
- deep_dup
- try
- class_eval(*args, &block)
- acts_like?(duck)
- to_param
- to_query
- with_options
- JSON support
- Instance Variables
- instance_values
- instance_variable_names
- Silencing Warnings, Streams, and Exceptions
- in?
- Extensions to Module
- alias_method_chain
- Attributes
- alias_attribute
- Internal Attributes
- Module Attributes
- Parents
- parent
- parent_name
- parents
- Constants
- Qualified Constant Names
- Reachable
- Anonymous
- Method Delegation
- Redefining Methods
- Extensions to Class
- Class Attributes
- class_attribute
- cattr_reader, cattr_writer, and cattr_accessor
- Subclasses & Descendants
- subclasses
- descendants
- Extensions to String
- Output Safety
- Motivation
- Safe Strings
- Transformation
- Conversion and Coercion
- Copying
- remove
- squish
- truncate
- truncate_words
- inquiry
- starts_with? and ends_with?
- strip_heredoc
- indent
- Access
- at(position)
- from(position)
- to(position)
- first(limit = 1)
- last(limit = 1)
- Inflections
- pluralize
- singularize
- camelize
- underscore
- titleize
- dasherize
- demodulize
- deconstantize
- parameterize
- tableize
- classify
- constantize
- humanize
- foreign_key
- Conversions
- to_date, to_time, to_datetime
- Extensions to Numeric
- Bytes
- Time
- Formatting
- Extensions to Integer
- multiple_of?
- ordinal
- ordinalize
- Extensions to BigDecimal
- to_s
- to_formatted_s
- Extensions to Enumerable
- sum
- index_by
- many?
- exclude?
- Extensions to Array
- Accessing
- Adding Elements
- prepend
- append
- Options Extraction
- Conversions
- to_sentence
- to_formatted_s
- to_xml
- Wrapping
- Duplicating
- Grouping
- in_groups_of(number, fill_with = nil)
- in_groups(number, fill_with = nil)
- split(value = nil)
- Extensions to Hash
- Conversions
- to_xml
- Merging
- reverse_merge and reverse_merge!
- reverse_update
- deep_merge and deep_merge!
- Deep duplicating
- Working with Keys
- except and except!
- transform_keys and transform_keys!
- stringify_keys and stringify_keys!
- symbolize_keys and symbolize_keys!
- to_options and to_options!
- assert_valid_keys
- Working with Values
- transform_values && transform_values!
- Slicing
- Extracting
- Indifferent Access
- Compacting
- Extensions to Regexp
- multiline?
- Extensions to Range
- to_s
- include?
- overlaps?
- Extensions to Date
- Calculations
- Date.current
- Named dates
- prev_year, next_year
- prev_month, next_month
- prev_quarter, next_quarter
- beginning_of_week, end_of_week
- monday, sunday
- prev_week, next_week
- beginning_of_month, end_of_month
- beginning_of_quarter, end_of_quarter
- beginning_of_year, end_of_year
- Other Date Computations
- years_ago, years_since
- months_ago, months_since
- weeks_ago
- advance
- Changing Components
- Durations
- Timestamps
- beginning_of_day, end_of_day
- beginning_of_hour, end_of_hour
- beginning_of_minute, end_of_minute
- ago, since
- Other Time Computations
- Conversions
- Extensions to DateTime
- Calculations
- Named Datetimes
- DateTime.current
- Other Extensions
- seconds_since_midnight
- utc
- utc?
- advance
- Changing Components
- Durations
- Extensions to Time
- Calculations
- Time.current
- all_day, all_week, all_month, all_quarter and all_year
- Time Constructors
- Durations
- Extensions to File
- atomic_write
- Extensions to Marshal
- load
- Extensions to Logger
- around_
- silence
- datetime_format=
- Extensions to NameError
- Extensions to LoadError
-
active_support_instrumentation
- Active Support Instrumentation
- Introduction to instrumentation
- Rails framework hooks
- Action Controller
- write_fragment.action_controller
- read_fragment.action_controller
- expire_fragment.action_controller
- exist_fragment?.action_controller
- write_page.action_controller
- expire_page.action_controller
- start_processing.action_controller
- process_action.action_controller
- send_file.action_controller
- send_data.action_controller
- redirect_to.action_controller
- halted_callback.action_controller
- Action View
- render_template.action_view
- render_partial.action_view
- Active Record
- sql.active_record
- identity.active_record
- Action Mailer
- receive.action_mailer
- deliver.action_mailer
- Active Support
- cache_read.active_support
- cache_generate.active_support
- cache_fetch_hit.active_support
- cache_write.active_support
- cache_delete.active_support
- cache_exist?.active_support
- Railties
- load_config_initializer.railties
- Rails
- deprecation.rails
- Subscribing to an event
- Creating custom events
- api_documentation_guidelines
-
asset_pipeline
- The Asset Pipeline
- What is the Asset Pipeline?
- Main Features
- What is Fingerprinting and Why Should I Care?
- How to Use the Asset Pipeline
- Controller Specific Assets
- Asset Organization
- Search Paths
- Using Index Files
- Coding Links to Assets
- CSS and ERB
- CSS and Sass
- JavaScript/CoffeeScript and ERB
- Manifest Files and Directives
- Preprocessing
- In Development
- Runtime Error Checking
- Turning Digests Off
- Turning Debugging Off
- In Production
- Precompiling Assets
- Far-future Expires Header
- Local Precompilation
- Live Compilation
- CDNs
- Set up a CDN to Serve Static Assets
- Customize CDN Caching Behavior
- CDN Request Caching
- CDN Header Debugging
- CDNs and the Cache-Control Header
- CDNs and URL based Cache Invalidation
- Customizing the Pipeline
- CSS Compression
- JavaScript Compression
- Using Your Own Compressor
- Changing the assets Path
- X-Sendfile Headers
- Assets Cache Store
- Adding Assets to Your Gems
- Making Your Library or Gem a Pre-Processor
- Upgrading from Old Versions of Rails
-
association_basics
- Active Record Associations
- Why Associations?
- The Types of Associations
- The belongs_to Association
- The has_one Association
- The has_many Association
- The has_many :through Association
- The has_one :through Association
- The has_and_belongs_to_many Association
- Choosing Between belongs_to and has_one
- Choosing Between has_many :through and has_and_belongs_to_many
- Polymorphic Associations
- Self Joins
- Tips, Tricks, and Warnings
- Controlling Caching
- Avoiding Name Collisions
- Updating the Schema
- Creating Foreign Keys for belongs_to Associations
- Creating Join Tables for has_and_belongs_to_many Associations
- Controlling Association Scope
- Bi-directional Associations
- Detailed Association Reference
- belongs_to Association Reference
- Methods Added by belongs_to
- association(force_reload = false)
- association=(associate)
- build_association(attributes = {})
- create_association(attributes = {})
- create_association!(attributes = {})
- Options for belongs_to
- :autosave
- :class_name
- :counter_cache
- :dependent
- :foreign_key
- :inverse_of
- :polymorphic
- :touch
- :validate
- Scopes for belongs_to
- where
- includes
- readonly
- select
- Do Any Associated Objects Exist?
- When are Objects Saved?
- has_one Association Reference
- Methods Added by has_one
- association(force_reload = false)
- association=(associate)
- build_association(attributes = {})
- create_association(attributes = {})
- create_association!(attributes = {})
- Options for has_one
- :as
- :autosave
- :class_name
- :dependent
- :foreign_key
- :inverse_of
- :primary_key
- :source
- :source_type
- :through
- :validate
- Scopes for has_one
- where
- includes
- readonly
- select
- Do Any Associated Objects Exist?
- When are Objects Saved?
- has_many Association Reference
- Methods Added by has_many
- collection(force_reload = false)
- collection<<(object, …)
- collection.delete(object, …)
- collection.destroy(object, …)
- collection=(objects)
- collection_singular_ids
- collection_singular_ids=(ids)
- collection.clear
- collection.empty?
- collection.size
- collection.find(…)
- collection.where(…)
- collection.exists?(…)
- collection.build(attributes = {}, …)
- collection.create(attributes = {})
- collection.create!(attributes = {})
- Options for has_many
- :as
- :autosave
- :class_name
- :dependent
- :foreign_key
- :inverse_of
- :primary_key
- :source
- :source_type
- :through
- :validate
- Scopes for has_many
- where
- extending
- group
- includes
- limit
- offset
- order
- readonly
- select
- distinct
- When are Objects Saved?
- has_and_belongs_to_many Association Reference
- Methods Added by has_and_belongs_to_many
- Additional Column Methods
- collection(force_reload = false)
- collection<<(object, …)
- collection.delete(object, …)
- collection.destroy(object, …)
- collection=(objects)
- collection_singular_ids
- collection_singular_ids=(ids)
- collection.clear
- collection.empty?
- collection.size
- collection.find(…)
- collection.where(…)
- collection.exists?(…)
- collection.build(attributes = {})
- collection.create(attributes = {})
- collection.create!(attributes = {})
- Options for has_and_belongs_to_many
- :association_foreign_key
- :autosave
- :class_name
- :foreign_key
- :join_table
- :validate
- Scopes for has_and_belongs_to_many
- where
- extending
- group
- includes
- limit
- offset
- order
- readonly
- select
- uniq
- When are Objects Saved?
- Association Callbacks
- Association Extensions
-
autoloading_and_reloading_constants
- Autoloading and Reloading Constants
- Introduction
- Constants Refresher
- Nesting
- Class and Module Definitions are Constant Assignments
- Constants are Stored in Modules
- Resolution Algorithms
- Resolution Algorithm for Relative Constants
- Resolution Algorithm for Qualified Constants
- Vocabulary
- Parent Namespaces
- Loading Mechanism
- Autoloading Availability
- autoload_paths
- Autoloading Algorithms
- Relative References
- Constants after the class and module Keywords
- Top-Level Constants
- Namespaces
- Qualified References
- Automatic Modules
- Generic Procedure
- require_dependency
- Constant Reloading
- Module#autoload isn't Involved
- Common Gotchas
- Nesting and Qualified Constants
- Autoloading and STI
- Autoloading and require
- Autoloading and Initializers
- require_dependency and Initializers
- When Constants aren't Missed
- Relative References
- Qualified References
- Autoloading within Singleton Classes
- Autoloading in BasicObject
-
caching_with_rails
- Caching with Rails: An overview
- Basic Caching
- Page Caching
- Action Caching
- Fragment Caching
- Low-Level Caching
- SQL Caching
- Cache Stores
- Configuration
- ActiveSupport::Cache::Store
- ActiveSupport::Cache::MemoryStore
- ActiveSupport::Cache::FileStore
- ActiveSupport::Cache::MemCacheStore
- ActiveSupport::Cache::EhcacheStore
- ActiveSupport::Cache::NullStore
- Custom Cache Stores
- Cache Keys
- Conditional GET support
-
command_line
- The Rails Command Line
- Command Line Basics
- rails new
- rails server
- rails generate
- rails console
- The app and helper objects
- rails dbconsole
- rails runner
- rails destroy
- Rake
- about
- assets
- db
- doc
- notes
- routes
- test
- tmp
- Miscellaneous
- Custom Rake Tasks
- The Rails Advanced Command Line
- Rails with Databases and SCM
-
configuring
- Configuring Rails Applications
- Locations for Initialization Code
- Running Code Before Rails
- Configuring Rails Components
- Rails General Configuration
- Configuring Assets
- Configuring Generators
- Configuring Middleware
- Configuring i18n
- Configuring Active Record
- Configuring Action Controller
- Configuring Action Dispatch
- Configuring Action View
- Configuring Action Mailer
- Configuring Active Support
- Configuring a Database
- Connection Preference
- Configuring an SQLite3 Database
- Configuring a MySQL Database
- Configuring a PostgreSQL Database
- Configuring an SQLite3 Database for JRuby Platform
- Configuring a MySQL Database for JRuby Platform
- Configuring a PostgreSQL Database for JRuby Platform
- Creating Rails Environments
- Deploy to a subdirectory (relative url root)
- Using Passenger
- Using a Reverse Proxy
- Considerations when deploying to a subdirectory
- Rails Environment Settings
- Using Initializer Files
- Initialization events
- Rails::Railtie#initializer
- Initializers
- Database pooling
- Custom configuration
-
contributing_to_ruby_on_rails
- Contributing to Ruby on Rails
- Reporting an Issue
- Creating a Bug Report
- Create a Self-Contained gist for Active Record and Action Controller Issues
- Special Treatment for Security Issues
- What about Feature Requests?
- Helping to Resolve Existing Issues
- Verifying Bug Reports
- Testing Patches
- Contributing to the Rails Documentation
- Contributing to the Rails Code
- Setting Up a Development Environment
- The Easy Way
- The Hard Way
- Clone the Rails Repository
- Running an Application Against Your Local Branch
- Write Your Code
- Follow the Coding Conventions
- Benchmark Your Code
- Running Tests
- Entire Rails:
- For a Particular Component
- Running a Single Test
- Testing Active Record
- Warnings
- Updating the CHANGELOG
- Updating the Gemfile.lock
- Sanity Check
- Commit Your Changes
- Update Your Branch
- Fork
- Issue a Pull Request
- Get some Feedback
- Iterate as Necessary
- Squashing commits
- Updating pull request
- Older Versions of Ruby on Rails
- Backporting
- Rails Contributors
-
debugging_rails_applications
- Debugging Rails Applications
- View Helpers for Debugging
- debug
- to_yaml
- inspect
- The Logger
- What is the Logger?
- Log Levels
- Sending Messages
- Tagged Logging
- Impact of Logs on Performance
- Debugging with the byebug gem
- Setup
- The Shell
- The Context
- Threads
- Inspecting Variables
- Step by Step
- Breakpoints
- Catching Exceptions
- Resuming Execution
- Editing
- Quitting
- Settings
- Debugging Memory Leaks
- Valgrind
- Plugins for Debugging
- References
- development_dependencies_install
- documents.yaml
-
engines
- Getting Started with Engines
- What are engines?
- Generating an engine
- Inside an Engine
- Critical Files
- app Directory
- bin Directory
- test Directory
- Providing engine functionality
- Generating an Article Resource
- Generating a Comments Resource
- Hooking Into an Application
- Mounting the Engine
- Engine setup
- Using a Class Provided by the Application
- Using a Model Provided by the Application
- Using a Controller Provided by the Application
- Configuring an Engine
- Setting Configuration Settings in the Application
- General Engine Configuration
- Testing an engine
- Functional Tests
- Improving engine functionality
- Overriding Models and Controllers
- A note on Decorators and Loading Code
- Implementing Decorator Pattern Using Class#class_eval
- Implementing Decorator Pattern Using ActiveSupport::Concern
- Overriding Views
- Routes
- Assets
- Separate Assets & Precompiling
- Other Gem Dependencies
-
form_helpers
- Form Helpers
- Dealing with Basic Forms
- A Generic Search Form
- Multiple Hashes in Form Helper Calls
- Helpers for Generating Form Elements
- Checkboxes
- Radio Buttons
- Other Helpers of Interest
- Dealing with Model Objects
- Model Object Helpers
- Binding a Form to an Object
- Relying on Record Identification
- Dealing with Namespaces
- How do forms with PATCH, PUT, or DELETE methods work?
- Making Select Boxes with Ease
- The Select and Option Tags
- Select Boxes for Dealing with Models
- Option Tags from a Collection of Arbitrary Objects
- Time Zone and Country Select
- Using Date and Time Form Helpers
- Barebones Helpers
- Model Object Helpers
- Common Options
- Individual Components
- Uploading Files
- What Gets Uploaded
- Dealing with Ajax
- Customizing Form Builders
- Understanding Parameter Naming Conventions
- Basic Structures
- Combining Them
- Using Form Helpers
- Forms to External Resources
- Building Complex Forms
- Configuring the Model
- Nested Forms
- The Controller
- Removing Objects
- Preventing Empty Records
- Adding Fields on the Fly
-
generators
- Creating and Customizing Rails Generators & Templates
- First Contact
- Creating Your First Generator
- Creating Generators with Generators
- Generators Lookup
- Customizing Your Workflow
- Customizing Your Workflow by Changing Generators Templates
- Adding Generators Fallbacks
- Application Templates
- Generator methods
- gem
- gem_group
- add_source
- inject_into_file
- gsub_file
- application
- git
- vendor
- lib
- rakefile
- initializer
- generate
- rake
- capify!
- route
- readme
-
getting_started
- Getting Started with Rails
- Guide Assumptions
- What is Rails?
- Creating a New Rails Project
- Installing Rails
- Creating the Blog Application
- Hello, Rails!
- Starting up the Web Server
- Say “Hello”, Rails
- Setting the Application Home Page
- Getting Up and Running
- Laying down the ground work
- The first form
- Creating articles
- Creating the Article model
- Running a Migration
- Saving data in the controller
- Showing Articles
- Listing all articles
- Adding links
- Adding Some Validation
- Updating Articles
- Using partials to clean up duplication in views
- Deleting Articles
- Adding a Second Model
- Generating a Model
- Associating Models
- Adding a Route for Comments
- Generating a Controller
- Refactoring
- Rendering Partial Collections
- Rendering a Partial Form
- Deleting Comments
- Deleting Associated Objects
- Security
- Basic Authentication
- Other Security Considerations
- What's Next?
- Configuration Gotchas
-
i18n
- Rails Internationalization (I18n) API
- How I18n in Ruby on Rails Works
- The Overall Architecture of the Library
- The Public I18n API
- Setup the Rails Application for Internationalization
- Configure the I18n Module
- Optional: Custom I18n Configuration Setup
- Setting and Passing the Locale
- Setting the Locale from the Domain Name
- Setting the Locale from the URL Params
- Setting the Locale from the Client Supplied Information
- Using Accept-Language
- Using GeoIP (or Similar) Database
- User Profile
- Internationalizing your Application
- Adding Translations
- Passing variables to translations
- Adding Date/Time Formats
- Inflection Rules For Other Locales
- Localized Views
- Organization of Locale Files
- Overview of the I18n API Features
- Looking up Translations
- Basic Lookup, Scopes and Nested Keys
- Defaults
- Bulk and Namespace Lookup
- “Lazy” Lookup
- Interpolation
- Pluralization
- Setting and Passing a Locale
- Using Safe HTML Translations
- Translations for Active Record Models
- Error Message Scopes
- Error Message Interpolation
- Translations for the Active Record error_messages_for Helper
- Translations for Action Mailer E-Mail Subjects
- Overview of Other Built-In Methods that Provide I18n Support
- Action View Helper Methods
- Active Model Methods
- Active Support Methods
- How to Store your Custom Translations
- Customize your I18n Setup
- Using Different Backends
- Using Different Exception Handlers
- Conclusion
- Contributing to Rails I18n
- Resources
- Authors
- Footnotes
-
initialization
- The Rails Initialization Process
- Launch!
- railties/bin/rails
- railties/lib/rails/app_rails_loader.rb
- bin/rails
- config/boot.rb
- rails/commands.rb
- rails/commands/command_tasks.rb
- actionpack/lib/action_dispatch.rb
- rails/commands/server.rb
- Rack: lib/rack/server.rb
- config/application
- Rails::Server#start
- config/environment.rb
- config/application.rb
- Loading Rails
- railties/lib/rails/all.rb
- Back to config/environment.rb
- railties/lib/rails/application.rb
- Rack: lib/rack/server.rb
-
layouts_and_rendering
- Layouts and Rendering in Rails
- Overview: How the Pieces Fit Together
- Creating Responses
- Rendering by Default: Convention Over Configuration in Action
- Using render
- Rendering Nothing
- Rendering an Action's View
- Rendering an Action's Template from Another Controller
- Rendering an Arbitrary File
- Wrapping it up
- Using render with :inline
- Rendering Text
- Rendering HTML
- Rendering JSON
- Rendering XML
- Rendering Vanilla JavaScript
- Rendering raw body
- Options for render
- The :content_type Option
- The :layout Option
- The :location Option
- The :status Option
- Finding Layouts
- Specifying Layouts for Controllers
- Choosing Layouts at Runtime
- Conditional Layouts
- Layout Inheritance
- Avoiding Double Render Errors
- Using redirect_to
- Getting a Different Redirect Status Code
- The Difference Between render and redirect_to
- Using head To Build Header-Only Responses
- Structuring Layouts
- Asset Tag Helpers
- Linking to Feeds with the auto_discovery_link_tag
- Linking to JavaScript Files with the javascript_include_tag
- Linking to CSS Files with the stylesheet_link_tag
- Linking to Images with the image_tag
- Linking to Videos with the video_tag
- Linking to Audio Files with the audio_tag
- Understanding yield
- Using the content_for Method
- Using Partials
- Naming Partials
- Using Partials to Simplify Views
- Partial Layouts
- Passing Local Variables
- Rendering Collections
- Local Variables
- Spacer Templates
- Collection Partial Layouts
- Using Nested Layouts
- maintenance_policy
-
nested_model_forms
- Rails Nested Model Forms
- Model setup
- ActiveRecord::Base model
- has_one
- belongs_to
- has_many / has_and_belongs_to_many
- Custom model
- Single associated object
- Association collection
- Views
- Controller code
- Form code
- Standard form
- Nested form for a single associated object
- Nested form for a collection of associated objects
- plugins
-
rails_application_templates
- Rails Application Templates
- Usage
- Template API
- gem(*args)
- gem_group(*names, &block)
- add_source(source, options = {})
- environment/application(data=nil, options={}, &block)
- vendor/lib/file/initializer(filename, data = nil, &block)
- rakefile(filename, data = nil, &block)
- generate(what, *args)
- run(command)
- rake(command, options = {})
- route(routing_code)
- inside(dir)
- ask(question)
- yes?(question) or no?(question)
- git(:command)
- after_bundle(&block)
- Advanced Usage
-
rails_on_rack
- Rails on Rack
- Introduction to Rack
- Rails on Rack
- Rails Application's Rack Object
- rails server
- rackup
- Development and auto-reloading
- Action Dispatcher Middleware Stack
- Inspecting Middleware Stack
- Configuring Middleware Stack
- Adding a Middleware
- Swapping a Middleware
- Deleting a Middleware
- Internal Middleware Stack
- Resources
- Learning Rack
- Understanding Middlewares
-
routing
- Rails Routing from the Outside In
- The Purpose of the Rails Router
- Connecting URLs to Code
- Generating Paths and URLs from Code
- Resource Routing: the Rails Default
- Resources on the Web
- CRUD, Verbs, and Actions
- Path and URL Helpers
- Defining Multiple Resources at the Same Time
- Singular Resources
- Controller Namespaces and Routing
- Nested Resources
- Limits to Nesting
- Shallow Nesting
- Routing concerns
- Creating Paths and URLs From Objects
- Adding More RESTful Actions
- Adding Member Routes
- Adding Collection Routes
- Adding Routes for Additional New Actions
- Non-Resourceful Routes
- Bound Parameters
- Dynamic Segments
- Static Segments
- The Query String
- Defining Defaults
- Naming Routes
- HTTP Verb Constraints
- Segment Constraints
- Request-Based Constraints
- Advanced Constraints
- Route Globbing and Wildcard Segments
- Redirection
- Routing to Rack Applications
- Using root
- Unicode character routes
- Customizing Resourceful Routes
- Specifying a Controller to Use
- Specifying Constraints
- Overriding the Named Helpers
- Overriding the new and edit Segments
- Prefixing the Named Route Helpers
- Restricting the Routes Created
- Translated Paths
- Overriding the Singular Form
- Using :as in Nested Resources
- Overriding Named Route Parameters
- Inspecting and Testing Routes
- Listing Existing Routes
- Testing Routes
- The assert_generates Assertion
- The assert_recognizes Assertion
- The assert_routing Assertion
- ruby_on_rails_guides_guidelines
-
security
- Ruby on Rails Security Guide
- Introduction
- Sessions
- What are Sessions?
- Session id
- Session Hijacking
- Session Guidelines
- Session Storage
- Replay Attacks for CookieStore Sessions
- Session Fixation
- Session Fixation - Countermeasures
- Session Expiry
- Cross-Site Request Forgery (CSRF)
- CSRF Countermeasures
- Redirection and Files
- Redirection
- Self-contained XSS
- File Uploads
- Executable Code in File Uploads
- File Downloads
- Intranet and Admin Security
- Additional Precautions
- User Management
- Brute-Forcing Accounts
- Account Hijacking
- Passwords
- Other
- CAPTCHAs
- Logging
- Good Passwords
- Regular Expressions
- Privilege Escalation
- Injection
- Whitelists versus Blacklists
- SQL Injection
- Introduction
- Bypassing Authorization
- Unauthorized Reading
- Countermeasures
- Cross-Site Scripting (XSS)
- Entry Points
- HTML/JavaScript Injection
- Cookie Theft
- Defacement
- Countermeasures
- Obfuscation and Encoding Injection
- Examples from the Underground
- CSS Injection
- Countermeasures
- Textile Injection
- Countermeasures
- Ajax Injection
- Command Line Injection
- Header Injection
- Response Splitting
- Unsafe Query Generation
- Default Headers
- Environmental Security
- Additional Resources
-
testing
- A Guide to Testing Rails Applications
- Why Write Tests for your Rails Applications?
- Introduction to Testing
- The Test Environment
- Rails Sets up for Testing from the Word Go
- The Low-Down on Fixtures
- What Are Fixtures?
- YAML
- ERB'in It Up
- Fixtures in Action
- Fixtures are Active Record objects
- Unit Testing your Models
- Maintaining the test database schema
- Running Tests
- What to Include in Your Unit Tests
- Available Assertions
- Rails Specific Assertions
- Functional Tests for Your Controllers
- What to Include in your Functional Tests
- Available Request Types for Functional Tests
- The Four Hashes of the Apocalypse
- Instance Variables Available
- Setting Headers and CGI variables
- Testing Templates and Layouts
- A Fuller Functional Test Example
- Testing Views
- Additional View-Based Assertions
- Integration Testing
- Helpers Available for Integration Tests
- Integration Testing Examples
- Rake Tasks for Running your Tests
- A Brief Note About Minitest
- Setup and Teardown
- Testing Routes
- Testing Your Mailers
- Keeping the Postman in Check
- From All Sides
- Unit Testing
- Revenge of the Fixtures
- The Basic Test Case
- Functional Testing
- Testing helpers
- Testing Jobs
- A Basic Test Case
- Custom Assertions And Testing Jobs Inside Other Components
- Other Testing Approaches
-
upgrading_ruby_on_rails
- A Guide for Upgrading Ruby on Rails
- General Advice
- Test Coverage
- Ruby Versions
- The Rake Task
- Upgrading from Rails 4.1 to Rails 4.2
- Web Console
- Responders
- Error handling in transaction callbacks
- Ordering of test cases
- Serialized attributes
- Production log level
- after_bundle in Rails templates
- Rails HTML Sanitizer
- Rails DOM Testing
- Masked Authenticity Tokens
- Action Mailer
- Foreign Key Support
- Upgrading from Rails 4.0 to Rails 4.1
- CSRF protection from remote <script> tags
- Spring
- config/secrets.yml
- Changes to test helper
- Cookies serializer
- Flash structure changes
- Changes in JSON handling
- MultiJSON removal
- JSON gem compatibility
- New JSON encoder
- JSON representation of Time objects
- Usage of return within inline callback blocks
- Methods defined in Active Record fixtures
- I18n enforcing available locales
- Mutator methods called on Relation
- Changes on Default Scopes
- Rendering content from string
- PostgreSQL json and hstore datatypes
- Explicit block use for ActiveSupport::Callbacks
- Upgrading from Rails 3.2 to Rails 4.0
- HTTP PATCH
- A note about media types
- Gemfile
- vendor/plugins
- Active Record
- Active Resource
- Active Model
- Action Pack
- Active Support
- Helpers Loading Order
- Active Record Observer and Action Controller Sweeper
- sprockets-rails
- sass-rails
- Upgrading from Rails 3.1 to Rails 3.2
- Gemfile
- config/environments/development.rb
- config/environments/test.rb
- vendor/plugins
- Active Record
- Upgrading from Rails 3.0 to Rails 3.1
- Gemfile
- config/application.rb
- config/environments/development.rb
- config/environments/production.rb
- config/environments/test.rb
- config/initializers/wrap_parameters.rb
- config/initializers/session_store.rb
- Remove :cache and :concat options in asset helpers references in views
- working_with_javascript_in_rails
Classes and Modules
- ActiveRecord
- BugTest
- Comment
- Kindle
- Minitest
- Object
- Post
- RailsGuides
- RailsGuides::Generator
- RailsGuides::Helpers
- RailsGuides::Indexer
- RailsGuides::Levenshtein
- RailsGuides::Markdown
- RailsGuides::Markdown::Renderer
- RailsGuides::Validator
- TestApp
- TestController
Methods
- ::distance — RailsGuides::Levenshtein
- ::new — RailsGuides::Indexer
- ::new — RailsGuides::Markdown
- ::new — RailsGuides::Generator
- ::new — RailsGuides::Markdown::Renderer
- #add_head_section — Kindle
- #app — BugTest
- #author — RailsGuides::Helpers
- #block_code — RailsGuides::Markdown::Renderer
- #brush_for — RailsGuides::Markdown::Renderer
- #bundler? — Object
- #check_for_kindlegen — RailsGuides::Generator
- #check_fragment_identifiers — RailsGuides::Generator
- #code — RailsGuides::Helpers
- #convert_footnotes — RailsGuides::Markdown::Renderer
- #convert_notes — RailsGuides::Markdown::Renderer
- #copy_assets — RailsGuides::Generator
- #create_output_dir_if_needed — RailsGuides::Generator
- #docs_for_menu — RailsGuides::Helpers
- #documents_by_section — RailsGuides::Helpers
- #documents_flat — RailsGuides::Helpers
- #dom_id — RailsGuides::Markdown
- #dom_id_text — RailsGuides::Markdown
- #engine — RailsGuides::Markdown
- #extract_anchors — RailsGuides::Generator
- #extract_raw_header_and_body — RailsGuides::Markdown
- #finished_documents — RailsGuides::Helpers
- #generate — RailsGuides::Generator
- #generate — Kindle
- #generate? — RailsGuides::Generator
- #generate_body — RailsGuides::Markdown
- #generate_document_metadata — Kindle
- #generate_front_matter — Kindle
- #generate_guide — RailsGuides::Generator
- #generate_guides — RailsGuides::Generator
- #generate_header — RailsGuides::Markdown
- #generate_index — RailsGuides::Markdown
- #generate_mobi — RailsGuides::Generator
- #generate_sections — Kindle
- #generate_structure — RailsGuides::Markdown
- #generate_title — RailsGuides::Markdown
- #guide — RailsGuides::Helpers
- #guides_to_generate — RailsGuides::Generator
- #guides_to_validate — RailsGuides::Validator
- #header — RailsGuides::Markdown::Renderer
- #index — TestController
- #index — RailsGuides::Indexer
- #initialize_dirs — RailsGuides::Generator
- #kindle? — RailsGuides::Generator
- #mobi — RailsGuides::Generator
- #node_index — RailsGuides::Markdown
- #output_file_for — RailsGuides::Generator
- #output_path_for — RailsGuides::Generator
- #paragraph — RailsGuides::Markdown::Renderer
- #process — RailsGuides::Indexer
- #register_kindle_mime_types — RailsGuides::Generator
- #render — RailsGuides::Markdown
- #render_page — RailsGuides::Markdown
- #select_only — RailsGuides::Generator
- #select_only — RailsGuides::Validator
- #set_flags_from_environment — RailsGuides::Generator
- #show_results — RailsGuides::Validator
- #test_association_stuff — BugTest
- #test_returns_success — BugTest
- #test_stuff — BugTest
- #title_to_idx — RailsGuides::Indexer
- #validate — RailsGuides::Validator
- #warn_about_broken_links — RailsGuides::Generator


Hi, all I;ve got the optical sensor plugged into my emonpi, and connected to teh led output on my 3 phase A1100
meter... during the day it all seems fine ( although i need to get the scale right) but at night the led stays solid red but the pulse counter is still going up. it goes up by a consistent amount so i get a nice line at about 60 degrees and then starts working properly in the morning when the led starts pulsing... obviously the kwh accumulator is then massively out as its counted 170kwh over night !!!
Please help
Re: Problem with optical sensor
I don't think it should do that! The solid on LED means the meter is in anti-creep mode, so by some means the sensor or the Pi is seeing pulses.
What do you mean by 60°, i.e, what is the actual pulse rate that you are seeing? (Could it be that the LED is being strobed by the software inside the meter and the sensor is reading that?)
How have you connected the sensor?
Re: Problem with optical sensor
This is the screen grab from the pulse accumulator raw data visualisation. you can see the day time and then the night when it shoots up
and this is the kwh to pwr trace of the same data, you can see the generation rise and fall during the day and then the massive and consistant jump at night.
Im using the Open energy optical sensor and its mounted over the red led on the elster a1100 meter using the supplied polo shaped velcro.
ta
G
Re: Problem with optical sensor
I did believe you, but I can only get a very rough rate from those screen grabs. Can you answer the question and give the actual pulse rate as a number?
Re: Problem with optical sensor
Ok working from the graph and expanding it
from the raw pulse im getting approx 32467 pulses an hour or approx 541 a minute or around 9 a second.
I've checked that for two separate hours and it seems to come to the same amount.
also exporting an hours data i get the same result of about 540 per minute ( which corresponds to a kwh per min on the pulse count)
Count , difference per min
6777552
6778093 541
6778633 540
6779174 541
6779707 533
6780217.5 510.5
6780796 578.5
6781336 540
6781877 541
6782417.5 540.5
6782958 540.5
6783499 541
6784039.5 540.5
6784580 540.5
6785120.5 540.5
6785661 540.5
6786202 541
6786719.5 517.5
6787283 563.5
6787824 541
6788364 540
6788905 541
6789445.5 540.5
6789986 540.5
6790527 541
6791067 540
6791585.5 518.5
6792148.5 563
6792689 540.5
6793230 541
6793770 540
6794311 541
6794851.5 540.5
6795392 540.5
6795933 541
6796466 533
6796999 533
6797554.5 555.5
6798095 540.5
6798636 541
6799176.5 540.5
6799717 540.5
6800257.5 540.5
6800798 540.5
6801339 541
6801879.5 540.5
6802420 540.5
6802960.5 540.5
6803478.5 518
6804012 533.5
6804560 548
6805093 533
6805626.5 533.5
6806159 532.5
6806700 541
6807240.5 540.5
6807781 540.5
Thanks for looking im stumped
G
Re: Problem with optical sensor
That agrees with the rough figure I'd got, but I wasn't sure of the scaling applied (if any). 9 per second ties in uncomfortably closely with the minimum pulse duration set in the sketch, so I do wonder whether the LED in the meter is indeed strobed and it's seeing the first flash after the timeout as a pulse. Is there any way you can check that - possibly with a long exposure photograph whilst panning the camera? If the LED is strobed, you should see a line of red dashes rather than a continuous steak.
Re: Problem with optical sensor
Its difficult to get access to the meter as its on a different site. Is there a tweek to the sketch i could try? its hosted on our server not the main emoncms site.
G
Re: Problem with optical sensor
mmm i think we might have another issue to , as a quick back of a fag packet calculation of a 50kwp system and 500 pulses per kwh gives me a max pulse of 6.944
what is the max pulses per sec we can get away with
G
Re: Problem with optical sensor
The falling edge of the pulse generates an interrupt, and it's handled thus:
min_pulsewidth is therefore actually the minimum period, and it's set to 110 ms. 541 per minute = 0.1109 s period, and it's that which rang the alarm bells. So if I'm right and the LED is strobed, the first falling edge after 110 ms will be counted, and restart the 110 ms timer...
I don't know that I'm on the right track here, but I can't see another mechanism to explain it.
I'll get Trystan involved. I don't know the spec for the sensor, but as the output is TTL, I'm betting it will see kiloherz pulses with no difficulty.
Re: Problem with optical sensor
Hi Graham,
I have just updated the emonPi firmware (V1.8) to turn on internal pull-up resistors on the emonPi pulse counting pin. Please update your emonPi by going to admin>update in local emoncms. More info on how to update here:
http://openenergymonitor.org/emon/modules/emonpi#update
The LCD should display V1.8 on boot. Please let me know if this makes a difference.
Re: Problem with optical sensor
Brilliant, I'll go over and try this first thing on monday and post back
Cheers
G
Re: Problem with optical sensor
Right i've run the update and it now displays firmware v1.8 on boot ok, although i only got a blank screen when looking at the log file ?
I'll report back with data tomorrow morning after we've run through a day and a night, although with this thick fog my own 3.5k system is running at 200 watts!!! still a 50k system should have a bit more to show
G
Re: Problem with optical sensor
Initial results not looking like any change :-( will report back when more data. hardly generating during the day due to fog but big spike over night
Re: Problem with optical sensor
.... with this thick fog my own 3.5k system is running at 200 watts!!!
Yep, this weather is no good for solar power, none of the thermal energy can get through.
My 2.8 kWp PV system is currently generating 60W, and our diverted energy total for today is just 0.003 kWh.
Re: Problem with optical sensor
58 watts here now !!
Re: Problem with optical sensor
"Initial results not looking like any change :-( "
Do you mean no change from the overnight "generation" that far exceeds the capacity of your array? ;-) To be honest, that doesn't surprise me as the sensor output is said to be TTL, and if it is, that shouldn't need a pull-up and giving it one shouldn't make any difference.
Re: Problem with optical sensor
none of the thermal energy can get through
I think that's a good thing in the case of PV.... the hotter those panels get the less they produce. They operate off light, not heat... although it sounds like your fog is so thick you're not getting much of that either.
Re: Problem with optical sensor
I will setup a test here in the lab to try and re-create the issue and work on a fix
Re: Problem with optical sensor
What is the make and model of your meter? We have not experienced this issue when using the sensor on common pulse output meters such as the Elster A100c and Landis & Gyr E110. As mentioned earlier in this thread, I wonder if there is something different about how the LED in your meter is driven when it's continuously on. Are you sure the sensor is making proper contact with the meter LED?
Re: Problem with optical sensor
Its an elster A1100 3 phase meter... markings next to the LED say 500impulses per kwh so 2 per wh
sensor is attatched to the meter over the led using the supplied vercro patch. Meter and sensor are inside an adaptable box so no external light
Cheers
G
Re: Problem with optical sensor
Does the LED when it's illuminated static overnight look any different to you from other utility meter LED's when they are no static? I'm just trying to determine if there could be something different with the meter. We will send you another optical sensor just to make sure there is nothing different or faulty with the sensor.
Re: Problem with optical sensor
500 impulses per kWh so
2 per wh1 per 2 WhOops! That would make your calibration spectacularly wrong.
Re: Problem with optical sensor
Received the replacement sensor today, I'll install on monday.
quick pic of current install shown. sensor mounted over the red led on the meter.
The meter and emon pi etc is mounted in a closed box so no external light
Re: Problem with optical sensor
lol yes typo
Re: Problem with optical sensor
Do you have an analogue moving coil multimeter, or a digital multimeter that doesn't have a super-fast response? If you have, when you have the sensor installed on the meter and when the meter LED is on continuously, measure some voltages on the dc range. Can you measure and report both Vcc and the sensor output voltage? Vcc should be 3.3 V, if the LED is strobed and the sensor is following it, the output voltage should be much less, probably less than and certainly not much more than 1 V even (because this will be the average value of a pulse waveform that swings from about 0.7 V to 2.6 V with a fairly low m/s ratio). But if it's near to 3.3 V (say above 2.6 V), the LED is not strobed and my theory is probably wrong.
Re: Problem with optical sensor
mm i seem to have lost a post.
Changed the sensor and no change to the data. :-)
any other ideas.
The A1100 does have a wired pulse feed option. is there a way i can wire that up ( i do have access to that part of the meter)
Re: Problem with optical sensor
"mm i seem to have lost a post."
It's not awaiting moderation, so I don't know.
What you must be absolutely certain of is the wired pulse feed is "volt-free", i.e. it is completely isolated from the electricity supply, before you can think of using it. I can't find any specification or connection details, so I can't tell exactly what might be inside, but I would guess it's the receiving part of an opto-coupler.
The leaflet also says that your meter has an IrDA output. It may be that this is the same as this thread.
But surely the first problem is to find out what the problem actually is? All that has happened so far is we appear to have ruled out a faulty sensor. That doesn't mean that the sensor is or is not suitable for use with your meter. But it might mean that the software had made unjustifiable assumptions.
Were you able to try reading voltages that the sensor is giving you? The theory was that if the LED is on continuously - really continuously and not just appearing to be continuous as our eyes cannot perceive flicker faster than about 20 Hz - then you would read nearly the same voltage as the sensor's supply voltage. But if the LED was flashing faster than that and the sensor was sending a stream of pulses, you would perceive the LED to be on continuously but a multimeter would read the average voltage that might be only a small fraction of the sensor's supply voltage. That would hopefully give us a better idea of what the A1100 is actually doing.
Re: Problem with optical sensor
From the elster documentation :- Pulse Output An opto-isolated pulse output can provide the basis for an energy management system or AMR. These pulses are output via the meter’s auxiliary terminals. The output conforms to IEC 62053-31.
Single rate meter - The output is connected to the meter's two auxiliary terminals and is fully isolated.
we frequently use them to feed pulse driven display units. its a 2 wire connection so would need some electronics to drive the emonpi via the rj45 port ?
But ideally yes I'd like to solve the issue with the optical sensor. although i do have an issue with access and an end user getting fed up lol..
If i can find a suitable meter how can i measure the voltages from the sender? plug it into the emonpi via some sort of breakout board and measure it from the exposed connections, measure across vcc and gnd?
ta
g
Re: Problem with optical sensor
"plug it into the emonpi via some sort of breakout board and measure it from the exposed connections, measure across vcc and gnd?"
Exactly.
As regards the SO output, then I would wire that between RJ45-5 (GND) and RJ45-6 (D3) and have a 4.7 kΩ pull-up between RJ45-6 (D3) and RJ45-2 (+5 V).
I'd love to say there's a software solution. There may well be but without knowing that the problem is what I think it is, there's no reason to suspect that anything that we do concerning the LED will work properly.
Re: Problem with optical sensor
I have worked out how to test to see whether the meter LED is strobed or not. It's very simple:
View the meter through a small hand-held mirror. Rapidly wobble the mirror. If the LED appears as a series of bright dashes, the LED is strobed. If it is one continuous strip of light, it is not.
Re: Problem with optical sensor
I believe we have fixed this issue for the emonPi,
See commit: https://github.com/openenergymonitor/emonpi/commit/56ac3bbf7ed07787b12eb6396e15f36081eb626a. The issue was caused by pulse time variable not being reset correctly.
Please could you try updating the emonPi firmware following the same update procedure as before admin>update. The new firmware should display V1.9 at startup.
Re: Problem with optical sensor
Cool I'll try and get on site to do this tomorrow, would be really great if this sorts it.
Cheers
Graham
Re: Problem with optical sensor
Any joy?
Re: Problem with optical sensor
Hi, only got access to the site yesterday morning to do the update so only one nights data but it s looking good so far :-)
Re: Problem with optical sensor
Great :-)
Good to hear.


This page includes no other source files - clicking on the link below will load the named bookmarklet onto the page
Element Highlighter - Once loaded, this enables you to hover over elements on the page and see their tag name
Consectetur adipisicing elit. Aut expedita magnam, nam nulla perspiciatis quasi
voluptate. Aspernatur autem, blanditiis commodi eligendi, et, fuga magnam odit officia quaerat quas soluta velit.


Total letters:
Reset counter
WiFi
SSID
Password
Save
WiFi Direct
SSID
Password
Save
Network
IP
Gateway
Subnet
mDNS host
Save
Telegram
Token
Chat ID
Notification text
Paste this template
$counter$
where you want to see the mail counter
Save
Restart SmartMailBox


I stumbled out of bed
I got ready for the struggle
I smoked a cigarette
And I tightened up my gut
I said this can't be me
Must be my double
And I can't forget
And I can't forget
I can't forget but I don't remember what
I'm burning up the road
I'm heading down to Phoenix
I got this old address
Of someone that I knew
It was high and fine and free
Oh you should've seen us
And I can't forget
And I can't forget
Ican't forget but I don't remember who
I'll be there today with a big bouquet of cactus
I've got this rig that runs, runs on memory
And I promise, cross my heart they'll never catch us
But if they do just tell 'em it was me
I've loved you all my life
And that's how I want to end it
The summer's almost gone
And winter's tuning up
The summer's gone but a lot goes on forever
And I can't forget
I can't forget
I can't forget, but I don't remember what