{% extends '../layouts/template.html' %} {% block title %}Check your State Pension - {{mvpversion}}{% endblock %} {% block serviceName %}Check your State Pension{% endblock %} {% block main %} Back
We are checking this year to see if it counts towards your pension. We’ll update your record when this is finished, you do not need to do anything.
You did not make any contributions this year
Find out more about gaps in your record and how to check them.
It’s too late to pay for this year. You can usually only pay for the last 6 years.
You did not make any contributions this year
Find out more about gaps in your record and how to check them.
It’s too late to pay for this year. You can usually only pay for the last 6 years.
You did not make any contributions this year
Find out more about gaps in your record and how to check them.
It’s too late to pay for this year. You can usually only pay for the last 6 years.
You did not make any contributions this year
Find out more about gaps in your record and how to check them.
It’s too late to pay for this year. You can usually only pay for the last 6 years.
You did not make any contributions this year
Find out more about gaps in your record and how to check them.
It&rquo;s too late to pay for this year. You can usually only pay for the last 6 years.
You did not make any contributions this year
Find out more about gaps in your record and how to check them.
It’s too late to pay for this year. You can usually only pay for the last 6 years.
You did not make any contributions this year
Find out more about gaps in your record and how to check them.
It’s too late to pay for this year. You can usually only pay for the last 6 years.
You did not make any contributions this year
Find out more about gaps in your record and how to check them.
It’s too late to pay for this year. You can usually only pay for the last 6 years.
You did not make any contributions this year
Find out more about gaps in your record and how to check them.
It’s too late to pay for this year. You can usually only pay for the last 6 years.


11 April 2011 - The Ministry of Health (MoH) of the Kingdom of Cambodia has announced a confirmed case of human infection with avian influenza A(H5N1) virus.
The case was an 11 year old girl from Steung Trang district, Kampong Cham Province. She developed symptoms on 22 March, was initially treated by local villagers with no effect and was admitted to a local hospital on 29 March. Further treatment at the local hospital was ineffective and she was referred to a regional hospital where she died within four hours of admission on 31 March.
 The girl is the fourteenth person in Cambodia to become infected with the H5N1 virus and the twelfth to die from complications of the disease. All four cases of H5N1 infections in humans in Cambodia this year have been fatal.
All contacts of the case have been tested and are negative for A/H5N1 influenza virus.


--- layout: archive title: Zulip Chat Archive permalink: /stream/116395-maths/topic/halting.20problem.html ---
holy mother you did it @Mario Carneiro
congratulations
You can see it's just a corollary of a much stronger theorem
oh and which commit should i checkout?
you didn't bother to build any
I think Rice's theorem is cool
?
I eat them every day
https://github.com/leanprover/mathlib/commits
there are no green ticks after April 29
that's weird
travis usually kicks in automatically
so which commit should i use?
I have been building locally so they should work, but I guess I should find out what's up with travis
and which lean version?
3.4.1
Travis is broken on the other packages as well. "This is not an active repository
You don't have sufficient rights to enable this repo on Travis.
Please contact the admin to enable it or to receive admin rights yourself." @Sebastian Ullrich ?
I always get that message, but it did not affect the build itself
Either way, super
does not get built by travis either at the moment.
I'll have to ask Leo
you have a halting problem
https://travis-ci.org/leanprover/mathlib now looks more promising
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


User Login
New User?
Register
Email Address
Password
Forgot Password
Please enable javascript in your browser


CLICK MY HAND TO INITIALIZE
Greetings!!
Thank you for initializing me. You have reached a webpage where you can enter a number and recieve a message from me
First tell me who you are:
Submit
Enter any number greater than zero:
Send
Hey
, have a nice day!


Create Account Page
First Name
Last Name
Business Name
Phone Number
Email address
We'll never share your email with anyone else.
Password
Re-Enter Password
Submit


Hi, I'm Celine
I am a UX student at the University of Michigan and I'm from Taipei, Taiwan. I just got into UMSI and I am excited about all the opportunities it offers. Below are some of my past design work, please email me for more details celinec@umich.edu.


Microsoft Visual Studio 2005 (v8.0) is a native IDE for .NET 2.0. It is very similar to Visual Studio 2003. It provides more functionality and targets a different version of CLR (.NET 2.0).
The way how the CS-Script is integrated with VS8.0 is virtually the same as with VS7.1 (see Development Tools: VS2003).Open the script in Visual Studio by using shell extension:
This is the screenshot of the debugging "Hello World!" sample (hello.cs file).
You can significantly improve the level of the development convenience by enabling CS-Script toolbar and CS-Script code snippets from Visual Studio Integration console.
Debugging tutorial | Script Library


Welcome
Hello food lover, welcome to the Old Folks Cook Book. It's a very simple setup: just click on a dish to go to the recipe, then click 'Back to Recipes List' above the title of any recipe to return to the list. Enjoy your food!
Recipes List
Season 1
- The Best Steak You Ever Had [by Captain]
- Finnish Salmon Soup [by Sleep]
- Granny's Lentil Soup [by Agent Scully]
- Beef Pares [by Julia]
- Quindim [by Bela]
- Tofu Bibimbab [by Tiia]
- Chilli Con Carne with Chorizo [by sametattoos ft. Obinice]
- Untitled Zukkini Game [by V]
- Cheeseburger Noises Bowl [by Greigh]
- Veggie Pad Thai [by kitobor X ms. kitobor]
- Bean soup [by Bela]
- Spagoot Squash Unkept Josephs [by Greigh]
- Bobotie [by Regent]
The Best Steak You Ever Had [by Captain]
for dinner or any
Seasoning Ingredients:
- 2 tablespoons peppercorns
- 1 tablespoon paprika
- 1 tablespoon coarse salt
- 1 tablespoon dried garlic or granulated garlic
- 1 tablespoon dill seed
- 1 tablespoon red pepper flakes
- 1 tablespoon onion powder
- 2 teaspoons coriander seeds
- 2 teaspoons mustard seeds
- Combine all spices and grind with a mortar and pestle or spice grinder. Or, place the spices in a zip top bag and crush with a rolling pin or heavy skillet.
- Store in an airtight container at room temperature.
- 4 tablespoons seasoning mix
- 1/4 cup oil
- 1 tablespoon coarse salt
- 1 tablespoon dried garlic or granulated garlic
- 1/4 cup water
- 4 tablespoons red wine
- 2 pounds steak
- Mix marinade well.
- Place steaks in large food storage bag or other air tight container.
- Pour marinade over steaks, ensuring each steak gets equal amounts of seasoning mix.
- Place in fridge for no less than two hours (no more than 24 hours), rotating steaks every 30 minutes or so.
- When ready to cook, ensure grill has medium to high heat.
- Place steaks on grill for 4 minutes on the first side.
- After four minutes, flip the steaks and pour remaining marinade on steaks. Watch for fire flare ups.
- 4 minutes on each side should give you a nice medium rare steak.
- Let rest at least 4 minutes before eating.
Finnish Salmon Soup [by Sleep]
for lunch or dinner
Ingredients:
- 6 potatoes
- 1-2 carrots
- some spring onions (about the same amount as 1-2 regular onions, you can also sub those)
- 2 tbsp of butter
- 2 tbsp of flour
- 1 liter of fish broth (i used broth cubes, if you don't have that, you can just use 1 liter of water and throw in salt to taste, starting with 1-1,5 tsp and adding more once it's done if needed)
- 8-10 whole allspice berries + like 5 whole peppercorns
- 2dl of cream (any type will do really)
- 400g of salmon, fresh or frozen
- dill
Method:
- chop all veggies and fry them in the butter for about 2mins. add the flour and mix until it coats the veggies. add water + salt/fish broth and the pepper and allspice. boil until veggies are cooked.
- do anything you need to do to prepare the fish (skin+bones off) if using fresh fish and add the fish to the soup. boil for 3-5mins if using fresh fish and for about 10mins if frozen. also add the cream at this point. once that's done, taste and add dill to taste and also check if there's enough salt. finish with green spring onion ends. then enjoy, u did a food
Granny's Lentil Soup (Scottish) [by Agent Scully]
for lunch or dinner
Ingredients:
- 250g of red lentils
- 4 carrots
- Half a turnip
- 2 chicken stock cubes
- Salt and Pepper to taste
- Water
Method:
- Grate the carrot and turnip and add to a pot with the lentils and stock cubes on top
- Depending on how thick you like your soup, add water. For a thick soup, just add enough water to cover everything
- Bring to the boil for about 15 minutes then turn down to a medium heat to simmer until the lentils and veg are soft and cooked and the stock cubes have dissolved. Add salt and pepper to taste and more water if the soup is too thick
- Serve with some nice bread and enjoy!
Beef Pares [by Julia]
for lunch or dinner
Beef Pares (Braised Beef Stew) - pares means pair, and traditionally this stew is paired with fried rice and clear broth, but in my house we instead serve it with noodles. but you do you fam
Ingredients:
- 750 g brisket
- 250 g flank steak (choose the one with more fat and tendon)
- 4 pcs star anise
- 1 long cinnamon stick
- 4 pcs bay leaf
- 1 tbsp peppercorns
- 3-4 tbsp oil
- Medium sized ginger, sliced into ¼ in pieces
- Large onion, sliced
- 1 mf HEAD of garlic, chopped :peepoinlove: yeeee
- ½ cup sugar
- ¼ cup soy sauce
- ¼ cup fish sauce (use fish sauce, not fish-flavored sauce. fish flavored sauce is bs, fish sauce is the real game!!)
- 1 pc beef bouillon cube
- 2 tsp chili powder (omit if you no likey spicy)
- Water, enough to cover up to 1 inch above your meat when u pressure cook it
- ¼ cup cornstarch
- Water
- Fried garlic bits
- Sliced green onions
- Chili garlic oil
Method:
- In a pressure cooker pot, fry spices (star anise, cinnamon bark, whole peppercorns) in oil.
- Once fragrant, add in the aromatics (ginger, onion, garlic). Stir fry until the ginger and garlic turn light brown and the onion translucent
- Stir in the meat and brown it. no need to cook all the way through as you will pressure cook these bad boiz anyway
- Add the rest of your seasonings (sugar, soy sauce, fish sauce, beef cube, chili powder). Saute for a few more minutes and then add in the water. Water needs to cover the meat or up to an inch above it
- Pressure cook for 30 minutes or until the meat is tender but still in tact
- After pressure cooking, check your soup level. Since you’re essentially making noodle soup, you might need to add more water if you feel like much of the broth has boiled off. Add your cornstarch slurry a little at a time (note! Only add up to your desired thickness)
- You’re almost freakin done!! Now it’s time to plate! Serve the beef pares with noodles/garlic fried rice. If you’re doing noodles, you may use tomoshiraga somen noodles or any other japanese style noodle that’s thin and tender. If you want thick and chewy, you may also use udon. If you’re doing fried rice, PRO TIP: use fish sauce to umami-mize your fried rice
- DO.NOT.SKIP.THE.TOPPINGS! Use as much fried garlic bits, spring onions and chili garlic oil as you want.
- Pat pat your back for doing a goody good job and enjoy your bowl of beef pares with the ones you love!! :ofexcited:
* we use a pressure cooker at home to minimize the cooking time for the beef, but def feel free to use any magic weapon you got!
if you accidentally burn your garlic, pls discard and make another batch as burnt garlic tastes bad af
* don’t shy away from using fish sauce! Fish sauce is salty, funky and it’s just a wonderful umami bomb. It adds a whole other dimension of flavor to the food :heart:
** if you made it here, thanks for reading yee u dabest :PI_bunkiss:
Quindim [by Bela]
It’s a dessert! And it’s particularly popular in celebrations. It comes from a Portuguese recipe that had to be adapted to local ingredients, nuns would use the egg whites to starch clothes and with the egg yolks they would make these. We don't starch clothes anymore, but we can still keep the egg whites to make some healthy, fitness meals later.
Ingredients:
- 10 egg yolks
- 1 cup of sugar
- 2 tablespoons of butter (melted)
- ½ cup of grated coconut
- ½ cup of milk (if you're grating a fresh coconut, you won’t need milk and you can skip step 1)
Method:
- Mix the grated coconut and the milk and let it rest for 10 minutes to hydrate;
- Pre-heat the oven to 200°C / 390°F;
- Sift the egg yolks and dispose of the thicker part that doesn’t go through the sieve;
- Add the sugar, butter and grated coconut to the egg yolks and mix;
- Grease (with butter) and sugar the pan*;
- Pour the quindim mix into the pan. If you’re using one larger pan, cover it with foil. If you want there to be a coconut “crust” in the bottom of the quindim, let it rest for 10 minutes before baking it;
- Put the pan inside a wider pan (any roasting pan will do) and add 1 to 2 inches of boiling water, so the quindim will bake in a bain-Marie;
- Bake it at 180°C/360°F for around 40 minutes. You can check if the quindim is ready by poking the centre of it with a toothpick, if the toothpick comes out clean, it means the quindim is baked;
- Let the quindim sit for a while and unmold it when it’s warm enough to be handled (don’t let it cool completely!). You might want to gently run a knife around the edges of the pan before, to make sure there’s nothing sticking to the sides of the pan. Then just flip it over any straight surface and tap the bottom of the pan if you need to;
- FOOD TIME
* As a pan, we use small cupcake/muffin/tart pans or a larger baking pan with a hole in the middle. The quindim won’t grow so you don’t have to leave empty space, but keep in mind they aren't supposed to be tall like cakes.
Tofu Bibimbab [by Tiia]
The dish that’ll soothe your sweet tooth as well!
Tofu ingredients:- 200-300grams of tofu (firm)
- ½-1 tblsp grated ginger (to taste)
- 2tblsp sesame oil (or anything you have)
- 3tblsp soy sauce (I recommend the less salted version)
- 2tblsp brown sugar (the sticky kind is the best)
- 1 garlic finger
- 1tblsp gochujang paste
- 2tblsp water
- 2tblsp sugar
- 1tblsp oil
- 1tsp vinegar (I’ve used rice wine vinegar)
- 1-3 tblsp (toasted) sesame seeds
Method:
- Cut tofu into cubes and press excess water out of them. Preferably leave them under a towel for 10-30mins to get all excess water out.
- Mix sauce ingredients.
- Heat up oil in a pan and add tofu. Brown tofu and take out of the stove. Add ginger, garlic, sugar and soy sauce. OBS! Sugar will burn if you put that in when the pan is still on the stove, mix well!
- You can add sauce in the tofu or pour in on top later (it is very spicy so I recommend tasting a bit first before pouring all in)
- Serve with for example rice, julienned carrots and avocado. Garnish with extra sesame seeds and spring onion. Enjoy :heart:
Chilli con carne with chorizo [by sametattoos ft. Obinice]
Ingredients:- 500 grams of ground beef
- Chorizo sausage
- 2 cans of chilli beans
- 1 can of black beans (or whatever beans you like really)
- 1 can of diced tomatoes
- 1 can of tomato paste (the small one)
- 1 onion
- 3 stalks of celery
- green/yellow/red pepper (how ever much you like)
- 1 hot pepper
- Bacon pieces
- 4 cubes of bouillon
- bottle of dark beer
- Garlic to your hearts desire
- 1 tablespoon of Worcestershire sauce
- Tabasco (I really like the smoky tabasco)
- Chilli powder, dried oregano, ground cumin, dried basil, salt, pepper, cayenne pepper, paprika powder.
Method:
- Cut all vegetables in bite sized pieces. I like my chilli a bit chunky so I go for rougher pieces. Cut the chorizo in bite sized pieces, fry in a large pot.
- Add ground beef until brown.
- Add all vegetables and fry it a bit more. Add the beans (drain everything but the chilli beans).
- Add the tomato cubes. add the beer. throw in a few bouillon cubes. Stir.
- Now, this is the tricky part because I never measure the spices. The original recipe calls for a tea spoon of everything so that's a good starting place. Stir.
- Let it simmer until it's getting thicker. Be prepared for it to take hours.
Can be made in a slowcooker or just a big pot.
Eat with cheddar cheese, tortilla chips and creme fraiche. It gets thicker overnight (which makes it EVEN BETTER) and works fantastic in burrito's
Untitled Zukkini Game [by V]
Ingredients:- 1 green zukkini
- 1 medium aubergine
- 2 medium-sized red peppers
- 2 medium-sized tomatoes
- Rice/grain - see below
Method:
- Prepare the grain - in this case, red rice is being used, but brown rice or even millet would work too. Grain is best to be al-dente and prepared before meal.
- Cut all veg up to bite-sized, add salt per taste (I use a ready mix of salt and some seasonings, but simple salt or seasalt works too), stew on slow heat under tight lid till tender, minding that the juice stays present, add a bit freshly boiled water if it runs low. Add vegetables per person preference (generally 3 spoons of vegetables + gravy per serving). Prepared vegetables keep well in a functional fridge for a week. If cooking for a large family, can go with 2 zukkinis, 1 or 2 aubergines, 3 large peppers and tomatoes respectively
Cheeseburger Noises Bowl [by Greigh]
Ingredients:- Four sprays of cooking spray
- 1 pound uncooked extra lean ground beef 96 % lean 4% fat
- 1 small, finely chopped onion
- 1 tsp kosher salt
- 6 cups chopped romaine lettuce
- 4 medium, diced plum tomatoes
- 12 slices kosher dill pickle sandwich slices
- 8 tbsps shredded reduced-fat cheddar cheese
- 1 tbsp ketchup
- 2 tbsps light mayonnaise
- 1½ tsps mustard
- ½ tsps Worcestershire sauce
- 1 tbsp minced onion
- 2 tbsps chopped, unsweetened dill pickles
- Coat large nonstick skillet with nonstick spray and heat over medium-high.
- Add beef, onion, and salt and cook, breaking up meat with wooden spoon, until beef is cooked through and no longer pink, 7 to 9 minutes.
- Let cool. Set aside or divide beef mixture among 4 small microwavable storage containers.
- Place 1½ cups lettuce each in 4 medium bowls or storage containers. Top each bowl with 1 chopped tomato, 3 pickle slices, 2 tbsp cheese, and red onion (if using).
- In small bowl, stir ingredients for special sauce: ketchup, mayonnaise, mustard, Worcestershire sauce, minced onion, and chopped pickles. Set aside, or divide sauce among 4 small baggies or storage containers.
- Pack beef containers with lettuce containers and special sauce and refrigerate.
- Before serving, heat beef and place on top of salad. Serve with special sauce. Serving size: 1 bowl (about 2 cups)
Veggie Pad Thai [by ms. kitobor]
Ingredients per person:- 2 cloves of garlic (sliced thin)
- Quarter of a red onion (chopped)
- 2 eggs
- 4 spring onions (cut them into 2cm pieces)
- 150g (1 nest) rice noodles
- Fresh coriander leaves
- Handful of crushed peanuts
- Handful of beansprouts (remove seeds)
- 1 tablespoon of soy sauce
- 1 teaspoon of sugar
- 1 teaspoon lemon juice
- 3 tablespoons of vegetable oil
- Chilli flakes (as much as you like!)
Method:
- Put rice noodles in a bowl of boiling water and leave for at least 5 minutes.
- Oil in a wok, medium heat
- Once oil is warm (but not too hot) add garlic and onion, stir until it smells good. Onion should be soft and garlic golden.
- Break eggs in and don't touch them until the egg whites set. Break the egg apart with a spatula and mix with the onion and garlic.
- Add noodles (check they are soft enough, add a bit of water with them if not)
- Add soy sauce and sugar. Stir and taste - add more if needed.
- Add crushed peanuts and chilli flakes. Stir.
- Turn the gas/heat off.
- Add beansprouts, coriander, spring onion. Stir well.
- Put crushed peanuts and chilli flakes in a pile on the side of the plate for mixing in.
- Add lemon juice.
- Make sure there is no water left from the noodles.
- Enjoy!
Bean soup [by Bela]
Serving: 4 servings or one very hungry couple!
Bean soup can be served as a main dish, but it’s also commonly served as a side dish in a glass or mug, when it’s done without pasta and bacon. You'll find beans in every Brazilian household and this recipe is usually done with leftover beans, but we can obviously cook beans just for that or use canned beans.
Ingredients:- 2 cups of cooked beans*, it can be black beans or pinto beans
- 2 cups of water
- 1 medium onion
- 1/3 cup (roughly) of parsley and/or scallion
- 3 minced garlic cloves
- 1/2 cup of pasta, preferably small sized (I used ditalini)
- Black pepper
- Salt
- Optionally, you can add 1 cup of chopped bacon and/or sausage
* If you’re cooking the beans, 1 cup of dried beans is more than enough.
Method:
- Add the beans, water, onion and parsley/scallion to the blender and blend it until everything is mixed well;
- In a pan, fry the garlic and the bacon/sausage;
- Add the bean mix to the pan and heat it;
- When it starts to boil, add the pasta and cook it at low heat until the pasta is ready;
- Add salt and pepper. If the soup is too thick just add more water;
- Eat ALL the soup!
It can be topped with bread, crispy kale, grated cheese, pork crackling, farofa…
Spagoot Squash Unkept Josephs [by Greigh]
Also known as Spaghetti Squash Sloppy Joes
Ingredients:- 3½ pounds uncooked spaghetti squash
- 1 large squash, halved lengthwise and seeded
- Cooking spray - 5 sprays
- ½ cup finely chopped onions
- 8oz uncooked 99% fat-free ground turkey breast
- 1 cup canned tomato sauce
- 2 tsps brown sugar
- 1 tsp chili powder
- ¾ tsp garlic powder
- ¾ tsp onion powder
- ½ tsp kosher salt
- ⅔ cup shredded low fat cheddar or colby cheese
- 2 tbsp thinly sliced scallions
- Preheat oven to 425°F.
- Line a baking sheet with aluminum foil and coat foil with cooking spray. Coat cut sides of squash with foil and arrange squash cut side down on prepared pan. Roast until strands of squash separate when scraped with a fork, about 35 minutes. Remove from oven and cool slightly. Scrape all squash into strands, leaving strands inside squash shells.
- Meanwhile, heat a medium nonstick skillet over medium heat. Coat pan with cooking spray. Add onion and cook 2 minutes. Add turkey to pan and cook until turkey is cooked through, stirring to crumble, 3-5 minutes. Add tomato sauce, brown sugar, chili powder, garlic powder, onion powder, and salt. Bring to a boil. Reduce heat to low, and simmer until thickened, about 3 minutes.
- Preheat broiler to high. Divide turkey mixture evenly between squash halves. Top evenly with cheese. Broil until cheese melts, about 2 minutes. Sprinkle evenly with scallions. Serving size: 1 filled squash half
Mayo on Pineapple Pizza [by Raven and Status]
Ingredients:- Mayonnaise
- Pineapple
- Pizza
- No self respect
- Ruin a perfectly good pineapple pizza with mayonnaise.
- Cry.
Bobotie [by Regent]
Ingredients:- 1 large onion
- 2 cloves of garlic
- 1 teaspoon of parsley
- 3 table spoons of curry powder (Gutruf, or equivalent)
- 500 g minced meat
- 4 bay leaves
- worcestershire sauce
- vinegar
- 1 Granny Smith apple
- 100 g green beans
- 2 eggs
- 100 ml full-fat milk
- bread crumbs
- 200 g creme fraiche
- handful of almond shavings
(these are literal spoons. not the silly imperial measurement unit)
Dice the onion, mince the garlic, add the parsley and cook it in a pot with some oil until the onions are translucent. When the onions have gone translucent, add in the minced meat, bay leaves, curry powder, a tiny dash of vinegar and a dash of worcestershire sauce. When the minced meat looks about done, because i don't know what kind of curry powder you're using, you might want to taste it and see if it needs any salt and/or pepper. Start dicing the apple, add it in with the green beans, then add the creme fraiche.
While that's cooking, mix 2 eggs, 100 ml of full-fat milk, and a bit of bread crumbs to make it less runny. Prepare an baking dish with some oil, and add in the contents of your pot, then put the egg mixture on top of it to make a delicious omelettey top layer. Then add the almond shavings so they get nice and roasted.
Put the dish in the oven at 180C, until the top layer is nice and golden brown.
Serve with rice.
Credits
- 'OF Spaghetti Hoops' image by Bela
- Concept inspired by Captain Eddie
- Webpage by kitobor
- Much love to everyone that submitted a recipe!


Voices Through Time A film review by Marty Mapes Copyright 1999 Marty Mapes
*** (out of 4) VOCI NEL TEMPO (VOICES THROUGH TIME) is a beautiful, original Italian film that you can only see in Boulder, and only for the next few weeks.
VOICES THROUGH TIME is a nonnarrative film. It's not a documentary - in fact each shot is staged and acted. But it doesn't have a narrative plot in the usual, movie sense of the word. Instead, the entire film, as a whole, tells the story of being human. Starting at infancy and adding from there, each segment shows different stages of life, ultimately forming a mosaic of the human lifetime.
 A toddler struggles with a tall stone staircase, and soon young children are holding imaginary conversations or roughhousing on the grass for a dizzied camera. They run around a concrete well in the town's central courtyard on their way to play soccer.
Later, older girls, just past puberty, sit together on the same concrete well, dressed to impress the boys. The boys arrive in a pack, each one on a scooter or motorcycle. The ride circles around the girls, posturing and strutting their plumage.
The girls whisper to each other, but Director Franco Piavoli wisely decides not to use subtitles. Their coy glances and awkward stares tell the story better than any language. Also, the foreignness of the words gives the film an anthropological quality that makes the film more timeless and universal. One gets the sense that these could be any people, anywhere in the world. And that universality is central to the film.
After the acne-faced strutting, VOICES moves on to a group of young adults at a dance. The boys and girls have mixed together now. Their vigor and enthusiasm is captured with the same cinematography as the play and wrestling of the younger children, though now their energy is harnessed and focused into the dance. Naturally, a wedding scene soon follows.
All ages of people come together for the wedding. The newlyweds don't remain at the center for very long, as they quickly drive off to their honeymoon. But the old folks sit around for quite some time and talk and sing songs. Later, a few couples dance, though much more gingerly than the younger couples.
Soon it is night and the long slow process of aging manifests itself in the film. After the young men have driven away to work, the old men putter in the courtyard by the well, listening to the voice of a young lady singing her voice lessons. Clocks tick as the remaining adults wait for the inevitable last stage of life.
Between the wedding and old age, there are no scenes of working, raising children, or keeping house. For most people, this would be about half of a lifetime. The omission might be a deliberate comment on how quickly and uneventfully this time of life passes, but its absence left me wondering what Piavoli has to say about people my age.
Also at this point in the film, the message becomes somewhat muddled. One sequence shows a shots of trains, planes, and cars that are intercut with older and younger people alike. Is this the section on absent, middle-aged people running the world, or is it about the isolation of age? Whatever was intended, the message is less clear and forceful than, say, a screen full of just children.
Nevertheless, VOICES THROUGH TIME is transfixing. Its observant, unobtrusive style of cinematography perfectly captures the people in their verdant, rural setting. Its universal story takes the entire duration of the film to unfold. Each scene is beautiful and interesting in itself, and then these pieces join to form a larger, more important picture. It is a picture rarely, if ever, captured on film.
Check out more current movie reviews at http://www.moviehabit.com
-- Marty Mapes<EMAIL_ADDRESS>Movie Habit http://www.moviehabit.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


A multidimensional explorer of team data from the LEC.
The parallel coordinates displays game data of 10 teams in database across 22 dimensions, colored by team name.
Brush: Drag vertically along an axis.
Remove Brush: Tap the axis background.
Reorder Axes: Drag a label horizontally.
Invert Axis: Tap an axis label.
Remove Axis: Drag axis label to the left edge.


What is a puzzlehunt? How do I solve these puzzles?
If you’ve never heard of puzzlehunts before, here’s a very brief summary: in a typical puzzle, you receive some information and have to extract an answer out of it, which is almost always an English word or phrase. Puzzles can come in many different forms; the only real commonality is that you usually receive no direct instructions, so it’s up to you to figure out how to make sense of the information you’re given. You can read a longer introduction to puzzlehunts here.
If you are new to puzzles and are interested in seeing some examples, or if you’re looking for some practice, we recommend looking at puzzles from other online hunts such as Galactic Puzzle Hunt, Teammate Hunt, Puzzle Potluck, or REDDOThunt.
I think there’s a mistake in this puzzle!
Please describe the error in an email to {{ contact_email }} and we’ll try to correct it.
I’m stuck on a puzzle. What should I do?
Here are some general puzzle tips that might be useful:
- Thoroughly check the work that you’ve already done. Fixing a small mistake or incorrect assumption can greatly help with getting unstuck.
- Get fresh eyes on the puzzle, or conversely, take a break and look at something else.
- Consider what information you haven’t used yet.
- It can be useful to put everything you have into your favorite search engine.
- Have you tried…
Remember that after hints are released, you can also use them to get a nudge in the right direction.
{% endif %}I have a question that’s not on this list!
Contact us at {{ contact_email }} and we’ll do our best to answer it.


As of right now I’m not super sure about the long term. I would like to finish up EDA and probably get a role as a Jr Dev somewhere in Wellington, ideally, as I love this city. What I plan to do in the long term would probably be dependent on what parts of web development I really fall in love with, am thinking that could potentially be video game design or more backend type stuff but am more that ready to have my mind changed!
I think having my project management skills developed. And I’m not meaning in the sense of and actual project manager but more in the sense of figuring out where I need to start with this project in order to get to the result that I want. I tend to just kind of jump in a get stuck in with what I think could be a good place to start but often it impacts my productivity which I think could be helpful if that was improved.
I think my strengths would be my problem-solving ability, my work ethic and being personable. Limitations would be Time management. Because of these things I know that I need to be strict with myself from day dot of the course starting with putting a plan in place that I will stick to. I think working with team members will be great (as long as my jokes get some laughs), and just continue treating all staff the way I would like to be treated, with respect and patience.
I will firstly use the resources given to me, then I will take to the internet, then I will take to slack and utilize the channels I am apart of there, if I still haven’t found and answer to my problem I will get in touch with my facilitator. I also commit to not taking to long on problems where I do get stuck and this can sometimes be and issue of mine and I know I need all the time I can get and can always return back later once the rest of the day’s work is done.
During foundations I don’t expect a lot apart from someone being there if I do need any help with being talked through something I’m really stuck on. Encouragement always goes a long way as well!
I don’t really have any commitments that clash with when I’m expecting to be doing this course. The only one would be I pick my cousins up from school on a Wednesday at 3.15 and look after them until 6 but I plan to have the work I wanted done for the day done before I have to go out.


Easy and simple. Interactive example here. Preview below:
Hacking into arjs. In the most
This is by no means an "universal" solution. Afaik arjs has hardcoded styles, body and window usage all over the place. I've added an "wrapperElement" to arjs, which is used instead of the body. Once arjs emits "arjs-video-loaded", the video is reparented to any element and the "wrapperElement" is set.
Example here. The modified ar.js file is here. Preview below:
Barcode used


Once you have the new wallpaper image on your device, open your
Wallpaper settings and select the image.
Make sure it's set to "Still", zoomed out all the way, and dragged to
the bottom of the screen. Don't worry if it looks like there's too
much black space at the top of the screen; it'll fit just right once
you save it.


I wanted to play a wiz/eldritch knight/ archmage but I was wondering if it was a good choice. The versatility would be awesome but I realise that I wouldnt have uncanny dodge so I may have a hard time bosting AC and Im not a fan of still spell.
Any thoughts and or suggestions on that kind of build? _________________ K.M. aka Chillychill
"Y'a pire que ne pas pouvoir, y'a savoir qu'on peut et ne jamais tenter"


{{> head}}
{{> nav}}This dashboard doesn't have a link to a graphQL server set up yet. Links to "Run in the playground" will not work.
{{#if user.roles.isAdmin}}As an admin user you can set the GraphQL details here.
{{/if}}
API token
{{{i18n.documentation.note}}}
{{/if}}
{{{i18n.documentation.graphql-about-1}}}
{{{i18n.documentation.graphql-about-2}}}
{{i18n.documentation.graphql-about-3}}
{{{i18n.documentation.graphql-communicating-1}}}
{{config.graphql.host}}/graphql
{{{i18n.documentation.graphql-communicating-2}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.hello ''}}}
{{{i18n.documentation.graphql-communicating-3}}}
{{{curlQuery queries.hello '' config.graphql.host user.apitoken}}}
{{{i18n.documentation.graphql-communicating-4}}}
{{{nodeQuery queries.hello '' config.graphql.host user.apitoken}}}
{{{i18n.documentation.graphql-communicating-5}}} {{config.graphql.host}}/playground
{{{i18n.documentation.graphql-communicating-6}}} {{i18n.documentation.run-in-playground}}
{{{i18n.documentation.graphql-communicating-7}}}
{{{i18n.documentation.graphql-introspection-1}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.schema}}}
{{{i18n.documentation.graphql-introspection-2}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.type '(name: "Object")'}}}
{{{i18n.documentation.graphql-objects-1}}}
{{{i18n.documentation.graphql-objects-2}}}
{{{i18n.documentation.graphql-objects-3}}}
{{{i18n.documentation.valid-lang}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.objectsMini ''}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.objectsMini '' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.objectsMini '' config.graphql.host user.apitoken}}}
{{{i18n.documentation.object-pagination}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.objectsMedium '(page:0, per_page: 5, area: "Moving Image")'}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.objectsMedium '(page:0, per_page: 5, area: \\\"Moving Image\\\")' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.objectsMedium '(page:0, per_page: 5, area: "Moving Image")' config.graphql.host user.apitoken}}}
{{{i18n.documentation.object-sort-example}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.objectsLarge '(sort_field: "sortNumber", sort: "asc")'}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.objectsLarge '(sort_field: \\\"sortNumber\\\", sort: \\\"asc\\\")' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.objectsLarge '(sort_field: "sortNumber", sort: "asc")' config.graphql.host user.apitoken}}}
{{{i18n.documentation.object-by-ids-example}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.objectsMedium '(ids:[1, 4, 6, 7])'}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.objectsMedium '(ids:[1, 4, 6, 7])' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.objectsMedium '(ids:[1, 4, 6, 7])' config.graphql.host user.apitoken}}}
If you wish to search for objects by colour, you can do that with the following filters:
color
,
color_threshold
&
color_source
,
There are two sources:
google
and
cloudinary
, the default is google and these are the following valid colours.
gray
,
black
,
orange
,
brown
,
white
,
yellow
,
teal
,
blue
,
green
,
red
,
pink
&
purple
.
Cloudinary decided that the following were
slightly more useful, if you do too then specify
cloudinary
as your
color_source
.
gray
,
black
,
orange
,
brown
,
white
,
yellow
,
teal
,
blue
,
green
,
red
,
pink
,
purple
,
lightblue
,
olive
,
lime
&
cyan
.
Finally you can specify the
color_threshold
if you want a value different to the default of 75.0. Valid values are
floats between 0.0
and 100.0, the higher the threshold the fewer the results.
You can also ask for
predominant
colors in the results, which will return you hex values of the predominant colours :)
See the
example below.
{{{graphQLQuery queries.objectsColor '(color: "orange", color_threshold: 70.0, color_source: "google")'}}}
You can get a selection of random objects. These are not random each time you run the query, but rather a random selection of 30 objects generated daily. If you want a single object then run the query and just select the number of objects you need randomly from the list. There are no optional parameters or filters to be passed to this query.
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.objectsRandom ''}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.objectsRandom '' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.objectsRandom '' config.graphql.host user.apitoken}}}
{{{i18n.documentation.object-1}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.objectLarge '(id: 3000)'}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.objectLarge '(id: 3000)' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.objectLarge '(id: 3000)' config.graphql.host user.apitoken}}}
{{{i18n.documentation.areas-1}}}
{{{i18n.documentation.aggs-filters}}}
{{{i18n.documentation.aggs-sort}}}
{{{i18n.documentation.valid-lang}}}
{{{i18n.documentation.aggs-per-page}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.areas '(lang: "zh-hant", sort_field: "count", sort: "asc")'}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.areas '(lang: \\\"zh-hant\\\", sort_field: \\\"count\\\", sort: \\\"asc\\\")' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.areas '(lang: "zh-hant", sort_field: "count", sort: "asc")' config.graphql.host user.apitoken}}}
{{{i18n.documentation.category-1}}}
{{{i18n.documentation.aggs-filters}}}
{{{i18n.documentation.aggs-sort}}}
{{{i18n.documentation.aggs-lang}}}
{{{i18n.documentation.aggs-per-page}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.categories '(lang: "zh-hant", sort_field: "count", sort: "desc")'}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.categories '(lang: \\\"zh-hant\\\", sort_field: \\\"count\\\", sort: \\\"desc\\\")' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.categories '(lang: "zh-hant", sort_field: "count", sort: "desc")' config.graphql.host user.apitoken}}}
{{{i18n.documentation.medium-1}}}
{{{i18n.documentation.aggs-filters}}}
{{{i18n.documentation.aggs-sort}}}
{{{i18n.documentation.aggs-lang}}}
{{{i18n.documentation.aggs-per-page}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.mediums ''}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.mediums '' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.mediums '' config.graphql.host user.apitoken}}}
{{{i18n.documentation.constituents-1}}}
{{{i18n.documentation.constituents-2}}}
{{{i18n.documentation.constituents-filters}}}
{{{i18n.documentation.constituents-sorts}}}
{{{i18n.documentation.aggs-lang}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.constituents ''}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.constituents '' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.constituents '' config.graphql.host user.apitoken}}}
{{{i18n.documentation.constituents-more-info}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.constituents '(page:3, per_page: 5, gender: "Female")'}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.constituents '(page:3, per_page: 5, gender: \\\"Female\\\")' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.constituents '(page:3, per_page: 5, gender: "Female")' config.graphql.host user.apitoken}}}
{{{i18n.documentation.constituents-sorting}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.constituents '(sort_field: "alphaSortName", sort: "asc")'}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.constituents '(sort_field: \\\"alphaSortName\\\", sort: \\\"asc\\\")' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.constituents '(sort_field: "alphaSortName", sort: "asc")' config.graphql.host user.apitoken}}}
{{{i18n.documentation.constituents-by-ids-example}}}
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.constituents '(ids:[238, 382, 459, 608], lang: "zh-hant")'}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.constituents '(ids:[238, 382, 459, 608], lang: \\\"zh-hant\\\")' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.constituents '(ids:[238, 382, 459, 608], lang: "zh-hant")' config.graphql.host user.apitoken}}}
If you wanted to find all the "Artists" constituents ordered by the ones who had the most objects in the whole system, then you can do it with the following query.
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.constituents '(role:"Artist", isMaker:true, sort_field: "objectCount", sort:"desc")'}}}
{{i18n.documentation.curl}}
{{{curlQuery queries.constituents '(role:\\\"Artist\\\", isMaker:true, sort_field: \\\"objectCount\\\", sort:\\\"desc\\\")' config.graphql.host user.apitoken}}}
{{i18n.documentation.nodejs}}
{{{nodeQuery queries.constituents '(role:"Artist", isMaker:true, sort_field: "objectCount", sort:"desc")' config.graphql.host user.apitoken}}}
You can get a list of all the "Types" of constituent using the following query.  A crowd gathers in an urban street stirring a smouldering pile of books and antiques. Some carry signs featuring portraits of Mao Zedong.", "mediaUse": "Sigg Online Exhibition" }]
Before displaying an image you should look for the one with the primaryDisplay
set to true
and the status
set to ok
.
Image urls use the following format
http://res.cloudinary.com/{{config.cloudinary.cloud_name}}/image/upload/v[version]/[public_id].jpg
Therefor the above url would be http://res.cloudinary.com/{{config.cloudinary.cloud_name}}/image/upload/v1537339514/nzdljks4oqoytyvbs4xa.jpg
Note, you can also do image manipulation with parameters passed in the URL, for example to make a 250px square
version you
would use:
http://res.cloudinary.com/{{config.cloudinary.cloud_name}}/image/upload/w_250,h_250,c_fill/v1537339514/nzdljks4oqoytyvbs4xa.jpg
See Cloudinary for more information about filters and transformations. Note: there are rate limits to using different transformation. It's fine to use the same transformation over and over again, for example a 250x250 crop, but using different dimensions each time would rack up the transformations usage.
If you are trying to work with Sigg Online data, you have a few more graphQL queries at your disposal. You also have concepts which are Artists and Artist Groups, and Exhibitions.
As a vendor you have access to an extra field on the object that tells you the rights for displaying that object based on who you are. In the future you access to the objects will be filtered by the server, but for now you will have to check the rights here.
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.objectsRights ''}}}
To get all concepts you used a query such as
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.concepts ''}}}
To get all concepts you used a query such as
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.concepts ''}}}
And to fetch a single concept you can get it by id. Id 5 is that of the "Cultural Revolution Art" Artists movement
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.conceptNoObjects '(id: 5)'}}}
As usual you can get all objects for a concept two ways, you can ask the concept endpoint to incliude object data, and you can pass in the normal filters which will pass through to effect the objects, like this...
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.conceptWithObjects '(id: 5, per_page:2, page:0)'}}}
...or you can ask the objects endpoint to filter on the concept...
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.objectsMediumWithConcepts '(concept: 5, per_page:2, page:0)'}}}
Exhibitions work the same way, you can get all exhibitions...
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.exhibitions ''}}}
Or you can just get the one we are interested in, Siggs Online is Exhibition 95
this is a minimal example...
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.exhibition '(id:95)'}}}
Again, you can do this via the objects endpoint. Here's a more fleshed out example for all all objects in the Sigg Online exhibition with the category of "Painting" shown 10 per page.
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.objectsLargeWithExhibitions '(exhibition:95, per_page:10, page:0, category:"Painting")'}}}
Which should give you everything you need to string together showing objects for the exhibition. You will have to do some filtering to match the labels and bios with the exhibition using the "purpose" label.
There is a single call you can make to fetch the timeline related to Sigg. You can filter the language by
using
the lang
parameter, set to either en
or zh-hant
. The call
below includes all the fields, there are no other filters or parameters.
{{i18n.documentation.run-in-playground}}
{{{graphQLQuery queries.timeline '(lang:"en")'}}}
The graphQL endpoints and this documentation will continue to evolve over the next few weeks, hang tight!
{{/if}}


Preparation time
1-2 hours
Cooking time
30 mins to 1 hour
Serves
Makes 1 large loaf
Dietary
Barmbrack is a tea loaf similar to the Welsh bara brith. Here the same flavours have been used in this sweet bread laced with delicious dried fruit and chocolate.
For the bread, line a baking tray with baking paper and dust generously with flour.
Sift the flour, mixed spice and salt into a large mixing bowl. Add the yeast on the opposite side to the salt. Add the butter and sugar. Mix using your hand in a claw position until well combined.
Gently warm the milk until it is warm to touch, then whisk in the egg.
Make a well in the middle of the dry mixture and pour the milk mixture into it. Dust your hands with flour and mix using your hand as before, until the dough comes together. It will form a very wet dough. Knead the dough for 10-15 minutes in the bowl (use a dough scraper if you have one), or until the dough starts to tighten (though it will still be sticky). Regularly scrape off any dough stuck to your hands.
Flour the work surface and your hands. Spread the dough out in a rough rectangle and add the dried fruit, candied peel and chocolate into the middle of the dough. Knead for a further 2 minutes to incorporate.
Place the dough on the prepared tray and shape into an oval. Lightly dust with flour and cover with oiled cling film. Leave in a warm place to prove for an hour or until doubled in size.
Preheat the oven to 195C/175C Fan/Gas 5.
Once the dough is proved, remove the cling film and slash once lengthways across the top with a sharp knife. Bake for 40 minutes on the bottom shelf of the oven, rotating the tray midway through cooking to ensure you get an even crust (the loaf should be a dark-brown colour). If the bottom edges brown too early, wrap a strip of aluminium foil around the loaf.
Just before the loaf is cooked, make the glaze. Mix the sugar with the boiling water in a small bowl until the sugar is dissolved.
Place the loaf on a wire rack and, while it is is still hot, liberally brush the glaze all over the crust.
To decorate, gently melt the dark chocolate in a microwave or bain-marie. Allow to cool for 5 minutes then drizzle liberally over the loaf. Repeat with the white chocolate.
You need JavaScript to view this clip.
Melting chocolate


Strang lists 10 important properties of determinants in this section, and verifies them for \(2\times 2\) matrices. The verifications for general matrices aren't any harder, but they sure are longer, so I am glad he skipped them. Anyway, these properties are enough to get by when it is time to compute. In fact, clever use of these properties can save you a lot of time.
in-context


This tutorial will go over the basics of analyzing eggs
, the primary
data structure used in quail
. To learn about how an egg is set up,
see the egg tutorial.
An egg is made up of (at minimum) the stimuli presented to a subject and the stimuli recalled by the subject. With these, two components we can perform a number of analyses:
If we have a set of features for the stimuli, we can also compute a Memory Fingerprint, which is an estimate of how a subject clusters their recall responses with respect to features of a stimulus (see the fingerprint tutorial for more on this).
Let’s get to analyzing some eggs
. First, we’ll load in some example
data:
In [1]:
import quail
%matplotlib inline
egg = quail.load_example_data()
/usr/local/lib/python3.6/site-packages/pydub/utils.py:165: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
This dataset is comprised of 30 subjects, who each performed 8 study/test blocks of 16 words each. Here are some of the presented words:
In [2]:
egg.get_pres_items().head()
Out[2]:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Subject | List | ||||||||||||||||
| 0 | 0 | b'BROCCOLI' | b'CAULIFLOWER' | b'ONION' | b'PICKLE' | b'STRAINER' | b'SAUCER' | b'DISH' | b'BUTTERCUP' | b'GRIDDLE' | b'CARPET' | b'FLOOR' | b'FOUNDATION' | b'ELEVATOR' | b'AZALEA' | b'DAHLIA' | b'LOG' |
| 1 | b'POTATO' | b'CHIMNEY' | b'GERMANY' | b'BLOUSE' | b'EGYPT' | b'LOBBY' | b'JACKET' | b'ARTICHOKE' | b'CLOSET' | b'SUIT' | b'CUBA' | b'GARLIC' | b'CAMISOLE' | b'SPINACH' | b'IRAN' | b'FURNACE' | |
| 2 | b'OVEN' | b'TUBA' | b'MONTREAL' | b'MUG' | b'HIP' | b'BROILER' | b'PICCOLO' | b'ARMS' | b'DALLAS' | b'ROME' | b'TRUMPET' | b'PELVIS' | b'THERMOMETER' | b'TAMBOURINE' | b'PARIS' | b'STOMACH' | |
| 3 | b'MOOSE' | b'MICHIGAN' | b'CLEMENTINE' | b'ANTELOPE' | b'MONKEY' | b'RIB' | b'RACOON' | b'FLORIDA' | b'TONGUE' | b'POMEGRANATE' | b'PEAR' | b'IOWA' | b'PANCREAS' | b'KANSAS' | b'LEMON' | b'TOOTH' | |
| 4 | b'KITCHEN' | b'ROSE' | b'DOG' | b'CARNATION' | b'BARN' | b'DONKEY' | b'TIGER' | b'EAR' | b'FACE' | b'GAZEBO' | b'HEART' | b'PETUNIA' | b'HIPPOPOTAMUS' | b'ALCOVE' | b'TULIP' | b'KNUCKLE' |
and some of the recalled words:
In [3]:
egg.get_rec_items().head()
Out[3]:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Subject | List | |||||||||||||||||||||
| 0 | 0 | b'BROCCOLI' | b'CAULIFLOWER' | b'ONION' | b'DISH' | b'GRIDDLE' | b'DAHLIA' | b'SAUCER' | b'AZALEA' | None | None | ... | None | None | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 1 | b'FURNACE' | b'CHIMNEY' | b'CUBA' | b'GERMANY' | b'ARTICHOKE' | b'SPINACH' | b'POTATO' | b'SUIT' | b'CLOSET' | b'CHIMNEY' | ... | None | None | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 2 | b'MAINE' | b'ARMS' | b'PARIS' | None | None | None | None | None | None | None | ... | None | None | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 3 | b'IS' | b'RIB' | b'PANCREAS' | b'CLEMENTINE' | b'LEMON' | b'IOWA' | b'FLORIDA' | b'MICHIGAN' | b'MOOSE' | b'MONKEY' | ... | None | None | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 4 | b'CARNATION' | b'ROSE' | b'TULIP' | b'HIPPOPOTAMUS' | b'ALCOVE' | None | None | None | None | None | ... | None | None | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
5 rows × 22 columns
We can start with the simplest analysis - recall accuracy - which is
just the proportion of stimuli recalled that were in the encoding lists.
To compute accuracy, simply call the analyze
method, with the
analysis
key word argument set to accuracy
:
In [5]:
acc = egg.analyze('accuracy')
acc.get_data().head()
Out[5]:
| 0 | ||
|---|---|---|
| Subject | List | |
| 0 | 0 | 0.5000 |
| 1 | 0.5625 | |
| 2 | 0.1250 | |
| 3 | 0.5625 | |
| 4 | 0.3125 |
The result is a FriedEgg
data object. The accuracy data can be
retrieved using the get_data
method, which returns a multi-index
Pandas DataFrame where the first-level index is the subject identifier
and the second level index is the list number. By default, note that
each list is analyzed separately. However, you can easily return the
average over lists using the listgroup
kew word argument:
In [6]:
accuracy_avg = egg.analyze('accuracy', listgroup=['average']*8)
accuracy_avg.get_data().head()
Out[6]:
| 0 | ||
|---|---|---|
| Subject | List | |
| 0 | average | 0.367188 |
| 1 | average | 0.601562 |
| 2 | average | 0.742188 |
| 3 | average | 0.546875 |
| 4 | average | 0.867188 |
Now, the result is a single value for each subject representing the
average accuracy across the 16 lists. The listgroup
kwarg can also
be used to do some fancier groupings, like splitting the data into the
first and second half of the experiment:
In [7]:
accuracy_split = egg.analyze('accuracy', listgroup=['First Half']*4+['Second Half']*4)
accuracy_split.get_data().head()
Out[7]:
| 0 | ||
|---|---|---|
| Subject | List | |
| 0 | First Half | 0.437500 |
| Second Half | 0.296875 | |
| 1 | First Half | 0.546875 |
| Second Half | 0.656250 | |
| 2 | First Half | 0.734375 |
These analysis results can be passed directly into the plot function like so:
In [8]:
accuracy_split.plot()
Out[8]:
<matplotlib.axes._subplots.AxesSubplot at 0x10ec5d3c8>
For more details on plotting, see the advanced plotting tutorial. Next,
lets take a look at the serial position curve analysis. As stated above
the serial position curve (or spc) computes recall accuracy as a
function of the encoding position of the stimulus. To use it, use the
same analyze
method illustrated above, but set the analysis
kwarg to spc
. Let’s also average across lists within subject:
In [9]:
spc = egg.analyze('spc', listgroup=['average']*8)
spc.get_data().head()
Out[9]:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Subject | List | ||||||||||||||||
| 0 | average | 0.625 | 0.625 | 0.375 | 0.250 | 0.250 | 0.375 | 0.125 | 0.375 | 0.250 | 0.375 | 0.250 | 0.250 | 0.375 | 0.625 | 0.500 | 0.250 |
| 1 | average | 0.875 | 0.625 | 0.375 | 0.625 | 0.625 | 0.625 | 0.750 | 0.625 | 0.375 | 0.500 | 0.375 | 0.875 | 0.750 | 0.375 | 0.625 | 0.625 |
| 2 | average | 0.875 | 1.000 | 0.750 | 0.875 | 0.500 | 0.750 | 0.625 | 1.000 | 0.750 | 0.625 | 0.625 | 0.625 | 0.875 | 0.625 | 0.750 | 0.625 |
| 3 | average | 0.875 | 1.000 | 0.750 | 0.750 | 0.625 | 0.625 | 0.500 | 0.500 | 0.250 | 0.500 | 0.000 | 0.375 | 0.625 | 0.375 | 0.375 | 0.625 |
| 4 | average | 1.000 | 1.000 | 1.000 | 1.000 | 0.750 | 0.875 | 0.875 | 0.875 | 1.000 | 0.750 | 0.750 | 0.625 | 0.750 | 0.750 | 1.000 | 0.875 |
The result is a df where each row is a subject and each column is the encoding position of the word. To plot, simply pass the result of the analysis function to the plot function:
In [11]:
spc.plot(ylim=[0, 1])
Out[11]:
<matplotlib.axes._subplots.AxesSubplot at 0x10ed217f0>
The next analysis we’ll take a look at is the probability of first
recall, which is the probability that a word will be recalled first as a
function of its encoding position. To compute this, call the analyze
method with the analysis
kwarg set to pfr
. Again, we’ll average
over lists:
In [12]:
pfr = egg.analyze('pfr', listgroup=['average']*8)
pfr.get_data().head()
Out[12]:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Subject | List | ||||||||||||||||
| 0 | average | 0.250 | 0.000 | 0.000 | 0.125 | 0.0 | 0.0 | 0.000 | 0.0 | 0.0 | 0.125 | 0.125 | 0.0 | 0.000 | 0.000 | 0.000 | 0.125 |
| 1 | average | 0.250 | 0.000 | 0.000 | 0.000 | 0.0 | 0.0 | 0.000 | 0.0 | 0.0 | 0.000 | 0.000 | 0.0 | 0.250 | 0.000 | 0.375 | 0.000 |
| 2 | average | 0.375 | 0.000 | 0.000 | 0.000 | 0.0 | 0.0 | 0.125 | 0.0 | 0.0 | 0.000 | 0.125 | 0.0 | 0.125 | 0.125 | 0.000 | 0.125 |
| 3 | average | 0.625 | 0.125 | 0.000 | 0.000 | 0.0 | 0.0 | 0.000 | 0.0 | 0.0 | 0.000 | 0.000 | 0.0 | 0.000 | 0.000 | 0.125 | 0.125 |
| 4 | average | 0.250 | 0.000 | 0.125 | 0.000 | 0.0 | 0.0 | 0.000 | 0.0 | 0.0 | 0.000 | 0.000 | 0.0 | 0.375 | 0.125 | 0.000 | 0.125 |
This df is set up just like the serial position curve. To plot:
In [13]:
pfr.plot()
Out[13]:
<matplotlib.axes._subplots.AxesSubplot at 0x10ec963c8>
The next analysis to consider is the lag-CRP, which again is a function
that given the recall of word n, returns the probability of recalling
words at neighboring positions (n+/-1, 2, 3 etc). To use it? You guessed
it: call the analyze
method with the analysis
kwarg set to
lagcrp
:
In [15]:
lagcrp = egg.analyze('lagcrp', listgroup=['average']*8)
lagcrp.get_data().head()
/Users/andrewheusser/Documents/github/quail/quail/analysis/lagcrp.py:129: RuntimeWarning: Mean of empty slice
return np.nanmean(lagcrp, axis=0)
Out[15]:
| -16 | -15 | -14 | -13 | -12 | -11 | -10 | -9 | -8 | -7 | ... | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Subject | List | |||||||||||||||||||||
| 0 | average | 0.0 | 0.125 | 0.1250 | 0.0625 | 0.000000 | 0.000000 | 0.041667 | 0.062500 | 0.083333 | 0.000000 | ... | 0.229167 | 0.025000 | 0.083333 | 0.000000 | 0.0 | 0.062500 | 0.250000 | 0.0 | 0.0 | 0.0 |
| 1 | average | 0.0 | 0.000 | 0.0000 | 0.0000 | 0.041667 | 0.000000 | 0.000000 | 0.041667 | 0.087500 | 0.041667 | ... | 0.041667 | 0.056250 | 0.000000 | 0.062500 | 0.0 | 0.104167 | 0.062500 | 0.0 | 0.0 | 0.0 |
| 2 | average | 0.0 | 0.125 | 0.0625 | 0.0000 | 0.041667 | 0.041667 | 0.000000 | 0.000000 | 0.187500 | 0.000000 | ... | 0.015625 | 0.077083 | 0.000000 | 0.031250 | 0.0 | 0.000000 | 0.000000 | 0.0 | 0.0 | 0.0 |
| 3 | average | 0.0 | 0.250 | 0.0000 | 0.0000 | 0.000000 | 0.166667 | 0.062500 | 0.062500 | 0.250000 | 0.093750 | ... | 0.062500 | 0.072917 | 0.092857 | 0.020833 | 0.0 | 0.031250 | 0.000000 | 0.0 | 0.0 | 0.0 |
| 4 | average | 0.0 | 0.125 | 0.1250 | 0.0000 | 0.000000 | 0.000000 | 0.125000 | 0.000000 | 0.000000 | 0.013889 | ... | 0.013889 | 0.000000 | 0.000000 | 0.000000 | 0.0 | 0.000000 | 0.041667 | 0.0 | 0.0 | 0.0 |
5 rows × 33 columns
Unlike the previous two analyses, the result of this analysis returns a df where the number of columns are double the length of the lists. To view the results:
In [16]:
lagcrp.plot()
Out[16]:
<matplotlib.axes._subplots.AxesSubplot at 0x10ef97e80>
Another way to evaluate temporal clustering is to measure the temporal distance of each transition made with respect to where on a list the subject could have transitioned. This ‘temporal clustering score’ is a good summary of how strongly participants are clustering their responses according to temporal proximity during encoding.
In [17]:
temporal = egg.analyze('temporal', listgroup=['First Half']*4+['Second Half']*4)
temporal.plot(plot_style='violin', ylim=[0,1])
Out[17]:
<matplotlib.axes._subplots.AxesSubplot at 0x10efd7358>
Last but not least is the memory fingerprint analysis. For a detailed treatment of this analysis, see the fingerprint tutorial.
As described in the fingerprint tutorial, the features
data
structure is used to estimate how subjects cluster their recall
responses with respect to the features of the encoded stimuli. Briefly,
these estimates are derived by computing the similarity of neighboring
recall words along each feature dimension. For example, if you recall
“dog”, and then the next word you recall is “cat”, your clustering by
category score would increase because the two recalled words are in the
same category. Similarly, if after you recall “cat” you recall the word
“can”, your clustering by starting letter score would increase, since
both words share the first letter “c”. This logic can be extended to any
number of feature dimensions.
Here is a glimpse of the features df:
In [18]:
egg.feature_names
Out[18]:
['color',
'location',
'category',
'firstLetter',
'size',
'wordLength',
'temporal']
Like the other analyses, computing the memory fingerprint can be done
using the analyze
method with the analysis
kwarg set to
fingerprint
:
In [19]:
fingerprint = egg.analyze('fingerprint', listgroup=['average']*8)
fingerprint.get_data().head()
Out[19]:
| color | location | category | firstLetter | size | wordLength | temporal | ||
|---|---|---|---|---|---|---|---|---|
| Subject | List | |||||||
| 0 | average | 0.535778 | 0.535778 | 0.587560 | 0.536292 | 0.648455 | 0.482460 | 0.418536 |
| 1 | average | 0.541546 | 0.541546 | 0.554500 | 0.492277 | 0.507837 | 0.522564 | 0.633390 |
| 2 | average | 0.548408 | 0.548408 | 0.618258 | 0.531006 | 0.601335 | 0.468233 | 0.659474 |
| 3 | average | 0.541722 | 0.541722 | 0.558331 | 0.501190 | 0.555992 | 0.446369 | 0.566537 |
| 4 | average | 0.560181 | 0.560181 | 0.519353 | 0.508005 | 0.559776 | 0.498794 | 0.763377 |
The result of this analysis is a df, where each row is a subject’s fingerprint and each column is a feature dimensions. The values represent a subjects tendency to cluster their recall responses along a particular feature dimensions. They are probability values, and thus, greater values indicate more clustering along that feature dimension. To plot, simply pass the result to the plot function:
In [24]:
order=sorted(egg.feature_names)
fingerprint.plot(order=order, ylim=[0, 1])
Out[24]:
<matplotlib.axes._subplots.AxesSubplot at 0x10fa24748>
This result suggests that subjects in this example dataset tended to cluster their recall responses by category as well as the size (bigger or smaller than a shoebox) of the word. List length and other properties of your experiment can bias these clustering scores. To help with this, we implemented a permutation clustering procedure which shuffles the order of each recall list and recomputes the clustering score with respect to that distribution. Note: this also works with the temporal clustering analysis.
In [ ]:
# warning: this can take a little while. Setting parallel=True will help speed up the permutation computation
# fingerprint = quail.analyze(egg, analysis='fingerprint', listgroup=['average']*8, permute=True, n_perms=100)
# ax = quail.plot(fingerprint, ylim=[0,1.2])


|
.music.
you can download our music through the magic of the internet. .a nerd monologue. this song is about a very special person... except, we can't tell you who it is, or we would be compromised. .power gloves return. can a song have a sequel? if they can't, I guess we broke the rules. so who wrote these rules again? .lost my socks. this guy lost his socks, so he's going to tell you all about it. .power gloves unite. an instrumental song that, being instrumental, isn't really about anything whatsoever. .the gao. the first ever phosphorus joel song. revisit our dark past by listening to this song. we actually thought it was good at the time. (for context, watch episode 37 of the anime tsubasa chronicle) |
|
.phosphorus joel. . main page . about us . get music . myspace page . purevolume page . |


I recently came across a comment online from a developer questioning the value of creating a professional portfolio because “recruiters don’t look at them”. I want to offer a different perspective in case you’ve come across that opinion.
I believe it’s true that some (typically large) companies do not look at portfolios. Some companies have a very structured recruiting process which forces them to use a “lowest common denominator” approach to gathering candidate information. Since not all candidates will have a portfolio, they simply ignore that information from those who do.
I can tell you from direct personal experience, however, that many companies do look at professional portfolios. I know this because I am contacted several times per year by recruiters or company representatives who tell me that they have been looking at the professional portfolios associated with our students. Another source of evidence is the book Cracking the Coding Interview, which recommends the development of a professional portfolio as an integral part of the interview preparation process.
I suspect that the smaller and more personal the company, the more likely it is they will try to gather as much information as they can about you. And in these situations, having a professional portfolio will place you apart from the candidates who don’t have one. And smaller companies are often the ones which work on more interesting problems and/or can provide you with more autonomy and the ability to work on more modern technology.
High tech interviews normally have a “behavioral” component. This is when the interviewer asks you questions like:
The standard advice is to practice “canned” answers to those questions. But what about a situation in which a interviewer asks you one of these questions with respect to a specific project?
In that case, your carefully rehearsed answer goes out the window unless you’re lucky and you prepared it for the specific project they’re questioning you about.
So, regardless of whether a company looks at your portfolio, another reason to create one is to give you a chance to work through these behavioral questions for each of your projects in advance and while they are still fresh in your mind. A good project description will explain what was accomplished in the project, what your own personal contribution to that project was, what challenges you faced, how you grew as a result professionally and/or personally, and how you might want to enhance that project in the future. By writing out a project description in your professional portfolio, you effectively practice the behavioral questions and thus are more prepared for the interview.
You’re going to need some recommendation letters. And in most cases, at least one of them will come from a professor. In many cases, the professor has only worked with you in the context of one class, and that might have happened a few semesters back.
If the professor only has your resume and LinkedIn profile to look at, it will be hard for them to write a very compelling recommendation letter. They probably don’t remember the project that you worked on, or any specifics of your personal involvement with the project for the class. They only have a dim recollection of your presence and the grade that you received, which is not a lot to work with in order to write a good recommendation letter.
This is where a professional portfolio can be a lifesaver for the professor, and in turn get you a much better recommendation letter. All you have to do is create a project description for the final project in that class where you detail what the project was, what you contributed to it (if it was a group project), what you learned, what challenges you faced, etc. Then when you ask the professor for a recommendation, you can send them the link to your professional portfolio to “remind them” about your involvement in their class.
Some of you might be reading this and thinking: That’s all fine and good but I don’t really have anything interesting to put in my portfolio! So none of this applies to me.
No, all of this applies to you in spades. The final way that a professional portfolio is useful is that it enables you to assess the quality of your degree experience and what you’re getting out of it, and take control.
You should be striving to add one project to your professional portfolio each semester and one during each summer. Every semester, there should be at least one class in which you produce a final project of sufficient complexity and quality for inclusion in your professional portfolio. Every summer you should engage in a task which produces something of note for inclusion in your professional portfolio.
I understand that this can sound scary and difficult. I suspect that one reason for this fear is that it requires you to actively engage with your degree program and educational process. You can’t just passively consume the coursework, which is the default mode of our educational system. And perhaps that’s the most important reason of all.


Creative Brief
Project Background
- Client: Asian King Buffet
- Product/Service: Chinese cuisine served buffet style. Business to consumer.
- SWOT: SWOT
- Existing Research: Area Demographics Yelp Reviews
- Date: TBD
Overview
- Project Type: Website Redesign
- Reason For Project: We are redesigning Asian King Buffet’s website to offer a more user-friendly interface for the client’s customers via consistency and cohesiveness that this website lacks.
- Opportunities: Located close to a lot of shopping, local tourist stop, and close proximity to several highways.
Drivers
- Goals: To increase our brand awareness.
- Top three objectives:
- Increase website traffic by 5% in the next 5 months.
- Increase delivery sales by 2% in the next 3 months.
- Increase buffet sales by 6% in the next 6 months.
- Project length: Three months
- Length of time until goal is achieved: Six months after project completion.
Audience
- Our target audience
- Age: Adults aged 25-45 with families
- Sex: Male and female
- Race: Caucasian
- Education: High School Diploma
- Income level: Median household income $66,772.75
- What do they think of us? We are the place to go when customers want genuine Chinese food at a fair price.
- Why should they care about our restaurant? We are affordable and serve family portions. Easy to order or pick up after that commute from work.
Competitors
- Direct competition:
- Asian Buffets in Watauga and Arlington
- Yichiban Buffet
- Indirect competition:
- BJ’s Restaurant and Brewhouse
- Red Robin
- Logan’s Roadhouse
- Chick-fil-a
- McDonalds
- Carrabba’s Italian Grill
- Sweet Basil Thai Cuisine
- What efforts could we duplicate from our competitors? We are an affordable family restaurant which makes us an easy meal solution.
- What makes us unique from the competition? Our restaurant is based on genuine chinese food made by native Chinese chefs.
Tone
- What tone should we use to communicate to our target audience? Why?: A lively, amiable tone because we want our guests to feel comfortable every time they come to eat.
- What adjectives describe the feeling we are trying to project or our approach? Friendly, fast, classic, family-oriented.
Message
- What message are we trying to convey with this site? We are encouraging new and returning customers to come and enjoy our delicious chinese food. We want the audience to see the website and feel the hunger and desire for our tasty food.
- Is copyright provided by the client? They are developed.
Visuals
Are we developing new images or picking up existing ones? We will remake the current Asian King Buffet logo from their current website.We can take some photos of the restaurant’s interior and some of their menu items. Any stock images that we need will come from websites that utilize public domain or Creative Commons licensing to avoid any copyright issues. Jaqui will recreate their logo using Illustrator in order to obtain a better resolution image as well as a logo that matches our current audience.
Details
- Is there any mandatory information that must be included?
- Logo
- Location
- Hours
- Contact info
- Menu items
- Prices
- Map
- Delivery Info
- Social media
- List of deliverables?
- Responsive website
- Creative brief
- SWOT Analysis
- Wireframe
- Site map
- Components
- Logo redesign
- Timeline:
- Feb 13, 2020- Redesign Brief, SWOT, and sitemap due
- Mar 5, 2020- Redesign Website Components due
- Mar 24, 2020- Redesign wireframes due
- May 7, 2020-Redesign Submission due
- Limits and restrictions:
- Money
- Time
- Browser support
- Family-friendly content
People
- Reporting to: Carlos Cucalon | Project Manager
- Approving work: Carlos Cucalon | Project Manager