magcius / xplain Goto Github PK
View Code? Open in Web Editor NEWInteractive demos
Home Page: http://magcius.github.io/xplain/article/
License: MIT License
Interactive demos
Home Page: http://magcius.github.io/xplain/article/
License: MIT License
The clarity with which you communicate in your xplain article series is second to none. After reading, I sat down in front of a common lisp repl and made one of my own floating windows move in a circle, for no other reason that because, thanks to you, I could.
I need not mention your in-browser xserver implementation that causes anyone who gazes upon it to reconsider the basic nature of "web" development.
Your maturity as an author shines through when you describe X11 as it is, neither defending it nor belittling it. You rightly leave the reader to consider what might have been, and what can be.
It is my intent that this should be a self closing bug. I recognize that your xplain article series has consumed significant energy. I hope you recognize that it is not wasted, because the result, on this end, is nothing less than spectacular. Thank you!
When inspecting a window that has a background-pixmap, a label is added to the top level of the details pane containing the XID. This is added outside of the Attributes or Properties sections, without any label, looking like <span class="value xid">7</span>
, and it's not removed when selecting a new window. It also has unexpected styling (green italics, left-aligned to the edge of the pane), and since it's not removed, selecting the window multiple times causes it to just keep adding new numbers.
The responsible code is at line 531 of inspector.js. I would submit a PR to fix this, but I actually have no idea what the intended behavior here is, so I don't know what to do short of deleting the code. The XID is already visible in the tooltip for the background-pixmap, so I don't know what you were attempting to do by creating this label.
The link in "Some applications, like Chromium, actually still do this in their own window decorations." doesn't seem to work. The code is still there, but the code search interface doesn't seem to like the "rcl" parameter.
Maybe a link to the git repo is more stable: https://chromium.googlesource.com/chromium/src/+/d7d447a09a95eb7ad399eb8512f677a66e127d69/ui/views/window/window_shape.cc#12
Hey, first thing thank you for this series which make me understand more about x window system. i'm sorry for only call it awesome, despite how much work you did to make this series since i don't know how it could be resembled with better word.
i was really interested in learning X and linux which made me stumble to this series in my progress in learning xorg, with arch linux. to be honest it really helped me a lot to understanding how display server work, even though it wasnt irrelevant to what im looking for at the moment.
I'm sure this series can help more people understand how x window system works since not many resource on the internet is as good as this, please continue this series to help more people understand how x window system work
oh yeah, sorry for putting such request in issue, but is it possible ? :
once again i'd like to say thank you for this awesome series that may become greate resource for people to learn x window system.
I wanted to thank you for your excellent technical writing on the X Window System. If only all content available on the net was of this quality...
Since you asked for requests that may provide you with some motivation to continue writing - I'd like to learn more about the MIT-SHM extension. I'm interested in performant drawing to bitmaps, and it seems like the best solution that does not involve a GPU.
Thanks again,
Łukasz
What should happen:
Not being inspired to design a GUI for my OS based on X11
What happened:
Got inspired
Steps to reproduce:
Read the whole xplain series
Thanks a lot for taking the time to vulgarize it
Hi,
I just stumbled upon the articles while learing about Xlib programming, and wanted to thank you for the series. They become quite addictive, I think I read most of them on a single session! They are both fun and insightful in the same degree. And achieving that in matters as complex as some of the ones touched it's no easy feat...
So thank you very much for the time and effort invested, they really helped me understand all these complex topics in a more 'digestible' way.
Best regards,
Hi, I have stumbled upon your article when searching for an overview of Xorg.
Not only it gave me that but I have also learned something about computer graphics.
Thank you very much for such a great article, the interactive widgets were so good and really helped with understanding
Somebody please write a small node.js script that opens a "real" socket 600x and relays incoming connections to this, via websockets.
Besides the allure of testing against Real Clients(tm) that could actually be useful.
Hi,
Looking forward to the next XPlain if you get the urge/time to write it.
I've learnt heaps from reading it.
Thanks.
Cheers,
David
Is it me or is there something wrong with the math on this line
(16*4+8) bytes = 132 bytes
Anyway, the series is awesome! Thanks for the great explanation!
Internet Explorer binary is iexplore.exe
.
https://msdn.microsoft.com/en-us/library/hh826025(v=vs.85).aspx
https://github.com/magcius/xplain/blob/gh-pages/article/x-basics.html#L368
X was like a black box to me, then i read the documentation of the protcol, filled with todos, and it became black magic, then i stumbled on this. You are a rockstar. Please continue because waymayneverland
Hey there. I'm really enjoying your series on X-Windows. It's really incredibly helpful for someone who, like me, is interested in building modern GUIs, and learning from the mistakes of the past (but also learning from those insights). X has always been quite intimidating, and I suspect that your resource will be useful for a very long time for a much larger audience than you suspect.
Submitting a new issue that I appreciated it. Help!
I kept a tab open for weeks, moving from laptop to phone to continue reading. It was a joy to go into the details. Thank you for your efforts!
It would be useful to get updates without having to check the site.
[Sorry I can't give you a pull request to go with this, but I don't know how you would go about adding automatic RSS feeds when not using something like Jekyll.]
(found via hacker news)
Just noticed this sentence in composite.html with "OpenGL" repeated: "I'm using OpenGL to render the scene using OpenGL".
Did you mean one of those to be WebGL? Or something else?
Thanks for a great article series!
https://magcius.github.io/xplain/article/composite.html has this phrase:
"""
I, in perhaps an ill-fated attempt to remain impartial, won't give my opinion on this, specifically, but today I want to talk about another feature commonly seen in modern user interface design, and how it offers challenges with the drawing model X11 specified and expects clients to use.
"""
However, in https://magcius.github.io/xplain/article/x-basics.html:
"""
If I ever say "such-and-such is a feature of X", it's a bug.
"""
Thank you so much for this. I am only on the Regions article and don't how many more articles are there. I am kind of scared they will end much sooner than I would like. I wanted to learn more about how the X system works but I was very pessimistic about finding any good resource. BUT I DID!! All thanks to your brilliantly written articles. Again, thank you so much <3
When doing a subtract between 2 regions I expect the extents were src1.extents but instead I'm getting the union between src1 and src2 extents.
I'm not sure if that's intended but this line (https://github.com/magcius/xplain/blob/gh-pages/src/region.js#L319) is never executed in any of the operations. I thought it was executed when subtract op.
Thanks for this great explanation 👍
I really appreciate the articles you wrote here. I have found that documentation is rather vague when it comes to X11 protocol and the libraries we have for working with it, and just getting some clarification on some of the terminology has been pretty valuable. I have been in the process of writing parts to a sort of desktop environment and often find myself looking at manual pages like this which contain very little useful information. I stumbled upon your articles while looking for something in particular and, although I never really found an answer, I did see some information that may help me find the answer and learned a lot of other things at the same time.
After recently rediscovering this project (been looking for this for a really long time, after first trying the demos over a year ago), I was keen to try out some of the demos.
Unfortunately, some of them appear to be broken.
THE INTANGIBLE IMAGE won't let me drag the top kitten image, contrary to what the text implies
Go on, drag the top kitten around, and you'll notice it wobbling in real-time.
WINDOWS OF ALL SHAPES AND SIZES meanwhile doesn't display the circular window that is supposed to be there (and used to be there in the past). It does, in fact, not display anything but the root window and the inspector button.
I wanna thank you so much for putting all this work to write this series of articles, if you got the time can you explain Wayland too against the X11 and the benefits that Wayland offers. again Thank you.
x-basics.html#L323 This is how Windows works, and why you see the the repeated "IE6 crashed" window when explorer.exe
s/the the/the/
window-tree.html#L157 to construct a bunch of X11 windows as if they were widgets and get a nice, reflowing form form field.
s/form form/form/
These can be found in the future by "w3m -dump somefile.html | tr ' ,.?' '\n' | uniq -c | grep -v '^[ ]+1 ' | grep -i [a-z]"
there is probably a better way with awk (and I would love to see it).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.