This entry inspired me to write this javascript implementation to test my high-speed GIF encoder, which I used for animations in the pre-canvas era. It needs keyboard arrows to navigate.
I tried to reverse-engineer the code to understand how the model in the simulator worked, only it raised more questions than answered. I did uncover that the author had flight simulator writing experience, so the mechanics were truly obfuscated. Carl, amazing piece of craftsmanship, tipping the hat!
Location: Leiden, Netherlands
Remote: Yes
Willing to relocate: Possibly
Technologies: Full-stack, embedded, javascript/c/c++, linux
Résumé/CV: On request
Email: xyzzy@rockingship.org
With 50 years of experience, strong communication spanning all levels of organisation with a wide audience and a solid understanding of software and hardware. Listening, out-of-the-box thinking, inspiring others. Front-end, back-end, API, database, operating-systems, drivers, embedded, audio/video, codecs, micro controllers, firmware, debugging, electronics and soldering. The whole is more than the sum of the parts as provides architectural oversight.
I upgraded the site generator to create even better visual QR codes, it now even can produce a QR in a QR. Enter the gift code "WELCOME" and use it for FREE.
Seeing many application areas for (near) photo realistic QR codes I thought I could invest full-time into it and make it sustainable. I was hoping it would have an organic attraction and build a user-base. After 28 days being online Google Search congratulated me that it was clicked 15 times at average position 60. How does that compare? My visitor count is on average less than 1 per day.
How do I get more people or businesses interested. Does this technology have opportunity to continue investing in? Where should I focus on? Or, is the industry shifting away from QRs, making it wiser for me to focus on other ventures?
Location: Netherlands, Leiden
Remote: Yes,
Willing to relocate: Temporary yes, Permanent no
Technologies: Linux, Javascript, C/C++, HTML/Canvas, PHP, MySQL, Embedded
Résumé/CV: Upon request
Email: xyzzy AT rockingship.org
50 years experience, 9 years software and hardware education, 80-ies whizz-kid, hacker. reverse-engineer, optimisations, linux minded, multi-architecture, quick learner. Front-end, back-end, API-endpoints, full-stack. Also into developing custom toolchains, custom distributions, bare-metal development, porting. Familiar with how thing work from the moment the system powers up. Good in finding and fixing nasty bugs.
Started with creating multi-tasking basic for Apple2 in 70ies, developed Multi-player games on TOPS20 in 80ies, Inspired by Inmos transputer, worked on operating systems, designed kernel debugger and implemented TCP/IP in 90ies. Designed Raspberry-Pi/Arduino like system in Taiwan in 00ies, life work: fractal logic, capturing essence of information in fractals, calculating with fractal structures in 10ies, 2D-scanline/paintbrush video encoder in 20ies. Recent projects: UWB indoor positioning system using DWM1000, Upgraded qrpicture.com for HD visual QR codes, Apache fail2ban module.
Because it's simply available as an option. National Geographic is licensed and marketed differently in Korea, so it's just sold as a regular brand in normal retail outlets. It's not really necessary to reach for sociological explanations when it's just random gear you pick up at eMart that happens to have the NG brand. See also brands like Jeep, Ttoma, Discovery Expedition, etc.
Like out of season Christmas and nursery rhymes in Asian elevators, but now with a toxic brand?
This begs for the challenge: How would a program look like if the opcodes it could use exclusively consists of ASCII characters?
This has been a niche programming challenge which was popular before I knew it existed, so I upped the ante by using alpha-numeric only.
The usable opcodes where practically IMUL and XOR with severe limitation on registers and offset. But with them I managed to create a random number generator that magically outputs fragments of codes at the location where the next instruction would be located. This would snowball adding more opcodes/functionality as it unrolls into a complete application.
It felt like the instruction set was so restricting and that the designers of the instruction set deliberately mapped the most critical instruction to make this possible to the opcode values. This has made me wonder what the considerations were to select which binary byte value to match with the instructions. if MUL/XOR were mapped differently, this project most likely would not have existed.
Tom Murphy VII (tom7) did such a thing. It's a partial C89 compiler that outputs only printable characters. In meta fashion, the compiler is compiled by itself to also contain only printable characters. The TXT and EXE files below are exactly the same.
Yes, like many others. That's why I upped the ante by stating "numeric and lowercase characters only". And with the glyph differences between them also create a "hidden" image.
Editted: What you reference to is a compiler and something completely different.
Both projects stem from the same root, TXT=EXE. However, both branch in totally different directions. One says "any printable goes" whereas the other says "only the smallest subset (preferably also for ASCII art) goes", mainly being being “0123456789acemnorsuvwxz”.
These are two different projects with different design goals and challenges. Tom's built a compiler around it, I created a bootloader that consists of only MUL and XOR.
I don't understand why I feel that I have to defend myself, I thought hackers love these kind of projects, yet it seems I got cancelled.
A true innovation would be to combine both projects. One that inputs source code plus an image and outputs ASCII art that runs like a program.
A friend of mine (and one of the best CTF players I’ve ever met) once wrote shellcode that used only the [0-9A-F] ASCII character range and self-modified to access other instructions.
Splash is an alternative approach to traditional top-left to bottom-right scanline image/frame rendering. It sorts the pixels of a frame in order of significance, and paints them guided by weighted rows and columns. The longer the rendering, the higher the detail, making it highly tolerant against data corruption. A full frame is lossless, truncated frames are lossy. Splash shines in it’s lossyness.
Inspiration: The fractal zoomer rendering engine of my other project [https://rockingship.github.io/jsFractalZoom] wondering how it would be with real-world imagery instead of procedural generated content, and how I believe my brain perceives movement: you pay attention first to areas with heavy contrast changes because they are most likely caused by moving things.
Explanation by example:
STARSHIPS:
14 second clip with high contrasts and lots of movement in different directions. Top video show frames from the a 1212x510 input source and rendered top-left zig-zag to bottom-right. Each frame contains 618120 pixels, Splash takes 618120 self-chosen pixels spread over 6 frames and paints them in the bottom video. Top and bottom both have identical pixel data rates.
Lets explore the extremes by assuming there is data corruption and only the first 1% of the frame was recoverable. Left is Splash and what it’s continuous paintbrush rendered. Right would be the traditional first 9 scanlines of the input making if effectively unrecoverable. To give traditional at least a fighting chance, the frame is downscaled 100 times to 90x50 and upscaled again to original 900x506.
Remote: Remote, hybrid, on-site, depending on distance
Willing to relocate: No
Skills: Bare metal, Bootloaders, Cryptography, Embedded, Debugging, Distributed, Event driven, Firmware, Fullstack (frontend leaning towards backend), Hacking, High performance, Image processing, Optimizing, Pattern recognizing, Porting, Protocol analysers, Real-time, Research, Reverse engineering, Schematics, Troubleshooting, Thinking outside the box
Technologies: AJAX, API, Arm, Assembler, AWS, C/C++, CSS, Eagle, HAL, HTML5, HTTP, Javascript, Joomla(+internals), JSON, JTAG, Linux(+internals), MicroChip, MPI, MySQL, Node.js, PHP, REST, RTOS, Spidermonkey(+internals), SSL, StarCluster, SGE (Sun Grid Engine), TCP/IP(+internals). WebWorkers, X11, XML, Zend(+Internals)
Résumé/CV: Available upon request
Email: xyzzy at rockingship dot org
30 years in the tech industry with 9 years of education specializing in software and hardware as embedded and full-stack engineer.