text:
Classification of chronic kidney disease 10 years on: what have we learnt and what do we need to do now?
Classification of chronic kidney disease 10 years on: what have we learnt and what do we need to... 2018-03-13 00:00:00 Introduction Over the past 10 years, chronic kidney disease (CKD) has become known as a common long-term condition, that affects around 13% of adults worldwide (1). CKD is defined as abnormalities of kidney structure or function, present for more than 3 months, and classified into five stages (2) using a blood test for estimated glomerular filtration rate (eGFR) and also a urine test for albumin–creatine ratio (ACR). To accurately diagnose CKD and improve health outcomes, it is important that both blood and urine tests are performed. CKD is associated with an increased risk of cardiovascular disease and also an increased risk for progression to advanced kidney disease that requires renal replacement therapy (dialysis or transplantation) (3). A systematic review and meta-analysis of observational studies worldwide (1) that estimated CKD prevalence by stage in the general population suggested that 3.5% have stage 1; 3.9% have stage 2; 7.6% have stage 3; 0.4% have stage 4; and 0.1% have stage 5 CKD. However, accurate estimation of GFR has become a heavily debated topic. As estimated GFR can be calculated by either Modification of Diet in Renal Disease (MDRD) or the Chronic Kidney Disease Epidemiology Collaboration (CKD-EPI) equation. The CKD-EPI equation is more accurate MDRD equation, as it is less biased at a GFR of more than 60 ml/min/1.73 m2 and performs better in people aged 75 years and over (4). The use of the MDRD equation may therefore over-diagnose CKD, with some authors having reported the prevalence of stage 3 CKD to be significantly higher when the MDRD equation is used (5). Impact of eGFR reporting The benefits of the introduction of eGFR reporting have also been widely debated. In the UK, there has been a paradigm shift since the introduction of eGFR reporting in 2006, as prior to that, kidney disease was considered primarily to be a secondary care condition. Today CKD stages 3–5 are considered a primary care priority as part of cardiovascular disease control and management. In the first 2 years following introduction of eGFR reporting, more than 40% of the expected CKD stages 3–5 population were recorded (6). However, there has been controversy amongst primary care practitioners regarding whether people identified as having CKD, particularly older people, actually have a 'disease' (7). Current data from a recent national CKD audit (8), whereby audit software was automatically integrated with clinical systems to collect primary care data in England and Wales, estimated a CKD prevalence of ~5.5%. However, there was a large variation in those coded as having CKD (0–80%); only 86% of people with diabetes were tested for CKD (blood) and only 54% had an ACR annual test recorded. For people without diabetes, ACR testing rates were less than 15% (8). Despite apparent large variations in testing and coding, the introduction eGFR testing in some countries has had a significant impact on late referral rates. In the UK for example, Renal Registry data (9) are now showing late presentation rates (<90 days) falling from 23.9% in 2006 to 16.4% in 2015. Identification of progressive CKD Many laboratories have opted to report the numerical value for eGFR only if the eGFR is 60 ml/min/1.73 m2 or under, and not for eGFR 61–100 ml/min/1.73 m2, despite clinical practice guidelines that recommend for clinical laboratories to report GFR as a whole number if it is 90 ml/min/1.73 m2 or less (4). There is some evidence that for patients without CKD who are managed in primary care, GFR is checked infrequently and there has been the suggestion that patients at high risk of progressive CKD (for example older people and those of African-Caribbean heritage), should have closer and more accurate monitoring of renal function (10,11), which means a specific number for eGFR >60 would be helpful. For those with coded or diagnosed CKD, efforts are being made to identify those at risk of progressive disease. A system of graphical surveillance of kidney function over time (eGFR graphs) has been operating in one hospital in the UK since 2004 (12) and has since been extended to other UK sites (13). Graphs of eGFR over time are automatically generated for patients aged ≤65 years with eGFR <50 ml/min/1.73 m2 and patients >65 years with eGFR <40 ml/min/1.73 m2 using a dedicated software package (13). The graphs are then reviewed either in the laboratory or by a renal nurse. The eGFR graphs of those with progressive disease are then sent to family doctors with a request to review and potentially refer to secondary care. This intervention has been associated with a decline in the incident rate of renal replacement and the lowest percentage of patients referred late (most recently 4.9%) for dialysis in the UK (9). Renal learning health system A similar system is being implemented and evaluated in inner east London, UK (14). Here though, a wider renal learning health system (15) is being introduced with a number of different components: 'trigger tools' to alert family doctors to patients with a falling eGFR; CKD prevalence searches; shared primary care records with the secondary care team to enable e-referral (the patient does not need to have a face-to-face consultation); education of primary care physicians and nurses; plus patient education either 1–1 or group education with specialist nurses. A practice support package provides education and quality improvement tools for primary care practices, including educational resources to be used with patients. Patient involvement in mild-to-moderate CKD Knowledge of CKD among those with the disease appears to be low (16), with people reporting a lack of understanding of the importance of self-management (17). In the renal learning system described above (14), the focus has been on development of self-management materials that are patient-centred. The materials include short and long-booklets, a film translated into four local languages and a Conversation Map™ (18), a pictorial guide through which people are engaged in discussion, sharing beliefs and experiences of their condition. Conversation maps have been shown to be effective for diabetes self-management education and facilitating behaviour change in people with type 2 diabetes (19), although not yet proven for CKD. It is important to involve people in self-management of CKD. The first step is disclosure of the condition (20), followed by key messages that CKD is a long-term condition which requires monitoring, does not usually progress quickly and can be influenced by self-management strategies. Facilitation of self-management includes knowledge of the 'kidney number' (eGFR), plus ways in which patients can slow down progression such as smoking cessation, weight loss and exercise for blood pressure control, avoidance of harmful nephrotoxic mediations and good blood glucose control for those with diabetes. The question of whether self-management is beneficial has been debated. One recent systematic review (21) focussed on the critical appraisal of self-management interventions for adults with CKD stages 1–4, and assessed whether these interventions improved adherence, knowledge, CKD progression, health literacy, self-efficacy, health-related quality of life, and/or hospitalizations. The authors concluded that although the effectiveness of self-management programmes in CKD is not proven (due to lack of well-tested interventions, and clear and consistent reporting of results), it is desirable that individuals with CKD are supported to effectively self-manage day-to-day aspects of their health. Experience in patient education sessions (21) has confirmed that not all patients are aware of their diagnosis, despite having been referred to an e-clinic. The reason for non-disclosure is not clear, but it is possible that family doctors and nurses may be reluctant to inform patients of the 'disease' diagnosis because of fears of causing anxiety. The educational sessions offered have identified that many people do want more information about CKD, with good attendance at one-to-one sessions and group education sessions (21). Conclusion After the introduction of eGFR reporting over the past 10 years, we have begun to understand that CKD is common, although for the majority it is a condition that does not progress into advanced kidney disease that requires dialysis or transplantation. We have learnt that the condition is best managed in primary care, alongside support, and guidance from secondary care teams. Looking forward to the next 10 years, there are specific clinical practice and research priorities. Clinical coding of people who have CKD needs to be improved, with less variation in practice. Accurate classification of CKD using ACR as well as eGFR is critical. Identification of people who have progressive kidney disease is a top priority, alongside timely referral. Renal teams require at least 1 year to prepare people for dialysis and it is well documented that poor preparation can lead to worse outcomes on dialysis. One research priority is to find the best way to alert family doctors to patients with rapidly deceasing kidney function, and to see if these alerts have impact on late referral rates to secondary care in the longer term. The most important research priority however, from a patient perspective, is the question of whether self-management of CKD (by structured education) can increase patients' skills and confidence in managing their condition and improve clinical outcomes in the longer term. Declaration Funding: none. Ethical approval: none. Conflict of interest: none. References 1. Hill NR , Fatoba ST , Oke JL et al. Global prevalence of chronic kidney disease-a systematic review and meta-analysis . Plos One 2016 ; 11 : e0158765 . Google Scholar CrossRef Search ADS PubMed 2. KDIGO . Clinical Practice Guideline for the Evaluation and Management of Chronic Kidney Disease Kidney International Supplements . 2013 . http://kdigo.org/clinical_practice_guidelines/pdf/CKD/KDIGO_ 2012_CKD_GL.pdf (accessed 10 February 2018). 3. Chronic Kidney Disease Prognosis Consortium ; Matsushita K , van der Velde M et al. Association of estimated glomerular filtration rate and albuminuria with all-cause and cardiovascular mortality in general population cohorts: a collaborative meta-analysis . Lancet 2010 ; 375 : 2073 – 81 . Google Scholar CrossRef Search ADS PubMed 4. National Institute for Health and Care Excellence (NICE) . Chronic kidney disease: early identification and management of chronic kidney disease in adults in primary and secondary care . 2014 . https://www.nice.org.uk/Guidance/CG73 (accessed 10 February 2018). 5. Trocchi P , Girndt M , Scheidt-Nave C , Markau S , Stang A . Impact of the estimation equation for GFR on population-based prevalence estimates of kidney dysfunction . BMC Nephrol 2017 ; 8 : 1 – 10 . 6. Stevens P , O'Donoghue D , Stevens P , O'Donoghue D . The UK model for system redesign and chronic kidney disease services . Semin Nephrol 2009 ; 29 : 475 – 82 . Google Scholar CrossRef Search ADS PubMed 7. Glassock RJ , Winearls C . Diagnosing chronic kidney disease . Curr Opin Nephrol Hypertens 2010 ; 19 : 123 – 28 . Google Scholar CrossRef Search ADS PubMed 8. Nitsch D , Caplin B , Hull S , Wheeler DC The National CKD Audit and Quality . Improvement Programme in Primary Care . First National CKD Audit Report 2017 . 9. Gilg J. Methven S. Casula A. Castledine C. UK Renal Registry 2016 Annual Report Nephron . 2017 ; 137 ( suppl 1 ): 11–44. 10. Koraishy FM , Hooks-Anderson D , Salas J et al. Int Urol Nephrol 11. Tonelli M , Klarenbach SW , Lloyd AM et al. Higher estimated glomerular filtration rates may be associated with increased risk of adverse outcomes, especially with concomitant proteinuria . Kidney Int 2011 ; 80 : 1306 – 14 . Google Scholar CrossRef Search ADS PubMed 12. Rayner HC , Baharani J , Dasgupta I et al. Does community-wide chronic kidney disease management improve patient outcomes ? Nephrol Dial Transplant 2014 ; 29 : 644 – 9 . Google Scholar CrossRef Search ADS PubMed 13. Gallagher H , Methven S , Casula A et al. A programme to spread eGFR graph surveillance for the early identification, support and treatment of people with progressive chronic kidney disease (ASSIST-CKD): protocol for the stepped wedge implementation and evaluation of an intervention to reduce late presentation for renal replacement therapy . BMC Nephrol 2017 ; 18 : 131 . Google Scholar CrossRef Search ADS PubMed 14. Tzortziou Brown V , Patel I , Hull S et al. New ways of working; delivering better care for people with long-term conditions . London J Prim Care 2017 ; 9 : 60 – 8 . Google Scholar CrossRef Search ADS 15. Foley TJ , Vale L . What role for learning health systems in quality improvement within healthcare providers ? Learn Health Sys 2017 ; 1 : e10025 . Google Scholar CrossRef Search ADS 16. Finkelstein FO , Story K , Firanek C et al. Perceived knowledge among patients cared for by nephrologists about chronic kidney disease and end-stage renal disease therapies . Kidney Int 2008 ; 74 : 1178 – 84 . Google Scholar CrossRef Search ADS PubMed 17. Thomas N , Bryar R . An evaluation of a self-management package for people with diabetes at risk of chronic kidney disease . Primary Health Care Res Dev 2014 ; 14 : 270 – 80 . Google Scholar CrossRef Search ADS 18. Srulovici E , Key C , Rotem M et al. Diabetes conversation Map™ and health outcomes: a systematic literature review . Int J Nurs Stud 2017 ; 70 : 99 – 109 . Google Scholar CrossRef Search ADS PubMed 19. Ghafoor E, Riaz M, Eichorst B, Fawwad A, Basit A . Evaluation of diabetes conversation Map™ education tools for diabetes self-management education . Diabetes Spectr 2015 ; 28 : 230 – 35 . Google Scholar CrossRef Search ADS PubMed 20. Abdi Z , Gallagher H , O'Donoghue D . Telling the truth: why disclosure matters in chronic kidney disease . Br J Gen Pract 2012 ; 62 : 172 – 173 . Google Scholar CrossRef Search ADS PubMed 21. Bonner A , Havas K , Douglas C et al. Self-management programmes in stages 1–4 chronic kidney disease: a literature review . J Ren Care 2014 ; 40 : 194 – 204 . Google Scholar CrossRef Search ADS PubMed 22. Thomas N , Rainey H . Innovation in East London – the development and early evaluation of an education programme for people with mild-to-moderate chronic kidney disease . J Kidney Care 3: 2, 2–7 (in press). © The Author(s) 2018. Published by Oxford University Press. All rights reserved. For permissions, please e-mail: journals.permissions@oup.com. This article is published and distributed under the terms of the Oxford University Press, Standard Journals Publication Model (https://academic.oup.com/journals/pages/open_access/funder_policies/chorus/standard_publication_model) http://www.deepdyve.com/assets/images/DeepDyve-Logo-lg.png Family Practice Oxford University Press http://www.deepdyve.com/lp/oxford-university-press/classification-of-chronic-kidney-disease-10-years-on-what-have-we-BzSYoVn90c
, Volume Advance Article (4) – Mar 13, 2018
/lp/ou_press/classification-of-chronic-kidney-disease-10-years-on-what-have-we-BzSYoVn90c
Family Practice /
Volume Advance Article Issue 4
© The Author(s) 2018. Published by Oxford University Press. All rights reserved. For permissions, please e-mail: journals.permissions@oup.com.
10.1093/fampra/cmy015
Introduction Over the past 10 years, chronic kidney disease (CKD) has become known as a common long-term condition, that affects around 13% of adults worldwide (1). CKD is defined as abnormalities of kidney structure or function, present for more than 3 months, and classified into five stages (2) using a blood test for estimated glomerular filtration rate (eGFR) and also a urine test for albumin–creatine ratio (ACR). To accurately diagnose CKD and improve health outcomes, it is important that both blood and urine tests are performed. CKD is associated with an increased risk of cardiovascular disease and also an increased risk for progression to advanced kidney disease that requires renal replacement therapy (dialysis or transplantation) (3). A systematic review and meta-analysis of observational studies worldwide (1) that estimated CKD prevalence by stage in the general population suggested that 3.5% have stage 1; 3.9% have stage 2; 7.6% have stage 3; 0.4% have stage 4; and 0.1% have stage 5 CKD. However, accurate estimation of GFR has become a heavily debated topic. As estimated GFR can be calculated by either Modification of Diet in Renal Disease (MDRD) or the Chronic Kidney Disease Epidemiology Collaboration (CKD-EPI) equation. The CKD-EPI equation is more accurate MDRD equation, as it is less biased at a GFR of more than 60 ml/min/1.73 m2 and performs better in people aged 75 years and over (4). The use of the MDRD equation may therefore over-diagnose CKD, with some authors having reported the prevalence of stage 3 CKD to be significantly higher when the MDRD equation is used (5). Impact of eGFR reporting The benefits of the introduction of eGFR reporting have also been widely debated. In the UK, there has been a paradigm shift since the introduction of eGFR reporting in 2006, as prior to that, kidney disease was considered primarily to be a secondary care condition. Today CKD stages 3–5 are considered a primary care priority as part of cardiovascular disease control and management. In the first 2 years following introduction of eGFR reporting, more than 40% of the expected CKD stages 3–5 population were recorded (6). However, there has been controversy amongst primary care practitioners regarding whether people identified as having CKD, particularly older people, actually have a 'disease' (7). Current data from a recent national CKD audit (8), whereby audit software was automatically integrated with clinical systems to collect primary care data in England and Wales, estimated a CKD prevalence of ~5.5%. However, there was a large variation in those coded as having CKD (0–80%); only 86% of people with diabetes were tested for CKD (blood) and only 54% had an ACR annual test recorded. For people without diabetes, ACR testing rates were less than 15% (8). Despite apparent large variations in testing and coding, the introduction eGFR testing in some countries has had a significant impact on late referral rates. In the UK for example, Renal Registry data (9) are now showing late presentation rates (<90 days) falling from 23.9% in 2006 to 16.4% in 2015. Identification of progressive CKD Many laboratories have opted to report the numerical value for eGFR only if the eGFR is 60 ml/min/1.73 m2 or under, and not for eGFR 61–100 ml/min/1.73 m2, despite clinical practice guidelines that recommend for clinical laboratories to report GFR as a whole number if it is 90 ml/min/1.73 m2 or less (4). There is some evidence that for patients without CKD who are managed in primary care, GFR is checked infrequently and there has been the suggestion that patients at high risk of progressive CKD (for example older people and those of African-Caribbean heritage), should have closer and more accurate monitoring of renal function (10,11), which means a specific number for eGFR >60 would be helpful. For those with coded or diagnosed CKD, efforts are being made to identify those at risk of progressive disease. A system of graphical surveillance of kidney function over time (eGFR graphs) has been operating in one hospital in the UK since 2004 (12) and has since been extended to other UK sites (13). Graphs of eGFR over time are automatically generated for patients aged ≤65 years with eGFR <50 ml/min/1.73 m2 and patients >65 years with eGFR <40 ml/min/1.73 m2 using a dedicated software package (13). The graphs are then reviewed either in the laboratory or by a renal nurse. The eGFR graphs of those with progressive disease are then sent to family doctors with a request to review and potentially refer to secondary care. This intervention has been associated with a decline in the incident rate of renal replacement and the lowest percentage of patients referred late (most recently 4.9%) for dialysis in the UK (9). Renal learning health system A similar system is being implemented and evaluated in inner east London, UK (14). Here though, a wider renal learning health system (15) is being introduced with a number of different components: 'trigger tools' to alert family doctors to patients with a falling eGFR; CKD prevalence searches; shared primary care records with the secondary care team to enable e-referral (the patient does not need to have a face-to-face consultation); education of primary care physicians and nurses; plus patient education either 1–1 or group education with specialist nurses. A practice support package provides education and quality improvement tools for primary care practices, including educational resources to be used with patients. Patient involvement in mild-to-moderate CKD Knowledge of CKD among those with the disease appears to be low (16), with people reporting a lack of understanding of the importance of self-management (17). In the renal learning system described above (14), the focus has been on development of self-management materials that are patient-centred. The materials include short and long-booklets, a film translated into four local languages and a Conversation Map™ (18), a pictorial guide through which people are engaged in discussion, sharing beliefs and experiences of their condition. Conversation maps have been shown to be effective for diabetes self-management education and facilitating behaviour change in people with type 2 diabetes (19), although not yet proven for CKD. It is important to involve people in self-management of CKD. The first step is disclosure of the condition (20), followed by key messages that CKD is a long-term condition which requires monitoring, does not usually progress quickly and can be influenced by self-management strategies. Facilitation of self-management includes knowledge of the 'kidney number' (eGFR), plus ways in which patients can slow down progression such as smoking cessation, weight loss and exercise for blood pressure control, avoidance of harmful nephrotoxic mediations and good blood glucose control for those with diabetes. The question of whether self-management is beneficial has been debated. One recent systematic review (21) focussed on the critical appraisal of self-management interventions for adults with CKD stages 1–4, and assessed whether these interventions improved adherence, knowledge, CKD progression, health literacy, self-efficacy, health-related quality of life, and/or hospitalizations. The authors concluded that although the effectiveness of self-management programmes in CKD is not proven (due to lack of well-tested interventions, and clear and consistent reporting of results), it is desirable that individuals with CKD are supported to effectively self-manage day-to-day aspects of their health. Experience in patient education sessions (21) has confirmed that not all patients are aware of their diagnosis, despite having been referred to an e-clinic. The reason for non-disclosure is not clear, but it is possible that family doctors and nurses may be reluctant to inform patients of the 'disease' diagnosis because of fears of causing anxiety. The educational sessions offered have identified that many people do want more information about CKD, with good attendance at one-to-one sessions and group education sessions (21). Conclusion After the introduction of eGFR reporting over the past 10 years, we have begun to understand that CKD is common, although for the majority it is a condition that does not progress into advanced kidney disease that requires dialysis or transplantation. We have learnt that the condition is best managed in primary care, alongside support, and guidance from secondary care teams. Looking forward to the next 10 years, there are specific clinical practice and research priorities. Clinical coding of people who have CKD needs to be improved, with less variation in practice. Accurate classification of CKD using ACR as well as eGFR is critical. Identification of people who have progressive kidney disease is a top priority, alongside timely referral. Renal teams require at least 1 year to prepare people for dialysis and it is well documented that poor preparation can lead to worse outcomes on dialysis. One research priority is to find the best way to alert family doctors to patients with rapidly deceasing kidney function, and to see if these alerts have impact on late referral rates to secondary care in the longer term. The most important research priority however, from a patient perspective, is the question of whether self-management of CKD (by structured education) can increase patients' skills and confidence in managing their condition and improve clinical outcomes in the longer term. Declaration Funding: none. Ethical approval: none. Conflict of interest: none. References 1. Hill NR , Fatoba ST , Oke JL et al. Global prevalence of chronic kidney disease-a systematic review and meta-analysis . Plos One 2016 ; 11 : e0158765 . Google Scholar CrossRef Search ADS PubMed 2. KDIGO . Clinical Practice Guideline for the Evaluation and Management of Chronic Kidney Disease Kidney International Supplements . 2013 . http://kdigo.org/clinical_practice_guidelines/pdf/CKD/KDIGO_ 2012_CKD_GL.pdf (accessed 10 February 2018). 3. Chronic Kidney Disease Prognosis Consortium ; Matsushita K , van der Velde M et al. Association of estimated glomerular filtration rate and albuminuria with all-cause and cardiovascular mortality in general population cohorts: a collaborative meta-analysis . Lancet 2010 ; 375 : 2073 – 81 . Google Scholar CrossRef Search ADS PubMed 4. National Institute for Health and Care Excellence (NICE) . Chronic kidney disease: early identification and management of chronic kidney disease in adults in primary and secondary care . 2014 . https://www.nice.org.uk/Guidance/CG73 (accessed 10 February 2018). 5. Trocchi P , Girndt M , Scheidt-Nave C , Markau S , Stang A . Impact of the estimation equation for GFR on population-based prevalence estimates of kidney dysfunction . BMC Nephrol 2017 ; 8 : 1 – 10 . 6. Stevens P , O'Donoghue D , Stevens P , O'Donoghue D . The UK model for system redesign and chronic kidney disease services . Semin Nephrol 2009 ; 29 : 475 – 82 . Google Scholar CrossRef Search ADS PubMed 7. Glassock RJ , Winearls C . Diagnosing chronic kidney disease . Curr Opin Nephrol Hypertens 2010 ; 19 : 123 – 28 . Google Scholar CrossRef Search ADS PubMed 8. Nitsch D , Caplin B , Hull S , Wheeler DC The National CKD Audit and Quality . Improvement Programme in Primary Care . First National CKD Audit Report 2017 . 9. Gilg J. Methven S. Casula A. Castledine C. UK Renal Registry 2016 Annual Report Nephron . 2017 ; 137 ( suppl 1 ): 11–44. 10. Koraishy FM , Hooks-Anderson D , Salas J et al. Int Urol Nephrol 11. Tonelli M , Klarenbach SW , Lloyd AM et al. Higher estimated glomerular filtration rates may be associated with increased risk of adverse outcomes, especially with concomitant proteinuria . Kidney Int 2011 ; 80 : 1306 – 14 . Google Scholar CrossRef Search ADS PubMed 12. Rayner HC , Baharani J , Dasgupta I et al. Does community-wide chronic kidney disease management improve patient outcomes ? Nephrol Dial Transplant 2014 ; 29 : 644 – 9 . Google Scholar CrossRef Search ADS PubMed 13. Gallagher H , Methven S , Casula A et al. A programme to spread eGFR graph surveillance for the early identification, support and treatment of people with progressive chronic kidney disease (ASSIST-CKD): protocol for the stepped wedge implementation and evaluation of an intervention to reduce late presentation for renal replacement therapy . BMC Nephrol 2017 ; 18 : 131 . Google Scholar CrossRef Search ADS PubMed 14. Tzortziou Brown V , Patel I , Hull S et al. New ways of working; delivering better care for people with long-term conditions . London J Prim Care 2017 ; 9 : 60 – 8 . Google Scholar CrossRef Search ADS 15. Foley TJ , Vale L . What role for learning health systems in quality improvement within healthcare providers ? Learn Health Sys 2017 ; 1 : e10025 . Google Scholar CrossRef Search ADS 16. Finkelstein FO , Story K , Firanek C et al. Perceived knowledge among patients cared for by nephrologists about chronic kidney disease and end-stage renal disease therapies . Kidney Int 2008 ; 74 : 1178 – 84 . Google Scholar CrossRef Search ADS PubMed 17. Thomas N , Bryar R . An evaluation of a self-management package for people with diabetes at risk of chronic kidney disease . Primary Health Care Res Dev 2014 ; 14 : 270 – 80 . Google Scholar CrossRef Search ADS 18. Srulovici E , Key C , Rotem M et al. Diabetes conversation Map™ and health outcomes: a systematic literature review . Int J Nurs Stud 2017 ; 70 : 99 – 109 . Google Scholar CrossRef Search ADS PubMed 19. Ghafoor E, Riaz M, Eichorst B, Fawwad A, Basit A . Evaluation of diabetes conversation Map™ education tools for diabetes self-management education . Diabetes Spectr 2015 ; 28 : 230 – 35 . Google Scholar CrossRef Search ADS PubMed 20. Abdi Z , Gallagher H , O'Donoghue D . Telling the truth: why disclosure matters in chronic kidney disease . Br J Gen Pract 2012 ; 62 : 172 – 173 . Google Scholar CrossRef Search ADS PubMed 21. Bonner A , Havas K , Douglas C et al. Self-management programmes in stages 1–4 chronic kidney disease: a literature review . J Ren Care 2014 ; 40 : 194 – 204 . Google Scholar CrossRef Search ADS PubMed 22. Thomas N , Rainey H . Innovation in East London – the development and early evaluation of an education programme for people with mild-to-moderate chronic kidney disease . J Kidney Care 3: 2, 2–7 (in press). © The Author(s) 2018. Published by Oxford University Press. All rights reserved. For permissions, please e-mail: journals.permissions@oup.com. This article is published and distributed under the terms of the Oxford University Press, Standard Journals Publication Model (https://academic.oup.com/journals/pages/open_access/funder_policies/chorus/standard_publication_model)
Family Practice – Oxford University Press
There are no references for this article.
(2018). Classification of chronic kidney disease 10 years on: what have we learnt and what do we need to do now?. Family Practice, AdvanceArticle(4), 1-351.
"Classification of chronic kidney disease 10 years on: what have we learnt and what do we need to do now?." Family Practice Advance Article.4 (2018): 1-351.


All sightseeing tours and visits, entrance fees.
Arrival in Sofia. Transfer to the hotel for accommodation and time at leisure till the end of the day. Overnight in Sofia.
After breakfast, proceed for Guided City Tour of Sofia & hear about the history of fascinating city. Free time in the city center. Transfer to Plovdiv. On the way to Plovdiv – optional visit of Villa Yustina Winery Accommodation at hotel. Overnight in Plovdiv.
Breakfast. Sightseeing tour of Plovdiv - European capital of culture 2019. Walk in the Old Town, including the Roman Ancient Theatre, which was built in the 1st century AD and is nowadays considered to be the largest surviving Roman construction in Bulgaria, visit to the Ethnographic Museum, Roman Stadium, St. Constantine and Helena Church, etc. In the afternoon a trip to the famous Bachkovo Monastery, located only 20 minutes' drive from Plovdiv. Drive back to Plovdiv. Overnight in Plovdiv.
Breakfast. Check-out the hotel and departure for the beautiful town of Veliko Tarnovo. On the way stop for a visit to the Valley of Roses and the town of Kazanlak famous for the Thracian tomb included in the list of UNESCO. Pass the mountainous Shipka Pass and short break at the ethnographic open-air museum Etara. Arrival in Veliko Tarnovo in the evening. Overnight in Veliko Tarnovo.
Breakfast. Sightseeing tour of Veliko Tarnovo with a visit of the mediaeval Tsarevets Fortress located on the picturesque hill, Samovodska street market, etc. Drive o the located nearby village of Arbanassi, declared for an architectural reserve. Drive to the village of Arbanassi, famous for its well preserved 17th and 18th century churches and the typical Revival architecture of its houses.
In the afternoon departure for Sofia. Overnight in Sofia.


text:
Q: Tkinter store choices- values inside variables I am trying to play and learn with tkinter :
import tkinter as tk
from tkinter import *
from tkcalendar import Calendar, DateEntry

gui = Tk(className='STUDENTS')
gui.geometry("500x300")

def openNewWindow2():
    newWindow1 = Toplevel(gui)
    newWindow1.title("STUDENTS")
    newWindow1.geometry("500x300")
    Label(newWindow1, text='Select How many students?').pack()
    options2 = [
        "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"
    ]
    clicked = StringVar()
    clicked.set("1")
    drop = OptionMenu(newWindow1, clicked, *options2)
    drop.pack()
    btn5 = Button(newWindow1,
                  text="GENERATE!!!",
                  command"#some function to use the values of dropdown and maxcal#")
    btn5.pack(pady=20)
    maxcal = DateEntry(newWindow1, width=12, background='darkblue',
                foreground='white', borderwidth=2)
    maxcal.pack(padx=10, pady=10)

label = Label(gui, text='test1~')
label.pack(pady=10)
btn2 = Button(gui,
              text="generator",
              command=openNewWindow2)

btn2.pack(pady=20)
gui.mainloop()

This will create a window with a dropdown menu. I want to hit the btn5 and store  the values of the dropdown menu and the calendar in another window after.
Is this possible?

A: This is pretty simple, something like this should work:
def openNewWindow2():
    newWindow1 = Toplevel(gui)
    def func():
        print('hello world'*int(clicked.get()))

    ....
    btn5 = Button(newWindow1,text="GENERATE!!!",command=func)

It is something special with python that I don't think any other programing languages offer. You can multiply a string(I guess all iterables) with an integer to repeat it that many times.

redpajama_set_name: RedPajamaStackExchange


I would like to meet intresting people... I like black magic women! I love the life inside of me and you and let's try to pick up what's good from our life!
i wanna to meet a woman optimistic: who likes living, love music, children, reading, and "cultural life", but over all she must be very fair!
ladropoeta hasn't asked any friends to write a recommendation yet.


text:
Goossens: "We're Making A Lot of Progress as We Go Along"
Marc Goossens on Watkins Glen, Le Mans and 2017 DPi…
Vincent Wouters
Photo: IMSA
Following a competitive but winless first half of the season, Marc Goossens feels like Visit Florida Racing is now fully getting up to cruising speed, with the team and drivers settling in a groove.
With a second place finish at Mazda Raceway Laguna Seca and third in the Rolex 24 at Daytona as standout results, Goossens currently sits fourth in the Prototype drivers' championship heading into this weekend's Sahlen's Six Hours of The Glen.
Despite qualifying second for the Belle Isle race in Detroit, the most recent weekend turned out to be one of the more difficult ones.
"It was quite obvious we were missing some speed on the straights, mainly in acceleration," Goossens told Sportscar365 about the Detroit race.
"The only way for me to keep up was by braking very late, which resulted in me making a mistake and clipping the tire wall.
"Obviously it looked a bit crazy when I went into the next fast corner with no rear wing, but I didn't realize it at that time.
"It's a racing situation, you're driving on the limit, pushing to stay on the tail of the leaders when you don't have the ideal car underneath you."
However, looking ahead there are several signs that bodes well this weekend at The Glen, the third round of the Tequila Patrón North American Endurance Cup and the start of the second half of the IMSA WeatherTech SportsCar Championship season.
Visit Florida Racing has won the race the past two years with Richard Westbrook and Michael Valiante and is looking to make it three in a row with Goossens and co-driver Ryan Dalziel.
At the same time Goossens was victorious in the GT Daytona category last year, driving a Riley Motorsports Dodge Viper GT3-R.
"I'm happy to be here," Goossens said. "We tested here like most of the teams, but we can't really rely on the data of last year because of the rain, and in 2014 we were on different restrictors and tires.
"It's good to know we have the right records here and that I won the race last year, but that's no guarantee for this year."
The testing proved to be more crucial than usual as teams used it to get up to grips with the repaved track, which should result in a considerable drop in lap times.
"There used to be a lot of concrete and the grip levels changed all the time," Goossens said.
"You could make more of a difference as a driver with the right experience. Now it has become easier as the level of grip is more or less consistent."
As a whole, Goossens feels the Troy Flis-led Visit Florida squad and Corvette DP package is now close to reaching it's full potential, as both the drivers amongst each other and the relationship with the team has been optimized.
"It's basically that perfect match that we were able to put together," he said. "We're making a lot of progress as we get along.
"In the beginning communication was a little bit tougher, because we were all used to our own ways.
"Ryan and I go back a long time. We know each other and have a very similar driving style.
"If I start working towards a certain setup that suits me, I know it will work for him too.
"I could perfectly go away and let him do three days of testing and I know that he's looking for the same things in the car that I am and the other way around."
Following the Detroit event, team owner Flis traveled to Le Mans to help decide the team's 2017 plans, while at the same time Dalziel raced for Tequila Patron ESM and Goossens for Murphy Prototypes in the LMP2 class.
"It was good for Troy Flis and his organization to be there and study how whole that whole Le Mans deal works and getting a behind the scenes look into two teams that are running in the P2 class," Goossens said.
"We were surprised by the lack of performance of the Oreca 03R at Murphy Prototypes.
"It was bigger than expected, but on the other hand we were looking at a good strong reliable car and we didn't have that either.
"It was nothing the team could really do something about because it was all electrical. We were unfortunate that we had a similar situation happen to us twice in the same race."
Looking ahead to 2017, the clock is ticking to make a final decision on the chassis and engine front, and as Goossens pointed out that the pressure is rising to get everything ready in time for Daytona.
"No matter what package, it needs to be developed and tested, so we need to make a decision soon if we want to get the car ready in time," he said.
"If we decided right now I don't think the cars will be delivered before the second part of October or early November. Daytona is going to be tight."
Related TopicsfeaturedMarc GoossensbreakingIWSC
Vincent Wouters (@VinceWouters) is a Belgium-based sports car racing reporter, providing coverage primarily of the Blancpain GT Series.
Ford GT Program Extended Through 2019
Derani Quickest in Practice 3 at Watkins Glen

redpajama_set_name: RedPajamaCommonCrawl


Tonight's fundraiser event for survivors of Typhoon Haiyan in the Philippines was a success, I'd say! We had about 15 people in the gym, and once everyone got settled in we started a great warm-up together, and of course, finished it together! Everyone did an awesome job, putting in effort and pushing through the tough exercises. Before the warm-up got started I explained that the it would be quite difficult.
The idea behind the difficulty (well, besides the fact that we always like to make it difficult...) was to go through a struggle together, not just with the people sharing the room with us at the time, but to share some of the struggle these survivors of the typhoon are going through over there on the other side of the planet as well. In our struggle, we were linked with them, connected through the spirit of this discipline.
We raised $223 tonight, that brings our numbers to $348 total so far with our fundraising efforts!! I was very pleased with the donations made tonight, I felt that people were really giving what they could and weren't just there for a $5 workout or open gym. It means a lot to me, and to this family the money will be sent to. I thank you all from the bottom of my heart for sharing this experience with us tonight, and I hope to see you all again soon. More photos and a video to come later!


Demaryius Thomas' stint in Houston lasted just seven games.
NFL Network's James Palmer reported Tuesday that the Texans are expected to release the receiver today, per a source informed of the situation.
Houston shipped a fourth-round pick in the 2019 draft to the Denver Broncos ahead of the October trade deadline for Thomas. The teams also swapped seventh-round picks.
At the time, the Texans were banged up at the receiver position and hoped Thomas would bring stability opposite all-world pigskin-plucker DeAndre Hopkins. The 31-year-old Thomas was relatively quiet in seven games, compiling 23 catches for 275 yards and two touchdowns in seven games.
Thomas blew out his left Achilles tendon in Week 16 after catching a receiver screen.
Palmer notes that it remains too early for a timetable on the receiver's recovery, but Thomas has bounced back quickly in the past. The wideout tore his right Achilles after his rookie season and returned just six months later.
Now 31 years old, the recovery might be more grueling.
Thomas was due $14 million in the final year of his contract, a threshold too high for Houston to pay for an aging receiver coming off a lower-leg injury.
Cutting Thomas saves the Texans the entire $14 million on the salary cap in 2019. The non-guaranteed contract was one reason the Broncos were willing to shop Thomas during the trade deadline -- they too would have likely cut him had a trade not gone through.
For Houston, a fourth-round pick for seven games and 39.2 yards per tilt seems like a lot. At the time of the swap, however, the Texans needed aid for their division title push, so it's hard to hammer the logic.
It wouldn't be out of the question that Houston could try to re-sign Thomas on a cheaper deal later. First, however, the receiver must get healthy.
The Houston Texans will release veteran wide receiver Demaryius Thomas on Tuesday, a source told ESPN, confirming multiple reports.
The impending roster move was first reported by NFL Network.
Thomas, 31, suffered a season-ending torn Achilles in December. He is due a non-guaranteed $14 million salary in 2019.
Thomas said last month that his return to Houston was "up in the air" because of the presence of young wide receivers Keke Coutee and Will Fuller V.
He said he was not thinking about retiring.
"My main priority right now is getting back healthy. I can still play, man. I'm not thinking about retirement. I just don't know where it will be," he told reporters, according to the Houston Chronicle.
Thomas was acquired by the Texans from the Broncos before last year's trading deadline. The four-time Pro Bowl selection caught 23 passes for 275 yards and two touchdowns in seven games after the trade.
So what exactly are the rules about cutting an injured player?
When does that rule kick in?
I imagine someone will sign Thomas once he's healthy.
Wow, nobody saw that coming. I love DT but you cannot ignore that we dodged a bullet there and cane out ahead.
I wish him well, he'll land somewhere.
I think DT needs to start looking at doing what Fitzgerald did. He has lost his speed size mix which made him unique. HE needs to start moving inside.
I'll still root for the young man.. unless he ends up in Oaklan.. errr... San Francisco...?
I think in the offseason they can cut injured players, as long as there are no injury guarantees in the contract. Because they released him with a "failed physical" designation, I'm guessing that he needed to pass a physical as part of the contract and when he didn't it gave them an easy out.
During the season I believe it's against the rules to release a player from injury that was suffered while taking part in team activities. Unless the team and player come to an injury settlement. IE: We placed you on IR to find your replacement, but we know you'll be healthy in 3 weeks, so here's 3 weeks worth of pay.
Fitzgerald has the hands and mental toughness to be a success there. Does DT?
He absolutely does. DT just needs to decide if he still loves football, or does he want to move on. It's ok if he wants to move on. There's more to life than football.
I will root for DT. But if he still wants to play, I am guessing he will be playing for a whole lot less next year.
This is well said. He suffered a lot of injuries over the years (most are just minor nagging ones, but they add up) at what point is it time to pack it in and move on? He's made a nice living, he's won a Super Bowl ring and he's going to go down as one of the best Broncos receivers in history.
As much as I dislike the Patriots and all of their players, I respect Gronkowski a lot for the fact that he's probably going to retire at a young age because he's won and he's tired of the injuries taking their toll. Go live a happy retirement at a very young age.
Apparently...he was just in a car accident. Hope everyone is OK.
I was just reading about this. Kind of odd for a single car rollover.
Darn. Hope everyone is OK. Kind of bummed for DT all the way around. I hate that his career seems to have ended this way.
Have to admit I've always had a soft spot for him even when he looked like he lost a step or it looked like he stopped trying. (That's how I saw it anyway). He frustrated me so much at times).
But there were times when he showed up big for us as well.


text:
Healthcare Futurist, National Advisor, and President of Health Futures, Inc.
TRAVELS FROM: Virginia
Jeff Goldsmith is President of Health Futures, Inc and National Advisor, Navigant Healthcare. He is also Associate Professor of Public Health Sciences at the University of Virginia. For eleven years ending in 1990, Jeff Goldsmith was a lecturer in the Graduate School of Business at the University of Chicago, on health services management and policy. He has also lectured on these topics at the Wharton School of Finance, Johns Hopkins, Washington University and the University of California at Berkeley. Jeff Goldsmith's interests include: biotechnology, health policy, international health systems, and the future of health services. Jeff was the recipient of the Corning Award for excellence in health planning from the American Hospital Association's Society for Healthcare Planning, and has received the Dean Conley Award for best healthcare article three times from the American College of Healthcare Executives. He is also Director of Essent Healthcare, a hospital management firm.
Jeff Goldsmith is President of Health Futures, Inc and National Advisor, Navigant Healthcare. He is also Associate Professor of Public Health Sciences at the University of Virginia. For eleven years ending in 1990, Jeff Goldsmith was a lecturer in the Graduate School of Business at the University of Chicago, on health services management and policy. He has also lectured on these topics at the Wharton School of Finance, Johns Hopkins, Washington University and the University of California at Berkeley. Jeff Goldsmith's interests include: biotechnology, health policy, international health systems, and the future of health services.
From 1982 to 1994, Jeff Goldsmith served as National Advisor for Healthcare for the firm Ernst and Young, and provided strategy consultation to a wide variety of healthcare systems, health plans, supply and technology firms. Prior to 1982, he was Director of Planning and Government Affairs at the University of Chicago Medical Center and Special Assistant to the Dean of the Pritzker School of Medicine. From 1973 to 1975, Jeff Goldsmith worked in the Office of the Governor, State of Illinois as a fiscal and policy analyst, and Special Assistant to the State Budget Director.
Jeff Goldsmith earned his doctorate in Sociology from the University of Chicago in 1973, studying complex organizations, sociology of the professions, and politics of developing nations. He graduated from Reed College in 1970, majoring in psychology and classics, earning a Woodrow Wilson Fellowship for graduate study in 1971.
Jeff Goldsmith was the recipient of the Corning Award for excellence in health planning from the American Hospital Association's Society for Healthcare Planning in 1990, and has received the Dean Conley Award for best healthcare article three times (1985, 1990 and 1995) from the American College of Healthcare Executives. He has written six articles for the Harvard Business Review, and has been a source for articles on medical technology and health services for the Wall Street Journal, the New York Times, Business Week, Time and other publications. Jeff Goldsmith is a member of the editorial board of Health Affairs.
Jeff Goldsmith is a native of Portland, Oregon and lives in Charlottesville, Virginia.
The Future of the Hospital
The nation's $900 billion hospital system is changing rapidly in response to health reform. The industry is not only consolidating, but also establishing a broader footprint in physician practice and in financing and organizing care. How are these strategies unfolding? Which ones are likely to be successful? How will hospitals respond to the increasing concerns about the effects of hospital consolidation and cost, and the pressures to transform clinical care? This lecture will identify winning strategies for hospitals facing an uncertain economic future.
What Will the Trump Presidency Bring to Healthcare?
Donald Trump won an unexpected Presidency in part by promising to repeal ObamaCare, the landmark 2010 Obama administration health reform law. This law provided coverage for 20 million formerly uninsured people and hundreds of billions in new funding for hospitals and care systems. How will unwinding and replacing this law affect those who render care? What role did poor health play in Trump's election? How will a divided Republican Party decide where to cut and how to restructure Medicare and Medicaid, the twin mainstays of public funding for health services? Where will Trump succeed and where will he fail? What strategies best position hospitals and physicians to cope with a new wave of policy uncertainty?
Organizing for Risk: How Hospitals and Physicians Can Collaborate Both to Contain Cost and Improve Quality
Health reform is changing both how and how much the care system is paid. This lecture reviews the history of both hospital and physician efforts both to sponsor and to contract with health plans, and discusses how they can become more accountable for both the cost and value of what they do. It will also review what's happened to the idea of "accountable care organizations" (ACO's) and what some viable alternatives to the strategy might be.
Beyond Health Reform: Strategic Imperatives for Hospitals and Health Systems in March
Congress passed and President Obama signed the Patient Protection and Affordable Care Act of 2010. This legislation, the most significant change in the US health system in 50 years, will fundamentally change how healthcare is financed in the US, both broadening access and restructuring both public and private health insurance. It will not only expose the federal government to significant spending increases, but also change incentives to hospitals, physicians, pharmaceutical companies, medical technology firms and everyone who supplies or supports the health system. PPACA will also strain the capacity of state and federal governments to finance healthcare in future years, compelling changes in how they pay for care. Learn how PPACA will affect the health system, and how providers, suppliers and technology firms can cope with and prosper under these changes.
2037: A Healthcare Odyssey
In 1986, in Hospitals', Jeff Goldsmith looked ahead fifty years to the US healthcare system in 2036. In 2016, Jeff revisited these forecasts, noting both accurate and inaccurate predictions, and looked ahead yet again to the health system in twenty years time. In 2037: A Healthcare Odyssey, Jeff examines the digital health revolution he foresaw in his 1986 piece, and how it is likely to affect care. He also looks at the concluding chapter of the baby boomer's saga, as well as promising new progress in the neurosciences and produces a fresh forecast for the US health system in twenty years.
The Tragedy of Health Reform
Despite compelling unmet needs, the bold health reforms enacted in 2010 in the Affordable Care Act appear to be faltering. A lethal combination of political controversy, flawed design and incompetent implementation have put health reform in peril. What went wrong? How will the unfolding of expanded health coverage, increased regulation and new models of care and coverage affect the health system and society? Will employers abandon health coverage and push their employees into the Exchanges? Will the Exchanges revitalize or destroy private health insurance? How will health reform affect caregivers and patients? Will the Medicaid program sustain a 20% increase in enrollments? Can or should health reform be saved? A veteran health policy analyst looks at ObamaCare and looks ahead.
What if the Crowd is Wrong: Six Debatable Propositions about the Future of Healthcare and What They Mean for Strategy
"Everyone knows" what the future of US healthcare looks like. It's unanimous! We're moving from "volume to value". We're shifting from "treatment to prevention". Integrated Delivery Networks (IDN's) are the future of healthcare organization. "Disruptive technologies" will undermine the traditional businesses of hospitals and physicians. And empowered consumers will force the health system to be accountable for the cost of care and move healthcare markets. This talk asks the provocative question: what if these things don't actually happen? Where does it leave healthcare systems, professionals, insurers and vendors? How would your strategy change if the future actually turns out to be different from what "everyone" expects. Jeff Goldsmith talks about the future of healthcare payment and delivery reform, how it is affecting local markets around the US and talks about the "no regrets" strategies that position healthcare's major actors for an uncertain, post-health reform future.
Is the Health Cost Dragon Dead or Sleeping?
Health costs have grown at the slowest pace in the past five years since Dwight Eisenhower's last year in office (1960), five years before Medicare. No-one is clear on the causes.
Is it the recession? Is it ObamaCare? Is it new "accountable" payment and delivery models? Is it "market competition" or increased regulation? Jeff Goldsmith's startling answer is: "none of the above". This talk unravels and explains in English a remarkable piece of economic news- the cessation of a more than forty year run of inflation in health costs. Is this good or bad news? Is the relief from rising health costs sustainable? Will it last? This talk examines the spreading "recession" in US healthcare, and how health costs and access will be affected by the retirement of the 76 million person baby boom generation.
Can Hospitals Survive? Hospital Strategy in a Maturing Market
After decades of seemingly continuous expansion, hospital inpatient utilization in the United States has fallen for five years in a row. Despite forecasts a decade ago of significant bed shortages, many hospitals and systems find themselves with excess capacity. At the same time, the uncertainties surrounding ObamaCare and the pressures created by the recession have stressed hospitals, resulting in declining earnings and increased pressure from physicians and patients. Merger and acquisition activity spiked after 2010's health reforms, and continues unabated. How will the private insurance reforms contained in ObamaCare affect hospitals' financial futures? Can hospital systems that have sought to become "unavoidable" through mergers survive the transition to narrow network insurance products and rising transparency and consumer choice? Can hospitals survive this transition? How can hospitals become the "hospitals of choice" in their communities and regions.


Having the bathroom blues? Not a morning person? Jump start your day and brighten up your bathroom with Mr.P drain stopper. Just add water then watch him gently float your troubles away and bring a smile to your face.


text:
/**
 * @file
 * x86 part of the GDB server
 */

#include <nanokernel.h>
#include <nano_private.h>
#include <string.h>
#include <debug/gdb_arch.h>
#include <misc/debug/gdb_server.h>

#define TRACE_FLAG	0x0100 /* EFLAGS:TF */
#define INT_FLAG	0x0200 /* EFLAGS:IF */

#define INSTRUCTION_HLT 0xf4
#define INSTRUCTION_STI 0xfb
#define INSTRUCTION_CLI 0xfa

#ifdef GDB_ARCH_HAS_RUNCONTROL
#ifdef GDB_ARCH_HAS_HW_BP
static int gdb_hw_bp_find(struct gdb_debug_regs *regs,
			  enum gdb_bp_type *bp_type,
			  long *address);
#endif
#endif

/**
 * @brief Initialize GDB server architecture part
 *
 * This routine initializes the architecture part of the GDB server.
 *
 * Does nothing currently.
 *
 * @return N/A
 */

void gdb_arch_init(void)
{
	/* currently empty */
}

/**
 * @brief Fill a GDB register set from a given ESF register set
 *
 * This routine fills the provided GDB register set with values from given
 * NANO_ESF register set.
 *
 * @param regs Destination GDB register set to fill
 * @param esf Source exception stack frame
 *
 * @return N/A
 */

void gdb_arch_regs_from_esf(struct gdb_reg_set *regs, NANO_ESF *esf)
{
	regs->regs.eax = esf->eax;
	regs->regs.ecx = esf->ecx;
	regs->regs.edx = esf->edx;
	regs->regs.ebx = esf->ebx;
	regs->regs.esp = esf->esp;
	regs->regs.ebp = esf->ebp;
	regs->regs.esi = esf->esi;
	regs->regs.edi = esf->edi;
	regs->regs.eip = esf->eip;
	regs->regs.eflags = esf->eflags;
	regs->regs.cs = esf->cs;
}

/**
 * @brief Fill a GDB register set from a given ISF register set
 *
 * This routine fills the provided GDB register set with values from given
 * NANO_ISF register set.
 *
 * @param regs Destination GDB register set to fill
 * @param isf Source interrupt stack frame
 *
 * @return N/A
 */

void gdb_arch_regs_from_isf(struct gdb_reg_set *regs, NANO_ISF *isf)
{
	memcpy(&regs->regs, isf, sizeof(regs->regs));
}

/**
 * @brief Fill an ESF register set from a given GDB register set
 *
 * This routine fills the provided NANO_ESF register set with values
 * from given GDB register set.
 *
 * @param regs Source GDB register set
 * @param esf Destination exception stack frame to fill
 *
 * @return N/A
 */

void gdb_arch_regs_to_esf(struct gdb_reg_set *regs, NANO_ESF *esf)
{
	esf->eax = regs->regs.eax;
	esf->ecx = regs->regs.ecx;
	esf->edx = regs->regs.edx;
	esf->ebx = regs->regs.ebx;
	esf->esp = regs->regs.esp;
	esf->ebp = regs->regs.ebp;
	esf->esi = regs->regs.esi;
	esf->edi = regs->regs.edi;
	esf->eip = regs->regs.eip;
	esf->eflags = regs->regs.eflags;
	esf->cs = regs->regs.cs;
}

/**
 * @brief Fill an ISF register set from a given GDB register set
 *
 * This routine fills the provided NANO_ISF register set with values
 * from given GDB register set.
 *
 * @param regs Source GDB register set
 * @param isf Destination interrupt stack frame to fill
 *
 * @return N/A
 */

void gdb_arch_regs_to_isf(struct gdb_reg_set *regs, NANO_ISF *isf)
{
	memcpy(isf, &regs->regs, sizeof(NANO_ISF));
}

/**
 * @brief Fill given buffer from given register set
 *
 * This routine fills the provided buffer with values from given register set.
 *
 * The provided buffer must be large enough to store all register values.
 * It is up to the caller to do this check.
 *
 * @param regs Source GDB register set
 * @param esf Destination buffer to fill
 *
 * @return N/A
 */

void gdb_arch_regs_get(struct gdb_reg_set *regs, char *buffer)
{
	*((uint32_t *) buffer) = regs->regs.eax;
	buffer += 4;
	*((uint32_t *) buffer) = regs->regs.ecx;
	buffer += 4;
	*((uint32_t *) buffer) = regs->regs.edx;
	buffer += 4;
	*((uint32_t *) buffer) = regs->regs.ebx;
	buffer += 4;
	*((uint32_t *) buffer) = regs->regs.esp;
	buffer += 4;
	*((uint32_t *) buffer) = regs->regs.ebp;
	buffer += 4;
	*((uint32_t *) buffer) = regs->regs.esi;
	buffer += 4;
	*((uint32_t *) buffer) = regs->regs.edi;
	buffer += 4;
	*((uint32_t *) buffer) = (uint32_t) regs->regs.eip;
	buffer += 4;
	*((uint32_t *) buffer) = regs->regs.eflags;
	buffer += 4;
	*((uint32_t *) buffer) = regs->regs.cs;
}

/**
 * @brief Write given registers buffer to GDB register set
 *
 * This routine fills given register set with value from provided buffer.
 * The provided buffer must be large enough to contain all register values.
 * It is up to the caller to do this check.
 *
 * @param regs Destination GDB register set to fill
 * @param esf Source buffer
 *
 * @return N/A
 */

void gdb_arch_regs_set(struct gdb_reg_set *regs, char *buffer)
{
	regs->regs.eax = *((uint32_t *)buffer);
	buffer += 4;
	regs->regs.ecx = *((uint32_t *)buffer);
	buffer += 4;
	regs->regs.edx = *((uint32_t *)buffer);
	buffer += 4;
	regs->regs.ebx = *((uint32_t *)buffer);
	buffer += 4;
	regs->regs.esp = *((uint32_t *)buffer);
	buffer += 4;
	regs->regs.ebp = *((uint32_t *)buffer);
	buffer += 4;
	regs->regs.esi = *((uint32_t *)buffer);
	buffer += 4;
	regs->regs.edi = *((uint32_t *)buffer);
	buffer += 4;
	regs->regs.eip = *((uint32_t *)buffer);
	buffer += 4;
	regs->regs.eflags = *((uint32_t *)buffer);
	buffer += 4;
	regs->regs.cs = *((uint32_t *)buffer);
}

/**
 * @brief Get size and offset of given register
 *
 * This routine returns size and offset of given register.
 *
 * @param reg_id Register identifier
 * @param size Container to return size of register, in bytes
 * @param offset Container to return offset of register, in bytes
 *
 * @return N/A
 */

void gdb_arch_reg_info_get(int reg_id, int *size, int *offset)
{
	/* Determine register size and offset */
	if (reg_id >= 0 && reg_id < GDB_NUM_REGS) {
		*size = 4;
		*offset = 4 * reg_id;
	}
}

#ifdef GDB_ARCH_HAS_RUNCONTROL
#ifdef GDB_ARCH_HAS_HW_BP
/**
 * @brief Get the HW breakpoint architecture type for a common GDB type
 *
 * This routine gets the specific architecture value that corresponds to a
 * common hardware breakpoint type.
 *
 * The values accepted for the @a type are GDB_HW_INST_BP,
 * GDB_HW_DATA_WRITE_BP, GDB_HW_DATA_ACCESS_BP and GDB_HW_DATA_READ_BP.
 *
 * @param type Common GDB breakpoint type
 * @param len Data length
 * @param err Error code on failure (return value of -1)
 *
 * @return The architecture type, -1 on failure
 */

static char gdb_hw_bp_type_get(enum gdb_bp_type type, int len,
				enum gdb_error_code *err)
{
	char hw_type = -1;

	switch (type) {
		/* Following combinations are supported on IA */
	case GDB_HW_INST_BP:
		hw_type = 0;
		break;
	case GDB_HW_DATA_WRITE_BP:
		if (len == 1) {
			hw_type = 0x1;
		} else if (len == 2) {
			hw_type = 0x5;
		} else if (len == 4) {
			hw_type = 0xd;
		} else if (len == 8) {
			hw_type = 0x9;
		}
		break;
	case GDB_HW_DATA_ACCESS_BP:
		if (len == 1) {
			hw_type = 0x3;
		} else if (len == 2) {
			hw_type = 0x7;
		} else if (len == 4) {
			hw_type = 0xf;
		} else if (len == 8) {
			hw_type = 0xb;
		}
		break;
	case GDB_HW_DATA_READ_BP:
		/* Data read not supported on IA */
		/*
		 * NOTE: Read only watchpoints are not supported by IA debug
		 * registers, but it could be possible to use RW watchpoints
		 * and ignore the RW watchpoint if it has been hit by a write
		 * operation.
		 */
		*err = GDB_ERROR_HW_BP_NOT_SUP;
		return -1;
	default:
		/* Unknown type */
		*err = GDB_ERROR_HW_BP_INVALID_TYPE;
		return -1;
	}
	return hw_type;
}

/**
 * @brief Set the debug registers for a specific HW BP.
 *
 * This routine sets the @a regs debug registers according to the HW breakpoint
 * description.
 *
 * @param regs Debug registers to set
 * @param addr Address of the breakpoint
 * @param type Common GDB breakpoint type
 * @param len Data length
 * @param err Error code on failure (return value of -1)
 *
 * @return 0 if debug registers have been modified, -1 on error
 */

int gdb_hw_bp_set(struct gdb_debug_regs *regs, long addr,
		  enum gdb_bp_type type,
		  int len, enum gdb_error_code *err)
{
	char hw_type;

	hw_type = gdb_hw_bp_type_get(type, len, err);
	if (hw_type < 0) {
		return -1;
	}

	if (regs->db0 == 0) {
		regs->db0 = addr;
		regs->db7 |= (hw_type << 16) | 0x02;
	} else if (regs->db1 == 0) {
		regs->db1 = addr;
		regs->db7 |= (hw_type << 20) | 0x08;
	} else if (regs->db2 == 0) {
		regs->db2 = addr;
		regs->db7 |= (hw_type << 24) | 0x20;
	} else if (regs->db3 == 0) {
		regs->db3 = addr;
		regs->db7 |= (hw_type << 28) | 0x80;
	} else {
		*err = GDB_ERROR_HW_BP_DBG_REGS_FULL;
		return -1;
	}

	/* set GE bit if it is data breakpoint */
	if (hw_type != 0) {
		regs->db7 |= 0x200;
	}
	return 0;
}

/**
 * @brief Clear the debug registers for a specific HW BP.
 *
 * This routine updates the @a regs debug registers to remove a HW breakpoint.
 *
 * @param regs Debug registers to clear
 * @param addr Address of the breakpoint
 * @param type Common GDB breakpoint type
 * @param len Data length
 * @param err Error code on failure (return value of -1)
 *
 * @return 0 if debug registers have been modified, -1 on error
 */

int gdb_hw_bp_clear(struct gdb_debug_regs *regs, long addr,
		    enum gdb_bp_type type, int len,
		    enum gdb_error_code *err)
{
	char hw_type;

	hw_type = gdb_hw_bp_type_get(type, len, err);
	if (hw_type < 0) {
		return -1;
	}

	if ((regs->db0 == addr) && (((regs->db7 >> 16) & 0xf) == hw_type)) {
		regs->db0 = 0;
		regs->db7 &= ~((hw_type << 16) | 0x02);
	} else if ((regs->db1 == addr)
		   && (((regs->db7 >> 20) & 0xf) == hw_type)) {
		regs->db1 = 0;
		regs->db7 &= ~((hw_type << 20) | 0x08);
	} else if ((regs->db2 == addr)
		   && (((regs->db7 >> 24) & 0xf) == hw_type)) {
		regs->db2 = 0;
		regs->db7 &= ~((hw_type << 24) | 0x20);
	} else if ((regs->db3 == addr)
		   && (((regs->db7 >> 28) & 0xf) == hw_type)) {
		regs->db3 = 0;
		regs->db7 &= ~((hw_type << 28) | 0x80);
	} else {
		/* Unknown breakpoint */
		*err = GDB_ERROR_INVALID_BP;
		return -1;
	}
	return 0;
}

/**
 * @brief Look for a Hardware breakpoint
 *
 * This routine checks from the @a regs debug register set if a hardware
 * breakpoint has been hit.
 *
 * @param regs Debug registers to check
 * @param bp_type Common GDB breakpoint type
 * @param address Address of the breakpoint
 *
 * @return 0 if a HW BP has been found, -1 otherwise
 */

static int gdb_hw_bp_find(struct gdb_debug_regs *regs,
			  enum gdb_bp_type *bp_type,
			  long *address)
{
	int ix;
	unsigned char type = 0;
	long addr = 0;
	int status_bit;
	int enable_bit;

	/* get address and type of breakpoint from DR6 and DR7 */
	for (ix = 0; ix < 4; ix++) {
		status_bit = 1 << ix;
		enable_bit = 2 << (ix << 1);

		if ((regs->db6 & status_bit) && (regs->db7 & enable_bit)) {
			switch (ix) {
			case 0:
				addr = regs->db0;
				type = (regs->db7 & 0x000f0000) >> 16;
				break;

			case 1:
				addr = regs->db1;
				type = (regs->db7 & 0x00f00000) >> 20;
				break;

			case 2:
				addr = regs->db2;
				type = (regs->db7 & 0x0f000000) >> 24;
				break;

			case 3:
				addr = regs->db3;
				type = (regs->db7 & 0xf0000000) >> 28;
				break;
			}
		}
	}

	if ((addr == 0) && (type == 0))
		return -1;

	*address = addr;
	switch (type) {
	case 0x1:
	case 0x5:
	case 0xd:
	case 0x9:
		*bp_type = GDB_HW_DATA_WRITE_BP;
		break;
	case 0x3:
	case 0x7:
	case 0xf:
	case 0xb:
		*bp_type = GDB_HW_DATA_ACCESS_BP;
		break;
	default:
		*bp_type = GDB_HW_INST_BP;
		break;
	}
	return 0;
}

/**
 * @brief Clear all debug registers.
 *
 * This routine clears all debug registers
 *
 * @return N/A
 */

void gdb_dbg_regs_clear(void)
{
	struct gdb_debug_regs regs;

	regs.db0 = 0;
	regs.db1 = 0;
	regs.db2 = 0;
	regs.db3 = 0;
	regs.db6 = 0;
	regs.db7 = 0;
	gdb_dbg_regs_set(&regs);
}
#endif /* GDB_ARCH_HAS_HW_BP */

/**
 * @brief Clear trace mode
 *
 * This routine makes CPU trace-disabled.
 *
 * @param regs GDB register set to modify.
 * @param arg Interrupt locking key
 *
 * @return N/A
 */

void gdb_trace_mode_clear(struct gdb_reg_set *regs, int arg)
{
	regs->regs.eflags &= ~INT_FLAG;
	regs->regs.eflags |= (arg & INT_FLAG);
	regs->regs.eflags &= ~TRACE_FLAG;
}

/**
 * @brief Test if single stepping is possible for current program counter
 *
 * @param regs GDB register set to fetch PC from.
 *
 * @return 1 if it is possible to step the instruction, 0 otherwise
 */

int gdb_arch_can_step(struct gdb_reg_set *regs)
{
	unsigned char *pc = (unsigned char *)regs->regs.eip;

	if (*pc == INSTRUCTION_HLT) {
		return 0;
	}

	return 1;
}

/**
 * @brief Set trace mode
 *
 * This routine makes CPU trace-enabled.
 *
 * In the event that the program counter currently points to a sti or a cli
 * instruction, the returned eflags will contain an IF bit as if that
 * instruction had executed (set for sti, cleared for cli).
 *
 * @param regs GDB register set to modify.
 *
 * @return eflags with IF bit possibly modified by current sti/cli instruction.
 */

int gdb_trace_mode_set(struct gdb_reg_set *regs)
{
	unsigned char *pc = (unsigned char *)regs->regs.eip;
	int simulated_eflags = regs->regs.eflags;

	if (*pc == INSTRUCTION_STI) {
		simulated_eflags |= INT_FLAG;
	}

	if (*pc == INSTRUCTION_CLI) {
		simulated_eflags &= ~INT_FLAG;
	}

	regs->regs.eflags &= ~INT_FLAG;
	regs->regs.eflags |= TRACE_FLAG;

	return simulated_eflags;
}

#ifdef GDB_ARCH_HAS_HW_BP
/**
 * @brief Implementation of GDB trace handler for HW breakpoint support
 *
 * @param esf Exception stack frame when taking the exception
 *
 * @return N/A
 */

static void _do_gdb_trace_handler(NANO_ESF *esf)
{
	struct gdb_debug_regs regs;

	gdb_dbg_regs_get(&regs);
	if ((regs.db6 & 0x00004000) == 0x00004000) {
		gdb_handler(GDB_EXC_TRACE, esf, GDB_SIG_TRAP);
	} else {
		int type;
		long addr;

		gdb_dbg_regs_clear();
		(void)gdb_hw_bp_find(&regs, &type, &addr);
		gdb_cpu_stop_hw_bp_addr = addr;
		gdb_cpu_stop_bp_type = type;
		gdb_debug_status = DEBUGGING;
		gdb_handler(GDB_EXC_BP, esf, GDB_SIG_TRAP);
	}
}
#else
/**
 * @brief Implementation of GDB trace handler for SW breakpoint support
 *
 * @param esf Exception stack frame when taking the exception
 *
 * @return N/A
 */

static void _do_gdb_trace_handler(NANO_ESF *esf)
{
	gdb_handler(GDB_EXC_TRACE, esf, GDB_SIG_TRAP);
}
#endif

/**
 * @brief GDB trace handler
 *
 * The GDB trace handler is used to catch and handle the trace mode exceptions
 * (single step).
 *
 * @param esf Exception stack frame when taking the exception
 *
 * @return N/A
 */

void gdb_trace_handler(NANO_ESF *esf)
{
	(void)irq_lock();
	_do_gdb_trace_handler(esf);
}
_EXCEPTION_CONNECT_NOCODE(gdb_trace_handler, IV_DEBUG);

/**
 * @brief GDB breakpoint handler
 *
 * The GDB breakpoint handler is used to catch and handle the breakpoint
 * exceptions.
 *
 * @param esf Exception stack frame when taking the exception
 *
 * @return N/A
 */

void gdb_bp_handler(NANO_ESF *esf)
{
	(void)irq_lock();

	gdb_debug_status = DEBUGGING;
	GDB_SET_STOP_BP_TYPE_SOFT(GDB_SOFT_BP);
	esf->eip -= sizeof(gdb_instr_t);

	gdb_handler(GDB_EXC_BP, esf, GDB_SIG_TRAP);
}
_EXCEPTION_CONNECT_NOCODE(gdb_bp_handler, IV_BREAKPOINT);

/**
 * @brief GDB division-by-zero handler
 *
 * This GDB handler is used to catch and handle the division-by-zero exception.
 *
 * @param esf Exception stack frame when taking the exception
 *
 * @return N/A
 */

void gdb_div_by_zero_handler(NANO_ESF *esf)
{
	(void)irq_lock();
	gdb_debug_status = DEBUGGING;
	gdb_handler(GDB_EXC_OTHER, esf, GDB_SIG_FPE);
}
_EXCEPTION_CONNECT_NOCODE(gdb_div_by_zero_handler, IV_DIVIDE_ERROR);

/**
 * @brief GDB page fault handler
 *
 * This GDB handler is used to catch and handle the page fault exceptions.
 *
 * @param esf Exception stack frame when taking the exception
 *
 * @return N/A
 */

void gdb_pfault_handler(NANO_ESF *esf)
{
	(void)irq_lock();
	gdb_debug_status = DEBUGGING;
	gdb_handler(GDB_EXC_OTHER, esf, GDB_SIG_SIGSEGV);
}
_EXCEPTION_CONNECT_CODE(gdb_pfault_handler, IV_PAGE_FAULT);

#endif /* GDB_ARCH_HAS_RUNCONTROL */

redpajama_set_name: RedPajamaGithub


How to create an AppleScript that will control an Application on a Remote computer ?
You may know that most Softron Applications are AppleScriptable. This enables a lot of too often unknown features. Lot of things can be automated using AppleScripts. For example you can start a playlist automatically at given time of days using iCal, or start recording, etc..
Check its IP address, the login and password.
tell application "MovieRecorder" of machine "eppc://username:passsword@IPaddress"
Don't forget that for OnTheAir Video, you have to add "On Action (parameter)" at the beginning and "end Action" at the end of the AppleScript as well as "ignoring application responses". For more info on how to build AppleScripts for OnTheAir Video, refer to the manual or to the OnTheAir Video Knowledge Base.


Creators, we hate being "paid in promotion". We should never accept being paid in promotion... unless there's some serious promotion involved or the end product could add a lot of value to your portfolio. If a huge client, like a Mark Cuban or Elon Musk, needed some new designs and marketing materials then I, as a graphic and web designer, would want to hop on that opportunity. Not only do I know my designs would make it into important hands and be displayed for millions to see, but these works would also increase the value of my portfolio. I sure hope someone with the success of these example clients would offer to pay for their needed services, but if this were the case I wouldn't be working for promotion, I'd be investing my time and abilities for a potentially huge pay off. Sure, they could end up hating my designs and using some from elsewhere, but what investment doesn't come with risks? At least I'd still have the experience that I could use later.
This theoretical situation is an unlikely occurrence, but you're surrounded with more realistic ones. There are businesses starting up every day by people who are focused, that have succeeded in things before and have the potential to succeed in their new venture. A lot of these businesses are funded out of pocket, or with very limited start-up cash and could really use valuable services like web design, graphic design, video production and social media management. If you have the skill and use it to build the proper relationship, this could result in something big for you.
• and when to offer your services.
• and who their friends are.
If you're good, you could get all of this in a single conversation. If you go about this the correct way, you will have everything you need to know weather or not you want to buy into this new idea with your precious talents. Worst case scenario, you could end up with a new connection that could potentially open doors for you in the future.
If you decide to invest your talents and abilities, make sure you pay close attention to the flow of everything in and around the business. You need to be able to constantly gauge how much time and stress you need to dedicate. Always give your best effort. If you ever begin to feel that you will need to back out of your investment, do so without breaking the connection that you've established. Communicate with your contact and express your feelings and concerns. Try to give no excuses and don't place the blame on anyone. Own up to your decision and promote the idea of you being available for future opportunities.


If your customers are on Twitter, you're going to love today's video. Recently, I was playing around with Twitter's advertising platform, and I discovered that you can promote your tweets to followers of another account. Now, you can't do this on Facebook yet, although a lot of people think this is going to come, but this is really brilliant because you can basically let someone else do all the work to build the following, and then you can just promote your tweets to that same audience. Think about the ramifications of this.
Let's go through a couple examples. I could find my biggest competitors, and I could actually create some great content that I want them all to know and I can promote it just to the followers of their accounts. Now, if I felt like there was something we did that they were weak at, I could actually promote that content right to their followers. If you wanted to reach every NFL fan or every Nascar fan, for example, you can simply target your promotion to the followers of the biggest athletes in those sports. And it doesn't just stop there.
Let's say that you want to reach every creative stay-at-home mom. Perhaps you could promote your tweets to Rachael Ray or somebody in that space. It's just such a fantastic way to make sure that you get your best content in front of people who have a shared interest. Now, I could go on and on about examples of this, but I wanted to make sure that you knew about it. And I know that Facebook and Instagram get all of the attention, but there is a lot, millions of people, on Twitter and they use it quite heavily. People are quite rabid fans or users of Twitter when they're on there. So think about if your customers are on Twitter, think about who they may be following, and play around with some sponsored content.
It's actually relatively inexpensive to get your message in front of those people. Who knows, you may have just found a great new way to generate leads for your company.


This fencing DVD presents the sword as it evolved from past forms down to its present usage as a modern sport-fencing weapon. This fencing video clearly shows how the sword has made the step from the dueling ground into the fencing sports arena, and the prime traditions from which fencing styles have been derived. This fencing DVD is a must for anyone interested in modern fencing and the history of fencing.
The Evolution of the Sword fencing DVD illustrates how the fencing sword has evolved from past forms down to its present usage as a sport-fencing weapon.


text:
Q: Boost Binary Serialization Problem I have a problem using boost serialization using binary archives. It works when using a file stream but I want to store it in my local variable and ultimately save/load it to/from berkeley db.
When executing the program I get a boost::archive::archive_exception: 'stream error' when instantiating the binary_iarchive.
#include <sys/time.h>
#include <string>
#include <boost/serialization/serialization.hpp>
#include <boost/archive/binary_oarchive.hpp>
#include <boost/archive/binary_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <fstream>
#include <sstream>

namespace boost {
namespace serialization {

template<class Archive>
void serialize(Archive & ar, timeval & t, const unsigned int version)
{
    ar & t.tv_sec;
    ar & t.tv_usec;
}

}//namespace serialization
}//namespace boost

int main(int, char**)
{
    timeval t1;
    gettimeofday(&t1, NULL);
    char buf[256];

    std::stringstream os(std::ios_base::binary| std::ios_base::out| std::ios_base::in);
    {
        boost::archive::binary_oarchive oa(os, boost::archive::no_header);
        oa << t1;
    }

    memcpy(buf, os.str().data(), os.str().length());
    if(memcmp(buf, os.str().data(), os.str().length()) != 0)
        printf("memcpy error\n");

    timeval t2;
    {
        std::stringstream is(buf, std::ios_base::binary| std::ios_base::out| std::ios_base::in);

        boost::archive::binary_iarchive ia(is, boost::archive::no_header);
        ia >> t2;
    }

    printf("Old(%d.%d) vs New(%d.%d)\n", t1.tv_sec, t1.tv_usec, t2.tv_sec, t2.tv_usec);

    return 0;
}

It works when initializing is with os.str(), so I guess my way of copying the data to my buffer or to is is wrong.

A: Well, for one thing .data() doesn't have a terminal \0.  It's not a c-string.  I didn't even realize stringstream had a char* constructor (who in their right mind uses them anymore?) but apparently it does and I'd bet it expects \0.
Why are you trying to do it that way anyway?  You're much better off working in C++ strings.  Initialize is with os.str().
Edit: binary data contains lots of \0 characters and the std::string(char*) constructor stops at the first one.  Your deserialization routine will then inevitably try to read past the end of the stream (because it isn't complete).  Use the iterator constructor for std::string when you pass buf into the stringstream.
std::stringstream is(std::string(buf, buf+os.str().length()), flags);


text:
Launched with Infinix Zero 8i quad rear camera setup, there are also two selfie cameras
The Infinix Zero 8i smartphone has been launched. This smartphone was introduced in the Pakistani market with Infinix Zero 8. The new Infinix Zero 8i smartphone is a weaker version of the Infinix Zero 8. The Infinix Zero 8i comes with a quad camera setup. It has a 48 megapixel primary camera. At the same time, the selfie camera setup has an 8-megapixel secondary camera with a 16-megapixel primary camera.
Infinix Zero 8i price, sale
The new Infinix Zero 8i is priced at PKR 34,999 in Pakistan. This price is of only 8 GB RAM and 128 GB storage variants. The phone will be available in Black Diamond, Green Diamond and Silver Diamond colors.
Infinix Zero 8i specifications
Talking about the specification, Infinix Zero 8i runs on XOS 7 based on Android 10. The phone has a 6.85-inch full-HD + display. It is equipped with dual hole-punch cutout and 90 Hz refresh rate. The phone has 8 GB RAM with Octa-core MediaTek Helio G90T processor. Inbuilt storage is stated to be 128 GB.
The Infinix Zero 8i comes with a quad rear camera setup. It has a 48 megapixel primary camera. It has an 8 megapixel secondary camera with ultra wide angle lens, a 2 megapixel third camera and an AI sensor. This is a dual selfie camera smartphone. The phone has a 16-megapixel primary selfie camera and an 8-megapixel secondary camera with wide angle lens.
The Infinix Zero 8i battery is 4,500 mmH. It has a fingerprint sensor on the side.
Vu Cinema TV Action Series 55LX and 65LX Launched in India, Learn Price and Features
The Vu Cinema TV Action series has been launched in India in 55 inch and 65 inch variants. The action series is offered...
Vivo Y20G launched in India with triple rear camera setup, know price and all specifications
The Vivo Y20G smartphone has been launched in India as the latest model of the company's latest Y series, which already includes smartphones such...
PUBG Mobile's Competitor FAUG has just 7 days left to launch in India, know everything
PUBG Mobile India (PUBG Mobile India) is the biggest rougher game in India, FAUG is going to be launched in India (PUBG Mobile...
Mi Notebook 14 (IC) laptop launched in India with these features, know price
Mi Notebook 14 (IC) has been launched in India as Xiaomi's latest laptop. The company launched its first laptop series in the...


Our next food distribution is this Saturday, June 20th from 9:00-11:00am. Please come on out to volunteer!
Donations are always needed but especially TOILET PAPER and SOAP and any personal items. Please remember that Food Stamps do NOT cover personal hygiene items!


ive been using Lightwave a lot for the last 6-12 months mainly for modelin logos, characters and animation which has come along leaps and bounds but ive now been offered work to create visuals for property developers.
They don't have any videos that are for strictly architecture but kurvstudios.com has some really good dvd's for sale. Also, simplylightwave.com (under the "DVD's for sale" section) has a few good ones -a little pricey though. Hope this helps.
Ive said a while back there is a need for some.
I think there's a gap in the market for Architectural training for LW..
glad to have helped - my personal opinion on the lack of "buildin" tutorials is that if you can model something like the McLaren (simplylightwave.com) or the SSR Chevy (kurvestudios.com) than a building is fairly straightforward (but what do I know - here in the U.S. a building is usually just a box with windows). The important thing is to learn how to use the tools in modeler.
Modeling buildings is a little more complicated than that----if you want them to look good. Or be anywhere close to being accurate. Good looks and accuracy are important if you want to solicit work from architects or developers. I have been training myself to create models from my own architectural designs. It has been a slow lonely unsupported process. And I think I have come up with a pretty fast system for importing autocrud drawings and then creating the model from the imported polygons. The hardest part for me was figuring out what combination of autocad export and lightwave import works best and cleanest. Then what do you do with the imported geometry to avoid redrawing anything. I found that autocads layers came in as surfaces. So I filtered the surfaces using the statistics panel. Then cut the selected surfaces to individual layers. Once I had things where I wanted them. I move things to the appropriate height. And then extrude everything to the correct height. then I come back in and create whatever details, parapets or roofs that are needed. I finally am to the point where I can create a model of an elementary school from the autocad drawing in about an hour and a half. Then, of course, I have to come back in and map materials. But thats easy; because everything comes from autocad as a surface.
One note; most autocad drawings have information in them that you do not use. So it is best to clean up the drawing before importing it. I have also noticed that poorly drawn cad drawings results in sloppy models. So if you are doing architectural models----it helps if you know a cad program.
I have also played with using coreldraw drawings in this same process. Except I export the drawing to an AI file and then import it with the ESPF import tool. And it works--but occasionally you get unexpected results. But I generally do my site plans in this manner and buildings with autocad.
I had an architectural job to do and could not find any tutorials on the subject.
The client supplied printed floor plans and artist drawings. I then scanned these in and placed them as back images and started modeling away.
I know that there were things that could have been done better to maximize my time but I took the long way. I've learned some techniques that will help me on my next project. attached is the final project.
...that looks real nice dude!!.


text:
Armine Alajajian
University of California Los Angeles School of Law, J.D., 2016
University of California, Berkeley, B.A., Sociology 2012
Armine Alajajian is an Associate with Olivarez Madruga Lemieux O'Neill, LLP, serving as part of the firm's Labor and Employment Law practice group.
Ms. Alajajian attended University of California, Berkeley and graduated with a High Distinction in a Bachelor of Arts degree. She received her Juris Doctor with a specialization in Entertainment, Media and Intellectual Property Law from UCLA School of Law. While in law school, she served as Managing Editor for the UCLA Entertainment Law Review.
Prior to joining with Olivarez Madruga Lemieux O'Neill, LLP, Ms. Alajajian focused her practice on representing Labor Unions and Taft-Hartley Trust Funds in the entertainment, transportation and construction industries, including representing clients in federal and state court litigation.
U.S. District Court, Central District of California
Ms. Alajajian is a member of the AFL-CIO Lawyer's Coordinating Committee.
SB 270 Imposes New Penalties on Public Employers Who Fail to Provide Unions with Required Employee and New Hire Information
Governor Gavin Newsom signed Senate Bill (SB) 270 into law on September 27, 2021. This bill becomes operative on July 1, 2022, and amends Government Code section 3558 to create... Read More


text:
Enabling Research
Author / Speaker
Fastnet summary
The beginning of the 2015 Rolex Fastnet was a whirlwind of emotions for me; excitement, anticipation and a bucket full of nerves. I was particularly thrilled to have my family there on the water that day to cheer me on!
Our planned cautious start was possibly a little bit too conservative in the end, but we were certainly glad not to be over the line in those light winds. Tacking our way up the Solent amongst all those boats was epic, and Chris did an amazing job navigating his way through, and even avoiding a certain boat that got grounded right in front of us very early on.
Light airs upwind are not a great combination for us on Nunatak, and the first 24-36 hours were particularly slow. We suffered even more with a major wind hole just to the east of the Scillies. With electronic problems and no means of getting updated weather reports it was an extremely frustrating time for us both, especially as we watched lighter boats sail on around us. When we finally got round the wind picked up and it seemed like a different race had started and we were finally on the move.
Chris and I got into a great watch routine of swapping every couple of hours, and eating well with my wonderful home made cuisine (cough!). At least my Mum had baked a great loaf of Welsh Bara Brith to fuel us on.
It was very breezy (gusting 25+kts) as we approached the rock, and not having 10 men sat on the rail meant that we had to put a reef in. It was also my first time on the helm in such strong winds at night – so took a bit of adjusting!
As we rounded a rock we toasted with some bubbles, took the standard selfies and went on to enjoy what would really be an epic downwind home run.
We peeled our kites around five times (hard work when there's only two of you to manage an A2 kite), and probably didn't drop below 8knts of speed for the whole journey back. Downwind helming in that wind was a major thrill that really was a first for me! Chris was beaming from ear to ear as he surfed down waves, making up for our lost miles in the first couple of days and ticking off one boat after the other.
Our approach to the finish line saw us have a luffing tussle with The Sirens, which was great fun after a 600+ mile adventure.
Although Chris is more used to podium positions in his sailing endeavors – for me I was just thrilled to have completed my first ever two-handed Fastnet in my first ever season racing two-handed. In what was an extremely competitive fleet I'm also very proud of finishing 124th overall out of 340+ IRC boats, 35th out of 72 in IRC2 and 30th out of 54 two handed boats. Overall under IRC this year, France claimed seven of the top 10 spots – not sure how the Welsh faired but I'm optimistically claiming that I was in the top 10 Welsh spots at least!
What's more I'm now absolutely addicted to short handed sailing and thrilled beyond words that Chris has agreed to keep me on as his co-skipper! I really can't thank him enough for the opportunity, for the constant teaching and for making sure that Nunatak is safe to sail and race ready.
We proudly branded our boat and jackets with Findacure logo in a bid to raise awareness for this amazing charity that is closely linked to my professional career, and very happy to have raised over £800.
https://www.justgiving.com/E-H-DAVIES
Thank you so much for those that generously supported us. As always, it is really greatly appreciated.
Until the next race, Elin (and Chris!)
Copyright 2013 Elin Haf DaviesWebsite design by Toolkit Websites


Squids are cephalopods which are of more than 300 types found all over the world. They are found in both freshwater and saltwater. These are versatile creatures which can adapt themselves to the varied range of temperatures. These creatures belong to the class of cuttlefish, nautilus and octopus.
These species have a spherical shaped body with large head and a large brain. They have two lateral fins and eight arms as sucker, as well as two tentacles. These species can grow up to a size of (24 to 40) feet. These creatures are very good swimmers and they can even fly up to short distances out of water. They can change their color according to their surroundings, and they can do this with the help of the chromatophores which covers their body. They release a cloud of dark ink when they feel danger.
The species are known to feed on variety of things in the Ocean. The bigger squids are more aggressive as compared to the smaller ones. Thus the bigger ones attack on the bigger prey and smaller ones attack on the smaller prey according to their size.
During the time of mating, the males attract the females to mate. The males even change their color in order to attract females. At this time when the mating is about to begin these species can be seen moving in circles in a large group. When the female is ready to mate the male and female of these species can be seen moving in pairs. Then the mating occurs. During this process the sperm is placed inside the female and thus the fertilization occurs. After that, thousands of eggs can be produced at a time. The female deposits the eggs in to the holes or crevices in order to keep them safe from the predators. It would be very sad to note that the female dies soon after the egg hatches. The new born hatchlings already know how to swim. These species have a short life span and they have to fight for food right from the first day of their life in order to survive.
These creatures are known to be very intelligent.
Their growth rate is very fast.
They have a very short life span.
These are essential creatures for the ecosystem.
The giant squid has eyes of the size of a basket ball.
They are known to have three hearts.
The meat of these species is firm, white and has a sweet taste. The restaurants have these species in their menu in the category of sea food. The main body as well as the tentacles of these species is used in most of the dishes. These species can be available in dried, canned, frozen, fresh and pickled versions. The recipes of the baby squids are prepared both in China and Spain.
Thus, squids are one of the most interesting creatures of the sea, and they also play a crucial role in the ecosystem.


text:
TEST(CreateRingbuffer, Int_size_0) {
	LockFreeRingBuffer<int> ringBuffer(0);
	EXPECT_EQ(ringBuffer.capacity(), 0);
	EXPECT_EQ(ringBuffer.size_approx(), 0);
}

TEST(CreateRingbuffer, Int_size_1) {
	LockFreeRingBuffer<int> ringBuffer(1);
	EXPECT_EQ(ringBuffer.capacity(), 1);
	EXPECT_EQ(ringBuffer.size_approx(), 0);
}

TEST(CreateRingbuffer, Int_size_1000) {
	LockFreeRingBuffer<int> ringBuffer(1000);
	EXPECT_EQ(ringBuffer.capacity(), 1023);
	EXPECT_EQ(ringBuffer.size_approx(), 0);
}

TEST(CreateRingbuffer, SharedPtrInt_size_0) {
	LockFreeRingBuffer<std::shared_ptr<int>> ringBuffer(0);
	EXPECT_EQ(ringBuffer.capacity(), 0);
	EXPECT_EQ(ringBuffer.size_approx(), 0);
}

TEST(CreateRingbuffer, SharedPtrInt_size_1) {
	LockFreeRingBuffer<std::shared_ptr<int>> ringBuffer(1);
	EXPECT_EQ(ringBuffer.capacity(), 1);
	EXPECT_EQ(ringBuffer.size_approx(), 0);
}

TEST(CreateRingbuffer, SharedPtrInt_size_1000) {
	LockFreeRingBuffer<std::shared_ptr<int>> ringBuffer(1000);
	EXPECT_EQ(ringBuffer.capacity(), 1023);
	EXPECT_EQ(ringBuffer.size_approx(), 0);
}

TEST(CreateRingbuffer, UniquePtrInt_size_0) {
	LockFreeRingBuffer<std::unique_ptr<int>> ringBuffer(0);
	EXPECT_EQ(ringBuffer.capacity(), 0);
	EXPECT_EQ(ringBuffer.size_approx(), 0);
}

TEST(CreateRingbuffer, UniquePtrInt_size_1) {
	LockFreeRingBuffer<std::unique_ptr<int>> ringBuffer(1);
	EXPECT_EQ(ringBuffer.capacity(), 1);
	EXPECT_EQ(ringBuffer.size_approx(), 0);
}

TEST(CreateRingbuffer, UniquePtrInt_size_1000) {
	LockFreeRingBuffer<std::unique_ptr<int>> ringBuffer(1000);
	EXPECT_EQ(ringBuffer.capacity(), 1023);
	EXPECT_EQ(ringBuffer.size_approx(), 0);
}


One can make money individually or professionally by selling things on Amazon. If you want to sell any product on Amazon, then first, you have list the items you want to sell.
One can make money individually or professionally by selling things on eBay. If you want to sell any product on eBay, then first, you have to create a seller's account. List the product that you want to sell.
By connecting your online store with your Facebook store, you can get the customers from both the virtual worlds.
Google YouTube is rolling out new ad extensions that will allow any video to become "Shoppable". It means companies will be able to buy visual ads with links to buy products found on their own website.
Would you like to start today? If you do, just scroll up and hit the "Buy Now" button.
very good book to master the skill of sell your product in online platform. very useful book for new people in this world.
very very useful tips and tricks to start a career in online business through amazon, facebook, twitter etc.
This is the most helpful book on internet marketing. After listening this book, I am confident about staring online business.
listening this book from Writing Souls was great. got a overall idea of online marketing just by listening once.
excellent writing from the author. very helpful book for online marketing. I am satisfied with the book.
masterpiece book. this book help a beginner to intermediate person in the world of online marketing.
I highly recommend this book e marketing book to the new comer in online business. excellent advice are given..
must listen this book to start online marketing with knowledge and confidence. apply the tips given in this book and you will be the master very soon.
the content of the book is really good and useful. it will give you confident to start marketing your product in online platform.
You will advises, tips and tricks on online marketing from expert in the industry. I am thankful to the publisher.