Comments (21)
No, but seriously, thank you for your kind words. I do read every single email I get, and I'm warmed and touched by all of them. This was a surprise to see, and it really brightened my day up.
I'm still trying to write a few more articles, but they're not going as planned. You can see a really work-in-progress, unedited version of one my next articles here: http://magcius.github.io/xplain/article/menu.html . Feedback on that so far would be really appreciated, if you feel like you want to "contribute back".
I'll leave this issue open so others can leave their compliments and praise. Geez, I'm so self-centered.
from xplain.
Who is the guy that put the thumbs down emoji there. I will end you...
from xplain.
Hey all. My next article is out, and it's not quite about X11, but I feel like you might appreciate it regardless. :)
http://magcius.github.io/xplain/article/rast1.html
from xplain.
I wrote a bit about Wayland and Wayland protocols on my blog.
http://blog.mecheye.net/2014/06/xdg-shell/
from xplain.
It feels kina "wrong" to me to open an "issue" here just to say the same thing the many other "issues" have said, despite you literally asking us to do just that in the final paragraph of your series. So instead, I'll just write a comment here, which may well be wrong in a different way by spamming a notification to the other people that commented here... but whatever.
Awesome articles!
I can't wait to get some free time to play with this idea, maybe even combine it with this "node-webkit" thing so it actually can listen to a real socket... the possibilities are so exciting!
from xplain.
I'd also like to tell you that your series is awesome. I really enjoyed reading it and playing around with the examples.
You've answered quite a few questions I never knew I wanted to ask.
Is there some way to subscribe through RSS to updates to the series? I wouldn't want to miss the next installments and an RSS feed is the most convenient way for me to make sure of that.
from xplain.
Hiya, last week I realized I had no idea how pixels are painted to the screen and also realized that I've spent years shying away from anything that mentions Xorg. Thanks for your writing and amazing demos!
from xplain.
I'm writing an application to visualize math stuff, and I'm using pure XCB. I'm not a huge fan of the "higher level" libraries (ahem, GTK/QT/others-you-know-you-are), mostly because I find them bloated and sluggish. Native Xlib/XCB applications start up and exit blazingly fast (which is very important to me), are super responsive, and they can be optimized at a much lower level. Understanding the fundamentals of the X server (and, in particular, xorg's implementation) has gone a long way towards making stuff happen for me, but finding resources (such as Xplain) is incredibly difficult!
(Sometimes it makes me feel like the only way to get stuff explained is by asking Keith Packard...)
Anyways, thank you for these articles! They're invaluable, and we need more.
(As a sidenote, I'm not moving to Wayland until the OpenGL performance surpasses X11's, which, if it's never, is fine with me. So I do believe resources explaining X's internals are reasonably timeless.)
from xplain.
Found the series after it was posted on lobste.rs a few day ago, thanks for the good quality material!
from xplain.
Keep going.
from xplain.
You made me want to mess around with programming an X application because you presented everything clearly and effortlessly. No angry rants about how bad X is, no defensiveness over X's design decisions; it was a refreshing (and fun) read!
The in-browser X server was the icing on the cake. Most developers would include images or perhaps gifs to illustrate their points. You wrote a partial X server in JavaScript and wrote a Window inspector for it. That's dedication.
I encourage you to keep going, when you have time. At some point, I would also love to hear more about how Wayland is different from X, but perhaps that is already summarized elsewhere? :) I certainly don't want to cause you to write a Wayland.js!
from xplain.
That was one of the greatest technical articles I have read in a long time. It was pleasure to read! Really nice balance between technical details and keeping it interesting. I can imagine that making those gorgeous examples took quite a lot of time and it really made a big difference!
Thank you for your time and dedication!
from xplain.
I'm looking forward to more!
from xplain.
I promise to post any new articles of the series to http://blog.mecheye.net/ when done.
Otherwise, I don't have an RSS setup directly for this series -- GitHub Pages makes it a bit difficult to do. If anybody wants to try to make a setup for it using Jekyll or whatever, PRs are welcome.
from xplain.
I was sent this set of articles when I asked the i3wm community for learning resources and this was better reading that I'd ever expected. Thanks for all the work you've put in!
ps: 👋 @Jonahss
from xplain.
Great article! Very clear and thorough and the examples make it so much easier to understand. Thank you.
If you need some suggestions for new articles then handling text (in particular with freetype) would be very useful.
from xplain.
this tutorial is beautiful and so good for visual learners! Thanks so much for your hard work!
from xplain.
In a storming sea of X information, sure Xplain is a calm shore to which I land and from which I can jump back into the storm.
from xplain.
I recently fell in love with xmonad, and while diving into it's source code I felt the need to acquaint myself with the X Window System.
I'm so glad I stumbled upon your Explanations! The quality and clarity of writing is exactly what I needed to start demystifying X and it lifts my spirits to see such attention to detail and empathy for the reader. Thanks!
from xplain.
Stumbled upon this series yesterday, and found this useful and informative. Thanks!
from xplain.
I just realized I never mentioned it here but this project has reached an end for me. I left a bit of a postmortem on Hacker News:
Author here. I stopped working on this a few years ago, so now's as good a time as any for an overly-long, rambly, unedited retrospective.
When I started this, I was working on GNOME's window manager full-time, and wanted to learn intricately how X11's drawing model worked, so over the course of a few weeks in a hotel room, I recreated large parts of X11's drawing model in a web browser, fixing artifacts as I went along, until I feel I had a really good grasp of it. My initial test scene was a traditional desktop-like approach with a taskbar and xeyes, both of which are still in the codebase today, but untested.
I didn't know what I wanted to do with it, until I settled upon using snippets of it to build a long-form article. I learned a lot about the difficulty of writing, of pedagogy, of that blurred line between being technically correct 100% of the time vs. telling a few small lies here and there to keep the flow consistent and help people see the broader picture.
At my day job, I had mostly moved onto Wayland, where some of the bits I picked up here really helped me design better protocols and systems. My goal with the series was to try to be as neutral as possible, and my original design was to have a giant caution sign around "Author Opinion Zones" where I would talk about how certain design features haven't held up well in practice. But quickly, people on Hacker News or Phoronix or Reddit seemed to skim the article, pick up a piece here or there, and go on straight to bashing Wayland, gleefully unaware that I was one of the people making it.
So, the end result was that I basically stopped working on Xplain basically after the second article. The COMPOSITE article was one I made after a colleague was having trouble understanding COMPOSITE, and I figured it was easier to write with my framework than explain in a chatroom, and maybe some others would appreciate it.
I have a deep passion for sharing my knowledge, and Xplain was the format I first really used to do it widely, so I tried to keep it exciting for me by changing it from "Xplain" to "Explanations", and opening up the topics from X11 to just about anything, but at some point I was just unhappy working on it.
The last thing I was working on was a continuation of my Basic 2D rasterization article, where I had a fun code editor you could use to make your own graphics, but as fun as the technology was, I couldn't find a satisfying flow to the article, so I stopped it. Parts of it were later recycled for an article on the histories of 2D and 3D graphics.
Around mid-2016, I had stopped working on Linux and open-source graphics entirely, and by 2017 I had exited the open-source industry completely and jumped ship to professional game development. I still have a deep love for graphics and a passion to explain things. I just released a new side project a few days ago for it, even.
Here's what I'm working on these days.
https://noclip.website/
https://blog.mecheye.net/2018/03/deconstructing-the-water-effect-in-super-mario-sunshine/
https://www.youtube.com/watch?v=8rCRsOLiO7k
https://www.youtube.com/watch?v=mnxs6CR6Zrk
from xplain.
Related Issues (20)
- Very Interesting HOT 1
- Too inspirational
- Really liking this series, please continue working on it
- A thank you and a request. HOT 2
- Wrong extents for subtract operation? HOT 1
- Thank you and a request
- Awesome series, thank you!
- composite.html: "I'm using OpenGL to render the scene using OpenGL" HOT 1
- Chromium link in regions.html is broken HOT 2
- Comments for Basic 2D Rasterization HOT 14
- Wrong IE binary HOT 2
- just wanna say how awesome this series is
- Your "xplain" series is top notch !
- Very good articles. Thank you.
- Thank you!!
- composite.html mentions X11 without clarification HOT 1
- THANK YOU!!!
- Thanks for the 'Explanations' series!
- Great article
- Really appreciate it, and appreciate how its an issue :D
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xplain.