View on GitHub

Quorten Blog 1

First blog for all Quorten's blog-like writings

Wow, now this is really interesting. A record store about to go out of business, but instead was bought by the Internet Archive. They’ve been on the lookout for the opportunity to digitize rare and obscure records.

20200520/https://www.seattletimes.com/entertainment/music/a-happy-ending-for-seattles-bop-street-records-a-nonprofit-buys-up-the-entire-collection/

Wow, this New York Times article is really interesting. Coronavirus has taken the hardest employment hit on the lowest income workers and the lowest hit on the highest income workers. 39% jobless earning less than $50,000 annual salary, 20% jobless earning $50,000 and above, and only 13% jobless earning more than $100,000.

20200520/https://www.nytimes.com/2020/05/14/business/economy/coronavirus-jobless-unemployment.html

Wow, this is really interesting, TSMC planning to build a new fabrication facility in Arizona. They could have picked anywhere in the world to place it, and they decided Arizona was the most strategic location. The facility will utilize TSMC’s 5-nanometer technology for semiconductor wafer fabrication and have the capacity to produce 20,000 wafers per month.

20200520/https://azgovernor.gov/governor/news/2020/05/governor-ducey-announces-global-industry-leader-tsmc-build-advanced

How do you draw a circle or circular arc using Bresenham’s algorithm with the ability to start at an arbitrary point along the circle? It’s definitely possible, it’s just that it requires more computation up-front, here’s how.

What factors are you given?

  • The current point.

  • The starting angle, vectors are preferred.

  • The radius. This may be expressed in the starting angle vector.

So now we need to compute the non-trivial starting parameters. y0 aned y^2 are easy to directly compute from the current point and angle vector. What about y_odd? Well, remember the sum of odd numbers formula to iteratively compute y.

(y + 1)^2 == y^2 + 2*y + 1

So now this means that we simply compute (2 * y + 1) to get y_odd. And for proper rounding, we add one more on top of that.

Computing x0 and x^2? That is almost as easy, but remember we must be subtracting from the radius. So, after making that adjustment the rest of the parameters can be computed with ease.

Ugh, when working on my various projects, I keep asking myself. Is this really necessary? As the answer, unfortunate for me who is impatient and wants to hurry through these things, is yes, they are necessary. The reason why I am doing this is because I want to really build in more quality than you get from the stock commodity solutions on the market. That means I’ve got to put more effort into adding quality into the things which are currently just being sosld as-is on the market for a lower quality, albeit at a much higher price.

Really? Well, I mean, you get the solution faster, but to you, it comes at a higher monetary price over a shorter period of time, all at a over level of quality than would be possible had you designed your more expensive solution first, expensive in terms of your time though not in terms of your money. I mean, come on, what is your unpaid free time worth? Substantially, you’d be led to believe that it is worth zero, because you are being paid zero. And that’s why it’s cheaper because it’s not worth as much on a monetary scale. When not many people care about high quality solutions, often times it doesn’t pay to try to build more quality into a product than the ones the market already seems to be satisfied with, but are of a lower quality.

So, here is the dependency graph of some of my high priority projects that I am in some way working to move forward.

Read on →

Reading the “Xlib - C library X reference” X11 documentation, I am still confused as to a particular point of the X11 XPutImage() documentation. Yeah, I understand ZPixmap is the conventional RGB image format representation, but really, what is this XYPixmap representational form? I can’t help but be curious about it.

20200519/DuckDuckGo xybitmap format
20200519/DuckDuckGo xypixmap format
20200519/https://rkennke.wordpress.com/2007/07/12/xypixmap/

Alas, the article is only a prompt asking the question seeking an answer. But indeed, there is a hint. “Search for XYFormat in rfc1013.”

Also, there’s a StackOverflow question on this, surely a direct answer will be there.

20200519/https://stackoverflow.com/questions/28323960/what-is-the-difference-between-xypixmap-zpixmap-ximage-xshmimage-and-bitmap-i

No… the StackOverflow question has a half-hearted answer. Yeah, it hints that an XYPixmap is a list of separated planes, i.e. first instead of RGB data being interleaved and adjacent, first comes all the red data in an image, then comes all the green data in an image, then comes all the blue data in an image. But what do they mean by planes? Does one “bit plane” include only one bit, or is it really all the bits of the same channel together? So this is why we need to keep searching for rfc1013.

Read on →

Having trouble with an LCD screen in a hand-held electronic that appears to have dead segments or pixels? Almost always, these kind of problems come from loose electrical connections. Particularly, in hand-held electronics, the LCD screen is connected to the printed circuit board using a flat ribbon cable that is bonded using hot glue, and this glue-down connection can come loose over time. Fortunately, it is fairly easy to fix this using simple tools like a hot air gun to soften the glue and a pencil eraser to push the ribbon back down closer to the board to make electrical connection.

20200519/DuckDuckGo multiplexed 7-segment lcd display internal wires loose
20200519/https://hackaday.com/2009/06/20/repair-a-malfunctioning-lcd/
20200519/https://www.instructables.com/id/Repair-a-Malfunctioning-LCD/

However, the if this does not work to fix the problem, it might be more nuanced. LCD displays with a large number of segments or pixels are always multiplexed, and multiplexed LCD displays have an internal interconnect grid to connect individual segments to the ribbon cable wires. It’s possible that connections can come loose in here. If that’s the case, yeah, then attempting to repair the ribbon cable won’t maky any difference. I’d like to assume that is less likely than the other case, but if all else fails, sure, that’s something to suspect too. I mean, if this is the case, you can still use the LCD screen if you find a way to repair those internal connections in a non-invasive manner.

Read on →

Concerned about getting COVID-19 from the grocery store or an adjacent outdoor runner that coughs on you when you are walking? Don’t be. The main risk is spending a significant amount of time indoors sharing the same air space as other people. This means workplaces, restaurants, face to face interaction, social gatherings, and public transport. Interestingly, incidental social interaction in hallways and elevators does not have significant virus transmission risk.

Yes, it is how you spend your time that has the biggest influence on your propensity to get the virus.

Most notably, social distancing guidelines for limiting infections do not hold in indoor spaces.

20200515/https://www.erinbromage.com/post/the-risks-know-them-avoid-them

Surely, I don’t have to write my own C language 2D CPU graphics library from scratch, do I? Well… here’s an interesting surprise find. Yeah, there are indeed other efforts out there, but still, there’s quite a unique number of things about my library that are better than this one.

20200515/DuckDuckGo github c 2d cpu graphics drawing
20200515/https://github.com/grz0zrg/fbg

But, here’s the absolute best thing I’ve found. There are ultra-lightweight alternatives for decoding JPEG and PNG images. Wow, I’ve got to look more into those! Yeah, libJPEG isn’t too hard to use, but libPNG, gosh that Zlib dependency sure made it a main. LodePNG does not depend on Zlib.

20200515/http://keyj.emphy.de/nanojpeg/
20200515/https://lodev.org/lodepng/

Wow! SPARC CPU on an FPGA? Yes, but of course, the caveat emptor is that using Xilinx FPGAs is a mess.

20200514/https://www.thanassis.space/myowncpu.html

I found this from a related discussion on 68kMLA about doing likewise for classic Macintosh, and there are a few projects out there linked.

20200514/https://68kmla.org/forums/index.php?/topic/58178-fpga-mac/

Looking for ways to solder those ultra-fine pitch integrated circuit chips? Now, here’s a new nifty technique: drag soldering. The trick is to use a lot of flux, a fat soldering iron (yes. not a narrow tip one), and to drag the soldering iron lengthwise to maximize surface area back and forth across the pins. You want to coat with just the right amount of solder each time, not too much, and it will all work out, with the right amount of experimentation to learn the technique for different chips, that is.

20200514/https://68kmla.org/forums/index.php?/topic/59551-sram-for-portable-on-sale-at-digikey/
20200514/DuckDuckGo drag soldering
20200514/https://www.youtube.com/watch?v=wUyetZ5RtPs