The African Development Bank (AfDB) is hosting the fourth meeting of the Board of Program Directors of the Climate for Development in Africa Initiative (Clim-Dev) on March 6 and 7 in Tunis.
The high-level meeting marks a turning point in Africa's fight against climate change, particularly in Africa itself. In the course of this meeting, the Clim-Dev Special Fund (CDSF) – an ad hoc investment fund set aside to finance climate change activities in Africa –becomes operational this year. In addition to the Fund resources and the possibility of disseminating robust and viable statistical data on climate and its evolution in Africa, CDSF will finance concrete operations on the ground.Currently, 14 projects are being reviewed under the Climate for Development initiative in Africa.
Alongside AfDB Managers and Bank experts, some 30 other delegates are also expected to participate in the Tunis meeting, representing the African Union Commission (AUC), the United Nations Economic Commission for Africa (UNECA), African Regional Economic Communities (RICs), as well as the donor community and civil society organizations. AUC Commissioner for Rural Economy and Agriculture, Tumusiime Rhoda Peace, Fatima Denton, Officer-in-charge of climate change adaptation programs in Africa undertaken by the International Development Research Centre (IDRC), and Abdirahman Beileh, Director of the AfDB's Agriculture and Agro-Industry Department, will also be in attendance.
Established in 2009 under the joint auspices of AfDB, AUC and UNECA, the Clim-Dev Africa Initiative was launched in 2012. Its initial resources have been further enhanced by contributions made by African, Caribbean and Pacific Group (ACP) countries in February 2013. The management of the Clim-Dev Special Fund has been entrusted to African Development Bank. Within the Bank, Clim-Dev Africa is managed by the Department of Agriculture and Agro-Industry (OSAN).


Haute Grandeur Global Spa Awards shortlisted Spas represent properties that have undergone a rigorous evaluation process. Once a property is nominated the evaluation process commence whereby various online platforms are used to gather detailed guest feedback from guests that have experienced the spa service, its facilities and other aspects. A score is then derived based on all customer feedback considering all complaints and appraisals.
The platforms used to compile guest feedback include amongst others: TripAdvisor, Facebook, Booking.com, Spas.com, Expedia, Agoda, Google+, Yelp.com, Spachatter, Priceline.com, AsiaRooms and more.
Only Spas that receive a significant high score are invited to review our information and become a member of Haute Grandeur Global Spa Awards.
Why do is the evaluation process important?
Our mission is to positively influence travelers' decisions and Haute Grandeur Global Spa Awards know that customers digest and leverage lots of opinions to make good choices. We use the main feedback platforms to gather trusted reviews directly from customers. The Haute Grandeur Global Spa Awards is the we are able to offer an Awards concept that only allow the absolute best quality Spas to be considered to win a Haute Grandeur Global Spa Award.
Once successful after our strict evaluation process a potential guest can be assured of an exquisite and rewarding experience when visiting the Spa.
Spas who make it through the evaluation process are contacted in writing and requested to register (providing the hotel's contact details, sharing photographs and details to be further used to encourage awareness) and give their official consent for the Haute Grandeur Global Spa Awards to consider the property in the selected categories.


text:
SubTopic Data storage strategy
Windows 2000 -- a file system for everyone
Rick Cook
Windows 2000 supports no less than five different file systems.
NTFS 5 is the latest version of NTFS and is intended to be the main file system with Windows 2000, and any NTFS volumes on the system will automatically be upgraded to NTFS 5. Systems running Windows NT 4 can read and write NTFS 5 file systems with the installation of Service Pack 4. NTFS 5 allows volumes of up to 16 terabytes, and other advanced features.
UDF is the Universal Disk Format, designed for supporting DVDs, newer CD-ROMs and other optical disks. CDFS, the Compact Disk File System, does basically the same job as the UDF, which is replacing it.
FAT32 is also used by Windows 98 and dual-booting machines running Windows 98 and Windows 2000 should use it. Windows 2000 can only create FAT32 volumes up to 32 gigabytes, although it can read and write larger volumes created with Windows 98.
Windows 2000 also continues to support the older 16-bit FAT file system, which goes back to the days of MS-DOS. However this is only for backwards compatibility. Microsoft says there won't be any more enhancements to FAT16. Administrators should strongly consider migrating data to newer systems.
For more information on Windows 2000 file systems and their uses, see the Windows 2000 guide on the Microsoft Web site.
Rick Cook has been writing about mass storage since the days when the term meant an 80K floppy disk. The computers he learned on used ferrite cores and magnetic drums. For the last twenty years he has been a freelance writer specializing in storage and other computer issues.
Did you like this tip? Whether you did or not, why not let us know. Drop us an email and sound off, or go to our tips page to rate this, and other tips, or submit one of your own.
Windows 2000 Server Architecture and Planning, 2nd Ed.
Author : Morten Nielsen
Publisher : Coriolis Group
ISBN/CODE : 1576106071
Cover Type : Soft Cover
Published : Feb 2001
Updated from the successful first edition to include information on the latest Windows 2000 functionality and utilities. Teaches how to set up Windows 2000 Server from scratch, how to fit it into an existing infrastructure, and how to test it. Covers planning and upgrading considerations for DNS interoperability, network design, systems and applications setup, hardware configuration, security, and scalability.
Computer Weekly – 22 August 2017: How banking technology has changed since the ... –ComputerWeekly.com
Dig Deeper on Data storage strategy
Migrating a Linux file system to a Windows file system (or vice versa)
By: Serdar Yegulalp
Top tools for fixing Windows NTFS corruption issues
Improving Windows 7 performance by optimizing the hard disk
Microapps Empower the Modern Workforce –Citrix
In Financial Services, IT Modernization Is Key to Digital Transformation Success –Dell Technologies VMware
Should I configure NTFS or FAT32 for Windows 2000? – SearchWindowsServer
What is the difference between FAT and NTFS in simple... – SearchWindowsServer
Windows file systems showdown: FAT16, FAT32, NTFS and... – SearchWindowsServer

redpajama_set_name: RedPajamaCommonCrawl


Find the Best New Nissan Lease Deals Tacoma, WA has to offer at Advantage Nissan in Bremerton, WA. We're just short drive from Tacoma, Advantage Nissan is proud to be the most customer-committed Nissan dealer in WA (proven by our DealerRater and Google Reviews). At Advantage Nissan – you'll find an excellent selection of new and used Nissan models for sale. Take a quick drive to our showroom and meet with one of our highly qualified, sales associates Today!


← Top Five Anime You Should Watch To Start Of Your Summer!
Daredevil on Netflix will be the topic of review today. There may be some spoilers but not any major ones.
For Starters: This is an origin story. This means you do not have to know anything about Daredevil to get into this series.
Highlights: What makes this Daredevil work is they can say and do whatever they want. I feel like this Daredevil would not exist in the movies. It is gritty, it is dark, it is violent, and all these elements work. I feel like it is a nice mix between the darkness of Batman and the adult violence and themes of Deadpool. The next thing I love about this Daredevil is the characters: Matt Murdock and Kingpin in particular. When Kingpin starts showing up the show gets really interesting. The action is fantastic and is what keeps you watching. Probably the best action scenes I have seen from a live action show ever. They are great. Episode 3 is a great example of this!
The Drawbacks: Okay, so I loved this Daredevil but it had its flaws. Namely, FOGGY NELSON. For me, he is biggest nuisance in the Marvel Universe. I am not the biggest reader of Daredevil comics but I have a handful of the old 60's adventure and my feelings are the same. I havent seen a version of him I can stand. His only role in the show is just to take time away from Matt/Daredevil. Now do not get me wrong, when he is on scene with Matt, the duo are actually quiet funny. A good example of this is the flashback of them in college. If he is on scene with Karen or literally anyone else, it will make you want to just take a nap until Matt is back on screen, seriously. The first few episodes are watch Matt/Daredevil beat up baddies then flip to watch Foggy desperately try to get Karen to like him.The tip of the annoyance Iceberg is when Foggy gets mad at Matt and acts like Matt's upset lover for like three episodes.
Favorite Episode: Episode 8 A shadow in the glass, and episode 7 Stick. These episodes have to be compared side by side, because they both provide insight to Matt's,Episode 7, and Fisk, episode 8, back story. In episode 7, Stick comes along and trains Matt. This is such a huge turning point in the series because we see how Matt becomes Daredevil. Stick teaches Matt that sight is a distraction and that his blindness is not a curse. This is the building block for what makes Matt Matt. In episode 8, we see Fisk as a child. We see his family interactions, and they are not pleasant. We see the event that makes Fisk a heartless loner. These two events are what separates two men who are plagued by despair, pain, and hurt. After these episodes, the show just feels so real. The battle between Matt and Fisk is a lot bigger than rivalry and has a lot at stake.
Favorite Character: Not so much a shocker here, Matt/Daredevil. With Kingpin as a super close 2nd.
Least Favorite Episode: Episode 10 Nelson vs Murdock. I hate to put this as my least favorite episode. The series as a whole is very solid and does not even really have a weak episode. The episode just showcases some of the series weaker points. Those weak points being Foggy Nelson doing entirely too much, Ben Urich trying to win his own Netflix spin-off series, etc. This episode still has one of my favorite scenes: A flashback to my two favorite Avocados of Law.
Score: I am giving it an 8.5 for these reasons-Awesome action meets great characters, But, Foggy nelson interrupts the flow, it felt a little long to be an origin arc, and lastly I feel like the next season will be so crazy good. Season one is awesome and a definite must see, but I think the netflix series will keep getting better.
Posted on June 19, 2015, in Other Review and tagged Daredevil, Fisk, Foggy Nelson, Kingpin, Marvel, Matt Murdock, Netflix, Review, Tv Show. Bookmark the permalink.	1 Comment.


text:
Question: Is Raphael A Humanist?
What killed Raphael?
Who was the most famous humanist in the Renaissance?
Was Michelangelo a humanist?
Was Leonardo da Vinci a humanist?
Where is Raphael buried?
Why is the Mona Lisa so famous?
Who are some famous humanists?
What does humanism mean?
How does the Last Supper represent humanism?
Does a humanist believe in God?
What are humanists main beliefs?
Is Raphael an English name?
Is Mona Lisa realistic?
Was Shakespeare a humanist?
What does Mona Lisa Express?
Is Humanism an ideology?
What type of artist was Raphael?
How does the School of Athens represent humanism?
How does the Mona Lisa Show humanism?
Why did Raphael paint the School of Athens?
What religion is humanist?
April 6, 1520Raphael/Date of death.
PetrarchPetrarch is often considered the founder of Humanism. Petrarch's sonnets were admired and imitated throughout Europe during the Renaissance and became a model for lyrical poetry. In the 16th century, Pietro Bembo created the model for the modern Italian language based on Petrarch's works.
In 1490, Michelangelo started study at the Humanist academy that had been founded by the Medici family. Whilst there, his art was influenced by many prominent humanist philosophers. … In Renaissance art, humanism prompted influential artists such as Michelangelo to display the human form in more life-like realism.
We think of Leonardo da Vinci as a great and prolific inventor, yet he was also committed to the well-being of people and animals. … Many men, including da Vinci were also considered the humanist type, humanism having emerged as a significant intellectual movement during the Renaissance.
Pantheon, Rome, ItalyRaphael/Place of burialItalian art experts have created a 3D reconstruction of the face of the Renaissance artist Raphael, which they say proves he was buried at the Pantheon in Rome.
The Mona Lisa's fame is the result of many chance circumstances combined with the painting's inherent appeal. There is no doubt that the Mona Lisa is a very good painting. It was highly regarded even as Leonardo worked on it, and his contemporaries copied the then novel three-quarter pose.
Jerome Isaac Friedman: American physicist and Nobel laureate in Physics. Was one of 21 Nobel Laureates who signed the Humanist Manifesto. Stephen Fry: British Humanist Association welcomed the author, comedian, presenter, and director Stephen Fry to its membership and as a Distinguished Supporter of Humanism.
1a : devotion to the humanities : literary culture. b : the revival of classical letters, individualistic and critical spirit, and emphasis on secular concerns characteristic of the Renaissance. 2 : devotion to human welfare : humanitarianism renowned for his humanism.
Leonardo created the painting to depict the scene of The Last Supper of Jesus with his disciples. … Leonardo painted the consternation that happened between the Twelve Disciples when Jesus said that one of them would go against him.
Humanists reject the idea or belief in a supernatural being such as God. This means that humanists class themselves as agnostic or atheist. Humanists have no belief in an afterlife, and so they focus on seeking happiness in this life.
Humanists believe that human experience and rational thinking provide the only source of both knowledge and a moral code to live by. … Humanism is a democratic and ethical life stance, which affirms that human beings have the right and responsibility to give meaning and shape to their own lives.
Raphael is a name of Hebrew origin, from rāp̄ā (רָפָא "he has healed") and ēl (אֵל "God"). Depending on the language (first popularly used in France, Germany, Spain, Italy, and Portugal) it can be spelled Raphael, Raphaël, Rafael, Raffael, Raffaello, Raffiel, Refoel, Raffaele, or Refael.
The most recognizable piece of Leonardo Da Vinci's that shows that he is an ideal Renaissance man is the Mona Lisa. The Mona Lisa shows the Renaissance ideals of secularism, realism, and individualism. Realism is also shown in this painting because of the realistic colors and details on her clothes. …
Shakespeare himself can be understood as the ultimate product of Renaissance humanism; he was an artist with a deep understanding of humanity and an uncanny ability for self-expression who openly practiced and celebrated the ideals of intellectual freedom.
It is a visual representation of the idea of happiness suggested by the word "gioconda" in Italian. Leonardo made this notion of happiness the central motif of the portrait: it is this notion which makes the work such an ideal.
They identified humanism as an ideology that espouses reason, ethics, and social and economic justice, and they called for science to replace dogma and the supernatural as the basis of morality and decision-making.
RenaissanceHigh RenaissanceItalian RenaissanceRaphael/PeriodsRaphael, Italian in full Raffaello Sanzio or Raffaello Santi, (born April 6, 1483, Urbino, Duchy of Urbino [Italy]—died April 6, 1520, Rome, Papal States [Italy]), master painter and architect of the Italian High Renaissance.
Humanism was a cultural movement in the time of the Renaissance. Humanism brought about the importance of humans rather than divine or supernatural matters. … One painting in particular that I like and that represents humanism is The School of Athens by Raphael. This famous fresco was painted between 1510 and 1511.
The Mona Lisa represents the philosophy of humanism by representing the focus of the actual human being and realism. The woman is painted showing nature as the background allowing the main focus of the painting to fall on the actual person.
In particular, Raphael's fresco The School of Athens has come to symbolize the marriage of art, philosophy, and science that was a hallmark of the Italian Renaissance. Painted between 1509 and 1511, it is located in the first of the four rooms designed by Raphael, the Stanza della Segnatura.
Secular humanism posits that human beings are capable of being ethical and moral without religion or belief in a deity. It does not, however, assume that humans are either inherently good or evil, nor does it present humans as being superior to nature.
Quick Answer: Where Can You Buy Disney Silhouettes?
What should you not wear at Disney World?
Quick Answer: How Often Should You Text A Guy You Like?
How long should you wait between texting a guy?
Question: What Do You Do With A Ripe Mango?
Will a mango ripen in the fridge? Once ripe, mangos
How Do You Shrink A Cotton Polyester Blend?
Can 100 cotton shrink? If it's 100% cotton it'
Question: What Are The Top 3 Healthiest States In America?
What US state is the most expensive to live in?
What Are The Five Counselling Skills?
What's the difference between a social worker
Question: How Do I Report A Scalper On EBay?
What is considered price gouging on eBay?


Cloudflare seeks to help its end customers use whichever public and private clouds best suit their needs. Towards that goal, we have been working to make sure our solutions work well with various public cloud providers including Microsoft's Azure platform….
Today our partner IBM announced the general availability of Cloud Internet Services (CIS) Enterprise. It marks a significant step forward in the partnership that we announced at the IBM THINK event in March….


text:
module Database.Redis (
    -- * How To Use This Module
    -- |
    -- Connect to a Redis server:
    --
    -- @
    -- -- connects to localhost:6379
    -- conn <- 'connect' 'defaultConnectInfo'
    -- @
    --
    -- Send commands to the server:
    --
    -- @
    -- {-\# LANGUAGE OverloadedStrings \#-}
    -- ...
    -- 'runRedis' conn $ do
    --      'set' \"hello\" \"hello\"
    --      set \"world\" \"world\"
    --      hello <- 'get' \"hello\"
    --      world <- get \"world\"
    --      liftIO $ print (hello,world)
    -- @

    -- ** Command Type Signatures
    -- |Redis commands behave differently when issued in- or outside of a
    --  transaction. To make them work in both contexts, most command functions
    --  have a type signature similar to the following:
    --
    --  @
    --  'echo' :: ('RedisCtx' m f) => ByteString -> m (f ByteString)
    --  @
    --
    --  Here is how to interpret this type signature:
    --
    --  * The argument types are independent of the execution context. 'echo'
    --    always takes a 'ByteString' parameter, whether in- or outside of a
    --    transaction. This is true for all command functions.
    --
    --  * All Redis commands return their result wrapped in some \"container\".
    --    The type @f@ of this container depends on the commands execution
    --    context @m@. The 'ByteString' return type in the example is specific
    --    to the 'echo' command. For other commands, it will often be another
    --    type.
    --
    --  * In the \"normal\" context 'Redis', outside of any transactions,
    --    results are wrapped in an @'Either' 'Reply'@.
    --
    --  * Inside a transaction, in the 'RedisTx' context, results are wrapped in
    --    a 'Queued'.
    --
    --  In short, you can view any command with a 'RedisCtx' constraint in the
    --  type signature, to \"have two types\". For example 'echo' \"has both
    --  types\":
    --
    --  @
    --  echo :: ByteString -> Redis (Either Reply ByteString)
    --  echo :: ByteString -> RedisTx (Queued ByteString)
    --  @
    --
    --  [Exercise] What are the types of 'expire' inside a transaction and
    --    'lindex' outside of a transaction? The solutions are at the very
    --    bottom of this page.

    -- ** Lua Scripting
    -- |Lua values returned from the 'eval' and 'evalsha' functions will be
    --  converted to Haskell values by the 'decode' function from the
    --  'RedisResult' type class.
    --
    --  @
    --  Lua Type      | Haskell Type       | Conversion Example
    --  --------------|--------------------|-----------------------------
    --  Number        | Integer            | 1.23   => 1
    --  String        | ByteString, Double | \"1.23\" => \"1.23\" or 1.23
    --  Boolean       | Bool               | false  => False
    --  Table         | List               | {1,2}  => [1,2]
    --  @
    --
    --  Additionally, any of the Haskell types from the table above can be
    --  wrapped in a 'Maybe':
    --
    --  @
    --  42  => Just 42 :: Maybe Integer
    --  nil => Nothing :: Maybe Integer
    --  @
    --
    --  Note that Redis imposes some limitations on the possible conversions:
    --
    --  * Lua numbers can only be converted to Integers. Only Lua strings can be
    --    interpreted as Doubles.
    --
    --  * Associative Lua tables can not be converted at all. Returned tables
    --   must be \"arrays\", i.e. indexed only by integers.
    --
    --  The Redis Scripting website (<http://redis.io/commands/eval>)
    --  documents the exact semantics of the scripting commands and value
    --  conversion.

    -- ** Automatic Pipelining
    -- |Commands are automatically pipelined as much as possible. For example,
    --  in the above \"hello world\" example, all four commands are pipelined.
    --  Automatic pipelining makes use of Haskell's laziness. As long as a
    --  previous reply is not evaluated, subsequent commands can be pipelined.
    --
    --  Automatic pipelining also works across several calls to 'runRedis', as
    --  long as replies are only evaluated /outside/ the 'runRedis' block.
    --
    --  To keep memory usage low, the number of requests \"in the pipeline\" is
    --  limited (per connection) to 1000. After that number, the next command is
    --  sent only when at least one reply has been received. That means, command
    --  functions may block until there are less than 1000 outstanding replies.
    --

    -- ** Error Behavior
    -- |
    --  [Operations against keys holding the wrong kind of value:] Outside of a
    --    transaction, if the Redis server returns an 'Error', command functions
    --    will return 'Left' the 'Reply'. The library user can inspect the error
    --    message to gain  information on what kind of error occured.
    --
    --  [Connection to the server lost:] In case of a lost connection, command
    --    functions throw a 'ConnectionLostException'. It can only be caught
    --    outside of 'runRedis'.
    --
    --  [Exceptions:] Any exceptions can only be caught /outside/ of 'runRedis'.
    --    This way the connection pool can properly close the connection, making
    --    sure it is not left in an unusable state, e.g. closed or inside a
    --    transaction.
    --

    -- * The Redis Monad
    Redis(), runRedis,
    RedisCtx(), MonadRedis(),

    -- * Connection
    Connection, connect,
    ConnectInfo(..),defaultConnectInfo,
    HostName,PortID(..),

    -- * Commands
    module Database.Redis.Commands,

    -- * Transactions
    module Database.Redis.Transactions,

    -- * Pub\/Sub
    module Database.Redis.PubSub,

    -- * Low-Level Command API
    sendRequest,
    Reply(..),Status(..),RedisResult(..),ConnectionLostException(..),

    -- |[Solution to Exercise]
    --
    --  Type of 'expire' inside a transaction:
    --
    --  > expire :: ByteString -> Integer -> RedisTx (Queued Bool)
    --
    --  Type of 'lindex' outside of a transaction:
    --
    --  > lindex :: ByteString -> Integer -> Redis (Either Reply ByteString)
    --
) where

import Database.Redis.Core
import Database.Redis.PubSub
import Database.Redis.Protocol
import Database.Redis.ProtocolPipelining
    (HostName, PortID(..), ConnectionLostException(..))
import Database.Redis.Transactions
import Database.Redis.Types

import Database.Redis.Commands

redpajama_set_name: RedPajamaGithub


Indications for Ilosone use: treatment of infectious process of easy and average degree, caused by bacteria, for all infants of following groups; prevention of gonococcal ophthalmia; as prokinetics to enhance motility in gastrointestinal pathology.
Ilosone is ingested between meals 2-4 times a day.
Children: Ilosone is taken 30-50 mg per 1 kg of body weight per day. The dose is divided into 4 admissions. The daily dose of the drug for children from 1 to 3 years is 400 mg for children from 3 to 6 years – 500-700 mg, for children 6 to 8 years — 750 mg, for children from 8 to 12 years — 1000 mg.
For the treatment of child pneumonia, Ilosone is indicated for 50 mg per 1 kg of body weight per day.
12 years old children and adults take 250 mg-500 mg of the drug 4 times a day. Single dose should not exceed 500 mg, the daily dose is 2000 mg.
The course of treatment and frequency of Ilosone intake is decided in each individual by case your physician.
During pregnancy: the drug is prescribed according to strict medical indications, when risk from a disease of the mother is higher than the risk of the impact of the drug on the fetus.
In case of the use of medication during breastfeeding of the newborn, the child is transferred to artificial adapted dairy mixes. In 2-3 days after finishing the course of treatment, breastfeeding can be resumed.
Ilosone is appointed for children who are 1 year old and older.
Hypersensitivity, significant hearing loss, concomitant use of terfenadine or astemizole, pregnancy (erythromycin estolate).C caution. arrhythmia (history), prolongation of Q-T interval, jaundice (in history), hepatic and/or renal failure, lactation.
Dyspeptic disorders, disorders of the liver, cholestatic hepatitis, jaundice, lesions of the ear, arrhythmia, super-infection, allergic reactions, stomatitis, epigastric pain, candidiasis mouth and the perianal area.
Transient cholestatic hepatitis and allergic reactions are rare.
The drug can cause an increase in plasma concentrations of theophylline, digoxin, and carbamazepine.
Ilosone may cause vomiting at feeding to children with hypertrophic pyloric stenosis (GSP) (there are reports that 5% of cases in the prevention of pertussis erythromycin has developed such complications). In case of the introduction of high antimicrobial doses (30-50 mg/kg/day.) for > 14 days the newborns under 2 weeks had a tenfold increased risk of developing hypertrophic pyloric stenosis. The cardiotoxic effect is amplified during taking of erythromycin, the risk of arrhythmia is reduced by slow infusion of the drug (within 1 hour).


text:
Designs 225 years MSK
Meet the limited editions by 10 exceptional designers and other creations made especially for the 225th anniversary of the museum.
Astrid Vandendael
Astrid Vandendael studied illustration at PXL Hasselt and animated film at the KASK in Ghent. For the MSK she created two tin boxes with notebooks and seeds, drawing inspiration from Hendrick Andriessen's still life painting 'Vanitas' (1650).
Elisa Lee
Elisabeth Leenknegt's jewellery brand Elisa Lee stands for unparalleled craftsmanship as well as respect for our Earth and for each other. For these luxurious earrings, she took inspiration from the 1926 painting 'Haven. Opus 2' by Victor Servranckx.
Fleurfatale
Fleurfatale is the jewellery label of graphic designer and jeweller Greet Tanghe. Gustave Desmet's painting 'The Good House' was the inspiration behind her latest jewellery collection, which she named 'Gusta: an ode to women and femininity'.
helen b
The designer behind helen b is Helen Blanchaert, a cheerful 40-something from Ghent with loads of creative talent. Inspired by the works of Hieronymous Bosch, Gustave Van de Woestyne and even the frieze above the museum entrance, Helen created a series of porselein cups for the MSK in her inimitable style.
J-oké
For Joke Bleys, everything started with the gifts she made for friends and family, mainly jewellery and ceramics. When more and more people started asking for them, she launched her own label: J-oké. For the MSK, Joke designed ceramic candlesticks along with earrings inspired by Emile Claus and Théo Van Rysselberghe.
Notebooks van Jozias Boone
When art history no longer held a thrill for Jozias Boone, he shifted his focus to his true passion: the art of printing. He established his own printing company in 1999. For the MSK, Jozias created Singer-stitched notebooks made from exquisite paper.
Vladimir Ivaneanu
Vladimir Ivaneanu is a visual artist. Not only does he teach at the Academy of Fine Arts in Ghent, he is also the driving force behind Printstudio 868. To help celebrate the MSK Ghent's 225th anniversary, he collaborated with Jozias Boone to create crowns inspired by the MSK's collection of works by Old Masters.
Karen Vande Casteele
Karen Vande Casteele was born with a severe form of asthma, and drawing is a way for her to escape reality. For the designs she painted on these lamps, she took inspiration from the mosaics around the museum entry.
Sabien Clement
Sabien Clement is an illustrator of children's books. For the MSK she designed three porcelain tiles based on sculptures by George Minne, Egide Rombaux and Jules II Van Biesbroeck.
wolvis
Following her passion for knitting, Ghent architect Griet Depoorter launched wolvis in 2013 after working for years in architecture studios. For the MSK, she took the museum floor plan as the basis for a scarf design with a bold graphic pattern.
Besides all of these designs, there are also plenty of other festive items available in the shop, from a snowball inspired by a work by Valerius De Saedeleer to a range of scented candles.


text:
Q: Retrieving GroupResult from taskset_id in Celery? I am starting a set of celery tasks by using celery group as described in the official documentation
I am also storing the group (taskset) id into a db, in order to poll celery for the taskset state.
job = group([
        single_test.s(1, 1),
        single_test.s(1, 2),
        single_test.s(1, 3),
    ])

result = job.apply_async()

test_set = MyTestSet()
test_set.taskset_id = result.id

# store test_set into DB

Is there a way to obtain a GroupResult object (i.e. my result) starting from the taskset id?
Something like what is done in this question, but working with celery groups.
I already tried doing:
r = GroupResult(taskset_id)

but it does not work, as r.results() is always empty.
Should I use GroupResult.save() and GroupResult.restore() methods?

A: Yes you have to save the result and then restore it.
job = group([
    single_test.s(1, 1),
    single_test.s(1, 2),
    single_test.s(1, 3),
])
result = job.apply_async()
result.save()

from celery.result import GroupResult
saved_result = GroupResult.restore(result.id)

I had the same issue and after seeing your hint about save/restore eventually figured it out.

redpajama_set_name: RedPajamaStackExchange


text:
Bolivia's indigenous peoples drive forest farm innovation to benefit Mother Earth
In Bolivia, the state is providing support to encourage community organisations to trial innovative new business models that challenge free market norms. Could such new ways of doing business also deliver greater benefits for the planet?
Duncan Macqueen
@DuncanMacqueen
The Plurinational State of Bolivia (Bolivia), rather ironically, produces 85 per cent of the world's 'Brazil' nuts. Members of 17 Bolivian forest farm producer organisations visited the Manuripi in Pando last week, to see how a new association of Brazil nut collectors was developing a joint business to improve returns from formerly fragmented family units, which had been at the mercy of intermediary traders.
They also visited a struggling rubber tappers' association to learn what had undermined that attempt at collective business. The field visit was part of a week-long training programme on Market Analysis and Development (MA&D) (PDF) funded by the Forest Farm Facility (FFF) to strengthen forest farm producer organisations in Bolivia.
The timing of this work could not have been better. Bolivia has recently passed a 2012 Framework Law of Mother Earth and Holistic Development for Living Well – quite a mouthful! But behind the rhetoric is some innovative thinking that challenges accepted free market norms. Earlier in 2010 the Bolivian government had publically condemned 'mercantilist market mechanisms, such as the mechanism of REDD and their versions + and ++, which are violating the sovereignty of peoples'.
This rejection of 'mercantilist market mechanisms' is not just talk. Through the Forest and Lands Audit and Social Control Authority (ABT), the government of Evo Morales has completely inverted the situation of land and resource ownership.
Of the 57 million hectares of land titled between 1953 and 1992, 70 per cent was granted to large and medium land owners. By the end of 2012, 23.2 million hectares had been newly titled or retitled to communities through a legal mechanism know as Original Indigenous Native Peasant Territories (TIOC).
Bolivia sees local forest farm producer groups, whose tenure has been secured through TIOC, as a holistic solution to environmental protection and social development. Instead of a REDD+ programme, Bolivia has set up the Plurinational Mother Earth Authority (APTM) (Spanish language PDF) – the 'plurinational' reference is to the 38 indigenous peoples within the country. This oversees three new climate change mechanisms covering:
Joint mitigation and adaptation (MCMA
Non-forest mitigation (for example in energy and industry), and
Adaptation.
The first of these will work out the practicalities of how local forest farm producers can both adapt to and mitigate climate change through business models that put the holistic nature of sustainable forest farm management at the foundation.
MCMA is currently developing national and regional 'platforms' through which these models will be discussed and then supported through national and municipal government authorities – alongside donor programmes aligned with that vision. The FFF is one of those aligned partners and has been assigned a critical role in identifying, strengthening and supporting the representation of forest farm producer groups in the platforms.
The challenge of representation is complicated on two fronts. First, many community-level organisations are not yet fully registered or legalised. For this reason FFF is supporting a national producer federation CIOCEC (Coordination and Integration of Producer Organisations) to broaden and accelerate legal registration at community-level.
Secondly, many of the community-based forest farm producer organisations have yet to develop their business plans and organisational models – with inadequate knowledge of what support is required – and what models could be scaled up.
For this reason, FFF has started to run Market Analysis and Development training courses, and will fund a national association of workers groups (MINGA) to help forest farm producer organisations develop and implement their sustainable business plans in the Chiquitanía. Three pilot areas have been selected: Pando, North of La Paz and Chiquitania in Santa Cruz. Further small grants to particular forest farm producer groups are also being discussed.
Training participants heard about the successes and challenges of Brazil nut and rubber tappers' associations. They also shared their own experiences with timber, cocoa, coffee, Brazil nut, açai, quinoa, honey, llama wool and chicken production. Perhaps the defining lesson from the week was that, while business information (about markets, legal requirements, technology, social acceptance) was essential for successful production, it was organisation management and accounting that were 'make or break' for businesses.
Many local failures cited initial profitability, but said that this was then undermined by inadequate management and a failure to reinvest profits into business growth and development – or by changes in management staff without adequate preparation of replacement staff.
Too often, political powers at community level were allowed to use hard-won reinvestment funds for short terms social objectives. For example, a community forest enterprise (EFC), Taruma, generated US$230,000 in profits from timber sales between 2009 and 2012. Careful distribution of those profits into reinvestment funds (50 per cent) participating members (30 per cent) and community social project (20 per cent) was then compromised by changes in management staff and political interference in the use of the reinvestment funds.
When Taruma was persuaded to switch buyer, and that buyer failed to pay – the lack of operational capital led to demoralisation within the business and almost complete collapse. The structuring and financial separation of advisory 'oversight' assemblies or boards from 'operational' management structures is an area that requires more attention at every stage of business development.
Building forest farm business models that can learn from such lessons will be fundamental to the success of the holistic vision of the Plurinational Mother Earth Authority. As Alicia Canaviri, a quinoa producer and participant from the Economic Solidarity and Commercial Justice Movement of Boliva (MESyCJB) observed: "We leave this training with a different mentality – we need to better structure and operationalise our business ideas around multiple product lines – and provide services to our members".
IIED is working through the FFF to capture in a compendium examples of locally controlled forestry business models that can be used to inform national programmes such as MCMA. For it is on the innovation in business models that the future of 'Mother Earth' depends.
Duncan Macqueen (duncan.macqueen@iied.org) is a principal researcher in IIED's Natural Resources Group, working on forest use and policies.
Shaping sustainable markets
Locally controlled forestry
Forest Farm Facility
All blogs | About the IIED blog | CC BY 4.0
Madagascar needs agroforestry businesses in its response to climate change
Vietnamese forest and farm producers work towards more resilient livelihoods and landscapes
Modern food systems to emerge in new decade of family farming
Biodiversity: a women's business?


text:
The decode_data function in drivers/net/hamradio/6pack.c in the Linux kernel before 5.13.13 has a slab out-of-bounds write. Input from a process that has the CAP_NET_ADMIN capability can lead to root access.
Ubuntu Security Notice 5116-2 - It was discovered that a race condition existed in the Atheros Ath9k WiFi driver in the Linux kernel. An attacker could possibly use this to expose sensitive information. Alois Wohlschlager discovered that the overlay file system in the Linux kernel did not restrict private clones in some situations. An attacker could use this to expose sensitive information. It was discovered that the KVM hypervisor implementation in the Linux kernel did not properly compute the access permissions for shadow pages in some situations. A local attacker could use this to cause a denial of service. Various other issues were also addressed.
tags | advisory, denial of service, kernel, local
advisories | CVE-2020-3702, CVE-2021-3732, CVE-2021-38198, CVE-2021-38205, CVE-2021-40490, CVE-2021-42008
MD5 | 5a6d994360d223898c2986ae7be189fd
MD5 | 715eb5083b40eea27bd0010abe8079e3
Ubuntu Security Notice 5115-1 - It was discovered that a race condition existed in the Atheros Ath9k WiFi driver in the Linux kernel. An attacker could possibly use this to expose sensitive information. Ofek Kirzner, Adam Morrison, Benedict Schlueter, and Piotr Krysiuk discovered that the BPF verifier in the Linux kernel missed possible mispredicted branches due to type confusion, allowing a side-channel attack. An attacker could use this to expose sensitive information. Various other issues were also addressed.
tags | advisory, kernel
advisories | CVE-2020-3702, CVE-2021-33624, CVE-2021-34556, CVE-2021-35477, CVE-2021-3679, CVE-2021-37159, CVE-2021-3732, CVE-2021-3739, CVE-2021-3743, CVE-2021-3753, CVE-2021-3759, CVE-2021-38166, CVE-2021-38204, CVE-2021-38205, CVE-2021-40490, CVE-2021-42008
MD5 | 6730d8bb9630399283cc815ff2505e83
Ubuntu Security Notice 5114-1 - It was discovered that a race condition existed in the Atheros Ath9k WiFi driver in the Linux kernel. An attacker could possibly use this to expose sensitive information. It was discovered that the KVM hypervisor implementation in the Linux kernel did not properly compute the access permissions for shadow pages in some situations. A local attacker could use this to cause a denial of service. Various other issues were also addressed.
advisories | CVE-2020-3702, CVE-2021-38198, CVE-2021-40490, CVE-2021-42008
MD5 | 8fa3ae056919ddf7efc9988aa2f5db12
Ubuntu Security Notice 5113-1 - It was discovered that a race condition existed in the Atheros Ath9k WiFi driver in the Linux kernel. An attacker could possibly use this to expose sensitive information. Alois Wohlschlager discovered that the overlay file system in the Linux kernel did not restrict private clones in some situations. An attacker could use this to expose sensitive information. It was discovered that the btrfs file system in the Linux kernel did not properly handle removing a non-existent device id. An attacker with CAP_SYS_ADMIN could use this to cause a denial of service. Various other issues were also addressed.
tags | advisory, denial of service, kernel
advisories | CVE-2020-3702, CVE-2021-3732, CVE-2021-3739, CVE-2021-3743, CVE-2021-3753, CVE-2021-38166, CVE-2021-40490, CVE-2021-42008
MD5 | 00db01f6ec31316d70e9ac5c2e40b7e9


text:
draft-ietf-ipv6-privacy-addrs-v2-01.txt
IPv6 Working Group T. Narten IPv6 Working Group T. Narten
Internet-Draft IBM Corporation Internet-Draft IBM Corporation
Expires: April 22, 2005 R. Draves Expires: June 23, 2005 R. Draves
Microsoft Research Microsoft Research
S. Krishnan S. Krishnan
Privacy Extensions for Stateless Address Autoconfiguration in IPv6 Privacy Extensions for Stateless Address Autoconfiguration in IPv6
draft-ietf-ipv6-privacy-addrs-v2-01 draft-ietf-ipv6-privacy-addrs-v2-02
By submitting this Internet-Draft, I certify that any applicable By submitting this Internet-Draft, I certify that any applicable
patent or other IPR claims of which I am aware have been disclosed, patent or other IPR claims of which I am aware have been disclosed,
and any of which I become aware will be disclosed, in accordance with and any of which I become aware will be disclosed, in accordance with
RFC 3668. RFC 3668.
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
This Internet-Draft will expire on April 22, 2005. This Internet-Draft will expire on June 23, 2005.
Copyright (C) The Internet Society (2004). All Rights Reserved. Copyright (C) The Internet Society (2004). All Rights Reserved.
Nodes use IPv6 stateless address autoconfiguration to generate Nodes use IPv6 stateless address autoconfiguration to generate
addresses using a combination of locally available information and addresses using a combination of locally available information and
information advertised by routers. Addresses are formed by combining information advertised by routers. Addresses are formed by combining
3.2.3 Alternate approaches . . . . . . . . . . . . . . . . . 14 3.2.3 Alternate approaches . . . . . . . . . . . . . . . . . 14
3.3 Generating Temporary Addresses . . . . . . . . . . . . . . 14 3.3 Generating Temporary Addresses . . . . . . . . . . . . . . 14
3.4 Expiration of Temporary Addresses . . . . . . . . . . . . 15 3.4 Expiration of Temporary Addresses . . . . . . . . . . . . 15
3.5 Regeneration of Randomized Interface Identifiers . . . . . 16 3.5 Regeneration of Randomized Interface Identifiers . . . . . 16
3.6 Deployment Considerations . . . . . . . . . . . . . . . . 17 3.6 Deployment Considerations . . . . . . . . . . . . . . . . 17
4. Implications of Changing Interface Identifiers . . . . . . . . 19 4. Implications of Changing Interface Identifiers . . . . . . . . 19
5. Defined Constants . . . . . . . . . . . . . . . . . . . . . . 20 5. Defined Constants . . . . . . . . . . . . . . . . . . . . . . 20
6. Future Work . . . . . . . . . . . . . . . . . . . . . . . . . 21 6. Future Work . . . . . . . . . . . . . . . . . . . . . . . . . 21
7. Significant Changes from RFC 3041 . . . . . . . . . . . . . . 22 7. Significant Changes from RFC 3041 . . . . . . . . . . . . . . 22
8. Changes from version 00 . . . . . . . . . . . . . . . . . . . 23 8. Changes from version 00 . . . . . . . . . . . . . . . . . . . 23
9. Security Considerations . . . . . . . . . . . . . . . . . . . 24 9. Changes from version 01 . . . . . . . . . . . . . . . . . . . 24
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 25 10. Security Considerations . . . . . . . . . . . . . . . . . . 25
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 26
11.1 Normative References . . . . . . . . . . . . . . . . . . . . 26 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 27
11.2 Informative References . . . . . . . . . . . . . . . . . . . 26 12.1 Normative References . . . . . . . . . . . . . . . . . . . . 27
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 27 12.2 Informative References . . . . . . . . . . . . . . . . . . . 27
Intellectual Property and Copyright Statements . . . . . . . . 29 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 28
1. Introduction 1. Introduction
Stateless address autoconfiguration [ADDRCONF] defines how an IPv6 Stateless address autoconfiguration [ADDRCONF] defines how an IPv6
node generates addresses without the need for a DHCPv6 server. Some node generates addresses without the need for a DHCPv6 server. Some
types of network interfaces come with an embedded IEEE Identifier types of network interfaces come with an embedded IEEE Identifier
(i.e., a link-layer MAC address), and in those cases stateless (i.e., a link-layer MAC address), and in those cases stateless
address autoconfiguration uses the IEEE identifier to generate a 64- address autoconfiguration uses the IEEE identifier to generate a 64-
bit interface identifier [ADDRARCH]. By design, the interface bit interface identifier [ADDRARCH]. By design, the interface
identifier is likely to be globally unique when generated in this identifier is likely to be globally unique when generated in this
fashion. The interface identifier is in turn appended to a prefix to fashion. The interface identifier is in turn appended to a prefix to
form a 128-bit IPv6 address. form a 128-bit IPv6 address. Note that an IPv6 identifier does not
necessarily have to be 64 bits in length, but the algorithm specified
in this document is targeted towards 64-bit interface identifiers.
All nodes combine interface identifiers (whether derived from an IEEE All nodes combine interface identifiers (whether derived from an IEEE
identifier or generated through some other technique) with the identifier or generated through some other technique) with the
reserved link-local prefix to generate link-local addresses for their reserved link-local prefix to generate link-local addresses for their
attached interfaces. Additional addresses can then be created by attached interfaces. Additional addresses can then be created by
combining prefixes advertised in Router Advertisements via Neighbor combining prefixes advertised in Router Advertisements via Neighbor
Discovery [DISCOVERY] with the interface identifier. Discovery [DISCOVERY] with the interface identifier.
Not all nodes and interfaces contain IEEE identifiers. In such Not all nodes and interfaces contain IEEE identifiers. In such
cases, an interface identifier is generated through some other means cases, an interface identifier is generated through some other means
the peer(s) it is communicating to, and can view the IPv6 the peer(s) it is communicating to, and can view the IPv6
addresses present in the datagrams. addresses present in the datagrams.
o An attacker who can access the communication logs of the peers o An attacker who can access the communication logs of the peers
with which the node has communicated. with which the node has communicated.
Since the identifier is embedded within the IPv6 address, which is a Since the identifier is embedded within the IPv6 address, which is a
fundamental requirement of communication, it cannot be easily hidden. fundamental requirement of communication, it cannot be easily hidden.
This document proposes a solution to this issue by generating This document proposes a solution to this issue by generating
interface identifiers which vary over time. interface identifiers which vary over time.
Please note that an attacker, who is on path, may be able to perform Note that an attacker, who is on path, may be able to perform
significant correlation based on significant correlation based on
o The payload contents of the packets on the wire o The payload contents of the packets on the wire
o The characteristics of the packets such as packet size and timing o The characteristics of the packets such as packet size and timing
Use of temporary addresses will not prevent such payload based Use of temporary addresses will not prevent such payload based
correlation correlation.
1.2 Conventions used in this document 1.2 Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
2. Background 2. Background
This section discusses the problem in more detail, provides context This section discusses the problem in more detail, provides context
address a client gets via DHCP can change over time, but in practice address a client gets via DHCP can change over time, but in practice
servers often return the same address to the same client (unless servers often return the same address to the same client (unless
addresses are in such short supply that they are reused immediately addresses are in such short supply that they are reused immediately
by a different node when they become free). Thus, even within sites by a different node when they become free). Thus, even within sites
using DHCP, clients frequently end up using the same address for using DHCP, clients frequently end up using the same address for
weeks to months at a time. weeks to months at a time.
For home users accessing the Internet over dialup lines, the For home users accessing the Internet over dialup lines, the
situation is generally different. Such users do not have permanent situation is generally different. Such users do not have permanent
connections and are often assigned temporary addresses each time they connections and are often assigned temporary addresses each time they
connect to their ISP (e.g., AOL). Consequently, the addresses they connect to their ISP. Consequently, the addresses they use change
use change frequently over time and are shared among a number of frequently over time and are shared among a number of different
different users. Thus, an address does not reliably identify a users. Thus, an address does not reliably identify a particular
particular device over time spans of more than a few minutes. device over time spans of more than a few minutes.
A more interesting case concerns always-on connections (e.g., cable A more interesting case concerns always-on connections (e.g., cable
modems, ISDN, DSL, etc.) that result in a home site using the same modems, ISDN, DSL, etc.) that result in a home site using the same
address for extended periods of time. This is a scenario that is address for extended periods of time. This is a scenario that is
just starting to become common in IPv4 and promises to become more of just starting to become common in IPv4 and promises to become more of
a concern as always-on internet connectivity becomes widely a concern as always-on internet connectivity becomes widely
available. available.
Finally, it should be noted that nodes that need a (non-changing) DNS Finally, it should be noted that nodes that need a (non-changing) DNS
name generally have static addresses assigned to them to simplify the name generally have static addresses assigned to them to simplify the
configuration of DNS servers. Although Dynamic DNS [DDNS] can be configuration of DNS servers. Although Dynamic DNS [DDNS] can be
used to update the DNS dynamically, it is not yet widely deployed. used to update the DNS dynamically, it may not always be available
In addition, changing an address but keeping the same DNS name does depending on the administrative policy. In addition, changing an
not really address the underlying concern, since the DNS name becomes address but keeping the same DNS name does not really address the
a non-changing identifier. Servers generally require a DNS name (so underlying concern, since the DNS name becomes a non-changing
clients can connect to them), and clients often do as well (e.g., identifier. Servers generally require a DNS name (so clients can
some servers refuse to speak to a client whose address cannot be connect to them), and clients often do as well (e.g., some servers
mapped into a DNS name that also maps back into the same address). refuse to speak to a client whose address cannot be mapped into a DNS
Section 4 describes one approach to this issue. name that also maps back into the same address). Section 4 describes
one approach to this issue.
2.3 The Concern With IPv6 Addresses 2.3 The Concern With IPv6 Addresses
The division of IPv6 addresses into distinct topology and interface The division of IPv6 addresses into distinct topology and interface
identifier portions raises an issue new to IPv6 in that a fixed identifier portions raises an issue new to IPv6 in that a fixed
portion of an IPv6 address (i.e., the interface identifier) can portion of an IPv6 address (i.e., the interface identifier) can
contain an identifier that remains constant even when the topology contain an identifier that remains constant even when the topology
portion of an address changes (e.g., as the result of connecting to a portion of an address changes (e.g., as the result of connecting to a
different part of the Internet). In IPv4, when an address changes, different part of the Internet). In IPv4, when an address changes,
the entire address (including the local part of the address) usually the entire address (including the local part of the address) usually
In summary, IPv6 addresses on a given interface generated via In summary, IPv6 addresses on a given interface generated via
Stateless Autoconfiguration contain the same interface identifier, Stateless Autoconfiguration contain the same interface identifier,
regardless of where within the Internet the device connects. This regardless of where within the Internet the device connects. This
facilitates the tracking of individual devices (and thus potentially facilitates the tracking of individual devices (and thus potentially
users). The purpose of this document is to define mechanisms that users). The purpose of this document is to define mechanisms that
eliminate this issue, in those situations where it is a concern. eliminate this issue, in those situations where it is a concern.
2.4 Possible Approaches 2.4 Possible Approaches
One way to avoid some of the problems discussed above is to use One way to avoid having a static non-changing address is to use
DHCPv6 [DHCPV6] for obtaining addresses. The DHCPv6 server could be DHCPv6 [DHCPV6] for obtaining addresses. The DHCPv6 server could be
configured to hand out addresses that change over time. But DHCPv6 configured to hand out addresses that change over time. But DHCPv6
will solve the privacy issue only if it frequently handed out will solve the privacy issue only if it frequently handed out
constantly changing addresses to the nodes. Since this does not constantly changing addresses to the nodes. Since this does not
happen automatically, and is difficult to configure manually, DHCPv6 happen automatically, and is difficult to configure manually, DHCPv6
is not a self contained alternative for solving the privacy issues is not a self contained alternative for solving the privacy issues
addressed by this document. However, in the absence of stateless addressed by this document. However, in the absence of stateless
address autoconfiguration, DHCPv6 can be used for distributing address autoconfiguration, DHCPv6 can be used for distributing
temporary addresses to clients. temporary addresses to clients.
Another approach, compatible with the stateless address Another approach, compatible with the stateless address
autoconfiguration architecture, would be to change the interface id autoconfiguration architecture, would be to change the interface
portion of an address over time and generate new addresses from the identifier portion of an address over time and generate new addresses
interface identifier for some address scopes. Changing the interface from the interface identifier for some address scopes. Changing the
identifier can make it more difficult to look at the IP addresses in interface identifier can make it more difficult to look at the IP
independent transactions and identify which ones actually correspond addresses in independent transactions and identify which ones
to the same node, both in the case where the routing prefix portion actually correspond to the same node, both in the case where the
of an address changes and when it does not. routing prefix portion of an address changes and when it does not.
Many machines function as both clients and servers. In such cases, Many machines function as both clients and servers. In such cases,
the machine would need a DNS name for its use as a server. Whether the machine would need a DNS name for its use as a server. Whether
the address stays fixed or changes has little privacy implication the address stays fixed or changes has little privacy implication
since the DNS name remains constant and serves as a constant since the DNS name remains constant and serves as a constant
identifier. When acting as a client (e.g., initiating identifier. When acting as a client (e.g., initiating
communication), however, such a machine may want to vary the communication), however, such a machine may want to vary the
addresses it uses. In such environments, one may need multiple addresses it uses. In such environments, one may need multiple
addresses: a "public" (i.e., non-secret) server address, registered addresses: a "public" (i.e., non-secret) server address, registered
in the DNS, that is used to accept incoming connection requests from in the DNS, that is used to accept incoming connection requests from
1. Take the history value from the previous iteration of this 1. Take the history value from the previous iteration of this
algorithm (or a random value if there is no previous value) and algorithm (or a random value if there is no previous value) and
append to it the interface identifier generated as described in append to it the interface identifier generated as described in
[ADDRARCH]. [ADDRARCH].
2. Compute the MD5 message digest [MD5] over the quantity created in 2. Compute the MD5 message digest [MD5] over the quantity created in
the previous step. the previous step.
3. Take the left-most 64-bits of the MD5 digest and set bit 6 (the 3. Take the left-most 64-bits of the MD5 digest and set bit 6 (the
left-most bit is numbered 0) to zero. This creates an interface left-most bit is numbered 0) to zero. This creates an interface
identifier with the universal/local bit indicating local identifier with the universal/local bit indicating local
significance only. significance only.
4. Compare the generated identifier against a list of known values 4. Compare the generated identifier against a list of reserved
that should not be used. Inappropriate values include those used interface identifiers and to those already assigned to an address
in reserved anycast addresses [RFC2526], those used by ISATAP
[ISATAP], the value 0, and those already assigned to an address
on the local device. In the event that an unacceptable on the local device. In the event that an unacceptable
identifier has been generated, the node MUST restart the process identifier has been generated, the node MUST restart the process
at step 1 above, using the right-most 64 bits of the MD5 digest at step 1 above, using the right-most 64 bits of the MD5 digest
obtained in step 2 in place of the history value in step 1. obtained in step 2 in place of the history value in step 1.
5. Save the generated identifier as the associated randomized 5. Save the generated identifier as the associated randomized
interface identifier. interface identifier.
6. Take the rightmost 64-bits of the MD5 digest computed in step 2) 6. Take the rightmost 64-bits of the MD5 digest computed in step 2)
and save them in stable storage as the history value to be used and save them in stable storage as the history value to be used
in the next iteration of the algorithm. in the next iteration of the algorithm.
MD5 was chosen for convenience, and because its particular properties MD5 was chosen for convenience, and because its particular properties
were adequate to produce the desired level of randomization. IPv6 were adequate to produce the desired level of randomization. IPv6
nodes are already required to implement MD5 as part of IPsec [IPSEC], nodes are already required to implement MD5 as part of IPsec [IPSEC],
thus the code will already be present on IPv6 machines. thus the code will already be present on IPv6 machines.
In theory, generating successive randomized interface identifiers In theory, generating successive randomized interface identifiers
cases have configuration information that differs from one machine to cases have configuration information that differs from one machine to
another (e.g., user identity, security keys, serial numbers, etc.). another (e.g., user identity, security keys, serial numbers, etc.).
One approach to generating a random initial history value in such One approach to generating a random initial history value in such
cases is to use the configuration information to generate some data cases is to use the configuration information to generate some data
bits (which may remain constant for the life of the machine, but will bits (which may remain constant for the life of the machine, but will
vary from one machine to another), append some random data and vary from one machine to another), append some random data and
compute the MD5 digest as before. compute the MD5 digest as before.
3.2.3 Alternate approaches 3.2.3 Alternate approaches
Please note that there are other approaches to generate random Note that there are other approaches to generate random interface
interface identifiers, albeit with different goals and applicability. identifiers, albeit with different goals and applicability. One such
One such approach is CGA [CGA], which generates a random interface approach is CGA [CGA], which generates a random interface identifier
identifier based on the public key of the node. The goal of CGAs is based on the public key of the node. The goal of CGAs is to prove
to prove ownership of an address and to prevent spoofing and stealing ownership of an address and to prevent spoofing and stealing of
of existing IPv6 addresses. They are used for securing neighbor existing IPv6 addresses. They are used for securing neighbor
discovery using [SEND]. The CGA random interface identifier discovery using [SEND]. The CGA random interface identifier
generation algorithm may not be suitable for privacy addresses generation algorithm may not be suitable for privacy addresses
because of the following properties because of the following properties
o It requires the node to have a public key. This means that the o It requires the node to have a public key. This means that the
node can still be identified by its public key node can still be identified by its public key
o The random interface identifier process is computationally o The random interface identifier process is computationally
intensive and hence discourages frequent regeneration intensive and hence discourages frequent regeneration
3.3 Generating Temporary Addresses 3.3 Generating Temporary Addresses
address autoconfiguration (i.e., the A bit is set), the node MUST address autoconfiguration (i.e., the A bit is set), the node MUST
perform the following steps: perform the following steps:
1. Process the Prefix Information Option as defined in [ADDRCONF], 1. Process the Prefix Information Option as defined in [ADDRCONF],
either creating a new public address or adjusting the lifetimes either creating a new public address or adjusting the lifetimes
of existing addresses, both public and temporary. If a received of existing addresses, both public and temporary. If a received
option will extend the lifetime of a public address, the option will extend the lifetime of a public address, the
lifetimes of temporary addresses should be extended, subject to lifetimes of temporary addresses should be extended, subject to
the overall constraint that no temporary addresses should ever the overall constraint that no temporary addresses should ever
remain "valid" or "preferred" for a time longer than remain "valid" or "preferred" for a time longer than
(TEMP_VALID_LIFETIME-DESYNC_FACTOR) or (TEMP_VALID_LIFETIME - DESYNC_FACTOR) or (TEMP_PREFERRED_LIFETIME
(TEMP_PREFERRED_LIFETIME-DESYNC_FACTOR) respectively. The - DESYNC_FACTOR) respectively. The configuration variables
configuration variables TEMP_VALID_LIFETIME and TEMP_VALID_LIFETIME and TEMP_PREFERRED_LIFETIME correspond to
TEMP_PREFERRED_LIFETIME correspond to approximate target approximate target lifetimes for temporary addresses.
lifetimes for temporary addresses.
2. One way an implementation can satisfy the above constraints is to 2. One way an implementation can satisfy the above constraints is to
associate with each temporary address a creation time (called associate with each temporary address a creation time (called
CREATION_TIME) that indicates the time at which the address was CREATION_TIME) that indicates the time at which the address was
created. When updating the preferred lifetime of an existing created. When updating the preferred lifetime of an existing
temporary address, it would be set to expire at whichever time is temporary address, it would be set to expire at whichever time is
earlier: the time indicated by the received lifetime or earlier: the time indicated by the received lifetime or
(CREATION_TIME + TEMP_PREFERRED_LIFETIME - DESYNC_FACTOR). A (CREATION_TIME + TEMP_PREFERRED_LIFETIME - DESYNC_FACTOR). A
similar approach can be used with the valid lifetime. similar approach can be used with the valid lifetime.
3. When a new public address is created as described in [ADDRCONF],
the node SHOULD also create a new temporary address.
3. When a new public address is created as described in [ADDRCONF]
(because the prefix advertised does not match the prefix of any
address already assigned to the interface, and the Valid Lifetime
in the option is not zero), the node SHOULD also create a new
temporary address.
4. When creating a temporary address, the lifetime values MUST be 4. When creating a temporary address, the lifetime values MUST be
derived from the corresponding prefix as follows: derived from the corresponding prefix as follows:
* Its Valid Lifetime is the lower of the Valid Lifetime of the * Its Valid Lifetime is the lower of the Valid Lifetime of the
public address or TEMP_VALID_LIFETIME public address or TEMP_VALID_LIFETIME
* Its Preferred Lifetime is the lower of the Preferred Lifetime * Its Preferred Lifetime is the lower of the Preferred Lifetime
of the prefix or TEMP_PREFERRED_LIFETIME-DESYNC_FACTOR. of the prefix or TEMP_PREFERRED_LIFETIME-DESYNC_FACTOR.
5. A temporary address is created only if this calculated Preferred 5. A temporary address is created only if this calculated Preferred
Lifetime is greater than REGEN_ADVANCE time units. In Lifetime is greater than REGEN_ADVANCE time units. In
particular, an implementation MUST NOT create a temporary address particular, an implementation MUST NOT create a temporary address
with a zero Preferred Lifetime. with a zero Preferred Lifetime.
temporary address SHOULD be regenerated slightly before its temporary address SHOULD be regenerated slightly before its
predecessor is deprecated. This is to allow sufficient time to avoid predecessor is deprecated. This is to allow sufficient time to avoid
race conditions in the case where generating a new temporary address race conditions in the case where generating a new temporary address
is not instantaneous, such as when duplicate address detection must is not instantaneous, such as when duplicate address detection must
be run. The node SHOULD start the address regeneration process be run. The node SHOULD start the address regeneration process
REGEN_ADVANCE time units before a temporary address would actually be REGEN_ADVANCE time units before a temporary address would actually be
deprecated. deprecated.
As an optional optimization, an implementation MAY remove a As an optional optimization, an implementation MAY remove a
deprecated temporary address that is not in use by applications or deprecated temporary address that is not in use by applications or
upper-layers as detailed in Section 6 upper-layers as detailed in Section 6.
3.5 Regeneration of Randomized Interface Identifiers 3.5 Regeneration of Randomized Interface Identifiers
The frequency at which temporary addresses changes depends on how a The frequency at which temporary addresses changes depends on how a
device is being used (e.g., how frequently it initiates new device is being used (e.g., how frequently it initiates new
communication) and the concerns of the end user. The most egregious communication) and the concerns of the end user. The most egregious
privacy concerns appear to involve addresses used for long periods of privacy concerns appear to involve addresses used for long periods of
time (weeks to months to years). The more frequently an address time (weeks to months to years). The more frequently an address
changes, the less feasible collecting or coordinating information changes, the less feasible collecting or coordinating information
keyed on interface identifiers becomes. Moreover, the cost of keyed on interface identifiers becomes. Moreover, the cost of
Finally, when an interface connects to a new link, a new randomized Finally, when an interface connects to a new link, a new randomized
interface identifier SHOULD be generated immediately together with a interface identifier SHOULD be generated immediately together with a
new set of temporary addresses. If a device moves from one ethernet new set of temporary addresses. If a device moves from one ethernet
to another, generating a new set of temporary addresses from a to another, generating a new set of temporary addresses from a
different randomized interface identifier ensures that the device different randomized interface identifier ensures that the device
uses different randomized interface identifiers for the temporary uses different randomized interface identifiers for the temporary
addresses associated with the two links, making it more difficult to addresses associated with the two links, making it more difficult to
correlate addresses from the two different links as being from the correlate addresses from the two different links as being from the
same node. The node MAY follow any process available to it, to same node. The node MAY follow any process available to it, to
determine that the link change has occurred. One such process is determine that the link change has occurred. One such process is
described by Detecting Network Attachment [DNA] described by Detecting Network Attachment [DNA].
3.6 Deployment Considerations 3.6 Deployment Considerations
Devices implementing this specification MUST provide a way for the Devices implementing this specification MUST provide a way for the
end user to explicitly enable or disable the use of temporary end user to explicitly enable or disable the use of temporary
addresses. In addition, a site might wish to disable the use of addresses. In addition, a site might wish to disable the use of
temporary addresses in order to simplify network debugging and temporary addresses in order to simplify network debugging and
operations. Consequently, implementations SHOULD provide a way for operations. Consequently, implementations SHOULD provide a way for
trusted system administrators to enable or disable the use of trusted system administrators to enable or disable the use of
temporary addresses. temporary addresses.
Additionally, sites might wish to selectively enable or disable the Additionally, sites might wish to selectively enable or disable the
use of temporary addresses for some prefixes. For example, a site use of temporary addresses for some prefixes. For example, a site
might wish to disable temporary address generation for "Unique local" might wish to disable temporary address generation for "Unique local"
[ULA] prefixes while still generating temporary addresses for all [ULA] prefixes while still generating temporary addresses for all
other global prefixes. Another site might wish to enable temporary other global prefixes. Another site might wish to enable temporary
address generation only for the prefixes 2001::/16 and 2002::/16 address generation only for the prefixes 2001::/16 and 2002::/16
while disabling it for all other prefixes. To support this behavior, while disabling it for all other prefixes. To support this behavior,
implementations SHOULD provide a way to enable and disable generation implementations SHOULD provide a way to enable and disable generation
of temporary addresses for specific prefix subranges. This of temporary addresses for specific prefix subranges. This
per-prefix setting SHOULD override the global settings on the node per-prefix setting SHOULD override the global settings on the node
with respect to the specified prefix subranges. with respect to the specified prefix subranges. Note that the
pre-prefix setting can be applied at any granularity, and not
necessarily on a per subnet basis.
The use of temporary addresses may cause unexpected difficulties with The use of temporary addresses may cause unexpected difficulties with
some applications. As described below, some servers refuse to accept some applications. As described below, some servers refuse to accept
communications from clients for which they cannot map the IP address communications from clients for which they cannot map the IP address
into an DNS name. In addition, some applications may not behave into a DNS name. In addition, some applications may not behave
robustly if temporary addresses are used and an address expires robustly if temporary addresses are used and an address expires
before the application has terminated, or if it opens multiple before the application has terminated, or if it opens multiple
sessions, but expects them to all use the same addresses. sessions, but expects them to all use the same addresses.
Consequently, the use of temporary addresses SHOULD be disabled by Consequently, the use of temporary addresses SHOULD be disabled by
default in order to minimize potential disruptions. Individual default in order to minimize potential disruptions. Individual
applications, which have specific knowledge about the normal duration applications, which have specific knowledge about the normal duration
of connections, MAY override this as appropriate. of connections, MAY override this as appropriate.
If a very small number of nodes(say only one) use a given prefix for If a very small number of nodes(say only one) use a given prefix for
extended periods of time, just changing the interface identifier extended periods of time, just changing the interface identifier part
part of the prefix may not be sufficient to ensure privacy, since of the address may not be sufficient to ensure privacy, since the
the prefix acts as a constant identifier. The procedures described prefix acts as a constant identifier. The procedures described in
in this document are most effective when the prefix is reasonably non this document are most effective when the prefix is reasonably non
static or is used by a fairly large number of nodes static or is used by a fairly large number of nodes.
4. Implications of Changing Interface Identifiers 4. Implications of Changing Interface Identifiers
The IPv6 addressing architecture goes to some lengths to ensure that The IPv6 addressing architecture goes to some lengths to ensure that
interface identifiers are likely to be globally unique where easy to interface identifiers are likely to be globally unique where easy to
do so. The widespread use of temporary addresses may result in a do so. The widespread use of temporary addresses may result in a
significant fraction of Internet traffic not using addresses in which significant fraction of Internet traffic not using addresses in which
the interface id portion is globally unique. Consequently, usage of the interface identifier portion is globally unique. Consequently,
the algorithms in this document may complicate providing such a usage of the algorithms in this document may complicate providing
future flexibility, if global uniqueness is necessary. such a future flexibility, if global uniqueness is necessary.
The desires of protecting individual privacy vs. the desire to The desires of protecting individual privacy versus the desire to
effectively maintain and debug a network can conflict with each effectively maintain and debug a network can conflict with each
other. Having clients use addresses that change over time will make other. Having clients use addresses that change over time will make
it more difficult to track down and isolate operational problems. it more difficult to track down and isolate operational problems.
For example, when looking at packet traces, it could become more For example, when looking at packet traces, it could become more
difficult to determine whether one is seeing behavior caused by a difficult to determine whether one is seeing behavior caused by a
single errant machine, or by a number of them. single errant machine, or by a number of them.
Some servers refuse to grant access to clients for which no DNS name Some servers refuse to grant access to clients for which no DNS name
exists. That is, they perform a DNS PTR query to determine the DNS exists. That is, they perform a DNS PTR query to determine the DNS
name, and may then also perform an AAAA query on the returned name to name, and may then also perform an AAAA query on the returned name to
protocols are using it (but not before). This is in contrast to protocols are using it (but not before). This is in contrast to
current approaches where addresses are removed from an interface when current approaches where addresses are removed from an interface when
they become invalid [ADDRCONF], independent of whether or not upper they become invalid [ADDRCONF], independent of whether or not upper
layer protocols are still using them. For TCP connections, such layer protocols are still using them. For TCP connections, such
information is available in control blocks. For UDP-based information is available in control blocks. For UDP-based
applications, it may be the case that only the applications have applications, it may be the case that only the applications have
knowledge about what addresses are actually in use. Consequently, an knowledge about what addresses are actually in use. Consequently, an
implementation generally will need to use heuristics in deciding when implementation generally will need to use heuristics in deciding when
an address is no longer in use. an address is no longer in use.
The determination as to whether to use public vs. temporary The determination as to whether to use public versus temporary
addresses can in some cases only be made by an application. For addresses can in some cases only be made by an application. For
example, some applications may always want to use temporary example, some applications may always want to use temporary
addresses, while others may want to use them only in some addresses, while others may want to use them only in some
circumstances or not at all. Suitable API extensions will likely circumstances or not at all. Suitable API extensions will likely
need to be developed to enable individual applications to indicate need to be developed to enable individual applications to indicate
with sufficient granularity their needs with regards to the use of with sufficient granularity their needs with regards to the use of
temporary addresses. Recommendations on DNS practices to avoid the temporary addresses. Recommendations on DNS practices to avoid the
problem described in Section 4 when reverse DNS lookups fail may be problem described in Section 4 when reverse DNS lookups fail may be
needed. [DNSOP] contains a more detailed discussion of the DNS needed. [DNSOP] contains a more detailed discussion of the DNS
related issues. related issues.
be disabled. be disabled.
6. Added a security considerations section to highlight the ingress 6. Added a security considerations section to highlight the ingress
filtering issues which can be caused by the use of temporary filtering issues which can be caused by the use of temporary
addresses as described in this document addresses as described in this document
7. Removed references to site-local addresses 7. Removed references to site-local addresses
8. Added a check for denial of service attacks using low valid 8. Added a check for denial of service attacks using low valid
lifetimes in router advertisements lifetimes in router advertisements
9. Changed the document to use RFC2119 language 9. Changed the document to use RFC2119 language
10. The node is now allowed to generate different interface 10. The node is now allowed to generate different interface
identifiers for different prefixes, if it so desires. identifiers for different prefixes, if it so desires.
11. DAD is now performed on all unicast addresses created from the
same interface identifier instead of just the first one
8. Changes from version 00 8. Changes from version 00
This section summarizes the changes from version 00 of this draft This section summarizes the changes from version 00 of this draft
1. The algorithm used for generating random interface identifiers is 1. The algorithm used for generating random interface identifiers is
no longer restricted to just MD5 no longer restricted to just MD5
2. Added a problem statement 2. Added a problem statement
3. Classified the references into normative and informative 3. Classified the references into normative and informative
4. Reduced default number of retries to 3 from 5 and added a 4. Reduced default number of retries to 3 from 5 and added a
configuration variable configuration variable
5. Removed text about RA processing which is duplicated from 5. Removed text about RA processing which is duplicated from
[ADDRCONF] [ADDRCONF]
6. Added text about the privacy implications of a non-changing 6. Added text about the privacy implications of a non-changing
prefix prefix
7. Added a per-prefix enable/disable setting 7. Added a per-prefix enable/disable setting
8. Added text about the means of correlation 8. Added text about the means of correlation
9. Clarified text about DHCPv6 9. Clarified text about DHCPv6
10. Added reference to dnsop issues draft 10. Added reference to dnsop issues draft
9. Security Considerations 9. Changes from version 01
This section summarizes the changes from version 01 of this draft
1. Clarifiying the length of interface identifier
2. Added a per-prefix enable/disable knob as a SHOULD to retain
3. Removed normative reference to ISATAP to avoid downref problem
4. Added text for per-prefix knobs to be applied at any granularity
5. Moved RFC2526 to informative reference
Ingress filtering has been and is being deployed as a means of Ingress filtering has been and is being deployed as a means of
preventing the use of spoofed source addresses in Distributed Denial preventing the use of spoofed source addresses in Distributed Denial
of Service(DDoS) attacks. In a network with a large number of nodes, of Service(DDoS) attacks. In a network with a large number of nodes,
new temporary addresses are created at a fairly high rate. This new temporary addresses are created at a fairly high rate. This
might make it difficult for ingress filtering mechanisms to might make it difficult for ingress filtering mechanisms to
distinguish between legitimately changing temporary addresses and distinguish between legitimately changing temporary addresses and
spoofed source addresses, which are "in-prefix"(They use a spoofed source addresses, which are "in-prefix"(They use a
topologically correct prefix and non-existent interface ID). This topologically correct prefix and non-existent interface ID). This
can be addressed by using access control mechanisms on a per address can be addressed by using access control mechanisms on a per address
basis on the network egress point. basis on the network egress point.
10. Acknowledgements 11. Acknowledgements
The authors would like to acknowledge the contributions of the ipv6 The authors would like to acknowledge the contributions of the ipv6
working group and, in particular, Ran Atkinson, Matt Crawford, Steve working group and, in particular, Ran Atkinson, Matt Crawford, Steve
Deering, Allison Mankin, Peter Bieringer, Jari Arkko, Pekka Nikander, Deering, Allison Mankin, Peter Bieringer, Jari Arkko, Pekka Nikander,
Pekka Savola, and Francis Dupont for their detailed comments. Pekka Savola, Francis Dupont, Brian Haberman, and Tatuya Jinmei for
their detailed comments.
11. References 12. References
11.1 Normative References 12.1 Normative References
[ADDRARCH] [ADDRARCH]
Hinden, R. and S. Deering, "Internet Protocol Version 6 Hinden, R. and S. Deering, "Internet Protocol Version 6
(IPv6) Addressing Architecture", RFC 3513, April 2003. (IPv6) Addressing Architecture", RFC 3513, April 2003.
Thomson, S., Narten, T. and T. Jinmei, "IPv6 Stateless Thomson, S., Narten, T. and T. Jinmei, "IPv6 Stateless
Address Autoconfiguration", draft-ietf-ipv6-rfc2462bis-06 Address Autoconfiguration", draft-ietf-ipv6-rfc2462bis-06
(work in progress), September 2004. (work in progress), September 2004.
[IPSEC] Kent, S. and R. Atkinson, "Security Architecture for the [IPSEC] Kent, S. and R. Atkinson, "Security Architecture for the
Internet Protocol", RFC 2401, November 1998. Internet Protocol", RFC 2401, November 1998.
[MD5] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, [MD5] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321,
April 1992. April 1992.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, March 1997. Requirement Levels", RFC 2119, March 1997.
[RFC2526] Johnson, D. and S. Deering, "Reserved IPv6 Subnet Anycast 12.2 Informative References
Addresses", RFC 2526, March 1999.
11.2 Informative References
[CGA] Aura, T., "Cryptographically Generated Addresses (CGA)", [CGA] Aura, T., "Cryptographically Generated Addresses (CGA)",
draft-ietf-send-cga-06 (work in progress), April 2004. draft-ietf-send-cga-06 (work in progress), April 2004.
[COOKIES] Kristol, D. and L. Montulli, "HTTP State Management [COOKIES] Kristol, D. and L. Montulli, "HTTP State Management
Mechanism", RFC 2965, October 2000. Mechanism", RFC 2965, October 2000.
[DDNS] Vixie, P., Thomson, S., Rekhter, Y. and J. Bound, "Dynamic [DDNS] Vixie, P., Thomson, S., Rekhter, Y. and J. Bound, "Dynamic
Updates in the Domain Name System (DNS UPDATE)", RFC 2136, Updates in the Domain Name System (DNS UPDATE)", RFC 2136,
[DNA] Choi, J. and G. Daley, "Detecting Network Attachment in [DNA] Choi, J. and G. Daley, "Detecting Network Attachment in
IPv6 Goals", draft-ietf-dna-goals-01 (work in progress), IPv6 Goals", draft-ietf-dna-goals-01 (work in progress),
September 2004. September 2004.
[DNSOP] Durand, A., Ihren, J. and P. Savola, "Operational [DNSOP] Durand, A., Ihren, J. and P. Savola, "Operational
Considerations and Issues with IPv6 DNS", Considerations and Issues with IPv6 DNS",
draft-ietf-dnsop-ipv6-dns-issues-09 (work in progress), draft-ietf-dnsop-ipv6-dns-issues-09 (work in progress),
August 2004. August 2004.
[ISATAP] Templin, F., Gleeson, T., Talwar, M. and D. Thaler,
"Intra-Site Automatic Tunnel Addressing Protocol
(ISATAP)", draft-ietf-ngtrans-isatap-22 (work in
[ONION] Reed, MGR., Syverson, PFS. and DMG. Goldschlag, "Proxies [ONION] Reed, MGR., Syverson, PFS. and DMG. Goldschlag, "Proxies
for Anonymous Routing", Proceedings of the 12th Annual for Anonymous Routing", Proceedings of the 12th Annual
Computer Security Applications Conference, San Diego, CA, Computer Security Applications Conference, San Diego, CA,
December 1996. December 1996.
[RANDOM] Eastlake, D., Crocker, S. and J. Schiller, "Randomness [RANDOM] Eastlake, D., Crocker, S. and J. Schiller, "Randomness
Recommendations for Security", RFC 1750, December 1994. Recommendations for Security", RFC 1750, December 1994.
[RFC2526] Johnson, D. and S. Deering, "Reserved IPv6 Subnet Anycast
[SEND] Arkko, J., Kempf, J., Sommerfeld, B., Zill, B. and P. [SEND] Arkko, J., Kempf, J., Sommerfeld, B., Zill, B. and P.
Nikander, "SEcure Neighbor Discovery (SEND)", Nikander, "SEcure Neighbor Discovery (SEND)",
draft-ietf-send-ndopt-06 (work in progress), July 2004. draft-ietf-send-ndopt-06 (work in progress), July 2004.
[ULA] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast [ULA] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast
Addresses", draft-ietf-ipv6-unique-local-addr-05 (work in Addresses", draft-ietf-ipv6-unique-local-addr-05 (work in
progress), June 2004. progress), June 2004.
Authors' Addresses Authors' Addresses


text:
Q: Get the current logged in user in the main template I have several templates in my play/scala project.
I want to get access to the currently logged in user in my main template.
(so that I can put a Welcome 'username' text on the top of the page on all templates not only the "logged in pages")
I could put a parameter in my main template:
@(user: User)

But I have several templates that reference to the main template that doesn't have access to the logged in user. Pages like about, contact etc.
The only templates that have access to the logged in user is the "logged in" pages. Like user profile, user settings. From there, I can pass the logged in User object to the main template. But from the other pages I can't.
If I make the parameter "user" in main template as an optional parameter it will be problems anyway since I'm going to use the logged in users data on all pages if a user is logged in.
How could I solve this?
Please tell me if you need more input.

A: If I understand you correctly, you need this:
Controller (Application.scala):
object Application extends Controller {

    def index = Action {
        val user = "smth" //assign your user name here
        val parameter = "another parameter"
        Ok(views.html.yourTemplate(user, parameter))
    }

}

Template (yourTemplate.scala.html):
@(user: String, parameter: String)

@main("Welcome") {

Hello, @user

}

A: You would need to use session to store id which you can use to identify the user, for example use user email as an id, from any action in controller retrieve user from db base on this id stored in session and pass 'username' as an Option to template, use option in case there is no logged in user, like this:
def about = Action {  implicit request =>
    val username:Option[String] = User.findUserName(request.session.get(userSession))
    Ok(views.html.Applications.about(username)
}

example of about template, just pass username to main template
@(username:Option[String])
@main(username) {
    // your content
}

example of main template display username if it is defined
@(username: Option[String])(content: Html)
@if(username.isDefined) {

 username.get

}


I had some success with the beta4 and beta5 versions on MacOS (I use as a server) but dismal experience with the Fedora Linux machine I use as the only client. On the other hand, final release seems to be working fine on Linux, but does NOT work on the Mac. Not much help following the earlier trouble-shooting tips. Mac is stuck "There was a problem connecting to the background service."
Cloud services are quite finnicky at the moment. Symless is working very hard to get these issues fixed, but in the meantime, would you like to downgrade to Synergy 1 or keep trying to get Synergy 2 to work? I've had quite good luck with getting it to connect to the background service, perhaps it'll take more times retrying.
Yes this version is extremely frustrating. The main issue I have is that the mouse buttons stop working on some PCs and also keyboard. Then they randomly seem to work. I also cannot get it working on Mac with OS 10.11.
I love this product but tonight this has become extremely challenging to use.


Estate, probate and trust disputes, disagreements, litigation and arbitration: Probate, trust and estate disputes include will contests and challenges, interpreting the will or trust, identifying and collecting estate and trust assets. pursuing claims against third-parties, resolving creditor claims, claims for breach of fiduciary duty and other issues.
Elder law-financial exploitation and/or abuse of vulnerable adults: Unfortunately, when the elderly members of our community need it most, they are sometimes abused, neglected or financially exploited. However, Arizona has strong laws to protect vulnerable and incapacitated adults and to remedy abuse and misconduct.
Trust disputes, litigation and arbitration: Our trust and estate attorneys are here to try to help you in trust disagreements. We provide comprehensive and valuable representation to deal with disputes over whether a trust is valid, the interpretation of a trust, the trustee's administration and many others.
Probate and trust administration: The administration of a trust or estate involves several activities. It is important for the personal representative and trustee to know their fiduciary duties, responsibilities and relevant deadlines.
Guardianship/Conservatorship: A guardian (to handle health and welfare decisions) or conservator (to handle assets and finances) may be appointed in Arizona for an adult who is incapacitated. When a dispute arises over the appointment of a guardian or conservator or the management of a guardianship or conservatorship, we may be able to help. We work to assure that a guardianship or conservatorship is imposed only when it is truly necessary and proper under Arizona law. We can assist in seeking the appointment of a guardian or conservator for an adult who cannot handle his or her own affairs, as well as the administration of a guardianship and/or conservatorship.
Our experienced Scottsdale, Arizona estate, trust and probate attorneys represent personal representatives (executors), trustees, beneficiaries and/or heirs in various matters. We are capable negotiators and experienced litigators, not afraid to go to court when it is in your best interest. We are committed to giving each client personalized attention and care.
Oftentimes, in the context of a trust, probate or estate matter, other issues arise. If so, we have helpful experience in other areas of the law, such as real estate disputes and personal injury and wrongful death.
If you have any property transfer, estate, trust, inheritance or probate dispute or other matter in Arizona, please do not hesitate to email us or give us a call at 480-607-7900.
If you just want to learn more, sign up for our newsletter to receive periodic updates.