View on GitHub

Quorten Blog 1

First blog for all Quorten's blog-like writings

Burgers and White Castle

2018-06-06

Categories: random  
Tags: random  

Burgers… what does Wikipedia have to say? Oh, some interesting things.

White Castle was basically the first fast food restaurant, and in order to supply their operations, they ended up creating many supporting businesses. Why “white” castle? Because at the time, the meat packing industry had a reputation for being unsanitary, and White Castle’s founders sought to change that reputation. However, White Castle did not grow to become as big as today’s other fast food restaurants because they were reluctant to loan money or to franchise. All White Castle buildings are company-owned.

20180605/https://en.wikipedia.org/wiki/Burger
20180605/https://en.wikipedia.org/wiki/Cheeseburger
20180605/https://en.wikipedia.org/wiki/Slider_(sandwich)
20180605/https://en.wikipedia.org/wiki/White_Castle_(restaurant)

20180605/https://en.wikipedia.org/wiki/White_Castle_Building_No._8

Read on →

Model-View-Culture site

2018-06-05

Categories: misc  
Tags: misc  

That Model-View-Culture site? It was last updated in 2016. Wow, it must be going nowhere then at the present, considering it was inhabited by multiple writers. On the other hand, a personal website may go on hiatus for a year or so, and you wouldn’t be surprised to see it come back later.

20180605/https://modelviewculture.com/pieces/data-colonialism-critiquing-consent-and-control-in-tech-for-social-change

Poor man's JTAG programmer

2018-06-05

Categories: unlipic  
Tags: unlipic  

Okay, so this is interesting. Need a JTAG programmer? With special software (standard JTAG software won’t work), a parallel port, and a few resistors, you can easily build your own “poor man’s” JTAG programmer, i.e. Xilinx cable. Wow, that sounds really great. Now I just need to make the decision between buying a dedicated USB JTAG programmer versus buying a parallel port and building a “poor man’s” Xilinx cable JTAG programmer alternative.

Oh, and the final thing. Will this work with my old AR7WRD router? Indeed, it looks like it will, as this forum poster was working on essentially the same chipset, although not the same board.

Read on →

I still use E-mail, but only for reading, not writing. Hence, this message is in this channel but not as a reply to your E-mail. So, what has become of E-mail is similar to what happened with Wikipedia.

Like Wikipedia, E-mail is over-regulated, hence people avoid using it (for writing), but Slack is now getting over-regulated too, so soon we’ll have to migrate yet again to the next ~big~ new thing..

Read on →

Looking for terminal emulator frameworks that run in a browser? Indeed, Xterm.js is well-used and featureful.

20180604/https://github.com/xtermjs/xterm.js

Again, I reiterate, because this is important! Xterm.js provides a great example of what I was writing about earlier. A great piece of software is one that establishes a “standard” form of abstract symbolism, meaning that single component supports a large number of back-end technologies (like low-level hardware) and is used by a large number of higher level software. Xterm.js provides a great example by linking to many projects that use it.

And indeed, some of these are quite interesting. Namely, the in-browser SSH clients. What is the main development hurdle and caveat of these? They require a WebSocket to TCP socket proxy server.

20180604/https://github.com/billchurch/WebSSH2
20180604/https://github.com/stuicey/SSHy
20180604/https://github.com/stuicey/wsproxy

These are some other interesting software that use Xterm.js.

20180604/https://github.com/yudai/gotty
20180604/https://cloudcmd.io/

Wow, very interesting. Microsoft acquiring GitHub. To this end, I am not surprised about this. I have already been reading about how prolific a GitHub organization Microsoft is earlier, so it seems natural they would buy the product that they use the most so that they have full control over it.

But, those are my words and opinions based off of intuition. What does Microsoft have to say about this? Well, they go toward their own ends to say that “they were always a developer-focused company.” Well, that is only superficially true if you ignore all but the earliest of their history. But, suffice it to say, it’s an interesting proposition. If you look at Microsoft as a company today, they are quite segmented into non-cooperating markets and divisions. For example, here is my assertion:

Read on →

My overall process of installing GNU/Linux from being a first-time learner and going up until now, keeping up with continuing software updates.

  1. Download the live CD installer image.

  2. If this is your first time installing GNU/Linux on a computer, write the image out to a DVD disc. If this is the second time and you’re downloading a newer version but still unfamiliar with GNU/Linux, write it out to a flash drive, SD card, or similar. Migrate the contents of your flash drive to alternate storage if necessary.

  3. If you’ve been through the run before and are very well experienced, convert live CD image into a live network boot image.

  4. Walk-through the live CD installer to install GNU/Linux on your target computer. Often times it helps to have more than one computer when working with GNU/Linux, or any new operating system for the first time. Nowadays virtualization is a good substitute for having multiple computers if you do in fact have a single computer with enough memory to do the run-through.

Read on →

More optimized array looping in C

2018-06-04

Categories: unlipic  
Tags: unlipic  

I’ve realized an interesting optimization when working a more optimized code path in a toy virtual filesystem implementation I’ve created.

First, examine a “non-optimized” linear search implementation:

unsigned i;
FSNode **files_d = parent->data.files.d;
unsigned files_len = parent->data.files.len;
for (i = 0; i < files_len; i++)
{
    if (!strcmp(name, files_d[i]->name))
        return i;
}

Now, compare that with the optimized variant.

unsigned i = parent->data.files.len;
FSNode **files_d = parent->data.files.d;
while (i > 0)
{
    i--;
    if (!strcmp(name, files_d[i]->name))
        return i;
}

Read on →

I’ve been wanting to get more involved with low-level hardware hacking on single board computers so that I can work with the full range of low-level hardware functions on my LibreCMC Atheros chipset, MIPS CPU, router such as the CMOS serial console and JTAG flash programming. However, I can’t take out my current router in use since I don’t have a spare, after we’ve gotten rid of the ISP rented router. Now, conveniently, I happen to have an old ADSL router-modem. What kind of software does it run? How do I program it? Is it rather similar to modern routers?

Indeed, it is. I am in luck. It is somewhat similar to modern routers: it runs Linux + Busybox. However, it uses a different bootloader, adam2 rather than Das U-boot. Here are the details that I’ve mined out from the Internet and booting up and logging into the router itself.

  • Model: Actiontec GT701-WG
  • Board/chipset: Texas Instruments AR7WRD
  • CPU: MIPS32
  • Bootloader: adam2
  • Flash size: 4 MB
  • RAM size: 14 MB (16 MB?)
  • Linux kernel: 2.4.17
  • Packages: Busybox, odhcpc
  • Command-line login protocol: telnet
  • Linux root username/password: admin, admin
  • CMOS 3.3 V serial console
    • Baud? Try “38400 8-N-1” according to HyperTerminal. (38400 baud, 8 data bits, no parity bits, 1 stop bit.)

Despite these modest specifications, the router sure does get hot compared to more modern equipment. For sure, that’s because the hardware is so old that the chipset uses a larger feature semiconductor process and is less energy efficient.

Read on →