惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
WordPress大学
WordPress大学
Help Net Security
Help Net Security
Jina AI
Jina AI
Security Latest
Security Latest
Y
Y Combinator Blog
Project Zero
Project Zero
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
Know Your Adversary
Know Your Adversary
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
NISL@THU
NISL@THU
Cisco Talos Blog
Cisco Talos Blog
博客园 - 司徒正美
MyScale Blog
MyScale Blog
Cyberwarzone
Cyberwarzone
D
Docker
T
The Blog of Author Tim Ferriss
G
Google Developers Blog
C
CERT Recently Published Vulnerability Notes
B
Blog
L
LangChain Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
SecWiki News
SecWiki News
The Hacker News
The Hacker News
C
Check Point Blog
L
Lohrmann on Cybersecurity
V2EX - 技术
V2EX - 技术
S
Securelist
T
Threat Research - Cisco Blogs
Stack Overflow Blog
Stack Overflow Blog
TaoSecurity Blog
TaoSecurity Blog
云风的 BLOG
云风的 BLOG
Latest news
Latest news
人人都是产品经理
人人都是产品经理
L
LINUX DO - 最新话题
Application and Cybersecurity Blog
Application and Cybersecurity Blog
The Register - Security
The Register - Security
Webroot Blog
Webroot Blog
Simon Willison's Weblog
Simon Willison's Weblog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Security Blog
Microsoft Security Blog
AWS News Blog
AWS News Blog
C
Cybersecurity and Infrastructure Security Agency CISA
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
小众软件
小众软件
T
Tailwind CSS Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
宝玉的分享
宝玉的分享
O
OpenAI News

Secret Weblog

Becoming More Xee: A Modern XPath and XSLT Engine in Rust Looking for new challenges! Repeat Yourself, A Bit The Curious Case of Quentell The Humble For Loop in Rust The Humble For Loop in JavaScript Don Question Best Practices I Was a 1980s Teenage Programmer Part 5: Achieving Assembly I Was a 1980s Teenage Programmer Part 4: The Call of Assembly The Tooling Shift I Was a 1980s Teenage Programmer Part 3: MSX-2 JavaScript: when you need two ways to do it! Empowering Programming Languages Bloat and Retrofuturism Refreshing my Blog Again Random Rust Impressions Apilar: An Alife System I Was a 1980s Teenage Programmer Part 2: Olivetti M24 I Was a 1980s Teenage Programmer: the Alphatronic SolidJS fits my brain Is premature optimization the root of all evil? Framework Patterns: JavaScript edition Roll Your Own Frameworks Framework Patterns Secret Weblog Highlights Refactoring to Multiple Exit Points mstform: a form library for mobx-state-tree Seven Years: A Very Personal History of the Web Morepath 0.16 released! Is Morepath Fast Yet? Introducing Bob Strongpinion Punctuated Equilibrium in Software Morepath 0.15 released! Impressions of React Europe 2016 Morepath 0.14 released! Morepath 0.13 now with Dectate Dectate: advanced configuration for Python code JavaScript Dependencies Revisited: An Example Project The Incredible Drifting Cyber A Brief History of Reselect The Emerging GraphQL Python stack Thoughts about React Europe Build a better batching UI with Morepath and Jinja2 GraphQL and REST Server Templating in Morepath 0.10 10 reasons to check out the Morepath web framework in 2015 A Review of the Web and how Morepath fits in Morepath 0.9 released! Better REST with Morepath 0.8 Morepath 0.7: new inter-app linking They say something I don Life at the Boundaries: Conversion and Validation BowerStatic 0.4 released! Morepath 0.6 released! Morepath 0.5(.1) and friends released! New HTTP 1.1 RFCs versus WSGI Against On Naming In Open Source My visit to EuroPython 2014 Morepath 0.4.1 released (with Python 3 fixes) Morepath 0.4 and breaking changes Announcing BowerStatic Morepath 0.3 released! Morepath 0.2 Morepath Python 3 support The Call of Python 2.8 Morepath 0.1 released! WebOb and Werkzeug compared Morepath: from Werkzeug to WebOb Racing the Morepath: SQLAlchemy Integration The Centre Cannot Hold Breaking Morepath Changes Morepath Update How to do REST with Morepath Morepath Security the Gravity of Python 2 #python2.8 discussion channel on freenode Alex Gaynor on Python 3 Morepath Documentation Starting to Take Shape Back to the Center Morepath App Reuse Implementing Grok Grok: the Idea Why Linux Works for Me On the Morepath Reg, Now With More Generic! The New Zope as a Web Framework Jim Fulton, Zope Architect Renewing Zope Object Publishing The Weirdness of Zope The Rise of Zope My Exit from Zope Reg: Component Architecture Reimagined JSConf EU 2013 impressions Obviel 1.0! JS Dependency Tools Redux Succinct data structures
Titus Brown on the importance of communication
Martijn Faassen · 2009-12-19 · via Secret Weblog

I just read an insightful article by Titus Brown about the importance of communication in a team project, in the context of open source projects. It is a very good articulation of a topic I've thought about a lot myself as well.

When helping to manage Zope's participation in the Google Summer of Code I recognized the problems that Titus is talking about. One thing I told students in advance is simply to make noise

I've indeed seen some students, but not all, pop up on various Zope related mailing lists. Others have been more quiet. I'd prefer to hear some noise from you guys. Noise (if at least somewhat on-topic) is good for open source communities.

Noise is also good for you, as if you're noisy, people will get to know you and might actually start listening to some of your ideas. Don't be afraid to make noise. I've made an idiot and a nuisance of myself (on occasion, not all the time I hope!) in the permanent record for years and people still seem to listen to me.

That did have a positive effect. Still, the next year I started to explicitly require all participating students to give regular updates, just like what Titus is planning.

Without regular updates, it's far too easy for time (days, weeks, months) to pass by without obvious progress. Sometimes that is because the progress is hidden. Sometimes that is because the progress itself is in fact lacking: nobody knows you're blocked if you don't tell people about it.

Unfortunately even with those guidelines in place, it turns out to be difficult to make people communicate... Requiring regular reports helped me catch some potential problems early, but even raising my problem didn't always help to make the problem actually go away...

In part that's probably due to shyness or lack of confidence on the part of these people. When you communicate a lot, you may in fact end up saying things that aren't too smart once every while, and people probably worry overly much about that. Feedback can help you learn, and can only get feedback if people know you're there in the first place.

In part it's just due to differences in personality: not everybody communicates in the same way. That's fine - there are many ways to make a positive contribution, as long as you show what you're up to.

Sometimes too there is too much chatter and you just want to hunker down and get work done without distractions. It's just important to remember to resurface once every while.

On the other hand, communication can also be a great way to keep yourself motivated and productive. Sometimes it is quite comfortable to let time go by and slack off, and then it is nice nobody worries about your progress...

I'll just quoting myself again about noise (through Reinout):

I’m a natural noise-maker, and I discovered that while as a result of this I embarrass myself in public on a regular basis, it also means a lot of people know who I am. That’s a good thing.

And this, which I cannot even remember saying (through Michael Hudson):

faassen: anyway, if nothing else flapping your arms running around
will at least give an impression of activity. :)

Since this is a somewhat self-absorbed post anyway, quoting myself and all that, let me finish with a story about my early involvement in the Python community that I think is relevant to this discussion.

The comp.lang.python newsgroup when I joined it sometime in late 1998 was a small and friendly place. Thinking back it seems I spent most of my time posting very silly posts about the Python Secret Underground (PSU), an organization about which, naturally, I cannot say anything more. It was a lot of fun but perhaps not the most constructive contribution to the Python community.

I first went to an international Python conference in in the US in the year 2000. It didn't seem odd to me then, but afterwards I realized that many people there who I had never met before knew who I was. I also knew who many of them were. I think the silly interactions about the PSU that I was involved in on comp.lang.python explain a lot of that. It was completely unintentional, but today I still benefit from the connections I made then.

So, contribute to an open source community! Communicate! Communicate by creating code, writing documentation, or perhaps just by making people chuckle. Communication makes you more engaged in the project, and more motivated to contribute, and more creative and productive as a result. You may also be pleasantly surprised by the feedback.