<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/feed.xml" rel="self" type="application/atom+xml" /><link href="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/" rel="alternate" type="text/html" /><updated>2026-03-31T05:16:30+00:00</updated><id>https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/feed.xml</id><title type="html">Angela Gao</title><subtitle>CSCI-UA 480 Student, Spring 2026</subtitle><entry><title type="html">Week 10: Midterm Progress &amp;amp; Reflections</title><link href="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week10/" rel="alternate" type="text/html" title="Week 10: Midterm Progress &amp;amp; Reflections" /><published>2026-03-23T00:00:00+00:00</published><updated>2026-03-23T00:00:00+00:00</updated><id>https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week10</id><content type="html" xml:base="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week10/"><![CDATA[<h3 id="searching-for-the-right-issue">Searching for the Right Issue</h3>

<p>Over the past couple of weeks, our group has become much more comfortable navigating the AFFiNE repository, documentation, and issue tracker. At this point, our group have started looking through the pages of issues and figured out which one to take over.</p>

<!--more-->

<p>One of the biggest things we realized this week is that finding a suitable issue is more challenging than we initially expected. We have been regularly browsing the issue tracker and identifying potential bugs or improvements that seem manageable for new contributors. However, we ran into a recurring problem: several of the issues we were interested in ended up being resolved quickly by other contributors before we had the chance to start working on them.</p>

<p>Another challenge is that many of the open issues are feature requests rather than small bugs. Because of this, our first initial response was to ignore it and continue filtering through the list for smaller scoped issues.</p>

<h3 id="reflection">Reflection</h3>

<p>Looking back on my previosu contributions, I noticed I’ve not been trying my hand out on harder contributions. Sure, I have OpenStreeMap and Wikipedia, but they’re not code based. For next steps, I do hope to be on track and get my hands dipped in heavier issues for example, ui/ux or maybe even some scrollbar issue for a website.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Searching for the Right Issue Over the past couple of weeks, our group has become much more comfortable navigating the AFFiNE repository, documentation, and issue tracker. At this point, our group have started looking through the pages of issues and figured out which one to take over.]]></summary></entry><entry><title type="html">Week 8: Exploring Other Teams’ Projects</title><link href="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week08/" rel="alternate" type="text/html" title="Week 8: Exploring Other Teams’ Projects" /><published>2026-03-15T00:00:00+00:00</published><updated>2026-03-15T00:00:00+00:00</updated><id>https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week08</id><content type="html" xml:base="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week08/"><![CDATA[<h3 id="looking-at-other-groups-experiences">Looking at Other Groups’ Experiences</h3>

<p>This week was interesting because, in addition to continuing work on our own project, we also looked through reports from other groups to see what kinds of projects they chose and how their experiences compared to ours. It was helpful to see how other teams approached it early on.</p>

<!--more-->

<p>One group we looked at chose to work on <strong>Keycloak</strong>, an open source identity and access management system. It seems like their process started similarly to ours. In their case, they considered options like ActivityWatch, Pandas, GIMP, and Keycloak before ultimately deciding on Keycloak. Our group also spent some time comparing different projects before selecting <strong>AFFiNE</strong>.</p>

<h3 id="comparing-project-setup">Comparing Project Setup</h3>

<p>On a similar note, both our teams managed to set up the development environment early. The projects themselves seem quite different in terms of complexity and focus. Keycloak is centered around authentication and identity management, which likely involves more backend-heavy systems and security considerations. In contrast, AFFiNE is a productivity and knowledge management application that is more focused on document editing, organization, and user interface features.</p>

<p>The Keycloak group mentioned exploring things like theme descriptions, translation support, and compatibility with bcrypt hashing for legacy databases. It’s also crazy to think that their group has already started making contributions. Though it’s ok if our team is starting out slow and steady.</p>

<p>Our group focused on browsing through the AFFiNE issue tracker to find smaller bugs or improvements that might be manageable for first contributions. Some of the issues we identified include things like adjusting the position of UI elements, fixing font-related problems, and improving how images or lists behave in the interface. These seem like good starting points because they are smaller, clearly defined problems that we can investigate without needing to fully understand the entire codebase yet.</p>

<h3 id="reflection">Reflection</h3>

<p>Overall, it seems like many groups are going through a similar early phase of open source contribution: choosing a project, setting up the development environment, and trying to understand the codebase well enough to find a first issue to work on. Even though the projects themselves are very different, the general workflow appears to be fairly consistent.</p>

<p>Seeing another group’s progress also reassured me that it is normal for the first couple of weeks to involve a lot of exploration and preparation.</p>

<p>Over the next week we plan to continue using the application, read more of the documentation, and start interacting with the project’s community through discussions or issues. Ideally, we will be able to either open a new issue or begin working on a pull request for one of the existing bugs we identified.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Looking at Other Groups’ Experiences This week was interesting because, in addition to continuing work on our own project, we also looked through reports from other groups to see what kinds of projects they chose and how their experiences compared to ours. It was helpful to see how other teams approached it early on.]]></summary></entry><entry><title type="html">Week 7: Choosing AFFiNE</title><link href="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week07/" rel="alternate" type="text/html" title="Week 7: Choosing AFFiNE" /><published>2026-03-08T00:00:00+00:00</published><updated>2026-03-08T00:00:00+00:00</updated><id>https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week07</id><content type="html" xml:base="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week07/"><![CDATA[<h3 id="forming-our-group">Forming Our Group</h3>

<p>This week our group decided on a project. We decided to communicate through an Instagram group chat and set a regular meeting time on Wednesdays from 8–9 PM. Our first meeting was held in person on March 4.</p>

<p>During this meeting we mainly focused on getting organized and making sure everyone was on the same page about expectations. One of the first things we completed was our group working agreement, which outlines how we plan to communicate, collaborate, and keep each other accountable throughout the semester. Having this agreement early on helped make the project feel more structured and less chaotic.</p>

<!--more-->

<h3 id="deciding-on-a-project">Deciding on a Project</h3>

<p>Before the meeting, everyone looked through a few possible open source projects so that we could come prepared with ideas. During the discussion, we compared different options and thought about things like how active the repository was, whether the documentation looked approachable, and whether we could realistically make contributions within the time we have for the class. We have considered Itch.io and even applications like Godot Engine.</p>

<p>After discussing several possibilities, our group decided to work on <strong>AFFiNE</strong>, an open source productivity and knowledge management tool. The project seemed interesting because it combines elements of document editing, organization, and collaboration, which makes it somewhat similar to tools like Notion. It also has an active repository and clear documentation, which makes it a good candidate for beginners trying to make their first contributions. Though, we probably would need to use it first to understand how the entire application works.</p>

<p>As a group, our biggest accomplishment this week was setting up the basic structure for collaboration and deciding on our project.</p>

<h3 id="next-steps">Next Steps</h3>

<p>So far we haven’t hit any major blockers yet, but we expect that the biggest challenge will likely be the development environment setup and understanding the structure of the project’s codebase. And good news, we have already setup that environment.</p>

<p>Our short-term plan is to start small. Over the next week we plan to explore the application itself, read through the documentation, and identify smaller beginner-friendly issues that we might be able to contribute to.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Forming Our Group This week our group decided on a project. We decided to communicate through an Instagram group chat and set a regular meeting time on Wednesdays from 8–9 PM. Our first meeting was held in person on March 4. During this meeting we mainly focused on getting organized and making sure everyone was on the same page about expectations. One of the first things we completed was our group working agreement, which outlines how we plan to communicate, collaborate, and keep each other accountable throughout the semester. Having this agreement early on helped make the project feel more structured and less chaotic.]]></summary></entry><entry><title type="html">Week 6: Thinking About Our Group Project</title><link href="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week06/" rel="alternate" type="text/html" title="Week 6: Thinking About Our Group Project" /><published>2026-02-27T00:00:00+00:00</published><updated>2026-02-27T00:00:00+00:00</updated><id>https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week06</id><content type="html" xml:base="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week06/"><![CDATA[<h3 id="hopes-for-our-group-project">Hopes for Our Group Project</h3>

<p>For our group project, I hope we can contribute to something that feels meaningful but also that looks like it needs some UIUX fixing. I would prefer working on something still widely used, so that our contributions can realistically be accepted and also for bragging rights. Ideally, it would be something related to web development, game development or education tools, since those are areas I feel more comfortable with.</p>

<!--more-->

<p>I think one thing that may stand in our way is the learning curve. Many open source projects have large codebases, unfamiliar structures, and contribution guidelines that can feel overwhelming at first. It can also be overwelming if that project is more math-based than you’d expect. The development environment setup worries me as it seems intimidating.</p>

<p>In terms of what I can contribute, I feel confident front-based, git, and I’m comfortable with structure. I might not be the strongest at complex backend logic, but I can contribute consistently in areas where clarity and design matter.</p>

<h3 id="small-contributions-so-far">Small Contributions So Far</h3>

<p>So far, my small contributions have mainly involved opening issues for the course site, and some wikipedia edits. I also attempted to set up development environments and looked through beginner-friendly issues to see what might be manageable for us. The biggest challenge for me was thinking what do I want to work on next? Well I’m proud of any contribution I made, even if it’s just wikipedia. But what next? Should I jump from wiki all the way to something like Visual Studio Code? That sounds scary.</p>

<p>Overall, this week made me realize that contributing to open source is less about making huge changes and more about taking small, consistent steps. I’m just not sure if I can find any more small steps to take after contributing to wikipedia. What’s is there next that isn’t crazy big.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Hopes for Our Group Project For our group project, I hope we can contribute to something that feels meaningful but also that looks like it needs some UIUX fixing. I would prefer working on something still widely used, so that our contributions can realistically be accepted and also for bragging rights. Ideally, it would be something related to web development, game development or education tools, since those are areas I feel more comfortable with.]]></summary></entry><entry><title type="html">Week 5: Looking Ahead to Open Source</title><link href="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week05/" rel="alternate" type="text/html" title="Week 5: Looking Ahead to Open Source" /><published>2026-02-22T00:00:00+00:00</published><updated>2026-02-22T00:00:00+00:00</updated><id>https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week05</id><content type="html" xml:base="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week05/"><![CDATA[<h3 id="browser-extensions">Browser Extensions</h3>

<p>Over the past two weeks, my partner and I worked on building our browser extension. This experience helped me understand more clearly browser extensions even work. Even though the extension itself had it few bugs and more features needed to implement, it felt useful. Dividing responsibilites and given one that suits your strong suit really helped get this project going.</p>

<!--more-->

<p>We’ve seen a few other browser extensions as well. Some extensions focused on productivity, while others focused more on humor. It’s crazy and hard to understand how people come up with these ideas sometimes. I myself always gets into a brain fart.</p>

<p>My biggest takeaway from both my own group and others is that building something usable is more important than making something complicated. Clear design and purpose make a project more meaningful. It’s also ok if the project itself have a long way to go because that’s what open source is for.</p>

<h3 id="thoughts-on-the-oss-summit-videos">Thoughts on the OSS Summit Videos</h3>

<p>A talk by Craig McLuckie discussed the risks involved when developers rely on AI tools. It made me realize that even though AI can help generate code faster, developers still need to understand and review what they are using. When it comes to documentation, even AI might need some reveiwing.</p>

<p>I also watched a conversation between Linus Torvalds and Dirk Hohndel. Linus talked about how he started projects because he personally needed them. He also believe that well if there’s going to be AI, might as well use it and move faster with it.</p>

<h3 id="presentation-skills-reflection">Presentation Skills Reflection</h3>

<p>After watching many student and conference presentations, I learned that presentation style makes a big difference. The best presentations were easy to follow and explained ideas clearly. Speakers who showed demos and spoke confidently made their projects easier to understand.</p>

<p>One important lesson for me is that confidence and preparation are very important. In the future, I want to improve by practicing more and making sure I explain ideas clearly instead of rushing. My mind can go empty when I think about what if I say things wrong. But, maybe if I have a clear structure to follow through, it could be easier.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Browser Extensions Over the past two weeks, my partner and I worked on building our browser extension. This experience helped me understand more clearly browser extensions even work. Even though the extension itself had it few bugs and more features needed to implement, it felt useful. Dividing responsibilites and given one that suits your strong suit really helped get this project going.]]></summary></entry><entry><title type="html">Week 4: Git</title><link href="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week04/" rel="alternate" type="text/html" title="Week 4: Git" /><published>2026-02-14T00:00:00+00:00</published><updated>2026-02-14T00:00:00+00:00</updated><id>https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week04</id><content type="html" xml:base="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week04/"><![CDATA[<h3 id="git-exercises">Git Exercises</h3>

<p>This week’s Git exercises helped me understand Git a lot better. I already knew Git to a decent level, but I usually don’t use commands like git log to check history. It showed me there’s a lot more I can do with Git, especially for tracking changes and understanding what’s happening in a repository. It made me feel more confident using Git beyond just add, commit, and push.</p>

<!--more-->

<h3 id="project-evaluations">Project Evaluations</h3>

<p>I looked at a few projects that other students evaluated. Some looked easier to contribute to because they had clear instructions and easier installation setup. Others seemed more complicated and harder to understand at first, like Brave, which is a browser. There’s so much you can contribute to, but the installation process alone can take up to an hour.</p>

<p>It made me realize that good documentation makes a huge difference. Projects that explain things well feel way less intimidating.</p>

<p>I’m excited to contribute to real projects that people actually use. It feels more meaningful than just doing assignments.</p>

<p>The biggest challenge will probably be understanding large codebases and knowing where to start. My plan is to start small, read the documentation, and look for beginner issues, especially in the wiki.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Git Exercises This week’s Git exercises helped me understand Git a lot better. I already knew Git to a decent level, but I usually don’t use commands like git log to check history. It showed me there’s a lot more I can do with Git, especially for tracking changes and understanding what’s happening in a repository. It made me feel more confident using Git beyond just add, commit, and push.]]></summary></entry><entry><title type="html">Week 3: Team Brown</title><link href="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week03/" rel="alternate" type="text/html" title="Week 3: Team Brown" /><published>2026-02-08T00:00:00+00:00</published><updated>2026-02-08T00:00:00+00:00</updated><id>https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week03</id><content type="html" xml:base="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week03/"><![CDATA[<h3 id="team-brown">Team Brown</h3>

<p>For our meeting, my team had multiple ideas. The current one we have decided on is a drop-down slider for social media tabs. For example, if a user had two tabs open in their browser—one being Brightspace and the other Discord—imagine being on Brightspace and hovering over the upper-right corner of the screen to have a tiny Discord window slide down where you could chat and communicate. The window would preferably be around 200px wide and half the height of the screen on the right side. It’s like a phone display in the top right when you hover above.</p>

<!--more-->

<p>This idea came to mind first because, for people like me who hate switching between tabs or applications that take up the full screen, it would be really handy to declutter my desktop.</p>

<h3 id="scope">Scope?</h3>

<p>This might be a very complicated project, so I think our team might have to scope it down. There are only three people on the team, but we haven’t run into any major issues so far. For collaboration, I’m well-versed in GitHub and handle JavaScript fairly well. However, I have never made a Chrome extension and am not sure if this project would allow us to manipulate different tabs and screen formats effectively. My biggest contribution so far has been initiating ideas and making small edits to our repository. During this activity, I also learned that I have quite a few pet peeves. We’ll see how this goes!</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Team Brown For our meeting, my team had multiple ideas. The current one we have decided on is a drop-down slider for social media tabs. For example, if a user had two tabs open in their browser—one being Brightspace and the other Discord—imagine being on Brightspace and hovering over the upper-right corner of the screen to have a tiny Discord window slide down where you could chat and communicate. The window would preferably be around 200px wide and half the height of the screen on the right side. It’s like a phone display in the top right when you hover above.]]></summary></entry><entry><title type="html">Week 2: What we really care about in Open Source</title><link href="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week02/" rel="alternate" type="text/html" title="Week 2: What we really care about in Open Source" /><published>2026-01-29T00:00:00+00:00</published><updated>2026-01-29T00:00:00+00:00</updated><id>https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week02</id><content type="html" xml:base="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week02/"><![CDATA[<h3 id="humans-on-the-internet-need-rules">Humans on the Internet Need Rules</h3>
<p>When exploring different open source projects, I realized that some are less about strict rules and more about setting expectations for how people should treat each other. It’s interesting looking at how different communities decide what flies and what absolutely does not. Obviously, it’s not always as simple as how monkey see and monkey go.</p>

<!--more-->

<p>When taking a look at the code of conduct for The Go project, we mainly see a few several lines of how to respect people and how conflicts should be handled. Having guidelines in place helps prevent small issues from turning into big conflicts especially when considering people contributing to these projects aren’t all from the same town. But yes, if everyone is from the same town, I’d say it’s ok to be rude.</p>

<h3 id="what-difference-does-it-make">What difference does it make?</h3>
<p>The Go project’s code of conduct is based on the Contributor Covenant. There’s not much change you’ll notice when reading these documents but compared to the original template, Go’s version is easier to read and places more emphasis on open discussion, accessibility, and community values. These changes make the document feel more welcoming instead of overly formal. It feels like Go wanted a document that encourages conversation and learning rather than just listing punishments. Though, I’d much prefer it to list punishments.</p>

<p>Some other code of conducts, like Eclipse takes a more detailed and structured approach. Their code of conduct (<a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Eclipse Community Code of Conduct</a>) is longer and more specific about enforcement and procedures. This could be because Eclipse is a large and long-running project that has likely dealt with more complicated conflicts over time, so they need clearer processes in place. The Sugar Labs code of conduct is based on the Ubuntu Code of Conduct, which gives it a different feel from Go’s. It offers versions in multiple languages, such as Spanish, which shows an effort to be inclusive and accessible. However, it does not clearly list support contacts or reporting methods, which makes it feel more like a set of guiding values than a strict rulebook. It seems as if they’d rather us to fix our issues rather than you reporting to them about your issues.</p>

<h3 id="check-this-one-out">Check this one out</h3>
<p>Let’s take a look at iNaturalist: Basically “Don’t Be Weird” (<a href="https://www.inaturalist.org/pages/community+guidelines">iNaturalist Community Guidelines</a>). While they are not called a “code of conduct,” they serve the same purpose. This might be the most specific code of conduct ever. Going through the examples, you can really tell they’re trying their best to dummy proof all the different possibilities of things that could go wrong. From minor inconvieniences to going out of their way to explain how to block a user but also at the same time suggest you really shouldn’t be blocking them. Listed on their site, they listed “Don’t write in all CAPS”. AND YOU DON’T HAVE TO HAVE THE LAST WORD. AND OF COURSE IF YOU DON’T LIKE SOMEONE JUST MUTE THEM. IF YOUR EMOTIONS ARE RUNNING HIGH, CALM DOWN. OVERALL, THE GUIDELINES FEEL PRACTICAL WHICH MAKES SENSE SINCE MANY PEOPLE CONTRIBUTE THOUGH INTERACTIONS RATHER THAN JUST THROUGH CODE.</p>

<h3 id="so-its-not-really-about-code">SO IT’S NOT REALLY ABOUT CODE</h3>
<p>LOOKING AT ALL THESE CODE OF CONDUCTS, YOU’D THINK PEOPLE FINALLY FOUND A WAY TO COLLABORATE WITHOUT THINGS EVER GOING WRONG. WELL NO. TRY FINDING A VIDEO ON THAT, YOU CAN’T. WELL YOU CAN WATCH <a href="https://www.youtube.com/watch?v=ZYwTDNA3Uac">“How to Drive Consensus and Transparency Within Open Source Communities”</a>, WHICH TELLS YOU THAT THERE’S NO RIGHT RESOLUTION TO WORKING WELL TOGETHER. BUT THERE’S SOMETHING YOU CAN DO TO WORK WELL TOGETHER AND THAT IS TO, JUST BE NICE.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Humans on the Internet Need Rules When exploring different open source projects, I realized that some are less about strict rules and more about setting expectations for how people should treat each other. It’s interesting looking at how different communities decide what flies and what absolutely does not. Obviously, it’s not always as simple as how monkey see and monkey go.]]></summary></entry><entry><title type="html">Week 1: Open Source</title><link href="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week01/" rel="alternate" type="text/html" title="Week 1: Open Source" /><published>2026-01-22T00:00:00+00:00</published><updated>2026-01-22T00:00:00+00:00</updated><id>https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week01</id><content type="html" xml:base="https://ossd-s26.github.io/Xuan4781-weekly/Xuan4781-weekly/week01/"><![CDATA[<h3 id="why-open-source">Why Open Source?</h3>
<p>When I hear “open source”, I think of source code that is pubilcly available and contributable. It’s a collaborative space where developers across the world work on the same project together. Open source is exactly like wanting to take apart a toy to see how it works. It’s great for learning especially when considering it’s real world code written by experienced developers from all over the world. It’s also free.</p>

<!--more-->

<p>However, some issues with open source may include the lack of security or quality. Because the code is open, someone out there might not be reviewing it carefully. Due to the lack of security, there’s even more reason for students in this field to understand how important version control and documentation is.</p>

<p>Most developers don’t work from scratch up and instead work on existing projects so I think learning how to properly contribute is a valuable skill.</p>

<h3 id="what-projects-do-i-regularly-use">What projects do I regularly use?</h3>
<ul>
  <li>VSCode</li>
  <li>Python</li>
  <li>Discord Bots</li>
  <li>Bootstrap</li>
</ul>

<p>As someone who enjoy UI/UX, I use Bootstrap often to style webpages and look for inspiration. From that, I then work out the layouts in VSCode. In addition, I make use of Discord bots, which is very useful when it comes to managing people in a server. It would be nice if rather than just using these tools, I can contribute to them.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Why Open Source? When I hear “open source”, I think of source code that is pubilcly available and contributable. It’s a collaborative space where developers across the world work on the same project together. Open source is exactly like wanting to take apart a toy to see how it works. It’s great for learning especially when considering it’s real world code written by experienced developers from all over the world. It’s also free.]]></summary></entry></feed>