Agile Retrospectives
A retrospective is anytime your team reflects on the past to improve the future. Between technical and non-technical teams, you can retro on just about anything! Right now, we're hosting a public retrospective on agile software development. Help define the future of agile by adding some of your ideas to our board.
Join the #RetroOnAgile conversation
Reflect on your software development by tweeting with #RetroOnAgile. Tell us one thing you like with #ILike, one thing you wish you could improve with #IWish, and one thing you'd like to see in the future with #WhatIf. Use the hundreds of responses below as inspiration. Your feedback will show up here within 24 hours.
Pro Tip: ^^^ Replace the question with your answer, leave the hashtags ;-)
#ILike - having iterative development and useful product for users early and often https://t.co/Q1G3SMJoAz #RetroOnAgile
— Amy Patenaude (@LadyEngr802) April 16, 2018
#ILike the conversations that we have as a result of our agile process, which help us clarify assumptions and gaps in reasoning #RetroOnAgile
— Esther Lucia (@NearSideSays) April 16, 2018
#ILike working smarter and seeing solutions evolve through collaboration #RetroOnAgile
— Richard Coen (@RichardCoen9) April 13, 2018
If nothing else, I feel like I waste less time, using the agile process. I know within a few weeks, I'll get feedback on the direction I'm headed with a project. #RetroOnAgile
— Shaun Cave (@Yungdaht) April 13, 2018
#ILike to help people grow and to watch teams develop from a bunch of individuals into a team that takes over responsibility #RetroOnAgile
— Susanne Wesner (@SusanneWesner) April 13, 2018
#Ilike to work in a truly agile way. Enabling and empowering the teams is a powerful way to get your projects rolling. #RetroOnAgile
— Nicolai Kohlbauer (@niggls) April 13, 2018
#ILike - that I can express myself based on agile principles and values #RetroOnAgile
— Rose (@Mmallow91) April 13, 2018
#ILike The dent #agile methodology created in the software universe. https://t.co/VB1RLjxiDI #RetroOnAgile #Mozilla @DuckDuckGo @mozilla @Jira @Atlassian @TheASF
— Aishwary Shrivastava (@toxicaishwary) April 13, 2018
#ILike to work in a interdisciplinary team. Working together with people from other fields toward a common business goal is an amazing experience. #RetroOnAgile
— Rene Grohmann (@GrohmannRene) April 12, 2018
#ILike the Agile principles and values. #RetroOnAgile
— Amy Neil (@MomofXandM) April 12, 2018
#ILike that the focus of software development has changed from deliver software to deliver value. #RetroOnAgile #agile
— Ormycita (@mjormy) April 12, 2018
#ILike companies and CEOs like @peax_ch which are not afraid, to trust and to have confidence in their employees - giving them the chances to establish an agile culture to improve the development process #RetroOnAgile
— Ivan (@IvanAschwanden) April 12, 2018
#RetroOnAgile is a way for my #clockit team to unwind and make the next sprint better. Works amazingly well and puts down everyone's guard. #Jira #ILike
— ClockIt (@clockitio) April 12, 2018
#ILike - To see how team members have open and sincere conversations thinking together how to improve as a team #RetroOnAgile
— Antonio Valle (G2) (@avallesalas) April 12, 2018
#ILike The way agile pushes you to question the way yo do things an helps you improve constantly #RetroOnAgile
— Gonzalo Martín (@gmartinerro) April 12, 2018
#ILike - the willingness to continuously improve and try new things #RetroOnAgile
— Matthew Ho (@inspiredworlds) March 27, 2018
#ILike that our agile process involves hypotheses, experimentation, measurement, and outcomes other than "we've shipped it". #RetroOnAgile
— Mike Melnicki (@mikemelnicki) March 22, 2018
#ILike ability to change the direction, whenever it is reasonably justified #RetroOnAgile
— Kayyak A.K.A kayyaK (@pwysota) March 21, 2018
#ILike the attitude that we never settle. In the spirit of Continuous Improvement we always look for ways to surpass our past achievements. #RetroOnAgile
— Toivo Vaje (@ToivoVaje) January 26, 2018
#ILike that agile allows us to quickly react to changes in the SEO environment. SEO is always unpredictable to a degree. Agile comes with the necessary flexibility to adapt.#RetroOnAgile
— Kevin_Indig (@Kevin_Indig) March 26, 2018
#ILike - Going experimental on our process by trying new things on a frequent basis and holding regular retrospectives to validate our experiments. #RetroOnAgile
— Kent Gillenwater (@KentGillenH2O) March 22, 2018
#ILike that agile encourages teams to focus more on collaboration and outcomes, rather than tools and process #RetroOnAgile
— Kevin Bui (@BuiWonder) March 22, 2018
#ILike that we have people from different knowledge areas working together, in one team, towards a shared outcome #RetroOnAgile
— Kevin Bui (@BuiWonder) March 22, 2018
#ILike Our software team is starting to deliver software by working together #RetroOnAgile
— GerbenH (@Sjampster) March 21, 2018
#ILike deep involvement and awareness of the team that gives unexpected valuable insights #RetroOnAgile
— Nikita Martynov (@nikitokinito) February 22, 2018
#ILike that I can configure Jira to influence how are team runs agile, not just configure it to reflect how we already work. #RetroOnAgile
— Bill Cushard (@billcush) February 14, 2018
#ILike measuring success by outcomes and not outputs #RetroOnAgile https://t.co/YVD5bX83kr
— ʟᴜᴅɪᴠɪɴᴇ ꜱɪᴀᴜ (@lu_syo) February 6, 2018
#ILike that agile provides a means for saying "no" to the urgent, and empowers a team to focus on the important. We are an #agilemarketing team that runs scrum in #jira not a software dev team, for what that's worth. #RetroOnAgile
— Bill Cushard (@billcush) February 14, 2018
#ILike transparency, united team and shared expectations #RetroOnAgile
— Kote Khutsishvili (@kkhutsishvili) February 5, 2018
#ILike it when my team doesn't finish the #Agile Sprint objectives and I make them demo broken shit to all the stakeholders anyway, because of course, public shaming is a powerful motivator. Wait, did I say that out loud? #RetroOnAgile
— Dan Chuparkoff (@Chuparkoff) January 31, 2018
#ILike that DevOps is a thing, just not the watered down “devs do ops” version many teams and companies adopt.#RetroOnAgile https://t.co/Twr8daFj3E
— Dan Massey (@KinkSpring) January 10, 2018
#ILike Daily standups #RetroOnAgile
— Dominik Bułaj (@DominikBulaj) January 17, 2018
#ILike #SpecificationByExample to build quality into software from the start. #RetroOnAgile
— Ian Buchanan (@devpartisan) January 18, 2018
- #ILike the Accountability! #RetroOnAgile https://t.co/ZQEDd9TP3S
— Ifrah Waqar (@IfrahWaqar) January 12, 2018
#ILike potential to set sprint goals small enough to present them on Sprint demo #RetroOnAgile
— KuwałekDastin (@dastin_it) January 19, 2018
#ILike #noestimates and concentration on flow maximizing instead of resource efficiency. #RetroOnAgile
— Toivo Vaje (@ToivoVaje) January 18, 2018
#ILike how Agile keeps my brother and I developing as fast we can #RetroOnAgile
— Troy Taylor (@troystaylor) January 19, 2018
#ILike how we’ve embraced a mindset of solving customer problems to shape how we work over just shipping features. #RetroOnAgile
— jeremyp (@PappJeremy) January 19, 2018
Retrospectives, not just on sprints and projects, but all that we do, are very valuable #justdoit #retroonagile https://t.co/BWJE1FLSUn
— Andrew Kucharski (@akucharski) January 2, 2018
#ILike we pull up our Jira board during standups to make sure we stay on topic and talk about what we are actually working on. Makes it go faster as opposed to people trying to remember what they are working on #RetroOnAgile
— Alex (@aortiz1989) January 24, 2018
#ILike it when we have a StandUp meeting and when the thing you say you are trying to finish today is already a JIRA ticket. #RetroOnAgile pic.twitter.com/0F1fDHeNpN
— Dan Chuparkoff (@Chuparkoff) January 24, 2018
#ilike if my team was a little less, delivery focused; and a little more sprint focused. #RetroOnAgile
— Tehseen (@syyed51) January 25, 2018
I like how scrum turns agile back into a heavyweight process with lots and lots of meetings, even when those meetings take place in Jira itself.
— Rob Lang (@robbytwitin) January 20, 2018
#ILike it when tasks in a sprint can be completely done by a single person in less than 3 days. #RetroOnAgile
— Dan Chuparkoff (@Chuparkoff) January 26, 2018
#IWish Agile was re-branded/re-named so people don't assume it means "work really fast without thinking". #RetroOnAgile
— *｡･ﾟ✧｡Michelle･ﾟ✧｡･*ﾟ (@mvenetucci) April 14, 2018
#IWish - It was easier to work with scrum when you are doing devops as by the book you really can't https://t.co/IN3MEnbUf6 #RetroOnAgile
— Mikael Nilsson (@LordNilsson) April 16, 2018
#iwish people would realise agile is not a switch you can turn on overnight #retroOnagile
— Richard Coen (@RichardCoen9) April 16, 2018
#IWish more companies and people understood that Agile can be other methodologies besides Scrum #RetroOnAgile
— Jackie Katsianas (@JackieK_) April 15, 2018
#IWish we could bring the whole company onto the agile practice #RetroOnAgile
— Esther Lucia (@NearSideSays) April 16, 2018
#IWish for Agile we had interactive digital wall boards to use across sites and with people working remotely #RetroOnAgile
— John Kirk (@JDKirk76) April 14, 2018
#IWish - Jira had a blocked status for all issue types, by default. https://t.co/QoOPxf4dys #RetroOnAgile
— David Horton (@hortonda) April 16, 2018
#Iwish there was a broadly adopted standard for assigning and tracking tasks -- that worked across multiple platforms #retroonagile
— F. Guess (@ms_g_austex) April 13, 2018
#IWish it would be easier to fuel the agile spirit from inside the teams to invest the energy from that better in good practices and software instead of having to discuss processes. #RetroOnAgile
— Michael Benz (@focbenz) April 13, 2018
#Iwish for Enterprises to embrace change and and allow agile ways of working without fearing loss of power and control. #RetroOnAgile
— Nicolai Kohlbauer (@niggls) April 13, 2018
#IWish - we would enable everyone to join and share our #agile methods and not only chosen ones #RetroOnAgile
— Rose (@Mmallow91) April 13, 2018
#Iwish agile wasn't used for micro-management and witch-hunting in the work place #RetroOnAgile
— I T E B A (@iteba) April 13, 2018
#IWish - I wish that being agile was given greater priority than doing agile https://t.co/gSR9z0esIu #RetroOnAgile
— Dev (@DevChatters) April 12, 2018
#IWish we were beyond wondering "how to do Agile the right-way"… it's an idea to work towards vs something to attain quickly & easily #RetroOnAgile
— Mark Opalski (@markopalski) April 12, 2018
#IWish for processes to work for the people, rather than the people working for the processes https://t.co/cdM03j1mZ6 #RetroOnAgile
— Olivier Fortier (@ofortier) April 12, 2018
#IWish companies would not only use the buzzword agile to make the company more interesting to applicants but instead would really support the agile principles. #RetroOnAgile
— Rene Grohmann (@GrohmannRene) April 12, 2018
#IWish - One thing I'd like to see improve is the use of Agile principles by leadership teams. https://t.co/iVBTiXeKcN #RetroOnAgile
— Tina M Marquez (@TinaMMarquez) April 12, 2018
#IWish - What's one thing you wish you could improve about your agile practice? https://t.co/GW2FqwepfL #RetroOnAgile speed up test automation creation with CI/CD
— YouScreenWriter.com (@YouScreenWriter) April 12, 2018
#IWish more folks followed the Agile principles and values rather than trying to hammer away on process and methodology. #RetroOnAgile
— Amy Neil (@MomofXandM) April 12, 2018
#IWish
— grumbly_frown (@grumbly_frown) April 13, 2018
Redraft those ridiculous, self-contradictory 12 commandments so they actually mean something useful
#RetroOnAgile
#IWish - Agile would be used more outside dev teams #RetroOnAgile
— Alex Constantinescu (@alexluchian88) April 12, 2018
#RetroOnAgile #IWish there was more management-focused material available on the transition from waterfall to Agile.
— Steve Harper (@Sharper_pm) April 12, 2018
#IWish companies were more aware of the kind of autonomy and discipline #agile requires #RetroOnAgile
— Ormycita (@mjormy) April 12, 2018
#IWish - Teams respect Retros, do not skip them, make great contributions and integrate #Kaizen cycles when the problem to solve deserves it #RetroOnAgile
— Antonio Valle (G2) (@avallesalas) April 12, 2018
#IWish Agile could be accepted company-wise, and not only in dev teams. #RetroOnAgile
— Gonzalo Martín (@gmartinerro) April 12, 2018
#IWish - Card movement and comments actually talked to my chat client; not my email, not a room #RetroOnAgile
— Josh Smith (@joshsmith01) April 12, 2018
#IWish - I wish to have epics progress bars - they would help in #agile https://t.co/DrY9OC7qOu #RetroOnAgile
— Oleksandr (@Oleksan23251466) April 12, 2018
#IWish - Agile development would take pity on documentation and QA teams, being more specific about how to accommodate doc and test within a sprint. #RetroOnAgile
— BarbaraLGreen (@BarbaraLGreen) April 11, 2018
#IWish - What's one thing you wish you could improve about your #agile practice? https://t.co/M8fBklybbH #RetroOnAgile I wish we could stop the "Agile my way" practices that are not really Agile.
— Gilaine Schneider (@Theodora26) April 11, 2018
#RetroOnAgile #IWish team members could accept the mindset of Agile more than the method argument.
— Marty Talbott (@TalbottMD) April 10, 2018
#iwish to spend less time on Jira to get the desired information and more time doing my job. #RetroOnAgile
— Franck Grimonpont (@chtitter) April 13, 2018
#IWish - we could talk to more teams internally and externally about how to improve our agile practices and how they do their best work #RetroOnAgile
— Matthew Ho (@inspiredworlds) March 27, 2018
#IWish the agile community would explore new techniques for project estimation since story points and planning poker is not cutting it. Possibly this? -> https://t.co/1EX2bWE8Ys #RetroOnAgile
— Mike Melnicki (@mikemelnicki) March 22, 2018
#IWish companies, teams, evangelisers, etc. would not use Agile as #buzz and #MagicWand, but indeed maintain culture #RetroOnAgile
— Kayyak A.K.A kayyaK (@pwysota) March 21, 2018
#IWish it would be easier to sell #agile development. There’s still too much upfront planning and too little adapting to new information. #RetroOnAgile
— Toivo Vaje (@ToivoVaje) January 18, 2018
#IWish to show pull requests in #Confluence #RetroOnAgile
— Ghost (@Ghost_MAL) March 29, 2018
#IWish more SEOs in the industry would embrace the agile methodology and step away from the waterfall model.#RetroOnAgile
— Kevin_Indig (@Kevin_Indig) March 26, 2018
#IWish "agile" wasn't such a scary word to teams and companies that haven't embraced it #RetroOnAgile
— Kevin Bui (@BuiWonder) March 22, 2018
Ok #IWish that we would focus less on tools and more on interactions and communication #RetroOnAgile 😀
— Peter Sandberg (@patelikestotalk) January 26, 2018
#IWish there was another kind of Agile besides just Scrum and Kanban. #RetroOnAgile
— Dan Chuparkoff (@Chuparkoff) January 28, 2018
#IWish there was a shared, ethical definition of “done done” for ML/AI features in agile projects.#RetroOnAgile https://t.co/Twr8daFj3E
— Dan Massey (@KinkSpring) January 10, 2018
#IWish my past experience of Agile had not made me wary of self-proclaimed "Agile Advocates" #RetroOnAgile
— ʟᴜᴅɪᴠɪɴᴇ ꜱɪᴀᴜ (@lu_syo) February 6, 2018
#Iwish jira could make coffee #RetroOnAgile pic.twitter.com/y8pQsqpmul
— gonelf (@gonelf) March 7, 2018
#IWish Jira could make customizing release notes simpler #RetroOnAgile
— Krishnanand Nayak (@pedavan) March 7, 2018
#iwish I could have a better view of all projects, including sorting, prioritisation, labeling, and client assigning. #RetroOnAgile
— Darren Pinder (@dmpinder) March 7, 2018
#IWish - A less clunky mechanism for injecting 'Business as Usual' into the development stream. #RetroOnAgile
— Kent Gillenwater (@KentGillenH2O) March 22, 2018
#IWish JIRA tied usability defects to their originating story, and easily graphed it, so Agile teams could focus on usability. #RetroOnAgile pic.twitter.com/It0NAcb9Bo
— Jerome (@JeromeR) January 18, 2018
#Iwish to have more advance functions in jql.
— Loshy Chandran (@loshyc) March 7, 2018
ADFS authenticatin - please release id-79 asap.
#IWish the assignee could be shared among team members, so that pair programming can be planned in advance 😀 #RetroOnAgile
— Rick Patci (@ThePatci) January 18, 2018
- #IWish Retrospective would magically appear linked to related issues in the new sprint and help overcome scope creep! #RetroOnAgile https://t.co/w6c4gOddfk
— Ifrah Waqar (@IfrahWaqar) January 22, 2018
#IWish we could keep TLMs from degenerating into program managers. #RetroOnAgile
— Juni Mukherjee (@JuniTweets) January 23, 2018
"When agile shops were first being established, an important consideration was to keep TLMs from having full visibility into any one agile team." https://t.co/32eiK5ih9a
#IWish @JIRA would let me story point my sub-tasks and roll up the points. Purist is not always pragmatic. #RetroOnAgile
— Kyle Rozendo (@RozendoZA) January 23, 2018
#IWish Consensus would work always. Sadly, the voting environment could get polluted. #RetroOnAgile
— Juni Mukherjee (@JuniTweets) January 23, 2018
"Even though agile rests on collaboration, the 'agreement by consensus' model has it’s share of flaws, depending on the who, the what, and the when." https://t.co/32eiK5ih9a pic.twitter.com/9X7dFon0RV
#IWish people would move their sub-tasks along the Agile board without having to be reminded #RetroOnAgile
— Diana MacPherson (@dianamacpherson) January 23, 2018
#IWish Teams won't declare agile victory prematurely by merely doing stand-ups.
— Juni Mukherjee (@JuniTweets) January 23, 2018
Unless we invest in:
a) a single prioritized backlog
b) KPIs and a DoD that we can get behind, and
c) feel empowered,
standing up won't help. We might as well sit and do some work. #RetroOnAgile pic.twitter.com/3ou448YLbw
#IWish that stakeholders, peer-reviewers, & quality team-members could star an assignee's work on a ticket. #RetroOnAgile pic.twitter.com/9tqkpSGgyP
— Dan Chuparkoff (@Chuparkoff) January 24, 2018
#IWish Jira was fast
— Bastien Billey 🇫🇷 (@billey_b) January 24, 2018
#iwish @jira has "hide fields" option. It is issue-secured now but not field-secured. #RetroOnAgile
— Rajinikanth (@Demiracer) January 21, 2018
It would be super awesome to allow my customers to vote on JIRAs without eating up a license for login #RetroOnAgile @JIRA #JiraOnDemand https://t.co/Yj2fwz7DQq
— Eddie Weakley (@3weakley) January 6, 2018
#retroonagile I wish people played as a team. No aggressive jira Tix allowed
— Sean Regan (@seanjregan) January 25, 2018
#IWish there was out-of-the-box integration between my automated unit tests and the columns of my scrum board. #RetroOnAgile
— Dan Chuparkoff (@Chuparkoff) January 31, 2018
#IWish we are not surprised that the feature does not work during demo and be more in control #RetroOnAgile
— GerbenH (@Sjampster) March 21, 2018
#WhatIf we could make our agile board three dimensional? What other dimension would we add? #RetroOnAgile
— Esther Lucia (@NearSideSays) April 16, 2018
#WhatIf The whole company practiced Agile, not just the developers? What would our teams look like? What could our teams accomplish? #RetroOnAgile
— Nicole Gagliardi (@_nlg_) April 13, 2018
#WhatIf #agile teams wouldn't loose the big picture due to a flatened backlog, and be reminded how #UserStories are interrelated (e.g. from #UX point of view or from #BusinessProcess perspective) ? #RetroOnAgile
— Christophe THIERRY (@chthierry) April 13, 2018
#Whatif we dare to trust and take the prime directive seriously not only for retro but for every day live #RetroOnAgile
— Susanne Wesner (@SusanneWesner) April 13, 2018
#Whatif the agile way of getting things done would be taught very early on and would be the core of the way we get things done? #RetroOnAgile
— Nicolai Kohlbauer (@niggls) April 13, 2018
#whatif, The way I seek Agile working in the next few years is having to accommodate BOT coders as part of the squad and dealing with BOT communication too #RetroOnAgile
— Duane Gomes (@GomesDuane) April 12, 2018
#WhatIf Some agile techniques were taught early in schools so kids could benefit from them and learn how to plan their homework efficiently #RetroOnAgile
— Gonzalo Martín (@gmartinerro) April 12, 2018
#whatIf certifications weren't the criteria for hiring #agile practitioners #RetroOnAgile
— Ormycita (@mjormy) April 12, 2018
I’d replace the word software with product in the manifesto #RetroOnAgile
— Matthew Evans (@matthewevansrec) April 13, 2018
#WhatIf - We get so used to automation that we forget that bots do not participate in retros? #RetroOnAgile
— Antonio Valle (G2) (@avallesalas) April 12, 2018
#WhatIf we didn't try to manage multiple products at once on multiple boards with a single #Agile team? #RetroOnAgile
— le Violon Chocolat (@ViolonChocolat) April 12, 2018
#WhatIf there was one menu where you could easily navigate between boards in JIRA? #RetroOnAgile
— Melissa Gill (@lligassilem) April 12, 2018
#WhatIf we ran daily sprints? would we have daily retros? #RetroOnAgile
— Matthew Ho (@inspiredworlds) March 27, 2018
#WhatIf the software industry moved from delivery of projects to delivery of outcomes? https://t.co/btLBb3fhU4 #RetroOnAgile @Atlassian
— Mike Melnicki (@mikemelnicki) March 22, 2018
#WhatIf every user story was treated as an experiment and it's impact easily measured #RetroOnAgile
— Kent Gillenwater (@KentGillenH2O) March 22, 2018
#WhatIf we would keep agility rather that DO Agile? Plus we should mind that it require a lot of self-discipline. #RetroOnAgile
— Kayyak A.K.A kayyaK (@pwysota) March 21, 2018
#WhatIf Scrum and Kanban weren't the only ways to be agile? #RetroOnAgile
— Kevin Bui (@BuiWonder) March 22, 2018
#WhatIf we collectively decided that Sprints were, at most, one day from start to finish. #ContinuousAgile #YourStandupIsAlreadyYourPlanningMeetingAndYourDemo #RetroOnAgile
— Dan Chuparkoff (@Chuparkoff) February 1, 2018
#WhatIf SEOs would work in agile sprints like developers?#RetroOnAgile
— Kevin_Indig (@Kevin_Indig) March 26, 2018
#WhatIf humans just be humans and bots did all the technical (or remaining) stuff (or vice-versa?) #RetroOnAgile
— Homero Leal (@homerojleal) March 22, 2018
#WhatIf DevOps was its own Value Stream?#RetroOnAgile
— A9 Group, Inc. (@a9consulting) January 2, 2018
#WhatIf we stopped worrying about whether tools, practices, or people are Agile or not, and instead kept an open mind about new ideas that can help us work better together.  #RetroOnAgile
— Charles Miller (@carlfish) January 6, 2018
#Whatif we could say in 12 months from know that 2018 was the year when #agile was eventually applied to business at large – on all levels, beyond software projects? #RetroOnAgile https://t.co/lyylkPgNeV
— swarmOS (@swarmOS_de) January 10, 2018
#WhatIf the agile community treated security and privacy as seriously as they treat daily stand-ups?#RetroOnAgile https://t.co/Twr8daFj3E
— Dan Massey (@KinkSpring) January 10, 2018
#WhatIf there were no estimations??? What a Merry Christmas it would be!! #RetroOnAgile https://t.co/j9zmtrcXvz
— John Funk (@jmfunk87) January 20, 2018
#WhatIfEverybodyMovedToKanban #RetroOnAgile Kanban has changed our processes and efficiency for the better.
— John Funk (@jmfunk87) January 2, 2018
#WhatIf we stopped trying to make Agile fit with top-down management, budget-driven planning, and feature-bloated products? #RetroOnAgile
— Ian Buchanan (@devpartisan) January 12, 2018
#WhatIf(Companies stopped investing on precise projects scope and rather invested in trusting capable agile teams who will deliver value continuously?) #RetroOnAgile
— Adil Chahid (@AdilusPrimus) January 30, 2018
#WhatIf a user could report a ticket in one language and @Atlassian's Jira could show it to the team in a second language? #RetroOnAgile pic.twitter.com/qPWDfpgcMG
— Dan Chuparkoff (@Chuparkoff) January 25, 2018
#WhatIf @Atlassian's JIRA could use estimate the probability that a checked in block of code would get reopened based on machine-learned, correlated factors. #RetroOnAgile pic.twitter.com/vQ8DTrzrWm
— Dan Chuparkoff (@Chuparkoff) January 26, 2018
Why run a retrospective?
In 2001, with the stroke of a pen, the agile retrospective was born. The last of the twelve principles of agile development reads as follows:
"At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly."
The agile manifesto makes it clear: In order to best live the agile values, teams should meet reguarly to check in and make adjustments. Most commmonly, development teams apply this principle by hosting regular retrospective meetings, and while that meeting is the focus of much of this page, it's not the only way to retro.
More recently, the concept of retrospectives has made it's way out of development teams and into all facets of business and teamwork.
I know marketing teams that retro on campaigns, management teams that retro on large presentations, and above, Atlassian is hosting a retrospective on their entire industry. This openness to retrospecives, and their proliferation into all facets of business, is something to get incredibly excited about.
The reason to get excited about retrospectives is that they are where the agile rubber hits the road. So many of the core concepts in the agile manifesto are reinforced through retrospecitve meetings. Consider the following values:
- Individuals and interactions over processes and tools
- Responding to change over following a plan
At face value, this is what a retro is all about: Working with real people to make changes and improvements. Few things reinforce agile principles better. Now that we know why retrospectives are so important, read on and learn how to host a meeting on your own.
And don't forget, we do retrospectives to make things better, so if you're into agile, participate in our #RetroOnAgile and help define the future of software development.
Subscribe
Stay abreast of the #RetroOnAgile and other agile trends
The retrospective meeting
Retrospectives are an excellent opportunity for your agile team to evaluate itself and create a plan to address areas of improvement for the future. The retrospective embraces the ideal of continuous improvement - and protects against the pitfalls of complacency - by stepping outside the work cycle to reflect on the past:
The purpose of the retrospective meeting is to:
- Evaluate how the last sprint, iteration, or work item went, specifically around the team dynamic, processes, and tools.
- Articulate and stack rank the items that went well, and those items that did not.
- Create and implement a plan for improving the way the team does work.
The retrospective provides a safe place to focus on introspection and adaptation. In order for retrospectives to be successful, there needs to be a supportive atmosphere that encourages (but doesn’t force) all team members to contribute.
The retrospective should be a positive, energizing experience for your team. It helps team members share important feedback, let go of frustrations, and work together to come up with solutions. Facilitators can also get a lot from the retrospective, including a better understanding of how the team works together and what challenges (and successes) they experienced in the last sprint. A successful retrospective results in a list of improvements that team members take ownership of and work toward in the next sprint.
How to run your first retrospective
While it can be beneficial to vary the format of the retrospective (more on that below!), certain aspects like timing, attendees, and general format should remain as consistent as possible.
The when:
For agile teams working in the traditional two week sprint, the retrospective should take place at the end of every sprint. For teams running a more Kanban-esque style of work, a monthly or quarterly retrospective may make more sense. It's also healthy to engage members of the broader leadership after major initiatives have been rolled out; be careful to focus not on what was delivered, but rather on how the team worked together produce it.
Plan to spend at least thirty minutes, and up to an hour, depending on how long the sprint is and how much you have to cover.
The who:
Every team member should attend the retrospective, with a facilitator leading the discussion. The facilator can be the scrum master, product owner, or it can rotate throughout the team. Feel free to pull in designers, marketers, or anyone else who contributed to the current sprint or iteration.
The what:
There are several ways to mix up your retrospective (which we’ll discuss below), but here’s a basic template for retrospective meetings:
- Create a short list of things that worked well and things that could be improved. This list can be created on a whiteboard, on an Atlassian Confluence page, or maybe even sticky notes on the wall! No matter where you capture the initial feedback, be sure to memorialize it right after the meeting so it can be referenced down the road.
- Prioritize this list by importance as a team. You may discover common themes, which can be grouped together.
- Discuss ways and tactics to improve the top two items on the "room for improvement" list. Focus on outcomes, not actions or people, or the past.
- Create an action plan. By the end of the session, the team should have produced a few actionable ideas with clear owners and due dates to address the areas of improvement.
- Be disciplined about executing #4. Nothing is more frustrating than repeating the same roadblocks in every retro. Avoid stagnation (and frustration!) by making sure everyone walks away with clear next steps. Each action item identified in the retro should have a clear owner who follows it through to completion.
Because variety is the spice of life
Standardizing your retrospective is a good idea to create consistency and to build trust amongst the team over time. But there are a few "tweaks" facilitators can try that may help uncover additional insights, encourage participation from new team members, or simply keep it interesting.
Bring in an outside facilitator. Typically retrospectives are run by the scrum Master or project lead, but you may want to consider bringing in a guest to facilitate your next retro. The dynamic may shift in a positive way by having someone with no "skin in the game" lead the discussion. Moreover, this strategy enables someone else within the organization to observe how other agile teams are working and may pick up some best practices for his or her own team.
Vary the list prompts. At the end of the day, the retrospective is meant to uncover what's working and what's not. But arriving at those xxxx may be xxxx. Consider these different prompts:
- Start / Stop / Continue: What the team should start doing, stop doing, and continue doing. Focus on ways to discontinue items in the "Stop" column.
 Create a plan around how to tackle the top items in the "do less" list.
- Glad / Sad / Mad: What made the team glad, sad, and mad. You guessed it, focus on the sad and mad lists and how to improve so there are only items in the glad column next time.
Engage leadership. After a major project has been rolled out, schedule an hour with a member of your leadership team and focus on how the team worked together (not particulars of how the initiative went).
There are plenty of ways to improve, so don’t hesitate to find some new tricks of your own. Whether you’re trying to engage a distributed team or improve a retro process that has stagnated, the key is to keep your team engaged and make the results actionable.
Join the conversation!
Now that you know the basics of running a retrospective, we'd love to hear from you about your team's retrospectives. Start your tweet with I like “I wish” or “What if” and you may just see your feedback on our virtual board above! Join the conversation →
Learn scrum with Jira Software
A step-by-step guide on how to drive a scrum project, prioritize and organize your backlog into sprints, run the scrum ceremonies and more, all in Jira.
Read this tutorialHow to Run an Agile Retrospective Meeting with Examples
Instructions and variations on the classic team retrospective. Popular with agile developers, but not just for software teams anymore.
Read this article


description = "b2c" [viewBag] snippetCode = "b2c" snippetName = "b2c" ==
As a code, access your skills, compete with the comunity, prove your talent!


Any Keypress
wait_for_any_key
Yes or No
prompt "Export the database first?" --caution
Multiple Choice
- In this example
$search
can be user input, substring of a filename to look for.
- The options will be relative paths
- The
filepath=
assignment converts the selection to an absolute path.
choose__array=()
for i in *$search*.sql*; do
[[ -f "$i" ]] && choose__array=("${choose__array[@]}" "$i")
done
for i in "${export_dir%/}"/*$search*.sql*; do
[[ -f "$i" ]] && choose__array=("${choose__array[@]}" "$(path_unresolve "$PWD" "$i")")
done
! shortpath=$(choose "Choose a database export by number") && fail_because "Cancelled." && exit_with_failure
filepath=${PWD%/}/${shortpath#/}
echo "Your choice was: $filepath"


38.Bindoff, N. L.
et al.
Detection and Attribution of Climate Change:
from Global to Regional.
In:
Climate Change 2013:
The Physical Science Basis.
Contribution of Working Group I to the FifthAssessment Report of the Intergovernmental
Panel on Climate Change (Cambridge University Press, Cambridge, United Kingdom and New York, NY, USA, 2013).


I have been a professional software engineer for over 3 years after receiving my bachelors in computer science.
I started my career at Dycom industries and learned an enormous amount of information about good coding principles to rapidly create well written applications.
At ace info solutions I was a senior rails developer and devsecops engineer while beginning my freelance career.
I'm very experienced with all aspects of the software development lifecycle
I work with my clients to find the best design for their purposes, develop an easy to maintain well written application, and deliver it in a timely fashion.
Some of my projects you can look at to get a sense of my development capabilities.


Details
-
Type: Bug
-
Status: Closed
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Ehcache Priority:5
-
Ehcache Resolution:Fixed
Description
I get this intermittently when doing a Cache#flush():
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList.writeObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
at java.util.Collections$SynchronizedCollection.writeObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at net.sf.ehcache.store.DiskStore.writeIndex(DiskStore.java:816)
at net.sf.ehcache.store.DiskStore.flush(DiskStore.java:573)
at net.sf.ehcache.Cache.flush(Cache.java:1509)
at com.wiley.wispers.resolvedoi.EHCacheImpl.main(EHCacheImpl.java:655)
What seems to be happening is that the expiry thread is kicking in during the DiskStore#writeIndex() call, and, since #writeIndex() doesn't synchronize on the spoolLock, while DiskStore#expireElements() does, this causes a ConcurrentModificationException. It looks like DiskStore#writeIndex() needs some additional synchronization.
Work-around: catch exception and retry Cache#flush() operation (presuming the expiry thread runs less frequently than the time taken to persist the cache!).
Sourceforge Ticket ID: 2008055 - Opened By: ellispritchard - 1 Jul 2008 17:36 UTC
Re-opening so that I can properly close out these issues and have correct Resolution status in Jira


Hello. Exp: more than 2 years. Knowledge of Javascript and Jquery; Strong knowledge of Twitter Bootstrap 3; Strong knowledge of HTML and CSS and Sass (Scss); Here you can see our previous projects: I enjoy turning complex problems into simple, beautiful and intuitive interface designs. When I'm not coding or pushing pixels, you'll find me in the gym.
Get Started!Ready to start your next project with me? That's great! Give me a call or send me an email and I will get back to you as soon as possible!


MembaO
This project was implemented while I was working as the Country Manager at Code for Sierra Leone The project is one of the 22 projects across Africa selected for funding by the innovateAFRICA fund, which is managed by the Bill and Melinda Gates Foundation and the Omidyar Network
About the Project
MembaO! aimed to create a data driven platform that promoted transparency, provided online access to parliamentary records and enabled citizens to learn more about the specific policies and manifestos of the parliament aspirants for the 2018 General Elections.
The Objectives of the Platform
-
Provide access to electronic copies of the hansard from the Parliament, which would include access to the attendance and voting record of different parliamentarians
-
Allow parliament candidates to disseminate information about their policy positions and manifestos to the general public at large via social as well as traditional media outlets
-
Map out the manifestos, policy positions and agendas of the various MP candidates via text and graphical analysis tools and disseminate this information to a wide range of potential voters,thereby allowing civil society organisations and concerned stakeholders the tools to carry out a wide range of analysis on this data
-
Stream debates and discussions between the various parliament aspirants for the 2018 elections
The First Prototype of the Project
The following were the screenshots of the first prototype of the application
Challenges with the Project
Getting access to the historical records of the parliamentarian’s attendance was difficult, given the political climate in the country due to the upcoming elections in 2018. Instead, the application was pivoted to one which enabled users to search for information about the candidates running for elections from their constituencies.


Hello everyone, I am Ooi Jin Fu, but you can call me Alston. I am a recent graduate of University of Michigan, Ann Arbor, United States ("Go Blue!"). As a Bachelor of Science degree holder with three majors Actuarial Science
Data Science
Statistics , I am currently seeking job opportunities that are related to data analytics/risk assessment. As a data-driven person, I believe data always reveal the untold story and I am excited to tell that story to you! I am also constantly looking for interesting and cool data science/web app side projects, so hit me up if you need someone to work with!


{% extends 'layouts/base.html' %} {% block title %}Preprocessing Microservice{% endblock %} {% block heading %}
This is the first installment of the microservice series.
Let's first play around with the R image itself. For our data manipulation, rather than installing tidyverse
and R
ourselves, we can just use an image that already knows both.
Rocker/tidyverse on Dockerhub contains both R and tidyverse preinstalled, as well as RStudio itself.
To launch a container built off this image, we run the following:
docker run rocker/tidyverse
You'll see the following error message:
ERROR: You must set a unique PASSWORD (not 'rstudio') first! e.g. run with:
docker run -e PASSWORD=<YOUR_PASS> -p 8787:8787 rocker/rstudio
Note that this assumes we were running the rstudio
rocker image. This is because their tidyverse image, is built off of their rstudio image. Inspect the rstudio image here:
https://github.com/rocker-org/rocker-versioned/blob/master/rstudio/README.md
Note that the image publishes RStudio in a browser within the container at port 8787. By adding -p 8787:8787
to our run command, we map the container's port 8787 to our local host 8787. This is what lets us open up RStudio in our browser. Navigate to localhost:8787
in your browser, and you'll see RStudio running inside your container. The username is rstudio. Note that we could have used -p 1000:8787
, we would then just have to navigate to localhost:1000
instead to access RStudio. Left of the colon is the host port.
The run command also requires us to add -e PASSWORD=some_password
. This passes an environment variable to our run command.
Make the adjustments as follows, and launch:
docker run -p 8787:8787 -e PASSWORD=my_password rocker/tidyverse
Use CTRL+c to close the container.
Note that inside of RStudio, we don't see any files. This is because we haven't used either a mount or a volume to link files on our host machine, to the filesystem in the container. We will cover this in the next microservice section.
Often, data scientists execute a query once on a table to get a training dataset that is then shared between team members. This is opposed to having to execute the query each time more training data enters into the database, which can often cause headaches if there are things like data issues in the new data.
This lets team members focus on modeling, before dealing with minutia in ETL jobs.
Assume we have a static dataset directly resulting from a query on a table, that all data scientists on a team will be using for training and evaluation. This file represents the output of what will ultimately become the ETL microservice.
Note that when we go to production, we might want to rotate to a more concise data store such as a parquet file. But for now, assume this is a csv file.
At this point in the project, let us assume the following directory structure:
micro_demo
│ .env
│ .docker-compose.yml
│
└───data
│ raw.csv
│
└───preprocessing
main.R
preprocessing_functions.R
Our .env
file will contain things like database passwords that might need to be used across services.
Our raw.csv
file in this example will be the diamonds dataset found here:
https://www.kaggle.com/shivam2503/diamonds
Go ahead and download the dataset and drop it into your data directory for this demo with the name raw.csv.
Our goal for our containers, is for them to have as few files inside of them as possible. Eventually, we will expand our project to include our python models, our R Shiny dashboards, and our ETL code. But from the perspective of preprocessing, all our microservice needs to know, are the files in the preprocessing directory, as well as the files in the data directory.
We will be using tidyverse
for our data manipulation, and we will need to create a named volume for our data directory for our service.
Our docker-compose.yml
file will be responsible to creating this volume. The purpose of our docker-compose.yml
is to define our different services, how to build them, which volumes they should use, and in which order our services should execute.
For now, let us set up docker-compose.yml
for our preprocessing microservice.
version: '3'
services:
preprocessing:
image: rocker/tidyverse
From the root directory of the application (micro_demo/), run docker compose up
. This will launch preprocessing. Note that we receive the same errors around passwords and ports that we did when we executed docker run rocker/tidyverse
. The fix was to specify port and password in the docker run
command, so we switched to:
docker run -p 8787:8787 -e PASSWORD=my_password rocker/tidyverse
We need our docker-compose.yml
file to pass these same arguments into the docker run command.
We do this by editing docker-compose.yml
as follows:
version: '3'
services:
preprocessing:
image: rocker/tidyverse
ports:
- '8787:8787'
environment:
- PASSWORD=my_password
Verify that you can visit localhost:8787
for RStudio. Note inside of here, that the file explorer sets us by default in the home directory. If we want to access our files on our local system, within our container, we must use either mounts or named volumes. In this instance, we will be using both.
Recall that multiple services will need access to the data directory. We use a named volume for these files, so that other services will be able to see and use the same datasets.
Our other microservices do not need access to our .R scripts, however. Therefore we use a bind mount to get these files into our container, since they will not need to be accessed by other services.
Let us first upload our .R scripts using a mount.
We will make functions.R
as follows for now:
library(tidyverse)
Our main.R
will simply source our functions script:
source("preprocessing_functions.R")
When we try to execute these lines from inside RStudio Server, we will be able to check two things:
If we were to do this directly using docker run
, we would have to run the following command, from our project root directory:
docker run -p 8787:8787 -e PASSWORD=my_password --mount type=bind,source="$(pwd)"/preprocessing,target=/home/rstudio/ rocker/tidyverse
Run this command and go to localhost:8787
. You should see both main.R
and preprocessing_functions.R
in RStudio's file explorer. This is because we told Docker that we wanted all contents of our micro_demo/preprocessing/
directory, to go into the /home/rstudio/
directory of our Docker container.
Since we don't want to have to memorize this ridiculously long command, we can use docker-compose.yml
to store this bind mount information for us. Now, our docker-compose.yml
should look like the following:
version: '3'
services:
preprocessing:
image: rocker/tidyverse
ports:
- '8787:8787'
environment:
- PASSWORD=my_password
volumes:
- ./preprocessing:home/rstudio
Now go to the root directory of the application, and launch docker compose up
. Verify that everything works by going to localhost:8787
in your browser, and verify that both main.R
and preprocessing_functions.R
are present in the file explorer.
Technical Section
Note that even tho the keyword in the compose file is 'volumes', we are actually creating a bind mount. This is super confusing, just know that what we actually made was a bind mount.
Also notice that we didn't have to use $(pwd)
, but rather were able to use relative paths, when we were in our docker-compose.yml
. This is only possible in compose files. Relative directories are unavailable to the docker run
command.
End Technical
At this point, we have our bind mount that puts all our .R scripts into our container.
We still haven't solved the problem of creating a data volume. If we were to create a data volume and add it to our microservice, without using docker compose, we would have to use the following commands:
docker volume create micro_demo_data
micro_demo_data
docker run -d --rm --name dummy -v micro_demo_data:/root alpine tail -f /dev/null
docker cp $(pwd)/data/* dummy:/root
micro_demo_data
volume.Now, we add the newly created data volume to our R microservice, alongside the mount point:
docker run -p 8787:8787 -e PASSWORD=my_password --mount type=bind,source="$(pwd)"/preprocessing,target=/home/rstudio/ -v micro_demo_data:/home/rstudio/data rocker/tidyverse
When we navigate to localhost:8787
, we see that there exists a data directory inside of our microservice. If we go to click on it, however, we see that we do not have access to the directory. To fix this, we need to provide the UID of our host into the USERID environment field to give it access to the local host volume. This is rocker image issue, not a Docker issue, and will not have to be included in non-R microservices.
docker run -p 8787:8787 -e PASSWORD=my_password -e USERID=$UID --mount type=bind,source="$(pwd)"/preprocessing,target=/home/rstudio/ -v micro_demo_data:/home/rstudio/data rocker/tidyverse
There is an easier way.
Compose makes this much simpler for us.
First we will delete the volume produced in the previous demo with pure docker run commands.
docker volume rm micro_demo_data
If this fails, remove all containers referencing the volume, then remove the volume itself.
Within our docker-compose.yml
file, we can make a named volume just known to the application as 'data'.
This is the volume seen underneath the 'volumes' keyword at the bottom of yml file.
We then point this volume to where we want its contents to go within our preprocessing microservices. We put the volume at /home/rstudio/data so that we can easily access it from RStudio's file explorer.
We again need to add the USERID environment variable. To get your UID, type echo $UID
in the terminal to get the value. Then supply that value as an environment variable. We will later pass this value in through our .env
file. Docker compose does not have access to shell variables, which is why we cannot use the $UID variable itself.
version: '3'
services:
preprocessing:
image: rocker/tidyverse
user: 'root'
ports:
- '8787:8787'
environment:
- PASSWORD=my_password
- USERID=502
volumes:
- ./preprocessing:/home/rstudio
- 'data:/home/rstudio/data'
volumes:
data:
We then launch our microservice by using the command docker compose up --build
, which will build our data volume, pass in environment variables, and expose ports based on our yml file.
Open localhost:8787
and navigate to the data directory. You will notice that the data directory is once again empty. We need a way to pass our raw.csv
file into this data directory so that other applications can use it.
We can either use RStudio's 'upload' button, or we can execute docker cp
to copy the file into the data volume.
To use docker cp
, we would execute the following:
docker cp data/raw.csv micro_demo_preprocessing_1:/home/rstudio/data
This copies the raw csv file from our host system, to the data directory of our container. Because this data directory is linked to our data volume, this uploads the csv to our host volume.
To see the host volume, type docker volume ls
. You should see a volume named micro_demo_data
, which now houses our csv file.
At this point we are ready to build out the actual R code of our microservice. For this demo, preprocessing will be simple. We will import the raw dataset, drop the first column, and dump the remaining dataset to a file named processed.csv
. Here is preprocessing_functions.R
:
library(tidyverse)
drop_X1_column <- function(data){
filtered_data <- data %>%
select(-X1)
return(filtered_data)
}
Here is main.R
:
source("preprocessing_functions.R")
df <- read_csv('data/raw.csv')
processed_df <- drop_X1_column(df)
write_csv(processed_df, 'data/processed.csv')
Now we need our container to actually execute the main.R
script.
If we were to manually launch our script, we would start up a shell inside the container itself as follows:
docker compose run preprocessing sh
From here, we can launch the script through the following two steps:
cd /home/rstudio
Rscript main.R
When we go to production, we want this step to execute automatically.
To do so, we need our microservice to navigate to the /home/rstudio
directory, then execute the Rscript main.R
script.
To do so, we make the following edits to docker-compose.yml
:
version: '3'
services:
preprocessing:
image: rocker/tidyverse
working_dir: /home/rstudio
ports:
- '8787:8787'
environment:
- PASSWORD=my_password
- USERID=502
command: 'Rscript main.R'
volumes:
- ./preprocessing:/home/rstudio
- 'data:/home/rstudio/data'
volumes:
data:
Now run docker compose run preprocessing sh
to drop into a shell in the container. If you type pwd
, note that you're now in the /home/rstudio
directory, rather than the root directory of the container.
Navigate to the data directory, and if you have a raw.csv
file here, go ahead and run rm raw.csv
so we can test preprocessing with docker compose directly.
Exit your running container by typing exit
. Then from the root of your repository, execute:
docker compose run preprocessing
This should run your entire microservice from end-to-end. Congratulations on finishing your first microservice!!
Note that the command
entry of our Dockerfile, overrode the command to launch RStudio Server. To continue editing the scripts from within RStudio Server, leave the command
line commented to default to the Studio Server init from rocker/rstudio
's Dockerfile.
For security, let's remove our password and USERID from the compose file, and load them into our separate .env at the base of our repo.
We can do this by adding the following lines to our .env
file at the root of our project:
RSTUDIO_PASSWORD=some_awesome_password
UID=502 # change this to your UID
We use these values in our final docker-compose.yml
for our preprocessing microservice:
version: '3'
services:
preprocessing:
image: rocker/tidyverse
working_dir: /home/rstudio
ports:
- '8787:8787'
environment:
- PASSWORD=${RSTUDIO_PASSWORD}
- USERID=${UID}
command: "Rscript main.R"
volumes:
- ./preprocessing:/home/rstudio
- 'data:/home/rstudio/data'
volumes:
data:
{% endblock %}


--- category: man group: Bitcoin ABC name: bitcoind version: 0.22.0 ---
bitcoind - manual page for bitcoind v0.22.0
bitcoind [options] Start Bitcoin ABC Daemon
Bitcoin ABC Daemon version v0.22.0
-?
Print this help message and exit
-alertnotify=<cmd>
Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)
-assumevalid=<hex>
If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default:<PHONE_NUMBER>0000000153f50dd36c5d92b6645f01f8f6f1e626ec76b6251c3b34, testnet:<PHONE_NUMBER>0176eeeb60732e31bbd28f8a58457cce0b3e5680ee54c2ccf4e212)
-blockfilterindex=<type>
Maintain an index of compact filters by block (default: 0, values: basic). If <type> is not supplied or if <type> = 1, indexes for all known types are enabled.
-blocknotify=<cmd>
Execute command when the best block changes (%s in cmd is replaced by block hash)
-blockreconstructionextratxn=<n>
Extra transactions to keep in memory for compact block reconstructions (default: 100)
-blocksdir=<dir>
Specify directory to hold blocks subdirectory for *.dat files (default: <datadir>)
-blocksonly
Whether to reject transactions from network peers. Transactions from the wallet or RPC are not affected. (default: 0)
-conf=<file>
Specify configuration file. Relative paths will be prefixed by datadir location. (default: bitcoin.conf)
-daemon
Run in the background as a daemon and accept commands
-datadir=<dir>
Specify data directory
-dbcache=<n>
Set database cache size in megabytes (4 to 16384, default: 450)
-debuglogfile=<file>
Specify location of debug log file. Relative paths will be prefixed by a net-specific datadir location. (0 to disable; default: debug.log)
-finalizationdelay=<n>
Set the minimum amount of time to wait between a block header reception and the block finalization. Unit is seconds (default: 7200)
-includeconf=<file>
Specify additional configuration file, relative to the -datadir path (only useable from configuration file, not command line)
-loadblock=<file>
Imports blocks from external blk000??.dat file on startup
-maxmempool=<n>
Keep the transaction memory pool below <n> megabytes (default: 300)
-maxorphantx=<n>
Keep at most <n> unconnectable transactions in memory (default: 100)
-maxreorgdepth=<n>
Configure at what depth blocks are considered final (default: 10). Use -1 to disable.
-mempoolexpiry=<n>
Do not keep transactions in the mempool longer than <n> hours (default: 336)
-par=<n>
Set the number of script verification threads (-16 to 16, 0 = auto, <0 = leave that many cores free, default: 0)
-persistmempool
Whether to save the mempool on shutdown and load on restart (default: 1)
-pid=<file>
Specify pid file. Relative paths will be prefixed by a net-specific datadir location. (default: bitcoind.pid)
-prune=<n>
Reduce storage requirements by enabling pruning (deleting) of old blocks. This allows the pruneblockchain RPC to be called to delete specific blocks, and enables automatic pruning of old blocks if a target size in MiB is provided. This mode is incompatible with -txindex and -rescan. Warning: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, 1 = allow manual pruning via RPC, >=550 = automatically prune block files to stay under the specified target size in MiB)
-reindex
Rebuild chain state and block index from the blk*.dat files on disk
-reindex-chainstate
Rebuild chain state from the currently indexed blocks. When in pruning mode or if blocks on disk might be corrupted, use full -reindex instead.
-sysperms
Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality)
-txindex
Maintain a full transaction index, used by the getrawtransaction rpc call (default: 0)
-usecashaddr
Use Cash Address for destination encoding instead of base58 (activate by default on Jan, 14)
-version
Print version and exit
Connection options:
-addnode=<ip>
Add a node to connect to and attempt to keep the connection open (see the `addnode` RPC command help for more info)
-banscore=<n>
Threshold for disconnecting and discouraging misbehaving peers (default: 100)
-bantime=<n>
Default duration (in seconds) of manually configured bans (default: 86400)
-bind=<addr>
Bind to given address and always listen on it. Use [host]:port notation for IPv6
-connect=<ip>
Connect only to the specified node(s); -connect=0 disables automatic connections (the rules for this peer are the same as for -addnode)
-discover
Discover own IP addresses (default: 1 when listening and no -externalip or -proxy)
-dns
Allow DNS lookups for -addnode, -seednode and -connect (default: 1)
-dnsseed
Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect used)
-enablebip61
Send reject messages per BIP61 (default: 0)
-externalip=<ip>
Specify your own public address
-forcednsseed
Always query for peer addresses via DNS lookup (default: 0)
-listen
Accept connections from outside (default: 1 if no -proxy or -connect)
-listenonion
Automatically create Tor hidden service (default: 1)
-maxconnections=<n>
Maintain at most <n> connections to peers (default: 125)
-maxreceivebuffer=<n>
Maximum per-connection receive buffer, <n>*1000 bytes (default: 5000)
-maxsendbuffer=<n>
Maximum per-connection send buffer, <n>*1000 bytes (default: 1000)
-maxtimeadjustment
Maximum allowed median peer time offset adjustment. Local perspective of time may be influenced by peers forward or backward by this amount. (default: 4200 seconds)
-maxuploadtarget=<n>
Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit (default: 0)
-onion=<ip:port>
Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: -proxy)
-onlynet=<net>
Make outgoing connections only through network <net> (ipv4, ipv6 or onion). Incoming connections are not affected by this option. This option can be specified multiple times to allow multiple networks.
-peerbloomfilters
Support filtering of blocks and transaction with bloom filters (default: 1)
-peertimeout=<n>
Specify p2p connection timeout in seconds. This option determines the amount of time a peer may be inactive before the connection to it is dropped. (minimum: 1, default: 60)
-permitbaremultisig
Relay non-P2SH multisig (default: 1)
-port=<port>
Listen for connections on <port> (default: 8333, testnet: 18333, regtest: 18444)
-proxy=<ip:port>
Connect through SOCKS5 proxy
-proxyrandomize
Randomize credentials for every proxy connection. This enables Tor stream isolation (default: 1)
-seednode=<ip>
Connect to a node to retrieve peer addresses, and disconnect
-timeout=<n>
Specify connection timeout in milliseconds (minimum: 1, default: 5000)
-torcontrol=<ip>:<port>
Tor control port to use if onion listening enabled (default: <IP_ADDRESS>:9051)
-torpassword=<pass>
Tor control port password (default: empty)
-upnp
Use UPnP to map the listening port (default: 0)
-whitebind=<addr>
Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6
-whitelist=<IP address or network>
Whitelist peers connecting from the given IP address (e.g. <IP_ADDRESS>) or CIDR notated network (e.g. <IP_ADDRESS>/24). Can be specified multiple times. Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway
Wallet options:
-avoidpartialspends
Group outputs by address, selecting all or none, instead of selecting on a per-output basis. Privacy is improved as an address is only used once (unless someone sends to it after spending from it), but may result in slightly higher fees as suboptimal coin selection may result due to the added limitation (default: 0 (always enabled for wallets with "avoid_reuse" enabled))
-disablewallet
Do not load the wallet and disable wallet RPC calls
-fallbackfee=<amt>
A fee rate (in BCH/kB) that will be used when fee estimation has insufficient data. 0 to entirely disable the fallbackfee feature. (default: 0.00)
-keypool=<n>
Set key pool size to <n> (default: 1000)
-mintxfee=<amt>
Fees (in BCH/kB) smaller than this are considered zero fee for transaction creation (default: 0.00001)
-paytxfee=<amt>
Fee (in BCH/kB) to add to transactions you send (default: 0.00)
-rescan
Rescan the block chain for missing wallet transactions on startup
-salvagewallet
Attempt to recover private keys from a corrupt wallet on startup
-spendzeroconfchange
Spend unconfirmed change when sending transactions (default: 1)
-upgradewallet
Upgrade wallet to latest format on startup
-wallet=<path>
Specify wallet database path. Can be specified multiple times to load multiple wallets. Path is interpreted relative to <walletdir> if it is not absolute, and will be created if it does not exist (as a directory containing a wallet.dat file and log files). For backwards compatibility this will also accept names of existing data files in <walletdir>.)
-walletbroadcast
Make the wallet broadcast transactions (default: 1)
-walletdir=<dir>
Specify directory to hold wallets (default: <datadir>/wallets if it exists, otherwise <datadir>)
-walletnotify=<cmd>
Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)
-zapwallettxes=<mode>
Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup (1 = keep tx meta data e.g. payment request information, 2 = drop tx meta data)
ZeroMQ notification options:
-zmqpubhashblock=<address>
Enable publish hash block in <address>
-zmqpubhashblockhwm=<n>
Set publish hash block outbound message high water mark (default: 1000)
-zmqpubhashtx=<address>
Enable publish hash transaction in <address>
-zmqpubhashtxhwm=<n>
Set publish hash transaction outbound message high water mark (default: 1000)
-zmqpubrawblock=<address>
Enable publish raw block in <address>
-zmqpubrawblockhwm=<n>
Set publish raw block outbound message high water mark (default: 1000)
-zmqpubrawtx=<address>
Enable publish raw transaction in <address>
-zmqpubrawtxhwm=<n>
Set publish raw transaction outbound message high water mark (default: 1000)
Debugging/Testing options:
-debug=<category>
Output debugging information (default: 0, supplying <category> is optional). If <category> is not supplied or if <category> = 1, output all debugging information.<category> can be: net, tor, mempool, http, bench, zmq, db, rpc, estimatefee, addrman, selectcoins, reindex, cmpctblock, rand, prune, proxy, mempoolrej, libevent, coindb, qt, leveldb, validation.
-debugexclude=<category>
Exclude debugging information for a category. Can be used in conjunction with -debug=1 to output debug logs for all categories except one or more specified categories.
-help-debug
Print help message with debugging options and exit
-logips
Include IP addresses in debug output (default: 0)
-logthreadnames
Prepend debug output with name of the originating thread (only available on platforms supporting thread_local) (default: 0)
-logtimestamps
Prepend debug output with timestamp (default: 1)
-maxtxfee=<amt>
Maximum total fees (in BCH) to use in a single wallet transaction or raw transaction; setting this too low may abort large transactions (default: 0.10)
-printtoconsole
Send trace/debug info to console instead of debug.log file (default: 1 when no -daemon. To disable logging to file, set debuglogfile=0)
-shrinkdebugfile
Shrink debug.log file on client startup (default: 1 when no -debug)
-uacomment=<cmt>
Append comment to the user agent string
Chain selection options:
-chain=<chain>
Use the chain <chain> (default: main). Allowed values: main, test, regtest
-testnet
Use the test chain. Equivalent to -chain=test.
Node relay options:
-bytespersigop
Equivalent bytes per sigop in transactions for relay and mining (default: 50)
-datacarrier
Relay and mine data carrier transactions (default: 1)
-datacarriersize
Maximum size of data in data carrier transactions we relay and mine (default: 223)
-minrelaytxfee=<amt>
Fees (in BCH/kB) smaller than this are rejected for relaying, mining and transaction creation (default: 0.00001)
-whitelistforcerelay
Force relay of transactions from whitelisted peers even if they violate local relay policy (default: 0)
-whitelistrelay
Accept relayed transactions received from whitelisted peers even when not relaying transactions (default: 1)
Block creation options:
-blockmaxsize=<n>
Set maximum block size in bytes (default: 2000000)
-blockmintxfee=<amt>
Set lowest fee rate (in BCH/kB) for transactions to be included in block creation. (default: 0.00001)
RPC server options:
-rest
Accept public REST requests (default: 0)
-rpcallowip=<ip>
Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. <IP_ADDRESS>), a network/netmask (e.g. <IP_ADDRESS>/<IP_ADDRESS>) or a network/CIDR (e.g. <IP_ADDRESS>/24). This option can be specified multiple times
-rpcauth=<userpw>
Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcauth. The client then connects normally using the rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This option can be specified multiple times
-rpcbind=<addr>[:port]
Bind to given address to listen for JSON-RPC connections. Do not expose the RPC server to untrusted networks such as the public internet! This option is ignored unless -rpcallowip is also passed. Port is optional and overrides -rpcport. Use [host]:port notation for IPv6. This option can be specified multiple times (default: <IP_ADDRESS> and ::1 i.e., localhost)
-rpccookiefile=<loc>
Location of the auth cookie. Relative paths will be prefixed by a net-specific datadir location. (default: data dir)
-rpccorsdomain=value
Domain from which to accept cross origin requests (browser enforced)
-rpcpassword=<pw>
Password for JSON-RPC connections
-rpcport=<port>
Listen for JSON-RPC connections on <port> (default: 8332, testnet: 18332, regtest: 18443)
-rpcthreads=<n>
Set the number of threads to service RPC calls (default: 4)
-rpcuser=<user>
Username for JSON-RPC connections
-rpcwhitelist=<whitelist>
Set a whitelist to filter incoming RPC calls for a specific user. The field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc 2>,...,<rpc n>. If multiple whitelists are set for a given user, they are set-intersected. See -rpcwhitelistdefault documentation for information on default whitelist behavior.
-rpcwhitelistdefault
Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault is set to 0, if any -rpcwhitelist is set, the rpc server acts as if all rpc users are subject to empty-unless-otherwise-specified whitelists. If rpcwhitelistdefault is set to 1 and no -rpcwhitelist is set, rpc server acts as if all rpc users are subject to empty whitelists.
-server
Accept command line and JSON-RPC commands
Copyright (C) 2009-2020 The Bitcoin developers
Please contribute if you find Bitcoin ABC useful. Visit <https://www.bitcoinabc.org> for further information about the software. The source code is available from <https://github.com/Bitcoin-ABC/bitcoin-abc>.
This is experimental software. Distributed under the MIT software license, see the accompanying file COPYING or <https://opensource.org/licenses/MIT>
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard.


Gallery
My first feature film. I am glad to let you know it has been selected for 'Seven Hills Film Festival, Hungary' as well as selected by NFAI in top 5 Asian Films.
I have played the role of a village girl who tries to console her brother in hard times, and tries to bridge gaps and differences between her parents and brother.
It was a wonderful experience shooting this film, and working with renowned actors such as Abhay Mahajan and especially earning my first payment as a professional actress. I was initially very nervous to face the camera for the first time
but my co-actors surely made it easy for me.
Tendlya is a film based on fans of the cricket maestro Sachin Tendulkar, and is a tribute to the legend himself and most importantly to his innumerable fans rooted in every corner of the world. Directed by passouts from FTII(Film and Telivision Institute of India) Nachiket waikar, filmed by Cinematographer Bala Sharma and produced by Sachin Jadhav. I worked as a lead actress in this film. It was a tough time for me shooting this film, as I simultaneously had my engineering exams going on. I use to code whenever I found idle time between shooting the scenes. It was really fun and one of the best experiences of my life. Looking forward towards its commercial release.
moreMishmi is a play depicting a brother-sister relationship. It was performed in the theatre competition named 'Firodia Karandak'. Main aim of the competition is to provide platform for students to show their arstistic musings. The competition has now evolved from just drama competition to one where elements such as sand art,sculptures,dance and radium art, etc are included. I performed live sand art at this competition. We the team of MIT,Pune University also won 3rd prize in Firodia Karandak.
morePluto is a satirical emphasis on various events taking place in the society. It hasn't been limited to any particular system but extends from the most basic system(education) to prominent system(political). It makes various bantering remarks on society and how profoundly social media restricts an individual from being a rationalist. I played multiple roles in this play such as a feminist and a teenage girl.
morePlay which actually introduced me to theatre, it is a mime play. I was thrilled by the idea of conveying the story without use of words. The idea of this play was inspired from 'Belarus' theatre production. The play commented on various social issues such as child trafficking, corruption, female infanticide, and LGBT rights. I have played multiple roles such as a victim of child trafficking and forced prostitution. We won the 3rd prize in this particular competition.
moreScene from 'The day' depicting improper functioning of legal institutions in India and demanding for its change.
moreWorking with DOP Bala Sharma was one of my best experiences. A shooting still from sets of 'Tendlya'.
moreThis particular picture of mine was captured while filming one of the scenes from Tendlya. I remember it was one of the scenes which I had rehearsed multiple times and wanted to be perfect.
morePlay showcasing father daughter relationship and making statements on taboo related to Menstural cycle. I played the female protagonist and won prize for acting ('Kakaji'award) at renownend 'Purushottam Karandak', as well as got my first cash prize from the audience which was an overwhelming experience. Our team also received first prize at 'Bharat karandak' and also won individual prizes for lights,sound,set and direction. We performed multiple shows in various parts of the state and priceless reactions and love of audience made it worth our efforts.
moreTimes of India covered an article related to our play Kashti as well as multiple renownend critics acclaimed the performances of actors in the play.
more


Package org.apache.nutch.net.urlnormalizer.protocol
URL normalizer to normalize the protocol for all URLs of a given host or
domain.
E.g., normalize
http://nutch.apache.org/path/
to
https://www.apache.org/path/
if it's known that the host
nutch.apache.org
supports https and http-URLs either cause
duplicate content or are redirected to https.
The configuration of rules follows the schema:
<host> \t <protcol>for example
nutch.apache.org \t https *.example.com \t httpThese rules will normalize all URLs of the host
nutch.apache.org
to use https while every URL from example.com
and its subdomains
is normalized to be based on http.
A "host" pattern which starts with *.
will match all hosts
(subdomains) of the given domain, or more generally matches domain suffixes
separated by a dot.
Rules are usually configured via the configuration file "protocols.txt". The
filename is specified by the property
urlnormalizer.protocols.file
. Alternatively, if the property
urlnormalizer.protocols.rules
defines a non-empty string, these
rules take precedence of those specified in the rule file.-
Class Summary Class Description ProtocolURLNormalizer URL normalizer to normalize the protocol for all URLs of a given host or domain, e.g.


Search for your favorite books to read forums and comments about the books. Figure out which books you want to read and engage with users that have read the same books that you have.


| user_cache_dir {rappdirs} | R Documentation |
This functions uses R_USER_CACHE_DIR
if set. Otherwise, they follow
platform conventions. Typical user cache directories are:
Mac OS X: ~/Library/Caches/<AppName>
Linux: ~/.cache/<AppName>
Win XP: C:\\Documents and Settings\\<username>\\Local Settings\\Application Data\\<AppAuthor>\\<AppName>\\Cache
Vista: C:\\Users\\<username>\\AppData\\Local\\<AppAuthor>\\<AppName>\\Cache
user_cache_dir( appname = NULL, appauthor = appname, version = NULL, opinion = TRUE, expand = TRUE, os = NULL )
appname |
is the name of application. If NULL, just the system directory is returned. |
appauthor |
(only required and used on Windows) is the name of the appauthor or distributing body for this application. Typically it is the owning company name. This falls back to appname. |
version |
is an optional version path element to append to the
path. You might want to use this if you want multiple versions
of your app to be able to run independently. If used, this
would typically be |
opinion |
(logical) Use |
expand |
If TRUE (the default) will expand the |
os |
Operating system whose conventions are used to construct the
requested directory. Possible values are "win", "mac", "unix". If |
On Windows the only suggestion in the MSDN docs is that local settings go
in the CSIDL_LOCAL_APPDATA
directory. This is identical to the
non-roaming app data dir (i.e. user_data_dir()
). But apps typically put
cache data somewhere under this directory so user_cache_dir()
appends
Cache
to the CSIDL_LOCAL_APPDATA
value, unless opinion = FALSE
.
tempdir()
for a non-persistent temporary directory.
user_cache_dir("rappdirs")


How to reach Kerala
Kerala “A narrow strip land” situated in the south western part of India. Arabian Sea on its west and Western Ghats mountain range on its east blooms with natural beauty and crossed by a number of water bodies (well- known as backwaters) has given beginning to internal water boating systems, which also work as the main trade means in the state.
You can reach Kerala by Air, Train and Bus
By Air
- Kerala can be accessed by air. The state has three main airports located at Thiruvananthapuram, Kochi and Kozhikode. Two of which Thiruvananthapuram and Kochi has an international airport which serves both major domestic and international flights all over the world, round the year while The Karipur Airport, Kozhikode present domestic airlines
By Trains
- Kerala is well-connected to all the major cities of India including the four metropolitan cities namely, New-Delhi, Mumbai, Kolkata, and Chennai through an effective train services link.
There are around 200 railway stations in Kerala which connect places both within and outside Kerala. Here one can use of Super-Fast, and express trains to reach ones preferred destination.
By Road
- Roads in Kerala are in much improved condition than other states in India.
Kerala is directly connected by road to some of the neighbouring states of South India like Karnataka, Tamil Nadu and Andhra Pradesh.
National Highway no.47, 17, 49, and an expanded system of metalled roads connect Kerala to the rest of the country. Buses, tourist taxis, and autos are the main modes of road transport.
By Water
- From Cochin (Kochi), there are routine ships attempting towards the Lakshadweep Islands. Backwaters of Kerala not only as a famous transportation medium but noted as prominent tourist attractions in themselves.
Today these internal water transport systems are the most popular travel merchandise of Kerala.


---
---
{% include header.html %}
Projects
2022
-
Since 2022 I'm working full-time at Spotify.
2021
-
For the last year, DPG media contracted me as a machine
learning engineer. Here, I work on the recommendation engine of a soon-to-be-launched multi-brand
app and website. Currently, my role is product owner technical debt.
2020
-
MonetDBe, an embedded version
of MonetDB with a SQLite compatible interface and fast Numpy array and Pandas DataFrame support.
-
eduVPN Linux client and Python API 2.0.
-
KERN-6, the 6th iteration of the KERN radio astronomy software
suite.
-
Pybl3p - Python & Pandas API for
Bl3p, the Dutch cryptocurrency exchange.
-
A new (0.11) release of python-snap7
Snap7 is an open source, Ethernet communication suite for interfacing natively with Siemens S7 PLCs.
2019
-
Training deep reinforcement learning agent to optimise long term investment strategies using a
simulation of the Dutch electricity grid for Alliander.
-
Algorithmic parfume design for scentronix. Collaborative
filtering for recommending parfume recipes based on a personality profile.
2018
-
Containerisation and packaging of software used in the search for signals from extraterrestrial intelligence.
Breakthrough Listen at
Berkeley SETI.
-
Simulation of realistic network metrics for MANRS.
-
Vacuum-cleaner - deconvolving radio telescope data using deep learning.
-
Modular data reduction pipelines for astronomy data based on CWL and KERN.
OBELICS industrial partner project for ASTERICS.
-
Software packaging and cluster tooling for
APERTIF
2017
2016
-
KERN, the radio astronomy software suite
-
Kliko, the Scientific Compute Container
Specification and Support Library
-
Live image and user interface for the sensor probe of the
Cyber Intel Framework
2015
2013
-
A Python API for
the snap7 Siemens PLC communication library
2012
-
Client side (javascript) encryption for
SURFfilesender,
the browser based file sharing platform
2011
-
Python API for MonetDB
-
Jan, an autonomous agent operating
on Twitter and correcting people's spelling mistakes
2010
- Sonic Gesture. Computer Vision software
written in C++ to translate real time hand poses into MIDI
2008
{% include footer.html %}


Orcid search - more user friendly than orcid()
orcid_search(given_name = NULL, family_name = NULL, past_inst = NULL, current_prim_inst = NULL, current_inst = NULL, credit_name = NULL, other_name = NULL, email = NULL, digital_object_ids = NULL, work_title = NULL, grant_number = NULL, patent_number = NULL, keywords = NULL, text = NULL, rows = 10, start = NULL, ...)
| given_name | (character) given name |
|---|---|
| family_name | (character) family name |
| past_inst | (character) past institution |
| current_prim_inst | (character) current primary institution |
| current_inst | (character) current institution |
| credit_name | (character) credit name |
| other_name | (character) other name |
(character) email |
|
| digital_object_ids | (character) digital object ids |
| work_title | (character) work title |
| grant_number | (character) grant number |
| patent_number | (character) patent number |
| keywords | (character) keywords to search |
| text | (character) text to search |
| rows | (integer) number of records to return |
| start | (integer) record number to start at |
| ... | curl options passed on to crul::HttpClient |
a data.frame
with three columns:
first: given name
last: family name
orcid: ORCID identifier
The goal of this function is to make a human friendly way to search ORCID.
Thus, internally we map the parameters given to this function to the actual parameters that ORCID wants that are not so human friendly.
We combine multiple parameters with AND
, such that
e.g., given_name="Jane"
and family_name="Doe"
gets passed
to ORCID as given-names:Jane AND family-name:Doe
# NOT RUN { orcid_search(given_name = "carl", family_name = "boettiger") orcid_search(given_name = "carl") orcid_search(given_name = "carl", rows = 2) orcid_search(given_name = "carl", verbose = TRUE) # }


Produces tables with the level of replication (number of replicates) and the experimental uncoded values of the quantitative factors to be used for rotatable Central Composite Design (CCD) experimentation and a 2-D contour plot of the corresponding variance of the predicted response according to Mead et al. (2012) <doi:10.1017/CBO9781139020879> design_ccd(), and analyzes CCD data with response surface methodology ccd_analysis(). A rotatable CCD provides values of the variance of the predicted response that are concentrically distributed around the average treatment combination used in the experimentation, which with uniform precision (implied by the use of several replicates at the average treatment combination) improves greatly the search and finding of an optimum response. These properties of a rotatable CCD represent undeniable advantages over the classical factorial design, as discussed by Panneton et al. (1999) <doi:10.13031/2013.13267> and Mead et al. (2012) <doi:10.1017/CBO9781139020879.018> among others.
| Version: | 1.1.0 |
| Depends: | R (≥ 3.5) |
| Imports: | grDevices, plotly, rsm, stats |
| Published: | 2018-05-18 |
| Author: | Timothy Schwinghamer [aut, cre], Dutilleul Pierre [aut, cph] |
| Maintainer: | Timothy Schwinghamer <timothy.schwinghamer at mail.mcgill.ca> |
| License: | MIT + file LICENSE |
| NeedsCompilation: | no |
| In views: | ExperimentalDesign |
| CRAN checks: | rsurface results |
| Reference manual: | rsurface.pdf |
| Package source: | rsurface_1.1.0.tar.gz |
| Windows binaries: | r-devel: rsurface_1.1.0.zip, r-release: rsurface_1.1.0.zip, r-oldrel: rsurface_1.0.2.zip |
| OS X binaries: | r-release: rsurface_1.1.0.tgz, r-oldrel: rsurface_1.0.2.tgz |
| Old sources: | rsurface archive |
Please use the canonical form https://CRAN.R-project.org/package=rsurface to link to this page.


Dec 2016 > Now
foryouandyourcustomers AG | Zurich | Switzerland
Software Architect and Developer
I work in close contact with customers satisfying their business requirements and realizing new technical commerce solutions. I keep also myself up to date on new technologies such as new architectures (microservices) and containerization.
Oct 2015 > Nov 2016
webtiser AG | Zurich | Switzerland
Technical Team Leader
My tasks go from approaching the most difficult issues in a project, identifying best technical and architectural solutions, being up-to-date on new hybris features and other technologies, up to mentoring and leading other developers.
Oct 2015 > Nov 2016
webtiser AG | Zurich | Switzerland
Technical Team Leader
My tasks go from approaching the most difficult issues in a project, identifying best technical and architectural solutions, being up-to-date on new hybris features and other technologies, up to mentoring and leading other developers.


THE TALENTED MR. RIPLEY A film review by Mark R. Leeper
Capsule: This is an old-fashioned murder story. There is little real violence, no chases; it is just one very ingenious, very unscrupulous person trying to get away with what he can. But the show is really how he does it and the suspense of wondering how long he can keep it up. This is a fairly intelligent thriller with a villain that one almost has to admire. The warm 1950s Southern Italy setting works for the film also. Though he occasionally stretches credulity, this is a fun film to go along with. Rating: 6 (0 to 10), low +2 (-4 to +4)
For me one of Alfred Hitchcock's best films is DIAL M FOR MURDER. It is a stage play barely adapted for film, but it is a very good stage play. We have in it a murderer who is a formidable force. His talent is not that he strong or fast. He does not come popping out at anybody. He does not outrun anyone. His skill is that he thinks very well on his feet. You can actually just see him thinking out possibilities and almost unerringly find the right one. Once he makes a decision he stays with it. He never seems troubled by uncertainty. THE TALENTED MR. RIPLEY is about a very similar sort of criminal genius. Quite a bit younger, but no less mentally agile is Tom Ripley (played by Matt Damon).
It is 1958. Tom Ripley is, to use his words, "a real nobody," a bathroom attendant and sometime piano player. But he is good a mimicry and at forging signatures.  When he comes in contact with the Greenleaf family, wealthy from shipping, he passes himself off as a friend from Princeton of Dickie Greenleaf (Jude Law), currently in Italy. He is treated like one of the family for a while, and Dickie's father Herbert Greenleaf (James Rebhorn) has a proposition for Tom. He will pay Tom $1000 to go to Italy and convince Dickie to give up his playboy ways and return home. Tom goes, meeting Meredith Logue (Cate Blanchett) along the way. In Italy Tom arranges a meeting and befriends Dickie and his fiance Marge Sherwood (Gwyneth Paltrow). All the while he is putting together plans to kill Dickie and, where necessary for his plan, take his place. Director Anthony Minghella's screenplay begins with this setup and brings the characters together and then lets them simmer together in the warm Italian sun for nearly an hour, choosing the leisurely pace of a good Agatha Christie film. The tempo is slow and thrills are cerebral, but we do get to meet and understand the characters and it pays off in the second half of the film. We see that in more than one sense that Ripley is expert in playing people. His one failure is to fool the unctuous Freddie Miles (Philip Seymour Hoffman), an old friend of Dickie. Freddie takes an immediate dislike to Tom, complicating the plan. Eventually there is a murder and Ripley has to be both himself and Dickie Greenleaf for a while. He is walking a tightrope and must remember with each person what version of reality he is trying to project. And as the film progresses his step must become ever more careful.
The roles must have seemed like a little bit of dj vu for the two male leads. Damon played the genius of lower class origins in GOOD WILL HUNTING. Jude Law played the aristocrat whose very identity is borrowed by someone else in GATTACA. In any case Law seems very much at home in his roll as the young jazz-loving jet setter. Damon seems sufficiently controlled. Paltrow is regal. Special mention should be made of one of the bit parts.
One of the ever more familiar faces showing up in films is Philip Baker Hall who in here has a small but important roll as an American lawyer. Hall, in his late 60s, is able to project an absolute authenticity of authority and at the same time a magnetism of a person in a position of power. Anyone who has seen the film HARD EIGHT was mesmerized by his performance from the very first scene. He has been in films since the early 1970s, but probably because of his performance in HARD EIGHT he is showing up in a lot of major films.
The plot of THE TALENTED MR. RIPLEY does not take a whole lot of thought before contrivances become apparent. But under the influence of the warm Italian sun, the audience is lulled into going along with it and even being thrilled as Ripley gets himself into and out of minor scrapes in his amoral attempts to steal a life. I give the film a 6 on the 0 to 10 scale and a low +2 on the -4 to +4 scale.
Mark R. Leeper<EMAIL_ADDRESS>Copyright 2000 Mark R. Leeper
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Oxygen Use
Hypoxia is the inadequate supply of oxygen to the body’s tissues.
- As altitude increases, the partial pressure of oxygen decrease
- Although the proportion of air that is oxygen is the same
- The amount of oxygen that the blood can absorb depends mostly on the pressure the oxygen exerts on the blood as it passes through the lungs
- The body lacking sufficent oxygen is called hypoxia
- Ischemic hypoxia: Reduction of blood flow through tissues
- Histotoxic hypoxia: Inability of tissues to utilize oxygen (often caused by drugs or alcohol)
- Hypemic (anemic) hypoxia: Reduction of the carrying capacity of oxygen by the the blood (can be caused by CO inhalation)
- Hypoxic hypoxia: Reduction of oxygen entering the blood (caused by reduced pressure)
- Altitude effects
- 10,000 feet: Blood can still transport 90% of the oxygen
- 18,000 feet: Can cause collapse
- Symptoms of hypoxia
- Dizziness
- Tingling of the skin
- Blue nails (cyanosis)
- Increased heart rate
- Vision narrow and blurs
- Personality changes
- Time of useful consciousness
- 25,000: 2 minutes
- 35,000: 1 minute or less
- Part 91 Rules:
- Above 15,000 feet pressure altitude: All occupants must use supplemental oxygen
- Above 14,000 feet: All required crew members must use supplemental oxygen
- Above 12,500 feet: All required crew members must use supplemental oxygen if fly for more than 30 minutes
- Part 135 Rules:
- Above 10,000 feet, after 30 minutes: Used by each pilot
- Above 12,000 feet: Used continuously
- Note that most pilots need supplemental oxygen below 12,000 feet; usually above 8-9,000 feet
- At night, the necessity is greater


DfE enquiries
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Press release
All 21 finalists have shown how they effectively used the pupil premium to help disadvantaged young people reach their potential.
The final shortlist of schools which have most effectively used the pupil premium to improve the life chances of disadvantaged pupils was announced today (22 April 2016).
A total of 21 schools across the country have been named as finalists in this year’s prestigious Pupil Premium Awards , with an awards ceremony in London next month (May) to celebrate their achievements.
The finalists have consistently shown high levels of attainment or significant rates of improvement among their disadvantaged pupils over time and demonstrated innovative and effective use of the pupil premium.
The pupil premium - worth £2.5 billion this year - has enabled schools to provide vital support to some of the most vulnerable children in their care. Figures show the attainment gap between disadvantaged pupils and their peers has narrowed since 2011, the year the pupil premium was introduced.
Minister for Childcare and Education Sam Gyimah said:
I would like to congratulate the finalists of this year’s awards who, through their creative use of the pupil premium, have each shown the impact that this funding and the dedication of teachers can have on improving the life chances of the next generation.
While we know that the attainment gap between disadvantaged pupils and their classmates has narrowed at both primary and secondary level, we want to go further, and I urge more schools to follow the example set by these finalists.
This year’s judging panel was made up of outstanding headteachers, including former award winners, and chaired by respected education expert Andreas Schleicher, Director of Education and Skills at the OECD . Renowned contemporary artist Tracey Emin will present the awards at the ceremony.
For the first time, the awards have been sponsored by a wide range of highly regarded organisations from the arts, culture, science and technology sectors, which will provide award-winning schools with exciting and culturally enriching opportunities to both their pupils and teachers.
All of the finalists have shown an impressive level of innovation - some schools have chosen very personalised interventions, others a more whole-school approach - but all have set high expectations for their pupils and teachers.
The pupil premium is worth up to £1,900 per child and can be used however schools see fit to close the attainment gap between disadvantaged pupils and their peers.
The government has committed to maintaining the funding throughout this Parliament. Since April 2011, around £6.23 billion has been given to schools to improve the attainment of disadvantaged pupils.
Attainment has risen in the latest year and our new measure shows the attainment gap between disadvantaged pupils and their peers has narrowed since 2011 - the year the pupil premium was introduced - by 7.1% at key stage 2 and 6.6% at key stage 4.
In the national awards, there will be winners in 4 categories:
Norbridge Academy (East Midlands)
Camp Primary & Nursery School (East of England)
Edward Pauling Primary School (London)
Northern Saints C of E Primary School (North East)
Lower Kersal Community Primary School (North West)
Blean Primary School (South East)
Ernesettle Community School (South West)
Tinsley Meadows (Yorkshire and Humber)
Caroline Chisholm (East Midlands)
St Albans Girls’ School (East of England)
La Retraite RC School (London)
St Wilfrid’s RC College (North East)
Ripley St Thomas (North West)
Maiden Erlegh School (South East)
Great Torrington (South West)
Selly Park (West Midlands)
Healing Science Academy (Yorkshire and Humber)
Greenfylde C of E First School (South West)
Hillcrest Early Years Academy (East Midlands)
The Link School (North East)
Park Campus Academy (London)
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Published: 22 April 2016