Learn about the Fuchsia RFC Process (https://fuchsia.dev/fuchsia-src/contribute/governance/rfcs/rfc_process): what it is, when it should be used, how it works, and how to make the best of it.
Rethinking Object Orientation - By Kathleen Dollard
Decades after object orientation design altered programming, it’s still evolving, and we’re still learning to use it better. Many changes in the tools we use and how we write applications affect the approach we take to OOD. Some of these changes relate to architecture where approaches like SOA and the layering revolution behind Silverlight alter the place of traditional OOD within the bigger picture of architecture. Other changes are language improvements that alter the very meaning of the phrase “object” from a design point of view. Language features that alter our implementation of logical objects include generics, extension methods, delegates/lambda expressions, partial classes/methods, reflection, anonymous types, and declarative programming.
We’ll also explore the growing role of interfaces as a contractual base in composable applications and explore differences between traditional applications and ecosystem empowering applications. I’m really excited to give this talk to a group with diverse skillsets! Come ready for multi-way conversations because I want to learn from you.
Rethinking Object Orientation - By Kathleen Dollard
Decades after object orientation design altered programming, it’s still evolving, and we’re still learning to use it better. Many changes in the tools we use and how we write applications affect the approach we take to OOD. Some of these changes relate to architecture where approaches like SOA and the layering revolution behind Silverlight alter the place of traditional OOD within the bigger picture of architecture. Other changes are language improvements that alter the very meaning of the phrase “object” from a design point of view. Language features that alter our implementation of logical objects include generics, extension methods, delegates/lambda expressions, partial classes/methods, reflection, anonymous types, and declarative programming.
We’ll also explore the growing role of interfaces as a contractual base in composable applications and explore differences between traditional applications and ecosystem empowering applications. I’m really excited to give this talk to a group with diverse skillsets! Come ready for multi-way conversations because I want to learn from you.
Do the words 'open source' scare you (or your boss)? Do you want to contibute but don't know how? Did an angry person reply to your email scolding you for top-posting? This talk is for you! It will cover various real world relevant aspects of open source communites and projects, as well as put to rest various bits of FUD (fear, uncertainty, and doubt) that vendors may throw around. It'll cover best practices for interaction and contributing to open source projects and their communities (specific to archival, and also a more general foundation) on issue trackers, mailing lists, etc., with confidence, so that everyone can benefit.
You have just participated in an important meeting with your superior. How will you ensure that every part of the instructions you received will properly reach all subordinates, suppliers, and clients, located in different parts of the world?
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...The Linux Foundation
In this keynote talk, we will give an overview of the state of the Xen Project, trends that impact the project, see whether challenges that surfaced last year have been addressed and how we did it, and highlight new challenges and solutions for the coming year.
On November 5 the DNA is hold an open meeting of the Registry-Registrar Working Group. The mission of the group is to create a collaborative space for the domain name industry to develop common practices and improve the technical, business and policy environments for delivering services to Internet users.
Tips for Managing a Mainframe Internal Recovery Projecticu812
Originally published in the Winter 2007 issue of the Disaster Recovery Journal, this article by Mike Smith offers suggestions for managing the implementation of an updated Data Center / Internal Recovery project.
Project Management as an Art Form (DrupalCon Chicago 2011)Phase2
From DrupalCon Chicago 2011, Nicole Lind joins Joel Sackett and colleagues from other top agencies to discuss approaches to managing enterprise-level Drupal projects.
Questions answered by this session
Question 1: How does PM involvement impact the various phases of a project and the organization... and should it?
Question 2: How do you say "No" to the wrong type of work and still keep a positive client relationship?
Question 3: How do you partner with clients to ensure the project needs are met?
Question 4: Are there differences in managing Drupal projects versus other technology projects?
Question 5: What are some shared tools to help navigate the questions being answered in this session?
Building Better FLOSS Community Relationships @ FBDavide Cavalca
This talk will cover the work Facebook has done to become more involved with various upstream open source communities. We will start with why we believe it's important for companies to build strong relationships with the communities around the software they use - particularly in infrastructure. Next we will look at the steps we took to become better community citizens and finally we will discuss some case studies.
Specifics covered will include various projects we've contributed to, technical work such as back-porting various OS components from Rawhide to CentOS 7, benefits we've received and lessons learned.
NDC London 2020 - Challenges of Managing CoreFx Repo -- Karel ZikmundKarel Zikmund
NDC London 2020 conference in London, UK - 2020/1/29
Talk: Challenges of Managing CoreFx Repo by Karel Zikmund
https://sessionize.com/s/karel-zikmund/archived-challenges-of-managing-corefx-repo/24173
https://www.youtube.com/watch?v=zLB2_h-3ZS4
Do the words 'open source' scare you (or your boss)? Do you want to contibute but don't know how? Did an angry person reply to your email scolding you for top-posting? This talk is for you! It will cover various real world relevant aspects of open source communites and projects, as well as put to rest various bits of FUD (fear, uncertainty, and doubt) that vendors may throw around. It'll cover best practices for interaction and contributing to open source projects and their communities (specific to archival, and also a more general foundation) on issue trackers, mailing lists, etc., with confidence, so that everyone can benefit.
You have just participated in an important meeting with your superior. How will you ensure that every part of the instructions you received will properly reach all subordinates, suppliers, and clients, located in different parts of the world?
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...The Linux Foundation
In this keynote talk, we will give an overview of the state of the Xen Project, trends that impact the project, see whether challenges that surfaced last year have been addressed and how we did it, and highlight new challenges and solutions for the coming year.
On November 5 the DNA is hold an open meeting of the Registry-Registrar Working Group. The mission of the group is to create a collaborative space for the domain name industry to develop common practices and improve the technical, business and policy environments for delivering services to Internet users.
Tips for Managing a Mainframe Internal Recovery Projecticu812
Originally published in the Winter 2007 issue of the Disaster Recovery Journal, this article by Mike Smith offers suggestions for managing the implementation of an updated Data Center / Internal Recovery project.
Project Management as an Art Form (DrupalCon Chicago 2011)Phase2
From DrupalCon Chicago 2011, Nicole Lind joins Joel Sackett and colleagues from other top agencies to discuss approaches to managing enterprise-level Drupal projects.
Questions answered by this session
Question 1: How does PM involvement impact the various phases of a project and the organization... and should it?
Question 2: How do you say "No" to the wrong type of work and still keep a positive client relationship?
Question 3: How do you partner with clients to ensure the project needs are met?
Question 4: Are there differences in managing Drupal projects versus other technology projects?
Question 5: What are some shared tools to help navigate the questions being answered in this session?
Building Better FLOSS Community Relationships @ FBDavide Cavalca
This talk will cover the work Facebook has done to become more involved with various upstream open source communities. We will start with why we believe it's important for companies to build strong relationships with the communities around the software they use - particularly in infrastructure. Next we will look at the steps we took to become better community citizens and finally we will discuss some case studies.
Specifics covered will include various projects we've contributed to, technical work such as back-porting various OS components from Rawhide to CentOS 7, benefits we've received and lessons learned.
NDC London 2020 - Challenges of Managing CoreFx Repo -- Karel ZikmundKarel Zikmund
NDC London 2020 conference in London, UK - 2020/1/29
Talk: Challenges of Managing CoreFx Repo by Karel Zikmund
https://sessionize.com/s/karel-zikmund/archived-challenges-of-managing-corefx-repo/24173
https://www.youtube.com/watch?v=zLB2_h-3ZS4
Survey of corporate finance knowledge.
Top-of-mind for the CEO / founder:
- Company creation, and initial share pool
- Raising capital the usual way
- Raising capital via debt
- Raising capital via bridge loans
- Common Shares vs Preferred Shares
- Section 409A, and valuation
- Employee pool growth (and equity plan, e.g. http://www.slideshare.net/wealthfront/wealthfront-equity-plan)
Top-of-mind for employees:
- Shares, Options and valuing a grant
- Exercise
- Tax Scenarios
Developing an Immune System — The Hard and Soft Skills required to avoid OutagesPascal-Louis Perez
In just three years, Square has achieved ubiquitous recognition for mobile card processing grossing over $10B a year in credit card transactions. At the heart of Square's technology are many financial systems which must operate safely, correctly, and sustain rapid growth.
During this tech talk, Pascal will describe the concept of an immune system, go over best practices, share lessons leaned and provide a detailed layering of best practices. This talk will cover non-controversial topics such ad TDD, but from new angles. We'll also cover emerging practices like continuous deployment, and softer areas such as engineering management practices geared towards safety. You'll come out of this session with a fresh perspective on how to build software.
Applying Compiler Techniques to Iterate At Blazing SpeedPascal-Louis Perez
In this session, we will present real life applications of compiler techniques helping kaChing achieve ultra confidence and power its incredible 5 minutes commit-to-production cycle [1]. We'll talk about idempotency analysis [2], dependency detection, on the fly optimisations, automatic memoization [3], type unification [4] and more! This talk is not suitable for the faint-hearted... If you want to dive deep, learn about advanced JVM topics, devoure bytecode and see first hand applications of theoretical computer science, join us.
[1] http://eng.kaching.com/2010/05/deployment-infrastructure-for.html
[2] http://en.wikipedia.org/wiki/Idempotence
[3] http://en.wikipedia.org/wiki/Memoization
[4] http://eng.kaching.com/2009/10/unifying-type-parameters-in-java.html
Continuous deployment is a a process that allows companies to release software in minutes instead of days, weeks, or months.
Pascal-Louis Perez will describe how to use continuous deployment to iterate so fast that you run circles around the competition. He will cover the high level concepts as well as the nitty gritty details including examples from the continuous deployment system that he and his team developed at KaChing.
Pascal-Louis is the VP of Engineering and CTO at KaChing, where he practices continuous deployment continuously.
He previously worked at Google and holds a Master's degree in Computer Science from Stanford University.
At kaChing (www.kaching.com), we are on a 5-minute commit-to-production cycle. We have adopted continuous deployment as a way of life and as the natural next step to continuous integration.
In this talk, I will present how we achieved this extreme iteration cycle. We will start at a very high level and look at the two fundamental aspects of software: transformations, which are stateless data operations, and interactions, which deal with state (such as a database, or an e-mail server). With this background we will delve into practical matters and survey kaChing's testing infrastructure by motivating each category of tests with different kind of problems often encountered. Finally, we will look at software patterns that lend themselves to testing and achieving separation of concerns allowing unparalleled software composability.
(This talk will focus on a Java environment even though the discussion will be largely applicable.)
A high-level overview of the Closure Compiler's type system, type checking and type system capabilities. For a full description http://code.google.com/closure/compiler/docs/js-for-compiler.html
Abstract: kaChing powers the largest social investment site on the web with nearly 500,000 registered users. Our mission is to make the investment world open by offering transparent investment vehicles that directly compete with mutual funds.
Over the past year and a half, we have built a large feature set and evolved our software continuously with very short iterations and (almost) no regression. In this talk, I will present our experience building a large test-driven code base from the ground up. Using concrete examples, we will have a look at component based APIs, declarative programming, minimizing the concepts of an API, specific cases of separation of concern and interactions with third-party software. We will look at multiple programming paradigms from languages such as Scala, shell script and Prolog and see how these ideas can be embedded as syntactic sugar in your Java.
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)MdTanvirMahtab2
This presentation is about the working procedure of Shahjalal Fertilizer Company Limited (SFCL). A Govt. owned Company of Bangladesh Chemical Industries Corporation under Ministry of Industries.
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Dr.Costas Sachpazis
Terzaghi's soil bearing capacity theory, developed by Karl Terzaghi, is a fundamental principle in geotechnical engineering used to determine the bearing capacity of shallow foundations. This theory provides a method to calculate the ultimate bearing capacity of soil, which is the maximum load per unit area that the soil can support without undergoing shear failure. The Calculation HTML Code included.
Courier management system project report.pdfKamal Acharya
It is now-a-days very important for the people to send or receive articles like imported furniture, electronic items, gifts, business goods and the like. People depend vastly on different transport systems which mostly use the manual way of receiving and delivering the articles. There is no way to track the articles till they are received and there is no way to let the customer know what happened in transit, once he booked some articles. In such a situation, we need a system which completely computerizes the cargo activities including time to time tracking of the articles sent. This need is fulfilled by Courier Management System software which is online software for the cargo management people that enables them to receive the goods from a source and send them to a required destination and track their status from time to time.
Forklift Classes Overview by Intella PartsIntella Parts
Discover the different forklift classes and their specific applications. Learn how to choose the right forklift for your needs to ensure safety, efficiency, and compliance in your operations.
For more technical information, visit our website https://intellaparts.com
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
1. Fuchsia RFCs
A blueprint for technical decision making.
pascallouis@ on behalf of FEC | May 6th
2021
2. “A consistent and transparent path for making project-wide,
technical decisions.”
= design docs +
open-source friendly workflow +
authority for approval to be direction setting
In short, RFCs is Fuchsia’s legislative branch when it comes
to technical decisions.
What are RFCs
3. Avoid information silos, all parts of Fuchsia abiding by the same
methodology for technical decision making.
Clarifies how technical decisions are made, provides a designated
group of technical leaders to turn to if blocked.
Helps all have access to the rationale and thought process behind
technical decisions. Builds a detailed corpus of knowledge which
can be back-referenced.
Quality control mechanism, ensuring any Fuchsia-wide technical
decision is vetted appropriately before proceeding.
Why do we have RFCs
4. “Technical decisions that have broad impact across the
project require broader agreement and must be socialized
with the project using the RFC process.”
i.e. any Fuchsia-wide technical decision goes through the
RFC process. When in doubt, you likely want to do an RFC.
Read more about when to use the process, or ask on
eng-council-discuss@fuchsia.dev.
RFCs levels the playing field
5. Defining “broad impact”
- General criteria RFC-0001
- Localized criteria Zircon (RFC-0006) and FIDL (RFC-0049)
"Each area is encouraged to submit additional criteria for
when an RFC should be followed for their respective area. If
criteria for an area exists, the FEC will ensure that
appropriate stakeholders are looped in." – RFC-0017
When to use the process
6. Process
Socialize Draft Iterate Last Call
Accepted
Rejected
Withdrawn
submit
https://fuchsia.dev/fuchsia-src/contribute/governance/rfcs/rfc_process
7. You have an idea? Talk with your peers about it, test your
idea against what other may think, learn how to best
describe it, related topics, previous approaches, etvc.
(This is an informal step in comparison to the rest of the
process.)
Process: 1. Socialize
8. Mechanically, draft your RFC by copying the template, and submit a
CL.
Start a thread on eng-council-discuss@fuchsia.dev announcing your
RFC.
An FEC member will be appointed to your RFC and serve as a PoC going
forward. (The FEC member will announce themselves to you.)
Process: 2. Draft
9. (That’s where the bulk of the work is.)
- Identify stakeholders;
- Have your RFC reviewed;
- Address comments, e.g. improve your write up, adapt your design,
or both;
- Rinse, repeat.
Once things have converged, you should ask to move to last call by
responding to the eng-council-discuss@fuchsia.dev thread.
Process: 3. Iterate
10. Who are the stakeholders?
- FEC can help, if needed, we can work with you to identify them.
Process: 3. Iterate
11. What if things do not converge?
- Take a step back, is there agreement on the problem statement?
- Is there agreement about the solution statement? If not, can you
articulate the points of contention?
- Find a faster medium than Gerrit to discuss, get people
together.
- Are dissenters stakeholders, or onlookers? Only stakeholders’
votes matter during ratification.
- FEC can help, if requested, we can organize a design review for
your RFC.
Process: 3. Iterate
12. Have things converged?
- Maybe you’re unsure whether you have sufficiently converged,
e.g. you have a -1 or open threads, but feel the person is not a
stakeholder.
- FEC can help, we can help provide focus to the design
conversation, and identify key objections.
- Ideally get to a point where there are no more open comment
threads and stakeholders have +1 or -1 the CL.
Process: 3. Iterate
13. Once conversation has converged (stakeholders looped in and +1’ed,
no more open threads) request the RFC to be put in last call.
The FEC appointee will review the RFC, and move it to last call.
An update on the eng-council-discuss@fuchsia.dev thread will be
posted.
Last call period is a minimum of 7 days to balances the author(s)
desire for velocity with the stakeholder(s) desire for time to
review the document. (Stakeholders can request more time if needed.)
Process: 4. Last call
14. After the 7 days waiting period, your RFC will be reviewed by
FEC. Three possible outcomes:
- Accepted → Update CL with #, merge. Now, get back to work.
- Rejected → Author a rejection rationale to be finalized with
FEC appointee, update CL with #, merge. Rejection rationale
tends to be very valuable for future designs to build upon.
- Back to Iterate. Do not pass go. Do not collect $200.
Process: 5. Submission
16. - It’s a decision making tool, results in a clear yes/no.
- Resolve technical debates decidedly. The written medium
is less forgiving about ambiguity.
- Can avoid investing too much in a direction that isn’t
aligned with the overall project-wide technical
direction.
Leverage RFCs to your advantage
17. - Helps to build the technical foundation of an area.
- Tool to capture crisp rationale for choices, trade offs,
analysis.
- Can be the basis to generalize design principles.
- Also a quality control mechanism for Fuchsia.
So also, do it because you have to.
Leverage RFCs to your advantage
18. Avoid the Waterfall
- Don’t fall in the trap of writing a whole long RFC on theorics,
that is unlikely to get ratified.
- We don’t believe in waterfall, and the RFC process is not an excuse
for good ‘ol iterate to success.
- Good RFCs will come from detailed understanding of the domain,
likely after having worked in that domain, and experienced the
issues first-hand
- An RFC should happen at the point in time where you have enough
understanding of the road ahead to write it in stone (well,
malleable git-repo backed stone).
- The “before RFC” is likely prototypes, or experimental
implementations. The “after RFC” is taking your solution to
production.
19. “Unlike cooking, for example, where largely edible, if raw,
ingredients are assembled, cut, heated, and otherwise
manipulated into something both digestible and palatable,
writing is closer to having to reverse-engineer a meal out
of rotten food.”
— David Rakoff
Shitty First Draft
20. - Start a draft! Google Doc is great, write pseudo Markdown
to make it easier to convert later.
- Seek early reviews, discuss your draft with others.
Refine.
- Work to have some alignment on the RFC within your team,
or if you are purposefully proposing something against
strongly held opinions simply say so and explain.
Gotta start somewhere, somehow
21. - Once you’ve got a draft you’re happy with, convert
quickly to Markdown and create a CL.
- We want to have conversations out in the open, where all
can get the context.
- If there were interesting conversations leading up to the
CL, capture them as best you can (e.g. ask people to
copy-paste their questions).
- Avoid iterating ad nauseum prior to a CL. The process of
convergence is interesting, and bringing all along helps.
Convert to a CL
22. Focus on the arc, the story of your design.
Start with the setting. Assume the reader has little context.
What are we trying to solve, and why are we not achieving this right now?
Give a real-life example. From there, generalize to state the problem
statement.
How are you going to solve this? Focus on each detail of your solution, and
how it contributes to the whole.
Contrast and compare. What other ways are there to solve this problem, and why
are you not pursuing them?
Good RFCs are great stories
23. Be your own editor
Spend the time to edit down, shorter crisper better.
Use real-life concrete examples, it’s easier to follow than abstract ones.
Provide as many links as possible, it exemplifies how one decision builds on
another, builds on another.
Sometimes, you’ll want to define terms and provide background before the core
text. Like here, here, or there.
Ask for help, lots of people are happy to read and review early drafts. Or listen
to the master Ira Glass on storytelling part 1, pt 2, pt 3, pt 4.
24. Good examples
- RFC-0040: Identifier uniqueness
- RFC-0064: Box<Knox>
- RFC-0077: zx_clock_update accuracy improvement
- RFC-0083: FIDL versioning
- RFC-0085: Reducing the zx_status_t space
25. It pays to get comfortable writing Markdown. It’s sure
simpler than C++, but good Markdown isn’t trivial either.
- fuchsia.dev uses Hoedown, though an easier to read spec
is the CommonMark Spec. There’s also the original spec.
- Use a rewrapping plugging for your IDE, e.g. Rewrap for
VSCode
- Live Markdown editor
https://jbt.github.io/markdown-editor/ (Github flavor)
- There’s a Fuchsia specific Markdown linter in the works.
Markdown
26. Woah, writing an RFC looks like so much work!
“Weeks of coding can save you hours of planning.”
We are building a platform. Fuchsia-wide decisions have
large ramifications. Our areas are highly interrelated, one
decision here impacts something else there.
Explicit coordination and alignment is the way to build the
best platform.
Velocity of decision making increases with clear precedent,
and clear guiding principles. RFCs help achieve both.